{"version":3,"sources":["../../node_modules/@testing-library/dom/node_modules/ansi-styles/index.js","../../node_modules/@testing-library/dom/node_modules/pretty-format/build/collections.js","../../node_modules/@testing-library/dom/node_modules/pretty-format/build/plugins/AsymmetricMatcher.js","../../node_modules/ansi-regex/index.js","../../node_modules/@testing-library/dom/node_modules/pretty-format/build/plugins/ConvertAnsi.js","../../node_modules/@testing-library/dom/node_modules/pretty-format/build/plugins/DOMCollection.js","../../node_modules/@testing-library/dom/node_modules/pretty-format/build/plugins/lib/escapeHTML.js","../../node_modules/@testing-library/dom/node_modules/pretty-format/build/plugins/lib/markup.js","../../node_modules/@testing-library/dom/node_modules/pretty-format/build/plugins/DOMElement.js","../../node_modules/@testing-library/dom/node_modules/pretty-format/build/plugins/Immutable.js","../../node_modules/@testing-library/dom/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/@testing-library/dom/node_modules/react-is/index.js","../../node_modules/@testing-library/dom/node_modules/pretty-format/build/plugins/ReactElement.js","../../node_modules/@testing-library/dom/node_modules/pretty-format/build/plugins/ReactTestComponent.js","../../node_modules/@testing-library/dom/node_modules/pretty-format/build/index.js","../../node_modules/aria-query/lib/util/iteratorProxy.js","../../node_modules/aria-query/lib/util/iterationDecorator.js","../../node_modules/aria-query/lib/ariaPropsMap.js","../../node_modules/aria-query/lib/domMap.js","../../node_modules/aria-query/lib/etc/roles/abstract/commandRole.js","../../node_modules/aria-query/lib/etc/roles/abstract/compositeRole.js","../../node_modules/aria-query/lib/etc/roles/abstract/inputRole.js","../../node_modules/aria-query/lib/etc/roles/abstract/landmarkRole.js","../../node_modules/aria-query/lib/etc/roles/abstract/rangeRole.js","../../node_modules/aria-query/lib/etc/roles/abstract/roletypeRole.js","../../node_modules/aria-query/lib/etc/roles/abstract/sectionRole.js","../../node_modules/aria-query/lib/etc/roles/abstract/sectionheadRole.js","../../node_modules/aria-query/lib/etc/roles/abstract/selectRole.js","../../node_modules/aria-query/lib/etc/roles/abstract/structureRole.js","../../node_modules/aria-query/lib/etc/roles/abstract/widgetRole.js","../../node_modules/aria-query/lib/etc/roles/abstract/windowRole.js","../../node_modules/aria-query/lib/etc/roles/ariaAbstractRoles.js","../../node_modules/aria-query/lib/etc/roles/literal/alertRole.js","../../node_modules/aria-query/lib/etc/roles/literal/alertdialogRole.js","../../node_modules/aria-query/lib/etc/roles/literal/applicationRole.js","../../node_modules/aria-query/lib/etc/roles/literal/articleRole.js","../../node_modules/aria-query/lib/etc/roles/literal/bannerRole.js","../../node_modules/aria-query/lib/etc/roles/literal/blockquoteRole.js","../../node_modules/aria-query/lib/etc/roles/literal/buttonRole.js","../../node_modules/aria-query/lib/etc/roles/literal/captionRole.js","../../node_modules/aria-query/lib/etc/roles/literal/cellRole.js","../../node_modules/aria-query/lib/etc/roles/literal/checkboxRole.js","../../node_modules/aria-query/lib/etc/roles/literal/codeRole.js","../../node_modules/aria-query/lib/etc/roles/literal/columnheaderRole.js","../../node_modules/aria-query/lib/etc/roles/literal/comboboxRole.js","../../node_modules/aria-query/lib/etc/roles/literal/complementaryRole.js","../../node_modules/aria-query/lib/etc/roles/literal/contentinfoRole.js","../../node_modules/aria-query/lib/etc/roles/literal/definitionRole.js","../../node_modules/aria-query/lib/etc/roles/literal/deletionRole.js","../../node_modules/aria-query/lib/etc/roles/literal/dialogRole.js","../../node_modules/aria-query/lib/etc/roles/literal/directoryRole.js","../../node_modules/aria-query/lib/etc/roles/literal/documentRole.js","../../node_modules/aria-query/lib/etc/roles/literal/emphasisRole.js","../../node_modules/aria-query/lib/etc/roles/literal/feedRole.js","../../node_modules/aria-query/lib/etc/roles/literal/figureRole.js","../../node_modules/aria-query/lib/etc/roles/literal/formRole.js","../../node_modules/aria-query/lib/etc/roles/literal/genericRole.js","../../node_modules/aria-query/lib/etc/roles/literal/gridRole.js","../../node_modules/aria-query/lib/etc/roles/literal/gridcellRole.js","../../node_modules/aria-query/lib/etc/roles/literal/groupRole.js","../../node_modules/aria-query/lib/etc/roles/literal/headingRole.js","../../node_modules/aria-query/lib/etc/roles/literal/imgRole.js","../../node_modules/aria-query/lib/etc/roles/literal/insertionRole.js","../../node_modules/aria-query/lib/etc/roles/literal/linkRole.js","../../node_modules/aria-query/lib/etc/roles/literal/listRole.js","../../node_modules/aria-query/lib/etc/roles/literal/listboxRole.js","../../node_modules/aria-query/lib/etc/roles/literal/listitemRole.js","../../node_modules/aria-query/lib/etc/roles/literal/logRole.js","../../node_modules/aria-query/lib/etc/roles/literal/mainRole.js","../../node_modules/aria-query/lib/etc/roles/literal/markRole.js","../../node_modules/aria-query/lib/etc/roles/literal/marqueeRole.js","../../node_modules/aria-query/lib/etc/roles/literal/mathRole.js","../../node_modules/aria-query/lib/etc/roles/literal/menuRole.js","../../node_modules/aria-query/lib/etc/roles/literal/menubarRole.js","../../node_modules/aria-query/lib/etc/roles/literal/menuitemRole.js","../../node_modules/aria-query/lib/etc/roles/literal/menuitemcheckboxRole.js","../../node_modules/aria-query/lib/etc/roles/literal/menuitemradioRole.js","../../node_modules/aria-query/lib/etc/roles/literal/meterRole.js","../../node_modules/aria-query/lib/etc/roles/literal/navigationRole.js","../../node_modules/aria-query/lib/etc/roles/literal/noneRole.js","../../node_modules/aria-query/lib/etc/roles/literal/noteRole.js","../../node_modules/aria-query/lib/etc/roles/literal/optionRole.js","../../node_modules/aria-query/lib/etc/roles/literal/paragraphRole.js","../../node_modules/aria-query/lib/etc/roles/literal/presentationRole.js","../../node_modules/aria-query/lib/etc/roles/literal/progressbarRole.js","../../node_modules/aria-query/lib/etc/roles/literal/radioRole.js","../../node_modules/aria-query/lib/etc/roles/literal/radiogroupRole.js","../../node_modules/aria-query/lib/etc/roles/literal/regionRole.js","../../node_modules/aria-query/lib/etc/roles/literal/rowRole.js","../../node_modules/aria-query/lib/etc/roles/literal/rowgroupRole.js","../../node_modules/aria-query/lib/etc/roles/literal/rowheaderRole.js","../../node_modules/aria-query/lib/etc/roles/literal/scrollbarRole.js","../../node_modules/aria-query/lib/etc/roles/literal/searchRole.js","../../node_modules/aria-query/lib/etc/roles/literal/searchboxRole.js","../../node_modules/aria-query/lib/etc/roles/literal/separatorRole.js","../../node_modules/aria-query/lib/etc/roles/literal/sliderRole.js","../../node_modules/aria-query/lib/etc/roles/literal/spinbuttonRole.js","../../node_modules/aria-query/lib/etc/roles/literal/statusRole.js","../../node_modules/aria-query/lib/etc/roles/literal/strongRole.js","../../node_modules/aria-query/lib/etc/roles/literal/subscriptRole.js","../../node_modules/aria-query/lib/etc/roles/literal/superscriptRole.js","../../node_modules/aria-query/lib/etc/roles/literal/switchRole.js","../../node_modules/aria-query/lib/etc/roles/literal/tabRole.js","../../node_modules/aria-query/lib/etc/roles/literal/tableRole.js","../../node_modules/aria-query/lib/etc/roles/literal/tablistRole.js","../../node_modules/aria-query/lib/etc/roles/literal/tabpanelRole.js","../../node_modules/aria-query/lib/etc/roles/literal/termRole.js","../../node_modules/aria-query/lib/etc/roles/literal/textboxRole.js","../../node_modules/aria-query/lib/etc/roles/literal/timeRole.js","../../node_modules/aria-query/lib/etc/roles/literal/timerRole.js","../../node_modules/aria-query/lib/etc/roles/literal/toolbarRole.js","../../node_modules/aria-query/lib/etc/roles/literal/tooltipRole.js","../../node_modules/aria-query/lib/etc/roles/literal/treeRole.js","../../node_modules/aria-query/lib/etc/roles/literal/treegridRole.js","../../node_modules/aria-query/lib/etc/roles/literal/treeitemRole.js","../../node_modules/aria-query/lib/etc/roles/ariaLiteralRoles.js","../../node_modules/aria-query/lib/etc/roles/dpub/docAbstractRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docAcknowledgmentsRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docAfterwordRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docAppendixRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docBacklinkRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docBiblioentryRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docBibliographyRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docBibliorefRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docChapterRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docColophonRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docConclusionRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docCoverRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docCreditRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docCreditsRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docDedicationRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docEndnoteRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docEndnotesRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docEpigraphRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docEpilogueRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docErrataRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docExampleRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docFootnoteRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docForewordRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docGlossaryRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docGlossrefRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docIndexRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docIntroductionRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docNoterefRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docNoticeRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docPagebreakRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docPagelistRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docPartRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docPrefaceRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docPrologueRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docPullquoteRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docQnaRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docSubtitleRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docTipRole.js","../../node_modules/aria-query/lib/etc/roles/dpub/docTocRole.js","../../node_modules/aria-query/lib/etc/roles/ariaDpubRoles.js","../../node_modules/aria-query/lib/etc/roles/graphics/graphicsDocumentRole.js","../../node_modules/aria-query/lib/etc/roles/graphics/graphicsObjectRole.js","../../node_modules/aria-query/lib/etc/roles/graphics/graphicsSymbolRole.js","../../node_modules/aria-query/lib/etc/roles/ariaGraphicsRoles.js","../../node_modules/aria-query/lib/rolesMap.js","../../node_modules/dequal/lite/index.js","../../node_modules/aria-query/lib/elementRoleMap.js","../../node_modules/aria-query/lib/roleElementMap.js","../../node_modules/aria-query/lib/index.js","../../node_modules/lz-string/libs/lz-string.js","../../src/getIdRefsByAttribute.ts","../../node_modules/html-aria/src/lib/aria-roles.ts","../../node_modules/html-aria/src/lib/html.ts","../../node_modules/html-aria/src/lib/util.ts","../../node_modules/html-aria/src/tags/aside.ts","../../node_modules/html-aria/src/tags/footer.ts","../../node_modules/html-aria/src/tags/header.ts","../../node_modules/html-aria/src/tags/input.ts","../../node_modules/html-aria/src/tags/li.ts","../../node_modules/html-aria/src/tags/select.ts","../../node_modules/html-aria/src/tags/svg.ts","../../node_modules/html-aria/src/tags/td.ts","../../node_modules/html-aria/src/tags/th.ts","../../node_modules/html-aria/src/get-role.ts","../../node_modules/html-aria/src/is-interactive.ts","../../node_modules/html-aria/src/is-name-required.ts","../../node_modules/html-aria/src/get-elements.ts","../../node_modules/html-aria/src/get-required-attributes.ts","../../node_modules/html-aria/src/lib/aria-attributes.ts","../../node_modules/html-aria/src/get-supported-attributes.ts","../../node_modules/html-aria/src/get-supported-roles.ts","../../src/getLocalName.ts","../../src/isElement.ts","../../src/getNodeAccessibilityData/getRole.ts","../../node_modules/dom-accessibility-api/sources/polyfills/array.from.ts","../../node_modules/dom-accessibility-api/sources/polyfills/SetLike.ts","../../node_modules/dom-accessibility-api/sources/getRole.ts","../../node_modules/dom-accessibility-api/sources/util.ts","../../node_modules/dom-accessibility-api/sources/accessible-name-and-description.ts","../../node_modules/dom-accessibility-api/sources/accessible-description.ts","../../node_modules/dom-accessibility-api/sources/accessible-name.ts","../../src/getNodeAccessibilityData/getAccessibleDescription.ts","../../src/sanitizeString.ts","../../src/getNodeAccessibilityData/getAccessibleName.ts","../../src/getNodeAccessibilityData/getAccessibleValue.ts","../../src/isDialogRole.ts","../../src/getNodeAccessibilityData/index.ts","../../src/getNodeByIdRef.ts","../../src/isHiddenFromAccessibilityTree.ts","../../src/createAccessibilityTree.ts","../../src/commands/nodeMatchers.ts","../../src/getNodeAccessibilityData/getAccessibleAttributeLabels/getAttributesByRole.ts","../../src/getItemText.ts","../../src/getNodeAccessibilityData/getAccessibleAttributeLabels/mapAttributeNameAndValueToLabel.ts","../../src/getNodeAccessibilityData/getAccessibleAttributeLabels/getLabelFromAriaAttribute.ts","../../src/getNodeAccessibilityData/getAccessibleAttributeLabels/getLabelFromHtmlEquivalentAttribute.ts","../../src/getNodeAccessibilityData/getAccessibleAttributeLabels/getLabelFromImplicitHtmlElementValue/getLevelFromDocumentStructure.ts","../../src/getNodeAccessibilityData/getAccessibleAttributeLabels/getLabelFromImplicitHtmlElementValue/getSet.ts","../../src/getNodeAccessibilityData/getAccessibleAttributeLabels/getLabelFromImplicitHtmlElementValue/hasTreegridAncestor.ts","../../src/getNodeAccessibilityData/getAccessibleAttributeLabels/getLabelFromImplicitHtmlElementValue/index.ts","../../src/getNodeAccessibilityData/getAccessibleAttributeLabels/postProcessAriaValueNow.ts","../../src/getNodeAccessibilityData/getAccessibleAttributeLabels/postProcessLabels.ts","../../src/getNodeAccessibilityData/getAccessibleAttributeLabels/index.ts","../../src/flattenTree.ts","../../src/commands/getIndexByRoleAndAttributes.ts","../../src/commands/getNextIndexByRoleAndAttributes.ts","../../src/commands/getPreviousIndexByRoleAndAttributes.ts","../../src/getElementFromNode.ts","../../src/commands/getElementNode.ts","../../src/commands/getNextIndexByIdRefsAttribute.ts","../../src/commands/jumpToControlledElement.ts","../../src/commands/jumpToDetailsElement.ts","../../src/commands/jumpToErrorMessageElement.ts","../../src/commands/moveToNextAlternateReadingOrderElement.ts","../../src/commands/moveToPreviousAlternateReadingOrderElement.ts","../../src/commands/index.ts","../../src/errors.ts","../../src/getLiveSpokenPhrase.ts","../../src/getSpokenPhrase.ts","../../src/observeDOM.ts","../../src/tick.ts","../../node_modules/@testing-library/user-event/dist/esm/utils/misc/isElementType.js","../../node_modules/@testing-library/user-event/dist/esm/utils/misc/getWindow.js","../../node_modules/@testing-library/user-event/dist/esm/utils/dataTransfer/Blob.js","../../node_modules/@testing-library/user-event/dist/esm/utils/dataTransfer/FileList.js","../../node_modules/@testing-library/user-event/dist/esm/utils/dataTransfer/DataTransfer.js","../../node_modules/@testing-library/user-event/dist/esm/utils/dataTransfer/Clipboard.js","../../node_modules/@testing-library/user-event/dist/esm/utils/focus/selector.js","../../node_modules/@testing-library/user-event/dist/esm/utils/focus/isFocusable.js","../../node_modules/@testing-library/user-event/dist/esm/utils/misc/cloneEvent.js","../../node_modules/@testing-library/user-event/dist/esm/utils/misc/isDisabled.js","../../node_modules/@testing-library/user-event/dist/esm/utils/focus/getActiveElement.js","../../node_modules/@testing-library/user-event/dist/esm/utils/misc/findClosest.js","../../node_modules/@testing-library/user-event/dist/esm/utils/edit/isContentEditable.js","../../node_modules/@testing-library/user-event/dist/esm/utils/click/isClickableInput.js","../../node_modules/@testing-library/user-event/dist/esm/utils/edit/isEditable.js","../../node_modules/@testing-library/user-event/dist/esm/utils/focus/selection.js","../../node_modules/@testing-library/user-event/dist/esm/event/selection/updateSelectionOnFocus.js","../../node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js","../../node_modules/@testing-library/dom/node_modules/dom-accessibility-api/sources/polyfills/array.from.ts","../../node_modules/@testing-library/dom/node_modules/dom-accessibility-api/sources/polyfills/SetLike.ts","../../node_modules/@testing-library/dom/node_modules/dom-accessibility-api/sources/getRole.ts","../../node_modules/@testing-library/dom/node_modules/dom-accessibility-api/sources/util.ts","../../node_modules/@testing-library/dom/node_modules/dom-accessibility-api/sources/accessible-name-and-description.ts","../../node_modules/@testing-library/dom/node_modules/dom-accessibility-api/sources/accessible-description.ts","../../node_modules/@testing-library/dom/node_modules/dom-accessibility-api/sources/accessible-name.ts","../../node_modules/@testing-library/user-event/dist/esm/event/wrapEvent.js","../../node_modules/@testing-library/user-event/dist/esm/event/focus.js","../../node_modules/@testing-library/user-event/dist/esm/event/behavior/registry.js","../../node_modules/@testing-library/user-event/dist/esm/event/behavior/click.js","../../node_modules/@testing-library/user-event/dist/esm/document/UI.js","../../node_modules/@testing-library/user-event/dist/esm/utils/edit/timeValue.js","../../node_modules/@testing-library/user-event/dist/esm/utils/edit/maxLength.js","../../node_modules/@testing-library/user-event/dist/esm/utils/focus/cursor.js","../../node_modules/@testing-library/user-event/dist/esm/document/trackValue.js","../../node_modules/@testing-library/user-event/dist/esm/event/selection/getTargetTypeAndSelection.js","../../node_modules/@testing-library/user-event/dist/esm/event/selection/getInputRange.js","../../node_modules/@testing-library/user-event/dist/esm/event/selection/setSelection.js","../../node_modules/@testing-library/user-event/dist/esm/event/input.js","../../node_modules/@testing-library/user-event/dist/esm/event/behavior/cut.js","../../node_modules/@testing-library/user-event/dist/esm/document/getValueOrTextContent.js","../../node_modules/@testing-library/user-event/dist/esm/utils/misc/isVisible.js","../../node_modules/@testing-library/user-event/dist/esm/utils/focus/getTabDestination.js","../../node_modules/@testing-library/user-event/dist/esm/event/selection/moveSelection.js","../../node_modules/@testing-library/user-event/dist/esm/event/selection/selectAll.js","../../node_modules/@testing-library/user-event/dist/esm/event/selection/setSelectionRange.js","../../node_modules/@testing-library/user-event/dist/esm/event/radio.js","../../node_modules/@testing-library/user-event/dist/esm/event/behavior/keydown.js","../../node_modules/@testing-library/user-event/dist/esm/event/behavior/keypress.js","../../node_modules/@testing-library/user-event/dist/esm/event/behavior/keyup.js","../../node_modules/@testing-library/user-event/dist/esm/event/behavior/paste.js","../../node_modules/@testing-library/user-event/dist/esm/event/eventMap.js","../../node_modules/@testing-library/user-event/dist/esm/event/createEvent.js","../../node_modules/@testing-library/user-event/dist/esm/event/dispatchEvent.js","../../node_modules/@testing-library/user-event/dist/esm/document/patchFocus.js","../../node_modules/@testing-library/user-event/dist/esm/document/interceptor.js","../../node_modules/@testing-library/user-event/dist/esm/document/prepareDocument.js","../../node_modules/@testing-library/user-event/dist/esm/utils/misc/getDocumentFromNode.js","../../node_modules/@testing-library/user-event/dist/esm/utils/misc/level.js","../../node_modules/@testing-library/user-event/dist/esm/utils/misc/wait.js","../../node_modules/@testing-library/user-event/dist/esm/options.js","../../node_modules/@testing-library/user-event/dist/esm/system/keyboard.js","../../node_modules/@testing-library/user-event/dist/esm/keyboard/keyMap.js","../../node_modules/@testing-library/user-event/dist/esm/pointer/keyMap.js","../../node_modules/@testing-library/user-event/dist/esm/system/pointer/buttons.js","../../node_modules/@testing-library/user-event/dist/esm/system/pointer/device.js","../../node_modules/@testing-library/user-event/dist/esm/utils/misc/getTreeDiff.js","../../node_modules/@testing-library/user-event/dist/esm/event/selection/resolveCaretPosition.js","../../node_modules/@testing-library/user-event/dist/esm/event/selection/setSelectionPerMouse.js","../../node_modules/@testing-library/user-event/dist/esm/event/selection/modifySelectionPerMouse.js","../../node_modules/@testing-library/user-event/dist/esm/system/pointer/shared.js","../../node_modules/@testing-library/user-event/dist/esm/system/pointer/mouse.js","../../node_modules/@testing-library/user-event/dist/esm/utils/pointer/cssPointerEvents.js","../../node_modules/@testing-library/user-event/dist/esm/system/pointer/pointer.js","../../node_modules/@testing-library/user-event/dist/esm/system/pointer/index.js","../../node_modules/@testing-library/user-event/dist/esm/system/index.js","../../node_modules/@testing-library/user-event/dist/esm/convenience/click.js","../../node_modules/@testing-library/user-event/dist/esm/convenience/hover.js","../../node_modules/@testing-library/user-event/dist/esm/convenience/tab.js","../../node_modules/@testing-library/user-event/dist/esm/utils/keyDef/readNextDescriptor.js","../../node_modules/@testing-library/user-event/dist/esm/keyboard/parseKeyDef.js","../../node_modules/@testing-library/user-event/dist/esm/keyboard/index.js","../../node_modules/@testing-library/user-event/dist/esm/document/copySelection.js","../../node_modules/@testing-library/user-event/dist/esm/clipboard/copy.js","../../node_modules/@testing-library/user-event/dist/esm/clipboard/cut.js","../../node_modules/@testing-library/user-event/dist/esm/clipboard/paste.js","../../node_modules/@testing-library/user-event/dist/esm/pointer/parseKeyDef.js","../../node_modules/@testing-library/user-event/dist/esm/pointer/index.js","../../node_modules/@testing-library/user-event/dist/esm/utility/clear.js","../../node_modules/@testing-library/user-event/dist/esm/utility/selectOptions.js","../../node_modules/@testing-library/user-event/dist/esm/utility/type.js","../../node_modules/@testing-library/user-event/dist/esm/utils/edit/setFiles.js","../../node_modules/@testing-library/user-event/dist/esm/utility/upload.js","../../node_modules/@testing-library/user-event/dist/esm/setup/api.js","../../node_modules/@testing-library/user-event/dist/esm/setup/wrapAsync.js","../../node_modules/@testing-library/user-event/dist/esm/setup/setup.js","../../node_modules/@testing-library/user-event/dist/esm/setup/directApi.js","../../node_modules/@testing-library/user-event/dist/esm/setup/index.js","../../src/Virtual.ts","../../src/index.ts"],"sourcesContent":["'use strict';\n\nconst ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\toverline: [53, 55],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue: (red, green, blue) => {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16 +\n\t\t\t\t\t(36 * Math.round(red / 255 * 5)) +\n\t\t\t\t\t(6 * Math.round(green / 255 * 5)) +\n\t\t\t\t\tMath.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue: hex => {\n\t\t\t\tconst matches = /(?<colorString>[a-f\\d]{6}|[a-f\\d]{3})/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet {colorString} = matches.groups;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = colorString.split('').map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false\n\t\t}\n\t});\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\nexports.printIteratorEntries = printIteratorEntries;\nexports.printIteratorValues = printIteratorValues;\nexports.printListItems = printListItems;\nexports.printObjectProperties = printObjectProperties;\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nconst getKeysOfEnumerableProperties = (object, compareKeys) => {\n  const keys = Object.keys(object).sort(compareKeys);\n\n  if (Object.getOwnPropertySymbols) {\n    Object.getOwnPropertySymbols(object).forEach(symbol => {\n      if (Object.getOwnPropertyDescriptor(object, symbol).enumerable) {\n        keys.push(symbol);\n      }\n    });\n  }\n\n  return keys;\n};\n/**\n * Return entries (for example, of a map)\n * with spacing, indentation, and comma\n * without surrounding punctuation (for example, braces)\n */\n\nfunction printIteratorEntries(\n  iterator,\n  config,\n  indentation,\n  depth,\n  refs,\n  printer, // Too bad, so sad that separator for ECMAScript Map has been ' => '\n  // What a distracting diff if you change a data structure to/from\n  // ECMAScript Object or Immutable.Map/OrderedMap which use the default.\n  separator = ': '\n) {\n  let result = '';\n  let current = iterator.next();\n\n  if (!current.done) {\n    result += config.spacingOuter;\n    const indentationNext = indentation + config.indent;\n\n    while (!current.done) {\n      const name = printer(\n        current.value[0],\n        config,\n        indentationNext,\n        depth,\n        refs\n      );\n      const value = printer(\n        current.value[1],\n        config,\n        indentationNext,\n        depth,\n        refs\n      );\n      result += indentationNext + name + separator + value;\n      current = iterator.next();\n\n      if (!current.done) {\n        result += ',' + config.spacingInner;\n      } else if (!config.min) {\n        result += ',';\n      }\n    }\n\n    result += config.spacingOuter + indentation;\n  }\n\n  return result;\n}\n/**\n * Return values (for example, of a set)\n * with spacing, indentation, and comma\n * without surrounding punctuation (braces or brackets)\n */\n\nfunction printIteratorValues(\n  iterator,\n  config,\n  indentation,\n  depth,\n  refs,\n  printer\n) {\n  let result = '';\n  let current = iterator.next();\n\n  if (!current.done) {\n    result += config.spacingOuter;\n    const indentationNext = indentation + config.indent;\n\n    while (!current.done) {\n      result +=\n        indentationNext +\n        printer(current.value, config, indentationNext, depth, refs);\n      current = iterator.next();\n\n      if (!current.done) {\n        result += ',' + config.spacingInner;\n      } else if (!config.min) {\n        result += ',';\n      }\n    }\n\n    result += config.spacingOuter + indentation;\n  }\n\n  return result;\n}\n/**\n * Return items (for example, of an array)\n * with spacing, indentation, and comma\n * without surrounding punctuation (for example, brackets)\n **/\n\nfunction printListItems(list, config, indentation, depth, refs, printer) {\n  let result = '';\n\n  if (list.length) {\n    result += config.spacingOuter;\n    const indentationNext = indentation + config.indent;\n\n    for (let i = 0; i < list.length; i++) {\n      result += indentationNext;\n\n      if (i in list) {\n        result += printer(list[i], config, indentationNext, depth, refs);\n      }\n\n      if (i < list.length - 1) {\n        result += ',' + config.spacingInner;\n      } else if (!config.min) {\n        result += ',';\n      }\n    }\n\n    result += config.spacingOuter + indentation;\n  }\n\n  return result;\n}\n/**\n * Return properties of an object\n * with spacing, indentation, and comma\n * without surrounding punctuation (for example, braces)\n */\n\nfunction printObjectProperties(val, config, indentation, depth, refs, printer) {\n  let result = '';\n  const keys = getKeysOfEnumerableProperties(val, config.compareKeys);\n\n  if (keys.length) {\n    result += config.spacingOuter;\n    const indentationNext = indentation + config.indent;\n\n    for (let i = 0; i < keys.length; i++) {\n      const key = keys[i];\n      const name = printer(key, config, indentationNext, depth, refs);\n      const value = printer(val[key], config, indentationNext, depth, refs);\n      result += indentationNext + name + ': ' + value;\n\n      if (i < keys.length - 1) {\n        result += ',' + config.spacingInner;\n      } else if (!config.min) {\n        result += ',';\n      }\n    }\n\n    result += config.spacingOuter + indentation;\n  }\n\n  return result;\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\nexports.test = exports.serialize = exports.default = void 0;\n\nvar _collections = require('../collections');\n\nvar global = (function () {\n  if (typeof globalThis !== 'undefined') {\n    return globalThis;\n  } else if (typeof global !== 'undefined') {\n    return global;\n  } else if (typeof self !== 'undefined') {\n    return self;\n  } else if (typeof window !== 'undefined') {\n    return window;\n  } else {\n    return Function('return this')();\n  }\n})();\n\nvar Symbol = global['jest-symbol-do-not-touch'] || global.Symbol;\nconst asymmetricMatcher =\n  typeof Symbol === 'function' && Symbol.for\n    ? Symbol.for('jest.asymmetricMatcher')\n    : 0x1357a5;\nconst SPACE = ' ';\n\nconst serialize = (val, config, indentation, depth, refs, printer) => {\n  const stringedValue = val.toString();\n\n  if (\n    stringedValue === 'ArrayContaining' ||\n    stringedValue === 'ArrayNotContaining'\n  ) {\n    if (++depth > config.maxDepth) {\n      return '[' + stringedValue + ']';\n    }\n\n    return (\n      stringedValue +\n      SPACE +\n      '[' +\n      (0, _collections.printListItems)(\n        val.sample,\n        config,\n        indentation,\n        depth,\n        refs,\n        printer\n      ) +\n      ']'\n    );\n  }\n\n  if (\n    stringedValue === 'ObjectContaining' ||\n    stringedValue === 'ObjectNotContaining'\n  ) {\n    if (++depth > config.maxDepth) {\n      return '[' + stringedValue + ']';\n    }\n\n    return (\n      stringedValue +\n      SPACE +\n      '{' +\n      (0, _collections.printObjectProperties)(\n        val.sample,\n        config,\n        indentation,\n        depth,\n        refs,\n        printer\n      ) +\n      '}'\n    );\n  }\n\n  if (\n    stringedValue === 'StringMatching' ||\n    stringedValue === 'StringNotMatching'\n  ) {\n    return (\n      stringedValue +\n      SPACE +\n      printer(val.sample, config, indentation, depth, refs)\n    );\n  }\n\n  if (\n    stringedValue === 'StringContaining' ||\n    stringedValue === 'StringNotContaining'\n  ) {\n    return (\n      stringedValue +\n      SPACE +\n      printer(val.sample, config, indentation, depth, refs)\n    );\n  }\n\n  return val.toAsymmetricMatcher();\n};\n\nexports.serialize = serialize;\n\nconst test = val => val && val.$$typeof === asymmetricMatcher;\n\nexports.test = test;\nconst plugin = {\n  serialize,\n  test\n};\nvar _default = plugin;\nexports.default = _default;\n","'use strict';\n\nmodule.exports = ({onlyFirst = false} = {}) => {\n\tconst pattern = [\n\t\t'[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\nexports.test = exports.serialize = exports.default = void 0;\n\nvar _ansiRegex = _interopRequireDefault(require('ansi-regex'));\n\nvar _ansiStyles = _interopRequireDefault(require('ansi-styles'));\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {default: obj};\n}\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nconst toHumanReadableAnsi = text =>\n  text.replace((0, _ansiRegex.default)(), match => {\n    switch (match) {\n      case _ansiStyles.default.red.close:\n      case _ansiStyles.default.green.close:\n      case _ansiStyles.default.cyan.close:\n      case _ansiStyles.default.gray.close:\n      case _ansiStyles.default.white.close:\n      case _ansiStyles.default.yellow.close:\n      case _ansiStyles.default.bgRed.close:\n      case _ansiStyles.default.bgGreen.close:\n      case _ansiStyles.default.bgYellow.close:\n      case _ansiStyles.default.inverse.close:\n      case _ansiStyles.default.dim.close:\n      case _ansiStyles.default.bold.close:\n      case _ansiStyles.default.reset.open:\n      case _ansiStyles.default.reset.close:\n        return '</>';\n\n      case _ansiStyles.default.red.open:\n        return '<red>';\n\n      case _ansiStyles.default.green.open:\n        return '<green>';\n\n      case _ansiStyles.default.cyan.open:\n        return '<cyan>';\n\n      case _ansiStyles.default.gray.open:\n        return '<gray>';\n\n      case _ansiStyles.default.white.open:\n        return '<white>';\n\n      case _ansiStyles.default.yellow.open:\n        return '<yellow>';\n\n      case _ansiStyles.default.bgRed.open:\n        return '<bgRed>';\n\n      case _ansiStyles.default.bgGreen.open:\n        return '<bgGreen>';\n\n      case _ansiStyles.default.bgYellow.open:\n        return '<bgYellow>';\n\n      case _ansiStyles.default.inverse.open:\n        return '<inverse>';\n\n      case _ansiStyles.default.dim.open:\n        return '<dim>';\n\n      case _ansiStyles.default.bold.open:\n        return '<bold>';\n\n      default:\n        return '';\n    }\n  });\n\nconst test = val =>\n  typeof val === 'string' && !!val.match((0, _ansiRegex.default)());\n\nexports.test = test;\n\nconst serialize = (val, config, indentation, depth, refs, printer) =>\n  printer(toHumanReadableAnsi(val), config, indentation, depth, refs);\n\nexports.serialize = serialize;\nconst plugin = {\n  serialize,\n  test\n};\nvar _default = plugin;\nexports.default = _default;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\nexports.test = exports.serialize = exports.default = void 0;\n\nvar _collections = require('../collections');\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* eslint-disable local/ban-types-eventually */\nconst SPACE = ' ';\nconst OBJECT_NAMES = ['DOMStringMap', 'NamedNodeMap'];\nconst ARRAY_REGEXP = /^(HTML\\w*Collection|NodeList)$/;\n\nconst testName = name =>\n  OBJECT_NAMES.indexOf(name) !== -1 || ARRAY_REGEXP.test(name);\n\nconst test = val =>\n  val &&\n  val.constructor &&\n  !!val.constructor.name &&\n  testName(val.constructor.name);\n\nexports.test = test;\n\nconst isNamedNodeMap = collection =>\n  collection.constructor.name === 'NamedNodeMap';\n\nconst serialize = (collection, config, indentation, depth, refs, printer) => {\n  const name = collection.constructor.name;\n\n  if (++depth > config.maxDepth) {\n    return '[' + name + ']';\n  }\n\n  return (\n    (config.min ? '' : name + SPACE) +\n    (OBJECT_NAMES.indexOf(name) !== -1\n      ? '{' +\n        (0, _collections.printObjectProperties)(\n          isNamedNodeMap(collection)\n            ? Array.from(collection).reduce((props, attribute) => {\n                props[attribute.name] = attribute.value;\n                return props;\n              }, {})\n            : {...collection},\n          config,\n          indentation,\n          depth,\n          refs,\n          printer\n        ) +\n        '}'\n      : '[' +\n        (0, _collections.printListItems)(\n          Array.from(collection),\n          config,\n          indentation,\n          depth,\n          refs,\n          printer\n        ) +\n        ']')\n  );\n};\n\nexports.serialize = serialize;\nconst plugin = {\n  serialize,\n  test\n};\nvar _default = plugin;\nexports.default = _default;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\nexports.default = escapeHTML;\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nfunction escapeHTML(str) {\n  return str.replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\nexports.printText =\n  exports.printProps =\n  exports.printElementAsLeaf =\n  exports.printElement =\n  exports.printComment =\n  exports.printChildren =\n    void 0;\n\nvar _escapeHTML = _interopRequireDefault(require('./escapeHTML'));\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {default: obj};\n}\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// Return empty string if keys is empty.\nconst printProps = (keys, props, config, indentation, depth, refs, printer) => {\n  const indentationNext = indentation + config.indent;\n  const colors = config.colors;\n  return keys\n    .map(key => {\n      const value = props[key];\n      let printed = printer(value, config, indentationNext, depth, refs);\n\n      if (typeof value !== 'string') {\n        if (printed.indexOf('\\n') !== -1) {\n          printed =\n            config.spacingOuter +\n            indentationNext +\n            printed +\n            config.spacingOuter +\n            indentation;\n        }\n\n        printed = '{' + printed + '}';\n      }\n\n      return (\n        config.spacingInner +\n        indentation +\n        colors.prop.open +\n        key +\n        colors.prop.close +\n        '=' +\n        colors.value.open +\n        printed +\n        colors.value.close\n      );\n    })\n    .join('');\n}; // Return empty string if children is empty.\n\nexports.printProps = printProps;\n\nconst printChildren = (children, config, indentation, depth, refs, printer) =>\n  children\n    .map(\n      child =>\n        config.spacingOuter +\n        indentation +\n        (typeof child === 'string'\n          ? printText(child, config)\n          : printer(child, config, indentation, depth, refs))\n    )\n    .join('');\n\nexports.printChildren = printChildren;\n\nconst printText = (text, config) => {\n  const contentColor = config.colors.content;\n  return (\n    contentColor.open + (0, _escapeHTML.default)(text) + contentColor.close\n  );\n};\n\nexports.printText = printText;\n\nconst printComment = (comment, config) => {\n  const commentColor = config.colors.comment;\n  return (\n    commentColor.open +\n    '<!--' +\n    (0, _escapeHTML.default)(comment) +\n    '-->' +\n    commentColor.close\n  );\n}; // Separate the functions to format props, children, and element,\n// so a plugin could override a particular function, if needed.\n// Too bad, so sad: the traditional (but unnecessary) space\n// in a self-closing tagColor requires a second test of printedProps.\n\nexports.printComment = printComment;\n\nconst printElement = (\n  type,\n  printedProps,\n  printedChildren,\n  config,\n  indentation\n) => {\n  const tagColor = config.colors.tag;\n  return (\n    tagColor.open +\n    '<' +\n    type +\n    (printedProps &&\n      tagColor.close +\n        printedProps +\n        config.spacingOuter +\n        indentation +\n        tagColor.open) +\n    (printedChildren\n      ? '>' +\n        tagColor.close +\n        printedChildren +\n        config.spacingOuter +\n        indentation +\n        tagColor.open +\n        '</' +\n        type\n      : (printedProps && !config.min ? '' : ' ') + '/') +\n    '>' +\n    tagColor.close\n  );\n};\n\nexports.printElement = printElement;\n\nconst printElementAsLeaf = (type, config) => {\n  const tagColor = config.colors.tag;\n  return (\n    tagColor.open +\n    '<' +\n    type +\n    tagColor.close +\n    ' …' +\n    tagColor.open +\n    ' />' +\n    tagColor.close\n  );\n};\n\nexports.printElementAsLeaf = printElementAsLeaf;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\nexports.test = exports.serialize = exports.default = void 0;\n\nvar _markup = require('./lib/markup');\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nconst ELEMENT_NODE = 1;\nconst TEXT_NODE = 3;\nconst COMMENT_NODE = 8;\nconst FRAGMENT_NODE = 11;\nconst ELEMENT_REGEXP = /^((HTML|SVG)\\w*)?Element$/;\n\nconst testHasAttribute = val => {\n  try {\n    return typeof val.hasAttribute === 'function' && val.hasAttribute('is');\n  } catch {\n    return false;\n  }\n};\n\nconst testNode = val => {\n  const constructorName = val.constructor.name;\n  const {nodeType, tagName} = val;\n  const isCustomElement =\n    (typeof tagName === 'string' && tagName.includes('-')) ||\n    testHasAttribute(val);\n  return (\n    (nodeType === ELEMENT_NODE &&\n      (ELEMENT_REGEXP.test(constructorName) || isCustomElement)) ||\n    (nodeType === TEXT_NODE && constructorName === 'Text') ||\n    (nodeType === COMMENT_NODE && constructorName === 'Comment') ||\n    (nodeType === FRAGMENT_NODE && constructorName === 'DocumentFragment')\n  );\n};\n\nconst test = val => {\n  var _val$constructor;\n\n  return (\n    (val === null || val === void 0\n      ? void 0\n      : (_val$constructor = val.constructor) === null ||\n        _val$constructor === void 0\n      ? void 0\n      : _val$constructor.name) && testNode(val)\n  );\n};\n\nexports.test = test;\n\nfunction nodeIsText(node) {\n  return node.nodeType === TEXT_NODE;\n}\n\nfunction nodeIsComment(node) {\n  return node.nodeType === COMMENT_NODE;\n}\n\nfunction nodeIsFragment(node) {\n  return node.nodeType === FRAGMENT_NODE;\n}\n\nconst serialize = (node, config, indentation, depth, refs, printer) => {\n  if (nodeIsText(node)) {\n    return (0, _markup.printText)(node.data, config);\n  }\n\n  if (nodeIsComment(node)) {\n    return (0, _markup.printComment)(node.data, config);\n  }\n\n  const type = nodeIsFragment(node)\n    ? 'DocumentFragment'\n    : node.tagName.toLowerCase();\n\n  if (++depth > config.maxDepth) {\n    return (0, _markup.printElementAsLeaf)(type, config);\n  }\n\n  return (0, _markup.printElement)(\n    type,\n    (0, _markup.printProps)(\n      nodeIsFragment(node)\n        ? []\n        : Array.from(node.attributes)\n            .map(attr => attr.name)\n            .sort(),\n      nodeIsFragment(node)\n        ? {}\n        : Array.from(node.attributes).reduce((props, attribute) => {\n            props[attribute.name] = attribute.value;\n            return props;\n          }, {}),\n      config,\n      indentation + config.indent,\n      depth,\n      refs,\n      printer\n    ),\n    (0, _markup.printChildren)(\n      Array.prototype.slice.call(node.childNodes || node.children),\n      config,\n      indentation + config.indent,\n      depth,\n      refs,\n      printer\n    ),\n    config,\n    indentation\n  );\n};\n\nexports.serialize = serialize;\nconst plugin = {\n  serialize,\n  test\n};\nvar _default = plugin;\nexports.default = _default;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\nexports.test = exports.serialize = exports.default = void 0;\n\nvar _collections = require('../collections');\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// SENTINEL constants are from https://github.com/facebook/immutable-js\nconst IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';\nconst IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@';\nconst IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';\nconst IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@';\nconst IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';\nconst IS_RECORD_SENTINEL = '@@__IMMUTABLE_RECORD__@@'; // immutable v4\n\nconst IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@';\nconst IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@';\nconst IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@';\n\nconst getImmutableName = name => 'Immutable.' + name;\n\nconst printAsLeaf = name => '[' + name + ']';\n\nconst SPACE = ' ';\nconst LAZY = '…'; // Seq is lazy if it calls a method like filter\n\nconst printImmutableEntries = (\n  val,\n  config,\n  indentation,\n  depth,\n  refs,\n  printer,\n  type\n) =>\n  ++depth > config.maxDepth\n    ? printAsLeaf(getImmutableName(type))\n    : getImmutableName(type) +\n      SPACE +\n      '{' +\n      (0, _collections.printIteratorEntries)(\n        val.entries(),\n        config,\n        indentation,\n        depth,\n        refs,\n        printer\n      ) +\n      '}'; // Record has an entries method because it is a collection in immutable v3.\n// Return an iterator for Immutable Record from version v3 or v4.\n\nfunction getRecordEntries(val) {\n  let i = 0;\n  return {\n    next() {\n      if (i < val._keys.length) {\n        const key = val._keys[i++];\n        return {\n          done: false,\n          value: [key, val.get(key)]\n        };\n      }\n\n      return {\n        done: true,\n        value: undefined\n      };\n    }\n  };\n}\n\nconst printImmutableRecord = (\n  val,\n  config,\n  indentation,\n  depth,\n  refs,\n  printer\n) => {\n  // _name property is defined only for an Immutable Record instance\n  // which was constructed with a second optional descriptive name arg\n  const name = getImmutableName(val._name || 'Record');\n  return ++depth > config.maxDepth\n    ? printAsLeaf(name)\n    : name +\n        SPACE +\n        '{' +\n        (0, _collections.printIteratorEntries)(\n          getRecordEntries(val),\n          config,\n          indentation,\n          depth,\n          refs,\n          printer\n        ) +\n        '}';\n};\n\nconst printImmutableSeq = (val, config, indentation, depth, refs, printer) => {\n  const name = getImmutableName('Seq');\n\n  if (++depth > config.maxDepth) {\n    return printAsLeaf(name);\n  }\n\n  if (val[IS_KEYED_SENTINEL]) {\n    return (\n      name +\n      SPACE +\n      '{' + // from Immutable collection of entries or from ECMAScript object\n      (val._iter || val._object\n        ? (0, _collections.printIteratorEntries)(\n            val.entries(),\n            config,\n            indentation,\n            depth,\n            refs,\n            printer\n          )\n        : LAZY) +\n      '}'\n    );\n  }\n\n  return (\n    name +\n    SPACE +\n    '[' +\n    (val._iter || // from Immutable collection of values\n    val._array || // from ECMAScript array\n    val._collection || // from ECMAScript collection in immutable v4\n    val._iterable // from ECMAScript collection in immutable v3\n      ? (0, _collections.printIteratorValues)(\n          val.values(),\n          config,\n          indentation,\n          depth,\n          refs,\n          printer\n        )\n      : LAZY) +\n    ']'\n  );\n};\n\nconst printImmutableValues = (\n  val,\n  config,\n  indentation,\n  depth,\n  refs,\n  printer,\n  type\n) =>\n  ++depth > config.maxDepth\n    ? printAsLeaf(getImmutableName(type))\n    : getImmutableName(type) +\n      SPACE +\n      '[' +\n      (0, _collections.printIteratorValues)(\n        val.values(),\n        config,\n        indentation,\n        depth,\n        refs,\n        printer\n      ) +\n      ']';\n\nconst serialize = (val, config, indentation, depth, refs, printer) => {\n  if (val[IS_MAP_SENTINEL]) {\n    return printImmutableEntries(\n      val,\n      config,\n      indentation,\n      depth,\n      refs,\n      printer,\n      val[IS_ORDERED_SENTINEL] ? 'OrderedMap' : 'Map'\n    );\n  }\n\n  if (val[IS_LIST_SENTINEL]) {\n    return printImmutableValues(\n      val,\n      config,\n      indentation,\n      depth,\n      refs,\n      printer,\n      'List'\n    );\n  }\n\n  if (val[IS_SET_SENTINEL]) {\n    return printImmutableValues(\n      val,\n      config,\n      indentation,\n      depth,\n      refs,\n      printer,\n      val[IS_ORDERED_SENTINEL] ? 'OrderedSet' : 'Set'\n    );\n  }\n\n  if (val[IS_STACK_SENTINEL]) {\n    return printImmutableValues(\n      val,\n      config,\n      indentation,\n      depth,\n      refs,\n      printer,\n      'Stack'\n    );\n  }\n\n  if (val[IS_SEQ_SENTINEL]) {\n    return printImmutableSeq(val, config, indentation, depth, refs, printer);\n  } // For compatibility with immutable v3 and v4, let record be the default.\n\n  return printImmutableRecord(val, config, indentation, depth, refs, printer);\n}; // Explicitly comparing sentinel properties to true avoids false positive\n// when mock identity-obj-proxy returns the key as the value for any key.\n\nexports.serialize = serialize;\n\nconst test = val =>\n  val &&\n  (val[IS_ITERABLE_SENTINEL] === true || val[IS_RECORD_SENTINEL] === true);\n\nexports.test = test;\nconst plugin = {\n  serialize,\n  test\n};\nvar _default = plugin;\nexports.default = _default;\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\nexports.test = exports.serialize = exports.default = void 0;\n\nvar ReactIs = _interopRequireWildcard(require('react-is'));\n\nvar _markup = require('./lib/markup');\n\nfunction _getRequireWildcardCache(nodeInterop) {\n  if (typeof WeakMap !== 'function') return null;\n  var cacheBabelInterop = new WeakMap();\n  var cacheNodeInterop = new WeakMap();\n  return (_getRequireWildcardCache = function (nodeInterop) {\n    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n  })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n  if (!nodeInterop && obj && obj.__esModule) {\n    return obj;\n  }\n  if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {\n    return {default: obj};\n  }\n  var cache = _getRequireWildcardCache(nodeInterop);\n  if (cache && cache.has(obj)) {\n    return cache.get(obj);\n  }\n  var newObj = {};\n  var hasPropertyDescriptor =\n    Object.defineProperty && Object.getOwnPropertyDescriptor;\n  for (var key in obj) {\n    if (key !== 'default' && Object.prototype.hasOwnProperty.call(obj, key)) {\n      var desc = hasPropertyDescriptor\n        ? Object.getOwnPropertyDescriptor(obj, key)\n        : null;\n      if (desc && (desc.get || desc.set)) {\n        Object.defineProperty(newObj, key, desc);\n      } else {\n        newObj[key] = obj[key];\n      }\n    }\n  }\n  newObj.default = obj;\n  if (cache) {\n    cache.set(obj, newObj);\n  }\n  return newObj;\n}\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// Given element.props.children, or subtree during recursive traversal,\n// return flattened array of children.\nconst getChildren = (arg, children = []) => {\n  if (Array.isArray(arg)) {\n    arg.forEach(item => {\n      getChildren(item, children);\n    });\n  } else if (arg != null && arg !== false) {\n    children.push(arg);\n  }\n\n  return children;\n};\n\nconst getType = element => {\n  const type = element.type;\n\n  if (typeof type === 'string') {\n    return type;\n  }\n\n  if (typeof type === 'function') {\n    return type.displayName || type.name || 'Unknown';\n  }\n\n  if (ReactIs.isFragment(element)) {\n    return 'React.Fragment';\n  }\n\n  if (ReactIs.isSuspense(element)) {\n    return 'React.Suspense';\n  }\n\n  if (typeof type === 'object' && type !== null) {\n    if (ReactIs.isContextProvider(element)) {\n      return 'Context.Provider';\n    }\n\n    if (ReactIs.isContextConsumer(element)) {\n      return 'Context.Consumer';\n    }\n\n    if (ReactIs.isForwardRef(element)) {\n      if (type.displayName) {\n        return type.displayName;\n      }\n\n      const functionName = type.render.displayName || type.render.name || '';\n      return functionName !== ''\n        ? 'ForwardRef(' + functionName + ')'\n        : 'ForwardRef';\n    }\n\n    if (ReactIs.isMemo(element)) {\n      const functionName =\n        type.displayName || type.type.displayName || type.type.name || '';\n      return functionName !== '' ? 'Memo(' + functionName + ')' : 'Memo';\n    }\n  }\n\n  return 'UNDEFINED';\n};\n\nconst getPropKeys = element => {\n  const {props} = element;\n  return Object.keys(props)\n    .filter(key => key !== 'children' && props[key] !== undefined)\n    .sort();\n};\n\nconst serialize = (element, config, indentation, depth, refs, printer) =>\n  ++depth > config.maxDepth\n    ? (0, _markup.printElementAsLeaf)(getType(element), config)\n    : (0, _markup.printElement)(\n        getType(element),\n        (0, _markup.printProps)(\n          getPropKeys(element),\n          element.props,\n          config,\n          indentation + config.indent,\n          depth,\n          refs,\n          printer\n        ),\n        (0, _markup.printChildren)(\n          getChildren(element.props.children),\n          config,\n          indentation + config.indent,\n          depth,\n          refs,\n          printer\n        ),\n        config,\n        indentation\n      );\n\nexports.serialize = serialize;\n\nconst test = val => val != null && ReactIs.isElement(val);\n\nexports.test = test;\nconst plugin = {\n  serialize,\n  test\n};\nvar _default = plugin;\nexports.default = _default;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\nexports.test = exports.serialize = exports.default = void 0;\n\nvar _markup = require('./lib/markup');\n\nvar global = (function () {\n  if (typeof globalThis !== 'undefined') {\n    return globalThis;\n  } else if (typeof global !== 'undefined') {\n    return global;\n  } else if (typeof self !== 'undefined') {\n    return self;\n  } else if (typeof window !== 'undefined') {\n    return window;\n  } else {\n    return Function('return this')();\n  }\n})();\n\nvar Symbol = global['jest-symbol-do-not-touch'] || global.Symbol;\nconst testSymbol =\n  typeof Symbol === 'function' && Symbol.for\n    ? Symbol.for('react.test.json')\n    : 0xea71357;\n\nconst getPropKeys = object => {\n  const {props} = object;\n  return props\n    ? Object.keys(props)\n        .filter(key => props[key] !== undefined)\n        .sort()\n    : [];\n};\n\nconst serialize = (object, config, indentation, depth, refs, printer) =>\n  ++depth > config.maxDepth\n    ? (0, _markup.printElementAsLeaf)(object.type, config)\n    : (0, _markup.printElement)(\n        object.type,\n        object.props\n          ? (0, _markup.printProps)(\n              getPropKeys(object),\n              object.props,\n              config,\n              indentation + config.indent,\n              depth,\n              refs,\n              printer\n            )\n          : '',\n        object.children\n          ? (0, _markup.printChildren)(\n              object.children,\n              config,\n              indentation + config.indent,\n              depth,\n              refs,\n              printer\n            )\n          : '',\n        config,\n        indentation\n      );\n\nexports.serialize = serialize;\n\nconst test = val => val && val.$$typeof === testSymbol;\n\nexports.test = test;\nconst plugin = {\n  serialize,\n  test\n};\nvar _default = plugin;\nexports.default = _default;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\nexports.default = exports.DEFAULT_OPTIONS = void 0;\nexports.format = format;\nexports.plugins = void 0;\n\nvar _ansiStyles = _interopRequireDefault(require('ansi-styles'));\n\nvar _collections = require('./collections');\n\nvar _AsymmetricMatcher = _interopRequireDefault(\n  require('./plugins/AsymmetricMatcher')\n);\n\nvar _ConvertAnsi = _interopRequireDefault(require('./plugins/ConvertAnsi'));\n\nvar _DOMCollection = _interopRequireDefault(require('./plugins/DOMCollection'));\n\nvar _DOMElement = _interopRequireDefault(require('./plugins/DOMElement'));\n\nvar _Immutable = _interopRequireDefault(require('./plugins/Immutable'));\n\nvar _ReactElement = _interopRequireDefault(require('./plugins/ReactElement'));\n\nvar _ReactTestComponent = _interopRequireDefault(\n  require('./plugins/ReactTestComponent')\n);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {default: obj};\n}\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* eslint-disable local/ban-types-eventually */\nconst toString = Object.prototype.toString;\nconst toISOString = Date.prototype.toISOString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\n/**\n * Explicitly comparing typeof constructor to function avoids undefined as name\n * when mock identity-obj-proxy returns the key as the value for any key.\n */\n\nconst getConstructorName = val =>\n  (typeof val.constructor === 'function' && val.constructor.name) || 'Object';\n/* global window */\n\n/** Is val is equal to global window object? Works even if it does not exist :) */\n\nconst isWindow = val => typeof window !== 'undefined' && val === window;\n\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\nconst NEWLINE_REGEXP = /\\n/gi;\n\nclass PrettyFormatPluginError extends Error {\n  constructor(message, stack) {\n    super(message);\n    this.stack = stack;\n    this.name = this.constructor.name;\n  }\n}\n\nfunction isToStringedArrayType(toStringed) {\n  return (\n    toStringed === '[object Array]' ||\n    toStringed === '[object ArrayBuffer]' ||\n    toStringed === '[object DataView]' ||\n    toStringed === '[object Float32Array]' ||\n    toStringed === '[object Float64Array]' ||\n    toStringed === '[object Int8Array]' ||\n    toStringed === '[object Int16Array]' ||\n    toStringed === '[object Int32Array]' ||\n    toStringed === '[object Uint8Array]' ||\n    toStringed === '[object Uint8ClampedArray]' ||\n    toStringed === '[object Uint16Array]' ||\n    toStringed === '[object Uint32Array]'\n  );\n}\n\nfunction printNumber(val) {\n  return Object.is(val, -0) ? '-0' : String(val);\n}\n\nfunction printBigInt(val) {\n  return String(`${val}n`);\n}\n\nfunction printFunction(val, printFunctionName) {\n  if (!printFunctionName) {\n    return '[Function]';\n  }\n\n  return '[Function ' + (val.name || 'anonymous') + ']';\n}\n\nfunction printSymbol(val) {\n  return String(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n}\n\nfunction printError(val) {\n  return '[' + errorToString.call(val) + ']';\n}\n/**\n * The first port of call for printing an object, handles most of the\n * data-types in JS.\n */\n\nfunction printBasicValue(val, printFunctionName, escapeRegex, escapeString) {\n  if (val === true || val === false) {\n    return '' + val;\n  }\n\n  if (val === undefined) {\n    return 'undefined';\n  }\n\n  if (val === null) {\n    return 'null';\n  }\n\n  const typeOf = typeof val;\n\n  if (typeOf === 'number') {\n    return printNumber(val);\n  }\n\n  if (typeOf === 'bigint') {\n    return printBigInt(val);\n  }\n\n  if (typeOf === 'string') {\n    if (escapeString) {\n      return '\"' + val.replace(/\"|\\\\/g, '\\\\$&') + '\"';\n    }\n\n    return '\"' + val + '\"';\n  }\n\n  if (typeOf === 'function') {\n    return printFunction(val, printFunctionName);\n  }\n\n  if (typeOf === 'symbol') {\n    return printSymbol(val);\n  }\n\n  const toStringed = toString.call(val);\n\n  if (toStringed === '[object WeakMap]') {\n    return 'WeakMap {}';\n  }\n\n  if (toStringed === '[object WeakSet]') {\n    return 'WeakSet {}';\n  }\n\n  if (\n    toStringed === '[object Function]' ||\n    toStringed === '[object GeneratorFunction]'\n  ) {\n    return printFunction(val, printFunctionName);\n  }\n\n  if (toStringed === '[object Symbol]') {\n    return printSymbol(val);\n  }\n\n  if (toStringed === '[object Date]') {\n    return isNaN(+val) ? 'Date { NaN }' : toISOString.call(val);\n  }\n\n  if (toStringed === '[object Error]') {\n    return printError(val);\n  }\n\n  if (toStringed === '[object RegExp]') {\n    if (escapeRegex) {\n      // https://github.com/benjamingr/RegExp.escape/blob/main/polyfill.js\n      return regExpToString.call(val).replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n    }\n\n    return regExpToString.call(val);\n  }\n\n  if (val instanceof Error) {\n    return printError(val);\n  }\n\n  return null;\n}\n/**\n * Handles more complex objects ( such as objects with circular references.\n * maps and sets etc )\n */\n\nfunction printComplexValue(\n  val,\n  config,\n  indentation,\n  depth,\n  refs,\n  hasCalledToJSON\n) {\n  if (refs.indexOf(val) !== -1) {\n    return '[Circular]';\n  }\n\n  refs = refs.slice();\n  refs.push(val);\n  const hitMaxDepth = ++depth > config.maxDepth;\n  const min = config.min;\n\n  if (\n    config.callToJSON &&\n    !hitMaxDepth &&\n    val.toJSON &&\n    typeof val.toJSON === 'function' &&\n    !hasCalledToJSON\n  ) {\n    return printer(val.toJSON(), config, indentation, depth, refs, true);\n  }\n\n  const toStringed = toString.call(val);\n\n  if (toStringed === '[object Arguments]') {\n    return hitMaxDepth\n      ? '[Arguments]'\n      : (min ? '' : 'Arguments ') +\n          '[' +\n          (0, _collections.printListItems)(\n            val,\n            config,\n            indentation,\n            depth,\n            refs,\n            printer\n          ) +\n          ']';\n  }\n\n  if (isToStringedArrayType(toStringed)) {\n    return hitMaxDepth\n      ? '[' + val.constructor.name + ']'\n      : (min\n          ? ''\n          : !config.printBasicPrototype && val.constructor.name === 'Array'\n          ? ''\n          : val.constructor.name + ' ') +\n          '[' +\n          (0, _collections.printListItems)(\n            val,\n            config,\n            indentation,\n            depth,\n            refs,\n            printer\n          ) +\n          ']';\n  }\n\n  if (toStringed === '[object Map]') {\n    return hitMaxDepth\n      ? '[Map]'\n      : 'Map {' +\n          (0, _collections.printIteratorEntries)(\n            val.entries(),\n            config,\n            indentation,\n            depth,\n            refs,\n            printer,\n            ' => '\n          ) +\n          '}';\n  }\n\n  if (toStringed === '[object Set]') {\n    return hitMaxDepth\n      ? '[Set]'\n      : 'Set {' +\n          (0, _collections.printIteratorValues)(\n            val.values(),\n            config,\n            indentation,\n            depth,\n            refs,\n            printer\n          ) +\n          '}';\n  } // Avoid failure to serialize global window object in jsdom test environment.\n  // For example, not even relevant if window is prop of React element.\n\n  return hitMaxDepth || isWindow(val)\n    ? '[' + getConstructorName(val) + ']'\n    : (min\n        ? ''\n        : !config.printBasicPrototype && getConstructorName(val) === 'Object'\n        ? ''\n        : getConstructorName(val) + ' ') +\n        '{' +\n        (0, _collections.printObjectProperties)(\n          val,\n          config,\n          indentation,\n          depth,\n          refs,\n          printer\n        ) +\n        '}';\n}\n\nfunction isNewPlugin(plugin) {\n  return plugin.serialize != null;\n}\n\nfunction printPlugin(plugin, val, config, indentation, depth, refs) {\n  let printed;\n\n  try {\n    printed = isNewPlugin(plugin)\n      ? plugin.serialize(val, config, indentation, depth, refs, printer)\n      : plugin.print(\n          val,\n          valChild => printer(valChild, config, indentation, depth, refs),\n          str => {\n            const indentationNext = indentation + config.indent;\n            return (\n              indentationNext +\n              str.replace(NEWLINE_REGEXP, '\\n' + indentationNext)\n            );\n          },\n          {\n            edgeSpacing: config.spacingOuter,\n            min: config.min,\n            spacing: config.spacingInner\n          },\n          config.colors\n        );\n  } catch (error) {\n    throw new PrettyFormatPluginError(error.message, error.stack);\n  }\n\n  if (typeof printed !== 'string') {\n    throw new Error(\n      `pretty-format: Plugin must return type \"string\" but instead returned \"${typeof printed}\".`\n    );\n  }\n\n  return printed;\n}\n\nfunction findPlugin(plugins, val) {\n  for (let p = 0; p < plugins.length; p++) {\n    try {\n      if (plugins[p].test(val)) {\n        return plugins[p];\n      }\n    } catch (error) {\n      throw new PrettyFormatPluginError(error.message, error.stack);\n    }\n  }\n\n  return null;\n}\n\nfunction printer(val, config, indentation, depth, refs, hasCalledToJSON) {\n  const plugin = findPlugin(config.plugins, val);\n\n  if (plugin !== null) {\n    return printPlugin(plugin, val, config, indentation, depth, refs);\n  }\n\n  const basicResult = printBasicValue(\n    val,\n    config.printFunctionName,\n    config.escapeRegex,\n    config.escapeString\n  );\n\n  if (basicResult !== null) {\n    return basicResult;\n  }\n\n  return printComplexValue(\n    val,\n    config,\n    indentation,\n    depth,\n    refs,\n    hasCalledToJSON\n  );\n}\n\nconst DEFAULT_THEME = {\n  comment: 'gray',\n  content: 'reset',\n  prop: 'yellow',\n  tag: 'cyan',\n  value: 'green'\n};\nconst DEFAULT_THEME_KEYS = Object.keys(DEFAULT_THEME);\nconst DEFAULT_OPTIONS = {\n  callToJSON: true,\n  compareKeys: undefined,\n  escapeRegex: false,\n  escapeString: true,\n  highlight: false,\n  indent: 2,\n  maxDepth: Infinity,\n  min: false,\n  plugins: [],\n  printBasicPrototype: true,\n  printFunctionName: true,\n  theme: DEFAULT_THEME\n};\nexports.DEFAULT_OPTIONS = DEFAULT_OPTIONS;\n\nfunction validateOptions(options) {\n  Object.keys(options).forEach(key => {\n    if (!DEFAULT_OPTIONS.hasOwnProperty(key)) {\n      throw new Error(`pretty-format: Unknown option \"${key}\".`);\n    }\n  });\n\n  if (options.min && options.indent !== undefined && options.indent !== 0) {\n    throw new Error(\n      'pretty-format: Options \"min\" and \"indent\" cannot be used together.'\n    );\n  }\n\n  if (options.theme !== undefined) {\n    if (options.theme === null) {\n      throw new Error('pretty-format: Option \"theme\" must not be null.');\n    }\n\n    if (typeof options.theme !== 'object') {\n      throw new Error(\n        `pretty-format: Option \"theme\" must be of type \"object\" but instead received \"${typeof options.theme}\".`\n      );\n    }\n  }\n}\n\nconst getColorsHighlight = options =>\n  DEFAULT_THEME_KEYS.reduce((colors, key) => {\n    const value =\n      options.theme && options.theme[key] !== undefined\n        ? options.theme[key]\n        : DEFAULT_THEME[key];\n    const color = value && _ansiStyles.default[value];\n\n    if (\n      color &&\n      typeof color.close === 'string' &&\n      typeof color.open === 'string'\n    ) {\n      colors[key] = color;\n    } else {\n      throw new Error(\n        `pretty-format: Option \"theme\" has a key \"${key}\" whose value \"${value}\" is undefined in ansi-styles.`\n      );\n    }\n\n    return colors;\n  }, Object.create(null));\n\nconst getColorsEmpty = () =>\n  DEFAULT_THEME_KEYS.reduce((colors, key) => {\n    colors[key] = {\n      close: '',\n      open: ''\n    };\n    return colors;\n  }, Object.create(null));\n\nconst getPrintFunctionName = options =>\n  options && options.printFunctionName !== undefined\n    ? options.printFunctionName\n    : DEFAULT_OPTIONS.printFunctionName;\n\nconst getEscapeRegex = options =>\n  options && options.escapeRegex !== undefined\n    ? options.escapeRegex\n    : DEFAULT_OPTIONS.escapeRegex;\n\nconst getEscapeString = options =>\n  options && options.escapeString !== undefined\n    ? options.escapeString\n    : DEFAULT_OPTIONS.escapeString;\n\nconst getConfig = options => {\n  var _options$printBasicPr;\n\n  return {\n    callToJSON:\n      options && options.callToJSON !== undefined\n        ? options.callToJSON\n        : DEFAULT_OPTIONS.callToJSON,\n    colors:\n      options && options.highlight\n        ? getColorsHighlight(options)\n        : getColorsEmpty(),\n    compareKeys:\n      options && typeof options.compareKeys === 'function'\n        ? options.compareKeys\n        : DEFAULT_OPTIONS.compareKeys,\n    escapeRegex: getEscapeRegex(options),\n    escapeString: getEscapeString(options),\n    indent:\n      options && options.min\n        ? ''\n        : createIndent(\n            options && options.indent !== undefined\n              ? options.indent\n              : DEFAULT_OPTIONS.indent\n          ),\n    maxDepth:\n      options && options.maxDepth !== undefined\n        ? options.maxDepth\n        : DEFAULT_OPTIONS.maxDepth,\n    min:\n      options && options.min !== undefined ? options.min : DEFAULT_OPTIONS.min,\n    plugins:\n      options && options.plugins !== undefined\n        ? options.plugins\n        : DEFAULT_OPTIONS.plugins,\n    printBasicPrototype:\n      (_options$printBasicPr =\n        options === null || options === void 0\n          ? void 0\n          : options.printBasicPrototype) !== null &&\n      _options$printBasicPr !== void 0\n        ? _options$printBasicPr\n        : true,\n    printFunctionName: getPrintFunctionName(options),\n    spacingInner: options && options.min ? ' ' : '\\n',\n    spacingOuter: options && options.min ? '' : '\\n'\n  };\n};\n\nfunction createIndent(indent) {\n  return new Array(indent + 1).join(' ');\n}\n/**\n * Returns a presentation string of your `val` object\n * @param val any potential JavaScript object\n * @param options Custom settings\n */\n\nfunction format(val, options) {\n  if (options) {\n    validateOptions(options);\n\n    if (options.plugins) {\n      const plugin = findPlugin(options.plugins, val);\n\n      if (plugin !== null) {\n        return printPlugin(plugin, val, getConfig(options), '', 0, []);\n      }\n    }\n  }\n\n  const basicResult = printBasicValue(\n    val,\n    getPrintFunctionName(options),\n    getEscapeRegex(options),\n    getEscapeString(options)\n  );\n\n  if (basicResult !== null) {\n    return basicResult;\n  }\n\n  return printComplexValue(val, getConfig(options), '', 0, []);\n}\n\nconst plugins = {\n  AsymmetricMatcher: _AsymmetricMatcher.default,\n  ConvertAnsi: _ConvertAnsi.default,\n  DOMCollection: _DOMCollection.default,\n  DOMElement: _DOMElement.default,\n  Immutable: _Immutable.default,\n  ReactElement: _ReactElement.default,\n  ReactTestComponent: _ReactTestComponent.default\n};\nexports.plugins = plugins;\nvar _default = format;\nexports.default = _default;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\n// eslint-disable-next-line no-unused-vars\nfunction iteratorProxy() {\n  var values = this;\n  var index = 0;\n  var iter = {\n    '@@iterator': function iterator() {\n      return iter;\n    },\n    next: function next() {\n      if (index < values.length) {\n        var value = values[index];\n        index = index + 1;\n        return {\n          done: false,\n          value: value\n        };\n      } else {\n        return {\n          done: true\n        };\n      }\n    }\n  };\n  return iter;\n}\nvar _default = iteratorProxy;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = iterationDecorator;\nvar _iteratorProxy = _interopRequireDefault(require(\"./iteratorProxy\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction iterationDecorator(collection, entries) {\n  if (typeof Symbol === 'function' && _typeof(Symbol.iterator) === 'symbol') {\n    Object.defineProperty(collection, Symbol.iterator, {\n      value: _iteratorProxy.default.bind(entries)\n    });\n  }\n  return collection;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar properties = [['aria-activedescendant', {\n  'type': 'id'\n}], ['aria-atomic', {\n  'type': 'boolean'\n}], ['aria-autocomplete', {\n  'type': 'token',\n  'values': ['inline', 'list', 'both', 'none']\n}], ['aria-braillelabel', {\n  'type': 'string'\n}], ['aria-brailleroledescription', {\n  'type': 'string'\n}], ['aria-busy', {\n  'type': 'boolean'\n}], ['aria-checked', {\n  'type': 'tristate'\n}], ['aria-colcount', {\n  type: 'integer'\n}], ['aria-colindex', {\n  type: 'integer'\n}], ['aria-colspan', {\n  type: 'integer'\n}], ['aria-controls', {\n  'type': 'idlist'\n}], ['aria-current', {\n  type: 'token',\n  values: ['page', 'step', 'location', 'date', 'time', true, false]\n}], ['aria-describedby', {\n  'type': 'idlist'\n}], ['aria-description', {\n  'type': 'string'\n}], ['aria-details', {\n  'type': 'id'\n}], ['aria-disabled', {\n  'type': 'boolean'\n}], ['aria-dropeffect', {\n  'type': 'tokenlist',\n  'values': ['copy', 'execute', 'link', 'move', 'none', 'popup']\n}], ['aria-errormessage', {\n  'type': 'id'\n}], ['aria-expanded', {\n  'type': 'boolean',\n  'allowundefined': true\n}], ['aria-flowto', {\n  'type': 'idlist'\n}], ['aria-grabbed', {\n  'type': 'boolean',\n  'allowundefined': true\n}], ['aria-haspopup', {\n  'type': 'token',\n  'values': [false, true, 'menu', 'listbox', 'tree', 'grid', 'dialog']\n}], ['aria-hidden', {\n  'type': 'boolean',\n  'allowundefined': true\n}], ['aria-invalid', {\n  'type': 'token',\n  'values': ['grammar', false, 'spelling', true]\n}], ['aria-keyshortcuts', {\n  type: 'string'\n}], ['aria-label', {\n  'type': 'string'\n}], ['aria-labelledby', {\n  'type': 'idlist'\n}], ['aria-level', {\n  'type': 'integer'\n}], ['aria-live', {\n  'type': 'token',\n  'values': ['assertive', 'off', 'polite']\n}], ['aria-modal', {\n  type: 'boolean'\n}], ['aria-multiline', {\n  'type': 'boolean'\n}], ['aria-multiselectable', {\n  'type': 'boolean'\n}], ['aria-orientation', {\n  'type': 'token',\n  'values': ['vertical', 'undefined', 'horizontal']\n}], ['aria-owns', {\n  'type': 'idlist'\n}], ['aria-placeholder', {\n  type: 'string'\n}], ['aria-posinset', {\n  'type': 'integer'\n}], ['aria-pressed', {\n  'type': 'tristate'\n}], ['aria-readonly', {\n  'type': 'boolean'\n}], ['aria-relevant', {\n  'type': 'tokenlist',\n  'values': ['additions', 'all', 'removals', 'text']\n}], ['aria-required', {\n  'type': 'boolean'\n}], ['aria-roledescription', {\n  type: 'string'\n}], ['aria-rowcount', {\n  type: 'integer'\n}], ['aria-rowindex', {\n  type: 'integer'\n}], ['aria-rowspan', {\n  type: 'integer'\n}], ['aria-selected', {\n  'type': 'boolean',\n  'allowundefined': true\n}], ['aria-setsize', {\n  'type': 'integer'\n}], ['aria-sort', {\n  'type': 'token',\n  'values': ['ascending', 'descending', 'none', 'other']\n}], ['aria-valuemax', {\n  'type': 'number'\n}], ['aria-valuemin', {\n  'type': 'number'\n}], ['aria-valuenow', {\n  'type': 'number'\n}], ['aria-valuetext', {\n  'type': 'string'\n}]];\nvar ariaPropsMap = {\n  entries: function entries() {\n    return properties;\n  },\n  forEach: function forEach(fn) {\n    var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    var _iterator = _createForOfIteratorHelper(properties),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var _step$value = _slicedToArray(_step.value, 2),\n          key = _step$value[0],\n          values = _step$value[1];\n        fn.call(thisArg, values, key, properties);\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  },\n  get: function get(key) {\n    var item = properties.find(function (tuple) {\n      return tuple[0] === key ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!ariaPropsMap.get(key);\n  },\n  keys: function keys() {\n    return properties.map(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n        key = _ref2[0];\n      return key;\n    });\n  },\n  values: function values() {\n    return properties.map(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n        values = _ref4[1];\n      return values;\n    });\n  }\n};\nvar _default = (0, _iterationDecorator.default)(ariaPropsMap, ariaPropsMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar dom = [['a', {\n  reserved: false\n}], ['abbr', {\n  reserved: false\n}], ['acronym', {\n  reserved: false\n}], ['address', {\n  reserved: false\n}], ['applet', {\n  reserved: false\n}], ['area', {\n  reserved: false\n}], ['article', {\n  reserved: false\n}], ['aside', {\n  reserved: false\n}], ['audio', {\n  reserved: false\n}], ['b', {\n  reserved: false\n}], ['base', {\n  reserved: true\n}], ['bdi', {\n  reserved: false\n}], ['bdo', {\n  reserved: false\n}], ['big', {\n  reserved: false\n}], ['blink', {\n  reserved: false\n}], ['blockquote', {\n  reserved: false\n}], ['body', {\n  reserved: false\n}], ['br', {\n  reserved: false\n}], ['button', {\n  reserved: false\n}], ['canvas', {\n  reserved: false\n}], ['caption', {\n  reserved: false\n}], ['center', {\n  reserved: false\n}], ['cite', {\n  reserved: false\n}], ['code', {\n  reserved: false\n}], ['col', {\n  reserved: true\n}], ['colgroup', {\n  reserved: true\n}], ['content', {\n  reserved: false\n}], ['data', {\n  reserved: false\n}], ['datalist', {\n  reserved: false\n}], ['dd', {\n  reserved: false\n}], ['del', {\n  reserved: false\n}], ['details', {\n  reserved: false\n}], ['dfn', {\n  reserved: false\n}], ['dialog', {\n  reserved: false\n}], ['dir', {\n  reserved: false\n}], ['div', {\n  reserved: false\n}], ['dl', {\n  reserved: false\n}], ['dt', {\n  reserved: false\n}], ['em', {\n  reserved: false\n}], ['embed', {\n  reserved: false\n}], ['fieldset', {\n  reserved: false\n}], ['figcaption', {\n  reserved: false\n}], ['figure', {\n  reserved: false\n}], ['font', {\n  reserved: false\n}], ['footer', {\n  reserved: false\n}], ['form', {\n  reserved: false\n}], ['frame', {\n  reserved: false\n}], ['frameset', {\n  reserved: false\n}], ['h1', {\n  reserved: false\n}], ['h2', {\n  reserved: false\n}], ['h3', {\n  reserved: false\n}], ['h4', {\n  reserved: false\n}], ['h5', {\n  reserved: false\n}], ['h6', {\n  reserved: false\n}], ['head', {\n  reserved: true\n}], ['header', {\n  reserved: false\n}], ['hgroup', {\n  reserved: false\n}], ['hr', {\n  reserved: false\n}], ['html', {\n  reserved: true\n}], ['i', {\n  reserved: false\n}], ['iframe', {\n  reserved: false\n}], ['img', {\n  reserved: false\n}], ['input', {\n  reserved: false\n}], ['ins', {\n  reserved: false\n}], ['kbd', {\n  reserved: false\n}], ['keygen', {\n  reserved: false\n}], ['label', {\n  reserved: false\n}], ['legend', {\n  reserved: false\n}], ['li', {\n  reserved: false\n}], ['link', {\n  reserved: true\n}], ['main', {\n  reserved: false\n}], ['map', {\n  reserved: false\n}], ['mark', {\n  reserved: false\n}], ['marquee', {\n  reserved: false\n}], ['menu', {\n  reserved: false\n}], ['menuitem', {\n  reserved: false\n}], ['meta', {\n  reserved: true\n}], ['meter', {\n  reserved: false\n}], ['nav', {\n  reserved: false\n}], ['noembed', {\n  reserved: true\n}], ['noscript', {\n  reserved: true\n}], ['object', {\n  reserved: false\n}], ['ol', {\n  reserved: false\n}], ['optgroup', {\n  reserved: false\n}], ['option', {\n  reserved: false\n}], ['output', {\n  reserved: false\n}], ['p', {\n  reserved: false\n}], ['param', {\n  reserved: true\n}], ['picture', {\n  reserved: true\n}], ['pre', {\n  reserved: false\n}], ['progress', {\n  reserved: false\n}], ['q', {\n  reserved: false\n}], ['rp', {\n  reserved: false\n}], ['rt', {\n  reserved: false\n}], ['rtc', {\n  reserved: false\n}], ['ruby', {\n  reserved: false\n}], ['s', {\n  reserved: false\n}], ['samp', {\n  reserved: false\n}], ['script', {\n  reserved: true\n}], ['section', {\n  reserved: false\n}], ['select', {\n  reserved: false\n}], ['small', {\n  reserved: false\n}], ['source', {\n  reserved: true\n}], ['spacer', {\n  reserved: false\n}], ['span', {\n  reserved: false\n}], ['strike', {\n  reserved: false\n}], ['strong', {\n  reserved: false\n}], ['style', {\n  reserved: true\n}], ['sub', {\n  reserved: false\n}], ['summary', {\n  reserved: false\n}], ['sup', {\n  reserved: false\n}], ['table', {\n  reserved: false\n}], ['tbody', {\n  reserved: false\n}], ['td', {\n  reserved: false\n}], ['textarea', {\n  reserved: false\n}], ['tfoot', {\n  reserved: false\n}], ['th', {\n  reserved: false\n}], ['thead', {\n  reserved: false\n}], ['time', {\n  reserved: false\n}], ['title', {\n  reserved: true\n}], ['tr', {\n  reserved: false\n}], ['track', {\n  reserved: true\n}], ['tt', {\n  reserved: false\n}], ['u', {\n  reserved: false\n}], ['ul', {\n  reserved: false\n}], ['var', {\n  reserved: false\n}], ['video', {\n  reserved: false\n}], ['wbr', {\n  reserved: false\n}], ['xmp', {\n  reserved: false\n}]];\nvar domMap = {\n  entries: function entries() {\n    return dom;\n  },\n  forEach: function forEach(fn) {\n    var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    var _iterator = _createForOfIteratorHelper(dom),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var _step$value = _slicedToArray(_step.value, 2),\n          key = _step$value[0],\n          values = _step$value[1];\n        fn.call(thisArg, values, key, dom);\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  },\n  get: function get(key) {\n    var item = dom.find(function (tuple) {\n      return tuple[0] === key ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!domMap.get(key);\n  },\n  keys: function keys() {\n    return dom.map(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n        key = _ref2[0];\n      return key;\n    });\n  },\n  values: function values() {\n    return dom.map(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n        values = _ref4[1];\n      return values;\n    });\n  }\n};\nvar _default = (0, _iterationDecorator.default)(domMap, domMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar commandRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget']]\n};\nvar _default = commandRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar compositeRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-activedescendant': null,\n    'aria-disabled': null\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget']]\n};\nvar _default = compositeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar inputRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'input'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget']]\n};\nvar _default = inputRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar landmarkRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = landmarkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar rangeRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-valuemax': null,\n    'aria-valuemin': null,\n    'aria-valuenow': null\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = rangeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar roletypeRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: [],\n  prohibitedProps: [],\n  props: {\n    'aria-atomic': null,\n    'aria-busy': null,\n    'aria-controls': null,\n    'aria-current': null,\n    'aria-describedby': null,\n    'aria-details': null,\n    'aria-dropeffect': null,\n    'aria-flowto': null,\n    'aria-grabbed': null,\n    'aria-hidden': null,\n    'aria-keyshortcuts': null,\n    'aria-label': null,\n    'aria-labelledby': null,\n    'aria-live': null,\n    'aria-owns': null,\n    'aria-relevant': null,\n    'aria-roledescription': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'role'\n    },\n    module: 'XHTML'\n  }, {\n    concept: {\n      name: 'type'\n    },\n    module: 'Dublin Core'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: []\n};\nvar _default = roletypeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar sectionRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: [],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'frontmatter'\n    },\n    module: 'DTB'\n  }, {\n    concept: {\n      name: 'level'\n    },\n    module: 'DTB'\n  }, {\n    concept: {\n      name: 'level'\n    },\n    module: 'SMIL'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = sectionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar sectionheadRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = sectionheadRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar selectRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-orientation': null\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite'], ['roletype', 'structure', 'section', 'group']]\n};\nvar _default = selectRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar structureRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: [],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype']]\n};\nvar _default = structureRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar widgetRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: [],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype']]\n};\nvar _default = widgetRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar windowRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-modal': null\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype']]\n};\nvar _default = windowRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _commandRole = _interopRequireDefault(require(\"./abstract/commandRole\"));\nvar _compositeRole = _interopRequireDefault(require(\"./abstract/compositeRole\"));\nvar _inputRole = _interopRequireDefault(require(\"./abstract/inputRole\"));\nvar _landmarkRole = _interopRequireDefault(require(\"./abstract/landmarkRole\"));\nvar _rangeRole = _interopRequireDefault(require(\"./abstract/rangeRole\"));\nvar _roletypeRole = _interopRequireDefault(require(\"./abstract/roletypeRole\"));\nvar _sectionRole = _interopRequireDefault(require(\"./abstract/sectionRole\"));\nvar _sectionheadRole = _interopRequireDefault(require(\"./abstract/sectionheadRole\"));\nvar _selectRole = _interopRequireDefault(require(\"./abstract/selectRole\"));\nvar _structureRole = _interopRequireDefault(require(\"./abstract/structureRole\"));\nvar _widgetRole = _interopRequireDefault(require(\"./abstract/widgetRole\"));\nvar _windowRole = _interopRequireDefault(require(\"./abstract/windowRole\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaAbstractRoles = [['command', _commandRole.default], ['composite', _compositeRole.default], ['input', _inputRole.default], ['landmark', _landmarkRole.default], ['range', _rangeRole.default], ['roletype', _roletypeRole.default], ['section', _sectionRole.default], ['sectionhead', _sectionheadRole.default], ['select', _selectRole.default], ['structure', _structureRole.default], ['widget', _widgetRole.default], ['window', _windowRole.default]];\nvar _default = ariaAbstractRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar alertRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-atomic': 'true',\n    'aria-live': 'assertive'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'alert'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = alertRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar alertdialogRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'alert'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'alert'], ['roletype', 'window', 'dialog']]\n};\nvar _default = alertdialogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar applicationRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-activedescendant': null,\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'Device Independence Delivery Unit'\n    }\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = applicationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar articleRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-posinset': null,\n    'aria-setsize': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'article'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'document']]\n};\nvar _default = articleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar bannerRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      constraints: ['scoped to the body element'],\n      name: 'header'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = bannerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar blockquoteRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'blockquote'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = blockquoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar buttonRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-pressed': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'button'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'image'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'reset'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'submit'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'button'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'trigger'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command']]\n};\nvar _default = buttonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar captionRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'caption'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['figure', 'grid', 'table'],\n  requiredContextRole: ['figure', 'grid', 'table'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = captionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar cellRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-colindex': null,\n    'aria-colspan': null,\n    'aria-rowindex': null,\n    'aria-rowspan': null\n  },\n  relatedConcepts: [{\n    concept: {\n      constraints: ['ancestor table element has table role'],\n      name: 'td'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['row'],\n  requiredContextRole: ['row'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = cellRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar checkboxRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-checked': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-invalid': null,\n    'aria-readonly': null,\n    'aria-required': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'checkbox'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'option'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-checked': null\n  },\n  superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = checkboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar codeRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'code'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = codeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar columnheaderRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-sort': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'th'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'scope',\n        value: 'col'\n      }],\n      name: 'th'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'scope',\n        value: 'colgroup'\n      }],\n      name: 'th'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['row'],\n  requiredContextRole: ['row'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'structure', 'section', 'cell', 'gridcell'], ['roletype', 'widget', 'gridcell'], ['roletype', 'structure', 'sectionhead']]\n};\nvar _default = columnheaderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar comboboxRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-activedescendant': null,\n    'aria-autocomplete': null,\n    'aria-errormessage': null,\n    'aria-invalid': null,\n    'aria-readonly': null,\n    'aria-required': null,\n    'aria-expanded': 'false',\n    'aria-haspopup': 'listbox'\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'email'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'search'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'tel'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'text'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'url'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'url'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'multiple'\n      }, {\n        constraints: ['undefined'],\n        name: 'size'\n      }],\n      constraints: ['the multiple attribute is not set and the size attribute does not have a value greater than 1'],\n      name: 'select'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'select'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-controls': null,\n    'aria-expanded': 'false'\n  },\n  superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = comboboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar complementaryRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'aside'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'aria-label'\n      }],\n      constraints: ['scoped to a sectioning content element', 'scoped to a sectioning root element other than body'],\n      name: 'aside'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'aria-labelledby'\n      }],\n      constraints: ['scoped to a sectioning content element', 'scoped to a sectioning root element other than body'],\n      name: 'aside'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = complementaryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar contentinfoRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      constraints: ['scoped to the body element'],\n      name: 'footer'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = contentinfoRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar definitionRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'dd'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = definitionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar deletionRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'del'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = deletionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar dialogRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'dialog'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'window']]\n};\nvar _default = dialogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar directoryRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    module: 'DAISY Guide'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'list']]\n};\nvar _default = directoryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar documentRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'Device Independence Delivery Unit'\n    }\n  }, {\n    concept: {\n      name: 'html'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = documentRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar emphasisRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'em'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = emphasisRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar feedRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['article']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'list']]\n};\nvar _default = feedRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar figureRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'figure'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = figureRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar formRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'aria-label'\n      }],\n      name: 'form'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'aria-labelledby'\n      }],\n      name: 'form'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'name'\n      }],\n      name: 'form'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = formRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar genericRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'a'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'area'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'aside'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'b'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'bdo'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'body'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'data'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'div'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      constraints: ['scoped to the main element', 'scoped to a sectioning content element', 'scoped to a sectioning root element other than body'],\n      name: 'footer'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      constraints: ['scoped to the main element', 'scoped to a sectioning content element', 'scoped to a sectioning root element other than body'],\n      name: 'header'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'hgroup'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'i'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'pre'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'q'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'samp'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'section'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'small'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'span'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'u'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = genericRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar gridRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-multiselectable': null,\n    'aria-readonly': null\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['row'], ['row', 'rowgroup']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite'], ['roletype', 'structure', 'section', 'table']]\n};\nvar _default = gridRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar gridcellRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null,\n    'aria-readonly': null,\n    'aria-required': null,\n    'aria-selected': null\n  },\n  relatedConcepts: [{\n    concept: {\n      constraints: ['ancestor table element has grid role', 'ancestor table element has treegrid role'],\n      name: 'td'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['row'],\n  requiredContextRole: ['row'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'widget']]\n};\nvar _default = gridcellRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar groupRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-activedescendant': null,\n    'aria-disabled': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'details'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'fieldset'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'optgroup'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'address'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = groupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar headingRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-level': '2'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'h1'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'h2'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'h3'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'h4'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'h5'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'h6'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-level': '2'\n  },\n  superClass: [['roletype', 'structure', 'sectionhead']]\n};\nvar _default = headingRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar imgRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'alt'\n      }],\n      name: 'img'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'alt'\n      }],\n      name: 'img'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'imggroup'\n    },\n    module: 'DTB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = imgRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar insertionRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'ins'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = insertionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar linkRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-expanded': null,\n    'aria-haspopup': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'href'\n      }],\n      name: 'a'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'href'\n      }],\n      name: 'area'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command']]\n};\nvar _default = linkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar listRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'menu'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'ol'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'ul'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['listitem']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = listRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar listboxRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-invalid': null,\n    'aria-multiselectable': null,\n    'aria-readonly': null,\n    'aria-required': null,\n    'aria-orientation': 'vertical'\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['>1'],\n        name: 'size'\n      }],\n      constraints: ['the size attribute value is greater than 1'],\n      name: 'select'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'multiple'\n      }],\n      name: 'select'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'datalist'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'list'\n    },\n    module: 'ARIA'\n  }, {\n    concept: {\n      name: 'select'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['option', 'group'], ['option']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = listboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar listitemRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-level': null,\n    'aria-posinset': null,\n    'aria-setsize': null\n  },\n  relatedConcepts: [{\n    concept: {\n      constraints: ['direct descendant of ol', 'direct descendant of ul', 'direct descendant of menu'],\n      name: 'li'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'item'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: ['directory', 'list'],\n  requiredContextRole: ['directory', 'list'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = listitemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar logRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-live': 'polite'\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = logRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar mainRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'main'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = mainRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar markRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: [],\n  props: {\n    'aria-braillelabel': null,\n    'aria-brailleroledescription': null,\n    'aria-description': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'mark'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = markRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar marqueeRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = marqueeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar mathRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'math'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = mathRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar menuRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-orientation': 'vertical'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'MENU'\n    },\n    module: 'JAPI'\n  }, {\n    concept: {\n      name: 'list'\n    },\n    module: 'ARIA'\n  }, {\n    concept: {\n      name: 'select'\n    },\n    module: 'XForms'\n  }, {\n    concept: {\n      name: 'sidebar'\n    },\n    module: 'DTB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['menuitem', 'group'], ['menuitemradio', 'group'], ['menuitemcheckbox', 'group'], ['menuitem'], ['menuitemcheckbox'], ['menuitemradio']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = menuRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar menubarRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-orientation': 'horizontal'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'toolbar'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['menuitem', 'group'], ['menuitemradio', 'group'], ['menuitemcheckbox', 'group'], ['menuitem'], ['menuitemcheckbox'], ['menuitemradio']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite', 'select', 'menu'], ['roletype', 'structure', 'section', 'group', 'select', 'menu']]\n};\nvar _default = menubarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar menuitemRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-posinset': null,\n    'aria-setsize': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'MENU_ITEM'\n    },\n    module: 'JAPI'\n  }, {\n    concept: {\n      name: 'listitem'\n    },\n    module: 'ARIA'\n  }, {\n    concept: {\n      name: 'option'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: ['group', 'menu', 'menubar'],\n  requiredContextRole: ['group', 'menu', 'menubar'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command']]\n};\nvar _default = menuitemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar menuitemcheckboxRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'menuitem'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: ['group', 'menu', 'menubar'],\n  requiredContextRole: ['group', 'menu', 'menubar'],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-checked': null\n  },\n  superClass: [['roletype', 'widget', 'input', 'checkbox'], ['roletype', 'widget', 'command', 'menuitem']]\n};\nvar _default = menuitemcheckboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar menuitemradioRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'menuitem'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: ['group', 'menu', 'menubar'],\n  requiredContextRole: ['group', 'menu', 'menubar'],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-checked': null\n  },\n  superClass: [['roletype', 'widget', 'input', 'checkbox', 'menuitemcheckbox'], ['roletype', 'widget', 'command', 'menuitem', 'menuitemcheckbox'], ['roletype', 'widget', 'input', 'radio']]\n};\nvar _default = menuitemradioRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar meterRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-valuetext': null,\n    'aria-valuemax': '100',\n    'aria-valuemin': '0'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'meter'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-valuenow': null\n  },\n  superClass: [['roletype', 'structure', 'range']]\n};\nvar _default = meterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar navigationRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'nav'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = navigationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar noneRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: [],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: []\n};\nvar _default = noneRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar noteRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = noteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar optionRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-checked': null,\n    'aria-posinset': null,\n    'aria-setsize': null,\n    'aria-selected': 'false'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'item'\n    },\n    module: 'XForms'\n  }, {\n    concept: {\n      name: 'listitem'\n    },\n    module: 'ARIA'\n  }, {\n    concept: {\n      name: 'option'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-selected': 'false'\n  },\n  superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = optionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar paragraphRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'p'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = paragraphRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar presentationRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'alt',\n        value: ''\n      }],\n      name: 'img'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = presentationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar progressbarRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-valuetext': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'progress'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'status'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'range'], ['roletype', 'widget']]\n};\nvar _default = progressbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar radioRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-checked': null,\n    'aria-posinset': null,\n    'aria-setsize': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'radio'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-checked': null\n  },\n  superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = radioRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar radiogroupRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null,\n    'aria-readonly': null,\n    'aria-required': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'list'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['radio']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = radiogroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar regionRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'aria-label'\n      }],\n      name: 'section'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'aria-labelledby'\n      }],\n      name: 'section'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'Device Independence Glossart perceivable unit'\n    }\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = regionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar rowRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-colindex': null,\n    'aria-expanded': null,\n    'aria-level': null,\n    'aria-posinset': null,\n    'aria-rowindex': null,\n    'aria-selected': null,\n    'aria-setsize': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'tr'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['grid', 'rowgroup', 'table', 'treegrid'],\n  requiredContextRole: ['grid', 'rowgroup', 'table', 'treegrid'],\n  requiredOwnedElements: [['cell'], ['columnheader'], ['gridcell'], ['rowheader']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'group'], ['roletype', 'widget']]\n};\nvar _default = rowRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar rowgroupRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'tbody'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'tfoot'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'thead'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['grid', 'table', 'treegrid'],\n  requiredContextRole: ['grid', 'table', 'treegrid'],\n  requiredOwnedElements: [['row']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = rowgroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar rowheaderRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-sort': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'scope',\n        value: 'row'\n      }],\n      name: 'th'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'scope',\n        value: 'rowgroup'\n      }],\n      name: 'th'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['row', 'rowgroup'],\n  requiredContextRole: ['row', 'rowgroup'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'structure', 'section', 'cell', 'gridcell'], ['roletype', 'widget', 'gridcell'], ['roletype', 'structure', 'sectionhead']]\n};\nvar _default = rowheaderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar scrollbarRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-valuetext': null,\n    'aria-orientation': 'vertical',\n    'aria-valuemax': '100',\n    'aria-valuemin': '0'\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-controls': null,\n    'aria-valuenow': null\n  },\n  superClass: [['roletype', 'structure', 'range'], ['roletype', 'widget']]\n};\nvar _default = scrollbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar searchRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = searchRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar searchboxRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'search'\n      }],\n      constraints: ['the list attribute is not set'],\n      name: 'input'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'input', 'textbox']]\n};\nvar _default = searchboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar separatorRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-orientation': 'horizontal',\n    'aria-valuemax': '100',\n    'aria-valuemin': '0',\n    'aria-valuenow': null,\n    'aria-valuetext': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'hr'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = separatorRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar sliderRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-haspopup': null,\n    'aria-invalid': null,\n    'aria-readonly': null,\n    'aria-valuetext': null,\n    'aria-orientation': 'horizontal',\n    'aria-valuemax': '100',\n    'aria-valuemin': '0'\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'range'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-valuenow': null\n  },\n  superClass: [['roletype', 'widget', 'input'], ['roletype', 'structure', 'range']]\n};\nvar _default = sliderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar spinbuttonRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null,\n    'aria-readonly': null,\n    'aria-required': null,\n    'aria-valuetext': null,\n    'aria-valuenow': '0'\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'number'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite'], ['roletype', 'widget', 'input'], ['roletype', 'structure', 'range']]\n};\nvar _default = spinbuttonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar statusRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-atomic': 'true',\n    'aria-live': 'polite'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'output'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = statusRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar strongRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'strong'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = strongRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar subscriptRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'sub'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = subscriptRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar superscriptRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'sup'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = superscriptRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar switchRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'button'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-checked': null\n  },\n  superClass: [['roletype', 'widget', 'input', 'checkbox']]\n};\nvar _default = switchRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar tabRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-posinset': null,\n    'aria-setsize': null,\n    'aria-selected': 'false'\n  },\n  relatedConcepts: [],\n  requireContextRole: ['tablist'],\n  requiredContextRole: ['tablist'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'sectionhead'], ['roletype', 'widget']]\n};\nvar _default = tabRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar tableRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-colcount': null,\n    'aria-rowcount': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'table'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['row'], ['row', 'rowgroup']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = tableRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar tablistRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-level': null,\n    'aria-multiselectable': null,\n    'aria-orientation': 'horizontal'\n  },\n  relatedConcepts: [{\n    module: 'DAISY',\n    concept: {\n      name: 'guide'\n    }\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['tab']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite']]\n};\nvar _default = tablistRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar tabpanelRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = tabpanelRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar termRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'dfn'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'dt'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = termRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar textboxRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-activedescendant': null,\n    'aria-autocomplete': null,\n    'aria-errormessage': null,\n    'aria-haspopup': null,\n    'aria-invalid': null,\n    'aria-multiline': null,\n    'aria-placeholder': null,\n    'aria-readonly': null,\n    'aria-required': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'type'\n      }, {\n        constraints: ['undefined'],\n        name: 'list'\n      }],\n      constraints: ['the list attribute is not set'],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'email'\n      }],\n      constraints: ['the list attribute is not set'],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'tel'\n      }],\n      constraints: ['the list attribute is not set'],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'text'\n      }],\n      constraints: ['the list attribute is not set'],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'url'\n      }],\n      constraints: ['the list attribute is not set'],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'input'\n    },\n    module: 'XForms'\n  }, {\n    concept: {\n      name: 'textarea'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = textboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar timeRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'time'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = timeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar timerRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'status']]\n};\nvar _default = timerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar toolbarRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-orientation': 'horizontal'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'menubar'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'group']]\n};\nvar _default = toolbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar tooltipRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = tooltipRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar treeRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null,\n    'aria-multiselectable': null,\n    'aria-required': null,\n    'aria-orientation': 'vertical'\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['treeitem', 'group'], ['treeitem']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = treeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar treegridRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['row'], ['row', 'rowgroup']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite', 'grid'], ['roletype', 'structure', 'section', 'table', 'grid'], ['roletype', 'widget', 'composite', 'select', 'tree'], ['roletype', 'structure', 'section', 'group', 'select', 'tree']]\n};\nvar _default = treegridRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar treeitemRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-expanded': null,\n    'aria-haspopup': null\n  },\n  relatedConcepts: [],\n  requireContextRole: ['group', 'tree'],\n  requiredContextRole: ['group', 'tree'],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-selected': null\n  },\n  superClass: [['roletype', 'structure', 'section', 'listitem'], ['roletype', 'widget', 'input', 'option']]\n};\nvar _default = treeitemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _alertRole = _interopRequireDefault(require(\"./literal/alertRole\"));\nvar _alertdialogRole = _interopRequireDefault(require(\"./literal/alertdialogRole\"));\nvar _applicationRole = _interopRequireDefault(require(\"./literal/applicationRole\"));\nvar _articleRole = _interopRequireDefault(require(\"./literal/articleRole\"));\nvar _bannerRole = _interopRequireDefault(require(\"./literal/bannerRole\"));\nvar _blockquoteRole = _interopRequireDefault(require(\"./literal/blockquoteRole\"));\nvar _buttonRole = _interopRequireDefault(require(\"./literal/buttonRole\"));\nvar _captionRole = _interopRequireDefault(require(\"./literal/captionRole\"));\nvar _cellRole = _interopRequireDefault(require(\"./literal/cellRole\"));\nvar _checkboxRole = _interopRequireDefault(require(\"./literal/checkboxRole\"));\nvar _codeRole = _interopRequireDefault(require(\"./literal/codeRole\"));\nvar _columnheaderRole = _interopRequireDefault(require(\"./literal/columnheaderRole\"));\nvar _comboboxRole = _interopRequireDefault(require(\"./literal/comboboxRole\"));\nvar _complementaryRole = _interopRequireDefault(require(\"./literal/complementaryRole\"));\nvar _contentinfoRole = _interopRequireDefault(require(\"./literal/contentinfoRole\"));\nvar _definitionRole = _interopRequireDefault(require(\"./literal/definitionRole\"));\nvar _deletionRole = _interopRequireDefault(require(\"./literal/deletionRole\"));\nvar _dialogRole = _interopRequireDefault(require(\"./literal/dialogRole\"));\nvar _directoryRole = _interopRequireDefault(require(\"./literal/directoryRole\"));\nvar _documentRole = _interopRequireDefault(require(\"./literal/documentRole\"));\nvar _emphasisRole = _interopRequireDefault(require(\"./literal/emphasisRole\"));\nvar _feedRole = _interopRequireDefault(require(\"./literal/feedRole\"));\nvar _figureRole = _interopRequireDefault(require(\"./literal/figureRole\"));\nvar _formRole = _interopRequireDefault(require(\"./literal/formRole\"));\nvar _genericRole = _interopRequireDefault(require(\"./literal/genericRole\"));\nvar _gridRole = _interopRequireDefault(require(\"./literal/gridRole\"));\nvar _gridcellRole = _interopRequireDefault(require(\"./literal/gridcellRole\"));\nvar _groupRole = _interopRequireDefault(require(\"./literal/groupRole\"));\nvar _headingRole = _interopRequireDefault(require(\"./literal/headingRole\"));\nvar _imgRole = _interopRequireDefault(require(\"./literal/imgRole\"));\nvar _insertionRole = _interopRequireDefault(require(\"./literal/insertionRole\"));\nvar _linkRole = _interopRequireDefault(require(\"./literal/linkRole\"));\nvar _listRole = _interopRequireDefault(require(\"./literal/listRole\"));\nvar _listboxRole = _interopRequireDefault(require(\"./literal/listboxRole\"));\nvar _listitemRole = _interopRequireDefault(require(\"./literal/listitemRole\"));\nvar _logRole = _interopRequireDefault(require(\"./literal/logRole\"));\nvar _mainRole = _interopRequireDefault(require(\"./literal/mainRole\"));\nvar _markRole = _interopRequireDefault(require(\"./literal/markRole\"));\nvar _marqueeRole = _interopRequireDefault(require(\"./literal/marqueeRole\"));\nvar _mathRole = _interopRequireDefault(require(\"./literal/mathRole\"));\nvar _menuRole = _interopRequireDefault(require(\"./literal/menuRole\"));\nvar _menubarRole = _interopRequireDefault(require(\"./literal/menubarRole\"));\nvar _menuitemRole = _interopRequireDefault(require(\"./literal/menuitemRole\"));\nvar _menuitemcheckboxRole = _interopRequireDefault(require(\"./literal/menuitemcheckboxRole\"));\nvar _menuitemradioRole = _interopRequireDefault(require(\"./literal/menuitemradioRole\"));\nvar _meterRole = _interopRequireDefault(require(\"./literal/meterRole\"));\nvar _navigationRole = _interopRequireDefault(require(\"./literal/navigationRole\"));\nvar _noneRole = _interopRequireDefault(require(\"./literal/noneRole\"));\nvar _noteRole = _interopRequireDefault(require(\"./literal/noteRole\"));\nvar _optionRole = _interopRequireDefault(require(\"./literal/optionRole\"));\nvar _paragraphRole = _interopRequireDefault(require(\"./literal/paragraphRole\"));\nvar _presentationRole = _interopRequireDefault(require(\"./literal/presentationRole\"));\nvar _progressbarRole = _interopRequireDefault(require(\"./literal/progressbarRole\"));\nvar _radioRole = _interopRequireDefault(require(\"./literal/radioRole\"));\nvar _radiogroupRole = _interopRequireDefault(require(\"./literal/radiogroupRole\"));\nvar _regionRole = _interopRequireDefault(require(\"./literal/regionRole\"));\nvar _rowRole = _interopRequireDefault(require(\"./literal/rowRole\"));\nvar _rowgroupRole = _interopRequireDefault(require(\"./literal/rowgroupRole\"));\nvar _rowheaderRole = _interopRequireDefault(require(\"./literal/rowheaderRole\"));\nvar _scrollbarRole = _interopRequireDefault(require(\"./literal/scrollbarRole\"));\nvar _searchRole = _interopRequireDefault(require(\"./literal/searchRole\"));\nvar _searchboxRole = _interopRequireDefault(require(\"./literal/searchboxRole\"));\nvar _separatorRole = _interopRequireDefault(require(\"./literal/separatorRole\"));\nvar _sliderRole = _interopRequireDefault(require(\"./literal/sliderRole\"));\nvar _spinbuttonRole = _interopRequireDefault(require(\"./literal/spinbuttonRole\"));\nvar _statusRole = _interopRequireDefault(require(\"./literal/statusRole\"));\nvar _strongRole = _interopRequireDefault(require(\"./literal/strongRole\"));\nvar _subscriptRole = _interopRequireDefault(require(\"./literal/subscriptRole\"));\nvar _superscriptRole = _interopRequireDefault(require(\"./literal/superscriptRole\"));\nvar _switchRole = _interopRequireDefault(require(\"./literal/switchRole\"));\nvar _tabRole = _interopRequireDefault(require(\"./literal/tabRole\"));\nvar _tableRole = _interopRequireDefault(require(\"./literal/tableRole\"));\nvar _tablistRole = _interopRequireDefault(require(\"./literal/tablistRole\"));\nvar _tabpanelRole = _interopRequireDefault(require(\"./literal/tabpanelRole\"));\nvar _termRole = _interopRequireDefault(require(\"./literal/termRole\"));\nvar _textboxRole = _interopRequireDefault(require(\"./literal/textboxRole\"));\nvar _timeRole = _interopRequireDefault(require(\"./literal/timeRole\"));\nvar _timerRole = _interopRequireDefault(require(\"./literal/timerRole\"));\nvar _toolbarRole = _interopRequireDefault(require(\"./literal/toolbarRole\"));\nvar _tooltipRole = _interopRequireDefault(require(\"./literal/tooltipRole\"));\nvar _treeRole = _interopRequireDefault(require(\"./literal/treeRole\"));\nvar _treegridRole = _interopRequireDefault(require(\"./literal/treegridRole\"));\nvar _treeitemRole = _interopRequireDefault(require(\"./literal/treeitemRole\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaLiteralRoles = [['alert', _alertRole.default], ['alertdialog', _alertdialogRole.default], ['application', _applicationRole.default], ['article', _articleRole.default], ['banner', _bannerRole.default], ['blockquote', _blockquoteRole.default], ['button', _buttonRole.default], ['caption', _captionRole.default], ['cell', _cellRole.default], ['checkbox', _checkboxRole.default], ['code', _codeRole.default], ['columnheader', _columnheaderRole.default], ['combobox', _comboboxRole.default], ['complementary', _complementaryRole.default], ['contentinfo', _contentinfoRole.default], ['definition', _definitionRole.default], ['deletion', _deletionRole.default], ['dialog', _dialogRole.default], ['directory', _directoryRole.default], ['document', _documentRole.default], ['emphasis', _emphasisRole.default], ['feed', _feedRole.default], ['figure', _figureRole.default], ['form', _formRole.default], ['generic', _genericRole.default], ['grid', _gridRole.default], ['gridcell', _gridcellRole.default], ['group', _groupRole.default], ['heading', _headingRole.default], ['img', _imgRole.default], ['insertion', _insertionRole.default], ['link', _linkRole.default], ['list', _listRole.default], ['listbox', _listboxRole.default], ['listitem', _listitemRole.default], ['log', _logRole.default], ['main', _mainRole.default], ['mark', _markRole.default], ['marquee', _marqueeRole.default], ['math', _mathRole.default], ['menu', _menuRole.default], ['menubar', _menubarRole.default], ['menuitem', _menuitemRole.default], ['menuitemcheckbox', _menuitemcheckboxRole.default], ['menuitemradio', _menuitemradioRole.default], ['meter', _meterRole.default], ['navigation', _navigationRole.default], ['none', _noneRole.default], ['note', _noteRole.default], ['option', _optionRole.default], ['paragraph', _paragraphRole.default], ['presentation', _presentationRole.default], ['progressbar', _progressbarRole.default], ['radio', _radioRole.default], ['radiogroup', _radiogroupRole.default], ['region', _regionRole.default], ['row', _rowRole.default], ['rowgroup', _rowgroupRole.default], ['rowheader', _rowheaderRole.default], ['scrollbar', _scrollbarRole.default], ['search', _searchRole.default], ['searchbox', _searchboxRole.default], ['separator', _separatorRole.default], ['slider', _sliderRole.default], ['spinbutton', _spinbuttonRole.default], ['status', _statusRole.default], ['strong', _strongRole.default], ['subscript', _subscriptRole.default], ['superscript', _superscriptRole.default], ['switch', _switchRole.default], ['tab', _tabRole.default], ['table', _tableRole.default], ['tablist', _tablistRole.default], ['tabpanel', _tabpanelRole.default], ['term', _termRole.default], ['textbox', _textboxRole.default], ['time', _timeRole.default], ['timer', _timerRole.default], ['toolbar', _toolbarRole.default], ['tooltip', _tooltipRole.default], ['tree', _treeRole.default], ['treegrid', _treegridRole.default], ['treeitem', _treeitemRole.default]];\nvar _default = ariaLiteralRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docAbstractRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'abstract [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docAbstractRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docAcknowledgmentsRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'acknowledgments [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docAcknowledgmentsRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docAfterwordRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'afterword [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docAfterwordRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docAppendixRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'appendix [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docAppendixRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docBacklinkRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'referrer [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docBacklinkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docBiblioentryRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'EPUB biblioentry [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: ['doc-bibliography'],\n  requiredContextRole: ['doc-bibliography'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'listitem']]\n};\nvar _default = docBiblioentryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docBibliographyRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'bibliography [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['doc-biblioentry']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docBibliographyRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docBibliorefRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'biblioref [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docBibliorefRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docChapterRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'chapter [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docChapterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docColophonRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'colophon [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docColophonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docConclusionRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'conclusion [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docConclusionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docCoverRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'cover [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'img']]\n};\nvar _default = docCoverRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docCreditRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'credit [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docCreditRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docCreditsRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'credits [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docCreditsRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docDedicationRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'dedication [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docDedicationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docEndnoteRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'rearnote [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: ['doc-endnotes'],\n  requiredContextRole: ['doc-endnotes'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'listitem']]\n};\nvar _default = docEndnoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docEndnotesRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'rearnotes [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['doc-endnote']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docEndnotesRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docEpigraphRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'epigraph [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docEpigraphRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docEpilogueRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'epilogue [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docEpilogueRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docErrataRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'errata [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docErrataRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docExampleRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docExampleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docFootnoteRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'footnote [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docFootnoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docForewordRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'foreword [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docForewordRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docGlossaryRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'glossary [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['definition'], ['term']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docGlossaryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docGlossrefRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'glossref [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docGlossrefRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docIndexRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'index [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]\n};\nvar _default = docIndexRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docIntroductionRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'introduction [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docIntroductionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docNoterefRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'noteref [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docNoterefRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docNoticeRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'notice [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'note']]\n};\nvar _default = docNoticeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docPagebreakRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'pagebreak [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'separator']]\n};\nvar _default = docPagebreakRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docPagelistRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'page-list [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]\n};\nvar _default = docPagelistRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docPartRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'part [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docPartRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docPrefaceRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'preface [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docPrefaceRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docPrologueRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'prologue [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docPrologueRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docPullquoteRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'pullquote [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['none']]\n};\nvar _default = docPullquoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docQnaRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'qna [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docQnaRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docSubtitleRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'subtitle [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'sectionhead']]\n};\nvar _default = docSubtitleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docTipRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'help [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'note']]\n};\nvar _default = docTipRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docTocRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'toc [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]\n};\nvar _default = docTocRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _docAbstractRole = _interopRequireDefault(require(\"./dpub/docAbstractRole\"));\nvar _docAcknowledgmentsRole = _interopRequireDefault(require(\"./dpub/docAcknowledgmentsRole\"));\nvar _docAfterwordRole = _interopRequireDefault(require(\"./dpub/docAfterwordRole\"));\nvar _docAppendixRole = _interopRequireDefault(require(\"./dpub/docAppendixRole\"));\nvar _docBacklinkRole = _interopRequireDefault(require(\"./dpub/docBacklinkRole\"));\nvar _docBiblioentryRole = _interopRequireDefault(require(\"./dpub/docBiblioentryRole\"));\nvar _docBibliographyRole = _interopRequireDefault(require(\"./dpub/docBibliographyRole\"));\nvar _docBibliorefRole = _interopRequireDefault(require(\"./dpub/docBibliorefRole\"));\nvar _docChapterRole = _interopRequireDefault(require(\"./dpub/docChapterRole\"));\nvar _docColophonRole = _interopRequireDefault(require(\"./dpub/docColophonRole\"));\nvar _docConclusionRole = _interopRequireDefault(require(\"./dpub/docConclusionRole\"));\nvar _docCoverRole = _interopRequireDefault(require(\"./dpub/docCoverRole\"));\nvar _docCreditRole = _interopRequireDefault(require(\"./dpub/docCreditRole\"));\nvar _docCreditsRole = _interopRequireDefault(require(\"./dpub/docCreditsRole\"));\nvar _docDedicationRole = _interopRequireDefault(require(\"./dpub/docDedicationRole\"));\nvar _docEndnoteRole = _interopRequireDefault(require(\"./dpub/docEndnoteRole\"));\nvar _docEndnotesRole = _interopRequireDefault(require(\"./dpub/docEndnotesRole\"));\nvar _docEpigraphRole = _interopRequireDefault(require(\"./dpub/docEpigraphRole\"));\nvar _docEpilogueRole = _interopRequireDefault(require(\"./dpub/docEpilogueRole\"));\nvar _docErrataRole = _interopRequireDefault(require(\"./dpub/docErrataRole\"));\nvar _docExampleRole = _interopRequireDefault(require(\"./dpub/docExampleRole\"));\nvar _docFootnoteRole = _interopRequireDefault(require(\"./dpub/docFootnoteRole\"));\nvar _docForewordRole = _interopRequireDefault(require(\"./dpub/docForewordRole\"));\nvar _docGlossaryRole = _interopRequireDefault(require(\"./dpub/docGlossaryRole\"));\nvar _docGlossrefRole = _interopRequireDefault(require(\"./dpub/docGlossrefRole\"));\nvar _docIndexRole = _interopRequireDefault(require(\"./dpub/docIndexRole\"));\nvar _docIntroductionRole = _interopRequireDefault(require(\"./dpub/docIntroductionRole\"));\nvar _docNoterefRole = _interopRequireDefault(require(\"./dpub/docNoterefRole\"));\nvar _docNoticeRole = _interopRequireDefault(require(\"./dpub/docNoticeRole\"));\nvar _docPagebreakRole = _interopRequireDefault(require(\"./dpub/docPagebreakRole\"));\nvar _docPagelistRole = _interopRequireDefault(require(\"./dpub/docPagelistRole\"));\nvar _docPartRole = _interopRequireDefault(require(\"./dpub/docPartRole\"));\nvar _docPrefaceRole = _interopRequireDefault(require(\"./dpub/docPrefaceRole\"));\nvar _docPrologueRole = _interopRequireDefault(require(\"./dpub/docPrologueRole\"));\nvar _docPullquoteRole = _interopRequireDefault(require(\"./dpub/docPullquoteRole\"));\nvar _docQnaRole = _interopRequireDefault(require(\"./dpub/docQnaRole\"));\nvar _docSubtitleRole = _interopRequireDefault(require(\"./dpub/docSubtitleRole\"));\nvar _docTipRole = _interopRequireDefault(require(\"./dpub/docTipRole\"));\nvar _docTocRole = _interopRequireDefault(require(\"./dpub/docTocRole\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaDpubRoles = [['doc-abstract', _docAbstractRole.default], ['doc-acknowledgments', _docAcknowledgmentsRole.default], ['doc-afterword', _docAfterwordRole.default], ['doc-appendix', _docAppendixRole.default], ['doc-backlink', _docBacklinkRole.default], ['doc-biblioentry', _docBiblioentryRole.default], ['doc-bibliography', _docBibliographyRole.default], ['doc-biblioref', _docBibliorefRole.default], ['doc-chapter', _docChapterRole.default], ['doc-colophon', _docColophonRole.default], ['doc-conclusion', _docConclusionRole.default], ['doc-cover', _docCoverRole.default], ['doc-credit', _docCreditRole.default], ['doc-credits', _docCreditsRole.default], ['doc-dedication', _docDedicationRole.default], ['doc-endnote', _docEndnoteRole.default], ['doc-endnotes', _docEndnotesRole.default], ['doc-epigraph', _docEpigraphRole.default], ['doc-epilogue', _docEpilogueRole.default], ['doc-errata', _docErrataRole.default], ['doc-example', _docExampleRole.default], ['doc-footnote', _docFootnoteRole.default], ['doc-foreword', _docForewordRole.default], ['doc-glossary', _docGlossaryRole.default], ['doc-glossref', _docGlossrefRole.default], ['doc-index', _docIndexRole.default], ['doc-introduction', _docIntroductionRole.default], ['doc-noteref', _docNoterefRole.default], ['doc-notice', _docNoticeRole.default], ['doc-pagebreak', _docPagebreakRole.default], ['doc-pagelist', _docPagelistRole.default], ['doc-part', _docPartRole.default], ['doc-preface', _docPrefaceRole.default], ['doc-prologue', _docPrologueRole.default], ['doc-pullquote', _docPullquoteRole.default], ['doc-qna', _docQnaRole.default], ['doc-subtitle', _docSubtitleRole.default], ['doc-tip', _docTipRole.default], ['doc-toc', _docTocRole.default]];\nvar _default = ariaDpubRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar graphicsDocumentRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    module: 'GRAPHICS',\n    concept: {\n      name: 'graphics-object'\n    }\n  }, {\n    module: 'ARIA',\n    concept: {\n      name: 'img'\n    }\n  }, {\n    module: 'ARIA',\n    concept: {\n      name: 'article'\n    }\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'document']]\n};\nvar _default = graphicsDocumentRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar graphicsObjectRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    module: 'GRAPHICS',\n    concept: {\n      name: 'graphics-document'\n    }\n  }, {\n    module: 'ARIA',\n    concept: {\n      name: 'group'\n    }\n  }, {\n    module: 'ARIA',\n    concept: {\n      name: 'img'\n    }\n  }, {\n    module: 'GRAPHICS',\n    concept: {\n      name: 'graphics-symbol'\n    }\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'group']]\n};\nvar _default = graphicsObjectRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar graphicsSymbolRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'img']]\n};\nvar _default = graphicsSymbolRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _graphicsDocumentRole = _interopRequireDefault(require(\"./graphics/graphicsDocumentRole\"));\nvar _graphicsObjectRole = _interopRequireDefault(require(\"./graphics/graphicsObjectRole\"));\nvar _graphicsSymbolRole = _interopRequireDefault(require(\"./graphics/graphicsSymbolRole\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaGraphicsRoles = [['graphics-document', _graphicsDocumentRole.default], ['graphics-object', _graphicsObjectRole.default], ['graphics-symbol', _graphicsSymbolRole.default]];\nvar _default = ariaGraphicsRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _ariaAbstractRoles = _interopRequireDefault(require(\"./etc/roles/ariaAbstractRoles\"));\nvar _ariaLiteralRoles = _interopRequireDefault(require(\"./etc/roles/ariaLiteralRoles\"));\nvar _ariaDpubRoles = _interopRequireDefault(require(\"./etc/roles/ariaDpubRoles\"));\nvar _ariaGraphicsRoles = _interopRequireDefault(require(\"./etc/roles/ariaGraphicsRoles\"));\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nvar roles = [].concat(_ariaAbstractRoles.default, _ariaLiteralRoles.default, _ariaDpubRoles.default, _ariaGraphicsRoles.default);\nroles.forEach(function (_ref) {\n  var _ref2 = _slicedToArray(_ref, 2),\n    roleDefinition = _ref2[1];\n  // Conglomerate the properties\n  var _iterator = _createForOfIteratorHelper(roleDefinition.superClass),\n    _step;\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var superClassIter = _step.value;\n      var _iterator2 = _createForOfIteratorHelper(superClassIter),\n        _step2;\n      try {\n        var _loop = function _loop() {\n          var superClassName = _step2.value;\n          var superClassRoleTuple = roles.find(function (_ref3) {\n            var _ref4 = _slicedToArray(_ref3, 1),\n              name = _ref4[0];\n            return name === superClassName;\n          });\n          if (superClassRoleTuple) {\n            var superClassDefinition = superClassRoleTuple[1];\n            for (var _i2 = 0, _Object$keys = Object.keys(superClassDefinition.props); _i2 < _Object$keys.length; _i2++) {\n              var prop = _Object$keys[_i2];\n              if (\n              // $FlowIssue Accessing the hasOwnProperty on the Object prototype is fine.\n              !Object.prototype.hasOwnProperty.call(roleDefinition.props, prop)) {\n                Object.assign(roleDefinition.props, _defineProperty({}, prop, superClassDefinition.props[prop]));\n              }\n            }\n          }\n        };\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          _loop();\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n});\nvar rolesMap = {\n  entries: function entries() {\n    return roles;\n  },\n  forEach: function forEach(fn) {\n    var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    var _iterator3 = _createForOfIteratorHelper(roles),\n      _step3;\n    try {\n      for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n        var _step3$value = _slicedToArray(_step3.value, 2),\n          key = _step3$value[0],\n          values = _step3$value[1];\n        fn.call(thisArg, values, key, roles);\n      }\n    } catch (err) {\n      _iterator3.e(err);\n    } finally {\n      _iterator3.f();\n    }\n  },\n  get: function get(key) {\n    var item = roles.find(function (tuple) {\n      return tuple[0] === key ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!rolesMap.get(key);\n  },\n  keys: function keys() {\n    return roles.map(function (_ref5) {\n      var _ref6 = _slicedToArray(_ref5, 1),\n        key = _ref6[0];\n      return key;\n    });\n  },\n  values: function values() {\n    return roles.map(function (_ref7) {\n      var _ref8 = _slicedToArray(_ref7, 2),\n        values = _ref8[1];\n      return values;\n    });\n  }\n};\nvar _default = (0, _iterationDecorator.default)(rolesMap, rolesMap.entries());\nexports.default = _default;","var has = Object.prototype.hasOwnProperty;\n\nfunction dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n\nexports.dequal = dequal;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _lite = require(\"dequal/lite\");\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nvar _rolesMap = _interopRequireDefault(require(\"./rolesMap\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar elementRoles = [];\nvar keys = _rolesMap.default.keys();\nfor (var i = 0; i < keys.length; i++) {\n  var key = keys[i];\n  var role = _rolesMap.default.get(key);\n  if (role) {\n    var concepts = [].concat(role.baseConcepts, role.relatedConcepts);\n    for (var k = 0; k < concepts.length; k++) {\n      var relation = concepts[k];\n      if (relation.module === 'HTML') {\n        (function () {\n          var concept = relation.concept;\n          if (concept) {\n            var elementRoleRelation = elementRoles.find(function (relation) {\n              return (0, _lite.dequal)(relation, concept);\n            });\n            var roles;\n            if (elementRoleRelation) {\n              roles = elementRoleRelation[1];\n            } else {\n              roles = [];\n            }\n            var isUnique = true;\n            for (var _i = 0; _i < roles.length; _i++) {\n              if (roles[_i] === key) {\n                isUnique = false;\n                break;\n              }\n            }\n            if (isUnique) {\n              roles.push(key);\n            }\n            elementRoles.push([concept, roles]);\n          }\n        })();\n      }\n    }\n  }\n}\nvar elementRoleMap = {\n  entries: function entries() {\n    return elementRoles;\n  },\n  forEach: function forEach(fn) {\n    var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    var _iterator = _createForOfIteratorHelper(elementRoles),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var _step$value = _slicedToArray(_step.value, 2),\n          _key = _step$value[0],\n          values = _step$value[1];\n        fn.call(thisArg, values, _key, elementRoles);\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  },\n  get: function get(key) {\n    var item = elementRoles.find(function (tuple) {\n      return key.name === tuple[0].name && (0, _lite.dequal)(key.attributes, tuple[0].attributes);\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!elementRoleMap.get(key);\n  },\n  keys: function keys() {\n    return elementRoles.map(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n        key = _ref2[0];\n      return key;\n    });\n  },\n  values: function values() {\n    return elementRoles.map(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n        values = _ref4[1];\n      return values;\n    });\n  }\n};\nvar _default = (0, _iterationDecorator.default)(elementRoleMap, elementRoleMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nvar _rolesMap = _interopRequireDefault(require(\"./rolesMap\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar roleElement = [];\nvar keys = _rolesMap.default.keys();\nfor (var i = 0; i < keys.length; i++) {\n  var key = keys[i];\n  var role = _rolesMap.default.get(key);\n  var relationConcepts = [];\n  if (role) {\n    var concepts = [].concat(role.baseConcepts, role.relatedConcepts);\n    for (var k = 0; k < concepts.length; k++) {\n      var relation = concepts[k];\n      if (relation.module === 'HTML') {\n        var concept = relation.concept;\n        if (concept != null) {\n          relationConcepts.push(concept);\n        }\n      }\n    }\n    if (relationConcepts.length > 0) {\n      roleElement.push([key, relationConcepts]);\n    }\n  }\n}\nvar roleElementMap = {\n  entries: function entries() {\n    return roleElement;\n  },\n  forEach: function forEach(fn) {\n    var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    var _iterator = _createForOfIteratorHelper(roleElement),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var _step$value = _slicedToArray(_step.value, 2),\n          _key = _step$value[0],\n          values = _step$value[1];\n        fn.call(thisArg, values, _key, roleElement);\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  },\n  get: function get(key) {\n    var item = roleElement.find(function (tuple) {\n      return tuple[0] === key ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!roleElementMap.get(key);\n  },\n  keys: function keys() {\n    return roleElement.map(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n        key = _ref2[0];\n      return key;\n    });\n  },\n  values: function values() {\n    return roleElement.map(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n        values = _ref4[1];\n      return values;\n    });\n  }\n};\nvar _default = (0, _iterationDecorator.default)(roleElementMap, roleElementMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.roles = exports.roleElements = exports.elementRoles = exports.dom = exports.aria = void 0;\nvar _ariaPropsMap = _interopRequireDefault(require(\"./ariaPropsMap\"));\nvar _domMap = _interopRequireDefault(require(\"./domMap\"));\nvar _rolesMap = _interopRequireDefault(require(\"./rolesMap\"));\nvar _elementRoleMap = _interopRequireDefault(require(\"./elementRoleMap\"));\nvar _roleElementMap = _interopRequireDefault(require(\"./roleElementMap\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar aria = _ariaPropsMap.default;\nexports.aria = aria;\nvar dom = _domMap.default;\nexports.dom = dom;\nvar roles = _rolesMap.default;\nexports.roles = roles;\nvar elementRoles = _elementRoleMap.default;\nexports.elementRoles = elementRoles;\nvar roleElements = _roleElementMap.default;\nexports.roleElements = roleElements;","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n  if (!baseReverseDic[alphabet]) {\n    baseReverseDic[alphabet] = {};\n    for (var i=0 ; i<alphabet.length ; i++) {\n      baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n    }\n  }\n  return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n  compressToBase64 : function (input) {\n    if (input == null) return \"\";\n    var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n    switch (res.length % 4) { // To produce valid Base64\n    default: // When could this happen ?\n    case 0 : return res;\n    case 1 : return res+\"===\";\n    case 2 : return res+\"==\";\n    case 3 : return res+\"=\";\n    }\n  },\n\n  decompressFromBase64 : function (input) {\n    if (input == null) return \"\";\n    if (input == \"\") return null;\n    return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n  },\n\n  compressToUTF16 : function (input) {\n    if (input == null) return \"\";\n    return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n  },\n\n  decompressFromUTF16: function (compressed) {\n    if (compressed == null) return \"\";\n    if (compressed == \"\") return null;\n    return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n  },\n\n  //compress into uint8array (UCS-2 big endian format)\n  compressToUint8Array: function (uncompressed) {\n    var compressed = LZString.compress(uncompressed);\n    var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n    for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n      var current_value = compressed.charCodeAt(i);\n      buf[i*2] = current_value >>> 8;\n      buf[i*2+1] = current_value % 256;\n    }\n    return buf;\n  },\n\n  //decompress from uint8array (UCS-2 big endian format)\n  decompressFromUint8Array:function (compressed) {\n    if (compressed===null || compressed===undefined){\n        return LZString.decompress(compressed);\n    } else {\n        var buf=new Array(compressed.length/2); // 2 bytes per character\n        for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n          buf[i]=compressed[i*2]*256+compressed[i*2+1];\n        }\n\n        var result = [];\n        buf.forEach(function (c) {\n          result.push(f(c));\n        });\n        return LZString.decompress(result.join(''));\n\n    }\n\n  },\n\n\n  //compress into a string that is already URI encoded\n  compressToEncodedURIComponent: function (input) {\n    if (input == null) return \"\";\n    return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n  },\n\n  //decompress from an output of compressToEncodedURIComponent\n  decompressFromEncodedURIComponent:function (input) {\n    if (input == null) return \"\";\n    if (input == \"\") return null;\n    input = input.replace(/ /g, \"+\");\n    return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n  },\n\n  compress: function (uncompressed) {\n    return LZString._compress(uncompressed, 16, function(a){return f(a);});\n  },\n  _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n    if (uncompressed == null) return \"\";\n    var i, value,\n        context_dictionary= {},\n        context_dictionaryToCreate= {},\n        context_c=\"\",\n        context_wc=\"\",\n        context_w=\"\",\n        context_enlargeIn= 2, // Compensate for the first entry which should not count\n        context_dictSize= 3,\n        context_numBits= 2,\n        context_data=[],\n        context_data_val=0,\n        context_data_position=0,\n        ii;\n\n    for (ii = 0; ii < uncompressed.length; ii += 1) {\n      context_c = uncompressed.charAt(ii);\n      if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n        context_dictionary[context_c] = context_dictSize++;\n        context_dictionaryToCreate[context_c] = true;\n      }\n\n      context_wc = context_w + context_c;\n      if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n        context_w = context_wc;\n      } else {\n        if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n          if (context_w.charCodeAt(0)<256) {\n            for (i=0 ; i<context_numBits ; i++) {\n              context_data_val = (context_data_val << 1);\n              if (context_data_position == bitsPerChar-1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n            }\n            value = context_w.charCodeAt(0);\n            for (i=0 ; i<8 ; i++) {\n              context_data_val = (context_data_val << 1) | (value&1);\n              if (context_data_position == bitsPerChar-1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n              value = value >> 1;\n            }\n          } else {\n            value = 1;\n            for (i=0 ; i<context_numBits ; i++) {\n              context_data_val = (context_data_val << 1) | value;\n              if (context_data_position ==bitsPerChar-1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n              value = 0;\n            }\n            value = context_w.charCodeAt(0);\n            for (i=0 ; i<16 ; i++) {\n              context_data_val = (context_data_val << 1) | (value&1);\n              if (context_data_position == bitsPerChar-1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n              value = value >> 1;\n            }\n          }\n          context_enlargeIn--;\n          if (context_enlargeIn == 0) {\n            context_enlargeIn = Math.pow(2, context_numBits);\n            context_numBits++;\n          }\n          delete context_dictionaryToCreate[context_w];\n        } else {\n          value = context_dictionary[context_w];\n          for (i=0 ; i<context_numBits ; i++) {\n            context_data_val = (context_data_val << 1) | (value&1);\n            if (context_data_position == bitsPerChar-1) {\n              context_data_position = 0;\n              context_data.push(getCharFromInt(context_data_val));\n              context_data_val = 0;\n            } else {\n              context_data_position++;\n            }\n            value = value >> 1;\n          }\n\n\n        }\n        context_enlargeIn--;\n        if (context_enlargeIn == 0) {\n          context_enlargeIn = Math.pow(2, context_numBits);\n          context_numBits++;\n        }\n        // Add wc to the dictionary.\n        context_dictionary[context_wc] = context_dictSize++;\n        context_w = String(context_c);\n      }\n    }\n\n    // Output the code for w.\n    if (context_w !== \"\") {\n      if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n        if (context_w.charCodeAt(0)<256) {\n          for (i=0 ; i<context_numBits ; i++) {\n            context_data_val = (context_data_val << 1);\n            if (context_data_position == bitsPerChar-1) {\n              context_data_position = 0;\n              context_data.push(getCharFromInt(context_data_val));\n              context_data_val = 0;\n            } else {\n              context_data_position++;\n            }\n          }\n          value = context_w.charCodeAt(0);\n          for (i=0 ; i<8 ; i++) {\n            context_data_val = (context_data_val << 1) | (value&1);\n            if (context_data_position == bitsPerChar-1) {\n              context_data_position = 0;\n              context_data.push(getCharFromInt(context_data_val));\n              context_data_val = 0;\n            } else {\n              context_data_position++;\n            }\n            value = value >> 1;\n          }\n        } else {\n          value = 1;\n          for (i=0 ; i<context_numBits ; i++) {\n            context_data_val = (context_data_val << 1) | value;\n            if (context_data_position == bitsPerChar-1) {\n              context_data_position = 0;\n              context_data.push(getCharFromInt(context_data_val));\n              context_data_val = 0;\n            } else {\n              context_data_position++;\n            }\n            value = 0;\n          }\n          value = context_w.charCodeAt(0);\n          for (i=0 ; i<16 ; i++) {\n            context_data_val = (context_data_val << 1) | (value&1);\n            if (context_data_position == bitsPerChar-1) {\n              context_data_position = 0;\n              context_data.push(getCharFromInt(context_data_val));\n              context_data_val = 0;\n            } else {\n              context_data_position++;\n            }\n            value = value >> 1;\n          }\n        }\n        context_enlargeIn--;\n        if (context_enlargeIn == 0) {\n          context_enlargeIn = Math.pow(2, context_numBits);\n          context_numBits++;\n        }\n        delete context_dictionaryToCreate[context_w];\n      } else {\n        value = context_dictionary[context_w];\n        for (i=0 ; i<context_numBits ; i++) {\n          context_data_val = (context_data_val << 1) | (value&1);\n          if (context_data_position == bitsPerChar-1) {\n            context_data_position = 0;\n            context_data.push(getCharFromInt(context_data_val));\n            context_data_val = 0;\n          } else {\n            context_data_position++;\n          }\n          value = value >> 1;\n        }\n\n\n      }\n      context_enlargeIn--;\n      if (context_enlargeIn == 0) {\n        context_enlargeIn = Math.pow(2, context_numBits);\n        context_numBits++;\n      }\n    }\n\n    // Mark the end of the stream\n    value = 2;\n    for (i=0 ; i<context_numBits ; i++) {\n      context_data_val = (context_data_val << 1) | (value&1);\n      if (context_data_position == bitsPerChar-1) {\n        context_data_position = 0;\n        context_data.push(getCharFromInt(context_data_val));\n        context_data_val = 0;\n      } else {\n        context_data_position++;\n      }\n      value = value >> 1;\n    }\n\n    // Flush the last char\n    while (true) {\n      context_data_val = (context_data_val << 1);\n      if (context_data_position == bitsPerChar-1) {\n        context_data.push(getCharFromInt(context_data_val));\n        break;\n      }\n      else context_data_position++;\n    }\n    return context_data.join('');\n  },\n\n  decompress: function (compressed) {\n    if (compressed == null) return \"\";\n    if (compressed == \"\") return null;\n    return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n  },\n\n  _decompress: function (length, resetValue, getNextValue) {\n    var dictionary = [],\n        next,\n        enlargeIn = 4,\n        dictSize = 4,\n        numBits = 3,\n        entry = \"\",\n        result = [],\n        i,\n        w,\n        bits, resb, maxpower, power,\n        c,\n        data = {val:getNextValue(0), position:resetValue, index:1};\n\n    for (i = 0; i < 3; i += 1) {\n      dictionary[i] = i;\n    }\n\n    bits = 0;\n    maxpower = Math.pow(2,2);\n    power=1;\n    while (power!=maxpower) {\n      resb = data.val & data.position;\n      data.position >>= 1;\n      if (data.position == 0) {\n        data.position = resetValue;\n        data.val = getNextValue(data.index++);\n      }\n      bits |= (resb>0 ? 1 : 0) * power;\n      power <<= 1;\n    }\n\n    switch (next = bits) {\n      case 0:\n          bits = 0;\n          maxpower = Math.pow(2,8);\n          power=1;\n          while (power!=maxpower) {\n            resb = data.val & data.position;\n            data.position >>= 1;\n            if (data.position == 0) {\n              data.position = resetValue;\n              data.val = getNextValue(data.index++);\n            }\n            bits |= (resb>0 ? 1 : 0) * power;\n            power <<= 1;\n          }\n        c = f(bits);\n        break;\n      case 1:\n          bits = 0;\n          maxpower = Math.pow(2,16);\n          power=1;\n          while (power!=maxpower) {\n            resb = data.val & data.position;\n            data.position >>= 1;\n            if (data.position == 0) {\n              data.position = resetValue;\n              data.val = getNextValue(data.index++);\n            }\n            bits |= (resb>0 ? 1 : 0) * power;\n            power <<= 1;\n          }\n        c = f(bits);\n        break;\n      case 2:\n        return \"\";\n    }\n    dictionary[3] = c;\n    w = c;\n    result.push(c);\n    while (true) {\n      if (data.index > length) {\n        return \"\";\n      }\n\n      bits = 0;\n      maxpower = Math.pow(2,numBits);\n      power=1;\n      while (power!=maxpower) {\n        resb = data.val & data.position;\n        data.position >>= 1;\n        if (data.position == 0) {\n          data.position = resetValue;\n          data.val = getNextValue(data.index++);\n        }\n        bits |= (resb>0 ? 1 : 0) * power;\n        power <<= 1;\n      }\n\n      switch (c = bits) {\n        case 0:\n          bits = 0;\n          maxpower = Math.pow(2,8);\n          power=1;\n          while (power!=maxpower) {\n            resb = data.val & data.position;\n            data.position >>= 1;\n            if (data.position == 0) {\n              data.position = resetValue;\n              data.val = getNextValue(data.index++);\n            }\n            bits |= (resb>0 ? 1 : 0) * power;\n            power <<= 1;\n          }\n\n          dictionary[dictSize++] = f(bits);\n          c = dictSize-1;\n          enlargeIn--;\n          break;\n        case 1:\n          bits = 0;\n          maxpower = Math.pow(2,16);\n          power=1;\n          while (power!=maxpower) {\n            resb = data.val & data.position;\n            data.position >>= 1;\n            if (data.position == 0) {\n              data.position = resetValue;\n              data.val = getNextValue(data.index++);\n            }\n            bits |= (resb>0 ? 1 : 0) * power;\n            power <<= 1;\n          }\n          dictionary[dictSize++] = f(bits);\n          c = dictSize-1;\n          enlargeIn--;\n          break;\n        case 2:\n          return result.join('');\n      }\n\n      if (enlargeIn == 0) {\n        enlargeIn = Math.pow(2, numBits);\n        numBits++;\n      }\n\n      if (dictionary[c]) {\n        entry = dictionary[c];\n      } else {\n        if (c === dictSize) {\n          entry = w + w.charAt(0);\n        } else {\n          return null;\n        }\n      }\n      result.push(entry);\n\n      // Add w+entry[0] to the dictionary.\n      dictionary[dictSize++] = w + entry.charAt(0);\n      enlargeIn--;\n\n      w = entry;\n\n      if (enlargeIn == 0) {\n        enlargeIn = Math.pow(2, numBits);\n        numBits++;\n      }\n\n    }\n  }\n};\n  return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n  define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n  module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n  angular.module('LZString', [])\n  .factory('LZString', function () {\n    return LZString;\n  });\n}\n","export function getIdRefsByAttribute({\n  attributeName,\n  node,\n}: {\n  attributeName: string;\n  node: Element;\n}) {\n  return (node.getAttribute(attributeName) ?? \"\")\n    .trim()\n    .split(\" \")\n    .filter(Boolean);\n}\n","import type {\n  ARIAAttribute,\n  ARIARole,\n  AbstractRole,\n  DigitalPublishingRole,\n  DocumentStructureRole,\n  GraphicsRole,\n  LandmarkRole,\n  LiveRegionRole,\n  VirtualElement,\n  WidgetRole,\n  WindowRole,\n} from '../types.js';\n\nexport type RoleType =\n  | 'abstract'\n  | 'widget'\n  | 'document'\n  | 'landmark'\n  | 'liveregion'\n  | 'window'\n  | 'graphics'\n  | 'digitalpublishing';\n\n// note: all fields required to be monomorphic\nexport interface RoleData {\n  /**\n   * A list of roles which are allowed on an accessibility child (simplified as \"child\") of the element with this role.\n   * @see https://w3c.github.io/aria/#mustContain\n   */\n  allowedChildRoles: ARIARole[];\n  /**\n   * The DOM descendants are presentational.\n   * @see https://w3c.github.io/aria/#childrenArePresentational\n   */\n  childrenPresentational: boolean;\n  /**\n   * Default values for role supported ARIA attributes (if any)\n   * @see https://www.w3.org/TR/wai-aria-1.3/#implictValueForRole\n   *\n   * OR\n   *\n   * Fallback values for role required ARIA attributes (if any)\n   * @see https://www.w3.org/TR/wai-aria-1.3/#document-handling_author-errors_states-properties\n   *\n   * ARIA attribute defaults independent of role constraints are not exposed here.\n   */\n  defaultAttributeValues: Record<string, boolean | number | string>;\n  /** Which HTML elements inherit this role, if any (note: attributes may be necessary) */\n  elements: VirtualElement[];\n  name: ARIARole;\n  /**\n   * @see https://w3c.github.io/aria/#namefromauthor\n   * @see https://w3c.github.io/aria/#namefromcontent\n   * @see https://w3c.github.io/aria/#namefromprohibited\n   */\n  nameFrom: 'author' | 'authorAndContents' | 'contents' | 'prohibited';\n  /** Role that require an accessible name. */\n  nameRequired: boolean;\n  /**\n   * aria-* attributes that are explicitly prohibited for this role, and are considered an error if set.\n   * @see https://www.w3.org/TR/wai-aria-1.3/#prohibitedattributes\n   */\n  prohibited: ARIAAttribute[];\n  /**\n   * If given, states that this role can only exist within this container\n   * @see https://www.w3.org/TR/wai-aria-1.3/#scope\n   */\n  requiredParentRoles: ARIARole[];\n  /**\n   * aria-* attributes that MUST be set for this role.\n   * @see https://www.w3.org/TR/wai-aria-1.3/#requiredState\n   */\n  required: ARIAAttribute[];\n  superclasses: (ARIARole | AbstractRole)[]; // ignores abstract roles\n  subclasses: (ARIARole | AbstractRole)[]; // ignores abstract roles\n  /**\n   * aria-* attributes that MAY be set for this role.\n   * Note: this includes required attributes, supported attributes, and inherited attributes from superclass role types.\n   * @see https://www.w3.org/TR/wai-aria-1.3/#supportedState\n   * @see https://www.w3.org/TR/wai-aria-1.3/#inheritedattributes\n   */\n  supported: ARIAAttribute[];\n  type: RoleType[];\n}\n\nexport const widgetRoles: Record<WidgetRole, RoleData> = {\n  /** An input that allows for user-triggered actions when clicked or pressed. See related link. */\n  button: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'button' }],\n    name: 'button',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['command'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-pressed', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A checkable input that has three possible values: true, false, or mixed. */\n  checkbox: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-checked': false,\n    },\n    elements: [{ tagName: 'input', attributes: { type: 'checkbox' } }],\n    name: 'checkbox',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-checked'],\n    requiredParentRoles: [],\n    subclasses: ['switch'],\n    superclasses: ['input'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** An input that controls another element, such as a listbox or grid, that can dynamically pop up to help the user set the value of the input. */\n  combobox: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-haspopup': 'listbox',\n      'aria-expanded': false,\n    },\n    elements: [{ tagName: 'select' }],\n    name: 'combobox',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    // Note: aria-controls isn’t required by ARIA 1.3, but AAM requires aria-controls for most implementations of comboboxes\n    // @see https://www.w3.org/TR/html-aam-1.0/#el-input-textetc-autocomplete\n    required: ['aria-controls', 'aria-expanded'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['input'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A composite widget containing a collection of one or more rows with one or more cells where some or all cells in the grid are focusable by using methods of two-dimensional navigation, such as directional arrow keys. */\n  grid: {\n    allowedChildRoles: ['caption', 'row', 'rowgroup'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'table', attributes: { role: 'grid' } }],\n    name: 'grid',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['treegrid'],\n    superclasses: ['composite', 'table'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colcount', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiselectable', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-roledescription', 'aria-rowcount'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A cell in a grid or treegrid. */\n  gridcell: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [\n      { tagName: 'td', attributes: { role: 'gridcell' } },\n      { tagName: 'th', attributes: { role: 'gridcell' } },\n    ],\n    name: 'gridcell',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['row'],\n    subclasses: ['columnheader', 'rowheader'],\n    superclasses: ['cell', 'widget'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colindex', 'aria-colindextext', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowindex', 'aria-rowindextext', 'aria-rowspan', 'aria-selected'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** An interactive reference to an internal or external resource that, when activated, causes the user agent to navigate to that resource. See related button. */\n  link: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'a' }, { tagName: 'area' }],\n    name: 'link',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['doc-backlink', 'doc-biblioref', 'doc-glossref', 'doc-noteref'],\n    superclasses: ['command'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A widget that allows the user to select one or more items from a list of choices. See related combobox and list. */\n  listbox: {\n    allowedChildRoles: ['group', 'option'],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-orientation': 'vertical',\n    },\n    elements: [{ tagName: 'select', attributes: { multiple: true } }],\n    name: 'listbox',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['select'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A type of widget that offers a list of choices to the user. */\n  menu: {\n    allowedChildRoles: ['group', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'separator'],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-orientation': 'vertical',\n    },\n    elements: [],\n    name: 'menu',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['menubar'],\n    superclasses: ['select'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A presentation of menu that usually remains visible and is usually presented horizontally. */\n  menubar: {\n    allowedChildRoles: ['group', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'separator'],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-orientation': 'horizontal',\n    },\n    elements: [],\n    name: 'menubar',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['menu'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** An option in a set of choices contained by a menu or menubar. */\n  menuitem: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'menuitem',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['menu', 'menubar', 'group'],\n    subclasses: ['menuitemcheckbox', 'menuitemradio'],\n    superclasses: ['command'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A menuitem with a checkable state whose possible values are true, false, or mixed. */\n  menuitemcheckbox: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-checked': false,\n    },\n    elements: [],\n    name: 'menuitemcheckbox',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-checked'],\n    requiredParentRoles: ['menu', 'menubar', 'group'],\n    subclasses: [],\n    superclasses: ['menuitem'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A checkable menuitem in a set of elements with the same role, only one of which can be checked at a time. */\n  menuitemradio: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-checked': false,\n    },\n    elements: [],\n    name: 'menuitemradio',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-checked'],\n    requiredParentRoles: ['menu', 'menubar', 'group'],\n    subclasses: [],\n    superclasses: ['menuitem'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** An item in a listbox. */\n  option: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'option' }],\n    name: 'option',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['listbox', 'group'],\n    subclasses: ['treeitem'],\n    superclasses: ['input'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-selected', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** An element that displays the progress status for tasks that take a long time. */\n  progressbar: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-valuemax': 100,\n      'aria-valuemin': 0,\n    },\n    elements: [{ tagName: 'progress' }],\n    name: 'progressbar',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['range', 'widget'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A checkable input in a group of elements with the same role, only one of which can be checked at a time. */\n  radio: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-checked': false,\n    },\n    elements: [{ tagName: 'input', attributes: { type: 'radio' } }],\n    name: 'radio',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-checked'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['input'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A group of radio buttons. */\n  radiogroup: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'radiogroup',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['select'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A row of cells in a tabular container. */\n  row: {\n    allowedChildRoles: ['cell', 'columnheader', 'gridcell', 'rowheader'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'tr' }],\n    name: 'row',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['grid', 'table', 'treegrid', 'rowgroup'],\n    subclasses: [],\n    superclasses: ['group', 'widget'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colindex', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-rowindex', 'aria-rowindextext', 'aria-selected', 'aria-setsize'], // biome-ignore format: long list\n    type: ['document', 'widget'],\n  },\n  /** A graphical object that controls the scrolling of content within a viewing area, regardless of whether the content is fully displayed within the viewing area. */\n  scrollbar: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-orientation': 'vertical',\n      'aria-valuemax': 100,\n      'aria-valuemin': 0,\n      // If missing or not a number,(aria-valuemax - aria-valuemin) / 2. If present but less than aria-valuemin, the value of aria-valuemin. If present but greater than aria-valuemax, the value of aria-valuemax.\n      // 'aria-valuenow': TBD\n    },\n    elements: [],\n    name: 'scrollbar',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: ['aria-controls', 'aria-valuenow'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['range', 'widget'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A type of textbox intended for specifying search criteria. See related textbox and search. */\n  searchbox: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'input', attributes: { type: 'search' } }],\n    name: 'searchbox',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['textbox'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiline', 'aria-owns', 'aria-placeholder', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A divider that separates and distinguishes sections of content or groups of menuitems. */\n  separator: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-orientation': 'horizontal',\n      'aria-valuemax': 100,\n      'aria-valuemin': 0,\n      // If missing or not a number,(aria-valuemax - aria-valuemin) / 2. If present but less than aria-valuemin, the value of aria-valuemin. If present but greater than aria-valuemax, the value of aria-valuemax.\n      // 'aria-valuenow': TBD\n    },\n    elements: [{ tagName: 'hr' }],\n    name: 'separator',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [], // aria-valuenow (if focusable)\n    requiredParentRoles: [],\n    subclasses: ['doc-pagebreak'],\n    superclasses: ['structure', 'widget'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['widget', 'document'],\n  },\n  /** An input where the user selects a value from within a given range. */\n  slider: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-orientation': 'horizontal',\n      'aria-valuemax': 100,\n      'aria-valuemin': 0,\n      // If missing or not a number,(aria-valuemax - aria-valuemin) / 2. If present but less than aria-valuemin, the value of aria-valuemin. If present but greater than aria-valuemax, the value of aria-valuemax.\n      // 'aria-valuenow': TBD\n    },\n    elements: [{ tagName: 'input', attributes: { type: 'range' } }],\n    name: 'slider',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-valuenow'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['input', 'range'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A form of range that expects the user to select from among discrete choices. */\n  spinbutton: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'input', attributes: { type: 'number' } }],\n    name: 'spinbutton',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['composite', 'input', 'range'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A type of checkbox that represents on/off values, as opposed to checked/unchecked values. See related checkbox. */\n  switch: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-checked': false,\n    },\n    elements: [{ tagName: 'input', attributes: { type: 'checkbox', role: 'switch' } }],\n    name: 'switch',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-checked'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['checkbox'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A grouping label providing a mechanism for selecting the tab content that is to be rendered to the user. */\n  tab: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-selected': false,\n    },\n    elements: [{ tagName: 'button', attributes: { type: 'button', role: 'tab' } }],\n    name: 'tab',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['tablist'],\n    subclasses: [],\n    superclasses: ['sectionhead', 'widget'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-selected', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A list of tab elements, which are references to tabpanel elements. */\n  tablist: {\n    allowedChildRoles: ['tab'],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-orientation': 'horizontal',\n    },\n    elements: [\n      { tagName: 'menu', attributes: { role: 'tablist' } },\n      { tagName: 'ol', attributes: { role: 'tablist' } },\n      { tagName: 'ul', attributes: { role: 'tablist' } },\n    ],\n    name: 'tablist',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['composite'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A container for the resources associated with a tab, where each tab is contained in a tablist. */\n  tabpanel: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'tabpanel',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A type of input that allows free-form text as its value. */\n  textbox: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'input', attributes: { type: 'text' } }],\n    name: 'textbox',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['searchbox'],\n    superclasses: ['input'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiline', 'aria-owns', 'aria-placeholder', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A widget that allows the user to select one or more items from a hierarchically organized collection. */\n  tree: {\n    allowedChildRoles: ['group', 'treeitem'],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-orientation': 'vertical',\n    },\n    elements: [\n      { tagName: 'menu', attributes: { role: 'tree' } },\n      { tagName: 'ol', attributes: { role: 'tree' } },\n      { tagName: 'ul', attributes: { role: 'tree' } },\n    ],\n    name: 'tree',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['treegrid'],\n    superclasses: ['select'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-required', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** A grid whose rows can be expanded and collapsed in the same manner as for a tree. */\n  treegrid: {\n    allowedChildRoles: ['caption', 'row', 'rowgroup'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'table', attributes: { role: 'treegrid' } }],\n    name: 'treegrid',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['grid', 'tree'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colcount', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n  /** An item in a tree. */\n  treeitem: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'treeitem',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['tree', 'group'],\n    subclasses: [],\n    superclasses: ['listitem', 'option'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-selected', 'aria-setsize'], // biome-ignore format: long list\n    type: ['widget'],\n  },\n};\n\nexport const documentRoles: Record<DocumentStructureRole, RoleData> = {\n  /** A structure containing one or more focusable elements requiring user input, such as keyboard or gesture events, that do not follow a standard interaction pattern supported by a widget role. */\n  application: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'application',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['structure'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A section of a page that consists of a composition that forms an independent part of a document, page, or site. */\n  article: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'article' }],\n    name: 'article',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['comment'],\n    superclasses: ['document'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A section of content that is quoted from another source. */\n  blockquote: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'blockquote' }],\n    name: 'blockquote',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** Visible content that names, or describes a figure, grid, group, radiogroup, table or treegrid. */\n  caption: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'caption' }, { tagName: 'figcaption' }],\n    name: 'caption',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: ['figure', 'grid', 'group', 'radiogroup', 'table', 'treegrid'],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A cell in a tabular container. See related gridcell. */\n  cell: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'td' }],\n    name: 'cell',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['row'],\n    subclasses: ['columnheader', 'gridcell', 'rowheader'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colindex', 'aria-colindextext', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-rowindex', 'aria-rowindextext', 'aria-rowspan'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A section whose content represents a fragment of computer code. */\n  code: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'code' }],\n    name: 'code',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A cell containing header information for a column. */\n  columnheader: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'th', attributes: { scope: 'col' } }],\n    name: 'columnheader',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['row'],\n    subclasses: [],\n    superclasses: ['cell', 'gridcell', 'sectionhead'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colindex', 'aria-colindextext', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowindex', 'aria-rowindextext', 'aria-rowspan', 'aria-selected', 'aria-sort'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A comment contains content expressing reaction to other content. */\n  comment: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'comment',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['article'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A definition of a term or concept. See related term. */\n  definition: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'definition',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A deletion represents content that is marked as removed, content that is being suggested for removal, or content that is no longer relevant in the context of its accompanying content. See related insertion. */\n  deletion: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'del' }],\n    name: 'deletion',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /**\n   * A list of references to members of a group, such as a static table of contents.\n   * @deprecated in ARIA 1.2\n   */\n  directory: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'directory',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['list'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** An element containing content that assistive technology users might want to browse in a reading mode. */\n  document: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'html' }],\n    name: 'document',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['article', 'graphics-document'],\n    superclasses: ['structure'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** One or more emphasized characters. See related strong. */\n  emphasis: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'em' }],\n    name: 'emphasis',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A scrollable list of articles where scrolling might cause articles to be added to or removed from either end of the list. */\n  feed: {\n    allowedChildRoles: ['article'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'feed',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['list'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A perceivable section of content that typically contains a graphical document, images, media player, code snippets, or example text. The parts of a figure MAY be user-navigable. */\n  figure: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'figure' }],\n    name: 'figure',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['doc-example'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A nameless container element that has no semantic meaning on its own. */\n  generic: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'b' }, { tagName: 'i' }, { tagName: 'pre' }, { tagName: 'q' }, { tagName: 'samp' }, { tagName: 'small' }, { tagName: 'span' }, { tagName: 'u' }], // biome-ignore format: long list\n    name: 'generic',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-brailleroledescription', 'aria-label', 'aria-labelledby', 'aria-roledescription'], // biome-ignore format: long list\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['structure'],\n    supported: ['aria-atomic', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A set of user interface objects that is not intended to be included in a page summary or table of contents by assistive technologies. */\n  group: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'fieldset' }, { tagName: 'address' }, { tagName: 'details' },  { tagName: 'hgroup' }, { tagName: 'optgroup' }], // biome-ignore format: long list\n    name: 'group',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['graphics-object', 'row', 'select', 'toolbar'],\n    superclasses: ['section'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A heading for a section of the page. */\n  heading: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-level': 2,\n    },\n    elements: [{ tagName: 'h1' }, { tagName: 'h2' }, { tagName: 'h3' }, { tagName: 'h4' }, { tagName: 'h5' }, { tagName: 'h6' }], // biome-ignore format: long list\n    name: 'heading',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-level'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['sectionhead'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** Synonym of img. */\n  image: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'img' }],\n    name: 'image',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['doc-cover', 'graphics-symbol'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A container for a collection of elements that form an image. See synonym image. */\n  img: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'img' }],\n    name: 'img',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['doc-cover', 'graphics-symbol'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** An insertion contains content that is marked as added or content that is being suggested for addition. See related deletion. */\n  insertion: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'ins' }],\n    name: 'insertion',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A section containing listitem elements. See related listbox. */\n  list: {\n    allowedChildRoles: ['listitem'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'ul' }, { tagName: 'ol' }, { tagName: 'menu' }],\n    name: 'list',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['directory', 'feed'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A single item in a list or directory. */\n  listitem: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'li' }],\n    name: 'listitem',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['directory', 'list'],\n    subclasses: ['doc-biblioentry', 'doc-endnote', 'treeitem'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** Content which is marked or highlighted for reference or notation purposes, due to the content's relevance in the enclosing context. */\n  mark: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'mark' }],\n    name: 'mark',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** Content that represents a mathematical expression. */\n  math: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'math' }],\n    name: 'math',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** An element that represents a scalar measurement within a known range, or a fractional value. See related progressbar. */\n  meter: {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {\n      'aria-valuemin': 0,\n      'aria-valuemax': 100,\n      // A value matching the implicit or explicitly set aria-valuemin.\n      // 'aria-valuenow': TBD\n    },\n    elements: [],\n    name: 'meter',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-valuenow'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['range'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** An element whose implicit native role semantics will not be mapped to the accessibility API. See synonym presentation. */\n  none: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'none',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['structure'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A section whose content represents additional information or parenthetical context to the primary content it supplements. */\n  note: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'note',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['doc-notice', 'doc-tip'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A paragraph of content. */\n  paragraph: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'p' }],\n    name: 'paragraph',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** Synonym of none */\n  presentation: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'presentation',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['structure'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A row of cells in a tabular container. */\n  row: widgetRoles.row,\n  /** A structure containing one or more row elements in a tabular container. */\n  rowgroup: {\n    allowedChildRoles: ['row'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'tbody' }, { tagName: 'tfoot' }, { tagName: 'thead' }],\n    name: 'rowgroup',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['grid', 'table', 'treegrid'],\n    subclasses: [],\n    superclasses: ['structure'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A cell containing header information for a row. */\n  rowheader: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'th', attributes: { scope: 'row' } }],\n    name: 'rowheader',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: ['row'],\n    subclasses: [],\n    superclasses: ['cell', 'gridcell', 'sectionhead'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colindex', 'aria-colindextext', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowindex', 'aria-rowindextext', 'aria-rowspan', 'aria-selected', 'aria-sort'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A set of user interface objects and information representing information about its closest ancestral content group. */\n  sectionfooter: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'sectionfooter',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A set of user interface objects and information that represents a collection of introductory items for the element's closest ancestral content group. */\n  sectionheader: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'sectionheader',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A divider that separates and distinguishes sections of content or groups of menuitems. */\n  separator: widgetRoles.separator,\n  /** Content that is important, serious, or urgent. See related emphasis. */\n  strong: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'strong' }],\n    name: 'strong',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** One or more subscripted characters. See related superscript. */\n  subscript: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'sub' }],\n    name: 'subscript',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A single proposed change to content. */\n  suggestion: {\n    allowedChildRoles: ['insertion', 'deletion'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'suggestion',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** One or more superscripted characters. See related superscript. */\n  superscript: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'sup' }],\n    name: 'superscript',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A section containing data arranged in rows and columns. See related grid. */\n  table: {\n    allowedChildRoles: ['caption', 'row', 'rowgroup'],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'table' }],\n    name: 'table',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['grid'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-colcount', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-rowcount'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A word or phrase with an optional corresponding definition. See related definition. */\n  term: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'dfn' }, { tagName: 'dt' }],\n    name: 'term',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** An element that represents a specific point in time. */\n  time: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'time' }],\n    name: 'time',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: ['aria-braillelabel', 'aria-label', 'aria-labelledby'],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A collection of commonly used function buttons or controls represented in compact visual form. */\n  toolbar: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-orientation': 'horizontal',\n    },\n    elements: [\n      { tagName: 'menu', attributes: { role: 'toolbar' } },\n      { tagName: 'ol', attributes: { role: 'toolbar' } },\n      { tagName: 'ul', attributes: { role: 'toolbar' } },\n    ],\n    name: 'toolbar',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['group'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n  /** A contextual popup that displays a description for an element. */\n  tooltip: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'tooltip',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['document'],\n  },\n};\n\nexport const landmarkRoles: Record<LandmarkRole, RoleData> = {\n  /** A landmark that contains mostly site-oriented content, rather than page-specific content. */\n  banner: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'header' }],\n    name: 'banner',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark that is designed to be complementary to the main content that it is a sibling to, or a direct descendant of. The contents of a complementary landmark would be expected to remain meaningful if it were to be separated from the main content it is relevant to. */\n  complementary: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'aside' }],\n    name: 'complementary',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark that contains information about the parent document. */\n  contentinfo: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'footer' }],\n    name: 'contentinfo',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark region that contains a collection of items and objects that, as a whole, combine to create a form. See related search. */\n  form: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'form' }],\n    name: 'form',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark containing the main content of a document. */\n  main: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'main' }],\n    name: 'main',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark containing a collection of navigational elements (usually links) for navigating the document or related documents. */\n  navigation: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'nav' }],\n    name: 'navigation',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['doc-index', 'doc-pagelist', 'doc-toc'],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark containing content that is relevant to a specific, author-specified purpose and sufficiently important that users will likely want to be able to navigate to the section easily and to have it listed in a summary of the page. Such a page summary could be generated dynamically by a user agent or assistive technology. */\n  region: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'section' }],\n    name: 'region',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n  /** A landmark region that contains a collection of items and objects that, as a whole, combine to create a search facility. See related form and searchbox. */\n  search: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'search' }],\n    name: 'search',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['landmark'],\n  },\n};\n\nexport const liveRegionRoles: Record<LiveRegionRole, RoleData> = {\n  /** A type of live region with important, and usually time-sensitive, information. See related alertdialog and status. */\n  alert: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-live': 'assertive',\n      'aria-atomic': true,\n    },\n    elements: [],\n    name: 'alert',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['alertdialog'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['liveregion'],\n  },\n  /** A type of live region where new information is added in meaningful order and old information can disappear. See related marquee. */\n  log: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-live': 'polite',\n    },\n    elements: [],\n    name: 'log',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['liveregion'],\n  },\n  /** A type of live region where non-essential information changes frequently. See related log. */\n  marquee: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'marquee',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['liveregion'],\n  },\n  /** A type of live region whose content is advisory information for the user but is not important enough to justify an alert, often but not necessarily presented as a status bar. */\n  status: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-live': 'polite',\n      'aria-atomic': true,\n    },\n    elements: [{ tagName: 'output' }],\n    name: 'status',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['timer'],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['liveregion'],\n  },\n  /** A type of live region containing a numerical counter which indicates an amount of elapsed time from a start point, or the time remaining until an end point. */\n  timer: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {\n      'aria-live': 'off',\n    },\n    elements: [],\n    name: 'timer',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['status'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['liveregion'],\n  },\n};\n\nexport const windowRoles: Record<WindowRole, RoleData> = {\n  /** A type of dialog that contains an alert message, where initial focus goes to an element within the dialog. See related alert and dialog. */\n  alertdialog: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'alertdialog',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['alert', 'dialog'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-modal', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['window'],\n  },\n  /** A dialog is a descendant window of the primary window of a web application. For HTML pages, the primary application window is the entire web document, i.e., the body element. */\n  dialog: {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'dialog' }],\n    name: 'dialog',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: ['alertdialog'],\n    superclasses: ['window'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-modal', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['window'],\n  },\n};\n\n// graphics extensions from https://www.w3.org/TR/graphics-aam-1.0/\nexport const graphicsRoles: Record<GraphicsRole, RoleData> = {\n  /** A type of document in which the visual appearance or layout of content conveys meaning. */\n  'graphics-document': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'svg', attributes: { role: 'graphics-document document' } }],\n    name: 'graphics-document',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['document'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['graphics'],\n  },\n  'graphics-object': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'g', attributes: { role: 'graphics-object' } }],\n    name: 'graphics-object',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['group'],\n    supported: ['aria-activedescendant', 'aria-atomic', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['graphics'],\n  },\n  'graphics-symbol': {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {},\n    elements: [{ tagName: 'svg', attributes: { role: 'graphics-symbol img' } }],\n    name: 'graphics-symbol',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['image', 'img'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['graphics'],\n  },\n};\n\n// digital publishing extensions from https://www.w3.org/TR/dpub-aam-1.1/\nexport const digitalPublishingRoles: Record<DigitalPublishingRole, RoleData> = {\n  /** A short summary of the principal ideas, concepts, and conclusions of the work, or of a section or excerpt within it. */\n  'doc-abstract': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-abstract',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A section or statement that acknowledges significant contributions by persons, organizations, governments, and other entities to the realization of the work. */\n  'doc-acknowledgments': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-acknowledgments',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A closing statement from the author or a person of importance, typically providing insight into how the content came to be written, its significance, or related events that have transpired since its timeline. */\n  'doc-afterword': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-afterword',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A section of supplemental information located after the primary content that informs the content but is not central to it. */\n  'doc-appendix': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-appendix',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A link that allows the user to return to a related location in the content (e.g., from a footnote to its reference or from a glossary definition to where a term is used). */\n  'doc-backlink': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-backlink',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['link'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /**\n   * A single reference to an external source in a bibliography. A biblioentry typically provides more detailed information than its reference(s) in the content (e.g., full title, author(s), publisher, publication date, etc.).\n   * @deprecated [Deprecated in DPUB-ARIA 1.1]\n   */\n  'doc-biblioentry': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-biblioentry',\n    nameFrom: 'author',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['listitem'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect',  'aria-flowto', 'aria-grabbed', 'aria-hidden',   'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A list of external references cited in the work, which may be to print or digital sources. */\n  'doc-bibliography': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-bibliography',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A reference to a bibliography entry. */\n  'doc-biblioref': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-biblioref',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['link'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A major thematic section of content in a work. */\n  'doc-chapter': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-chapter',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A short section of production notes particular to the edition (e.g., describing the typeface used), often located at the end of a work. */\n  'doc-colophon': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-colophon',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A concluding section or statement that summarizes the work or wraps up the narrative. */\n  'doc-conclusion': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-conclusion',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An image that sets the mood or tone for the work and typically includes the title and author. */\n  'doc-cover': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-cover',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['image', 'img'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An acknowledgment of the source of integrated content from third-party sources, such as photos. Typically identifies the creator, copyright, and any restrictions on reuse. */\n  'doc-credit': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-credit',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A collection of credits. */\n  'doc-credits': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-credits',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An inscription at the front of the work, typically addressed in tribute to one or more persons close to the author. */\n  'doc-dedication': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-dedication',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /**\n   * One of a collection of notes that occur at the end of a work, or a section within it, that provides additional context to a referenced passage of text.\n   * @deprecated [Deprecated in DPUB-ARIA 1.1]\n   */\n  'doc-endnote': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-endnote',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['listitem'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-posinset', 'aria-relevant', 'aria-roledescription', 'aria-setsize'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A collection of notes at the end of a work or a section within it. */\n  'doc-endnotes': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-endnotes',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A quotation set at the start of the work or a section that establishes the theme or sets the mood. */\n  'doc-epigraph': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-epigraph',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A concluding section of narrative that wraps up or comments on the actions and events of the work, typically from a future perspective. */\n  'doc-epilogue': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-epilogue',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A set of corrections discovered after initial publication of the work, sometimes referred to as corrigenda. */\n  'doc-errata': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-errata',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An illustration of a key concept of the work, such as a code listing, case study or problem. */\n  'doc-example': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-example',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['figure'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** Ancillary information, such as a citation or commentary, that provides additional context to a referenced passage of text. */\n  'doc-footnote': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-footnote',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An introductory section that precedes the work, typically not written by the author of the work. */\n  'doc-foreword': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-foreword',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A brief dictionary of new, uncommon, or specialized terms used in the content. */\n  'doc-glossary': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-glossary',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A reference to a glossary definition. */\n  'doc-glossref': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-glossref',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['link'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A navigational aid that provides a detailed list of links to key subjects, names and other important topics covered in the work. */\n  'doc-index': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-index',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['navigation'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A preliminary section that typically introduces the scope or nature of the work. */\n  'doc-introduction': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-introduction',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A reference to a footnote or endnote, typically appearing as a superscripted number or symbol in the main body of text. */\n  'doc-noteref': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-noteref',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['link'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** Notifies the user of consequences that might arise from an action or event. Examples include warnings, cautions and dangers. */\n  'doc-notice': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-notice',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['note'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A separator denoting the position before which a break occurs between two contiguous pages in a statically paginated version of the content. */\n  'doc-pagebreak': {\n    allowedChildRoles: [],\n    childrenPresentational: true,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-pagebreak',\n    nameFrom: 'authorAndContents',\n    nameRequired: true,\n    prohibited: [],\n    required: ['aria-valuenow'],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['separator'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-orientation', 'aria-owns', 'aria-relevant', 'aria-roledescription', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A section of text appearing at the bottom of a page that provides context about the current work and location within it. The page footer is distinct from the body text and normally follows a repeating template that contains (possibly truncated) items such as the document title, current section, author name(s), and page number.  */\n  'doc-pagefooter': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-pagefooter',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A section of text appearing at the top of a page that provides context about the current work and location within it. The page header is distinct from the body text and normally follows a repeating template that contains (possibly truncated) items such as the document title, current section, author name(s), and page number.  */\n  'doc-pageheader': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-pageheader',\n    nameFrom: 'prohibited',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A navigational aid that provides a list of links to the page breaks in the content. */\n  'doc-pagelist': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-pagelist',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['navigation'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A major structural division in a work that contains a set of related sections dealing with a particular subject, narrative arc, or similar encapsulated theme. */\n  'doc-part': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-part',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An introductory section that precedes the work, typically written by the author of the work. */\n  'doc-preface': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-preface',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An introductory section that sets the background to a work, typically part of the narrative. */\n  'doc-prologue': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-prologue',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['landmark'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A distinctively placed or highlighted quotation from the current content designed to draw attention to a topic or highlight a key point. */\n  'doc-pullquote': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-pullquote',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A section of content structured as a series of questions and answers, such as an interview or list of frequently asked questions. */\n  'doc-qna': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-qna',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['section'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** An explanatory or alternate title for the work, or a section or component within it. */\n  'doc-subtitle': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-subtitle',\n    nameFrom: 'authorAndContents',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['sectionhead'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** Helpful information that clarifies some aspect of the content or assists in its comprehension. */\n  'doc-tip': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-tip',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['note'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n  /** A navigational aid that provides an ordered list of links to the major sectional headings in the content. A table of contents may cover an entire work, or only a smaller section of it.  */\n  'doc-toc': {\n    allowedChildRoles: [],\n    childrenPresentational: false,\n    defaultAttributeValues: {},\n    elements: [],\n    name: 'doc-toc',\n    nameFrom: 'author',\n    nameRequired: false,\n    prohibited: [],\n    required: [],\n    requiredParentRoles: [],\n    subclasses: [],\n    superclasses: ['navigation'],\n    supported: ['aria-atomic', 'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-hidden', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'], // biome-ignore format: long list\n    type: ['digitalpublishing'],\n  },\n};\n\n// Note: this would throw a type error if we missed any!\nexport const roles: Record<ARIARole, RoleData> = {\n  ...widgetRoles,\n  ...documentRoles,\n  ...landmarkRoles,\n  ...liveRegionRoles,\n  ...windowRoles,\n  ...graphicsRoles,\n  ...digitalPublishingRoles,\n};\n\nexport const ALL_ROLES = Object.keys(roles).sort((a, b) => a.localeCompare(b)) as ARIARole[];\nexport const NO_ROLES: ARIARole[] = []; // explicitly no roles are allowed\n","import type { ARIAAttribute, ARIARole, TagName } from '../types.js';\nimport { ALL_ROLES, NO_ROLES } from './aria-roles.js';\n\nexport const NO_CORRESPONDING_ROLE = undefined;\n\nexport interface TagInfo {\n  /**\n   * Note: this is very likely to be overridden by custom logic! This won’t even\n   * apply for half of elements since they are influenced by attribute and\n   * Accessibility Tree ancestors.\n   */\n  defaultRole: ARIARole | undefined;\n  /**\n   * ⚠️ This is the default set of allowed roles. Many elements have special conditioning\n   * that narrow the allowed roles, that’s not easily serializable. That logic can be found\n   * in getSupportedRoles().\n   */\n  supportedRoles: ARIARole[];\n  /**\n   * If this conflicts with the role’s allowed attributes, this takes precedence.\n   */\n  supportedAttributesOverride: ARIAAttribute[] | undefined;\n  /**\n   * If this element doesn’t allow aria-label and related attributes by\n   * default (Note: if a `role` is specified, this is ignored!)\n   */\n  namingProhibited: boolean;\n}\n\n/**\n * SVG elements that are always hidden from screenreaders.\n * @see https://www.w3.org/TR/svg-aam-1.0/#include_elements\n */\nconst SVG_ALWAYS_INACCESSIBLE_ELEMENT: TagInfo = {\n  defaultRole: 'none',\n  namingProhibited: true,\n  supportedRoles: [],\n  supportedAttributesOverride: [],\n};\n/**\n * SVG elements that by default aren’t added to the a11y tree, but MAY be included if certain criteria are met.\n * @see https://www.w3.org/TR/svg-aam-1.0/#include_elements\n */\nconst SVG_MAYBE_ACCESSIBLE_ELEMENT: TagInfo = {\n  defaultRole: 'none', // ⚠️ these elements will get different default roles if they have an accessible name, but they all default to 'none'\n  namingProhibited: true,\n  supportedRoles: ALL_ROLES,\n  supportedAttributesOverride: undefined,\n};\n\nexport const tags: Record<TagName, TagInfo> = {\n  // Main root\n  html: {\n    defaultRole: 'document',\n    namingProhibited: false,\n    supportedRoles: ['document'],\n    supportedAttributesOverride: [],\n  },\n\n  // Document metadata\n  base: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: NO_ROLES,\n    supportedAttributesOverride: [],\n  },\n  head: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  link: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  meta: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  style: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  title: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n\n  // Sectioning root\n  body: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ['generic'],\n    // <body> supports all global + generic aria-* attributes EXCEPT aria-hidden\n    supportedAttributesOverride: ['aria-atomic', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-description', 'aria-details', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-keyshortcuts', 'aria-live', 'aria-owns', 'aria-relevant'], // biome-ignore format: long list\n  },\n\n  // Content sectioning\n  address: {\n    defaultRole: 'group',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  article: {\n    defaultRole: 'article',\n    namingProhibited: false,\n    supportedRoles: ['article', 'application', 'document', 'feed', 'main', 'none', 'presentation', 'region'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  aside: {\n    defaultRole: 'complementary',\n    namingProhibited: false,\n    supportedRoles: ['complementary', 'feed', 'none', 'note', 'presentation', 'region', 'search'],\n    supportedAttributesOverride: undefined,\n  },\n  footer: {\n    defaultRole: 'contentinfo',\n    namingProhibited: false,\n    supportedRoles: ['contentinfo', 'generic', 'group', 'none', 'presentation'],\n    supportedAttributesOverride: undefined,\n  },\n  header: {\n    defaultRole: 'banner',\n    namingProhibited: false,\n    supportedRoles: ['banner', 'generic', 'group', 'none', 'presentation'],\n    supportedAttributesOverride: undefined,\n  },\n  h1: {\n    defaultRole: 'heading',\n    namingProhibited: false,\n    supportedRoles: ['heading', 'none', 'presentation', 'tab'],\n    supportedAttributesOverride: undefined,\n  },\n  h2: {\n    defaultRole: 'heading',\n    namingProhibited: false,\n    supportedRoles: ['heading', 'none', 'presentation', 'tab'],\n    supportedAttributesOverride: undefined,\n  },\n  h3: {\n    defaultRole: 'heading',\n    namingProhibited: false,\n    supportedRoles: ['heading', 'none', 'presentation', 'tab'],\n    supportedAttributesOverride: undefined,\n  },\n  h4: {\n    defaultRole: 'heading',\n    namingProhibited: false,\n    supportedRoles: ['heading', 'none', 'presentation', 'tab'],\n    supportedAttributesOverride: undefined,\n  },\n  h5: {\n    defaultRole: 'heading',\n    namingProhibited: false,\n    supportedRoles: ['heading', 'none', 'presentation', 'tab'],\n    supportedAttributesOverride: undefined,\n  },\n  h6: {\n    defaultRole: 'heading',\n    namingProhibited: false,\n    supportedRoles: ['heading', 'none', 'presentation', 'tab'],\n    supportedAttributesOverride: undefined,\n  },\n  hgroup: {\n    defaultRole: 'group',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  main: {\n    defaultRole: 'main',\n    namingProhibited: false,\n    supportedRoles: ['main'],\n    supportedAttributesOverride: undefined,\n  },\n  nav: {\n    defaultRole: 'navigation',\n    namingProhibited: false,\n    supportedRoles: ['menu', 'menubar', 'navigation', 'none', 'presentation', 'tablist'],\n    supportedAttributesOverride: undefined,\n  },\n  section: {\n    defaultRole: 'region', // note: for <section>, we can’t determine the accessible name without scanning the entire document. Assume it’s \"region\".\n    namingProhibited: false,\n    supportedRoles: ['alert', 'alertdialog', 'application', 'banner', 'complementary', 'contentinfo', 'dialog', 'document', 'feed', 'generic', 'group', 'log', 'main', 'marquee', 'navigation', 'none', 'note', 'presentation', 'region', 'search', 'status', 'tabpanel'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  search: {\n    defaultRole: 'search',\n    namingProhibited: false,\n    supportedRoles: ['form', 'group', 'none', 'presentation', 'region', 'search'],\n    supportedAttributesOverride: undefined,\n  },\n\n  // Text content\n  blockquote: {\n    defaultRole: 'blockquote',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  dd: {\n    // - html-aria: no corresponding role\n    // - AAM: definition\n    // - Chrome, Firefox, Safari: definition\n    defaultRole: 'definition',\n    namingProhibited: false,\n    supportedRoles: ['definition'],\n    supportedAttributesOverride: undefined,\n  },\n  div: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  dl: {\n    // - html-aria: no corresponding role\n    // - AAM: list\n    // - Chrome: Definitionlist, Firefox: definitionlist, Safari: no corresponding role\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['group', 'list', 'none', 'presentation'],\n    supportedAttributesOverride: undefined,\n  },\n  dt: {\n    // - html-aria: no corresponding role\n    // - AAM: term\n    // - Chrome, Firefox, Safari: term\n    defaultRole: 'term',\n    namingProhibited: false,\n    supportedRoles: ['listitem', 'term'],\n    supportedAttributesOverride: undefined,\n  },\n  figcaption: {\n    // - html-aria: no corresponding role\n    // - AAM: caption\n    // - Chrome, Firefox, Safari: caption\n    defaultRole: 'caption',\n    namingProhibited: true,\n    supportedRoles: ['caption', 'group', 'none', 'presentation'],\n    supportedAttributesOverride: undefined,\n  },\n  figure: {\n    defaultRole: 'figure',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES, // Note: there are some minor behavioral quirks here which we gloss over\n    supportedAttributesOverride: undefined,\n  },\n  hr: {\n    defaultRole: 'separator',\n    namingProhibited: false,\n    supportedRoles: ['none', 'presentation', 'separator'],\n    supportedAttributesOverride: undefined,\n  },\n  li: {\n    defaultRole: 'listitem',\n    namingProhibited: false,\n    supportedRoles: ['listitem'],\n    supportedAttributesOverride: undefined,\n  },\n  menu: {\n    defaultRole: 'list',\n    namingProhibited: false,\n    supportedRoles: ['group', 'list', 'listbox', 'menu', 'menubar', 'none', 'presentation', 'radiogroup', 'tablist', 'toolbar', 'tree'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  ol: {\n    defaultRole: 'list',\n    namingProhibited: false,\n    supportedRoles: ['group', 'list', 'listbox', 'menu', 'menubar', 'none', 'presentation', 'radiogroup', 'tablist', 'toolbar', 'tree'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  p: {\n    defaultRole: 'paragraph',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  pre: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  ul: {\n    defaultRole: 'list',\n    namingProhibited: false,\n    supportedRoles: ['group', 'list', 'listbox', 'menu', 'menubar', 'none', 'presentation', 'radiogroup', 'tablist', 'toolbar', 'tree'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n\n  // Inline text semantics\n  a: {\n    defaultRole: 'link',\n    namingProhibited: false,\n    supportedRoles: ['button', 'checkbox', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'switch', 'tab', 'treeitem'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  abbr: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  b: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  bdi: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  bdo: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  br: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['none', 'presentation'],\n    supportedAttributesOverride: ['aria-hidden'],\n  },\n  cite: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  code: {\n    defaultRole: 'code',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  data: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  dfn: {\n    defaultRole: 'term',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  em: {\n    defaultRole: 'emphasis',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  i: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  kbd: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  mark: {\n    defaultRole: 'mark',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  q: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  rp: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  rt: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  ruby: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  s: {\n    defaultRole: 'deletion',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  samp: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  small: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  span: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  strong: {\n    defaultRole: 'strong',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  sub: {\n    defaultRole: 'subscript',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  sup: {\n    defaultRole: 'superscript',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  time: {\n    defaultRole: 'time',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  u: {\n    defaultRole: 'generic',\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  var: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  wbr: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['none', 'presentation'],\n    supportedAttributesOverride: ['aria-hidden'],\n  },\n\n  // Image and multimedia\n  area: {\n    defaultRole: 'link',\n    namingProhibited: false,\n    supportedRoles: ['link'],\n    supportedAttributesOverride: undefined,\n  },\n  audio: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['application'],\n    supportedAttributesOverride: undefined,\n  },\n  img: {\n    defaultRole: 'none',\n    namingProhibited: false,\n    supportedRoles: ['img', 'image', 'none', 'presentation'],\n    supportedAttributesOverride: undefined,\n  },\n  map: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  track: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  video: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['application'],\n    supportedAttributesOverride: undefined,\n  },\n\n  // Embedded content\n  embed: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['application', 'document', 'img', 'image', 'none', 'presentation'],\n    supportedAttributesOverride: undefined,\n  },\n  iframe: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['application', 'document', 'img', 'image', 'none', 'presentation'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  object: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ['application', 'document', 'img', 'image'],\n    supportedAttributesOverride: undefined,\n  },\n  picture: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: ['aria-hidden'],\n  },\n  source: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n\n  // SVG and MathML\n  svg: {\n    defaultRole: 'graphics-document',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  math: {\n    defaultRole: 'math',\n    namingProhibited: false,\n    supportedRoles: ['math'],\n    supportedAttributesOverride: undefined,\n  },\n\n  // Scripting\n  canvas: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  noscript: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  script: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n\n  del: {\n    defaultRole: 'deletion',\n    supportedRoles: ALL_ROLES,\n    namingProhibited: true,\n    supportedAttributesOverride: undefined,\n  },\n  ins: {\n    defaultRole: 'insertion',\n    supportedRoles: ALL_ROLES,\n    namingProhibited: true,\n    supportedAttributesOverride: undefined,\n  },\n\n  // Table content\n  caption: {\n    defaultRole: 'caption',\n    supportedRoles: ['caption'],\n    namingProhibited: true,\n    supportedAttributesOverride: undefined,\n  },\n  col: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: NO_ROLES,\n    supportedAttributesOverride: [],\n  },\n  colgroup: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: NO_ROLES,\n    supportedAttributesOverride: [],\n  },\n  table: {\n    defaultRole: 'table',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  tbody: {\n    defaultRole: 'rowgroup',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  td: {\n    defaultRole: 'cell',\n    namingProhibited: false,\n    supportedRoles: ['cell'],\n    supportedAttributesOverride: undefined,\n  },\n  tfoot: {\n    defaultRole: 'rowgroup',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  th: {\n    defaultRole: 'columnheader',\n    namingProhibited: false,\n    supportedRoles: ['cell', 'columnheader', 'gridcell', 'rowheader'],\n    supportedAttributesOverride: undefined,\n  },\n  thead: {\n    defaultRole: 'rowgroup',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  tr: {\n    defaultRole: 'row',\n    namingProhibited: false,\n    supportedRoles: ['row'],\n    supportedAttributesOverride: undefined,\n  },\n\n  // Forms\n  button: {\n    defaultRole: 'button',\n    namingProhibited: false,\n    supportedRoles: ['button', 'checkbox', 'combobox', 'gridcell', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'separator', 'slider', 'switch', 'tab', 'treeitem'], // biome-ignore format: long list\n    supportedAttributesOverride: undefined,\n  },\n  datalist: {\n    defaultRole: 'listbox',\n    namingProhibited: false,\n    supportedRoles: ['listbox'],\n    supportedAttributesOverride: [],\n  },\n  fieldset: {\n    defaultRole: 'group',\n    namingProhibited: false,\n    supportedRoles: ['group', 'none', 'presentation', 'radiogroup'],\n    supportedAttributesOverride: undefined,\n  },\n  form: {\n    defaultRole: 'form',\n    namingProhibited: false,\n    supportedRoles: ['form', 'none', 'presentation', 'search'],\n    supportedAttributesOverride: undefined,\n  },\n  input: {\n    defaultRole: 'textbox',\n    namingProhibited: false,\n    supportedRoles: ['combobox', 'searchbox', 'spinbutton', 'textbox'],\n    supportedAttributesOverride: undefined,\n  },\n  label: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: [],\n    supportedAttributesOverride: undefined,\n  },\n  legend: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: true,\n    supportedRoles: [],\n    supportedAttributesOverride: undefined,\n  },\n  meter: {\n    defaultRole: 'meter',\n    namingProhibited: false,\n    supportedRoles: ['meter'],\n    supportedAttributesOverride: undefined,\n  },\n  optgroup: {\n    defaultRole: 'group',\n    namingProhibited: false,\n    supportedRoles: ['group'],\n    supportedAttributesOverride: undefined,\n  },\n  option: {\n    defaultRole: 'option',\n    namingProhibited: false,\n    supportedRoles: ['option'],\n    supportedAttributesOverride: undefined,\n  },\n  output: {\n    defaultRole: 'status',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  progress: {\n    defaultRole: 'progressbar',\n    namingProhibited: false,\n    supportedRoles: ['progressbar'],\n    supportedAttributesOverride: undefined,\n  },\n  select: {\n    defaultRole: 'combobox',\n    namingProhibited: false,\n    supportedRoles: ['combobox', 'menu'],\n    supportedAttributesOverride: undefined,\n  },\n  textarea: {\n    defaultRole: 'textbox',\n    namingProhibited: false,\n    supportedRoles: ['textbox'],\n    supportedAttributesOverride: undefined,\n  },\n\n  // Interactive elements\n  details: {\n    defaultRole: 'group',\n    namingProhibited: false,\n    supportedRoles: ['group'],\n    supportedAttributesOverride: undefined,\n  },\n  dialog: {\n    defaultRole: 'dialog',\n    namingProhibited: false,\n    supportedRoles: ['alertdialog', 'dialog'],\n    supportedAttributesOverride: undefined,\n  },\n  summary: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n\n  // Web Components\n  slot: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n  template: {\n    defaultRole: NO_CORRESPONDING_ROLE,\n    namingProhibited: false,\n    supportedRoles: [],\n    supportedAttributesOverride: [],\n  },\n\n  // SVG\n  // @see https://www.w3.org/TR/svg-aam-1.0/#mapping_role_table\n  // a: (use HTML <a>)\n  animate: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  animateMotion: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  animateTransform: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  // audio: (use HTML <audio>)\n  // canvas: (use HTML <canvas>)\n  circle: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  clipPath: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  defs: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  desc: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  ellipse: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  feBlend: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feColorMatrix: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feComponentTransfer: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feComposite: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feConvolveMatrix: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feDiffuseLighting: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feDisplacementMap: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feDistantLight: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feDropShadow: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feFlood: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feFuncA: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feFuncB: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feFuncG: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feFuncR: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feGaussianBlur: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feImage: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feMerge: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feMergeNode: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feMorphology: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feOffset: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  fePointLight: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feSpecularLighting: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feSpotLight: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feTile: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  feTurbulence: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  filter: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  foreignObject: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  g: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  image: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  line: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  linearGradient: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  marker: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  mask: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  metadata: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  mpath: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  path: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  pattern: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  polygon: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  polyline: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  radialGradient: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  rect: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  set: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  stop: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  // style: (use HTML <style>)\n  switch: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  symbol: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n  // Note: text is the ONLY SVG element that defaults to \"group\" unconditionally\n  // because it contains text nodes by its nature.\n  text: {\n    defaultRole: 'group',\n    namingProhibited: false,\n    supportedRoles: ALL_ROLES,\n    supportedAttributesOverride: undefined,\n  },\n  textPath: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  // title: (use HTML <title>)\n  // track: (use HTML <track>)\n  tspan: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  use: SVG_MAYBE_ACCESSIBLE_ELEMENT,\n  // video: (use HTML <video>)\n  view: SVG_ALWAYS_INACCESSIBLE_ELEMENT,\n};\n","import type {\n  ARIAAttribute,\n  ARIARole,\n  LandmarkRole,\n  NameProhibitedAttributes,\n  TagName,\n  VirtualAncestorList,\n  VirtualElement,\n} from '../types.js';\nimport { type RoleData, landmarkRoles } from './aria-roles.js';\n\n/** Parse a list of roles, e.g. role=\"graphics-symbol img\" */\nexport function parseTokenList(tokenList: string): string[] {\n  return tokenList.toLocaleLowerCase().split(' ').filter(Boolean);\n}\n\n/**\n * Get the first matching value in a tokenlist\n *\n * Note: according to the spec, `role` can not only be a list of\n * spring-separated values; it can contain fallbacks the browser may not\n * understand. According to spec, an arbitrary role is to be ignored, so we take\n * the first match (if any), or `undefined`.\n * @see\n */\nexport function firstMatchingToken<T>(tokenList: string, validValues: T[]): T | undefined {\n  return parseTokenList(tokenList).find((value) => validValues.includes(value as T)) as T | undefined;\n}\n\nexport function getTagName(element: Element | VirtualElement): TagName {\n  // JSDOM bug: feDropShadow gets converted to fedropshadow. Since this library is often used in JSDOM contexts, we should handle this at runtime, cheaply\n  if (element.tagName === 'fedropshadow') {\n    return 'feDropShadow';\n  }\n\n  // note: HTML is case-insensitive, but SVG is not. Browsers will normalize case-insensitive\n  // names to UPPERCASE (e.g. `BUTTON`), and leave SVG in its original camelCase format.\n  const caseInsensitive = /^[A-Z]/.test(element.tagName);\n  return (caseInsensitive ? element.tagName.toLowerCase() : element.tagName) as TagName;\n}\n\n/**\n * Get attribute from any type of element. Optimized for performance.\n */\nexport function attr(element: Element | VirtualElement, attribute: string) {\n  // Note: this is type-safe; don’t add more runtime checks to satify TypeScript\n  return typeof (element as Element).getAttribute === 'function'\n    ? (element as Element).getAttribute(attribute)\n    : (element as VirtualElement).attributes?.[attribute];\n}\n\n/**\n * Determine accessible names for SOME tags (not all)\n * @see https://www.w3.org/TR/wai-aria-1.3/#namecalculation\n */\nexport function calculateAccessibleName(element: Element | VirtualElement, role: RoleData): string | undefined {\n  if (role.nameFrom === 'prohibited') {\n    return;\n  }\n  if (role.nameFrom === 'contents') {\n    return 'innerText' in (element as HTMLElement) ? (element as HTMLElement).innerText : undefined;\n  }\n\n  // for author + authorAndContents, handle special cases first\n  const tagName = getTagName(element);\n  switch (tagName) {\n    /**\n     * @see https://www.w3.org/TR/html-aam-1.0/#img-element-accessible-name-computation\n     */\n    case 'img': {\n      const label =\n        (attr(element, 'aria-label') as string | undefined)?.trim() ||\n        (attr(element, 'aria-labelledby') as string | undefined)?.trim();\n\n      if (label) {\n        return label;\n      }\n\n      const alt = attr(element, 'alt');\n\n      if (typeof alt !== 'undefined') {\n        return alt as string;\n      }\n\n      return (attr(element, 'title') as string | undefined) || undefined;\n    }\n  }\n\n  return (\n    (attr(element, 'aria-label') as string | undefined)?.trim() ||\n    (attr(element, 'aria-labelledby') as string | undefined)?.trim() ||\n    (attr(element, 'title') as string | undefined) ||\n    (role.nameFrom === 'authorAndContents' &&\n      'innerText' in (element as HTMLElement) &&\n      (element as HTMLElement).innerText) ||\n    undefined\n  );\n}\n\nexport const NAME_PROHIBITED_ATTRIBUTES = new Set<string>([\n  'aria-braillelabel',\n  'aria-label',\n  'aria-labelledby',\n] satisfies NameProhibitedAttributes[]);\n\nconst LANDMARK_ROLES = Object.keys(landmarkRoles) as LandmarkRole[];\nconst LANDMARK_ELEMENTS: TagName[] = ['article', 'aside', 'main', 'nav', 'section'];\nconst LANDMARK_CSS_SELECTOR = LANDMARK_ROLES.map((role) => `[role=${role}]`)\n  .concat(...LANDMARK_ELEMENTS.map((el) => `${el}:not([role])`))\n  .join(',');\n\n/** Logic shared by <header> and <footer> when determining role */\nexport function hasLandmarkParent(element: Element | VirtualElement, ancestors?: VirtualAncestorList): boolean {\n  if (typeof Element !== 'undefined' && element instanceof Element) {\n    return !!element.parentElement?.closest(LANDMARK_CSS_SELECTOR);\n  }\n  return !!ancestors?.some(\n    (el) => LANDMARK_ELEMENTS.includes(el.tagName) || LANDMARK_ROLES.includes(attr(el, 'role') as LandmarkRole),\n  );\n}\n\nconst LIST_ELEMENTS: TagName[] = ['ul', 'ol', 'menu'];\nconst LIST_ROLES: ARIARole[] = ['list'];\nconst LIST_CSS_SELECTOR = LIST_ROLES.map((role) => `[role=${role}]`)\n  .concat(...LIST_ELEMENTS.map((el) => `${el}:not([role])`))\n  .join(',');\n\nexport function hasListParent(element: Element | VirtualElement, ancestors?: VirtualAncestorList): boolean {\n  if (typeof Element !== 'undefined' && element instanceof Element) {\n    return !!element.parentElement?.closest(LIST_CSS_SELECTOR);\n  }\n  // special behavior: outside the DOM, if we’re testing a list-like element, assume it’s within a list\n  if (ancestors?.length !== 0 && element.tagName === 'li') {\n    return true;\n  }\n  return !!ancestors?.some(\n    (el) => LIST_ELEMENTS.includes(el.tagName) || (LIST_ROLES as string[]).includes(attr(el, 'role') as string),\n  );\n}\n\nconst GRID_ROLES: ARIARole[] = ['grid', 'treegrid'];\nconst GRID_CSS_SELECTOR = GRID_ROLES.map((role) => `[role=${role}]`).join(',');\n\n/** Logic shared by <td> and <th> when determining role */\nexport function hasGridParent(element: Element | VirtualElement, ancestors?: VirtualAncestorList): boolean {\n  if (typeof Element !== 'undefined' && element instanceof Element) {\n    return !!element.parentElement?.closest(GRID_CSS_SELECTOR);\n  }\n  return !!ancestors?.some((el) => GRID_ROLES.includes(attr(el, 'role')! as (typeof GRID_ROLES)[number]));\n}\n\nexport interface RemoveProhibitedOptions<P extends ARIAAttribute[]> {\n  nameProhibited?: boolean;\n  prohibited?: P;\n}\n\nexport function hasTableParent(element: Element | VirtualElement, ancestors?: VirtualAncestorList): boolean {\n  if (typeof Element !== 'undefined' && element instanceof Element) {\n    return !!element.parentElement?.closest('table,[role=table]');\n  }\n  // special behavior: outside the DOM, if we’re testing a table-like element, assume it’s within a table\n  if (\n    ancestors?.length !== 0 &&\n    ['tbody', 'thead', 'tfoot', 'tr', 'td', 'th', 'col', 'colgroup', 'rowgroup'].includes(element.tagName)\n  ) {\n    return true;\n  }\n  return !!ancestors?.some((el) => el.tagName === 'table' || attr(el, 'role') === 'table');\n}\n\nconst SECTIONING_CONTENT_ROLES: ARIARole[] = ['article', 'complementary', 'navigation', 'region'];\nconst SECTIONING_CONTENT_ELEMENTS: TagName[] = ['article', 'aside', 'nav', 'section'];\nconst SECTIONING_CONTENT_CSS_SELECTOR = SECTIONING_CONTENT_ROLES.map((role) => `[role=${role}]`)\n  .concat(...SECTIONING_CONTENT_ELEMENTS.map((el) => `${el}:not([role])`))\n  .join(',');\n\n/**\n * Has sectioning content parent\n * @see https://html.spec.whatwg.org/multipage/dom.html#sectioning-content\n */\nexport function hasSectioningContentParent(\n  element: Element | VirtualElement,\n  ancestors?: VirtualAncestorList,\n): boolean {\n  if (typeof Element !== 'undefined' && element instanceof Element) {\n    return !!element.parentElement?.closest(SECTIONING_CONTENT_CSS_SELECTOR);\n  }\n  return !!ancestors?.some(\n    (el) =>\n      SECTIONING_CONTENT_ELEMENTS.includes(el.tagName) ||\n      (SECTIONING_CONTENT_ROLES as string[]).includes(attr(el, 'role') as string),\n  );\n}\n\n/** Remove prohibited aria-* attributes from a list */\nexport function removeProhibited<T extends ARIAAttribute[], P extends ARIAAttribute[]>(\n  attributeList: T,\n  options?: RemoveProhibitedOptions<P>,\n): Exclude<T, keyof P> {\n  if (!options || (!options.nameProhibited && !options.prohibited)) {\n    return attributeList as Exclude<T, keyof P>;\n  }\n  return attributeList.filter((attr) => {\n    const isProhibited =\n      (options.nameProhibited && NAME_PROHIBITED_ATTRIBUTES.has(attr)) || options.prohibited?.includes(attr);\n    return !isProhibited;\n  }) as Exclude<T, keyof P>;\n}\n\n/** Inject new items into an array */\nexport function concatDedupeAndSort<T extends string>(list: T[], newItems: T[]): T[] {\n  const newList = [...new Set([...list, ...newItems])];\n  newList.sort((a, b) => a.localeCompare(b));\n  return newList;\n}\n\n/** Is this element disabled? */\nexport function isDisabled(element: Element | VirtualElement): boolean {\n  const disabled = String(attr(element, 'disabled'));\n  if (disabled === '' || disabled === 'true') {\n    return true;\n  }\n  const ariaDisabled = String(attr(element, 'aria-disabled'));\n  return ariaDisabled === '' || ariaDisabled === 'true';\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { tags } from '../lib/html.js';\nimport { hasSectioningContentParent } from '../lib/util.js';\nimport type { VirtualAncestorList, VirtualElement } from '../types.js';\n\n/**\n * @see https://www.w3.org/TR/html-aam-1.0/#el-aside-ancestorbodymain\n * @see https://www.w3.org/TR/html-aam-1.0/#el-aside\n */\nexport function getAsideRole(\n  element: Element | VirtualElement,\n  options?: { ancestors?: VirtualAncestorList },\n): RoleData | undefined {\n  return hasSectioningContentParent(element, options?.ancestors) ? roles.generic : roles[tags.aside.defaultRole!];\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { tags } from '../lib/html.js';\nimport { hasLandmarkParent } from '../lib/util.js';\nimport type { VirtualAncestorList, VirtualElement } from '../types.js';\n\nexport function getFooterRole(\n  element: Element | VirtualElement,\n  options?: { ancestors?: VirtualAncestorList },\n): RoleData | undefined {\n  return hasLandmarkParent(element, options?.ancestors) ? roles.generic : roles[tags.footer.defaultRole!];\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { tags } from '../lib/html.js';\nimport { hasLandmarkParent } from '../lib/util.js';\nimport type { VirtualAncestorList, VirtualElement } from '../types.js';\n\nexport function getHeaderRole(\n  element: Element | VirtualElement,\n  options?: { ancestors?: VirtualAncestorList },\n): RoleData | undefined {\n  return hasLandmarkParent(element, options?.ancestors) ? roles.generic : roles[tags.header.defaultRole!];\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { NO_CORRESPONDING_ROLE, tags } from '../lib/html.js';\nimport { attr } from '../lib/util.js';\nimport type { ARIARole, VirtualElement } from '../types.js';\n\nexport type InputType =\n  | 'button'\n  | 'checkbox'\n  | 'color'\n  | 'date'\n  | 'datetime-local'\n  | 'email'\n  | 'file'\n  | 'hidden'\n  | 'image'\n  | 'month'\n  | 'number'\n  | 'password'\n  | 'radio'\n  | 'range'\n  | 'reset'\n  | 'search'\n  | 'submit'\n  | 'tel'\n  | 'text'\n  | 'time'\n  | 'url'\n  | 'week';\n\nexport const INPUT_ROLE_MAP: Record<InputType, RoleData | undefined> = {\n  button: roles.button,\n  checkbox: roles.checkbox,\n  color: NO_CORRESPONDING_ROLE,\n  date: NO_CORRESPONDING_ROLE,\n  'datetime-local': NO_CORRESPONDING_ROLE,\n  email: roles.textbox,\n  file: NO_CORRESPONDING_ROLE,\n  hidden: NO_CORRESPONDING_ROLE,\n  image: roles.button,\n  month: NO_CORRESPONDING_ROLE,\n  number: roles.spinbutton,\n  password: NO_CORRESPONDING_ROLE,\n  radio: roles.radio,\n  range: roles.slider,\n  reset: roles.button,\n  search: roles.searchbox,\n  submit: roles.button,\n  tel: roles.textbox,\n  text: roles.textbox,\n  time: NO_CORRESPONDING_ROLE,\n  url: roles.textbox,\n  week: NO_CORRESPONDING_ROLE,\n};\n\nexport function getInputRole(element: Element | VirtualElement): RoleData | undefined {\n  // For ARIA purposes, missing or invalid types are treated as \"text\"\n  let type = attr(element, 'type') as InputType;\n  if (!type || !(type in INPUT_ROLE_MAP)) {\n    type = 'text';\n  }\n\n  const role = type in INPUT_ROLE_MAP ? INPUT_ROLE_MAP[type as InputType] : INPUT_ROLE_MAP.text;\n\n  // handle combobox behavior for textbox-type inputs\n  // @see https://www.w3.org/TR/html-aria/#el-input-text-list\n  const list = attr(element, 'list');\n  if (list && (role?.name === 'textbox' || role?.name === 'searchbox')) {\n    return roles.combobox;\n  }\n\n  return role;\n}\n\nexport const INPUT_SUPPORTED_ROLES_MAP: Record<InputType, ARIARole[]> = {\n  button: ['button', 'checkbox', 'combobox', 'gridcell', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'separator', 'slider', 'switch', 'tab', 'treeitem'], // biome-ignore format: long list\n  checkbox: ['checkbox', 'menuitemcheckbox', 'option', 'switch'],\n  color: [],\n  date: [],\n  'datetime-local': [],\n  email: ['textbox'],\n  file: [],\n  hidden: [],\n  image: ['button', 'checkbox', 'gridcell', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'separator', 'slider', 'switch', 'tab', 'treeitem'], // biome-ignore format: long list\n  month: [],\n  number: ['spinbutton'],\n  password: [],\n  radio: ['menuitemradio', 'radio'],\n  range: ['slider'],\n  reset: ['button', 'checkbox', 'combobox', 'gridcell', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'separator', 'slider', 'switch', 'tab', 'treeitem'], // biome-ignore format: long list\n  search: ['searchbox'],\n  submit: ['button', 'checkbox', 'combobox', 'gridcell', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'separator', 'slider', 'switch', 'tab', 'treeitem'], // biome-ignore format: long list\n  tel: ['textbox'],\n  text: tags.input.supportedRoles,\n  time: [],\n  url: ['textbox'],\n  week: [],\n};\n\nexport function getInputSupportedRoles(element: Element | VirtualElement): ARIARole[] {\n  // For ARIA purposes, missing or invalid types are treated as \"text\"\n  let type = attr(element, 'type') as InputType;\n  if (!type || !(type in INPUT_SUPPORTED_ROLES_MAP)) {\n    type = 'text';\n  }\n\n  // special behavior: checkboxes\n  // @see https://www.w3.org/TR/html-aria/#el-input-checkbox\n  if (type === 'checkbox' && attr(element, 'aria-pressed')) {\n    return ['button', ...INPUT_SUPPORTED_ROLES_MAP.checkbox];\n  }\n\n  const supportedRoles = INPUT_SUPPORTED_ROLES_MAP[type as InputType] ?? INPUT_SUPPORTED_ROLES_MAP.text;\n\n  // handle combobox behavior for textbox-type inputs\n  const list = attr(element, 'list');\n  if (list && supportedRoles.some((name) => name === 'textbox' || name === 'searchbox')) {\n    return ['combobox'];\n  }\n\n  return supportedRoles;\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { hasListParent } from '../lib/util.js';\nimport type { VirtualAncestorList, VirtualElement } from '../types.js';\n\nexport function getLIRole(\n  element: Element | VirtualElement,\n  options?: { ancestors?: VirtualAncestorList },\n): RoleData | undefined {\n  return hasListParent(element, options?.ancestors) ? roles.listitem : roles.generic;\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { tags } from '../lib/html.js';\nimport { attr } from '../lib/util.js';\nimport type { ARIARole, VirtualElement } from '../types.js';\n\nexport function getSelectRole(element: Element | VirtualElement): RoleData | undefined {\n  const size = normalizeSize(attr(element, 'size'));\n  const multiple = attr(element, 'multiple');\n  if ((size && size > 1) || typeof multiple === 'string' || typeof multiple === 'boolean') {\n    return roles.listbox;\n  }\n  return roles[tags.select.defaultRole!];\n}\n\nexport function getSelectSupportedRoles(element: Element | VirtualElement): ARIARole[] {\n  const size = normalizeSize(attr(element, 'size'));\n  const multiple = attr(element, 'multiple');\n  if ((size && size > 1) || typeof multiple === 'string' || typeof multiple === 'boolean') {\n    return ['listbox'];\n  }\n  return tags.select.supportedRoles;\n}\n\nfunction normalizeSize(size: unknown): number | undefined {\n  if (typeof size === 'number') {\n    return size;\n  }\n  if (typeof size === 'string' && size !== '') {\n    return Number.parseFloat(size) || 0;\n  }\n  return undefined;\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { tags } from '../lib/html.js';\nimport { attr, getTagName } from '../lib/util.js';\nimport type { VirtualElement } from '../types.js';\n\n// ONLY applied if it meets the criteria\nconst SVG_ACCESSIBLE_ROLE_MAPPING = {\n  circle: roles['graphics-symbol'],\n  ellipse: roles['graphics-symbol'],\n  foreignObject: roles.group,\n  g: roles.group,\n  line: roles['graphics-symbol'],\n  image: roles.image,\n  path: roles['graphics-symbol'],\n  polygon: roles['graphics-symbol'],\n  polyline: roles['graphics-symbol'],\n  rect: roles['graphics-symbol'],\n  // Note: open issue https://www.w3.org/TR/svg-aam-1.0/#textpath-tspan-mappings-issue\n  textPath: roles.group,\n  // Note: open issue https://www.w3.org/TR/svg-aam-1.0/#textpath-tspan-mappings-issue\n  tspan: roles.group,\n  use: roles['graphics-object'],\n};\n\n/**\n * Handles role mapping for all SVG elements (<circle>, <rect>, <polygon>, etc.). because they\n * share logic.\n * @see https://www.w3.org/TR/svg-aam-1.0/#include_elements\n */\nexport function getSvgElementRole(element: Element | VirtualElement): RoleData | undefined {\n  const tagName = getTagName(element);\n  const defaultRole = roles[tags[tagName]?.defaultRole!];\n  if (!(tagName in SVG_ACCESSIBLE_ROLE_MAPPING)) {\n    return defaultRole;\n  }\n\n  const accessibleRole = SVG_ACCESSIBLE_ROLE_MAPPING[tagName as keyof typeof SVG_ACCESSIBLE_ROLE_MAPPING];\n\n  const ariaHidden = attr(element, 'aria-hidden');\n  const isHidden = ariaHidden === '' || String(ariaHidden) === 'true';\n\n  // <image> tags: treat as img if it has a src\n  if (!isHidden && tagName === 'image' && attr(element, 'src')) {\n    return accessibleRole;\n  }\n\n  // Name step 1: look for name attributes on element\n  const hasLabel =\n    !isHidden &&\n    (attr(element, 'aria-label') ||\n      attr(element, 'aria-labelledby') ||\n      attr(element, 'aria-describedby') ||\n      attr(element, 'aria-roledescription'));\n  if (hasLabel) {\n    return accessibleRole;\n  }\n\n  // Name step 2: look for <title> or <desc> children (that aren’t empty whitespace)\n  const hasTextChild = 'querySelector' in element && element.querySelector('title,desc')?.textContent?.trim().length;\n  if (hasTextChild) {\n    return accessibleRole;\n  }\n\n  return defaultRole;\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { NO_CORRESPONDING_ROLE } from '../lib/html.js';\nimport { hasGridParent, hasTableParent } from '../lib/util.js';\nimport type { VirtualAncestorList, VirtualElement } from '../types.js';\n\n/** Special behavior for <td> element */\nexport function getTDRole(\n  element: Element | VirtualElement,\n  options?: { ancestors?: VirtualAncestorList },\n): RoleData | undefined {\n  if (hasGridParent(element, options?.ancestors)) {\n    return roles.gridcell;\n  }\n  if (hasTableParent(element, options?.ancestors)) {\n    return roles.cell;\n  }\n  return NO_CORRESPONDING_ROLE;\n}\n","import { type RoleData, roles } from '../lib/aria-roles.js';\nimport { NO_CORRESPONDING_ROLE } from '../lib/html.js';\nimport { attr, hasGridParent, hasTableParent } from '../lib/util.js';\nimport type { VirtualAncestorList, VirtualElement } from '../types.js';\n\n/** Special behavior for <th> element */\nexport function getTHRole(\n  element: Element | VirtualElement,\n  options?: {\n    ancestors?: VirtualAncestorList;\n  },\n): RoleData | undefined {\n  // Note: Chrome 135/Firefox 137/Safari 18.4 currently ignore \"scope\" attr,\n  // We still respect it all the same, because it’s unlikely this is being\n  // explicitly set only to be ignored\n  const scope = attr(element, 'scope');\n  switch (scope) {\n    /** @see https://www.w3.org/TR/html-aam-1.0/#el-th-columnheader */\n    case 'col':\n    case 'colgroup': {\n      return roles.columnheader;\n    }\n    /** @see https://www.w3.org/TR/html-aam-1.0/#el-th-rowheader */\n    case 'row':\n    case 'rowgroup': {\n      return roles.rowheader;\n    }\n  }\n\n  /** @see https://www.w3.org/TR/html-aam-1.0/#el-th-gridcell */\n  if (hasGridParent(element, options?.ancestors)) {\n    return roles.gridcell;\n  }\n\n  // Role determination is a bit dicey per-browser:\n  // - Chrome 135/Firefox 137: <th> in a table is columnheader, unless there’s a sibling <td> then it’s rowheader\n  // - Safari 18.4: <th> is columnheader in <thead>, rowheader in <tbody>/<tfoot> (unless it’s not the first element in row)\n  // We also align with WPT tests (https://github.com/web-platform-tests/wpt/blob/master/html-aam/table-roles.html#L29)\n  // but try and find a balance with the best support for everything\n  if (hasTableParent(element, options?.ancestors)) {\n    // DOM behavior; follow Chrome/Firefox behavior (look for <td> sibling, regardless of group, also look behind element)\n    if (typeof Element !== 'undefined') {\n      const hasTDSibling = (element as Element).parentElement?.querySelector('td');\n      return hasTDSibling ? roles.rowheader : roles.columnheader;\n    }\n    // non-DOM behavior: follow Safari behavior (look for <thead>/<tbody> ancestor)\n    // TODO: if sibling behavior is implemented, use that\n    return options?.ancestors?.some((el) => el.tagName === 'thead') ? roles.columnheader : roles.rowheader;\n  }\n\n  // See previous comment r.e. special behaviour.\n  return NO_CORRESPONDING_ROLE;\n}\n","import { ALL_ROLES, type RoleData, roles } from './lib/aria-roles.js';\nimport { tags } from './lib/html.js';\nimport { attr, calculateAccessibleName, firstMatchingToken, getTagName } from './lib/util.js';\nimport { getAsideRole } from './tags/aside.js';\nimport { getFooterRole } from './tags/footer.js';\nimport { getHeaderRole } from './tags/header.js';\nimport { getInputRole } from './tags/input.js';\nimport { getLIRole } from './tags/li.js';\nimport { getSelectRole } from './tags/select.js';\nimport { getSvgElementRole } from './tags/svg.js';\nimport { getTDRole } from './tags/td.js';\nimport { getTHRole } from './tags/th.js';\nimport type { VirtualAncestorList, VirtualElement } from './types.js';\n\nexport interface GetRoleOptions {\n  /**\n   * Not needed in DOM environments.\n   * For Node.js, when we can’t traverse the DOM, provide the hierarchy upward, going from closest to furthest.\n   * E.g. the following HTML:\n   *\n   * ```html\n   * <table>\n   *   <tbody>\n   *     <tr>\n   *       <td></td>\n   *     </tr>\n   *   </tbody>\n   * </table>\n   * ```\n   * Could be represented as:\n   *\n   * ```ts\n   * getRole(\n   *   { tagName: 'td' },\n   *   { ancestors: [{ tagName: 'tr' }, { tagName: 'tbody' }, { tagName: 'table' }] },\n   * );\n   * ```\n   *\n   * Note: This list does _not_ have to be complete; simply listing out the significant elements that\n   * affect a11y.\n   * @see https://github.com/drwpow/html-aria/tree/dom-support#nodejs-vs-dom-behavior\n   */\n  ancestors?: VirtualAncestorList;\n  /** Ignore role attribute in calculation to get the intrinsic role. Needed in some fallback scenarios. */\n  ignoreRoleAttribute?: boolean;\n}\n\n/**\n * Get the corresponding ARIA role for a given HTML element.\n * `undefined` means “no corresponding role”.\n * This traverses the DOM when available.\n * @see https://www.w3.org/TR/html-aria/\n */\nexport function getRole(element: Element | VirtualElement, options?: GetRoleOptions): RoleData | undefined {\n  const tagName = getTagName(element);\n  const tagData = tags[tagName];\n  const role = attr(element, 'role') as string | undefined;\n\n  // explicit role: use if valid\n  if (role && options?.ignoreRoleAttribute !== true) {\n    const firstRole = firstMatchingToken(role, ALL_ROLES);\n    // Note: according to the spec, certain roles aren’t allowed on certain\n    // elements. However, most browsers ignore this, and accept the role at face\n    // value. So don’t ignore certain combinations of roles; just accept the\n    // role attribute regardless of tag name.\n    return roles[firstRole!];\n  }\n\n  // If custom element (unknown HTML element), assume generic\n  if (!tagData) {\n    return roles.generic;\n  }\n\n  const defaultRole = roles[tagData.defaultRole!];\n\n  switch (tagName) {\n    case 'a':\n    case 'area': {\n      const href = attr(element, 'href') || attr(element, 'xlink:href'); // note: xlink:href only for SVG, but assume it’s used in correct context\n      return typeof href === 'string' ? defaultRole : roles.generic;\n    }\n    case 'aside': {\n      const name = calculateAccessibleName(element, roles.complementary);\n      return name ? defaultRole : getAsideRole(element, options);\n    }\n    case 'header': {\n      return getHeaderRole(element, options);\n    }\n    case 'img': {\n      const name = calculateAccessibleName(element, roles.image);\n\n      if (name) {\n        return roles.image;\n      }\n\n      const alt = attr(element, 'alt');\n\n      return alt === '' ? roles.none : roles.image;\n    }\n    case 'li': {\n      return getLIRole(element, options);\n    }\n    case 'input': {\n      return getInputRole(element);\n    }\n    case 'footer': {\n      return getFooterRole(element, options);\n    }\n    case 'section': {\n      const name = calculateAccessibleName(element, roles.region);\n      return name ? defaultRole : roles.generic;\n    }\n    case 'select': {\n      return getSelectRole(element);\n    }\n    case 'td': {\n      return getTDRole(element, options);\n    }\n    case 'th': {\n      return getTHRole(element, options);\n    }\n    case 'tr': {\n      return roles.row;\n    }\n\n    // @see https://www.w3.org/TR/svg-aam-1.0/#include_elements\n    case 'circle':\n    case 'ellipse':\n    case 'foreignObject':\n    case 'g':\n    case 'image':\n    case 'line':\n    case 'path':\n    case 'polygon':\n    case 'polyline':\n    case 'rect':\n    case 'textPath':\n    case 'tspan':\n    case 'use': {\n      return getSvgElementRole(element);\n    }\n  }\n\n  return defaultRole;\n}\n","import { type GetRoleOptions, getRole } from './get-role.js';\nimport { tags } from './lib/html.js';\nimport { attr, getTagName, isDisabled } from './lib/util.js';\nimport { getTDRole } from './tags/td.js';\nimport type { VirtualElement } from './types.js';\n\n/** Given HTML, can this element be interacted with? */\nexport function isInteractive(element: Element | VirtualElement, options?: GetRoleOptions): boolean {\n  const tagName = getTagName(element);\n\n  // if tag doesn’t support any roles, this can’t be interactive\n  if (tags[tagName]?.supportedRoles.length === 0) {\n    return false;\n  }\n\n  const role = getRole(element, options);\n\n  // separator is a special case, and does NOT care about the HTML element\n  // @see https://www.w3.org/TR/wai-aria-1.3/#separator\n  if (role?.name === 'separator') {\n    const tabindex = attr(element, 'tabindex');\n    const ariaValuenow = attr(element, 'aria-valuenow');\n    return (\n      (typeof tabindex === 'string' || typeof tabindex === 'number') &&\n      (typeof ariaValuenow === 'string' || typeof ariaValuenow === 'number')\n    );\n  }\n  // row is another special case, where it has \"widget\" as a superclass,\n  // but that only applies for grid and treegrid\n  if (role?.name === 'row') {\n    const parentTreeGrid = ['grid', 'treegrid'].includes(getTDRole(element, options)?.name as string);\n    return parentTreeGrid && !!attr(element, 'tabindex');\n  }\n\n  if (!role) {\n    // exception: all <input> tags are interactive, even for nonstandard types\n    const tagName = getTagName(element);\n    if (tagName === 'input' && attr(element, 'type') !== 'hidden') {\n      return true;\n    }\n    return false;\n  }\n\n  // alertdialog and dialog are interactive & receive focus\n  if (role.type.includes('window')) {\n    return true;\n  }\n\n  if (role.type.includes('widget')) {\n    if (isDisabled(element)) {\n      return false;\n    }\n\n    const intrinsicRole = getRole(element, { ...options, ignoreRoleAttribute: true }); // ignore explicit role, but OTHER attributes may influence decision\n    // if the element is not intrinsically a widget role, ALSO require tabindex\n    if (!intrinsicRole || !intrinsicRole?.type.includes('widget')) {\n      const tabindex = attr(element, 'tabindex');\n      return typeof tabindex === 'string' || typeof tabindex === 'number';\n    }\n    return true;\n  }\n\n  return false;\n}\n","import { roles } from './lib/aria-roles.js';\nimport type { ARIARole } from './types.js';\n\n/**\n * Given an ARIA role, return whether or not an accessible name is required.\n * @see https://www.w3.org/TR/wai-aria-1.3/#namecalculation\n */\nexport function isNameRequired(role: ARIARole): boolean {\n  return roles[role]?.nameRequired ?? false;\n}\n","import { roles } from './lib/aria-roles.js';\nimport type { ARIARole, VirtualElement } from './types.js';\n\n/**\n * Return the representation(s) of a role in HTML, if any.\n */\nexport function getElements(role: ARIARole): VirtualElement[] | undefined {\n  const elements = roles[role]?.elements;\n  return elements?.length ? elements : undefined;\n}\n","import { roles } from './lib/aria-roles.js';\nimport type { ARIAAttribute, ARIARole } from './types.js';\n\n/** Given an HTML element, returns a list of required aria-* attributes for that element */\nexport function getRequiredAttributes(role: ARIARole): ARIAAttribute[] {\n  return roles[role]?.required ?? [];\n}\n\n/** Helper function for getRequiredttributes that returns a boolean instead */\nexport function isRequiredAttribute(attribute: string, role: ARIARole): boolean {\n  return getRequiredAttributes(role).includes(attribute as ARIAAttribute);\n}\n","import type {\n  ARIAAttribute,\n  AttributeData,\n  DragAndDropAttribute,\n  GlobalAttribute,\n  LiveRegionAttribute,\n  RelationshipAttribute,\n  WidgetAttribute,\n} from '../types.js';\n\n// note: all fields required to be monomorphic\nexport const globalAttributes: Record<GlobalAttribute, AttributeData> = {\n  'aria-atomic': { category: ['global', 'liveregion'], type: 'true/false', default: false },\n  'aria-braillelabel': { category: ['global'], type: 'string', default: undefined },\n  'aria-brailleroledescription': { category: ['global'], type: 'string', default: undefined },\n  'aria-busy': { category: ['global', 'liveregion'], type: 'true/false', default: false },\n  'aria-controls': { category: ['global', 'relationship'], type: 'string', default: undefined },\n  'aria-current': { category: ['global'], type: 'string', default: undefined },\n  'aria-describedby': { category: ['global', 'relationship'], type: 'string', default: undefined },\n  'aria-description': { category: ['global'], type: 'string', default: undefined },\n  'aria-details': { category: ['global', 'relationship'], type: 'string', default: undefined },\n  'aria-dropeffect': { category: ['global', 'draganddrop'], type: 'string', default: undefined },\n  'aria-flowto': { category: ['global', 'relationship'], type: 'string', default: undefined },\n  'aria-grabbed': { category: ['global', 'draganddrop'], type: 'true/false/undefined', default: undefined },\n  'aria-hidden': { category: ['global', 'widget'], type: 'true/false/undefined', default: undefined },\n  'aria-keyshortcuts': { category: ['global'], type: 'string', default: undefined },\n  'aria-label': { category: ['global', 'widget'], type: 'string', default: undefined },\n  'aria-labelledby': { category: ['global', 'relationship'], type: 'string', default: undefined },\n  'aria-live': {\n    category: ['global', 'liveregion'],\n    type: 'token',\n    default: 'off',\n    values: ['assertive', 'off', 'polite'],\n  },\n  'aria-owns': { category: ['global', 'relationship'], type: 'idRefList' },\n  'aria-relevant': {\n    category: ['global', 'liveregion'],\n    type: 'tokenList',\n    default: 'additions text',\n    values: ['additions', 'removals', 'text', 'all'],\n  },\n  'aria-roledescription': { category: ['global'], type: 'string', default: undefined },\n};\n\nexport const widgetAttributes: Record<WidgetAttribute, AttributeData> = {\n  'aria-autocomplete': {\n    category: ['widget'],\n    type: 'token',\n    default: 'none',\n    values: ['inline', 'list', 'both', 'none'],\n  },\n  'aria-checked': { category: ['widget'], type: 'tristate', default: undefined },\n  'aria-disabled': { category: ['widget'], type: 'true/false', default: false },\n  'aria-errormessage': { category: ['widget', 'relationship'], type: 'string', default: undefined },\n  'aria-expanded': { category: ['widget'], type: 'true/false/undefined', default: undefined },\n  'aria-haspopup': {\n    category: ['widget'],\n    type: 'token',\n    default: 'false',\n    values: ['false', 'true', 'menu', 'listbox', 'tree', 'grid', 'dialog'],\n  },\n  'aria-hidden': globalAttributes['aria-hidden'],\n  'aria-invalid': {\n    category: ['widget'],\n    type: 'token',\n    default: 'false',\n    values: ['grammar', 'false', 'spelling', 'true'],\n  },\n  'aria-label': globalAttributes['aria-label'],\n  'aria-level': { category: ['widget'], type: 'integer' },\n  'aria-modal': { category: ['widget'], type: 'true/false', default: false },\n  'aria-multiline': { category: ['widget'], type: 'true/false', default: false },\n  'aria-multiselectable': { category: ['widget'], type: 'true/false', default: false },\n  'aria-orientation': { category: ['widget'], type: 'token', default: undefined, values: ['horizontal', 'vertical'] },\n  'aria-placeholder': { category: ['widget'], type: 'string' },\n  'aria-pressed': { category: ['widget'], type: 'tristate', default: undefined },\n  'aria-readonly': { category: ['widget'], type: 'true/false', default: false },\n  'aria-required': { category: ['widget'], type: 'true/false', default: false },\n  'aria-selected': { category: ['widget'], type: 'true/false/undefined', default: undefined },\n  'aria-sort': {\n    category: ['widget'],\n    type: 'token',\n    default: 'none',\n    values: ['ascending', 'descending', 'none', 'other'],\n  },\n  'aria-valuemax': { category: ['widget'], type: 'number', default: undefined },\n  'aria-valuemin': { category: ['widget'], type: 'number' },\n  'aria-valuenow': { category: ['widget'], type: 'number' },\n  'aria-valuetext': { category: ['widget'], type: 'string', default: undefined },\n};\n\nexport const liveregionAttributes: Record<LiveRegionAttribute, AttributeData> = {\n  'aria-atomic': globalAttributes['aria-atomic'],\n  'aria-busy': globalAttributes['aria-busy'],\n  'aria-live': globalAttributes['aria-live'],\n  'aria-relevant': globalAttributes['aria-relevant'],\n};\n\nexport const draganddropAttributes: Record<DragAndDropAttribute, AttributeData> = {\n  'aria-dropeffect': globalAttributes['aria-dropeffect'],\n  'aria-grabbed': globalAttributes['aria-grabbed'],\n};\n\nexport const relationshipAttributes: Record<RelationshipAttribute, AttributeData> = {\n  'aria-activedescendant': { category: ['relationship'], type: 'idRef' },\n  'aria-colcount': { category: ['relationship'], type: 'integer' },\n  'aria-colindex': { category: ['relationship'], type: 'integer' },\n  'aria-colindextext': { category: ['relationship'], type: 'string' },\n  'aria-colspan': { category: ['relationship'], type: 'integer' },\n  'aria-controls': globalAttributes['aria-controls'],\n  'aria-describedby': globalAttributes['aria-describedby'],\n  'aria-details': globalAttributes['aria-details'],\n  'aria-errormessage': widgetAttributes['aria-errormessage'],\n  'aria-flowto': globalAttributes['aria-flowto'],\n  'aria-labelledby': globalAttributes['aria-labelledby'],\n  'aria-owns': globalAttributes['aria-owns'],\n  'aria-posinset': { category: ['relationship'], type: 'integer' },\n  'aria-rowcount': { category: ['relationship'], type: 'integer' },\n  'aria-rowindex': { category: ['relationship'], type: 'integer' },\n  'aria-rowindextext': { category: ['relationship'], type: 'string' },\n  'aria-rowspan': { category: ['relationship'], type: 'integer' },\n  'aria-setsize': { category: ['relationship'], type: 'integer' },\n};\n\n// Note: this would also throw a type error if we missed any!\nexport const attributes: Record<ARIAAttribute, AttributeData> = {\n  ...globalAttributes,\n  ...widgetAttributes,\n  ...liveregionAttributes,\n  ...draganddropAttributes,\n  ...relationshipAttributes,\n};\n\nexport const ALL_ATTRIBUTES = Object.keys(attributes).sort((a, b) => a.localeCompare(b)) as ARIAAttribute[];\nexport const NO_ATTRIBUTES: ARIAAttribute[] = [];\n","import { type GetRoleOptions, getRole } from './get-role.js';\nimport { attributes, globalAttributes } from './lib/aria-attributes.js';\nimport { roles } from './lib/aria-roles.js';\nimport { tags } from './lib/html.js';\nimport {\n  attr,\n  calculateAccessibleName,\n  concatDedupeAndSort,\n  getTagName,\n  parseTokenList,\n  removeProhibited,\n} from './lib/util.js';\nimport type { ARIAAttribute, VirtualElement } from './types.js';\n\nconst GLOBAL_ATTRIBUTES = Object.keys(globalAttributes) as ARIAAttribute[];\n\n/**\n * Given an ARIA role returns a list of supported/inherited aria-* attributes.\n */\nexport function getSupportedAttributes(element: Element | VirtualElement, options?: GetRoleOptions): ARIAAttribute[] {\n  const role = getRole(element, options);\n  const roleData = roles[role?.name!];\n  const tagName = getTagName(element);\n  const tagData = tags[tagName];\n  if (!tagData) {\n    return roleData?.supported ?? GLOBAL_ATTRIBUTES;\n  }\n\n  // Note: DON’T check for length! Often an empty array is used\n  // to mean “no aria-* attributes supported\n  if (tagData.supportedAttributesOverride) {\n    return tagData.supportedAttributesOverride;\n  }\n\n  // special cases\n  switch (tagName) {\n    // <audio> and <video> allow application aria-* attributes despite not\n    // being given the role by default\n    case 'audio':\n    case 'video': {\n      return roles.application.supported;\n    }\n    case 'img': {\n      const name = calculateAccessibleName(element, roles.image);\n      // if no accessible name, only aria-hidden allowed\n      return name && roleData?.supported?.length ? roleData.supported : ['aria-hidden'];\n    }\n    case 'input': {\n      const type = attr(element, 'type');\n      switch (type) {\n        case 'checkbox':\n        case 'radio': {\n          if (roleData) {\n            return roleData?.supported.filter((a) => a !== 'aria-checked');\n          }\n          break;\n        }\n        case 'color': {\n          return concatDedupeAndSort(GLOBAL_ATTRIBUTES, ['aria-disabled']);\n        }\n        case 'file': {\n          return concatDedupeAndSort(GLOBAL_ATTRIBUTES, ['aria-disabled', 'aria-invalid', 'aria-required']);\n        }\n        case 'hidden': {\n          return [];\n        }\n        default: {\n          return roleData?.supported ?? roles.textbox.supported;\n        }\n      }\n      break;\n    }\n    case 'summary': {\n      const supported = roleData?.supported ?? GLOBAL_ATTRIBUTES;\n      return concatDedupeAndSort(supported, ['aria-disabled', 'aria-haspopup']);\n    }\n  }\n\n  const attrList: ARIAAttribute[] = [];\n  if (roleData) {\n    attrList.push(...roleData.supported);\n  } else {\n    attrList.push(...GLOBAL_ATTRIBUTES);\n  }\n\n  // This is confusing, but if the element has manually specified a role, then\n  // namingProhibited is ignored, and the role’s supported attributes are taken\n  // as-is (even if a name would have been prohibited before)\n  // @see https://www.w3.org/TR/html-aria/#dfn-naming-prohibited\n  const hasManualValidRole = attr(element, 'role') && !!roleData;\n  if (hasManualValidRole) {\n    return attrList;\n  }\n\n  return removeProhibited(attrList, {\n    nameProhibited: roleData?.nameFrom === 'prohibited' || tagData.namingProhibited,\n    prohibited: roleData?.prohibited?.length ? roleData.prohibited : undefined,\n  });\n}\n\n/**\n * Helper function for getSupportedAttributes that returns a boolean instead\n */\nexport function isSupportedAttribute(\n  attribute: ARIAAttribute,\n  element: Element | VirtualElement,\n  options?: GetRoleOptions,\n): boolean {\n  return getSupportedAttributes(element, options).includes(attribute as ARIAAttribute);\n}\n\n/**\n * Given an ARIA attribute, is the following value valid? Note that for most\n * non-enum attributes, this will probably return true.\n *\n * - `undefined` and `null` return false, as they are non-values.\n * - Numbers will be coerced into strings, and will return true for most non-enum attributes (this library isn’t concerned with number validation).\n */\nexport function isValidAttributeValue(attribute: ARIAAttribute, value: unknown): boolean {\n  if (attribute === undefined || attribute === null || typeof attribute === 'object') {\n    return false;\n  }\n\n  const attributeData = attributes[attribute];\n  if (!attributeData) {\n    throw new Error(`${attribute} isn’t a valid ARIA attribute`);\n  }\n\n  switch (attributeData.type) {\n    case 'true/false': {\n      // Note: \"\" = true\n      return ['true', 'false', ''].includes(String(value));\n    }\n    case 'true/false/undefined': {\n      // Note: \"\" = true\n      return ['true', 'false', 'undefined', ''].includes(String(value));\n    }\n    case 'tristate': {\n      return ['true', 'false', 'mixed'].includes(String(value));\n    }\n    case 'idRef':\n    case 'idRefList': {\n      return typeof value === 'string' && value.length > 0;\n    }\n    case 'integer': {\n      const numVal = Number.parseFloat(String(value));\n      return Number.isInteger(numVal);\n    }\n    case 'number': {\n      const numVal = Number.parseFloat(String(value));\n      return Number.isFinite(numVal);\n    }\n    case 'token': {\n      return attributeData.values.includes(String(value));\n    }\n    case 'tokenList': {\n      const values = parseTokenList(String(value));\n      return values.length > 0 && values.every((v) => attributeData.values.includes(v));\n    }\n  }\n\n  return true; // if we can’t prove that it’s invalid, assume valid\n}\n","import { ALL_ROLES, roles } from './lib/aria-roles.js';\nimport { tags } from './lib/html.js';\nimport { attr, calculateAccessibleName, getTagName, hasListParent, hasTableParent } from './lib/util.js';\nimport { getFooterRole } from './tags/footer.js';\nimport { getInputSupportedRoles } from './tags/input.js';\nimport { getSelectSupportedRoles } from './tags/select.js';\nimport { getTDRole } from './tags/td.js';\nimport type { ARIARole, VirtualAncestorList, VirtualElement } from './types.js';\n\nexport interface SupportedRoleOptions {\n  /**\n   * Much like getRole(), the ancestors determines the intrinsic role. But ancestors\n   * also determine _valid_ roles—certain roles MUST NOT contain certain children.\n   * For example:\n   *\n   * - <td> with ancestors ['table'] MAY ONLY be a ['cell'] (all other roles are not supported)\n   * - <td> with ancestors ['grid'] or ['treegrid'] MAY ONLY be a ['gridcell'] (all other roles are not supported)\n   * - <td> with NO ancestors ([]) will allow any role\n   */\n  ancestors?: VirtualAncestorList;\n}\n\n/**\n * Given an HTML element, returns a list of supported ARIA roles for that element.\n * An empty array means no roles are supported (which is true for some elements!)\n */\nexport function getSupportedRoles(element: Element | VirtualElement, options?: SupportedRoleOptions): ARIARole[] {\n  const tagName = getTagName(element);\n  const tagData = tags[tagName];\n  if (!tagData) {\n    return ALL_ROLES;\n  }\n\n  // special cases: some HTML elements require unique logic to determine supported roles based on attributes, etc.\n  switch (tagName) {\n    case 'a': {\n      const href = attr(element, 'href');\n      return typeof href === 'string' ? tagData.supportedRoles : ALL_ROLES;\n    }\n    case 'area': {\n      const href = attr(element, 'href');\n      return typeof href === 'string' ? tagData.supportedRoles : ['button', 'generic', 'link'];\n    }\n    case 'footer':\n    case 'header': {\n      const role = getFooterRole(element, options);\n      return role?.name === 'generic' ? ['generic', 'group', 'none', 'presentation'] : tagData.supportedRoles;\n    }\n    case 'div': {\n      const DL_PARENT_ROLES: ARIARole[] = ['none', 'presentation'];\n      if (typeof Element !== 'undefined' && element instanceof Element) {\n        return element.parentElement?.closest('dl:not([role])') ? DL_PARENT_ROLES : tagData.supportedRoles;\n      }\n      return options?.ancestors?.[0]?.tagName === 'dl' ? DL_PARENT_ROLES : tagData.supportedRoles;\n    }\n    case 'img': {\n      const name = calculateAccessibleName(element, roles.image);\n      if (name) {\n        /** @see https://www.w3.org/TR/html-aria/#el-img */\n        return ['button', 'checkbox', 'image', 'img', 'link', 'math', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'meter', 'option', 'progressbar', 'radio', 'scrollbar', 'separator', 'slider', 'switch', 'tab', 'treeitem']; // biome-ignore format: long list\n      }\n      return tagData.supportedRoles;\n    }\n    case 'li': {\n      return hasListParent(element, options?.ancestors) ? ['listitem'] : ALL_ROLES;\n    }\n    case 'input': {\n      return getInputSupportedRoles(element);\n    }\n    case 'select': {\n      return getSelectSupportedRoles(element);\n    }\n    case 'summary': {\n      if (typeof Element !== 'undefined' && element instanceof Element) {\n        return element.parentElement?.closest('details:not([role])') ? [] : tagData.supportedRoles;\n      }\n      return options?.ancestors?.some((a) => a.tagName === 'details') ? [] : tagData.supportedRoles;\n    }\n    case 'td': {\n      const role = getTDRole(element, options);\n      switch (role?.name) {\n        case 'cell': {\n          return ['cell'];\n        }\n        case 'gridcell': {\n          return ['gridcell'];\n        }\n        default: {\n          return ALL_ROLES;\n        }\n      }\n    }\n    case 'th': {\n      return hasTableParent(element, options?.ancestors) ? tagData.supportedRoles : ALL_ROLES;\n    }\n    case 'tr': {\n      return hasTableParent(element, options?.ancestors) ? tagData.supportedRoles : ALL_ROLES;\n    }\n  }\n\n  return tagData.supportedRoles;\n}\n\n/** Helper function for getSupportedRoles that returns a boolean instead */\nexport function isSupportedRole(\n  role: string,\n  element: Element | VirtualElement,\n  options?: SupportedRoleOptions,\n): boolean {\n  return getSupportedRoles(element, options).includes(role as ARIARole);\n}\n","export const getLocalName = (element: Element) =>\n  element.localName ?? element.tagName.toLowerCase();\n","const ELEMENT_NODE = 1;\n\nexport function isElement(node: Node): node is HTMLElement {\n  return node.nodeType === ELEMENT_NODE;\n}\n","import { ALL_ROLES, ARIARole, getRole as getHtmlAriaRole } from \"html-aria\";\nimport { getLocalName } from \"../getLocalName\";\nimport { isElement } from \"../isElement\";\n\nexport const presentationRoles = new Set([\"presentation\", \"none\"]);\n\nexport const synonymRolesMap: Record<string, string> = {\n  img: \"image\",\n  presentation: \"none\",\n  directory: \"list\",\n};\n\nconst allowedNonAbstractRoles = new Set(ALL_ROLES);\n\nconst rolesRequiringName = new Set([\"form\", \"region\"]);\n\nexport const globalStatesAndProperties = [\n  \"aria-atomic\",\n  \"aria-braillelabel\",\n  \"aria-brailleroledescription\",\n  \"aria-busy\",\n  \"aria-controls\",\n  \"aria-describedby\",\n  \"aria-description\",\n  \"aria-details\",\n  \"aria-dropeffect\",\n  \"aria-flowto\",\n  \"aria-grabbed\",\n  \"aria-hidden\",\n  \"aria-keyshortcuts\",\n  \"aria-label\",\n  \"aria-labelledby\",\n  \"aria-live\",\n  \"aria-owns\",\n  \"aria-relevant\",\n  \"aria-roledescription\",\n];\n\nconst FOCUSABLE_SELECTOR = [\n  \"input:not([type=hidden]):not([disabled])\",\n  \"button:not([disabled])\",\n  \"select:not([disabled])\",\n  \"textarea:not([disabled])\",\n  '[contenteditable=\"\"]',\n  '[contenteditable=\"true\"]',\n  \"a[href]\",\n  \"[tabindex]:not([disabled])\",\n].join(\", \");\n\nfunction isFocusable(node: HTMLElement) {\n  return node.matches(FOCUSABLE_SELECTOR);\n}\n\nfunction hasGlobalStateOrProperty(node: HTMLElement) {\n  return globalStatesAndProperties.some((global) => node.hasAttribute(global));\n}\n\nfunction mapAliasedRoles(role: string) {\n  const canonical = synonymRolesMap[role];\n\n  return canonical ?? role;\n}\n\nfunction getExplicitRole({\n  accessibleName,\n  allowedAccessibilityRoles,\n  inheritedImplicitPresentational,\n  node,\n}: {\n  accessibleName: string;\n  allowedAccessibilityRoles: string[];\n  inheritedImplicitPresentational: boolean;\n  node: HTMLElement;\n}) {\n  const rawRoles = node.getAttribute(\"role\")?.trim().split(\" \") ?? [];\n\n  const authorErrorFilteredRoles = rawRoles\n    /**\n     * As stated in the Definition of Roles section, it is considered an\n     * authoring error to use abstract roles in content.\n     * User agents MUST NOT map abstract roles via the standard role mechanism\n     * of the accessibility API.\n     *\n     * REF: https://www.w3.org/TR/wai-aria-1.2/#document-handling_author-errors_roles\n     */\n    .filter((role) => allowedNonAbstractRoles.has(role as ARIARole))\n    /**\n     * Certain landmark roles require names from authors. In situations where\n     * an author has not specified names for these landmarks, it is\n     * considered an authoring error. The user agent MUST treat such elements\n     * as if no role had been provided. If a valid fallback role had been\n     * specified, or if the element had an implicit ARIA role, then user\n     * agents would continue to expose that role, instead. Instances of such\n     * roles are as follows:\n     *\n     * - form\n     * - region\n     *\n     * REF: https://www.w3.org/TR/wai-aria-1.2/#document-handling_author-errors_roles\n     */\n    .filter((role) => !!accessibleName || !rolesRequiringName.has(role));\n\n  /**\n   * If an allowed child element has an explicit non-presentational role, user\n   * agents MUST ignore an inherited presentational role and expose the element\n   * with its explicit role. If the action of exposing the explicit role causes\n   * the accessibility tree to be malformed, the expected results are\n   * undefined.\n   *\n   * See also \"Children Presentational: True\".\n   *\n   * REF:\n   *\n   * - https://www.w3.org/TR/wai-aria-1.2/#conflict_resolution_presentation_none\n   * - https://www.w3.org/TR/wai-aria-1.2/#tree_exclusion\n   * - https://www.w3.org/TR/wai-aria-1.2/#mustContain\n   */\n\n  const isExplicitAllowedChildElement = allowedAccessibilityRoles.some(\n    (allowedExplicitRole) =>\n      authorErrorFilteredRoles?.[0] === allowedExplicitRole\n  );\n\n  if (inheritedImplicitPresentational && !isExplicitAllowedChildElement) {\n    authorErrorFilteredRoles.unshift(\"none\");\n  }\n\n  if (!authorErrorFilteredRoles?.length) {\n    return \"\";\n  }\n\n  const filteredRoles = authorErrorFilteredRoles\n    /**\n     * If an element is focusable, user agents MUST ignore the\n     * presentation/none role and expose the element with its implicit role, in\n     * order to ensure that the element is operable.\n     *\n     * If an element has global WAI-ARIA states or properties, user agents MUST\n     * ignore the presentation role and instead expose the element's implicit\n     * role. However, if an element has only non-global, role-specific WAI-ARIA\n     * states or properties, the element MUST NOT be exposed unless the\n     * presentational role is inherited and an explicit non-presentational role\n     * is applied.\n     *\n     * REF: https://www.w3.org/TR/wai-aria-1.2/#conflict_resolution_presentation_none\n     */\n    .filter((role) => {\n      if (!presentationRoles.has(role)) {\n        return true;\n      }\n\n      if (hasGlobalStateOrProperty(node) || isFocusable(node)) {\n        return false;\n      }\n\n      return true;\n    });\n\n  return filteredRoles?.[0] ?? \"\";\n}\n\nexport function getRole({\n  accessibleName,\n  allowedAccessibilityRoles,\n  inheritedImplicitPresentational,\n  node,\n}: {\n  accessibleName: string;\n  allowedAccessibilityRoles: string[];\n  inheritedImplicitPresentational: boolean;\n  node: Node;\n}): { explicitRole: string; implicitRole: string; role: string } {\n  if (!isElement(node)) {\n    return { explicitRole: \"\", implicitRole: \"\", role: \"\" };\n  }\n\n  const baseExplicitRole = getExplicitRole({\n    accessibleName,\n    allowedAccessibilityRoles,\n    inheritedImplicitPresentational,\n    node,\n  });\n  const explicitRole = mapAliasedRoles(baseExplicitRole);\n\n  // Feature detect AOM support\n  // TODO: this isn't quite right, computed role might not be the implicit\n  // role, it might be the explicit one as `computedRole` does not\n  // distinguish between them.\n  if (\"computedRole\" in node) {\n    const role = node.computedRole as string;\n\n    return { explicitRole, implicitRole: role, role };\n  }\n\n  // Backwards compatibility\n  const isBodyElement = getLocalName(node) === \"body\";\n\n  const baseImplicitRole = isBodyElement\n    ? \"document\"\n    : getHtmlAriaRole(node, { ignoreRoleAttribute: true })?.name ?? \"\";\n\n  const implicitRole = mapAliasedRoles(baseImplicitRole);\n\n  if (explicitRole) {\n    return { explicitRole, implicitRole, role: explicitRole };\n  }\n\n  return {\n    explicitRole,\n    implicitRole,\n    role: implicitRole,\n  };\n}\n","/**\n * @source {https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Polyfill}\n * but without thisArg (too hard to type, no need to `this`)\n */\nconst toStr = Object.prototype.toString;\nfunction isCallable(fn: unknown): boolean {\n\treturn typeof fn === \"function\" || toStr.call(fn) === \"[object Function]\";\n}\nfunction toInteger(value: unknown): number {\n\tconst number = Number(value);\n\tif (isNaN(number)) {\n\t\treturn 0;\n\t}\n\tif (number === 0 || !isFinite(number)) {\n\t\treturn number;\n\t}\n\treturn (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n}\nconst maxSafeInteger = Math.pow(2, 53) - 1;\nfunction toLength(value: unknown): number {\n\tconst len = toInteger(value);\n\treturn Math.min(Math.max(len, 0), maxSafeInteger);\n}\n/**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n */\nexport default function arrayFrom<T>(iterable: Iterable<T> | ArrayLike<T>): T[];\n/**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\nexport default function arrayFrom<T, U>(\n\tarrayLike: Iterable<T> | ArrayLike<T>,\n\tmapFn?: (v: T, k: number) => U,\n): U[] {\n\t// 1. Let C be the this value.\n\t// edit(@eps1lon): we're not calling it as Array.from\n\tconst C = Array;\n\n\t// 2. Let items be ToObject(arrayLike).\n\tconst items = Object(arrayLike);\n\n\t// 3. ReturnIfAbrupt(items).\n\tif (arrayLike == null) {\n\t\tthrow new TypeError(\n\t\t\t\"Array.from requires an array-like object - not null or undefined\",\n\t\t);\n\t}\n\n\t// 4. If mapfn is undefined, then let mapping be false.\n\t// const mapFn = arguments.length > 1 ? arguments[1] : void undefined;\n\n\tif (typeof mapFn !== \"undefined\") {\n\t\t// 5. else\n\t\t// 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\n\t\tif (!isCallable(mapFn)) {\n\t\t\tthrow new TypeError(\n\t\t\t\t\"Array.from: when provided, the second argument must be a function\",\n\t\t\t);\n\t\t}\n\t}\n\n\t// 10. Let lenValue be Get(items, \"length\").\n\t// 11. Let len be ToLength(lenValue).\n\tconst len = toLength(items.length);\n\n\t// 13. If IsConstructor(C) is true, then\n\t// 13. a. Let A be the result of calling the [[Construct]] internal method\n\t// of C with an argument list containing the single item len.\n\t// 14. a. Else, Let A be ArrayCreate(len).\n\tconst A = isCallable(C) ? Object(new C(len)) : new Array(len);\n\n\t// 16. Let k be 0.\n\tlet k = 0;\n\t// 17. Repeat, while k < len… (also steps a - h)\n\tlet kValue;\n\twhile (k < len) {\n\t\tkValue = items[k];\n\t\tif (mapFn) {\n\t\t\tA[k] = mapFn(kValue, k);\n\t\t} else {\n\t\t\tA[k] = kValue;\n\t\t}\n\t\tk += 1;\n\t}\n\t// 18. Let putStatus be Put(A, \"length\", len, true).\n\tA.length = len;\n\t// 20. Return A.\n\treturn A;\n}\n","declare global {\n\tclass Set<T> {\n\t\t// es2015.collection.d.ts\n\t\tconstructor(items?: T[]);\n\t\tadd(value: T): this;\n\t\tclear(): void;\n\t\tdelete(value: T): boolean;\n\t\tforEach(\n\t\t\tcallbackfn: (value: T, value2: T, set: Set<T>) => void,\n\t\t\tthisArg?: unknown,\n\t\t): void;\n\t\thas(value: T): boolean;\n\t\treadonly size: number;\n\n\t\t// es2015.iterable.d.ts\n\t\t// no  implemennted\n\t}\n}\n\n// for environments without Set we fallback to arrays with unique members\nclass SetLike<T> implements Set<T> {\n\tprivate items: T[];\n\n\tconstructor(items: T[] = []) {\n\t\tthis.items = items;\n\t}\n\n\tadd(value: T): this {\n\t\tif (this.has(value) === false) {\n\t\t\tthis.items.push(value);\n\t\t}\n\t\treturn this;\n\t}\n\tclear(): void {\n\t\tthis.items = [];\n\t}\n\tdelete(value: T): boolean {\n\t\tconst previousLength = this.items.length;\n\t\tthis.items = this.items.filter((item) => item !== value);\n\n\t\treturn previousLength !== this.items.length;\n\t}\n\tforEach(callbackfn: (value: T, value2: T, set: Set<T>) => void): void {\n\t\tthis.items.forEach((item) => {\n\t\t\tcallbackfn(item, item, this);\n\t\t});\n\t}\n\thas(value: T): boolean {\n\t\treturn this.items.indexOf(value) !== -1;\n\t}\n\n\tget size(): number {\n\t\treturn this.items.length;\n\t}\n}\n\nexport default typeof Set === \"undefined\" ? Set : SetLike;\n","// https://w3c.github.io/html-aria/#document-conformance-requirements-for-use-of-aria-attributes-in-html\n\nimport { presentationRoles } from \"./util\";\n\n/**\n * Safe Element.localName for all supported environments\n * @param element\n */\nexport function getLocalName(element: Element): string {\n\treturn (\n\t\t// eslint-disable-next-line no-restricted-properties -- actual guard for environments without localName\n\t\telement.localName ??\n\t\t// eslint-disable-next-line no-restricted-properties -- required for the fallback\n\t\telement.tagName.toLowerCase()\n\t);\n}\n\nconst localNameToRoleMappings: Record<string, string | undefined> = {\n\tarticle: \"article\",\n\taside: \"complementary\",\n\tbutton: \"button\",\n\tdatalist: \"listbox\",\n\tdd: \"definition\",\n\tdetails: \"group\",\n\tdialog: \"dialog\",\n\tdt: \"term\",\n\tfieldset: \"group\",\n\tfigure: \"figure\",\n\t// WARNING: Only with an accessible name\n\tform: \"form\",\n\tfooter: \"contentinfo\",\n\th1: \"heading\",\n\th2: \"heading\",\n\th3: \"heading\",\n\th4: \"heading\",\n\th5: \"heading\",\n\th6: \"heading\",\n\theader: \"banner\",\n\thr: \"separator\",\n\thtml: \"document\",\n\tlegend: \"legend\",\n\tli: \"listitem\",\n\tmath: \"math\",\n\tmain: \"main\",\n\tmenu: \"list\",\n\tnav: \"navigation\",\n\tol: \"list\",\n\toptgroup: \"group\",\n\t// WARNING: Only in certain context\n\toption: \"option\",\n\toutput: \"status\",\n\tprogress: \"progressbar\",\n\t// WARNING: Only with an accessible name\n\tsection: \"region\",\n\tsummary: \"button\",\n\ttable: \"table\",\n\ttbody: \"rowgroup\",\n\ttextarea: \"textbox\",\n\ttfoot: \"rowgroup\",\n\t// WARNING: Only in certain context\n\ttd: \"cell\",\n\tth: \"columnheader\",\n\tthead: \"rowgroup\",\n\ttr: \"row\",\n\tul: \"list\",\n};\n\nconst prohibitedAttributes: Record<string, Set<string>> = {\n\tcaption: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tcode: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tdeletion: new Set([\"aria-label\", \"aria-labelledby\"]),\n\temphasis: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tgeneric: new Set([\"aria-label\", \"aria-labelledby\", \"aria-roledescription\"]),\n\tinsertion: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tnone: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tparagraph: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tpresentation: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tstrong: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tsubscript: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tsuperscript: new Set([\"aria-label\", \"aria-labelledby\"]),\n};\n\n/**\n *\n * @param element\n * @param role The role used for this element. This is specified to control whether you want to use the implicit or explicit role.\n */\nfunction hasGlobalAriaAttributes(element: Element, role: string): boolean {\n\t// https://rawgit.com/w3c/aria/stable/#global_states\n\t// commented attributes are deprecated\n\treturn [\n\t\t\"aria-atomic\",\n\t\t\"aria-busy\",\n\t\t\"aria-controls\",\n\t\t\"aria-current\",\n\t\t\"aria-description\",\n\t\t\"aria-describedby\",\n\t\t\"aria-details\",\n\t\t// \"disabled\",\n\t\t\"aria-dropeffect\",\n\t\t// \"errormessage\",\n\t\t\"aria-flowto\",\n\t\t\"aria-grabbed\",\n\t\t// \"haspopup\",\n\t\t\"aria-hidden\",\n\t\t// \"invalid\",\n\t\t\"aria-keyshortcuts\",\n\t\t\"aria-label\",\n\t\t\"aria-labelledby\",\n\t\t\"aria-live\",\n\t\t\"aria-owns\",\n\t\t\"aria-relevant\",\n\t\t\"aria-roledescription\",\n\t].some((attributeName) => {\n\t\treturn (\n\t\t\telement.hasAttribute(attributeName) &&\n\t\t\t!prohibitedAttributes[role]?.has(attributeName)\n\t\t);\n\t});\n}\n\nfunction ignorePresentationalRole(\n\telement: Element,\n\timplicitRole: string,\n): boolean {\n\t// https://rawgit.com/w3c/aria/stable/#conflict_resolution_presentation_none\n\treturn hasGlobalAriaAttributes(element, implicitRole);\n}\n\nexport default function getRole(element: Element): string | null {\n\tconst explicitRole = getExplicitRole(element);\n\tif (explicitRole === null || presentationRoles.indexOf(explicitRole) !== -1) {\n\t\tconst implicitRole = getImplicitRole(element);\n\t\tif (\n\t\t\tpresentationRoles.indexOf(explicitRole || \"\") === -1 ||\n\t\t\tignorePresentationalRole(element, implicitRole || \"\")\n\t\t) {\n\t\t\treturn implicitRole;\n\t\t}\n\t}\n\n\treturn explicitRole;\n}\n\nfunction getImplicitRole(element: Element): string | null {\n\tconst mappedByTag = localNameToRoleMappings[getLocalName(element)];\n\tif (mappedByTag !== undefined) {\n\t\treturn mappedByTag;\n\t}\n\n\tswitch (getLocalName(element)) {\n\t\tcase \"a\":\n\t\tcase \"area\":\n\t\tcase \"link\":\n\t\t\tif (element.hasAttribute(\"href\")) {\n\t\t\t\treturn \"link\";\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"img\":\n\t\t\tif (\n\t\t\t\telement.getAttribute(\"alt\") === \"\" &&\n\t\t\t\t!ignorePresentationalRole(element, \"img\")\n\t\t\t) {\n\t\t\t\treturn \"presentation\";\n\t\t\t}\n\t\t\treturn \"img\";\n\t\tcase \"input\": {\n\t\t\tconst { type } = element as HTMLInputElement;\n\t\t\tswitch (type) {\n\t\t\t\tcase \"button\":\n\t\t\t\tcase \"image\":\n\t\t\t\tcase \"reset\":\n\t\t\t\tcase \"submit\":\n\t\t\t\t\treturn \"button\";\n\t\t\t\tcase \"checkbox\":\n\t\t\t\tcase \"radio\":\n\t\t\t\t\treturn type;\n\t\t\t\tcase \"range\":\n\t\t\t\t\treturn \"slider\";\n\t\t\t\tcase \"email\":\n\t\t\t\tcase \"tel\":\n\t\t\t\tcase \"text\":\n\t\t\t\tcase \"url\":\n\t\t\t\t\tif (element.hasAttribute(\"list\")) {\n\t\t\t\t\t\treturn \"combobox\";\n\t\t\t\t\t}\n\t\t\t\t\treturn \"textbox\";\n\n\t\t\t\tcase \"search\":\n\t\t\t\t\tif (element.hasAttribute(\"list\")) {\n\t\t\t\t\t\treturn \"combobox\";\n\t\t\t\t\t}\n\t\t\t\t\treturn \"searchbox\";\n\t\t\t\tcase \"number\":\n\t\t\t\t\treturn \"spinbutton\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tcase \"select\":\n\t\t\tif (\n\t\t\t\telement.hasAttribute(\"multiple\") ||\n\t\t\t\t(element as HTMLSelectElement).size > 1\n\t\t\t) {\n\t\t\t\treturn \"listbox\";\n\t\t\t}\n\t\t\treturn \"combobox\";\n\t}\n\treturn null;\n}\n\nfunction getExplicitRole(element: Element): string | null {\n\tconst role = element.getAttribute(\"role\");\n\tif (role !== null) {\n\t\tconst explicitRole = role.trim().split(\" \")[0];\n\t\t// String.prototype.split(sep, limit) will always return an array with at least one member\n\t\t// as long as limit is either undefined or > 0\n\t\tif (explicitRole.length > 0) {\n\t\t\treturn explicitRole;\n\t\t}\n\t}\n\n\treturn null;\n}\n","export { getLocalName } from \"./getRole\";\nimport getRole, { getLocalName } from \"./getRole\";\n\nexport const presentationRoles = [\"presentation\", \"none\"];\n\nexport function isElement(node: Node | null): node is Element {\n\treturn node !== null && node.nodeType === node.ELEMENT_NODE;\n}\n\nexport function isHTMLTableCaptionElement(\n\tnode: Node | null,\n): node is HTMLTableCaptionElement {\n\treturn isElement(node) && getLocalName(node) === \"caption\";\n}\n\nexport function isHTMLInputElement(\n\tnode: Node | null,\n): node is HTMLInputElement {\n\treturn isElement(node) && getLocalName(node) === \"input\";\n}\n\nexport function isHTMLOptGroupElement(\n\tnode: Node | null,\n): node is HTMLOptGroupElement {\n\treturn isElement(node) && getLocalName(node) === \"optgroup\";\n}\n\nexport function isHTMLSelectElement(\n\tnode: Node | null,\n): node is HTMLSelectElement {\n\treturn isElement(node) && getLocalName(node) === \"select\";\n}\n\nexport function isHTMLTableElement(\n\tnode: Node | null,\n): node is HTMLTableElement {\n\treturn isElement(node) && getLocalName(node) === \"table\";\n}\n\nexport function isHTMLTextAreaElement(\n\tnode: Node | null,\n): node is HTMLTextAreaElement {\n\treturn isElement(node) && getLocalName(node) === \"textarea\";\n}\n\nexport function safeWindow(node: Node): Window {\n\tconst { defaultView } =\n\t\tnode.ownerDocument === null ? (node as Document) : node.ownerDocument;\n\n\tif (defaultView === null) {\n\t\tthrow new TypeError(\"no window available\");\n\t}\n\treturn defaultView;\n}\n\nexport function isHTMLFieldSetElement(\n\tnode: Node | null,\n): node is HTMLFieldSetElement {\n\treturn isElement(node) && getLocalName(node) === \"fieldset\";\n}\n\nexport function isHTMLLegendElement(\n\tnode: Node | null,\n): node is HTMLLegendElement {\n\treturn isElement(node) && getLocalName(node) === \"legend\";\n}\n\nexport function isHTMLSlotElement(node: Node | null): node is HTMLSlotElement {\n\treturn isElement(node) && getLocalName(node) === \"slot\";\n}\n\nexport function isSVGElement(node: Node | null): node is SVGElement {\n\treturn isElement(node) && (node as SVGElement).ownerSVGElement !== undefined;\n}\n\nexport function isSVGSVGElement(node: Node | null): node is SVGSVGElement {\n\treturn isElement(node) && getLocalName(node) === \"svg\";\n}\n\nexport function isSVGTitleElement(node: Node | null): node is SVGTitleElement {\n\treturn isSVGElement(node) && getLocalName(node) === \"title\";\n}\n\n/**\n *\n * @param {Node} node -\n * @param {string} attributeName -\n * @returns {Element[]} -\n */\nexport function queryIdRefs(node: Node, attributeName: string): Element[] {\n\tif (isElement(node) && node.hasAttribute(attributeName)) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- safe due to hasAttribute check\n\t\tconst ids = node.getAttribute(attributeName)!.split(\" \");\n\n\t\t// Browsers that don't support shadow DOM won't have getRootNode\n\t\tconst root = node.getRootNode\n\t\t\t? (node.getRootNode() as Document | ShadowRoot)\n\t\t\t: node.ownerDocument;\n\n\t\treturn ids\n\t\t\t.map((id) => root.getElementById(id))\n\t\t\t.filter(\n\t\t\t\t(element: Element | null): element is Element => element !== null,\n\t\t\t\t// TODO: why does this not narrow?\n\t\t\t) as Element[];\n\t}\n\n\treturn [];\n}\n\nexport function hasAnyConcreteRoles(\n\tnode: Node,\n\troles: Array<string | null>,\n): node is Element {\n\tif (isElement(node)) {\n\t\treturn roles.indexOf(getRole(node)) !== -1;\n\t}\n\treturn false;\n}\n","/**\n * implements https://w3c.github.io/accname/\n */\nimport ArrayFrom from \"./polyfills/array.from\";\nimport SetLike from \"./polyfills/SetLike\";\nimport {\n\thasAnyConcreteRoles,\n\tisElement,\n\tisHTMLTableCaptionElement,\n\tisHTMLInputElement,\n\tisHTMLSelectElement,\n\tisHTMLTextAreaElement,\n\tsafeWindow,\n\tisHTMLFieldSetElement,\n\tisHTMLLegendElement,\n\tisHTMLOptGroupElement,\n\tisHTMLTableElement,\n\tisHTMLSlotElement,\n\tisSVGSVGElement,\n\tisSVGTitleElement,\n\tqueryIdRefs,\n\tgetLocalName,\n\tpresentationRoles,\n} from \"./util\";\n\n/**\n *  A string of characters where all carriage returns, newlines, tabs, and form-feeds are replaced with a single space, and multiple spaces are reduced to a single space. The string contains only character data; it does not contain any markup.\n */\ntype FlatString = string & {\n\t__flat: true;\n};\ntype GetComputedStyle = typeof window.getComputedStyle;\n\n/**\n * interface for an options-bag where `window.getComputedStyle` can be mocked\n */\nexport interface ComputeTextAlternativeOptions {\n\tcompute?: \"description\" | \"name\";\n\t/**\n\t * Set to true if window.computedStyle supports the second argument.\n\t * This should be false in JSDOM. Otherwise JSDOM will log console errors.\n\t */\n\tcomputedStyleSupportsPseudoElements?: boolean;\n\t/**\n\t * mock window.getComputedStyle. Needs `content`, `display` and `visibility`\n\t */\n\tgetComputedStyle?: GetComputedStyle;\n\t/**\n\t * Set to `true` if you want to include hidden elements in the accessible name and description computation.\n\t * Skips 2A in https://w3c.github.io/accname/#computation-steps.\n\t * @default false\n\t */\n\thidden?: boolean;\n}\n\n/**\n *\n * @param {string} string -\n * @returns {FlatString} -\n */\nfunction asFlatString(s: string): FlatString {\n\treturn s.trim().replace(/\\s\\s+/g, \" \") as FlatString;\n}\n\n/**\n *\n * @param node -\n * @param options - These are not optional to prevent accidentally calling it without options in `computeAccessibleName`\n * @returns {boolean} -\n */\nfunction isHidden(\n\tnode: Node,\n\tgetComputedStyleImplementation: GetComputedStyle,\n): node is Element {\n\tif (!isElement(node)) {\n\t\treturn false;\n\t}\n\n\tif (\n\t\tnode.hasAttribute(\"hidden\") ||\n\t\tnode.getAttribute(\"aria-hidden\") === \"true\"\n\t) {\n\t\treturn true;\n\t}\n\n\tconst style = getComputedStyleImplementation(node);\n\treturn (\n\t\tstyle.getPropertyValue(\"display\") === \"none\" ||\n\t\tstyle.getPropertyValue(\"visibility\") === \"hidden\"\n\t);\n}\n\n/**\n * @param {Node} node -\n * @returns {boolean} - As defined in step 2E of https://w3c.github.io/accname/#mapping_additional_nd_te\n */\nfunction isControl(node: Node): boolean {\n\treturn (\n\t\thasAnyConcreteRoles(node, [\"button\", \"combobox\", \"listbox\", \"textbox\"]) ||\n\t\thasAbstractRole(node, \"range\")\n\t);\n}\n\nfunction hasAbstractRole(node: Node, role: string): node is Element {\n\tif (!isElement(node)) {\n\t\treturn false;\n\t}\n\n\tswitch (role) {\n\t\tcase \"range\":\n\t\t\treturn hasAnyConcreteRoles(node, [\n\t\t\t\t\"meter\",\n\t\t\t\t\"progressbar\",\n\t\t\t\t\"scrollbar\",\n\t\t\t\t\"slider\",\n\t\t\t\t\"spinbutton\",\n\t\t\t]);\n\t\tdefault:\n\t\t\tthrow new TypeError(\n\t\t\t\t`No knowledge about abstract role '${role}'. This is likely a bug :(`,\n\t\t\t);\n\t}\n}\n\n/**\n * element.querySelectorAll but also considers owned tree\n * @param element\n * @param selectors\n */\nfunction querySelectorAllSubtree(\n\telement: Element,\n\tselectors: string,\n): Element[] {\n\tconst elements = ArrayFrom(element.querySelectorAll(selectors));\n\n\tqueryIdRefs(element, \"aria-owns\").forEach((root) => {\n\t\t// babel transpiles this assuming an iterator\n\t\telements.push.apply(elements, ArrayFrom(root.querySelectorAll(selectors)));\n\t});\n\n\treturn elements;\n}\n\nfunction querySelectedOptions(listbox: Element): ArrayLike<Element> {\n\tif (isHTMLSelectElement(listbox)) {\n\t\t// IE11 polyfill\n\t\treturn (\n\t\t\tlistbox.selectedOptions || querySelectorAllSubtree(listbox, \"[selected]\")\n\t\t);\n\t}\n\treturn querySelectorAllSubtree(listbox, '[aria-selected=\"true\"]');\n}\n\nfunction isMarkedPresentational(node: Node): node is Element {\n\treturn hasAnyConcreteRoles(node, presentationRoles);\n}\n\n/**\n * Elements specifically listed in html-aam\n *\n * We don't need this for `label` or `legend` elements.\n * Their implicit roles already allow \"naming from content\".\n *\n * sources:\n *\n * - https://w3c.github.io/html-aam/#table-element\n */\nfunction isNativeHostLanguageTextAlternativeElement(\n\tnode: Node,\n): node is Element {\n\treturn isHTMLTableCaptionElement(node);\n}\n\n/**\n * https://w3c.github.io/aria/#namefromcontent\n */\nfunction allowsNameFromContent(node: Node): boolean {\n\treturn hasAnyConcreteRoles(node, [\n\t\t\"button\",\n\t\t\"cell\",\n\t\t\"checkbox\",\n\t\t\"columnheader\",\n\t\t\"gridcell\",\n\t\t\"heading\",\n\t\t\"label\",\n\t\t\"legend\",\n\t\t\"link\",\n\t\t\"menuitem\",\n\t\t\"menuitemcheckbox\",\n\t\t\"menuitemradio\",\n\t\t\"option\",\n\t\t\"radio\",\n\t\t\"row\",\n\t\t\"rowheader\",\n\t\t\"switch\",\n\t\t\"tab\",\n\t\t\"tooltip\",\n\t\t\"treeitem\",\n\t]);\n}\n\n/**\n * TODO https://github.com/eps1lon/dom-accessibility-api/issues/100\n */\nfunction isDescendantOfNativeHostLanguageTextAlternativeElement(\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars -- not implemented yet\n\tnode: Node,\n): boolean {\n\treturn false;\n}\n\nfunction getValueOfTextbox(element: Element): string {\n\tif (isHTMLInputElement(element) || isHTMLTextAreaElement(element)) {\n\t\treturn element.value;\n\t}\n\t// https://github.com/eps1lon/dom-accessibility-api/issues/4\n\treturn element.textContent || \"\";\n}\n\nfunction getTextualContent(declaration: CSSStyleDeclaration): string {\n\tconst content = declaration.getPropertyValue(\"content\");\n\tif (/^[\"'].*[\"']$/.test(content)) {\n\t\treturn content.slice(1, -1);\n\t}\n\treturn \"\";\n}\n\n/**\n * https://html.spec.whatwg.org/multipage/forms.html#category-label\n * TODO: form-associated custom elements\n * @param element\n */\nfunction isLabelableElement(element: Element): boolean {\n\tconst localName = getLocalName(element);\n\n\treturn (\n\t\tlocalName === \"button\" ||\n\t\t(localName === \"input\" && element.getAttribute(\"type\") !== \"hidden\") ||\n\t\tlocalName === \"meter\" ||\n\t\tlocalName === \"output\" ||\n\t\tlocalName === \"progress\" ||\n\t\tlocalName === \"select\" ||\n\t\tlocalName === \"textarea\"\n\t);\n}\n\n/**\n * > [...], then the first such descendant in tree order is the label element's labeled control.\n * -- https://html.spec.whatwg.org/multipage/forms.html#labeled-control\n * @param element\n */\nfunction findLabelableElement(element: Element): Element | null {\n\tif (isLabelableElement(element)) {\n\t\treturn element;\n\t}\n\tlet labelableElement: Element | null = null;\n\telement.childNodes.forEach((childNode) => {\n\t\tif (labelableElement === null && isElement(childNode)) {\n\t\t\tconst descendantLabelableElement = findLabelableElement(childNode);\n\t\t\tif (descendantLabelableElement !== null) {\n\t\t\t\tlabelableElement = descendantLabelableElement;\n\t\t\t}\n\t\t}\n\t});\n\n\treturn labelableElement;\n}\n\n/**\n * Polyfill of HTMLLabelElement.control\n * https://html.spec.whatwg.org/multipage/forms.html#labeled-control\n * @param label\n */\nfunction getControlOfLabel(label: HTMLLabelElement): Element | null {\n\tif (label.control !== undefined) {\n\t\treturn label.control;\n\t}\n\n\tconst htmlFor = label.getAttribute(\"for\");\n\tif (htmlFor !== null) {\n\t\treturn label.ownerDocument.getElementById(htmlFor);\n\t}\n\n\treturn findLabelableElement(label);\n}\n\n/**\n * Polyfill of HTMLInputElement.labels\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/labels\n * @param element\n */\nfunction getLabels(element: Element): HTMLLabelElement[] | null {\n\tconst labelsProperty = (element as HTMLInputElement).labels as\n\t\t| HTMLInputElement[\"labels\"]\n\t\t| undefined;\n\n\tif (labelsProperty === null) {\n\t\treturn labelsProperty;\n\t}\n\tif (labelsProperty !== undefined) {\n\t\treturn ArrayFrom(labelsProperty);\n\t}\n\n\t// polyfill\n\tif (!isLabelableElement(element)) {\n\t\treturn null;\n\t}\n\tconst document = element.ownerDocument;\n\n\treturn ArrayFrom(document.querySelectorAll(\"label\")).filter((label) => {\n\t\treturn getControlOfLabel(label) === element;\n\t});\n}\n\n/**\n * Gets the contents of a slot used for computing the accname\n * @param slot\n */\nfunction getSlotContents(slot: HTMLSlotElement): Node[] {\n\t// Computing the accessible name for elements containing slots is not\n\t// currently defined in the spec. This implementation reflects the\n\t// behavior of NVDA 2020.2/Firefox 81 and iOS VoiceOver/Safari 13.6.\n\tconst assignedNodes = slot.assignedNodes();\n\tif (assignedNodes.length === 0) {\n\t\t// if no nodes are assigned to the slot, it displays the default content\n\t\treturn ArrayFrom(slot.childNodes);\n\t}\n\treturn assignedNodes;\n}\n\n/**\n * implements https://w3c.github.io/accname/#mapping_additional_nd_te\n * @param root\n * @param options\n * @returns\n */\nexport function computeTextAlternative(\n\troot: Element,\n\toptions: ComputeTextAlternativeOptions = {},\n): string {\n\tconst consultedNodes = new SetLike<Node>();\n\tconst computedStyles =\n\t\ttypeof Map === \"undefined\"\n\t\t\t? undefined\n\t\t\t: new Map<Element, CSSStyleDeclaration>();\n\n\tconst window = safeWindow(root);\n\tconst {\n\t\tcompute = \"name\",\n\t\tcomputedStyleSupportsPseudoElements = options.getComputedStyle !==\n\t\t\tundefined,\n\t\t// This might be overengineered. I don't know what happens if I call\n\t\t// window.getComputedStyle(elementFromAnotherWindow) or if I don't bind it\n\t\t// the type declarations don't require a `this`\n\t\t// eslint-disable-next-line no-restricted-properties\n\t\tgetComputedStyle: uncachedGetComputedStyle = window.getComputedStyle.bind(\n\t\t\twindow,\n\t\t),\n\t\thidden = false,\n\t} = options;\n\tconst getComputedStyle: GetComputedStyle = (\n\t\tel,\n\t\tpseudoElement,\n\t): CSSStyleDeclaration => {\n\t\t// We don't cache the pseudoElement styles and calls with psuedo elements\n\t\t// should use the uncached version instead\n\t\tif (pseudoElement !== undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t\"use uncachedGetComputedStyle directly for pseudo elements\",\n\t\t\t);\n\t\t}\n\t\t// If Map is not available, it is probably faster to just use the uncached\n\t\t// version since a polyfill lookup would be O(n) instead of O(1) and\n\t\t// the getComputedStyle function in those environments(e.g. IE11) is fast\n\t\tif (computedStyles === undefined) {\n\t\t\treturn uncachedGetComputedStyle(el);\n\t\t}\n\t\tconst cachedStyles = computedStyles.get(el);\n\t\tif (cachedStyles) {\n\t\t\treturn cachedStyles;\n\t\t}\n\t\tconst style = uncachedGetComputedStyle(el, pseudoElement);\n\t\tcomputedStyles.set(el, style);\n\t\treturn style;\n\t};\n\n\t// 2F.i\n\tfunction computeMiscTextAlternative(\n\t\tnode: Node,\n\t\tcontext: { isEmbeddedInLabel: boolean; isReferenced: boolean },\n\t): string {\n\t\tlet accumulatedText = \"\";\n\t\tif (isElement(node) && computedStyleSupportsPseudoElements) {\n\t\t\tconst pseudoBefore = uncachedGetComputedStyle(node, \"::before\");\n\t\t\tconst beforeContent = getTextualContent(pseudoBefore);\n\t\t\taccumulatedText = `${beforeContent} ${accumulatedText}`;\n\t\t}\n\n\t\t// FIXME: Including aria-owns is not defined in the spec\n\t\t// But it is required in the web-platform-test\n\t\tconst childNodes = isHTMLSlotElement(node)\n\t\t\t? getSlotContents(node)\n\t\t\t: ArrayFrom(node.childNodes).concat(queryIdRefs(node, \"aria-owns\"));\n\t\tchildNodes.forEach((child) => {\n\t\t\tconst result = computeTextAlternative(child, {\n\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\tisReferenced: false,\n\t\t\t\trecursion: true,\n\t\t\t});\n\t\t\t// TODO: Unclear why display affects delimiter\n\t\t\t// see https://github.com/w3c/accname/issues/3\n\t\t\tconst display = isElement(child)\n\t\t\t\t? getComputedStyle(child).getPropertyValue(\"display\")\n\t\t\t\t: \"inline\";\n\t\t\tconst separator = display !== \"inline\" ? \" \" : \"\";\n\t\t\t// trailing separator for wpt tests\n\t\t\taccumulatedText += `${separator}${result}${separator}`;\n\t\t});\n\t\tif (isElement(node) && computedStyleSupportsPseudoElements) {\n\t\t\tconst pseudoAfter = uncachedGetComputedStyle(node, \"::after\");\n\t\t\tconst afterContent = getTextualContent(pseudoAfter);\n\t\t\taccumulatedText = `${accumulatedText} ${afterContent}`;\n\t\t}\n\n\t\treturn accumulatedText.trim();\n\t}\n\n\t/**\n\t *\n\t * @param element\n\t * @param attributeName\n\t * @returns A string non-empty string or `null`\n\t */\n\tfunction useAttribute(\n\t\telement: Element,\n\t\tattributeName: string,\n\t): string | null {\n\t\tconst attribute = element.getAttributeNode(attributeName);\n\t\tif (\n\t\t\tattribute !== null &&\n\t\t\t!consultedNodes.has(attribute) &&\n\t\t\tattribute.value.trim() !== \"\"\n\t\t) {\n\t\t\tconsultedNodes.add(attribute);\n\t\t\treturn attribute.value;\n\t\t}\n\t\treturn null;\n\t}\n\n\tfunction computeTooltipAttributeValue(node: Node): string | null {\n\t\tif (!isElement(node)) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn useAttribute(node, \"title\");\n\t}\n\n\tfunction computeElementTextAlternative(node: Node): string | null {\n\t\tif (!isElement(node)) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// https://w3c.github.io/html-aam/#fieldset-and-legend-elements\n\t\tif (isHTMLFieldSetElement(node)) {\n\t\t\tconsultedNodes.add(node);\n\t\t\tconst children = ArrayFrom(node.childNodes);\n\t\t\tfor (let i = 0; i < children.length; i += 1) {\n\t\t\t\tconst child = children[i];\n\t\t\t\tif (isHTMLLegendElement(child)) {\n\t\t\t\t\treturn computeTextAlternative(child, {\n\t\t\t\t\t\tisEmbeddedInLabel: false,\n\t\t\t\t\t\tisReferenced: false,\n\t\t\t\t\t\trecursion: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isHTMLTableElement(node)) {\n\t\t\t// https://w3c.github.io/html-aam/#table-element\n\t\t\tconsultedNodes.add(node);\n\t\t\tconst children = ArrayFrom(node.childNodes);\n\t\t\tfor (let i = 0; i < children.length; i += 1) {\n\t\t\t\tconst child = children[i];\n\t\t\t\tif (isHTMLTableCaptionElement(child)) {\n\t\t\t\t\treturn computeTextAlternative(child, {\n\t\t\t\t\t\tisEmbeddedInLabel: false,\n\t\t\t\t\t\tisReferenced: false,\n\t\t\t\t\t\trecursion: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isSVGSVGElement(node)) {\n\t\t\t// https://www.w3.org/TR/svg-aam-1.0/\n\t\t\tconsultedNodes.add(node);\n\t\t\tconst children = ArrayFrom(node.childNodes);\n\t\t\tfor (let i = 0; i < children.length; i += 1) {\n\t\t\t\tconst child = children[i];\n\t\t\t\tif (isSVGTitleElement(child)) {\n\t\t\t\t\treturn child.textContent;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} else if (getLocalName(node) === \"img\" || getLocalName(node) === \"area\") {\n\t\t\t// https://w3c.github.io/html-aam/#area-element\n\t\t\t// https://w3c.github.io/html-aam/#img-element\n\t\t\tconst nameFromAlt = useAttribute(node, \"alt\");\n\t\t\tif (nameFromAlt !== null) {\n\t\t\t\treturn nameFromAlt;\n\t\t\t}\n\t\t} else if (isHTMLOptGroupElement(node)) {\n\t\t\tconst nameFromLabel = useAttribute(node, \"label\");\n\t\t\tif (nameFromLabel !== null) {\n\t\t\t\treturn nameFromLabel;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tisHTMLInputElement(node) &&\n\t\t\t(node.type === \"button\" ||\n\t\t\t\tnode.type === \"submit\" ||\n\t\t\t\tnode.type === \"reset\")\n\t\t) {\n\t\t\t// https://w3c.github.io/html-aam/#input-type-text-input-type-password-input-type-search-input-type-tel-input-type-email-input-type-url-and-textarea-element-accessible-description-computation\n\t\t\tconst nameFromValue = useAttribute(node, \"value\");\n\t\t\tif (nameFromValue !== null) {\n\t\t\t\treturn nameFromValue;\n\t\t\t}\n\n\t\t\t// TODO: l10n\n\t\t\tif (node.type === \"submit\") {\n\t\t\t\treturn \"Submit\";\n\t\t\t}\n\t\t\t// TODO: l10n\n\t\t\tif (node.type === \"reset\") {\n\t\t\t\treturn \"Reset\";\n\t\t\t}\n\t\t}\n\n\t\tconst labels = getLabels(node);\n\t\tif (labels !== null && labels.length !== 0) {\n\t\t\tconsultedNodes.add(node);\n\t\t\treturn ArrayFrom(labels)\n\t\t\t\t.map((element) => {\n\t\t\t\t\treturn computeTextAlternative(element, {\n\t\t\t\t\t\tisEmbeddedInLabel: true,\n\t\t\t\t\t\tisReferenced: false,\n\t\t\t\t\t\trecursion: true,\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.filter((label) => {\n\t\t\t\t\treturn label.length > 0;\n\t\t\t\t})\n\t\t\t\t.join(\" \");\n\t\t}\n\n\t\t// https://w3c.github.io/html-aam/#input-type-image-accessible-name-computation\n\t\t// TODO: wpt test consider label elements but html-aam does not mention them\n\t\t// We follow existing implementations over spec\n\t\tif (isHTMLInputElement(node) && node.type === \"image\") {\n\t\t\tconst nameFromAlt = useAttribute(node, \"alt\");\n\t\t\tif (nameFromAlt !== null) {\n\t\t\t\treturn nameFromAlt;\n\t\t\t}\n\n\t\t\tconst nameFromTitle = useAttribute(node, \"title\");\n\t\t\tif (nameFromTitle !== null) {\n\t\t\t\treturn nameFromTitle;\n\t\t\t}\n\n\t\t\t// TODO: l10n\n\t\t\treturn \"Submit Query\";\n\t\t}\n\n\t\tif (hasAnyConcreteRoles(node, [\"button\"])) {\n\t\t\t// https://www.w3.org/TR/html-aam-1.0/#button-element\n\t\t\tconst nameFromSubTree = computeMiscTextAlternative(node, {\n\t\t\t\tisEmbeddedInLabel: false,\n\t\t\t\tisReferenced: false,\n\t\t\t});\n\t\t\tif (nameFromSubTree !== \"\") {\n\t\t\t\treturn nameFromSubTree;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction computeTextAlternative(\n\t\tcurrent: Node,\n\t\tcontext: {\n\t\t\tisEmbeddedInLabel: boolean;\n\t\t\tisReferenced: boolean;\n\t\t\trecursion: boolean;\n\t\t},\n\t): string {\n\t\tif (consultedNodes.has(current)) {\n\t\t\treturn \"\";\n\t\t}\n\t\t// 2A\n\t\tif (\n\t\t\t!hidden &&\n\t\t\tisHidden(current, getComputedStyle) &&\n\t\t\t!context.isReferenced\n\t\t) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn \"\" as FlatString;\n\t\t}\n\n\t\t// 2B\n\t\tconst labelAttributeNode = isElement(current)\n\t\t\t? current.getAttributeNode(\"aria-labelledby\")\n\t\t\t: null;\n\t\t// TODO: Do we generally need to block query IdRefs of attributes we have already consulted?\n\t\tconst labelElements =\n\t\t\tlabelAttributeNode !== null && !consultedNodes.has(labelAttributeNode)\n\t\t\t\t? queryIdRefs(current, \"aria-labelledby\")\n\t\t\t\t: [];\n\t\tif (\n\t\t\tcompute === \"name\" &&\n\t\t\t!context.isReferenced &&\n\t\t\tlabelElements.length > 0\n\t\t) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- Can't be null here otherwise labelElements would be empty\n\t\t\tconsultedNodes.add(labelAttributeNode!);\n\n\t\t\treturn labelElements\n\t\t\t\t.map((element) => {\n\t\t\t\t\t// TODO: Chrome will consider repeated values i.e. use a node multiple times while we'll bail out in computeTextAlternative.\n\t\t\t\t\treturn computeTextAlternative(element, {\n\t\t\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\t\t\tisReferenced: true,\n\t\t\t\t\t\t// this isn't recursion as specified, otherwise we would skip\n\t\t\t\t\t\t// `aria-label` in\n\t\t\t\t\t\t// <input id=\"myself\" aria-label=\"foo\" aria-labelledby=\"myself\"\n\t\t\t\t\t\trecursion: false,\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.join(\" \");\n\t\t}\n\n\t\t// 2C\n\t\t// Changed from the spec in anticipation of https://github.com/w3c/accname/issues/64\n\t\t// spec says we should only consider skipping if we have a non-empty label\n\t\tconst skipToStep2E =\n\t\t\tcontext.recursion && isControl(current) && compute === \"name\";\n\t\tif (!skipToStep2E) {\n\t\t\tconst ariaLabel = (\n\t\t\t\t(isElement(current) && current.getAttribute(\"aria-label\")) ||\n\t\t\t\t\"\"\n\t\t\t).trim();\n\t\t\tif (ariaLabel !== \"\" && compute === \"name\") {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\treturn ariaLabel;\n\t\t\t}\n\n\t\t\t// 2D\n\t\t\tif (!isMarkedPresentational(current)) {\n\t\t\t\tconst elementTextAlternative = computeElementTextAlternative(current);\n\t\t\t\tif (elementTextAlternative !== null) {\n\t\t\t\t\tconsultedNodes.add(current);\n\t\t\t\t\treturn elementTextAlternative;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// special casing, cheating to make tests pass\n\t\t// https://github.com/w3c/accname/issues/67\n\t\tif (hasAnyConcreteRoles(current, [\"menu\"])) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn \"\";\n\t\t}\n\n\t\t// 2E\n\t\tif (skipToStep2E || context.isEmbeddedInLabel || context.isReferenced) {\n\t\t\tif (hasAnyConcreteRoles(current, [\"combobox\", \"listbox\"])) {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\tconst selectedOptions = querySelectedOptions(current);\n\t\t\t\tif (selectedOptions.length === 0) {\n\t\t\t\t\t// defined per test `name_heading_combobox`\n\t\t\t\t\treturn isHTMLInputElement(current) ? current.value : \"\";\n\t\t\t\t}\n\t\t\t\treturn ArrayFrom(selectedOptions)\n\t\t\t\t\t.map((selectedOption) => {\n\t\t\t\t\t\treturn computeTextAlternative(selectedOption, {\n\t\t\t\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\t\t\t\tisReferenced: false,\n\t\t\t\t\t\t\trecursion: true,\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.join(\" \");\n\t\t\t}\n\t\t\tif (hasAbstractRole(current, \"range\")) {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\tif (current.hasAttribute(\"aria-valuetext\")) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- safe due to hasAttribute guard\n\t\t\t\t\treturn current.getAttribute(\"aria-valuetext\")!;\n\t\t\t\t}\n\t\t\t\tif (current.hasAttribute(\"aria-valuenow\")) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- safe due to hasAttribute guard\n\t\t\t\t\treturn current.getAttribute(\"aria-valuenow\")!;\n\t\t\t\t}\n\t\t\t\t// Otherwise, use the value as specified by a host language attribute.\n\t\t\t\treturn current.getAttribute(\"value\") || \"\";\n\t\t\t}\n\t\t\tif (hasAnyConcreteRoles(current, [\"textbox\"])) {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\treturn getValueOfTextbox(current);\n\t\t\t}\n\t\t}\n\n\t\t// 2F: https://w3c.github.io/accname/#step2F\n\t\tif (\n\t\t\tallowsNameFromContent(current) ||\n\t\t\t(isElement(current) && context.isReferenced) ||\n\t\t\tisNativeHostLanguageTextAlternativeElement(current) ||\n\t\t\tisDescendantOfNativeHostLanguageTextAlternativeElement(current)\n\t\t) {\n\t\t\tconst accumulatedText2F = computeMiscTextAlternative(current, {\n\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\tisReferenced: false,\n\t\t\t});\n\t\t\tif (accumulatedText2F !== \"\") {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\treturn accumulatedText2F;\n\t\t\t}\n\t\t}\n\n\t\tif (current.nodeType === current.TEXT_NODE) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn current.textContent || \"\";\n\t\t}\n\n\t\tif (context.recursion) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn computeMiscTextAlternative(current, {\n\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\tisReferenced: false,\n\t\t\t});\n\t\t}\n\n\t\tconst tooltipAttributeValue = computeTooltipAttributeValue(current);\n\t\tif (tooltipAttributeValue !== null) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn tooltipAttributeValue;\n\t\t}\n\n\t\t// TODO should this be reachable?\n\t\tconsultedNodes.add(current);\n\t\treturn \"\";\n\t}\n\n\treturn asFlatString(\n\t\tcomputeTextAlternative(root, {\n\t\t\tisEmbeddedInLabel: false,\n\t\t\t// by spec computeAccessibleDescription starts with the referenced elements as roots\n\t\t\tisReferenced: compute === \"description\",\n\t\t\trecursion: false,\n\t\t}),\n\t);\n}\n","import {\n\tcomputeTextAlternative,\n\tComputeTextAlternativeOptions,\n} from \"./accessible-name-and-description\";\nimport { queryIdRefs } from \"./util\";\n\n/**\n * @param root\n * @param options\n * @returns\n */\nexport function computeAccessibleDescription(\n\troot: Element,\n\toptions: ComputeTextAlternativeOptions = {},\n): string {\n\tlet description = queryIdRefs(root, \"aria-describedby\")\n\t\t.map((element) => {\n\t\t\treturn computeTextAlternative(element, {\n\t\t\t\t...options,\n\t\t\t\tcompute: \"description\",\n\t\t\t});\n\t\t})\n\t\t.join(\" \");\n\n\t// TODO: Technically we need to make sure that node wasn't used for the accessible name\n\t//       This causes `description_1.0_combobox-focusable-manual` to fail\n\n\t// https://w3c.github.io/aria/#aria-description\n\t// mentions that aria-description should only be calculated if aria-describedby didn't provide\n\t// a description\n\tif (description === \"\") {\n\t\tconst ariaDescription = root.getAttribute(\"aria-description\");\n\t\tdescription = ariaDescription === null ? \"\" : ariaDescription;\n\t}\n\n\t// https://www.w3.org/TR/html-aam-1.0/#accessible-name-and-description-computation\n\t// says for so many elements to use the `title` that we assume all elements are considered\n\tif (description === \"\") {\n\t\tconst title = root.getAttribute(\"title\");\n\t\tdescription = title === null ? \"\" : title;\n\t}\n\n\treturn description;\n}\n","import {\n\tcomputeTextAlternative,\n\tComputeTextAlternativeOptions,\n} from \"./accessible-name-and-description\";\nimport { hasAnyConcreteRoles } from \"./util\";\n\n/**\n * https://w3c.github.io/aria/#namefromprohibited\n */\nfunction prohibitsNaming(node: Node): boolean {\n\treturn hasAnyConcreteRoles(node, [\n\t\t\"caption\",\n\t\t\"code\",\n\t\t\"deletion\",\n\t\t\"emphasis\",\n\t\t\"generic\",\n\t\t\"insertion\",\n\t\t\"none\",\n\t\t\"paragraph\",\n\t\t\"presentation\",\n\t\t\"strong\",\n\t\t\"subscript\",\n\t\t\"superscript\",\n\t]);\n}\n\n/**\n * implements https://w3c.github.io/accname/#mapping_additional_nd_name\n * @param root\n * @param options\n * @returns\n */\nexport function computeAccessibleName(\n\troot: Element,\n\toptions: ComputeTextAlternativeOptions = {},\n): string {\n\tif (prohibitsNaming(root)) {\n\t\treturn \"\";\n\t}\n\n\treturn computeTextAlternative(root, options);\n}\n","import { computeAccessibleDescription } from \"dom-accessibility-api\";\nimport { isElement } from \"../isElement\";\n\nexport function getAccessibleDescription(node: Node) {\n  return isElement(node) ? computeAccessibleDescription(node).trim() : \"\";\n}\n","export function sanitizeString(string: string) {\n  return string.trim().replace(/\\s+/g, \" \");\n}\n","import { computeAccessibleName } from \"dom-accessibility-api\";\nimport { isElement } from \"../isElement\";\nimport { sanitizeString } from \"../sanitizeString\";\n\nexport function getAccessibleName(node: Node): string {\n  // Feature detect AOM support\n  if (\"computedName\" in node) {\n    return node.computedName as string;\n  }\n\n  return isElement(node)\n    ? computeAccessibleName(node).trim()\n    : // `node.textContent` is only `null` for `document` and `doctype`.\n       \n      sanitizeString(node.textContent!);\n}\n","import { getLocalName } from \"../getLocalName\";\nimport { isElement } from \"../isElement\";\n\nexport type HTMLElementWithValue =\n  | HTMLButtonElement\n  | HTMLDataElement\n  | HTMLInputElement\n  | HTMLLIElement\n  | HTMLMeterElement\n  | HTMLOptionElement\n  | HTMLProgressElement\n  | HTMLParamElement;\n\nconst ignoredInputTypes = new Set([\"checkbox\", \"radio\"]);\nconst allowedLocalNames = new Set([\n  \"button\",\n  \"data\",\n  \"input\",\n  // \"li\",\n  \"meter\",\n  \"option\",\n  \"progress\",\n  \"param\",\n]);\n\nfunction getSelectValue(node: HTMLSelectElement) {\n  const selectedOptions = [...node.options].filter(\n    (optionElement) => optionElement.selected\n  );\n\n  if (node.multiple) {\n    return [...selectedOptions]\n      .map((optionElement) => getValue(optionElement))\n      .join(\"; \");\n  }\n\n  if (selectedOptions.length === 0) {\n    return \"\";\n  }\n\n  return getValue(selectedOptions[0]);\n}\n\nfunction getInputValue(node: HTMLInputElement) {\n  if (ignoredInputTypes.has(node.type)) {\n    return \"\";\n  }\n\n  return getValue(node);\n}\n\nfunction getValue(node: HTMLElementWithValue) {\n  const localName = getLocalName(node);\n\n  // TODO: handle use of explicit roles where a value taken from content is\n  // expected, e.g. combobox.\n  // See core-aam/combobox-value-calculation-manual.html\n  if (!allowedLocalNames.has(localName)) {\n    return \"\";\n  }\n\n  if (\n    node.getAttribute(\"aria-valuetext\") ||\n    node.getAttribute(\"aria-valuenow\")\n  ) {\n    return \"\";\n  }\n\n  return typeof node.value === \"number\" ? `${node.value}` : node.value;\n}\n\nexport function getAccessibleValue(node: Node) {\n  if (!isElement(node)) {\n    return \"\";\n  }\n\n  switch (getLocalName(node)) {\n    case \"input\": {\n      return getInputValue(node as HTMLInputElement);\n    }\n    case \"select\": {\n      return getSelectValue(node as HTMLSelectElement);\n    }\n  }\n\n  return getValue(node as HTMLElementWithValue);\n}\n","const dialogRoles = new Set([\"dialog\", \"alertdialog\"]);\n\nexport const isDialogRole = (role: string) => dialogRoles.has(role);\n","import { ARIARole, roles } from \"html-aria\";\nimport { getRole, presentationRoles } from \"./getRole\";\nimport { getAccessibleDescription } from \"./getAccessibleDescription\";\nimport { getAccessibleName } from \"./getAccessibleName\";\nimport { getAccessibleValue } from \"./getAccessibleValue\";\nimport { getLocalName } from \"../getLocalName\";\nimport { isDialogRole } from \"../isDialogRole\";\nimport { isElement } from \"../isElement\";\n\nconst childrenPresentationalRoles = new Set(\n  Object.entries(roles)\n    .filter(([, { childrenPresentational }]) => childrenPresentational)\n    .map(([key]) => key) as string[]\n);\n\nconst getSpokenRole = ({\n  isGeneric,\n  isPresentational,\n  node,\n  role,\n}: {\n  isGeneric: boolean;\n  isPresentational: boolean;\n  node: Node;\n  role: string;\n}) => {\n  if (isPresentational || isGeneric) {\n    return \"\";\n  }\n\n  if (isElement(node)) {\n    /**\n     * Assistive technologies SHOULD use the value of aria-roledescription when\n     * presenting the role of an element, but SHOULD NOT change other\n     * functionality based on the role of an element that has a value for\n     * aria-roledescription. For example, an assistive technology that provides\n     * functions for navigating to the next region or button SHOULD allow those\n     * functions to navigate to regions and buttons that have an\n     * aria-roledescription.\n     *\n     * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-roledescription\n     */\n    const roledescription = node.getAttribute(\"aria-roledescription\");\n\n    if (roledescription) {\n      return roledescription;\n    }\n  }\n\n  return role;\n};\n\n/**\n * Nodes that are [inert](https://html.spec.whatwg.org/multipage/interaction.html#inert)\n * are not exposed to an accessibility API.\n *\n * Note: an inert node can have descendants that are not inert. For example,\n * a [modal dialog](https://html.spec.whatwg.org/multipage/interaction.html#modal-dialogs-and-inert-subtrees)\n * can escape an inert subtree.\n *\n * REF: https://www.w3.org/TR/html-aam-1.0/#att-inert\n */\nconst getIsInert = ({\n  inheritedImplicitInert,\n  node,\n  role,\n}: {\n  inheritedImplicitInert: boolean;\n  node: Node;\n  role: string;\n}) => {\n  if (!isElement(node)) {\n    return inheritedImplicitInert;\n  }\n\n  // TODO: this doesn't cater to `<dialog>` elements which are model if opened\n  // by `show()` vs `showModal()`.\n  // REF: https://html.spec.whatwg.org/multipage/interaction.html#modal-dialogs-and-inert-subtrees\n  const isNativeModalDialog =\n    getLocalName(node) === \"dialog\" && node.hasAttribute(\"open\");\n\n  const isNonNativeModalDialog =\n    isDialogRole(role) && node.hasAttribute(\"aria-modal\");\n\n  const isModalDialog = isNonNativeModalDialog || isNativeModalDialog;\n  const isExplicitInert = node.hasAttribute(\"inert\");\n\n  return isExplicitInert || (inheritedImplicitInert && !isModalDialog);\n};\n\nexport function getNodeAccessibilityData({\n  allowedAccessibilityRoles,\n  inheritedImplicitInert,\n  inheritedImplicitPresentational,\n  node,\n}: {\n  allowedAccessibilityRoles: string[];\n  inheritedImplicitInert: boolean;\n  inheritedImplicitPresentational: boolean;\n  node: Node;\n}) {\n  const accessibleDescription = getAccessibleDescription(node);\n  const accessibleName = getAccessibleName(node);\n  const accessibleValue = getAccessibleValue(node);\n\n  const { explicitRole, implicitRole, role } = getRole({\n    accessibleName,\n    allowedAccessibilityRoles,\n    inheritedImplicitPresentational,\n    node,\n  });\n\n  const amendedAccessibleDescription =\n    accessibleDescription === accessibleName ? \"\" : accessibleDescription;\n\n  const isExplicitPresentational = presentationRoles.has(explicitRole);\n  const isPresentational = presentationRoles.has(role);\n  const isGeneric = role === \"generic\";\n\n  const spokenRole = getSpokenRole({\n    isGeneric,\n    isPresentational,\n    node,\n    role,\n  });\n\n  const { allowedChildRoles: allowedAccessibilityChildRoles } = roles[\n    role as ARIARole\n  ] ?? {\n    allowedChildRoles: [],\n  };\n\n  const { allowedChildRoles: implicitAllowedAccessibilityChildRoles } = roles[\n    implicitRole as ARIARole\n  ] ?? {\n    allowedChildRoles: [],\n  };\n\n  /**\n   * Any descendants of elements that have the characteristic \"Children\n   * Presentational: True\" unless the descendant is not allowed to be\n   * presentational because it meets one of the conditions for exception\n   * described in Presentational Roles Conflict Resolution. However, the text\n   * content of any excluded descendants is included.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#tree_exclusion\n   */\n  const isChildrenPresentationalRole = childrenPresentationalRoles.has(role);\n\n  /**\n   * When an explicit or inherited role of presentation is applied to an\n   * element with the implicit semantic of a WAI-ARIA role that has Allowed\n   * Accessibility Child Roles, in addition to the element with the explicit\n   * role of presentation, the user agent MUST apply an inherited role of\n   * presentation to any owned elements that do not have an explicit role\n   * defined. Also, when an explicit or inherited role of presentation is\n   * applied to a host language element which has specifically allowed children\n   * as defined by the host language specification, in addition to the element\n   * with the explicit role of presentation, the user agent MUST apply an\n   * inherited role of presentation to any specifically allowed children that\n   * do not have an explicit role defined.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#presentational-role-inheritance\n   */\n  const isExplicitOrInheritedPresentation =\n    isExplicitPresentational || inheritedImplicitPresentational;\n  const isElementWithImplicitAllowedAccessibilityChildRoles =\n    !!implicitAllowedAccessibilityChildRoles.length;\n  const childrenInheritPresentationExceptAllowedRoles =\n    isExplicitOrInheritedPresentation &&\n    isElementWithImplicitAllowedAccessibilityChildRoles;\n\n  const childrenPresentational =\n    isChildrenPresentationalRole ||\n    childrenInheritPresentationExceptAllowedRoles;\n\n  const isInert = getIsInert({\n    inheritedImplicitInert,\n    node,\n    role,\n  });\n\n  return {\n    accessibleDescription: amendedAccessibleDescription,\n    accessibleName,\n    accessibleValue,\n    allowedAccessibilityChildRoles,\n    childrenPresentational,\n    isExplicitPresentational,\n    isInert,\n    role,\n    spokenRole,\n  };\n}\n","import { isElement } from \"./isElement\";\n\nexport function getNodeByIdRef({\n  container,\n  idRef,\n}: {\n  container: Node;\n  idRef: string;\n}) {\n  if (!isElement(container) || !idRef) {\n    return null;\n  }\n\n  return container.querySelector(`#${CSS.escape(idRef)}`);\n}\n","import { isElement } from \"./isElement\";\n\nconst TEXT_NODE = 3;\n\nexport function isHiddenFromAccessibilityTree(node: Node | null): node is null {\n  if (!node) {\n    return true;\n  }\n\n  // `node.textContent` is only `null` for `document` and `doctype`.\n\n  if (node.nodeType === TEXT_NODE && node.textContent!.trim()) {\n    return false;\n  }\n\n  if (!isElement(node)) {\n    return true;\n  }\n\n  try {\n    if (node.hidden === true) {\n      return true;\n    }\n\n    if (node.getAttribute(\"aria-hidden\") === \"true\") {\n      return true;\n    }\n\n    const getComputedStyle = node.ownerDocument.defaultView?.getComputedStyle;\n    const computedStyle = getComputedStyle?.(node);\n\n    if (\n      computedStyle?.visibility === \"hidden\" ||\n      computedStyle?.display === \"none\"\n    ) {\n      return true;\n    }\n  } catch {\n    // Some elements aren't supported by DOM implementations such as JSDOM.\n    // E.g. `<math>`, see https://github.com/jsdom/jsdom/issues/3515\n    // We ignore these nodes at the moment as we can't support them.\n    return true;\n  }\n\n  return false;\n}\n","import { AccessibleAttributeToLabelMap } from \"./getNodeAccessibilityData/getAccessibleAttributeLabels/index\";\nimport { getIdRefsByAttribute } from \"./getIdRefsByAttribute\";\nimport { getNodeAccessibilityData } from \"./getNodeAccessibilityData/index\";\nimport { getNodeByIdRef } from \"./getNodeByIdRef\";\nimport { isDialogRole } from \"./isDialogRole\";\nimport { isElement } from \"./isElement\";\nimport { isHiddenFromAccessibilityTree } from \"./isHiddenFromAccessibilityTree\";\n\nexport interface AccessibilityNode {\n  accessibleAttributeLabels: string[];\n  accessibleAttributeToLabelMap: AccessibleAttributeToLabelMap;\n  accessibleDescription: string;\n  accessibleName: string;\n  accessibleValue: string;\n  allowedAccessibilityChildRoles: string[];\n  alternateReadingOrderParents: Node[];\n  childrenPresentational: boolean;\n  isInert: boolean;\n  node: Node;\n  parentAccessibilityNodeTree: AccessibilityNodeTree | null;\n  parent: Node | null;\n  parentDialog: HTMLElement | null;\n  role: string;\n  spokenRole: string;\n}\n\nexport interface AccessibilityNodeTree\n  extends Omit<\n    AccessibilityNode,\n    \"accessibleAttributeLabels\" | \"accessibleAttributeToLabelMap\"\n  > {\n  children: AccessibilityNodeTree[];\n}\n\ninterface AccessibilityContext {\n  alternateReadingOrderMap: Map<Node, Set<Node>>;\n  container: Node;\n  ownedNodes: Set<Node>;\n  visitedNodes: Set<Node>;\n}\n\nfunction addAlternateReadingOrderNodes(\n  node: Element,\n  alternateReadingOrderMap: Map<Node, Set<Node>>,\n  container: Element\n) {\n  const idRefs = getIdRefsByAttribute({\n    attributeName: \"aria-flowto\",\n    node,\n  });\n\n  idRefs.forEach((idRef) => {\n    const childNode = getNodeByIdRef({ container, idRef });\n\n    if (!childNode) {\n      return;\n    }\n\n    const currentParentNodes =\n      alternateReadingOrderMap.get(childNode) ?? new Set<Node>();\n\n    currentParentNodes.add(node);\n\n    alternateReadingOrderMap.set(childNode, currentParentNodes);\n  });\n}\n\nfunction mapAlternateReadingOrder(node: Node) {\n  const alternateReadingOrderMap = new Map<Node, Set<Node>>();\n\n  if (!isElement(node)) {\n    return alternateReadingOrderMap;\n  }\n\n  node\n    .querySelectorAll(\"[aria-flowto]\")\n    .forEach((parentNode) =>\n      addAlternateReadingOrderNodes(parentNode, alternateReadingOrderMap, node)\n    );\n\n  return alternateReadingOrderMap;\n}\n\nfunction addOwnedNodes(\n  node: Element,\n  ownedNodes: Set<Node>,\n  container: Element\n) {\n  const idRefs = getIdRefsByAttribute({\n    attributeName: \"aria-owns\",\n    node,\n  });\n\n  idRefs.forEach((idRef) => {\n    const ownedNode = getNodeByIdRef({ container, idRef });\n\n    if (!!ownedNode && !ownedNodes.has(ownedNode)) {\n      ownedNodes.add(ownedNode);\n    }\n  });\n}\n\nfunction getAllOwnedNodes(node: Node) {\n  const ownedNodes = new Set<Node>();\n\n  if (!isElement(node)) {\n    return ownedNodes;\n  }\n\n  node\n    .querySelectorAll(\"[aria-owns]\")\n    .forEach((owningNode) => addOwnedNodes(owningNode, ownedNodes, node));\n\n  return ownedNodes;\n}\n\nfunction getOwnedNodes(node: Node, container: Node) {\n  const ownedNodes = new Set<Node>();\n\n  if (!isElement(node) || !isElement(container)) {\n    return ownedNodes;\n  }\n\n  addOwnedNodes(node, ownedNodes, container);\n\n  return ownedNodes;\n}\n\nfunction growTree(\n  node: Node,\n  tree: Omit<\n    AccessibilityNodeTree,\n    \"accessibleAttributeLabels\" | \"accessibleAttributeToLabelMap\"\n  >,\n  {\n    alternateReadingOrderMap,\n    container,\n    ownedNodes,\n    visitedNodes,\n  }: AccessibilityContext\n): AccessibilityNodeTree {\n  /**\n   * Authors MUST NOT create circular references with aria-owns. In the case of\n   * authoring error with aria-owns, the user agent MAY ignore some aria-owns\n   * element references in order to build a consistent model of the content.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-owns\n   */\n  if (visitedNodes.has(node)) {\n    return tree;\n  }\n\n  visitedNodes.add(node);\n\n  const parentDialog = isDialogRole(tree.role)\n    ? (tree.node as HTMLElement)\n    : tree.parentDialog;\n\n  if (parentDialog) {\n    tree.parentDialog = parentDialog;\n  }\n\n  node.childNodes.forEach((childNode) => {\n    if (isHiddenFromAccessibilityTree(childNode)) {\n      return;\n    }\n\n    // REF: https://github.com/w3c/aria/issues/1817#issuecomment-1261602357\n    if (ownedNodes.has(childNode)) {\n      return;\n    }\n\n    const alternateReadingOrderParents = alternateReadingOrderMap.has(childNode)\n      ? // `alternateReadingOrderMap.has(childNode)` null guards here.\n\n        Array.from(alternateReadingOrderMap.get(childNode)!)\n      : [];\n\n    const {\n      accessibleDescription,\n      accessibleName,\n      accessibleValue,\n      allowedAccessibilityChildRoles,\n      childrenPresentational,\n      isExplicitPresentational,\n      isInert,\n      role,\n      spokenRole,\n    } = getNodeAccessibilityData({\n      allowedAccessibilityRoles: tree.allowedAccessibilityChildRoles,\n      inheritedImplicitInert: tree.isInert,\n      inheritedImplicitPresentational: tree.childrenPresentational,\n      node: childNode,\n    });\n\n    const childTree = growTree(\n      childNode,\n      {\n        accessibleDescription,\n        accessibleName,\n        accessibleValue,\n        allowedAccessibilityChildRoles,\n        alternateReadingOrderParents,\n        children: [],\n        childrenPresentational,\n        isInert,\n        node: childNode,\n        parentAccessibilityNodeTree: null, // Added during flattening\n        parent: node,\n        parentDialog,\n        role,\n        spokenRole,\n      },\n      { alternateReadingOrderMap, container, ownedNodes, visitedNodes }\n    );\n\n    if (isExplicitPresentational) {\n      tree.children.push(...childTree.children);\n    } else {\n      tree.children.push(childTree);\n    }\n  });\n\n  /**\n   * If an element has both aria-owns and DOM children then the order of the\n   * child elements with respect to the parent/child relationship is the DOM\n   * children first, then the elements referenced in aria-owns. If the author\n   * intends that the DOM children are not first, then list the DOM children in\n   * aria-owns in the desired order. Authors SHOULD NOT use aria-owns as a\n   * replacement for the DOM hierarchy. If the relationship is represented in\n   * the DOM, do not use aria-owns.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-owns\n   */\n  const ownedChildNodes = getOwnedNodes(node, container);\n\n  ownedChildNodes.forEach((childNode) => {\n    if (isHiddenFromAccessibilityTree(childNode)) {\n      return;\n    }\n\n    const alternateReadingOrderParents = alternateReadingOrderMap.has(childNode)\n      ? // `alternateReadingOrderMap.has(childNode)` null guards here.\n\n        Array.from(alternateReadingOrderMap.get(childNode)!)\n      : [];\n\n    const {\n      accessibleDescription,\n      accessibleName,\n      accessibleValue,\n      allowedAccessibilityChildRoles,\n      childrenPresentational,\n      isInert,\n      isExplicitPresentational,\n      role,\n      spokenRole,\n    } = getNodeAccessibilityData({\n      allowedAccessibilityRoles: tree.allowedAccessibilityChildRoles,\n      inheritedImplicitInert: tree.isInert,\n      inheritedImplicitPresentational: tree.childrenPresentational,\n      node: childNode,\n    });\n\n    const childTree = growTree(\n      childNode,\n      {\n        accessibleDescription,\n        accessibleName,\n        accessibleValue,\n        allowedAccessibilityChildRoles,\n        alternateReadingOrderParents,\n        children: [],\n        childrenPresentational,\n        isInert,\n        node: childNode,\n        parentAccessibilityNodeTree: null, // Added during flattening\n        parent: node,\n        parentDialog,\n        role,\n        spokenRole,\n      },\n      { alternateReadingOrderMap, container, ownedNodes, visitedNodes }\n    );\n\n    if (isExplicitPresentational) {\n      tree.children.push(...childTree.children);\n    } else {\n      tree.children.push(childTree);\n    }\n  });\n\n  return tree;\n}\n\nexport function createAccessibilityTree(\n  node: Node | null\n): AccessibilityNodeTree | null {\n  if (isHiddenFromAccessibilityTree(node)) {\n    return null;\n  }\n\n  const alternateReadingOrderMap = mapAlternateReadingOrder(node);\n  const ownedNodes = getAllOwnedNodes(node);\n  const visitedNodes = new Set<Node>();\n\n  const {\n    accessibleDescription,\n    accessibleName,\n    accessibleValue,\n    allowedAccessibilityChildRoles,\n    childrenPresentational,\n    isInert,\n    role,\n    spokenRole,\n  } = getNodeAccessibilityData({\n    allowedAccessibilityRoles: [],\n    node,\n    inheritedImplicitPresentational: false,\n    inheritedImplicitInert: false,\n  });\n\n  const tree = growTree(\n    node,\n    {\n      accessibleDescription,\n      accessibleName,\n      accessibleValue,\n      allowedAccessibilityChildRoles,\n      alternateReadingOrderParents: [],\n      children: [],\n      childrenPresentational,\n      isInert,\n      node,\n      parentAccessibilityNodeTree: null,\n      parent: null,\n      parentDialog: null,\n      role,\n      spokenRole,\n    },\n    {\n      alternateReadingOrderMap,\n      container: node,\n      ownedNodes,\n      visitedNodes,\n    }\n  );\n\n  return tree;\n}\n","import { AccessibilityNode } from \"../createAccessibilityTree\";\nimport { AriaAttributes } from \"./types\";\n\nexport function matchesRoles(\n  node: AccessibilityNode,\n  roles?: Readonly<string[]>\n) {\n  if (!roles?.length) {\n    return true;\n  }\n\n  return roles.includes(node.role);\n}\n\nexport function matchesAccessibleAttributes(\n  node: AccessibilityNode,\n  ariaAttributes?: Readonly<AriaAttributes>\n) {\n  if (!ariaAttributes) {\n    return true;\n  }\n\n  for (const [name, value] of Object.entries(ariaAttributes)) {\n    if (node.accessibleAttributeToLabelMap[name]?.value !== value) {\n      return false;\n    }\n  }\n\n  return true;\n}\n","import { ARIAAttribute, ARIARole, roles } from \"html-aria\";\nimport { globalStatesAndProperties } from \"../getRole\";\n\nconst ignoreAttributesWithAccessibleValue = new Set([\"aria-placeholder\"]);\n\nconst nonSpecCompliantAttributeMap: Record<\n  string,\n  Record<string, boolean | number | string | null>\n> = {\n  listitem: { \"aria-level\": null },\n  option: { \"aria-selected\": false },\n};\n\nexport const getAttributesByRole = ({\n  accessibleValue,\n  role,\n}: {\n  accessibleValue: string;\n  role: string;\n}): [string, string | null][] => {\n  const {\n    supported: supportedAttributes = [],\n    defaultAttributeValues = {},\n    prohibited: prohibitedAttributes = [],\n  } = roles[role as ARIARole] ?? {};\n\n  const implicitRoleAttributes = {\n    ...defaultAttributeValues,\n    ...nonSpecCompliantAttributeMap[role],\n  };\n\n  const uniqueAttributes = Array.from(\n    new Set([\n      ...Object.keys(implicitRoleAttributes),\n      ...supportedAttributes,\n      ...globalStatesAndProperties,\n    ])\n  )\n    .filter(\n      (attribute) => !prohibitedAttributes.includes(attribute as ARIAAttribute)\n    )\n    .filter(\n      (attribute) =>\n        !accessibleValue || !ignoreAttributesWithAccessibleValue.has(attribute)\n    );\n\n  return uniqueAttributes.map((attribute) => [\n    attribute,\n    attribute in implicitRoleAttributes &&\n    implicitRoleAttributes[attribute] !== null\n      ? implicitRoleAttributes[attribute].toString()\n      : null,\n  ]);\n};\n","import { AccessibilityNode } from \"./createAccessibilityTree\";\n\nexport const getItemText = (\n  accessibilityNode: Pick<\n    AccessibilityNode,\n    \"accessibleName\" | \"accessibleValue\"\n  >\n) => {\n  const { accessibleName, accessibleValue } = accessibilityNode;\n  const announcedValue =\n    accessibleName === accessibleValue ? \"\" : accessibleValue;\n\n  return [accessibleName, announcedValue].filter(Boolean).join(\", \");\n};\n","import { getAccessibleName } from \"../getAccessibleName\";\nimport { getAccessibleValue } from \"../getAccessibleValue\";\nimport { getItemText } from \"../../getItemText\";\nimport { getNodeByIdRef } from \"../../getNodeByIdRef\";\n\ntype ValueOf<T> = T[keyof T];\n\nconst STATE = {\n  BUSY: \"busy\",\n  CHECKED: \"checked\",\n  CURRENT: \"current item\",\n  DISABLED: \"disabled\",\n  EXPANDED: \"expanded\",\n  INVALID: \"invalid\",\n  MODAL: \"modal\",\n  MULTI_SELECTABLE: \"multi-selectable\",\n  PARTIALLY_CHECKED: \"partially checked\",\n  PARTIALLY_PRESSED: \"partially pressed\",\n  PRESSED: \"pressed\",\n  READ_ONLY: \"read only\",\n  REQUIRED: \"required\",\n  SELECTED: \"selected\",\n};\n\n// https://www.w3.org/TR/wai-aria-1.2/#state_prop_def\nconst ariaPropertyToVirtualLabelMap: Record<\n  string,\n  ((mapperArgs: MapperArgs) => string | null) | null\n> = {\n  \"aria-activedescendant\": idRef(\"active descendant\"),\n  \"aria-atomic\": null, // Handled by live region logic\n  \"aria-autocomplete\": token({\n    inline: \"autocomplete inlined\",\n    list: \"autocomplete in list\",\n    both: \"autocomplete inlined and in list\",\n    none: \"no autocomplete\",\n  }),\n  \"aria-braillelabel\": null, // Currently won't do - not implementing a braille screen reader\n  \"aria-brailleroledescription\": null, // Currently won't do - not implementing a braille screen reader\n  \"aria-busy\": state(STATE.BUSY),\n  \"aria-checked\": tristate(STATE.CHECKED, STATE.PARTIALLY_CHECKED),\n  \"aria-colcount\": integer(\"column count\"),\n  \"aria-colindex\": integer(\"column index\"),\n  \"aria-colindextext\": string(\"column index\"),\n  \"aria-colspan\": integer(\"column span\"),\n  \"aria-controls\": idRefs(\"control\", \"controls\"), // Handled by virtual.perform()\n  \"aria-current\": token({\n    page: \"current page\",\n    step: \"current step\",\n    location: \"current location\",\n    date: \"current date\",\n    time: \"current time\",\n    true: STATE.CURRENT,\n    false: `not ${STATE.CURRENT}`,\n  }),\n  \"aria-describedby\": null, // Handled by accessible description\n  \"aria-description\": null, // Handled by accessible description\n  \"aria-details\": idRefs(\"linked details\", \"linked details\", false),\n  \"aria-disabled\": state(STATE.DISABLED),\n  \"aria-dropeffect\": null, // Deprecated in WAI-ARIA 1.1\n  \"aria-errormessage\": errorMessageIdRefs(\"error message\", \"error messages\"),\n  \"aria-expanded\": state(STATE.EXPANDED),\n  \"aria-flowto\": idRefs(\"alternate reading order\", \"alternate reading orders\"), // Handled by virtual.perform()\n  \"aria-grabbed\": null, // Deprecated in WAI-ARIA 1.1\n  \"aria-haspopup\": token({\n    /**\n     * Assistive technologies SHOULD NOT expose the aria-haspopup property if\n     * it has a value of false.\n     *\n     * REF: // https://www.w3.org/TR/wai-aria-1.2/#aria-haspopup\n     */\n    false: null,\n    true: \"has popup menu\",\n    menu: \"has popup menu\",\n    listbox: \"has popup listbox\",\n    tree: \"has popup tree\",\n    grid: \"has popup grid\",\n    dialog: \"has popup dialog\",\n  }),\n  \"aria-hidden\": null, // Excluded from accessibility tree\n  \"aria-invalid\": token({\n    grammar: \"grammatical error detected\",\n    false: `not ${STATE.INVALID}`,\n    spelling: \"spelling error detected\",\n    true: STATE.INVALID,\n  }),\n  \"aria-keyshortcuts\": string(\"key shortcuts\"),\n  \"aria-label\": null, // Handled by accessible name\n  \"aria-labelledby\": null, // Handled by accessible name\n  \"aria-level\": integer(\"level\"),\n  \"aria-live\": null, // Handled by live region logic\n  \"aria-modal\": state(STATE.MODAL),\n  \"aria-multiselectable\": state(STATE.MULTI_SELECTABLE),\n  \"aria-orientation\": token({\n    horizontal: \"orientated horizontally\",\n    vertical: \"orientated vertically\",\n  }),\n  \"aria-owns\": null, // Handled by accessibility tree construction\n  \"aria-placeholder\": string(\"placeholder\"),\n  \"aria-posinset\": integer(\"position\"),\n  \"aria-pressed\": tristate(STATE.PRESSED, STATE.PARTIALLY_PRESSED),\n  \"aria-readonly\": state(STATE.READ_ONLY),\n  \"aria-relevant\": null, // Handled by live region logic\n  \"aria-required\": state(STATE.REQUIRED),\n  \"aria-roledescription\": null, // Handled by accessible description\n  \"aria-rowcount\": integer(\"row count\"),\n  \"aria-rowindex\": integer(\"row index\"),\n  \"aria-rowindextext\": string(\"row index\"),\n  \"aria-rowspan\": integer(\"row span\"),\n  \"aria-selected\": state(STATE.SELECTED),\n  \"aria-setsize\": integer(\"set size\"),\n  \"aria-sort\": token({\n    ascending: \"sorted in ascending order\",\n    descending: \"sorted in descending order\",\n    none: \"no defined sort order\",\n    other: \"non ascending / descending sort order applied\",\n  }),\n  \"aria-valuemax\": number(\"max value\"),\n  \"aria-valuemin\": number(\"min value\"),\n  \"aria-valuenow\": number(\"current value\"),\n  \"aria-valuetext\": string(\"current value\"),\n};\n\ninterface MapperArgs {\n  attributeValue: string;\n  container: Node;\n  negative?: boolean;\n  node?: HTMLElement;\n}\n\nfunction state(stateValue: ValueOf<typeof STATE>) {\n  return function stateMapper({ attributeValue, negative }: MapperArgs) {\n    if (negative) {\n      return attributeValue !== \"false\" ? `not ${stateValue}` : stateValue;\n    }\n\n    return attributeValue !== \"false\" ? stateValue : `not ${stateValue}`;\n  };\n}\n\nfunction errorMessageIdRefs(\n  propertyDescriptionSuffixSingular: string,\n  propertyDescriptionSuffixPlural: string,\n  printCount = true\n) {\n  return function mapper({ attributeValue, container, node }: MapperArgs) {\n    // TODO: use implicit values for aria-invalid:\n    // - spellcheck\n    // - pattern\n    if (node?.getAttribute(\"aria-invalid\") === \"false\") {\n      return \"\";\n    }\n\n    return idRefs(\n      propertyDescriptionSuffixSingular,\n      propertyDescriptionSuffixPlural,\n      printCount\n    )({ attributeValue, container });\n  };\n}\n\nfunction idRefs(\n  propertyDescriptionSuffixSingular: string,\n  propertyDescriptionSuffixPlural: string,\n  printCount = true\n) {\n  return function mapper({ attributeValue, container }: MapperArgs) {\n    const idRefsCount = attributeValue\n      .trim()\n      .split(\" \")\n      .filter(\n        (idRef) => !!container && !!getNodeByIdRef({ container, idRef })\n      ).length;\n\n    if (idRefsCount === 0) {\n      return \"\";\n    }\n\n    return `${printCount ? `${idRefsCount} ` : \"\"}${\n      idRefsCount === 1\n        ? propertyDescriptionSuffixSingular\n        : propertyDescriptionSuffixPlural\n    }`;\n  };\n}\n\nfunction idRef(propertyName: string) {\n  return function mapper({ attributeValue: idRef, container }: MapperArgs) {\n    const node = getNodeByIdRef({ container, idRef });\n\n    if (!node) {\n      return \"\";\n    }\n\n    const accessibleName = getAccessibleName(node);\n    const accessibleValue = getAccessibleValue(node);\n    const itemText = getItemText({ accessibleName, accessibleValue });\n\n    return concat(propertyName)({ attributeValue: itemText, container });\n  };\n}\n\nfunction tristate(\n  stateValue: ValueOf<typeof STATE>,\n  mixedValue: ValueOf<typeof STATE>\n) {\n  return function stateMapper({ attributeValue }: MapperArgs) {\n    if (attributeValue === \"mixed\") {\n      return mixedValue;\n    }\n\n    return attributeValue !== \"false\" ? stateValue : `not ${stateValue}`;\n  };\n}\n\nfunction token(tokenMap: Record<string, string | null>) {\n  return function tokenMapper({ attributeValue }: MapperArgs) {\n    return tokenMap[attributeValue];\n  };\n}\n\nfunction concat(propertyName: string) {\n  return function mapper({ attributeValue }: MapperArgs) {\n    return attributeValue ? `${propertyName} ${attributeValue}` : \"\";\n  };\n}\n\nfunction integer(propertyName: string) {\n  return concat(propertyName);\n}\n\nfunction number(propertyName: string) {\n  return concat(propertyName);\n}\n\nfunction string(propertyName: string) {\n  return concat(propertyName);\n}\n\nexport const mapAttributeNameAndValueToLabel = ({\n  attributeName,\n  attributeValue,\n  container,\n  negative = false,\n  node,\n}: {\n  attributeName: string;\n  attributeValue: string | null;\n  container: Node;\n  negative?: boolean;\n  node: HTMLElement;\n}) => {\n  if (typeof attributeValue !== \"string\") {\n    return null;\n  }\n\n  const mapper = ariaPropertyToVirtualLabelMap[attributeName];\n\n  return mapper?.({ attributeValue, container, negative, node }) ?? null;\n};\n","import { mapAttributeNameAndValueToLabel } from \"./mapAttributeNameAndValueToLabel\";\n\nexport const getLabelFromAriaAttribute = ({\n  attributeName,\n  container,\n  node,\n}: {\n  attributeName: string;\n  container: Node;\n  node: HTMLElement;\n}): { label: string; value: string } => {\n  const attributeValue = node.getAttribute(attributeName);\n\n  return {\n    label:\n      mapAttributeNameAndValueToLabel({\n        attributeName,\n        attributeValue,\n        container,\n        node,\n      }) ?? \"\",\n    value: attributeValue ?? \"\",\n  };\n};\n","import { getLocalName } from \"../../getLocalName\";\nimport { mapAttributeNameAndValueToLabel } from \"./mapAttributeNameAndValueToLabel\";\n\nconst isNotMatchingElement = ({\n  elements,\n  node,\n}: {\n  elements: string[];\n  node: HTMLElement;\n}) => elements.length && !elements.includes(getLocalName(node));\n\nconst isNotMatchingProperties = ({\n  node,\n  properties,\n}: {\n  node: HTMLElement;\n  properties: { key: string; value: string }[];\n}) =>\n  properties.length &&\n  !properties.some(({ key, value }) => node.getAttribute(key) === value);\n\n// REFs:\n// - https://www.w3.org/TR/html-aria/#docconformance-attr\n// - https://www.w3.org/TR/html-aam-1.0/#html-attribute-state-and-property-mappings\nconst ariaToHTMLAttributeMapping: Record<\n  string,\n  Array<{\n    elements?: string[];\n    implicitMissingValue?: string;\n    name: string;\n    negative?: boolean;\n    properties?: { key: string; value: string }[];\n    value?: string;\n  }>\n> = {\n  \"aria-autocomplete\": [\n    { elements: [\"form\"], name: \"autocomplete\" },\n    { elements: [\"input\", \"select\", \"textarea\"], name: \"autocomplete\" },\n  ],\n  \"aria-checked\": [\n    {\n      elements: [\"input\"],\n      implicitMissingValue: \"false\",\n      name: \"checked\",\n      properties: [\n        { key: \"type\", value: \"checkbox\" },\n        { key: \"type\", value: \"radio\" },\n      ],\n    },\n    {\n      value: \"mixed\",\n      name: \"indeterminate\",\n    },\n  ],\n  \"aria-colspan\": [{ elements: [\"td\", \"th\"], name: \"colspan\" }],\n  \"aria-controls\": [\n    {\n      elements: [\"input\"],\n      name: \"list\",\n    },\n  ],\n  \"aria-disabled\": [\n    {\n      elements: [\"button\", \"input\", \"optgroup\", \"option\", \"select\", \"textarea\"],\n      name: \"disabled\",\n    },\n    {\n      // TODO: Form controls within a valid legend child element of a fieldset\n      // with a disabled attribute do not become disabled.\n      elements: [\"fieldset\"],\n      name: \"disabled\",\n    },\n  ],\n\n  // TODO: Set properties on the summary element.\n  // REF: https://www.w3.org/TR/html-aam-1.0/#att-open-details\n  // \"aria-expanded\": [{ elements: [\"details\"], name: \"open\" }],\n\n  // TODO: Set properties on the dialog element.\n  // REF: https://www.w3.org/TR/html-aam-1.0/#att-open-dialog\n\n  // Not announced, indeed it will be hidden from the accessibility tree.\n  // \"aria-hidden\": [{ name: \"hidden\" }],\n\n  \"aria-invalid\": [\n    // TODO: If the value doesn't match the pattern: aria-invalid=\"true\";\n    // Otherwise, aria-invalid=\"false\"\n    // REF: https://www.w3.org/TR/html-aam-1.0/#att-pattern\n    // { elements: [\"input\"], name: \"pattern\" },\n    // TODO: aria-invalid=\"spelling\" or grammar\n    // REF: https://www.w3.org/TR/html-aam-1.0/#att-spellcheck\n    // { elements: [\"input\"], name: \"spellcheck\" },\n  ],\n\n  \"aria-multiselectable\": [{ elements: [\"select\"], name: \"multiple\" }],\n  \"aria-placeholder\": [\n    { elements: [\"input\", \"textarea\"], name: \"placeholder\" },\n  ],\n  \"aria-valuemax\": [\n    { elements: [\"input\"], name: \"max\" },\n    { elements: [\"meter\", \"progress\"], name: \"max\" },\n  ],\n  \"aria-valuemin\": [\n    { elements: [\"input\"], name: \"min\" },\n    { elements: [\"meter\", \"progress\"], name: \"min\" },\n  ],\n  \"aria-valuenow\": [{ elements: [\"meter\", \"progress\"], name: \"value\" }],\n  \"aria-readonly\": [\n    { elements: [\"input\", \"textarea\"], name: \"readonly\" },\n    { name: \"contenteditable\", negative: true },\n  ],\n  \"aria-required\": [\n    { elements: [\"input\", \"select\", \"textarea\"], name: \"required\" },\n  ],\n  \"aria-rowspan\": [{ elements: [\"td\", \"th\"], name: \"rowspan\" }],\n  \"aria-selected\": [{ elements: [\"option\"], name: \"selected\" }],\n};\n\nexport const getLabelFromHtmlEquivalentAttribute = ({\n  attributeName,\n  container,\n  node,\n}: {\n  attributeName: string;\n  container: Node;\n  node: HTMLElement;\n}): { label: string; value: string } => {\n  const htmlAttribute = ariaToHTMLAttributeMapping[attributeName];\n\n  if (!htmlAttribute?.length) {\n    return { label: \"\", value: \"\" };\n  }\n\n  for (const {\n    elements = [],\n    implicitMissingValue,\n    name,\n    negative = false,\n    properties = [],\n    value,\n  } of htmlAttribute) {\n    if (isNotMatchingElement({ elements, node })) {\n      continue;\n    }\n\n    if (isNotMatchingProperties({ node, properties })) {\n      continue;\n    }\n\n    const attributeValue = node.hasAttribute(name)\n      ? value ?? node.getAttribute(name)!\n      : node.hasAttribute(attributeName)\n      ? null\n      : implicitMissingValue ?? null;\n\n    const label = mapAttributeNameAndValueToLabel({\n      attributeName,\n      attributeValue,\n      container,\n      negative,\n      node,\n    });\n\n    if (label) {\n      return { label, value: attributeValue ?? \"\" };\n    }\n  }\n\n  return { label: \"\", value: \"\" };\n};\n","import type { AccessibilityNodeTree } from \"../../../createAccessibilityTree\";\n\n/**\n * If the DOM ancestry accurately represents the level, the user agent can\n * calculate the level of an item from the document structure. This attribute\n * can be used to provide an explicit indication of the level when that is\n * not possible to calculate from the document structure or the aria-owns\n * attribute. User agent support for automatic calculation of level may vary;\n * authors SHOULD test with user agents and assistive technologies to\n * determine whether this attribute is needed. If the author intends for the\n * user agent to calculate the level, the author SHOULD omit this attribute.\n *\n * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-level\n */\nexport const getLevelFromDocumentStructure = ({\n  level = 1,\n  role,\n  tree,\n}: {\n  level?: number;\n  role: string;\n  tree: AccessibilityNodeTree | null;\n}): string => {\n  if (!tree) {\n    return `${level}`;\n  }\n\n  if (tree.role === role) {\n    level++;\n  }\n\n  const parentTree = tree.parentAccessibilityNodeTree;\n\n  if (!parentTree) {\n    return `${level}`;\n  }\n\n  return getLevelFromDocumentStructure({\n    role,\n    tree: parentTree,\n    level,\n  });\n};\n","import type { AccessibilityNodeTree } from \"../../../createAccessibilityTree\";\nimport { isElement } from \"../../../isElement\";\n\nconst getFirstNestedChildrenByRole = ({\n  role,\n  tree,\n}: {\n  role: string;\n  tree: AccessibilityNodeTree;\n}): AccessibilityNodeTree[] =>\n  tree.children.flatMap((child) => {\n    if (child.role === role) {\n      return child;\n    }\n\n    return getFirstNestedChildrenByRole({ role, tree: child });\n  });\n\nconst getParentByRole = ({\n  role,\n  tree,\n}: {\n  role: string;\n  tree: AccessibilityNodeTree;\n}): AccessibilityNodeTree => {\n  let parentTree = tree;\n\n  while (parentTree.role !== role && parentTree.parentAccessibilityNodeTree) {\n    parentTree = parentTree.parentAccessibilityNodeTree;\n  }\n\n  return parentTree;\n};\n\nconst getSiblingsByRoleAndLevel = ({\n  role,\n  parentRole = role,\n  tree,\n}: {\n  role: string;\n  parentRole?: string;\n  tree: AccessibilityNodeTree;\n}): AccessibilityNodeTree[] => {\n  const parentTree = getParentByRole({ role: parentRole, tree });\n\n  return getFirstNestedChildrenByRole({ role, tree: parentTree });\n};\n\nconst getFormOwnerTree = ({ tree }: { tree: AccessibilityNodeTree }) =>\n  getParentByRole({ role: \"form\", tree });\n\nconst getRadioInputsByName = ({\n  name,\n  tree,\n}: {\n  name: string;\n  tree: AccessibilityNodeTree;\n}): AccessibilityNodeTree[] =>\n  tree.children.flatMap((child) => {\n    if (isElement(child.node) && child.node.getAttribute(\"name\") === name) {\n      return child;\n    }\n\n    return getRadioInputsByName({ name, tree: child });\n  });\n\n/**\n * The radio button group that contains an input element a also contains all\n * the other input elements b that fulfill all of the following conditions:\n *\n * - The input element b's type attribute is in the Radio Button state.\n * - Either a and b have the same form owner, or they both have no form owner.\n * - Both a and b are in the same tree.\n * - They both have a name attribute, their name attributes are not empty, and\n *   the value of a's name attribute equals the value of b's name attribute.\n *\n * REF: https://html.spec.whatwg.org/multipage/input.html#radio-button-group\n */\nconst getRadioGroup = ({\n  node,\n  tree,\n}: {\n  node: HTMLElement;\n  tree: AccessibilityNodeTree;\n}) => {\n  /**\n   * Authors SHOULD ensure that elements with role radio are explicitly grouped\n   * in order to indicate which ones affect the same value. This is achieved by\n   * enclosing the radio elements in an element with role radiogroup. If it is\n   * not possible to make the radio buttons DOM children of the radiogroup,\n   * authors SHOULD use the aria-owns attribute on the radiogroup element to\n   * indicate the relationship to its children.\n   */\n  if (node.localName !== \"input\") {\n    return getSiblingsByRoleAndLevel({\n      role: \"radio\",\n      parentRole: \"radiogroup\",\n      tree,\n    });\n  }\n\n  if (!node.hasAttribute(\"name\")) {\n    return [];\n  }\n\n  const name = node.getAttribute(\"name\")!;\n\n  if (!name) {\n    return [];\n  }\n\n  const formOwnerTree = getFormOwnerTree({ tree });\n\n  return getRadioInputsByName({ name, tree: formOwnerTree });\n};\n\nconst getChildrenByRole = ({\n  role,\n  tree,\n}: {\n  role: string;\n  tree: AccessibilityNodeTree;\n}): AccessibilityNodeTree[] =>\n  tree.children.filter((child) => child.role === role);\n\n/**\n * aria-level, aria-posinset, and aria-setsize are all 1-based. When the\n * property is not present or is \"0\", it indicates the property is not\n * computed or not supported. If any of these properties are specified by the\n * author as either \"0\" or a negative number, user agents SHOULD use \"1\"\n * instead.\n *\n * If aria-level is not provided or inherited for an element of role treeitem\n * or comment, user agents implementing IAccessible2 or ATK/AT-SPI MUST\n * compute it by following the explicit or computed RELATION_NODE_CHILD_OF\n * relations.\n *\n * If aria-posinset and aria-setsize are not provided, user agents MUST\n * compute them as follows:\n *\n * - for role=\"treeitem\" and role=\"comment\", walk the tree backward and\n * forward until the explicit or computed level becomes less than the current\n * item's level. Count items only if they are at the same level as the\n * current item.\n * - Otherwise, if the role supports aria-posinset and aria-setsize, process\n * the parent (DOM parent or parent defined by aria-owns), counting items\n * that have the same role.\n * - Because these value are 1-based, include the current item in the\n * computation. For aria-posinset, include the current item and other group\n * items if they are before the current item in the DOM. For aria-setsize,\n * add to that the number of items in the same group after the current item\n * in the DOM.\n *\n * If the author provides one or more of aria-setsize and aria-posinset, it\n * is the author's responsibility to supply them for all elements in the set.\n * User agent correction of missing values in this case is not defined.\n *\n * REF: https://www.w3.org/TR/core-aam-1.2/#mapping_additional_position\n */\nexport const getSet = ({\n  node,\n  role,\n  tree,\n}: {\n  node: HTMLElement;\n  tree: AccessibilityNodeTree;\n  role: string;\n}): Pick<AccessibilityNodeTree, \"node\">[] => {\n  if (role === \"treeitem\") {\n    return getSiblingsByRoleAndLevel({ role, tree });\n  }\n\n  /**\n   * With aria-setsize value reflecting number of type=radio input elements\n   * within the radio button group and aria-posinset value reflecting the\n   * elements position within the radio button group.\n   *\n   * REF: https://www.w3.org/TR/html-aam-1.0/#el-input-radio\n   */\n  if (role === \"radio\") {\n    return getRadioGroup({ node, tree });\n  }\n\n  return getChildrenByRole({\n    role,\n    tree,\n  });\n};\n","import type { AccessibilityNodeTree } from \"../../../createAccessibilityTree\";\n\nexport const hasTreegridAncestor = (\n  tree: AccessibilityNodeTree | null\n): boolean => {\n  if (!tree) {\n    return false;\n  }\n\n  if (tree.role === \"treegrid\") {\n    return true;\n  }\n\n  if (!tree.parentAccessibilityNodeTree) {\n    return false;\n  }\n\n  return hasTreegridAncestor(tree.parentAccessibilityNodeTree);\n};\n","import type { AccessibilityNodeTree } from \"../../../createAccessibilityTree\";\nimport { getLevelFromDocumentStructure } from \"./getLevelFromDocumentStructure\";\nimport { getLocalName } from \"../../../getLocalName\";\nimport { getSet } from \"./getSet\";\nimport { hasTreegridAncestor } from \"./hasTreegridAncestor\";\nimport { mapAttributeNameAndValueToLabel } from \"../mapAttributeNameAndValueToLabel\";\n\nconst headingLocalNameToLevelMap: Record<string, string> = {\n  h1: \"1\",\n  h2: \"2\",\n  h3: \"3\",\n  h4: \"4\",\n  h5: \"5\",\n  h6: \"6\",\n};\n\nconst getNodeSet = ({\n  node,\n  role,\n  tree,\n}: {\n  node: HTMLElement;\n  tree: AccessibilityNodeTree | null;\n  role: string;\n}): Pick<AccessibilityNodeTree, \"node\">[] | null => {\n  if (!tree) {\n    return null;\n  }\n\n  /**\n   * When an article is in the context of a feed, the author MAY specify\n   * values for aria-posinset and aria-setsize.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#article\n   *\n   * This is interpreted as the author being allowed to specify a value when\n   * nested in a feed, but there are no requirements in the specifications\n   * for an article role to expose an implicit value, even within a feed.\n   */\n  if (role === \"article\") {\n    return null;\n  }\n\n  /**\n   * While the row role can be used in a table, grid, or treegrid, the semantics\n   * of aria-expanded, aria-posinset, aria-setsize, and aria-level are only\n   * applicable to the hierarchical structure of an interactive tree grid.\n   * Therefore, authors MUST NOT apply aria-expanded, aria-posinset,\n   * aria-setsize, and aria-level to a row that descends from a table or grid,\n   * and user agents SHOULD NOT expose any of these four properties to assistive\n   * technologies unless the row descends from a treegrid.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#row\n   */\n  if (role === \"row\" && !hasTreegridAncestor(tree)) {\n    return null;\n  }\n\n  return getSet({\n    node,\n    role,\n    tree,\n  });\n};\n\nconst levelItemRoles = new Set([\"listitem\", \"treeitem\"]);\n\ntype Mapper = ({\n  node,\n  tree,\n  role,\n}: {\n  node: HTMLElement;\n  tree: AccessibilityNodeTree | null;\n  role: string;\n}) => string;\n\nconst mapHtmlElementAriaToImplicitValue: Record<string, Mapper> = {\n  /**\n   * Used in Roles:\n   *\n   * - heading\n   * - listitem\n   * - row\n   *\n   * Inherits into Roles:\n   *\n   * - treeitem\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-level\n   */\n  \"aria-level\": ({ role, tree, node }) => {\n    if (role === \"heading\") {\n      const localName = getLocalName(node);\n\n      return headingLocalNameToLevelMap[localName];\n    }\n\n    /**\n     * While the row role can be used in a table, grid, or treegrid, the semantics\n     * of aria-expanded, aria-posinset, aria-setsize, and aria-level are only\n     * applicable to the hierarchical structure of an interactive tree grid.\n     * Therefore, authors MUST NOT apply aria-expanded, aria-posinset,\n     * aria-setsize, and aria-level to a row that descends from a table or grid,\n     * and user agents SHOULD NOT expose any of these four properties to assistive\n     * technologies unless the row descends from a treegrid.\n     *\n     * REF: https://www.w3.org/TR/wai-aria-1.2/#row\n     */\n    if (role === \"row\" && hasTreegridAncestor(tree)) {\n      return getLevelFromDocumentStructure({\n        role,\n        tree,\n      });\n    }\n\n    if (levelItemRoles.has(role)) {\n      return getLevelFromDocumentStructure({\n        role,\n        tree,\n      });\n    }\n\n    return \"\";\n  },\n  /**\n   * Used in Roles:\n   *\n   * - article\n   * - listitem\n   * - menuitem\n   * - option\n   * - radio\n   * - row\n   * - tab\n   *\n   * Inherits into Roles:\n   *\n   * - menuitemcheckbox\n   * - menuitemradio\n   * - treeitem\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-posinset\n   */\n  \"aria-posinset\": ({ node, tree, role }) => {\n    const nodeSet = getNodeSet({ node, role, tree });\n\n    if (!nodeSet?.length) {\n      return \"\";\n    }\n\n    const index = nodeSet.findIndex((child) => child.node === node);\n\n    return `${index + 1}`;\n  },\n  /**\n   * Used in Roles:\n   *\n   * - article\n   * - listitem\n   * - menuitem\n   * - option\n   * - radio\n   * - row\n   * - tab\n   *\n   * Inherits into Roles:\n   *\n   * - menuitemcheckbox\n   * - menuitemradio\n   * - treeitem\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-setsize\n   */\n  \"aria-setsize\": ({ node, tree, role }) => {\n    const nodeSet = getNodeSet({ node, role, tree });\n\n    if (!nodeSet?.length) {\n      return \"\";\n    }\n\n    return `${nodeSet.length}`;\n  },\n};\n\nexport const getLabelFromImplicitHtmlElementValue = ({\n  attributeName,\n  container,\n  node,\n  parentAccessibilityNodeTree,\n  role,\n}: {\n  attributeName: string;\n  container: Node;\n  node: HTMLElement;\n  parentAccessibilityNodeTree: AccessibilityNodeTree | null;\n  role: string;\n}): { label: string; value: string } => {\n  const implicitValue = mapHtmlElementAriaToImplicitValue[attributeName]?.({\n    node,\n    tree: parentAccessibilityNodeTree,\n    role,\n  });\n\n  return {\n    label:\n      mapAttributeNameAndValueToLabel({\n        attributeName,\n        attributeValue: implicitValue,\n        container,\n        node,\n      }) ?? \"\",\n    value: implicitValue ?? \"\",\n  };\n};\n","const percentageBasedValueRoles = new Set([\"progressbar\", \"scrollbar\"]);\n\nconst isNumberLike = (value: string) => {\n  return !isNaN(parseFloat(value));\n};\n\nconst toNumber = (value: string) => parseFloat(value);\nconst toPercentageLabel = (value: number | string) => `current value ${value}%`;\n\n/**\n * If aria-valuetext is specified, assistive technologies render that instead\n * of the value of aria-valuenow.\n *\n * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-valuenow\n */\nexport const postProcessAriaValueNow = ({\n  max,\n  min,\n  role,\n  value,\n}: {\n  max: string;\n  min: string;\n  role: string;\n  value: string;\n}) => {\n  if (!percentageBasedValueRoles.has(role)) {\n    return value;\n  }\n\n  if (!isNumberLike(value)) {\n    return value;\n  }\n\n  /**\n   * For progressbar elements and scrollbar elements, assistive technologies\n   * SHOULD render the value to users as a percent, calculated as a position\n   * on the range from aria-valuemin to aria-valuemax if both are defined,\n   * otherwise the actual value with a percent indicator. For elements with\n   * role slider and spinbutton, assistive technologies SHOULD render the\n   * actual value to users.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-valuenow\n   */\n\n  if (isNumberLike(max) && isNumberLike(min)) {\n    const percentage = +(\n      ((toNumber(value) - toNumber(min)) / (toNumber(max) - toNumber(min))) *\n      100\n    ).toFixed(2);\n\n    return toPercentageLabel(percentage);\n  }\n\n  return toPercentageLabel(value);\n};\n","import type { AccessibleAttributeToLabelMap } from \".//index\";\nimport { postProcessAriaValueNow } from \"./postProcessAriaValueNow\";\n\nconst priorityReplacementMap: [string, string][] = [\n  [\"aria-colindextext\", \"aria-colindex\"],\n  [\"aria-rowindextext\", \"aria-rowindex\"],\n  /**\n   * If aria-valuetext is specified, assistive technologies SHOULD render that\n   * value instead of the value of aria-valuenow.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-valuetext\n   */\n  [\"aria-valuetext\", \"aria-valuenow\"],\n];\n\nexport const postProcessLabels = ({\n  labels,\n  role,\n}: {\n  labels: AccessibleAttributeToLabelMap;\n  role: string;\n}) => {\n  for (const [preferred, dropped] of priorityReplacementMap) {\n    if (labels[preferred] && labels[dropped]) {\n      labels[dropped].value = \"\";\n    }\n  }\n\n  if (labels[\"aria-valuenow\"]) {\n    labels[\"aria-valuenow\"].label = postProcessAriaValueNow({\n      value: labels[\"aria-valuenow\"].value,\n      min: labels[\"aria-valuemin\"]?.value,\n      max: labels[\"aria-valuemax\"]?.value,\n      role,\n    });\n  }\n\n  if (labels[\"aria-setsize\"]?.value === \"-1\") {\n    /**\n     * If the total number of items is unknown, authors SHOULD set the value of\n     * aria-setsize to -1.\n     *\n     * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-setsize\n     */\n    labels[\"aria-setsize\"].label = \"set size unknown\";\n  }\n\n  return labels;\n};\n","import type { AccessibilityNodeTree } from \"../../createAccessibilityTree\";\nimport { getAttributesByRole } from \"./getAttributesByRole\";\nimport { getLabelFromAriaAttribute } from \"./getLabelFromAriaAttribute\";\nimport { getLabelFromHtmlEquivalentAttribute } from \"./getLabelFromHtmlEquivalentAttribute\";\nimport { getLabelFromImplicitHtmlElementValue } from \"./getLabelFromImplicitHtmlElementValue/index\";\nimport { isElement } from \"../../isElement\";\nimport { mapAttributeNameAndValueToLabel } from \"./mapAttributeNameAndValueToLabel\";\nimport { postProcessLabels } from \"./postProcessLabels\";\n\nexport type AccessibleAttributeToLabelMap = Record<\n  string,\n  { label: string; value: string }\n>;\n\nexport const getAccessibleAttributeLabels = ({\n  accessibleValue,\n  alternateReadingOrderParents,\n  container,\n  node,\n  parentAccessibilityNodeTree,\n  role,\n}: {\n  accessibleValue: string;\n  alternateReadingOrderParents: Node[];\n  container: Node;\n  node: Node;\n  parentAccessibilityNodeTree: AccessibilityNodeTree | null;\n  role: string;\n}): {\n  accessibleAttributeLabels: string[];\n  accessibleAttributeToLabelMap: AccessibleAttributeToLabelMap;\n} => {\n  if (!isElement(node)) {\n    return {\n      accessibleAttributeLabels: [],\n      accessibleAttributeToLabelMap: {},\n    };\n  }\n\n  const labels: AccessibleAttributeToLabelMap = {};\n  const attributes = getAttributesByRole({ accessibleValue, role });\n\n  attributes.forEach(([attributeName, implicitAttributeValue]) => {\n    const {\n      label: labelFromHtmlEquivalentAttribute,\n      value: valueFromHtmlEquivalentAttribute,\n    } = getLabelFromHtmlEquivalentAttribute({\n      attributeName,\n      container,\n      node,\n    });\n\n    if (labelFromHtmlEquivalentAttribute) {\n      labels[attributeName] = {\n        label: labelFromHtmlEquivalentAttribute,\n        value: valueFromHtmlEquivalentAttribute,\n      };\n\n      return;\n    }\n\n    const { label: labelFromAriaAttribute, value: valueFromAriaAttribute } =\n      getLabelFromAriaAttribute({\n        attributeName,\n        container,\n        node,\n      });\n\n    if (labelFromAriaAttribute) {\n      labels[attributeName] = {\n        label: labelFromAriaAttribute,\n        value: valueFromAriaAttribute,\n      };\n\n      return;\n    }\n\n    const {\n      label: labelFromImplicitHtmlElementValue,\n      value: valueFromImplicitHtmlElementValue,\n    } = getLabelFromImplicitHtmlElementValue({\n      attributeName,\n      container,\n      node,\n      parentAccessibilityNodeTree,\n      role,\n    });\n\n    if (labelFromImplicitHtmlElementValue) {\n      labels[attributeName] = {\n        label: labelFromImplicitHtmlElementValue,\n        value: valueFromImplicitHtmlElementValue,\n      };\n\n      return;\n    }\n\n    const labelFromImplicitAriaAttributeValue = mapAttributeNameAndValueToLabel(\n      {\n        attributeName,\n        attributeValue: implicitAttributeValue,\n        container,\n        node,\n      }\n    );\n\n    if (labelFromImplicitAriaAttributeValue) {\n      labels[attributeName] = {\n        label: labelFromImplicitAriaAttributeValue,\n        value: implicitAttributeValue ?? \"\",\n      };\n\n      return;\n    }\n  });\n\n  const accessibleAttributeToLabelMap = postProcessLabels({ labels, role });\n  const accessibleAttributeLabels = Object.values(accessibleAttributeToLabelMap)\n    .map(({ label }) => label)\n    .filter(Boolean);\n\n  /**\n   * aria-flowto MUST requirements:\n   *\n   * The reading order goes both directions, and a user needs to be aware of the\n   * alternate reading order so that they can invoke the functionality.\n   *\n   * The reading order goes both directions, and a user needs to be able to\n   * travel backwards through their chosen reading order.\n   *\n   * REF: https://a11ysupport.io/tech/aria/aria-flowto_attribute\n   */\n  if (alternateReadingOrderParents.length > 0) {\n    accessibleAttributeLabels.push(\n      `${alternateReadingOrderParents.length} previous alternate reading ${\n        alternateReadingOrderParents.length === 1 ? \"order\" : \"orders\"\n      }`\n    );\n  }\n\n  return { accessibleAttributeLabels, accessibleAttributeToLabelMap };\n};\n","import type {\n  AccessibilityNode,\n  AccessibilityNodeTree,\n} from \"./createAccessibilityTree\";\nimport { getAccessibleAttributeLabels } from \"./getNodeAccessibilityData/getAccessibleAttributeLabels\";\nimport type { HTMLElementWithValue } from \"./getNodeAccessibilityData/getAccessibleValue\";\n\nexport const END_OF_ROLE_PREFIX = \"end of\";\nexport const END_OF_NO_ROLE_PREFIX = \"end\";\n\nconst TEXT_NODE = 3;\n\nfunction shouldIgnoreChildren(tree: AccessibilityNodeTree) {\n  const { accessibleName, children, node } = tree;\n\n  if (!accessibleName) {\n    return false;\n  }\n\n  if (children.length > 1) {\n    return false;\n  }\n\n  if (children.every((child) => child.node.nodeType !== TEXT_NODE)) {\n    return false;\n  }\n\n  return (\n    accessibleName ===\n    (\n      node.textContent ||\n      `${(node as HTMLElementWithValue).value}` ||\n      \"\"\n    )?.trim()\n  );\n}\n\nexport function flattenTree(\n  container: Node,\n  tree: AccessibilityNodeTree,\n  parentAccessibilityNodeTree: AccessibilityNodeTree | null\n): AccessibilityNode[] {\n  const { children, ...treeNode } = tree;\n\n  treeNode.parentAccessibilityNodeTree = parentAccessibilityNodeTree;\n\n  const { accessibleAttributeLabels, accessibleAttributeToLabelMap } =\n    getAccessibleAttributeLabels({\n      ...treeNode,\n      container,\n    });\n\n  const treeNodeWithAttributeLabels = {\n    ...treeNode,\n    accessibleAttributeLabels,\n    accessibleAttributeToLabelMap,\n  };\n\n  const isAnnounced =\n    !treeNodeWithAttributeLabels.isInert &&\n    (!!treeNodeWithAttributeLabels.accessibleName ||\n      !!treeNodeWithAttributeLabels.accessibleDescription ||\n      treeNodeWithAttributeLabels.accessibleAttributeLabels.length > 0 ||\n      !!treeNodeWithAttributeLabels.spokenRole);\n\n  const ignoreChildren = shouldIgnoreChildren(tree);\n\n  const flattenedTree = ignoreChildren\n    ? []\n    : children.flatMap((child) =>\n        flattenTree(container, child, {\n          ...treeNodeWithAttributeLabels,\n          children,\n        })\n      );\n\n  const isRoleContainer =\n    !!flattenedTree.length && !ignoreChildren && isAnnounced;\n\n  if (isAnnounced) {\n    flattenedTree.unshift(treeNodeWithAttributeLabels);\n  }\n\n  if (isRoleContainer) {\n    flattenedTree.push({\n      ...treeNodeWithAttributeLabels,\n      spokenRole: treeNodeWithAttributeLabels.spokenRole\n        ? `${END_OF_ROLE_PREFIX} ${treeNodeWithAttributeLabels.spokenRole}`\n        : END_OF_NO_ROLE_PREFIX,\n    });\n  }\n\n  return flattenedTree;\n}\n","import { matchesAccessibleAttributes, matchesRoles } from \"./nodeMatchers\";\nimport { AccessibilityNode } from \"../createAccessibilityTree\";\nimport type { AriaAttributes } from \"./types\";\nimport { END_OF_ROLE_PREFIX } from \"../flattenTree\";\n\nexport interface GetIndexFilters {\n  /** Matches a node only if the node has any of these roles */\n  roles?: Readonly<string[]>;\n\n  /** Matches a node only if the node has **all** of these aria attributes */\n  ariaAttributes?: Readonly<AriaAttributes>;\n}\n\nexport function getIndexByRoleAndAttributes({\n  filters,\n  reorderedTree,\n  tree,\n}: {\n  filters: GetIndexFilters;\n  reorderedTree: AccessibilityNode[];\n  tree: AccessibilityNode[];\n}) {\n  const accessibilityNode = reorderedTree.find(\n    (node) =>\n      !node.spokenRole.startsWith(END_OF_ROLE_PREFIX) &&\n      matchesRoles(node, filters.roles) &&\n      matchesAccessibleAttributes(node, filters.ariaAttributes)\n  );\n\n  if (!accessibilityNode) {\n    return null;\n  }\n\n  return tree.findIndex((node) => node === accessibilityNode);\n}\n","import {\n  getIndexByRoleAndAttributes,\n  type GetIndexFilters,\n} from \"./getIndexByRoleAndAttributes\";\nimport type { VirtualCommandArgs } from \"./types\";\n\nexport type GetNextIndexArgs = Omit<VirtualCommandArgs, \"container\">;\n\nexport function getNextIndexByRoleAndAttributes(\n  filters: Readonly<GetIndexFilters>\n) {\n  return function getNextIndexByRoleAndAttributesInner({\n    currentIndex,\n    tree,\n  }: GetNextIndexArgs) {\n    const reorderedTree = tree\n      .slice(currentIndex + 1)\n      .concat(tree.slice(0, currentIndex + 1));\n\n    return getIndexByRoleAndAttributes({ filters, reorderedTree, tree });\n  };\n}\n","import {\n  getIndexByRoleAndAttributes,\n  type GetIndexFilters,\n} from \"./getIndexByRoleAndAttributes\";\nimport type { GetNextIndexArgs } from \"./getNextIndexByRoleAndAttributes\";\n\ntype GetPreviousIndexArgs = GetNextIndexArgs;\n\nexport function getPreviousIndexByRoleAndAttributes(\n  filters: Readonly<GetIndexFilters>\n) {\n  return function getPreviousIndexInner({\n    currentIndex,\n    tree,\n  }: GetPreviousIndexArgs) {\n    const reorderedTree = tree\n      .slice(0, currentIndex)\n      .reverse()\n      .concat(tree.slice(currentIndex).reverse());\n\n    return getIndexByRoleAndAttributes({ filters, reorderedTree, tree });\n  };\n}\n","import { isElement } from \"./isElement\";\n\nexport const getElementFromNode = (node: Node): HTMLElement => {\n  return isElement(node) ? node : node.parentElement!;\n};\n","import { AccessibilityNode } from \"../createAccessibilityTree\";\nimport { getElementFromNode } from \"../getElementFromNode\";\n\nexport function getElementNode(\n  accessibilityNode: AccessibilityNode\n): HTMLElement {\n  const { node } = accessibilityNode;\n\n  return getElementFromNode(node);\n}\n","import { getElementNode } from \"./getElementNode\";\nimport { getIdRefsByAttribute } from \"../getIdRefsByAttribute\";\nimport { getNodeByIdRef } from \"../getNodeByIdRef\";\nimport { isElement } from \"../isElement\";\nimport { VirtualCommandArgs } from \"./types\";\n\nexport interface GetNextIndexByIdRefsAttributeArgs extends VirtualCommandArgs {\n  attributeName: string;\n  index?: number;\n}\n\nexport function getNextIndexByIdRefsAttribute({\n  attributeName,\n  index = 0,\n  container,\n  currentIndex,\n  tree,\n}: GetNextIndexByIdRefsAttributeArgs) {\n  if (!isElement(container)) {\n    return;\n  }\n\n  // Degree of trust that this isn't called with a current index that can't\n  // actually index the tree.\n   \n  const currentAccessibilityNode = tree.at(currentIndex)!;\n  const currentNode = getElementNode(currentAccessibilityNode);\n\n  const idRefs = getIdRefsByAttribute({\n    attributeName,\n    node: currentNode,\n  });\n\n  const idRef = idRefs[index];\n  const targetNode = getNodeByIdRef({ container, idRef });\n\n  if (!targetNode) {\n    return;\n  }\n\n  const nodeIndex = tree.findIndex(({ node }) => node === targetNode);\n\n  if (nodeIndex !== -1) {\n    return nodeIndex;\n  }\n\n  const nodeIndexByParent = tree.findIndex(\n    ({ parent }) => parent === targetNode\n  );\n\n  if (nodeIndexByParent !== -1) {\n    return nodeIndexByParent;\n  }\n\n  return;\n}\n","import { getNextIndexByIdRefsAttribute } from \"./getNextIndexByIdRefsAttribute\";\nimport { VirtualCommandArgs } from \"./types\";\n\nexport interface JumpToControlledElementCommandArgs extends VirtualCommandArgs {\n  index?: number;\n}\n\n/**\n * aria-controls:\n *\n * Identifies the element (or elements) whose contents or presence\n * are controlled by the current element. See related aria-owns.\n *\n * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-controls\n *\n * MUST requirement:\n *\n * The controlled element might not be close to the element with\n * aria-controls and the user might find it convenient to jump directly to\n * the controlled element.\n *\n * REF: https://a11ysupport.io/tech/aria/aria-controls_attribute\n */\nexport function jumpToControlledElement({\n  index = 0,\n  container,\n  currentIndex,\n  tree,\n}: JumpToControlledElementCommandArgs) {\n  return getNextIndexByIdRefsAttribute({\n    attributeName: \"aria-controls\",\n    index,\n    container,\n    currentIndex,\n    tree,\n  });\n}\n","import { getNextIndexByIdRefsAttribute } from \"./getNextIndexByIdRefsAttribute\";\nimport { VirtualCommandArgs } from \"./types\";\n\n/**\n * aria-details:\n *\n * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-details\n *\n * SHOULD requirement:\n *\n * If the details are not adjacent to the element with aria-details, it might\n * be helpful to jump directly to the reference or have it conveyed.\n *\n * REF: https://a11ysupport.io/tech/aria/aria-details_attribute\n */\nexport function jumpToDetailsElement({\n  container,\n  currentIndex,\n  tree,\n}: VirtualCommandArgs) {\n  return getNextIndexByIdRefsAttribute({\n    attributeName: \"aria-details\",\n    index: 0,\n    container,\n    currentIndex,\n    tree,\n  });\n}\n","import { getNextIndexByIdRefsAttribute } from \"./getNextIndexByIdRefsAttribute\";\nimport { VirtualCommandArgs } from \"./types\";\n\nexport interface JumpToErrorMessageElementCommandArgs\n  extends VirtualCommandArgs {\n  index?: number;\n}\n\n/**\n * aria-errormessage:\n *\n * REFs:\n * - https://www.w3.org/TR/wai-aria-1.2/#aria-errormessage\n * - https://a11ysupport.io/tech/aria/aria-errormessage_attribute\n */\nexport function jumpToErrorMessageElement({\n  index = 0,\n  container,\n  currentIndex,\n  tree,\n}: JumpToErrorMessageElementCommandArgs) {\n  return getNextIndexByIdRefsAttribute({\n    attributeName: \"aria-errormessage\",\n    index,\n    container,\n    currentIndex,\n    tree,\n  });\n}\n","import { getNextIndexByIdRefsAttribute } from \"./getNextIndexByIdRefsAttribute\";\nimport { VirtualCommandArgs } from \"./types\";\n\nexport interface MoveToNextAlternateReadingOrderElement\n  extends VirtualCommandArgs {\n  index?: number;\n}\n\n/**\n * aria-flowto:\n *\n * However, when aria-flowto is provided with multiple ID\n * references, assistive technologies SHOULD present the referenced\n * elements as path choices.\n *\n * In the case of one or more ID references, user agents or assistive\n * technologies SHOULD give the user the option of navigating to any of the\n * targeted elements. The name of the path can be determined by the name of\n * the target element of the aria-flowto attribute. Accessibility APIs can\n * provide named path relationships.\n *\n * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-flowto\n *\n * MUST requirements:\n *\n * A user needs to understand that the current element flows to another element\n * so that they can invoke the functionality.\n *\n * A user needs to be able to follow the alternate reading order.\n *\n * REF: https://a11ysupport.io/tech/aria/aria-flowto_attribute\n */\nexport function moveToNextAlternateReadingOrderElement({\n  index,\n  container,\n  currentIndex,\n  tree,\n}: MoveToNextAlternateReadingOrderElement) {\n  return getNextIndexByIdRefsAttribute({\n    attributeName: \"aria-flowto\",\n    index,\n    container,\n    currentIndex,\n    tree,\n  });\n}\n","import { isElement } from \"../isElement\";\nimport { VirtualCommandArgs } from \"./types\";\n\nexport interface MoveToNextAlternateReadingOrderElement\n  extends VirtualCommandArgs {\n  index?: number;\n}\n\n/**\n * aria-flowto:\n *\n * However, when aria-flowto is provided with multiple ID\n * references, assistive technologies SHOULD present the referenced\n * elements as path choices.\n *\n * In the case of one or more ID references, user agents or assistive\n * technologies SHOULD give the user the option of navigating to any of the\n * targeted elements. The name of the path can be determined by the name of\n * the target element of the aria-flowto attribute. Accessibility APIs can\n * provide named path relationships.\n *\n * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-flowto\n *\n * MUST requirements:\n *\n * The reading order goes both directions, and a user needs to be aware of the\n * alternate reading order so that they can invoke the functionality.\n *\n * The reading order goes both directions, and a user needs to be able to\n * travel backwards through their chosen reading order.\n *\n * REF: https://a11ysupport.io/tech/aria/aria-flowto_attribute\n */\nexport function moveToPreviousAlternateReadingOrderElement({\n  index = 0,\n  container,\n  currentIndex,\n  tree,\n}: MoveToNextAlternateReadingOrderElement) {\n  if (!isElement(container)) {\n    return;\n  }\n\n  // Degree of trust that this isn't called with a current index that can't\n  // actually index the tree.\n   \n  const { alternateReadingOrderParents } = tree.at(currentIndex)!;\n  const targetNode = alternateReadingOrderParents[index];\n\n  if (!targetNode) {\n    return;\n  }\n\n  return tree.findIndex(({ node }) => node === targetNode);\n}\n","import { getNextIndexByRoleAndAttributes } from \"./getNextIndexByRoleAndAttributes\";\nimport { getPreviousIndexByRoleAndAttributes } from \"./getPreviousIndexByRoleAndAttributes\";\nimport { jumpToControlledElement } from \"./jumpToControlledElement\";\nimport { jumpToDetailsElement } from \"./jumpToDetailsElement\";\nimport { jumpToErrorMessageElement } from \"./jumpToErrorMessageElement\";\nimport { moveToNextAlternateReadingOrderElement } from \"./moveToNextAlternateReadingOrderElement\";\nimport { moveToPreviousAlternateReadingOrderElement } from \"./moveToPreviousAlternateReadingOrderElement\";\nimport { VirtualCommandArgs } from \"./types\";\n\nconst quickLandmarkNavigationRoles = [\n  /**\n   * Assistive technologies SHOULD enable users to quickly navigate to\n   * elements with role banner.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#banner\n   */\n  \"banner\",\n\n  /**\n   * Assistive technologies SHOULD enable users to quickly navigate to\n   * elements with role complementary.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#complementary\n   */\n  \"complementary\",\n\n  /**\n   * Assistive technologies SHOULD enable users to quickly navigate to\n   * elements with role contentinfo.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#contentinfo\n   */\n  \"contentinfo\",\n\n  /**\n   * Assistive technologies SHOULD enable users to quickly navigate to\n   * figures.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#figure\n   */\n  \"figure\",\n\n  /**\n   * Assistive technologies SHOULD enable users to quickly navigate to\n   * elements with role form.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#form\n   */\n  \"form\",\n\n  /**\n   * Assistive technologies SHOULD enable users to quickly navigate to\n   * elements with role main.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#main\n   */\n  \"main\",\n\n  /**\n   * Assistive technologies SHOULD enable users to quickly navigate to\n   * elements with role navigation.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#navigation\n   */\n  \"navigation\",\n\n  /**\n   * Assistive technologies SHOULD enable users to quickly navigate to\n   * elements with role region.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#region\n   */\n  \"region\",\n\n  /**\n   * Assistive technologies SHOULD enable users to quickly navigate to\n   * elements with role search.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#search\n   */\n  \"search\",\n] as const;\n\nconst quickAriaRoleNavigationRoles = [\n  ...quickLandmarkNavigationRoles,\n  /**\n   * WAI-ARIA doesn't specify that assistive technologies should enable users\n   * to quickly navigate to elements with role heading. However, it is very\n   * common for assistive technology users to navigate between headings.\n   *\n   * REF:\n   * - https://www.w3.org/TR/wai-aria-1.2/#heading\n   * - https://webaim.org/projects/screenreadersurvey10/#heading\n   * - https://webaim.org/projects/screenreadersurvey10/#finding\n   *\n   * MUST requirements:\n   *\n   * Headings provide an outline of the page and users need to be able to\n   * quickly navigate to different sections of the page.\n   *\n   * REF: https://a11ysupport.io/tech/aria/heading_role\n   */\n  \"heading\",\n  /**\n   * WAI-ARIA doesn't specify that assistive technologies should enable users\n   * to quickly navigate to elements with role link. However, it is very\n   * common for assistive technology users to navigate between links.\n   *\n   * REF:\n   * - https://www.w3.org/TR/wai-aria-1.2/#link\n   * - https://webaim.org/projects/screenreadersurvey10/#finding\n   */\n  \"link\",\n] as const;\n\ninterface QuickAriaRoleNavigationCommands {\n  /**\n   * Move to the next element with a [`banner`](https://www.w3.org/TR/wai-aria-1.2/#banner)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next banner element.\n   *   await virtual.perform(virtual.commands.moveToNextBanner);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextBanner: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a [`banner`](https://www.w3.org/TR/wai-aria-1.2/#banner)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous banner element.\n   *   await virtual.perform(virtual.commands.moveToPreviousBanner);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousBanner: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a [`complementary`](https://www.w3.org/TR/wai-aria-1.2/#complementary)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next complementary element.\n   *   await virtual.perform(virtual.commands.moveToNextComplementary);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextComplementary: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a [`complementary`](https://www.w3.org/TR/wai-aria-1.2/#complementary)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous complementary element.\n   *   await virtual.perform(virtual.commands.moveToPreviousComplementary);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousComplementary: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a [`contentinfo`](https://www.w3.org/TR/wai-aria-1.2/#contentinfo)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next contentinfo element.\n   *   await virtual.perform(virtual.commands.moveToNextContentInfo);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextContentinfo: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a [`contentinfo`](https://www.w3.org/TR/wai-aria-1.2/#contentinfo)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous contentinfo element.\n   *   await virtual.perform(virtual.commands.moveToPreviousContentinfo);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousContentinfo: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a [`figure`](https://www.w3.org/TR/wai-aria-1.2/#figure)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next figure element.\n   *   await virtual.perform(virtual.commands.moveToNextFigure);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextFigure: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a [`figure`](https://www.w3.org/TR/wai-aria-1.2/#figure)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous figure element.\n   *   await virtual.perform(virtual.commands.moveToPreviousFigure);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousFigure: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a [`form`](https://www.w3.org/TR/wai-aria-1.2/#form)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next form element.\n   *   await virtual.perform(virtual.commands.moveToNextForm);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextForm: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a [`form`](https://www.w3.org/TR/wai-aria-1.2/#form)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous form element.\n   *   await virtual.perform(virtual.commands.moveToPreviousForm);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousForm: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a [`main`](https://www.w3.org/TR/wai-aria-1.2/#main)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next main element.\n   *   await virtual.perform(virtual.commands.moveToNextMain);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextMain: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a [`main`](https://www.w3.org/TR/wai-aria-1.2/#main)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous main element.\n   *   await virtual.perform(virtual.commands.moveToPreviousMain);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousMain: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a [`navigation`](https://www.w3.org/TR/wai-aria-1.2/#navigation)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next navigation element.\n   *   await virtual.perform(virtual.commands.moveToNextNavigation);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextNavigation: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a [`navigation`](https://www.w3.org/TR/wai-aria-1.2/#navigation)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous navigation element.\n   *   await virtual.perform(virtual.commands.moveToPreviousNavigation);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousNavigation: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a [`region`](https://www.w3.org/TR/wai-aria-1.2/#region)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next region element.\n   *   await virtual.perform(virtual.commands.moveToNextRegion);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextRegion: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a [`region`](https://www.w3.org/TR/wai-aria-1.2/#region)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous region element.\n   *   await virtual.perform(virtual.commands.moveToPreviousRegion);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousRegion: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a [`search`](https://www.w3.org/TR/wai-aria-1.2/#search)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next search element.\n   *   await virtual.perform(virtual.commands.moveToNextSearch);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextSearch: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a [`search`](https://www.w3.org/TR/wai-aria-1.2/#search)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous search element.\n   *   await virtual.perform(virtual.commands.moveToPreviousSearch);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousSearch: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next heading element.\n   *   await virtual.perform(virtual.commands.moveToNextHeading);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextHeading: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous heading element.\n   *   await virtual.perform(virtual.commands.moveToPreviousHeading);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousHeading: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a [`link`](https://www.w3.org/TR/wai-aria-1.2/#link)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next link element.\n   *   await virtual.perform(virtual.commands.moveToNextLink);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextLink: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a [`link`](https://www.w3.org/TR/wai-aria-1.2/#link)\n   * role.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous link element.\n   *   await virtual.perform(virtual.commands.moveToPreviousLink);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousLink: (args: VirtualCommandArgs) => number | null;\n}\n\nconst quickAriaRoleNavigationCommands: QuickAriaRoleNavigationCommands =\n  quickAriaRoleNavigationRoles.reduce<Record<string, unknown>>(\n    (accumulatedCommands, role) => {\n      // The roles are defined above and all non-empty.\n       \n      const moveToNextCommand = `moveToNext${role\n        .at(0)!\n        .toUpperCase()}${role.slice(1)}`;\n\n      // The roles are defined above and all non-empty.\n       \n      const moveToPreviousCommand = `moveToPrevious${role\n        .at(0)!\n        .toUpperCase()}${role.slice(1)}`;\n\n      return {\n        ...accumulatedCommands,\n        [moveToNextCommand]: getNextIndexByRoleAndAttributes({ roles: [role] }),\n        [moveToPreviousCommand]: getPreviousIndexByRoleAndAttributes({\n          roles: [role],\n        }),\n      };\n    },\n    {}\n  ) as {\n    [K in\n      | `moveToNext${Capitalize<(typeof quickAriaRoleNavigationRoles)[number]>}`\n      | `moveToPrevious${Capitalize<\n          (typeof quickAriaRoleNavigationRoles)[number]\n        >}`]: (args: VirtualCommandArgs) => number | null;\n  };\n\ntype HeadingLevel = \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\";\n\nconst headingLevels: HeadingLevel[] = [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\"];\n\ninterface HeadingLevelNavigationCommands {\n  /**\n   * Move to the next element with a level 1 [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next level 1 heading element.\n   *   await virtual.perform(virtual.commands.moveToNextHeadingLevel1);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextHeadingLevel1: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a level 1 [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous level 1 heading element.\n   *   await virtual.perform(virtual.commands.moveToPreviousHeadingLevel1);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousHeadingLevel1: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a level 2 [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next level 2 heading element.\n   *   await virtual.perform(virtual.commands.moveToNextHeadingLevel2);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextHeadingLevel2: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a level 2 [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous level 2 heading element.\n   *   await virtual.perform(virtual.commands.moveToPreviousHeadingLevel2);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousHeadingLevel2: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a level 3 [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next level 3 heading element.\n   *   await virtual.perform(virtual.commands.moveToNextHeadingLevel3);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextHeadingLevel3: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a level 3 [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous level 3 heading element.\n   *   await virtual.perform(virtual.commands.moveToPreviousHeadingLevel3);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousHeadingLevel3: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a level 4 [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next level 4 heading element.\n   *   await virtual.perform(virtual.commands.moveToNextHeadingLevel4);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextHeadingLevel4: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a level 4 [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous level 4 heading element.\n   *   await virtual.perform(virtual.commands.moveToPreviousHeadingLevel4);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousHeadingLevel4: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a level 5 [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next level 5 heading element.\n   *   await virtual.perform(virtual.commands.moveToNextHeadingLevel5);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextHeadingLevel5: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a level 5 [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous level 5 heading element.\n   *   await virtual.perform(virtual.commands.moveToPreviousHeadingLevel5);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousHeadingLevel5: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the next element with a level 6 [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next level 6 heading element.\n   *   await virtual.perform(virtual.commands.moveToNextHeadingLevel6);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextHeadingLevel6: (args: VirtualCommandArgs) => number | null;\n  /**\n   * Move to the previous element with a level 6 [`heading`](https://www.w3.org/TR/wai-aria-1.2/#heading)\n   * role:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous level 6 heading element.\n   *   await virtual.perform(virtual.commands.moveToPreviousHeadingLevel6);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousHeadingLevel6: (args: VirtualCommandArgs) => number | null;\n}\n\nconst headingLevelNavigationCommands: HeadingLevelNavigationCommands =\n  headingLevels.reduce((accumulatedCommands, headingLevel) => {\n    const moveToNextCommand = `moveToNextHeadingLevel${headingLevel}`;\n    const moveToPreviousCommand = `moveToPreviousHeadingLevel${headingLevel}`;\n\n    return {\n      ...accumulatedCommands,\n      [moveToNextCommand]: getNextIndexByRoleAndAttributes({\n        ariaAttributes: { \"aria-level\": headingLevel },\n      }),\n      [moveToPreviousCommand]: getPreviousIndexByRoleAndAttributes({\n        ariaAttributes: { \"aria-level\": headingLevel },\n      }),\n    };\n  }, {}) as {\n    [K in\n      | `moveToNextHeadingLevel${HeadingLevel}`\n      | `moveToPreviousHeadingLevel${HeadingLevel}`]: (\n      args: VirtualCommandArgs\n    ) => number | null;\n  };\n\nexport const commands = {\n  /**\n   * Jump to an element controlled by the current element in the Virtual Screen\n   * Reader focus. See [aria-controls](https://www.w3.org/TR/wai-aria-1.2/#aria-controls).\n   *\n   * When using with `virtual.perform()`, pass an index option to select which\n   * controlled element is jumped to when there are more than one:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to jump to the second controlled element.\n   *   await virtual.perform(virtual.commands.jumpToControlledElement, { index: 1 });\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  jumpToControlledElement,\n  /**\n   * Jump to an element that describes the current element in the Virtual\n   * Screen Reader focus. See [aria-details](https://www.w3.org/TR/wai-aria-1.2/#aria-details).\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to jump to the details element.\n   *   await virtual.perform(virtual.commands.jumpToDetailsElement);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  jumpToDetailsElement,\n  /**\n   * Jump to an element that provides an error message for the current element\n   * in the Virtual Screen Reader focus. See [aria-errormessage](https://www.w3.org/TR/wai-aria-1.2/#aria-errormessage).\n   *\n   * When using with `virtual.perform()`, pass an `index` option to select\n   * which error message element is jumped to when there are more than one:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to jump to the second error message element.\n   *   await virtual.perform(virtual.commands.jumpToErrorMessageElement, {\n   *     index: 1,\n   *   });\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  jumpToErrorMessageElement,\n  /**\n   * Move to the next element in an alternate reading order. See\n   * [aria-flowto](https://www.w3.org/TR/wai-aria-1.2/#aria-flowto).\n   *\n   * When using with `virtual.perform()`, pass an `index` option to select\n   * which alternate reading order element is jumped to when there are more\n   * than one:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the second choice element of next alternate reading order.\n   *   await virtual.perform(\n   *     virtual.commands.moveToNextAlternateReadingOrderElement,\n   *     { index: 1 }\n   *   );\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextAlternateReadingOrderElement,\n  /**\n   * Move to the previous element in an alternate reading order. See\n   * [aria-flowto](https://www.w3.org/TR/wai-aria-1.2/#aria-flowto).\n   *\n   * When using with `virtual.perform()`, pass an `index` option to select\n   * which alternate reading order element is jumped to when there are more than\n   * one:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the second choice element of previous alternate reading order.\n   *   await virtual.perform(\n   *     virtual.commands.moveToPreviousAlternateReadingOrderElement,\n   *     { index: 1 }\n   *   );\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousAlternateReadingOrderElement,\n  ...quickAriaRoleNavigationCommands,\n  /**\n   * Move to the next element with any [`landmark`](https://www.w3.org/TR/wai-aria-1.2/#landmark)\n   * role:\n   *\n   * - [`banner`](https://www.w3.org/TR/wai-aria-1.2/#banner)\n   * - [`complementary`](https://www.w3.org/TR/wai-aria-1.2/#complementary)\n   * - [`contentinfo`](https://www.w3.org/TR/wai-aria-1.2/#contentinfo)\n   * - [`figure`](https://www.w3.org/TR/wai-aria-1.2/#figure)\n   * - [`form`](https://www.w3.org/TR/wai-aria-1.2/#form)\n   * - [`landmark`](https://www.w3.org/TR/wai-aria-1.2/#landmark)\n   * - [`main`](https://www.w3.org/TR/wai-aria-1.2/#main)\n   * - [`navigation`](https://www.w3.org/TR/wai-aria-1.2/#navigation)\n   * - [`region`](https://www.w3.org/TR/wai-aria-1.2/#region)\n   * - [`search`](https://www.w3.org/TR/wai-aria-1.2/#search)\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next landmark element.\n   *   await virtual.perform(virtual.commands.moveToNextLandmark);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToNextLandmark: getNextIndexByRoleAndAttributes({\n    roles: quickLandmarkNavigationRoles,\n  }),\n  /**\n   * Move to the previous element with any [`landmark`](https://www.w3.org/TR/wai-aria-1.2/#landmark)\n   * role:\n   *\n   * - [`banner`](https://www.w3.org/TR/wai-aria-1.2/#banner)\n   * - [`complementary`](https://www.w3.org/TR/wai-aria-1.2/#complementary)\n   * - [`contentinfo`](https://www.w3.org/TR/wai-aria-1.2/#contentinfo)\n   * - [`figure`](https://www.w3.org/TR/wai-aria-1.2/#figure)\n   * - [`form`](https://www.w3.org/TR/wai-aria-1.2/#form)\n   * - [`landmark`](https://www.w3.org/TR/wai-aria-1.2/#landmark)\n   * - [`main`](https://www.w3.org/TR/wai-aria-1.2/#main)\n   * - [`navigation`](https://www.w3.org/TR/wai-aria-1.2/#navigation)\n   * - [`region`](https://www.w3.org/TR/wai-aria-1.2/#region)\n   * - [`search`](https://www.w3.org/TR/wai-aria-1.2/#search)\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the previous landmark element.\n   *   await virtual.perform(virtual.commands.moveToPreviousLandmark);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  moveToPreviousLandmark: getPreviousIndexByRoleAndAttributes({\n    roles: quickLandmarkNavigationRoles,\n  }),\n  ...headingLevelNavigationCommands,\n};\n\nexport type VirtualCommands = {\n  [K in keyof typeof commands]: (typeof commands)[K];\n};\n","export const ERR_NOT_IMPLEMENTED = \"Not implemented\";\nexport const ERR_VIRTUAL_MISSING_CONTAINER = \"A container was not provided\";\nexport const ERR_VIRTUAL_NOT_STARTED = \"Virtual Screen Reader was not started\";\n","import { getAccessibleName } from \"./getNodeAccessibilityData/getAccessibleName\";\nimport { getAccessibleValue } from \"./getNodeAccessibilityData/getAccessibleValue\";\nimport { getElementFromNode } from \"./getElementFromNode\";\nimport { getRole } from \"./getNodeAccessibilityData/getRole\";\nimport { isElement } from \"./isElement\";\nimport { sanitizeString } from \"./sanitizeString\";\n\ntype ValueOf<T> = T[keyof T];\n\n/**\n * Live region roles:\n *\n * - alert\n * - log\n * - marquee\n * - status\n * - timer\n * - alertdialog\n *\n * Live region attributes:\n *\n * - aria-atomic\n * - TODO: aria-busy\n * - aria-live\n * - aria-relevant\n *\n * When live regions are marked as polite, assistive technologies SHOULD\n * announce updates at the next graceful opportunity, such as at the end of\n * speaking the current sentence or when the user pauses typing. When live\n * regions are marked as assertive, assistive technologies SHOULD notify the\n * user immediately.\n *\n * REF:\n *\n * - https://www.w3.org/TR/wai-aria-1.2/#live_region_roles\n * - https://www.w3.org/TR/wai-aria-1.2/#window_roles\n * - https://www.w3.org/TR/wai-aria-1.2/#attrs_liveregions\n * - https://www.w3.org/TR/wai-aria-1.2/#aria-live\n */\n\nexport const LIVE = {\n  ASSERTIVE: \"assertive\",\n  OFF: \"off\",\n  POLITE: \"polite\",\n};\n\nconst RELEVANT = {\n  ADDITIONS: \"additions\",\n  ALL: \"all\",\n  REMOVALS: \"removals\",\n  TEXT: \"text\",\n};\n\nconst RELEVANT_VALUES = new Set(Object.values(RELEVANT));\nconst DEFAULT_ATOMIC = false;\nconst DEFAULT_LIVE = LIVE.OFF;\nconst DEFAULT_RELEVANT = [RELEVANT.ADDITIONS, RELEVANT.TEXT];\n\nfunction getSpokenPhraseForNode(node: Node) {\n  return (\n    getAccessibleName(node) ||\n    getAccessibleValue(node) ||\n    // `node.textContent` is only `null` if the `node` is a `document` or a\n    // `doctype`. We don't consider either.\n    sanitizeString(node.textContent!)\n  );\n}\n\nfunction getAllSpokenPhrase({\n  addedNodes,\n  removedNodes,\n  target,\n  type,\n}: {\n  addedNodes: NodeList;\n  removedNodes: NodeList;\n  target: Node;\n  type: MutationRecordType;\n}) {\n  return [\n    ...getAdditionsSpokenPhrase({\n      addedNodes,\n    }),\n    ...getRemovalsSpokenPhrase({\n      removedNodes,\n    }),\n    ...getTextSpokenPhrase({\n      addedNodes,\n      target,\n      type,\n    }),\n  ];\n}\n\nfunction getAdditionsSpokenPhrase({ addedNodes }: { addedNodes: NodeList }) {\n  return Array.from(addedNodes).filter(isElement).map(getSpokenPhraseForNode);\n}\n\nfunction getRemovalsSpokenPhrase({ removedNodes }: { removedNodes: NodeList }) {\n  return Array.from(removedNodes).map(\n    (removedNode) => `removal: ${getSpokenPhraseForNode(removedNode)}`\n  );\n}\n\nconst TEXT_NODE = 3;\n\n/**\n * TODO: When text changes are denoted as relevant, user agents MUST monitor\n * any descendant node change that affects the text alternative computation of\n * the live region as if the accessible name were determined from contents\n * (nameFrom: contents). For example, a text change would be triggered if the\n * HTML alt attribute of a contained image changed. However, no change would be\n * triggered if there was a text change to a node outside the live region, even\n * if that node was referenced (via aria-labelledby) by an element contained in\n * the live region.\n */\nfunction getTextSpokenPhrase({\n  addedNodes,\n  target,\n  type,\n}: {\n  addedNodes: NodeList;\n  target: Node;\n  type: MutationRecordType;\n}) {\n  switch (type) {\n    case \"childList\": {\n      if (!addedNodes.length) {\n        break;\n      }\n\n      return Array.from(addedNodes)\n        .filter((node) => node.nodeType === TEXT_NODE)\n        .map(getSpokenPhraseForNode);\n    }\n    case \"characterData\": {\n      return [getSpokenPhraseForNode(target)];\n    }\n  }\n\n  return [];\n}\n\nconst relevantToSpokenPhraseMap = {\n  [RELEVANT.ADDITIONS]: getAdditionsSpokenPhrase,\n  [RELEVANT.ALL]: getAllSpokenPhrase,\n  [RELEVANT.REMOVALS]: getRemovalsSpokenPhrase,\n  [RELEVANT.TEXT]: getTextSpokenPhrase,\n};\n\nconst roleToImplicitLiveRegionStatesAndPropertiesMap: Record<\n  string,\n  { atomic?: boolean; live: ValueOf<typeof LIVE> }\n> = {\n  alert: {\n    atomic: true,\n    live: LIVE.ASSERTIVE,\n  },\n  log: {\n    live: LIVE.POLITE,\n  },\n  marquee: {\n    live: LIVE.OFF,\n  },\n  status: {\n    atomic: true,\n    live: LIVE.POLITE,\n  },\n  timer: {\n    live: LIVE.OFF,\n  },\n  alertdialog: {\n    atomic: true,\n    live: LIVE.ASSERTIVE,\n  },\n};\n\nfunction getLiveRegionAttributes(\n  {\n    container,\n    target,\n  }: {\n    container: Node | null;\n    target: Element;\n  },\n  {\n    atomic,\n    live,\n    liveTarget,\n    relevant,\n  }: {\n    atomic?: boolean;\n    live?: ValueOf<typeof LIVE>;\n    liveTarget?: Element;\n    relevant?: ValueOf<typeof RELEVANT>[];\n  } = {}\n): {\n  atomic: boolean;\n  live: ValueOf<typeof LIVE>;\n  liveTarget?: Element;\n  relevant: ValueOf<typeof RELEVANT>[];\n} {\n  // TODO: it would be far better if worked with the accessibility tree rather\n  // than reconstructing here and making assumptions (though probable) about\n  // the allowed roles or inherited presentational roles.\n  const accessibleName = getAccessibleName(target);\n  const { role } = getRole({\n    accessibleName,\n    allowedAccessibilityRoles: [],\n    inheritedImplicitPresentational: false,\n    node: target,\n  });\n\n  const implicitAttributes =\n    roleToImplicitLiveRegionStatesAndPropertiesMap[role];\n\n  if (typeof atomic === \"undefined\" && target.hasAttribute(\"aria-atomic\")) {\n    atomic = target.getAttribute(\"aria-atomic\") === \"true\";\n  }\n\n  if (typeof live === \"undefined\" && target.hasAttribute(\"aria-live\")) {\n    live = target.getAttribute(\"aria-live\") as ValueOf<typeof LIVE>;\n    liveTarget = target;\n  }\n\n  if (typeof live === \"undefined\" && implicitAttributes) {\n    live = implicitAttributes.live;\n    liveTarget = target;\n\n    if (typeof atomic === \"undefined\") {\n      atomic = implicitAttributes.atomic;\n    }\n  }\n\n  if (typeof relevant === \"undefined\" && target.hasAttribute(\"aria-relevant\")) {\n    // The `target.hasAttribute(\"aria-relevant\")` check is sufficient to guard\n    // against the `target.getAttribute(\"aria-relevant\")` being null.\n\n    relevant = target\n      .getAttribute(\"aria-relevant\")!\n      .split(\" \")\n      .filter(\n        (token) => !!RELEVANT_VALUES.has(token as ValueOf<typeof RELEVANT>)\n      ) as ValueOf<typeof RELEVANT>[];\n\n    if (relevant.includes(RELEVANT.ALL)) {\n      relevant = [RELEVANT.ALL];\n    }\n  }\n\n  if (\n    typeof atomic !== \"undefined\" &&\n    typeof live !== \"undefined\" &&\n    typeof relevant !== \"undefined\"\n  ) {\n    return {\n      atomic,\n      live,\n      liveTarget,\n      relevant,\n    };\n  }\n\n  const targetAncestor = target.parentElement;\n\n  if (target === container || targetAncestor === null) {\n    return {\n      atomic: atomic ?? DEFAULT_ATOMIC,\n      live: live ?? DEFAULT_LIVE,\n      liveTarget,\n      relevant: relevant ?? DEFAULT_RELEVANT,\n    };\n  }\n\n  return getLiveRegionAttributes(\n    { container, target: targetAncestor },\n    {\n      atomic,\n      live,\n      liveTarget,\n      relevant,\n    }\n  );\n}\n\nexport function getLiveSpokenPhrase({\n  container,\n  mutation: { addedNodes, removedNodes, target, type },\n}: {\n  container: Node | null;\n  mutation: MutationRecord;\n}): string {\n  const { atomic, live, liveTarget, relevant } = getLiveRegionAttributes({\n    container,\n    target: getElementFromNode(target),\n  });\n\n  if (live === LIVE.OFF || !liveTarget) {\n    return \"\";\n  }\n\n  /**\n   * TODO: Indicates whether assistive technologies will present all, or only\n   * parts of, the changed region based on the change notifications defined by\n   * the aria-relevant attribute.\n   *\n   * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-atomic\n   *\n   * This indicates that the behaviour of aria-atomic is informed by\n   * aria-relevant in some way, which is not explained well by the\n   * specification.\n   *\n   * Given the lack of aria-relevant usage this is perhaps not one to dwell on?\n   * REF: https://github.com/w3c/aria/issues/712\n   */\n  if (atomic) {\n    return `${live}: ${getSpokenPhraseForNode(liveTarget)}`;\n  }\n\n  const spokenPhrases = relevant\n    .flatMap((relevantType) =>\n      relevantToSpokenPhraseMap[relevantType]({\n        addedNodes,\n        removedNodes,\n        target,\n        type,\n      })\n    )\n    .filter(Boolean)\n    .join(\", \");\n\n  if (!spokenPhrases) {\n    return \"\";\n  }\n\n  return `${live}: ${spokenPhrases}`;\n}\n","import { AccessibilityNode } from \"./createAccessibilityTree\";\n\nexport const getSpokenPhrase = (accessibilityNode: AccessibilityNode) => {\n  const {\n    accessibleAttributeLabels,\n    accessibleDescription,\n    accessibleName,\n    accessibleValue,\n    spokenRole,\n  } = accessibilityNode;\n\n  const announcedValue =\n    accessibleName === accessibleValue ? \"\" : accessibleValue;\n\n  return [\n    spokenRole,\n    accessibleName,\n    announcedValue,\n    accessibleDescription,\n    ...accessibleAttributeLabels,\n  ]\n    .filter(Boolean)\n    .join(\", \");\n};\n","import { isElement } from \"./isElement\";\nimport type { Root } from \"./Virtual\";\n\nexport function observeDOM(\n  root: Root | undefined,\n  node: Node,\n  onChange: MutationCallback\n): () => void {\n  if (!isElement(node)) {\n    return () => {};\n  }\n\n  const MutationObserver =\n    typeof root !== \"undefined\" ? root?.MutationObserver : null;\n\n  if (MutationObserver) {\n    const mutationObserver = new MutationObserver(onChange);\n\n    mutationObserver.observe(node, {\n      attributes: true,\n      characterData: true,\n      childList: true,\n      subtree: true,\n    });\n\n    return () => {\n      mutationObserver.disconnect();\n    };\n  }\n\n  return () => {\n    // gracefully fallback to not supporting Accessibility Tree refreshes if\n    // the DOM changes.\n  };\n}\n","export async function tick() {\n  return await new Promise<void>((resolve) => setTimeout(() => resolve()));\n}\n","function isElementType(element, tag, props) {\n    if (element.namespaceURI && element.namespaceURI !== 'http://www.w3.org/1999/xhtml') {\n        return false;\n    }\n    tag = Array.isArray(tag) ? tag : [\n        tag\n    ];\n    // tagName is uppercase in HTMLDocument and lowercase in XMLDocument\n    if (!tag.includes(element.tagName.toLowerCase())) {\n        return false;\n    }\n    if (props) {\n        return Object.entries(props).every(([k, v])=>element[k] === v);\n    }\n    return true;\n}\n\nexport { isElementType };\n","function getWindow(node) {\n    var _node_ownerDocument;\n    if (isDocument(node) && node.defaultView) {\n        return node.defaultView;\n    } else if ((_node_ownerDocument = node.ownerDocument) === null || _node_ownerDocument === undefined ? undefined : _node_ownerDocument.defaultView) {\n        return node.ownerDocument.defaultView;\n    }\n    throw new Error(`Could not determine window of node. Node was ${describe(node)}`);\n}\nfunction isDocument(node) {\n    return node.nodeType === 9;\n}\nfunction describe(val) {\n    return typeof val === 'function' ? `function ${val.name}` : val === null ? 'null' : String(val);\n}\n\nexport { getWindow };\n","// jsdom does not implement Blob.text()\nfunction readBlobText(blob, FileReader) {\n    return new Promise((res, rej)=>{\n        const fr = new FileReader();\n        fr.onerror = rej;\n        fr.onabort = rej;\n        fr.onload = ()=>{\n            res(String(fr.result));\n        };\n        fr.readAsText(blob);\n    });\n}\n\nexport { readBlobText };\n","// FileList can not be created per constructor.\nfunction createFileList(window, files) {\n    const list = {\n        ...files,\n        length: files.length,\n        item: (index)=>list[index],\n        [Symbol.iterator]: function* nextFile() {\n            for(let i = 0; i < list.length; i++){\n                yield list[i];\n            }\n        }\n    };\n    list.constructor = window.FileList;\n    // guard for environments without FileList\n    /* istanbul ignore else */ if (window.FileList) {\n        Object.setPrototypeOf(list, window.FileList.prototype);\n    }\n    Object.freeze(list);\n    return list;\n}\n\nexport { createFileList };\n","import { createFileList } from './FileList.js';\n\nfunction _define_property(obj, key, value) {\n    if (key in obj) {\n        Object.defineProperty(obj, key, {\n            value: value,\n            enumerable: true,\n            configurable: true,\n            writable: true\n        });\n    } else {\n        obj[key] = value;\n    }\n    return obj;\n}\n// DataTransfer is not implemented in jsdom.\n// DataTransfer with FileList is being created by the browser on certain events.\nclass DataTransferItemStub {\n    getAsFile() {\n        return this.file;\n    }\n    getAsString(callback) {\n        if (typeof this.data === 'string') {\n            callback(this.data);\n        }\n    }\n    /* istanbul ignore next */ webkitGetAsEntry() {\n        throw new Error('not implemented');\n    }\n    constructor(dataOrFile, type){\n        _define_property(this, \"kind\", undefined);\n        _define_property(this, \"type\", undefined);\n        _define_property(this, \"file\", null);\n        _define_property(this, \"data\", undefined);\n        if (typeof dataOrFile === 'string') {\n            this.kind = 'string';\n            this.type = String(type);\n            this.data = dataOrFile;\n        } else {\n            this.kind = 'file';\n            this.type = dataOrFile.type;\n            this.file = dataOrFile;\n        }\n    }\n}\nclass DataTransferItemListStub extends Array {\n    add(...args) {\n        const item = new DataTransferItemStub(args[0], args[1]);\n        this.push(item);\n        return item;\n    }\n    clear() {\n        this.splice(0, this.length);\n    }\n    remove(index) {\n        this.splice(index, 1);\n    }\n}\nfunction getTypeMatcher(type, exact) {\n    const [group, sub] = type.split('/');\n    const isGroup = !sub || sub === '*';\n    return (item)=>{\n        return exact ? item.type === (isGroup ? group : type) : isGroup ? item.type.startsWith(`${group}/`) : item.type === group;\n    };\n}\nfunction createDataTransferStub(window) {\n    return new class DataTransferStub {\n        getData(format) {\n            var _this_items_find;\n            const match = (_this_items_find = this.items.find(getTypeMatcher(format, true))) !== null && _this_items_find !== undefined ? _this_items_find : this.items.find(getTypeMatcher(format, false));\n            let text = '';\n            match === null || match === undefined ? undefined : match.getAsString((t)=>{\n                text = t;\n            });\n            return text;\n        }\n        setData(format, data) {\n            const matchIndex = this.items.findIndex(getTypeMatcher(format, true));\n            const item = new DataTransferItemStub(data, format);\n            if (matchIndex >= 0) {\n                this.items.splice(matchIndex, 1, item);\n            } else {\n                this.items.push(item);\n            }\n        }\n        clearData(format) {\n            if (format) {\n                const matchIndex = this.items.findIndex(getTypeMatcher(format, true));\n                if (matchIndex >= 0) {\n                    this.items.remove(matchIndex);\n                }\n            } else {\n                this.items.clear();\n            }\n        }\n        get types() {\n            const t = [];\n            if (this.files.length) {\n                t.push('Files');\n            }\n            this.items.forEach((i)=>t.push(i.type));\n            Object.freeze(t);\n            return t;\n        }\n        /* istanbul ignore next */ setDragImage() {}\n        constructor(){\n            _define_property(this, \"dropEffect\", 'none');\n            _define_property(this, \"effectAllowed\", 'uninitialized');\n            _define_property(this, \"items\", new DataTransferItemListStub());\n            _define_property(this, \"files\", createFileList(window, []));\n        }\n    }();\n}\nfunction createDataTransfer(window, files = []) {\n    // Use real DataTransfer if available\n    const dt = typeof window.DataTransfer === 'undefined' ? createDataTransferStub(window) : /* istanbul ignore next */ new window.DataTransfer();\n    Object.defineProperty(dt, 'files', {\n        get: ()=>createFileList(window, files)\n    });\n    return dt;\n}\nasync function getBlobFromDataTransferItem(window, item) {\n    if (item.kind === 'file') {\n        return item.getAsFile();\n    }\n    return new window.Blob([\n        await new Promise((r)=>item.getAsString(r))\n    ], {\n        type: item.type\n    });\n}\n\nexport { createDataTransfer, getBlobFromDataTransferItem };\n","import { getWindow } from '../misc/getWindow.js';\nimport { readBlobText } from './Blob.js';\nimport { createDataTransfer, getBlobFromDataTransferItem } from './DataTransfer.js';\n\n// Clipboard is not available in jsdom\nfunction _define_property(obj, key, value) {\n    if (key in obj) {\n        Object.defineProperty(obj, key, {\n            value: value,\n            enumerable: true,\n            configurable: true,\n            writable: true\n        });\n    } else {\n        obj[key] = value;\n    }\n    return obj;\n}\n// MDN lists string|Blob|Promise<Blob|string> as possible types in ClipboardItemData\n// lib.dom.d.ts lists only Promise<Blob|string>\n// https://developer.mozilla.org/en-US/docs/Web/API/ClipboardItem/ClipboardItem#syntax\nfunction createClipboardItem(window, ...blobs) {\n    const dataMap = Object.fromEntries(blobs.map((b)=>[\n            typeof b === 'string' ? 'text/plain' : b.type,\n            Promise.resolve(b)\n        ]));\n    // use real ClipboardItem if available\n    /* istanbul ignore if */ if (typeof window.ClipboardItem !== 'undefined') {\n        return new window.ClipboardItem(dataMap);\n    }\n    return new class ClipboardItem {\n        get types() {\n            return Array.from(Object.keys(this.data));\n        }\n        async getType(type) {\n            const value = await this.data[type];\n            if (!value) {\n                throw new Error(`${type} is not one of the available MIME types on this item.`);\n            }\n            return value instanceof window.Blob ? value : new window.Blob([\n                value\n            ], {\n                type\n            });\n        }\n        constructor(d){\n            _define_property(this, \"data\", undefined);\n            this.data = d;\n        }\n    }(dataMap);\n}\nconst ClipboardStubControl = Symbol('Manage ClipboardSub');\nfunction createClipboardStub(window, control) {\n    return Object.assign(new class Clipboard extends window.EventTarget {\n        async read() {\n            return Array.from(this.items);\n        }\n        async readText() {\n            let text = '';\n            for (const item of this.items){\n                const type = item.types.includes('text/plain') ? 'text/plain' : item.types.find((t)=>t.startsWith('text/'));\n                if (type) {\n                    text += await item.getType(type).then((b)=>readBlobText(b, window.FileReader));\n                }\n            }\n            return text;\n        }\n        async write(data) {\n            this.items = data;\n        }\n        async writeText(text) {\n            this.items = [\n                createClipboardItem(window, text)\n            ];\n        }\n        constructor(...args){\n            super(...args), _define_property(this, \"items\", []);\n        }\n    }(), {\n        [ClipboardStubControl]: control\n    });\n}\nfunction isClipboardStub(clipboard) {\n    return !!(clipboard === null || clipboard === undefined ? undefined : clipboard[ClipboardStubControl]);\n}\nfunction attachClipboardStubToView(window) {\n    if (isClipboardStub(window.navigator.clipboard)) {\n        return window.navigator.clipboard[ClipboardStubControl];\n    }\n    const realClipboard = Object.getOwnPropertyDescriptor(window.navigator, 'clipboard');\n    let stub;\n    const control = {\n        resetClipboardStub: ()=>{\n            stub = createClipboardStub(window, control);\n        },\n        detachClipboardStub: ()=>{\n            /* istanbul ignore if */ if (realClipboard) {\n                Object.defineProperty(window.navigator, 'clipboard', realClipboard);\n            } else {\n                Object.defineProperty(window.navigator, 'clipboard', {\n                    value: undefined,\n                    configurable: true\n                });\n            }\n        }\n    };\n    stub = createClipboardStub(window, control);\n    Object.defineProperty(window.navigator, 'clipboard', {\n        get: ()=>stub,\n        configurable: true\n    });\n    return stub[ClipboardStubControl];\n}\nfunction resetClipboardStubOnView(window) {\n    if (isClipboardStub(window.navigator.clipboard)) {\n        window.navigator.clipboard[ClipboardStubControl].resetClipboardStub();\n    }\n}\nfunction detachClipboardStubFromView(window) {\n    if (isClipboardStub(window.navigator.clipboard)) {\n        window.navigator.clipboard[ClipboardStubControl].detachClipboardStub();\n    }\n}\nasync function readDataTransferFromClipboard(document) {\n    const window = document.defaultView;\n    const clipboard = window === null || window === undefined ? undefined : window.navigator.clipboard;\n    const items = clipboard && await clipboard.read();\n    if (!items) {\n        throw new Error('The Clipboard API is unavailable.');\n    }\n    const dt = createDataTransfer(window);\n    for (const item of items){\n        for (const type of item.types){\n            dt.setData(type, await item.getType(type).then((b)=>readBlobText(b, window.FileReader)));\n        }\n    }\n    return dt;\n}\nasync function writeDataTransferToClipboard(document, clipboardData) {\n    const window = getWindow(document);\n    const clipboard = window.navigator.clipboard;\n    const items = [];\n    for(let i = 0; i < clipboardData.items.length; i++){\n        const dtItem = clipboardData.items[i];\n        const blob = await getBlobFromDataTransferItem(window, dtItem);\n        items.push(createClipboardItem(window, blob));\n    }\n    const written = clipboard && await clipboard.write(items).then(()=>true, // Can happen with other implementations that e.g. require permissions\n    /* istanbul ignore next */ ()=>false);\n    if (!written) {\n        throw new Error('The Clipboard API is unavailable.');\n    }\n}\nconst g = globalThis;\n/* istanbul ignore else */ if (typeof g.afterEach === 'function') {\n    g.afterEach(()=>resetClipboardStubOnView(globalThis.window));\n}\n/* istanbul ignore else */ if (typeof g.afterAll === 'function') {\n    g.afterAll(()=>detachClipboardStubFromView(globalThis.window));\n}\n\nexport { attachClipboardStubToView, createClipboardItem, detachClipboardStubFromView, readDataTransferFromClipboard, resetClipboardStubOnView, writeDataTransferToClipboard };\n","const FOCUSABLE_SELECTOR = [\n    'input:not([type=hidden]):not([disabled])',\n    'button:not([disabled])',\n    'select:not([disabled])',\n    'textarea:not([disabled])',\n    '[contenteditable=\"\"]',\n    '[contenteditable=\"true\"]',\n    'a[href]',\n    '[tabindex]:not([disabled])'\n].join(', ');\n\nexport { FOCUSABLE_SELECTOR };\n","import { FOCUSABLE_SELECTOR } from './selector.js';\n\nfunction isFocusable(element) {\n    return element.matches(FOCUSABLE_SELECTOR);\n}\n\nexport { isFocusable };\n","function cloneEvent(event) {\n    return new event.constructor(event.type, event);\n}\n\nexport { cloneEvent };\n","import { isElementType } from './isElementType.js';\n\n// This should probably just rely on the :disabled pseudo-class, but JSDOM doesn't implement it properly.\nfunction isDisabled(element) {\n    for(let el = element; el; el = el.parentElement){\n        if (isElementType(el, [\n            'button',\n            'input',\n            'select',\n            'textarea',\n            'optgroup',\n            'option'\n        ])) {\n            if (el.hasAttribute('disabled')) {\n                return true;\n            }\n        } else if (isElementType(el, 'fieldset')) {\n            var _el_querySelector;\n            if (el.hasAttribute('disabled') && !((_el_querySelector = el.querySelector(':scope > legend')) === null || _el_querySelector === undefined ? undefined : _el_querySelector.contains(element))) {\n                return true;\n            }\n        } else if (el.tagName.includes('-')) {\n            if (el.constructor.formAssociated && el.hasAttribute('disabled')) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nexport { isDisabled };\n","import { isDisabled } from '../misc/isDisabled.js';\n\nfunction getActiveElement(document) {\n    const activeElement = document.activeElement;\n    if (activeElement === null || activeElement === undefined ? undefined : activeElement.shadowRoot) {\n        return getActiveElement(activeElement.shadowRoot);\n    } else {\n        // Browser does not yield disabled elements as document.activeElement - jsdom does\n        if (isDisabled(activeElement)) {\n            return document.ownerDocument ? /* istanbul ignore next */ document.ownerDocument.body : document.body;\n        }\n        return activeElement;\n    }\n}\nfunction getActiveElementOrBody(document) {\n    var _getActiveElement;\n    return (_getActiveElement = getActiveElement(document)) !== null && _getActiveElement !== undefined ? _getActiveElement : /* istanbul ignore next */ document.body;\n}\n\nexport { getActiveElement, getActiveElementOrBody };\n","function findClosest(element, callback) {\n    let el = element;\n    do {\n        if (callback(el)) {\n            return el;\n        }\n        el = el.parentElement;\n    }while (el && el !== element.ownerDocument.body)\n    return undefined;\n}\n\nexport { findClosest };\n","//jsdom is not supporting isContentEditable\nfunction isContentEditable(element) {\n    return element.hasAttribute('contenteditable') && (element.getAttribute('contenteditable') == 'true' || element.getAttribute('contenteditable') == '');\n}\n/**\n * If a node is a contenteditable or inside one, return that element.\n */ function getContentEditable(node) {\n    const element = getElement(node);\n    return element && (element.closest('[contenteditable=\"\"]') || element.closest('[contenteditable=\"true\"]'));\n}\nfunction getElement(node) {\n    return node.nodeType === 1 ? node : node.parentElement;\n}\n\nexport { getContentEditable, isContentEditable };\n","import { isElementType } from '../misc/isElementType.js';\n\nvar clickableInputTypes = /*#__PURE__*/ function(clickableInputTypes) {\n    clickableInputTypes[\"button\"] = \"button\";\n    clickableInputTypes[\"color\"] = \"color\";\n    clickableInputTypes[\"file\"] = \"file\";\n    clickableInputTypes[\"image\"] = \"image\";\n    clickableInputTypes[\"reset\"] = \"reset\";\n    clickableInputTypes[\"submit\"] = \"submit\";\n    clickableInputTypes[\"checkbox\"] = \"checkbox\";\n    clickableInputTypes[\"radio\"] = \"radio\";\n    return clickableInputTypes;\n}(clickableInputTypes || {});\nfunction isClickableInput(element) {\n    return isElementType(element, 'button') || isElementType(element, 'input') && element.type in clickableInputTypes;\n}\n\nexport { isClickableInput };\n","import { isElementType } from '../misc/isElementType.js';\nimport { isContentEditable } from './isContentEditable.js';\n\nfunction isEditable(element) {\n    return isEditableInputOrTextArea(element) && !element.readOnly || isContentEditable(element);\n}\nvar editableInputTypes = /*#__PURE__*/ function(editableInputTypes) {\n    editableInputTypes[\"text\"] = \"text\";\n    editableInputTypes[\"date\"] = \"date\";\n    editableInputTypes[\"datetime-local\"] = \"datetime-local\";\n    editableInputTypes[\"email\"] = \"email\";\n    editableInputTypes[\"month\"] = \"month\";\n    editableInputTypes[\"number\"] = \"number\";\n    editableInputTypes[\"password\"] = \"password\";\n    editableInputTypes[\"search\"] = \"search\";\n    editableInputTypes[\"tel\"] = \"tel\";\n    editableInputTypes[\"time\"] = \"time\";\n    editableInputTypes[\"url\"] = \"url\";\n    editableInputTypes[\"week\"] = \"week\";\n    return editableInputTypes;\n}(editableInputTypes || {});\nfunction isEditableInputOrTextArea(element) {\n    return isElementType(element, 'textarea') || isElementType(element, 'input') && element.type in editableInputTypes;\n}\n\nexport { isEditable, isEditableInputOrTextArea };\n","import { isClickableInput } from '../click/isClickableInput.js';\nimport { isEditableInputOrTextArea } from '../edit/isEditable.js';\n\n/**\n * Determine if the element has its own selection implementation\n * and does not interact with the Document Selection API.\n */ function hasOwnSelection(node) {\n    return isElement(node) && isEditableInputOrTextArea(node);\n}\nfunction hasNoSelection(node) {\n    return isElement(node) && isClickableInput(node);\n}\nfunction isElement(node) {\n    return node.nodeType === 1;\n}\n\nexport { hasNoSelection, hasOwnSelection };\n","import '../../utils/dataTransfer/Clipboard.js';\nimport { getContentEditable } from '../../utils/edit/isContentEditable.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\n\n// The browser implementation seems to have changed.\n// When focus is inside <input type=\"text\"/>,\n// Chrome updates Selection to be collapsed at the position of the input element.\n// TODO: update implementation to match that of current browsers\n/**\n * Reset the Document Selection when moving focus into an element\n * with own selection implementation.\n */ function updateSelectionOnFocus(element) {\n    const selection = element.ownerDocument.getSelection();\n    /* istanbul ignore if */ if (!(selection === null || selection === undefined ? undefined : selection.focusNode)) {\n        return;\n    }\n    // If the focus moves inside an element with own selection implementation,\n    // the document selection will be this element.\n    // But if the focused element is inside a contenteditable,\n    // 1) a collapsed selection will be retained.\n    // 2) other selections will be replaced by a cursor\n    //  2.a) at the start of the first child if it is a text node\n    //  2.b) at the start of the contenteditable.\n    if (hasOwnSelection(element)) {\n        const contenteditable = getContentEditable(selection.focusNode);\n        if (contenteditable) {\n            if (!selection.isCollapsed) {\n                var _contenteditable_firstChild;\n                const focusNode = ((_contenteditable_firstChild = contenteditable.firstChild) === null || _contenteditable_firstChild === undefined ? undefined : _contenteditable_firstChild.nodeType) === 3 ? contenteditable.firstChild : contenteditable;\n                selection.setBaseAndExtent(focusNode, 0, focusNode, 0);\n            }\n        } else {\n            selection.setBaseAndExtent(element, 0, element, 0);\n        }\n    }\n}\n\nexport { updateSelectionOnFocus };\n","import * as prettyFormat from 'pretty-format';\nexport { prettyFormat };\nimport { computeAccessibleName, computeAccessibleDescription } from 'dom-accessibility-api';\nimport { elementRoles, roles, roleElements } from 'aria-query';\nimport lzString from 'lz-string';\n\n/**\n * Source: https://github.com/facebook/jest/blob/e7bb6a1e26ffab90611b2593912df15b69315611/packages/pretty-format/src/plugins/DOMElement.ts\n */\n/* eslint-disable -- trying to stay as close to the original as possible */\n/* istanbul ignore file */\n\nfunction escapeHTML(str) {\n  return str.replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n// Return empty string if keys is empty.\nconst printProps = (keys, props, config, indentation, depth, refs, printer) => {\n  const indentationNext = indentation + config.indent;\n  const colors = config.colors;\n  return keys.map(key => {\n    const value = props[key];\n    let printed = printer(value, config, indentationNext, depth, refs);\n    if (typeof value !== 'string') {\n      if (printed.indexOf('\\n') !== -1) {\n        printed = config.spacingOuter + indentationNext + printed + config.spacingOuter + indentation;\n      }\n      printed = '{' + printed + '}';\n    }\n    return config.spacingInner + indentation + colors.prop.open + key + colors.prop.close + '=' + colors.value.open + printed + colors.value.close;\n  }).join('');\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType#node_type_constants\nconst NodeTypeTextNode = 3;\n\n// Return empty string if children is empty.\nconst printChildren = (children, config, indentation, depth, refs, printer) => children.map(child => {\n  const printedChild = typeof child === 'string' ? printText(child, config) : printer(child, config, indentation, depth, refs);\n  if (printedChild === '' && typeof child === 'object' && child !== null && child.nodeType !== NodeTypeTextNode) {\n    // A plugin serialized this Node to '' meaning we should ignore it.\n    return '';\n  }\n  return config.spacingOuter + indentation + printedChild;\n}).join('');\nconst printText = (text, config) => {\n  const contentColor = config.colors.content;\n  return contentColor.open + escapeHTML(text) + contentColor.close;\n};\nconst printComment = (comment, config) => {\n  const commentColor = config.colors.comment;\n  return commentColor.open + '<!--' + escapeHTML(comment) + '-->' + commentColor.close;\n};\n\n// Separate the functions to format props, children, and element,\n// so a plugin could override a particular function, if needed.\n// Too bad, so sad: the traditional (but unnecessary) space\n// in a self-closing tagColor requires a second test of printedProps.\nconst printElement = (type, printedProps, printedChildren, config, indentation) => {\n  const tagColor = config.colors.tag;\n  return tagColor.open + '<' + type + (printedProps && tagColor.close + printedProps + config.spacingOuter + indentation + tagColor.open) + (printedChildren ? '>' + tagColor.close + printedChildren + config.spacingOuter + indentation + tagColor.open + '</' + type : (printedProps && !config.min ? '' : ' ') + '/') + '>' + tagColor.close;\n};\nconst printElementAsLeaf = (type, config) => {\n  const tagColor = config.colors.tag;\n  return tagColor.open + '<' + type + tagColor.close + ' …' + tagColor.open + ' />' + tagColor.close;\n};\nconst ELEMENT_NODE$1 = 1;\nconst TEXT_NODE$1 = 3;\nconst COMMENT_NODE$1 = 8;\nconst FRAGMENT_NODE = 11;\nconst ELEMENT_REGEXP = /^((HTML|SVG)\\w*)?Element$/;\nconst isCustomElement = val => {\n  const {\n    tagName\n  } = val;\n  return Boolean(typeof tagName === 'string' && tagName.includes('-') || typeof val.hasAttribute === 'function' && val.hasAttribute('is'));\n};\nconst testNode = val => {\n  const constructorName = val.constructor.name;\n  const {\n    nodeType\n  } = val;\n  return nodeType === ELEMENT_NODE$1 && (ELEMENT_REGEXP.test(constructorName) || isCustomElement(val)) || nodeType === TEXT_NODE$1 && constructorName === 'Text' || nodeType === COMMENT_NODE$1 && constructorName === 'Comment' || nodeType === FRAGMENT_NODE && constructorName === 'DocumentFragment';\n};\nfunction nodeIsText(node) {\n  return node.nodeType === TEXT_NODE$1;\n}\nfunction nodeIsComment(node) {\n  return node.nodeType === COMMENT_NODE$1;\n}\nfunction nodeIsFragment(node) {\n  return node.nodeType === FRAGMENT_NODE;\n}\nfunction createDOMElementFilter(filterNode) {\n  return {\n    test: val => {\n      var _val$constructor2;\n      return ((val == null || (_val$constructor2 = val.constructor) == null ? void 0 : _val$constructor2.name) || isCustomElement(val)) && testNode(val);\n    },\n    serialize: (node, config, indentation, depth, refs, printer) => {\n      if (nodeIsText(node)) {\n        return printText(node.data, config);\n      }\n      if (nodeIsComment(node)) {\n        return printComment(node.data, config);\n      }\n      const type = nodeIsFragment(node) ? \"DocumentFragment\" : node.tagName.toLowerCase();\n      if (++depth > config.maxDepth) {\n        return printElementAsLeaf(type, config);\n      }\n      return printElement(type, printProps(nodeIsFragment(node) ? [] : Array.from(node.attributes).map(attr => attr.name).sort(), nodeIsFragment(node) ? {} : Array.from(node.attributes).reduce((props, attribute) => {\n        props[attribute.name] = attribute.value;\n        return props;\n      }, {}), config, indentation + config.indent, depth, refs, printer), printChildren(Array.prototype.slice.call(node.childNodes || node.children).filter(filterNode), config, indentation + config.indent, depth, refs, printer), config, indentation);\n    }\n  };\n}\n\n// We try to load node dependencies\nlet chalk = null;\nlet readFileSync = null;\nlet codeFrameColumns = null;\ntry {\n  const nodeRequire = module && module.require;\n  readFileSync = nodeRequire.call(module, 'fs').readFileSync;\n  codeFrameColumns = nodeRequire.call(module, '@babel/code-frame').codeFrameColumns;\n  chalk = nodeRequire.call(module, 'chalk');\n} catch {\n  // We're in a browser environment\n}\n\n// frame has the form \"at myMethod (location/to/my/file.js:10:2)\"\nfunction getCodeFrame(frame) {\n  const locationStart = frame.indexOf('(') + 1;\n  const locationEnd = frame.indexOf(')');\n  const frameLocation = frame.slice(locationStart, locationEnd);\n  const frameLocationElements = frameLocation.split(':');\n  const [filename, line, column] = [frameLocationElements[0], parseInt(frameLocationElements[1], 10), parseInt(frameLocationElements[2], 10)];\n  let rawFileContents = '';\n  try {\n    rawFileContents = readFileSync(filename, 'utf-8');\n  } catch {\n    return '';\n  }\n  const codeFrame = codeFrameColumns(rawFileContents, {\n    start: {\n      line,\n      column\n    }\n  }, {\n    highlightCode: true,\n    linesBelow: 0\n  });\n  return chalk.dim(frameLocation) + \"\\n\" + codeFrame + \"\\n\";\n}\nfunction getUserCodeFrame() {\n  // If we couldn't load dependencies, we can't generate the user trace\n  /* istanbul ignore next */\n  if (!readFileSync || !codeFrameColumns) {\n    return '';\n  }\n  const err = new Error();\n  const firstClientCodeFrame = err.stack.split('\\n').slice(1) // Remove first line which has the form \"Error: TypeError\"\n  .find(frame => !frame.includes('node_modules/')); // Ignore frames from 3rd party libraries\n\n  return getCodeFrame(firstClientCodeFrame);\n}\n\n// Constant node.nodeType for text nodes, see:\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType#Node_type_constants\nconst TEXT_NODE = 3;\nfunction jestFakeTimersAreEnabled() {\n  /* istanbul ignore else */\n  // eslint-disable-next-line\n  if (typeof jest !== 'undefined' && jest !== null) {\n    return (\n      // legacy timers\n      setTimeout._isMockFunction === true ||\n      // modern timers\n      // eslint-disable-next-line prefer-object-has-own -- not supported by our support matrix\n      Object.prototype.hasOwnProperty.call(setTimeout, 'clock')\n    );\n  }\n  // istanbul ignore next\n  return false;\n}\nfunction getDocument() {\n  /* istanbul ignore if */\n  if (typeof window === 'undefined') {\n    throw new Error('Could not find default container');\n  }\n  return window.document;\n}\nfunction getWindowFromNode(node) {\n  if (node.defaultView) {\n    // node is document\n    return node.defaultView;\n  } else if (node.ownerDocument && node.ownerDocument.defaultView) {\n    // node is a DOM node\n    return node.ownerDocument.defaultView;\n  } else if (node.window) {\n    // node is window\n    return node.window;\n  } else if (node.ownerDocument && node.ownerDocument.defaultView === null) {\n    throw new Error(\"It looks like the window object is not available for the provided node.\");\n  } else if (node.then instanceof Function) {\n    throw new Error(\"It looks like you passed a Promise object instead of a DOM node. Did you do something like `fireEvent.click(screen.findBy...` when you meant to use a `getBy` query `fireEvent.click(screen.getBy...`, or await the findBy query `fireEvent.click(await screen.findBy...`?\");\n  } else if (Array.isArray(node)) {\n    throw new Error(\"It looks like you passed an Array instead of a DOM node. Did you do something like `fireEvent.click(screen.getAllBy...` when you meant to use a `getBy` query `fireEvent.click(screen.getBy...`?\");\n  } else if (typeof node.debug === 'function' && typeof node.logTestingPlaygroundURL === 'function') {\n    throw new Error(\"It looks like you passed a `screen` object. Did you do something like `fireEvent.click(screen, ...` when you meant to use a query, e.g. `fireEvent.click(screen.getBy..., `?\");\n  } else {\n    // The user passed something unusual to a calling function\n    throw new Error(\"The given node is not an Element, the node type is: \" + typeof node + \".\");\n  }\n}\nfunction checkContainerType(container) {\n  if (!container || !(typeof container.querySelector === 'function') || !(typeof container.querySelectorAll === 'function')) {\n    throw new TypeError(\"Expected container to be an Element, a Document or a DocumentFragment but got \" + getTypeName(container) + \".\");\n  }\n  function getTypeName(object) {\n    if (typeof object === 'object') {\n      return object === null ? 'null' : object.constructor.name;\n    }\n    return typeof object;\n  }\n}\n\nconst shouldHighlight = () => {\n  if (typeof process === 'undefined') {\n    // Don't colorize in non-node environments (e.g. Browsers)\n    return false;\n  }\n  let colors;\n  // Try to safely parse env COLORS: We will default behavior if any step fails.\n  try {\n    var _process$env;\n    const colorsJSON = (_process$env = process.env) == null ? void 0 : _process$env.COLORS;\n    if (colorsJSON) {\n      colors = JSON.parse(colorsJSON);\n    }\n  } catch {\n    // If this throws, process.env?.COLORS wasn't parsable. Since we only\n    // care about `true` or `false`, we can safely ignore the error.\n  }\n  if (typeof colors === 'boolean') {\n    // If `colors` is set explicitly (both `true` and `false`), use that value.\n    return colors;\n  } else {\n    // If `colors` is not set, colorize if we're in node.\n    return process.versions !== undefined && process.versions.node !== undefined;\n  }\n};\nconst {\n  DOMCollection\n} = prettyFormat.plugins;\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType#node_type_constants\nconst ELEMENT_NODE = 1;\nconst COMMENT_NODE = 8;\n\n// https://github.com/facebook/jest/blob/615084195ae1ae61ddd56162c62bbdda17587569/packages/pretty-format/src/plugins/DOMElement.ts#L50\nfunction filterCommentsAndDefaultIgnoreTagsTags(value) {\n  return value.nodeType !== COMMENT_NODE && (value.nodeType !== ELEMENT_NODE || !value.matches(getConfig().defaultIgnore));\n}\nfunction prettyDOM(dom, maxLength, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  if (!dom) {\n    dom = getDocument().body;\n  }\n  if (typeof maxLength !== 'number') {\n    maxLength = typeof process !== 'undefined' && typeof process.env !== 'undefined' && process.env.DEBUG_PRINT_LIMIT || 7000;\n  }\n  if (maxLength === 0) {\n    return '';\n  }\n  if (dom.documentElement) {\n    dom = dom.documentElement;\n  }\n  let domTypeName = typeof dom;\n  if (domTypeName === 'object') {\n    domTypeName = dom.constructor.name;\n  } else {\n    // To don't fall with `in` operator\n    dom = {};\n  }\n  if (!('outerHTML' in dom)) {\n    throw new TypeError(\"Expected an element or document but got \" + domTypeName);\n  }\n  const {\n    filterNode = filterCommentsAndDefaultIgnoreTagsTags,\n    ...prettyFormatOptions\n  } = options;\n  const debugContent = prettyFormat.format(dom, {\n    plugins: [createDOMElementFilter(filterNode), DOMCollection],\n    printFunctionName: false,\n    highlight: shouldHighlight(),\n    ...prettyFormatOptions\n  });\n  return maxLength !== undefined && dom.outerHTML.length > maxLength ? debugContent.slice(0, maxLength) + \"...\" : debugContent;\n}\nconst logDOM = function () {\n  const userCodeFrame = getUserCodeFrame();\n  if (userCodeFrame) {\n    console.log(prettyDOM(...arguments) + \"\\n\\n\" + userCodeFrame);\n  } else {\n    console.log(prettyDOM(...arguments));\n  }\n};\n\n// It would be cleaner for this to live inside './queries', but\n// other parts of the code assume that all exports from\n// './queries' are query functions.\nlet config = {\n  testIdAttribute: 'data-testid',\n  asyncUtilTimeout: 1000,\n  // asyncWrapper and advanceTimersWrapper is to support React's async `act` function.\n  // forcing react-testing-library to wrap all async functions would've been\n  // a total nightmare (consider wrapping every findBy* query and then also\n  // updating `within` so those would be wrapped too. Total nightmare).\n  // so we have this config option that's really only intended for\n  // react-testing-library to use. For that reason, this feature will remain\n  // undocumented.\n  asyncWrapper: cb => cb(),\n  unstable_advanceTimersWrapper: cb => cb(),\n  eventWrapper: cb => cb(),\n  // default value for the `hidden` option in `ByRole` queries\n  defaultHidden: false,\n  // default value for the `ignore` option in `ByText` queries\n  defaultIgnore: 'script, style',\n  // showOriginalStackTrace flag to show the full error stack traces for async errors\n  showOriginalStackTrace: false,\n  // throw errors w/ suggestions for better queries. Opt in so off by default.\n  throwSuggestions: false,\n  // called when getBy* queries fail. (message, container) => Error\n  getElementError(message, container) {\n    const prettifiedDOM = prettyDOM(container);\n    const error = new Error([message, \"Ignored nodes: comments, \" + config.defaultIgnore + \"\\n\" + prettifiedDOM].filter(Boolean).join('\\n\\n'));\n    error.name = 'TestingLibraryElementError';\n    return error;\n  },\n  _disableExpensiveErrorDiagnostics: false,\n  computedStyleSupportsPseudoElements: false\n};\nfunction runWithExpensiveErrorDiagnosticsDisabled(callback) {\n  try {\n    config._disableExpensiveErrorDiagnostics = true;\n    return callback();\n  } finally {\n    config._disableExpensiveErrorDiagnostics = false;\n  }\n}\nfunction configure(newConfig) {\n  if (typeof newConfig === 'function') {\n    // Pass the existing config out to the provided function\n    // and accept a delta in return\n    newConfig = newConfig(config);\n  }\n\n  // Merge the incoming config delta\n  config = {\n    ...config,\n    ...newConfig\n  };\n}\nfunction getConfig() {\n  return config;\n}\n\nconst labelledNodeNames = ['button', 'meter', 'output', 'progress', 'select', 'textarea', 'input'];\nfunction getTextContent(node) {\n  if (labelledNodeNames.includes(node.nodeName.toLowerCase())) {\n    return '';\n  }\n  if (node.nodeType === TEXT_NODE) return node.textContent;\n  return Array.from(node.childNodes).map(childNode => getTextContent(childNode)).join('');\n}\nfunction getLabelContent(element) {\n  let textContent;\n  if (element.tagName.toLowerCase() === 'label') {\n    textContent = getTextContent(element);\n  } else {\n    textContent = element.value || element.textContent;\n  }\n  return textContent;\n}\n\n// Based on https://github.com/eps1lon/dom-accessibility-api/pull/352\nfunction getRealLabels(element) {\n  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- types are not aware of older browsers that don't implement `labels`\n  if (element.labels !== undefined) {\n    var _labels;\n    return (_labels = element.labels) != null ? _labels : [];\n  }\n  if (!isLabelable(element)) return [];\n  const labels = element.ownerDocument.querySelectorAll('label');\n  return Array.from(labels).filter(label => label.control === element);\n}\nfunction isLabelable(element) {\n  return /BUTTON|METER|OUTPUT|PROGRESS|SELECT|TEXTAREA/.test(element.tagName) || element.tagName === 'INPUT' && element.getAttribute('type') !== 'hidden';\n}\nfunction getLabels(container, element, _temp) {\n  let {\n    selector = '*'\n  } = _temp === void 0 ? {} : _temp;\n  const ariaLabelledBy = element.getAttribute('aria-labelledby');\n  const labelsId = ariaLabelledBy ? ariaLabelledBy.split(' ') : [];\n  return labelsId.length ? labelsId.map(labelId => {\n    const labellingElement = container.querySelector(\"[id=\\\"\" + labelId + \"\\\"]\");\n    return labellingElement ? {\n      content: getLabelContent(labellingElement),\n      formControl: null\n    } : {\n      content: '',\n      formControl: null\n    };\n  }) : Array.from(getRealLabels(element)).map(label => {\n    const textToMatch = getLabelContent(label);\n    const formControlSelector = 'button, input, meter, output, progress, select, textarea';\n    const labelledFormControl = Array.from(label.querySelectorAll(formControlSelector)).filter(formControlElement => formControlElement.matches(selector))[0];\n    return {\n      content: textToMatch,\n      formControl: labelledFormControl\n    };\n  });\n}\n\nfunction assertNotNullOrUndefined(matcher) {\n  if (matcher === null || matcher === undefined) {\n    throw new Error( // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- implicitly converting `T` to `string`\n    \"It looks like \" + matcher + \" was passed instead of a matcher. Did you do something like getByText(\" + matcher + \")?\");\n  }\n}\nfunction fuzzyMatches(textToMatch, node, matcher, normalizer) {\n  if (typeof textToMatch !== 'string') {\n    return false;\n  }\n  assertNotNullOrUndefined(matcher);\n  const normalizedText = normalizer(textToMatch);\n  if (typeof matcher === 'string' || typeof matcher === 'number') {\n    return normalizedText.toLowerCase().includes(matcher.toString().toLowerCase());\n  } else if (typeof matcher === 'function') {\n    return matcher(normalizedText, node);\n  } else {\n    return matchRegExp(matcher, normalizedText);\n  }\n}\nfunction matches(textToMatch, node, matcher, normalizer) {\n  if (typeof textToMatch !== 'string') {\n    return false;\n  }\n  assertNotNullOrUndefined(matcher);\n  const normalizedText = normalizer(textToMatch);\n  if (matcher instanceof Function) {\n    return matcher(normalizedText, node);\n  } else if (matcher instanceof RegExp) {\n    return matchRegExp(matcher, normalizedText);\n  } else {\n    return normalizedText === String(matcher);\n  }\n}\nfunction getDefaultNormalizer(_temp) {\n  let {\n    trim = true,\n    collapseWhitespace = true\n  } = _temp === void 0 ? {} : _temp;\n  return text => {\n    let normalizedText = text;\n    normalizedText = trim ? normalizedText.trim() : normalizedText;\n    normalizedText = collapseWhitespace ? normalizedText.replace(/\\s+/g, ' ') : normalizedText;\n    return normalizedText;\n  };\n}\n\n/**\n * Constructs a normalizer to pass to functions in matches.js\n * @param {boolean|undefined} trim The user-specified value for `trim`, without\n * any defaulting having been applied\n * @param {boolean|undefined} collapseWhitespace The user-specified value for\n * `collapseWhitespace`, without any defaulting having been applied\n * @param {Function|undefined} normalizer The user-specified normalizer\n * @returns {Function} A normalizer\n */\n\nfunction makeNormalizer(_ref) {\n  let {\n    trim,\n    collapseWhitespace,\n    normalizer\n  } = _ref;\n  if (!normalizer) {\n    // No custom normalizer specified. Just use default.\n    return getDefaultNormalizer({\n      trim,\n      collapseWhitespace\n    });\n  }\n  if (typeof trim !== 'undefined' || typeof collapseWhitespace !== 'undefined') {\n    // They've also specified a value for trim or collapseWhitespace\n    throw new Error('trim and collapseWhitespace are not supported with a normalizer. ' + 'If you want to use the default trim and collapseWhitespace logic in your normalizer, ' + 'use \"getDefaultNormalizer({trim, collapseWhitespace})\" and compose that into your normalizer');\n  }\n  return normalizer;\n}\nfunction matchRegExp(matcher, text) {\n  const match = matcher.test(text);\n  if (matcher.global && matcher.lastIndex !== 0) {\n    console.warn(\"To match all elements we had to reset the lastIndex of the RegExp because the global flag is enabled. We encourage to remove the global flag from the RegExp.\");\n    matcher.lastIndex = 0;\n  }\n  return match;\n}\n\nfunction getNodeText(node) {\n  if (node.matches('input[type=submit], input[type=button], input[type=reset]')) {\n    return node.value;\n  }\n  return Array.from(node.childNodes).filter(child => child.nodeType === TEXT_NODE && Boolean(child.textContent)).map(c => c.textContent).join('');\n}\n\nconst elementRoleList = buildElementRoleList(elementRoles);\n\n/**\n * @param {Element} element -\n * @returns {boolean} - `true` if `element` and its subtree are inaccessible\n */\nfunction isSubtreeInaccessible(element) {\n  if (element.hidden === true) {\n    return true;\n  }\n  if (element.getAttribute('aria-hidden') === 'true') {\n    return true;\n  }\n  const window = element.ownerDocument.defaultView;\n  if (window.getComputedStyle(element).display === 'none') {\n    return true;\n  }\n  return false;\n}\n\n/**\n * Partial implementation https://www.w3.org/TR/wai-aria-1.2/#tree_exclusion\n * which should only be used for elements with a non-presentational role i.e.\n * `role=\"none\"` and `role=\"presentation\"` will not be excluded.\n *\n * Implements aria-hidden semantics (i.e. parent overrides child)\n * Ignores \"Child Presentational: True\" characteristics\n *\n * @param {Element} element -\n * @param {object} [options] -\n * @param {function (element: Element): boolean} options.isSubtreeInaccessible -\n * can be used to return cached results from previous isSubtreeInaccessible calls\n * @returns {boolean} true if excluded, otherwise false\n */\nfunction isInaccessible(element, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    isSubtreeInaccessible: isSubtreeInaccessibleImpl = isSubtreeInaccessible\n  } = options;\n  const window = element.ownerDocument.defaultView;\n  // since visibility is inherited we can exit early\n  if (window.getComputedStyle(element).visibility === 'hidden') {\n    return true;\n  }\n  let currentElement = element;\n  while (currentElement) {\n    if (isSubtreeInaccessibleImpl(currentElement)) {\n      return true;\n    }\n    currentElement = currentElement.parentElement;\n  }\n  return false;\n}\nfunction getImplicitAriaRoles(currentNode) {\n  // eslint bug here:\n  // eslint-disable-next-line no-unused-vars\n  for (const {\n    match,\n    roles\n  } of elementRoleList) {\n    if (match(currentNode)) {\n      return [...roles];\n    }\n  }\n  return [];\n}\nfunction buildElementRoleList(elementRolesMap) {\n  function makeElementSelector(_ref) {\n    let {\n      name,\n      attributes\n    } = _ref;\n    return \"\" + name + attributes.map(_ref2 => {\n      let {\n        name: attributeName,\n        value,\n        constraints = []\n      } = _ref2;\n      const shouldNotExist = constraints.indexOf('undefined') !== -1;\n      const shouldBeNonEmpty = constraints.indexOf('set') !== -1;\n      const hasExplicitValue = typeof value !== 'undefined';\n      if (hasExplicitValue) {\n        return \"[\" + attributeName + \"=\\\"\" + value + \"\\\"]\";\n      } else if (shouldNotExist) {\n        return \":not([\" + attributeName + \"])\";\n      } else if (shouldBeNonEmpty) {\n        return \"[\" + attributeName + \"]:not([\" + attributeName + \"=\\\"\\\"])\";\n      }\n      return \"[\" + attributeName + \"]\";\n    }).join('');\n  }\n  function getSelectorSpecificity(_ref3) {\n    let {\n      attributes = []\n    } = _ref3;\n    return attributes.length;\n  }\n  function bySelectorSpecificity(_ref4, _ref5) {\n    let {\n      specificity: leftSpecificity\n    } = _ref4;\n    let {\n      specificity: rightSpecificity\n    } = _ref5;\n    return rightSpecificity - leftSpecificity;\n  }\n  function match(element) {\n    let {\n      attributes = []\n    } = element;\n\n    // https://github.com/testing-library/dom-testing-library/issues/814\n    const typeTextIndex = attributes.findIndex(attribute => attribute.value && attribute.name === 'type' && attribute.value === 'text');\n    if (typeTextIndex >= 0) {\n      // not using splice to not mutate the attributes array\n      attributes = [...attributes.slice(0, typeTextIndex), ...attributes.slice(typeTextIndex + 1)];\n    }\n    const selector = makeElementSelector({\n      ...element,\n      attributes\n    });\n    return node => {\n      if (typeTextIndex >= 0 && node.type !== 'text') {\n        return false;\n      }\n      return node.matches(selector);\n    };\n  }\n  let result = [];\n\n  // eslint bug here:\n  // eslint-disable-next-line no-unused-vars\n  for (const [element, roles] of elementRolesMap.entries()) {\n    result = [...result, {\n      match: match(element),\n      roles: Array.from(roles),\n      specificity: getSelectorSpecificity(element)\n    }];\n  }\n  return result.sort(bySelectorSpecificity);\n}\nfunction getRoles(container, _temp) {\n  let {\n    hidden = false\n  } = _temp === void 0 ? {} : _temp;\n  function flattenDOM(node) {\n    return [node, ...Array.from(node.children).reduce((acc, child) => [...acc, ...flattenDOM(child)], [])];\n  }\n  return flattenDOM(container).filter(element => {\n    return hidden === false ? isInaccessible(element) === false : true;\n  }).reduce((acc, node) => {\n    let roles = [];\n    // TODO: This violates html-aria which does not allow any role on every element\n    if (node.hasAttribute('role')) {\n      roles = node.getAttribute('role').split(' ').slice(0, 1);\n    } else {\n      roles = getImplicitAriaRoles(node);\n    }\n    return roles.reduce((rolesAcc, role) => Array.isArray(rolesAcc[role]) ? {\n      ...rolesAcc,\n      [role]: [...rolesAcc[role], node]\n    } : {\n      ...rolesAcc,\n      [role]: [node]\n    }, acc);\n  }, {});\n}\nfunction prettyRoles(dom, _ref6) {\n  let {\n    hidden,\n    includeDescription\n  } = _ref6;\n  const roles = getRoles(dom, {\n    hidden\n  });\n  // We prefer to skip generic role, we don't recommend it\n  return Object.entries(roles).filter(_ref7 => {\n    let [role] = _ref7;\n    return role !== 'generic';\n  }).map(_ref8 => {\n    let [role, elements] = _ref8;\n    const delimiterBar = '-'.repeat(50);\n    const elementsString = elements.map(el => {\n      const nameString = \"Name \\\"\" + computeAccessibleName(el, {\n        computedStyleSupportsPseudoElements: getConfig().computedStyleSupportsPseudoElements\n      }) + \"\\\":\\n\";\n      const domString = prettyDOM(el.cloneNode(false));\n      if (includeDescription) {\n        const descriptionString = \"Description \\\"\" + computeAccessibleDescription(el, {\n          computedStyleSupportsPseudoElements: getConfig().computedStyleSupportsPseudoElements\n        }) + \"\\\":\\n\";\n        return \"\" + nameString + descriptionString + domString;\n      }\n      return \"\" + nameString + domString;\n    }).join('\\n\\n');\n    return role + \":\\n\\n\" + elementsString + \"\\n\\n\" + delimiterBar;\n  }).join('\\n');\n}\nconst logRoles = function (dom, _temp2) {\n  let {\n    hidden = false\n  } = _temp2 === void 0 ? {} : _temp2;\n  return console.log(prettyRoles(dom, {\n    hidden\n  }));\n};\n\n/**\n * @param {Element} element -\n * @returns {boolean | undefined} - false/true if (not)selected, undefined if not selectable\n */\nfunction computeAriaSelected(element) {\n  // implicit value from html-aam mappings: https://www.w3.org/TR/html-aam-1.0/#html-attribute-state-and-property-mappings\n  // https://www.w3.org/TR/html-aam-1.0/#details-id-97\n  if (element.tagName === 'OPTION') {\n    return element.selected;\n  }\n\n  // explicit value\n  return checkBooleanAttribute(element, 'aria-selected');\n}\n\n/**\n * @param {Element} element -\n * @returns {boolean} -\n */\nfunction computeAriaBusy(element) {\n  // https://www.w3.org/TR/wai-aria-1.1/#aria-busy\n  return element.getAttribute('aria-busy') === 'true';\n}\n\n/**\n * @param {Element} element -\n * @returns {boolean | undefined} - false/true if (not)checked, undefined if not checked-able\n */\nfunction computeAriaChecked(element) {\n  // implicit value from html-aam mappings: https://www.w3.org/TR/html-aam-1.0/#html-attribute-state-and-property-mappings\n  // https://www.w3.org/TR/html-aam-1.0/#details-id-56\n  // https://www.w3.org/TR/html-aam-1.0/#details-id-67\n  if ('indeterminate' in element && element.indeterminate) {\n    return undefined;\n  }\n  if ('checked' in element) {\n    return element.checked;\n  }\n\n  // explicit value\n  return checkBooleanAttribute(element, 'aria-checked');\n}\n\n/**\n * @param {Element} element -\n * @returns {boolean | undefined} - false/true if (not)pressed, undefined if not press-able\n */\nfunction computeAriaPressed(element) {\n  // https://www.w3.org/TR/wai-aria-1.1/#aria-pressed\n  return checkBooleanAttribute(element, 'aria-pressed');\n}\n\n/**\n * @param {Element} element -\n * @returns {boolean | string | null} -\n */\nfunction computeAriaCurrent(element) {\n  var _ref9, _checkBooleanAttribut;\n  // https://www.w3.org/TR/wai-aria-1.1/#aria-current\n  return (_ref9 = (_checkBooleanAttribut = checkBooleanAttribute(element, 'aria-current')) != null ? _checkBooleanAttribut : element.getAttribute('aria-current')) != null ? _ref9 : false;\n}\n\n/**\n * @param {Element} element -\n * @returns {boolean | undefined} - false/true if (not)expanded, undefined if not expand-able\n */\nfunction computeAriaExpanded(element) {\n  // https://www.w3.org/TR/wai-aria-1.1/#aria-expanded\n  return checkBooleanAttribute(element, 'aria-expanded');\n}\nfunction checkBooleanAttribute(element, attribute) {\n  const attributeValue = element.getAttribute(attribute);\n  if (attributeValue === 'true') {\n    return true;\n  }\n  if (attributeValue === 'false') {\n    return false;\n  }\n  return undefined;\n}\n\n/**\n * @param {Element} element -\n * @returns {number | undefined} - number if implicit heading or aria-level present, otherwise undefined\n */\nfunction computeHeadingLevel(element) {\n  // https://w3c.github.io/html-aam/#el-h1-h6\n  // https://w3c.github.io/html-aam/#el-h1-h6\n  const implicitHeadingLevels = {\n    H1: 1,\n    H2: 2,\n    H3: 3,\n    H4: 4,\n    H5: 5,\n    H6: 6\n  };\n  // explicit aria-level value\n  // https://www.w3.org/TR/wai-aria-1.2/#aria-level\n  const ariaLevelAttribute = element.getAttribute('aria-level') && Number(element.getAttribute('aria-level'));\n  return ariaLevelAttribute || implicitHeadingLevels[element.tagName];\n}\n\n/**\n * @param {Element} element -\n * @returns {number | undefined} -\n */\nfunction computeAriaValueNow(element) {\n  const valueNow = element.getAttribute('aria-valuenow');\n  return valueNow === null ? undefined : +valueNow;\n}\n\n/**\n * @param {Element} element -\n * @returns {number | undefined} -\n */\nfunction computeAriaValueMax(element) {\n  const valueMax = element.getAttribute('aria-valuemax');\n  return valueMax === null ? undefined : +valueMax;\n}\n\n/**\n * @param {Element} element -\n * @returns {number | undefined} -\n */\nfunction computeAriaValueMin(element) {\n  const valueMin = element.getAttribute('aria-valuemin');\n  return valueMin === null ? undefined : +valueMin;\n}\n\n/**\n * @param {Element} element -\n * @returns {string | undefined} -\n */\nfunction computeAriaValueText(element) {\n  const valueText = element.getAttribute('aria-valuetext');\n  return valueText === null ? undefined : valueText;\n}\n\nconst normalize = getDefaultNormalizer();\nfunction escapeRegExp(string) {\n  return string.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n}\nfunction getRegExpMatcher(string) {\n  return new RegExp(escapeRegExp(string.toLowerCase()), 'i');\n}\nfunction makeSuggestion(queryName, element, content, _ref) {\n  let {\n    variant,\n    name\n  } = _ref;\n  let warning = '';\n  const queryOptions = {};\n  const queryArgs = [['Role', 'TestId'].includes(queryName) ? content : getRegExpMatcher(content)];\n  if (name) {\n    queryOptions.name = getRegExpMatcher(name);\n  }\n  if (queryName === 'Role' && isInaccessible(element)) {\n    queryOptions.hidden = true;\n    warning = \"Element is inaccessible. This means that the element and all its children are invisible to screen readers.\\n    If you are using the aria-hidden prop, make sure this is the right choice for your case.\\n    \";\n  }\n  if (Object.keys(queryOptions).length > 0) {\n    queryArgs.push(queryOptions);\n  }\n  const queryMethod = variant + \"By\" + queryName;\n  return {\n    queryName,\n    queryMethod,\n    queryArgs,\n    variant,\n    warning,\n    toString() {\n      if (warning) {\n        console.warn(warning);\n      }\n      let [text, options] = queryArgs;\n      text = typeof text === 'string' ? \"'\" + text + \"'\" : text;\n      options = options ? \", { \" + Object.entries(options).map(_ref2 => {\n        let [k, v] = _ref2;\n        return k + \": \" + v;\n      }).join(', ') + \" }\" : '';\n      return queryMethod + \"(\" + text + options + \")\";\n    }\n  };\n}\nfunction canSuggest(currentMethod, requestedMethod, data) {\n  return data && (!requestedMethod || requestedMethod.toLowerCase() === currentMethod.toLowerCase());\n}\nfunction getSuggestedQuery(element, variant, method) {\n  var _element$getAttribute, _getImplicitAriaRoles;\n  if (variant === void 0) {\n    variant = 'get';\n  }\n  // don't create suggestions for script and style elements\n  if (element.matches(getConfig().defaultIgnore)) {\n    return undefined;\n  }\n\n  //We prefer to suggest something else if the role is generic\n  const role = (_element$getAttribute = element.getAttribute('role')) != null ? _element$getAttribute : (_getImplicitAriaRoles = getImplicitAriaRoles(element)) == null ? void 0 : _getImplicitAriaRoles[0];\n  if (role !== 'generic' && canSuggest('Role', method, role)) {\n    return makeSuggestion('Role', element, role, {\n      variant,\n      name: computeAccessibleName(element, {\n        computedStyleSupportsPseudoElements: getConfig().computedStyleSupportsPseudoElements\n      })\n    });\n  }\n  const labelText = getLabels(document, element).map(label => label.content).join(' ');\n  if (canSuggest('LabelText', method, labelText)) {\n    return makeSuggestion('LabelText', element, labelText, {\n      variant\n    });\n  }\n  const placeholderText = element.getAttribute('placeholder');\n  if (canSuggest('PlaceholderText', method, placeholderText)) {\n    return makeSuggestion('PlaceholderText', element, placeholderText, {\n      variant\n    });\n  }\n  const textContent = normalize(getNodeText(element));\n  if (canSuggest('Text', method, textContent)) {\n    return makeSuggestion('Text', element, textContent, {\n      variant\n    });\n  }\n  if (canSuggest('DisplayValue', method, element.value)) {\n    return makeSuggestion('DisplayValue', element, normalize(element.value), {\n      variant\n    });\n  }\n  const alt = element.getAttribute('alt');\n  if (canSuggest('AltText', method, alt)) {\n    return makeSuggestion('AltText', element, alt, {\n      variant\n    });\n  }\n  const title = element.getAttribute('title');\n  if (canSuggest('Title', method, title)) {\n    return makeSuggestion('Title', element, title, {\n      variant\n    });\n  }\n  const testId = element.getAttribute(getConfig().testIdAttribute);\n  if (canSuggest('TestId', method, testId)) {\n    return makeSuggestion('TestId', element, testId, {\n      variant\n    });\n  }\n  return undefined;\n}\n\n// This is so the stack trace the developer sees is one that's\n// closer to their code (because async stack traces are hard to follow).\nfunction copyStackTrace(target, source) {\n  target.stack = source.stack.replace(source.message, target.message);\n}\nfunction waitFor(callback, _ref) {\n  let {\n    container = getDocument(),\n    timeout = getConfig().asyncUtilTimeout,\n    showOriginalStackTrace = getConfig().showOriginalStackTrace,\n    stackTraceError,\n    interval = 50,\n    onTimeout = error => {\n      Object.defineProperty(error, 'message', {\n        value: getConfig().getElementError(error.message, container).message\n      });\n      return error;\n    },\n    mutationObserverOptions = {\n      subtree: true,\n      childList: true,\n      attributes: true,\n      characterData: true\n    }\n  } = _ref;\n  if (typeof callback !== 'function') {\n    throw new TypeError('Received `callback` arg must be a function');\n  }\n  return new Promise(async (resolve, reject) => {\n    let lastError, intervalId, observer;\n    let finished = false;\n    let promiseStatus = 'idle';\n    const overallTimeoutTimer = setTimeout(handleTimeout, timeout);\n    const usingJestFakeTimers = jestFakeTimersAreEnabled();\n    if (usingJestFakeTimers) {\n      const {\n        unstable_advanceTimersWrapper: advanceTimersWrapper\n      } = getConfig();\n      checkCallback();\n      // this is a dangerous rule to disable because it could lead to an\n      // infinite loop. However, eslint isn't smart enough to know that we're\n      // setting finished inside `onDone` which will be called when we're done\n      // waiting or when we've timed out.\n      // eslint-disable-next-line no-unmodified-loop-condition\n      while (!finished) {\n        if (!jestFakeTimersAreEnabled()) {\n          const error = new Error(\"Changed from using fake timers to real timers while using waitFor. This is not allowed and will result in very strange behavior. Please ensure you're awaiting all async things your test is doing before changing to real timers. For more info, please go to https://github.com/testing-library/dom-testing-library/issues/830\");\n          if (!showOriginalStackTrace) copyStackTrace(error, stackTraceError);\n          reject(error);\n          return;\n        }\n\n        // In this rare case, we *need* to wait for in-flight promises\n        // to resolve before continuing. We don't need to take advantage\n        // of parallelization so we're fine.\n        // https://stackoverflow.com/a/59243586/971592\n        // eslint-disable-next-line no-await-in-loop\n        await advanceTimersWrapper(async () => {\n          // we *could* (maybe should?) use `advanceTimersToNextTimer` but it's\n          // possible that could make this loop go on forever if someone is using\n          // third party code that's setting up recursive timers so rapidly that\n          // the user's timer's don't get a chance to resolve. So we'll advance\n          // by an interval instead. (We have a test for this case).\n          jest.advanceTimersByTime(interval);\n        });\n\n        // Could have timed-out\n        if (finished) {\n          break;\n        }\n        // It's really important that checkCallback is run *before* we flush\n        // in-flight promises. To be honest, I'm not sure why, and I can't quite\n        // think of a way to reproduce the problem in a test, but I spent\n        // an entire day banging my head against a wall on this.\n        checkCallback();\n      }\n    } else {\n      try {\n        checkContainerType(container);\n      } catch (e) {\n        reject(e);\n        return;\n      }\n      intervalId = setInterval(checkRealTimersCallback, interval);\n      const {\n        MutationObserver\n      } = getWindowFromNode(container);\n      observer = new MutationObserver(checkRealTimersCallback);\n      observer.observe(container, mutationObserverOptions);\n      checkCallback();\n    }\n    function onDone(error, result) {\n      finished = true;\n      clearTimeout(overallTimeoutTimer);\n      if (!usingJestFakeTimers) {\n        clearInterval(intervalId);\n        observer.disconnect();\n      }\n      if (error) {\n        reject(error);\n      } else {\n        resolve(result);\n      }\n    }\n    function checkRealTimersCallback() {\n      if (jestFakeTimersAreEnabled()) {\n        const error = new Error(\"Changed from using real timers to fake timers while using waitFor. This is not allowed and will result in very strange behavior. Please ensure you're awaiting all async things your test is doing before changing to fake timers. For more info, please go to https://github.com/testing-library/dom-testing-library/issues/830\");\n        if (!showOriginalStackTrace) copyStackTrace(error, stackTraceError);\n        return reject(error);\n      } else {\n        return checkCallback();\n      }\n    }\n    function checkCallback() {\n      if (promiseStatus === 'pending') return;\n      try {\n        const result = runWithExpensiveErrorDiagnosticsDisabled(callback);\n        if (typeof (result == null ? void 0 : result.then) === 'function') {\n          promiseStatus = 'pending';\n          result.then(resolvedValue => {\n            promiseStatus = 'resolved';\n            onDone(null, resolvedValue);\n          }, rejectedValue => {\n            promiseStatus = 'rejected';\n            lastError = rejectedValue;\n          });\n        } else {\n          onDone(null, result);\n        }\n        // If `callback` throws, wait for the next mutation, interval, or timeout.\n      } catch (error) {\n        // Save the most recent callback error to reject the promise with it in the event of a timeout\n        lastError = error;\n      }\n    }\n    function handleTimeout() {\n      let error;\n      if (lastError) {\n        error = lastError;\n        if (!showOriginalStackTrace && error.name === 'TestingLibraryElementError') {\n          copyStackTrace(error, stackTraceError);\n        }\n      } else {\n        error = new Error('Timed out in waitFor.');\n        if (!showOriginalStackTrace) {\n          copyStackTrace(error, stackTraceError);\n        }\n      }\n      onDone(onTimeout(error), null);\n    }\n  });\n}\nfunction waitForWrapper(callback, options) {\n  // create the error here so its stack trace is as close to the\n  // calling code as possible\n  const stackTraceError = new Error('STACK_TRACE_MESSAGE');\n  return getConfig().asyncWrapper(() => waitFor(callback, {\n    stackTraceError,\n    ...options\n  }));\n}\n\n/*\neslint\n  max-lines-per-function: [\"error\", {\"max\": 200}],\n*/\n\nfunction getElementError(message, container) {\n  return getConfig().getElementError(message, container);\n}\nfunction getMultipleElementsFoundError(message, container) {\n  return getElementError(message + \"\\n\\n(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).\", container);\n}\nfunction queryAllByAttribute(attribute, container, text, _temp) {\n  let {\n    exact = true,\n    collapseWhitespace,\n    trim,\n    normalizer\n  } = _temp === void 0 ? {} : _temp;\n  const matcher = exact ? matches : fuzzyMatches;\n  const matchNormalizer = makeNormalizer({\n    collapseWhitespace,\n    trim,\n    normalizer\n  });\n  return Array.from(container.querySelectorAll(\"[\" + attribute + \"]\")).filter(node => matcher(node.getAttribute(attribute), node, text, matchNormalizer));\n}\nfunction queryByAttribute(attribute, container, text, options) {\n  const els = queryAllByAttribute(attribute, container, text, options);\n  if (els.length > 1) {\n    throw getMultipleElementsFoundError(\"Found multiple elements by [\" + attribute + \"=\" + text + \"]\", container);\n  }\n  return els[0] || null;\n}\n\n// this accepts a query function and returns a function which throws an error\n// if more than one elements is returned, otherwise it returns the first\n// element or null\nfunction makeSingleQuery(allQuery, getMultipleError) {\n  return function (container) {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n    const els = allQuery(container, ...args);\n    if (els.length > 1) {\n      const elementStrings = els.map(element => getElementError(null, element).message).join('\\n\\n');\n      throw getMultipleElementsFoundError(getMultipleError(container, ...args) + \"\\n\\nHere are the matching elements:\\n\\n\" + elementStrings, container);\n    }\n    return els[0] || null;\n  };\n}\nfunction getSuggestionError(suggestion, container) {\n  return getConfig().getElementError(\"A better query is available, try this:\\n\" + suggestion.toString() + \"\\n\", container);\n}\n\n// this accepts a query function and returns a function which throws an error\n// if an empty list of elements is returned\nfunction makeGetAllQuery(allQuery, getMissingError) {\n  return function (container) {\n    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      args[_key2 - 1] = arguments[_key2];\n    }\n    const els = allQuery(container, ...args);\n    if (!els.length) {\n      throw getConfig().getElementError(getMissingError(container, ...args), container);\n    }\n    return els;\n  };\n}\n\n// this accepts a getter query function and returns a function which calls\n// waitFor and passing a function which invokes the getter.\nfunction makeFindQuery(getter) {\n  return (container, text, options, waitForOptions) => {\n    return waitForWrapper(() => {\n      return getter(container, text, options);\n    }, {\n      container,\n      ...waitForOptions\n    });\n  };\n}\nconst wrapSingleQueryWithSuggestion = (query, queryAllByName, variant) => function (container) {\n  for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n    args[_key3 - 1] = arguments[_key3];\n  }\n  const element = query(container, ...args);\n  const [{\n    suggest = getConfig().throwSuggestions\n  } = {}] = args.slice(-1);\n  if (element && suggest) {\n    const suggestion = getSuggestedQuery(element, variant);\n    if (suggestion && !queryAllByName.endsWith(suggestion.queryName)) {\n      throw getSuggestionError(suggestion.toString(), container);\n    }\n  }\n  return element;\n};\nconst wrapAllByQueryWithSuggestion = (query, queryAllByName, variant) => function (container) {\n  for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n    args[_key4 - 1] = arguments[_key4];\n  }\n  const els = query(container, ...args);\n  const [{\n    suggest = getConfig().throwSuggestions\n  } = {}] = args.slice(-1);\n  if (els.length && suggest) {\n    // get a unique list of all suggestion messages.  We are only going to make a suggestion if\n    // all the suggestions are the same\n    const uniqueSuggestionMessages = [...new Set(els.map(element => {\n      var _getSuggestedQuery;\n      return (_getSuggestedQuery = getSuggestedQuery(element, variant)) == null ? void 0 : _getSuggestedQuery.toString();\n    }))];\n    if (\n    // only want to suggest if all the els have the same suggestion.\n    uniqueSuggestionMessages.length === 1 && !queryAllByName.endsWith(\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Can this be null at runtime?\n    getSuggestedQuery(els[0], variant).queryName)) {\n      throw getSuggestionError(uniqueSuggestionMessages[0], container);\n    }\n  }\n  return els;\n};\n\n// TODO: This deviates from the published declarations\n// However, the implementation always required a dyadic (after `container`) not variadic `queryAllBy` considering the implementation of `makeFindQuery`\n// This is at least statically true and can be verified by accepting `QueryMethod<Arguments, HTMLElement[]>`\nfunction buildQueries(queryAllBy, getMultipleError, getMissingError) {\n  const queryBy = wrapSingleQueryWithSuggestion(makeSingleQuery(queryAllBy, getMultipleError), queryAllBy.name, 'query');\n  const getAllBy = makeGetAllQuery(queryAllBy, getMissingError);\n  const getBy = makeSingleQuery(getAllBy, getMultipleError);\n  const getByWithSuggestions = wrapSingleQueryWithSuggestion(getBy, queryAllBy.name, 'get');\n  const getAllWithSuggestions = wrapAllByQueryWithSuggestion(getAllBy, queryAllBy.name.replace('query', 'get'), 'getAll');\n  const findAllBy = makeFindQuery(wrapAllByQueryWithSuggestion(getAllBy, queryAllBy.name, 'findAll'));\n  const findBy = makeFindQuery(wrapSingleQueryWithSuggestion(getBy, queryAllBy.name, 'find'));\n  return [queryBy, getAllWithSuggestions, getByWithSuggestions, findAllBy, findBy];\n}\n\nvar queryHelpers = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  getElementError: getElementError,\n  wrapAllByQueryWithSuggestion: wrapAllByQueryWithSuggestion,\n  wrapSingleQueryWithSuggestion: wrapSingleQueryWithSuggestion,\n  getMultipleElementsFoundError: getMultipleElementsFoundError,\n  queryAllByAttribute: queryAllByAttribute,\n  queryByAttribute: queryByAttribute,\n  makeSingleQuery: makeSingleQuery,\n  makeGetAllQuery: makeGetAllQuery,\n  makeFindQuery: makeFindQuery,\n  buildQueries: buildQueries\n});\n\nfunction queryAllLabels(container) {\n  return Array.from(container.querySelectorAll('label,input')).map(node => {\n    return {\n      node,\n      textToMatch: getLabelContent(node)\n    };\n  }).filter(_ref => {\n    let {\n      textToMatch\n    } = _ref;\n    return textToMatch !== null;\n  });\n}\nconst queryAllLabelsByText = function (container, text, _temp) {\n  let {\n    exact = true,\n    trim,\n    collapseWhitespace,\n    normalizer\n  } = _temp === void 0 ? {} : _temp;\n  const matcher = exact ? matches : fuzzyMatches;\n  const matchNormalizer = makeNormalizer({\n    collapseWhitespace,\n    trim,\n    normalizer\n  });\n  const textToMatchByLabels = queryAllLabels(container);\n  return textToMatchByLabels.filter(_ref2 => {\n    let {\n      node,\n      textToMatch\n    } = _ref2;\n    return matcher(textToMatch, node, text, matchNormalizer);\n  }).map(_ref3 => {\n    let {\n      node\n    } = _ref3;\n    return node;\n  });\n};\nconst queryAllByLabelText = function (container, text, _temp2) {\n  let {\n    selector = '*',\n    exact = true,\n    collapseWhitespace,\n    trim,\n    normalizer\n  } = _temp2 === void 0 ? {} : _temp2;\n  checkContainerType(container);\n  const matcher = exact ? matches : fuzzyMatches;\n  const matchNormalizer = makeNormalizer({\n    collapseWhitespace,\n    trim,\n    normalizer\n  });\n  const matchingLabelledElements = Array.from(container.querySelectorAll('*')).filter(element => {\n    return getRealLabels(element).length || element.hasAttribute('aria-labelledby');\n  }).reduce((labelledElements, labelledElement) => {\n    const labelList = getLabels(container, labelledElement, {\n      selector\n    });\n    labelList.filter(label => Boolean(label.formControl)).forEach(label => {\n      if (matcher(label.content, label.formControl, text, matchNormalizer) && label.formControl) {\n        labelledElements.push(label.formControl);\n      }\n    });\n    const labelsValue = labelList.filter(label => Boolean(label.content)).map(label => label.content);\n    if (matcher(labelsValue.join(' '), labelledElement, text, matchNormalizer)) {\n      labelledElements.push(labelledElement);\n    }\n    if (labelsValue.length > 1) {\n      labelsValue.forEach((labelValue, index) => {\n        if (matcher(labelValue, labelledElement, text, matchNormalizer)) {\n          labelledElements.push(labelledElement);\n        }\n        const labelsFiltered = [...labelsValue];\n        labelsFiltered.splice(index, 1);\n        if (labelsFiltered.length > 1) {\n          if (matcher(labelsFiltered.join(' '), labelledElement, text, matchNormalizer)) {\n            labelledElements.push(labelledElement);\n          }\n        }\n      });\n    }\n    return labelledElements;\n  }, []).concat(queryAllByAttribute('aria-label', container, text, {\n    exact,\n    normalizer: matchNormalizer\n  }));\n  return Array.from(new Set(matchingLabelledElements)).filter(element => element.matches(selector));\n};\n\n// the getAll* query would normally look like this:\n// const getAllByLabelText = makeGetAllQuery(\n//   queryAllByLabelText,\n//   (c, text) => `Unable to find a label with the text of: ${text}`,\n// )\n// however, we can give a more helpful error message than the generic one,\n// so we're writing this one out by hand.\nconst getAllByLabelText = function (container, text) {\n  for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    rest[_key - 2] = arguments[_key];\n  }\n  const els = queryAllByLabelText(container, text, ...rest);\n  if (!els.length) {\n    const labels = queryAllLabelsByText(container, text, ...rest);\n    if (labels.length) {\n      const tagNames = labels.map(label => getTagNameOfElementAssociatedWithLabelViaFor(container, label)).filter(tagName => !!tagName);\n      if (tagNames.length) {\n        throw getConfig().getElementError(tagNames.map(tagName => \"Found a label with the text of: \" + text + \", however the element associated with this label (<\" + tagName + \" />) is non-labellable [https://html.spec.whatwg.org/multipage/forms.html#category-label]. If you really need to label a <\" + tagName + \" />, you can use aria-label or aria-labelledby instead.\").join('\\n\\n'), container);\n      } else {\n        throw getConfig().getElementError(\"Found a label with the text of: \" + text + \", however no form control was found associated to that label. Make sure you're using the \\\"for\\\" attribute or \\\"aria-labelledby\\\" attribute correctly.\", container);\n      }\n    } else {\n      throw getConfig().getElementError(\"Unable to find a label with the text of: \" + text, container);\n    }\n  }\n  return els;\n};\nfunction getTagNameOfElementAssociatedWithLabelViaFor(container, label) {\n  const htmlFor = label.getAttribute('for');\n  if (!htmlFor) {\n    return null;\n  }\n  const element = container.querySelector(\"[id=\\\"\" + htmlFor + \"\\\"]\");\n  return element ? element.tagName.toLowerCase() : null;\n}\n\n// the reason mentioned above is the same reason we're not using buildQueries\nconst getMultipleError$7 = (c, text) => \"Found multiple elements with the text of: \" + text;\nconst queryByLabelText = wrapSingleQueryWithSuggestion(makeSingleQuery(queryAllByLabelText, getMultipleError$7), queryAllByLabelText.name, 'query');\nconst getByLabelText = makeSingleQuery(getAllByLabelText, getMultipleError$7);\nconst findAllByLabelText = makeFindQuery(wrapAllByQueryWithSuggestion(getAllByLabelText, getAllByLabelText.name, 'findAll'));\nconst findByLabelText = makeFindQuery(wrapSingleQueryWithSuggestion(getByLabelText, getAllByLabelText.name, 'find'));\nconst getAllByLabelTextWithSuggestions = wrapAllByQueryWithSuggestion(getAllByLabelText, getAllByLabelText.name, 'getAll');\nconst getByLabelTextWithSuggestions = wrapSingleQueryWithSuggestion(getByLabelText, getAllByLabelText.name, 'get');\nconst queryAllByLabelTextWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByLabelText, queryAllByLabelText.name, 'queryAll');\n\nconst queryAllByPlaceholderText = function () {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  checkContainerType(args[0]);\n  return queryAllByAttribute('placeholder', ...args);\n};\nconst getMultipleError$6 = (c, text) => \"Found multiple elements with the placeholder text of: \" + text;\nconst getMissingError$6 = (c, text) => \"Unable to find an element with the placeholder text of: \" + text;\nconst queryAllByPlaceholderTextWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByPlaceholderText, queryAllByPlaceholderText.name, 'queryAll');\nconst [queryByPlaceholderText, getAllByPlaceholderText, getByPlaceholderText, findAllByPlaceholderText, findByPlaceholderText] = buildQueries(queryAllByPlaceholderText, getMultipleError$6, getMissingError$6);\n\nconst queryAllByText = function (container, text, _temp) {\n  let {\n    selector = '*',\n    exact = true,\n    collapseWhitespace,\n    trim,\n    ignore = getConfig().defaultIgnore,\n    normalizer\n  } = _temp === void 0 ? {} : _temp;\n  checkContainerType(container);\n  const matcher = exact ? matches : fuzzyMatches;\n  const matchNormalizer = makeNormalizer({\n    collapseWhitespace,\n    trim,\n    normalizer\n  });\n  let baseArray = [];\n  if (typeof container.matches === 'function' && container.matches(selector)) {\n    baseArray = [container];\n  }\n  return [...baseArray, ...Array.from(container.querySelectorAll(selector))]\n  // TODO: `matches` according lib.dom.d.ts can get only `string` but according our code it can handle also boolean :)\n  .filter(node => !ignore || !node.matches(ignore)).filter(node => matcher(getNodeText(node), node, text, matchNormalizer));\n};\nconst getMultipleError$5 = (c, text) => \"Found multiple elements with the text: \" + text;\nconst getMissingError$5 = function (c, text, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    collapseWhitespace,\n    trim,\n    normalizer,\n    selector\n  } = options;\n  const matchNormalizer = makeNormalizer({\n    collapseWhitespace,\n    trim,\n    normalizer\n  });\n  const normalizedText = matchNormalizer(text.toString());\n  const isNormalizedDifferent = normalizedText !== text.toString();\n  const isCustomSelector = (selector != null ? selector : '*') !== '*';\n  return \"Unable to find an element with the text: \" + (isNormalizedDifferent ? normalizedText + \" (normalized from '\" + text + \"')\" : text) + (isCustomSelector ? \", which matches selector '\" + selector + \"'\" : '') + \". This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.\";\n};\nconst queryAllByTextWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByText, queryAllByText.name, 'queryAll');\nconst [queryByText, getAllByText, getByText, findAllByText, findByText] = buildQueries(queryAllByText, getMultipleError$5, getMissingError$5);\n\nconst queryAllByDisplayValue = function (container, value, _temp) {\n  let {\n    exact = true,\n    collapseWhitespace,\n    trim,\n    normalizer\n  } = _temp === void 0 ? {} : _temp;\n  checkContainerType(container);\n  const matcher = exact ? matches : fuzzyMatches;\n  const matchNormalizer = makeNormalizer({\n    collapseWhitespace,\n    trim,\n    normalizer\n  });\n  return Array.from(container.querySelectorAll(\"input,textarea,select\")).filter(node => {\n    if (node.tagName === 'SELECT') {\n      const selectedOptions = Array.from(node.options).filter(option => option.selected);\n      return selectedOptions.some(optionNode => matcher(getNodeText(optionNode), optionNode, value, matchNormalizer));\n    } else {\n      return matcher(node.value, node, value, matchNormalizer);\n    }\n  });\n};\nconst getMultipleError$4 = (c, value) => \"Found multiple elements with the display value: \" + value + \".\";\nconst getMissingError$4 = (c, value) => \"Unable to find an element with the display value: \" + value + \".\";\nconst queryAllByDisplayValueWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByDisplayValue, queryAllByDisplayValue.name, 'queryAll');\nconst [queryByDisplayValue, getAllByDisplayValue, getByDisplayValue, findAllByDisplayValue, findByDisplayValue] = buildQueries(queryAllByDisplayValue, getMultipleError$4, getMissingError$4);\n\n// Valid tags are img, input, area and custom elements\nconst VALID_TAG_REGEXP = /^(img|input|area|.+-.+)$/i;\nconst queryAllByAltText = function (container, alt, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  checkContainerType(container);\n  return queryAllByAttribute('alt', container, alt, options).filter(node => VALID_TAG_REGEXP.test(node.tagName));\n};\nconst getMultipleError$3 = (c, alt) => \"Found multiple elements with the alt text: \" + alt;\nconst getMissingError$3 = (c, alt) => \"Unable to find an element with the alt text: \" + alt;\nconst queryAllByAltTextWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByAltText, queryAllByAltText.name, 'queryAll');\nconst [queryByAltText, getAllByAltText, getByAltText, findAllByAltText, findByAltText] = buildQueries(queryAllByAltText, getMultipleError$3, getMissingError$3);\n\nconst isSvgTitle = node => {\n  var _node$parentElement;\n  return node.tagName.toLowerCase() === 'title' && ((_node$parentElement = node.parentElement) == null ? void 0 : _node$parentElement.tagName.toLowerCase()) === 'svg';\n};\nconst queryAllByTitle = function (container, text, _temp) {\n  let {\n    exact = true,\n    collapseWhitespace,\n    trim,\n    normalizer\n  } = _temp === void 0 ? {} : _temp;\n  checkContainerType(container);\n  const matcher = exact ? matches : fuzzyMatches;\n  const matchNormalizer = makeNormalizer({\n    collapseWhitespace,\n    trim,\n    normalizer\n  });\n  return Array.from(container.querySelectorAll('[title], svg > title')).filter(node => matcher(node.getAttribute('title'), node, text, matchNormalizer) || isSvgTitle(node) && matcher(getNodeText(node), node, text, matchNormalizer));\n};\nconst getMultipleError$2 = (c, title) => \"Found multiple elements with the title: \" + title + \".\";\nconst getMissingError$2 = (c, title) => \"Unable to find an element with the title: \" + title + \".\";\nconst queryAllByTitleWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByTitle, queryAllByTitle.name, 'queryAll');\nconst [queryByTitle, getAllByTitle, getByTitle, findAllByTitle, findByTitle] = buildQueries(queryAllByTitle, getMultipleError$2, getMissingError$2);\n\n/* eslint-disable complexity */\nconst queryAllByRole = function (container, role, _temp) {\n  let {\n    hidden = getConfig().defaultHidden,\n    name,\n    description,\n    queryFallbacks = false,\n    selected,\n    busy,\n    checked,\n    pressed,\n    current,\n    level,\n    expanded,\n    value: {\n      now: valueNow,\n      min: valueMin,\n      max: valueMax,\n      text: valueText\n    } = {}\n  } = _temp === void 0 ? {} : _temp;\n  checkContainerType(container);\n  if (selected !== undefined) {\n    var _allRoles$get;\n    // guard against unknown roles\n    if (((_allRoles$get = roles.get(role)) == null ? void 0 : _allRoles$get.props['aria-selected']) === undefined) {\n      throw new Error(\"\\\"aria-selected\\\" is not supported on role \\\"\" + role + \"\\\".\");\n    }\n  }\n  if (busy !== undefined) {\n    var _allRoles$get2;\n    // guard against unknown roles\n    if (((_allRoles$get2 = roles.get(role)) == null ? void 0 : _allRoles$get2.props['aria-busy']) === undefined) {\n      throw new Error(\"\\\"aria-busy\\\" is not supported on role \\\"\" + role + \"\\\".\");\n    }\n  }\n  if (checked !== undefined) {\n    var _allRoles$get3;\n    // guard against unknown roles\n    if (((_allRoles$get3 = roles.get(role)) == null ? void 0 : _allRoles$get3.props['aria-checked']) === undefined) {\n      throw new Error(\"\\\"aria-checked\\\" is not supported on role \\\"\" + role + \"\\\".\");\n    }\n  }\n  if (pressed !== undefined) {\n    var _allRoles$get4;\n    // guard against unknown roles\n    if (((_allRoles$get4 = roles.get(role)) == null ? void 0 : _allRoles$get4.props['aria-pressed']) === undefined) {\n      throw new Error(\"\\\"aria-pressed\\\" is not supported on role \\\"\" + role + \"\\\".\");\n    }\n  }\n  if (current !== undefined) {\n    var _allRoles$get5;\n    /* istanbul ignore next */\n    // guard against unknown roles\n    // All currently released ARIA versions support `aria-current` on all roles.\n    // Leaving this for symmetry and forward compatibility\n    if (((_allRoles$get5 = roles.get(role)) == null ? void 0 : _allRoles$get5.props['aria-current']) === undefined) {\n      throw new Error(\"\\\"aria-current\\\" is not supported on role \\\"\" + role + \"\\\".\");\n    }\n  }\n  if (level !== undefined) {\n    // guard against using `level` option with any role other than `heading`\n    if (role !== 'heading') {\n      throw new Error(\"Role \\\"\" + role + \"\\\" cannot have \\\"level\\\" property.\");\n    }\n  }\n  if (valueNow !== undefined) {\n    var _allRoles$get6;\n    // guard against unknown roles\n    if (((_allRoles$get6 = roles.get(role)) == null ? void 0 : _allRoles$get6.props['aria-valuenow']) === undefined) {\n      throw new Error(\"\\\"aria-valuenow\\\" is not supported on role \\\"\" + role + \"\\\".\");\n    }\n  }\n  if (valueMax !== undefined) {\n    var _allRoles$get7;\n    // guard against unknown roles\n    if (((_allRoles$get7 = roles.get(role)) == null ? void 0 : _allRoles$get7.props['aria-valuemax']) === undefined) {\n      throw new Error(\"\\\"aria-valuemax\\\" is not supported on role \\\"\" + role + \"\\\".\");\n    }\n  }\n  if (valueMin !== undefined) {\n    var _allRoles$get8;\n    // guard against unknown roles\n    if (((_allRoles$get8 = roles.get(role)) == null ? void 0 : _allRoles$get8.props['aria-valuemin']) === undefined) {\n      throw new Error(\"\\\"aria-valuemin\\\" is not supported on role \\\"\" + role + \"\\\".\");\n    }\n  }\n  if (valueText !== undefined) {\n    var _allRoles$get9;\n    // guard against unknown roles\n    if (((_allRoles$get9 = roles.get(role)) == null ? void 0 : _allRoles$get9.props['aria-valuetext']) === undefined) {\n      throw new Error(\"\\\"aria-valuetext\\\" is not supported on role \\\"\" + role + \"\\\".\");\n    }\n  }\n  if (expanded !== undefined) {\n    var _allRoles$get10;\n    // guard against unknown roles\n    if (((_allRoles$get10 = roles.get(role)) == null ? void 0 : _allRoles$get10.props['aria-expanded']) === undefined) {\n      throw new Error(\"\\\"aria-expanded\\\" is not supported on role \\\"\" + role + \"\\\".\");\n    }\n  }\n  const subtreeIsInaccessibleCache = new WeakMap();\n  function cachedIsSubtreeInaccessible(element) {\n    if (!subtreeIsInaccessibleCache.has(element)) {\n      subtreeIsInaccessibleCache.set(element, isSubtreeInaccessible(element));\n    }\n    return subtreeIsInaccessibleCache.get(element);\n  }\n  return Array.from(container.querySelectorAll(\n  // Only query elements that can be matched by the following filters\n  makeRoleSelector(role))).filter(node => {\n    const isRoleSpecifiedExplicitly = node.hasAttribute('role');\n    if (isRoleSpecifiedExplicitly) {\n      const roleValue = node.getAttribute('role');\n      if (queryFallbacks) {\n        return roleValue.split(' ').filter(Boolean).some(roleAttributeToken => roleAttributeToken === role);\n      }\n      // other wise only send the first token to match\n      const [firstRoleAttributeToken] = roleValue.split(' ');\n      return firstRoleAttributeToken === role;\n    }\n    const implicitRoles = getImplicitAriaRoles(node);\n    return implicitRoles.some(implicitRole => {\n      return implicitRole === role;\n    });\n  }).filter(element => {\n    if (selected !== undefined) {\n      return selected === computeAriaSelected(element);\n    }\n    if (busy !== undefined) {\n      return busy === computeAriaBusy(element);\n    }\n    if (checked !== undefined) {\n      return checked === computeAriaChecked(element);\n    }\n    if (pressed !== undefined) {\n      return pressed === computeAriaPressed(element);\n    }\n    if (current !== undefined) {\n      return current === computeAriaCurrent(element);\n    }\n    if (expanded !== undefined) {\n      return expanded === computeAriaExpanded(element);\n    }\n    if (level !== undefined) {\n      return level === computeHeadingLevel(element);\n    }\n    if (valueNow !== undefined || valueMax !== undefined || valueMin !== undefined || valueText !== undefined) {\n      let valueMatches = true;\n      if (valueNow !== undefined) {\n        valueMatches && (valueMatches = valueNow === computeAriaValueNow(element));\n      }\n      if (valueMax !== undefined) {\n        valueMatches && (valueMatches = valueMax === computeAriaValueMax(element));\n      }\n      if (valueMin !== undefined) {\n        valueMatches && (valueMatches = valueMin === computeAriaValueMin(element));\n      }\n      if (valueText !== undefined) {\n        var _computeAriaValueText;\n        valueMatches && (valueMatches = matches((_computeAriaValueText = computeAriaValueText(element)) != null ? _computeAriaValueText : null, element, valueText, text => text));\n      }\n      return valueMatches;\n    }\n    // don't care if aria attributes are unspecified\n    return true;\n  }).filter(element => {\n    if (name === undefined) {\n      // Don't care\n      return true;\n    }\n    return matches(computeAccessibleName(element, {\n      computedStyleSupportsPseudoElements: getConfig().computedStyleSupportsPseudoElements\n    }), element, name, text => text);\n  }).filter(element => {\n    if (description === undefined) {\n      // Don't care\n      return true;\n    }\n    return matches(computeAccessibleDescription(element, {\n      computedStyleSupportsPseudoElements: getConfig().computedStyleSupportsPseudoElements\n    }), element, description, text => text);\n  }).filter(element => {\n    return hidden === false ? isInaccessible(element, {\n      isSubtreeInaccessible: cachedIsSubtreeInaccessible\n    }) === false : true;\n  });\n};\nfunction makeRoleSelector(role) {\n  var _roleElements$get;\n  const explicitRoleSelector = \"*[role~=\\\"\" + role + \"\\\"]\";\n  const roleRelations = (_roleElements$get = roleElements.get(role)) != null ? _roleElements$get : new Set();\n  const implicitRoleSelectors = new Set(Array.from(roleRelations).map(_ref => {\n    let {\n      name\n    } = _ref;\n    return name;\n  }));\n\n  // Current transpilation config sometimes assumes `...` is always applied to arrays.\n  // `...` is equivalent to `Array.prototype.concat` for arrays.\n  // If you replace this code with `[explicitRoleSelector, ...implicitRoleSelectors]`, make sure every transpilation target retains the `...` in favor of `Array.prototype.concat`.\n  return [explicitRoleSelector].concat(Array.from(implicitRoleSelectors)).join(',');\n}\nconst getNameHint = name => {\n  let nameHint = '';\n  if (name === undefined) {\n    nameHint = '';\n  } else if (typeof name === 'string') {\n    nameHint = \" and name \\\"\" + name + \"\\\"\";\n  } else {\n    nameHint = \" and name `\" + name + \"`\";\n  }\n  return nameHint;\n};\nconst getMultipleError$1 = function (c, role, _temp2) {\n  let {\n    name\n  } = _temp2 === void 0 ? {} : _temp2;\n  return \"Found multiple elements with the role \\\"\" + role + \"\\\"\" + getNameHint(name);\n};\nconst getMissingError$1 = function (container, role, _temp3) {\n  let {\n    hidden = getConfig().defaultHidden,\n    name,\n    description\n  } = _temp3 === void 0 ? {} : _temp3;\n  if (getConfig()._disableExpensiveErrorDiagnostics) {\n    return \"Unable to find role=\\\"\" + role + \"\\\"\" + getNameHint(name);\n  }\n  let roles = '';\n  Array.from(container.children).forEach(childElement => {\n    roles += prettyRoles(childElement, {\n      hidden,\n      includeDescription: description !== undefined\n    });\n  });\n  let roleMessage;\n  if (roles.length === 0) {\n    if (hidden === false) {\n      roleMessage = 'There are no accessible roles. But there might be some inaccessible roles. ' + 'If you wish to access them, then set the `hidden` option to `true`. ' + 'Learn more about this here: https://testing-library.com/docs/dom-testing-library/api-queries#byrole';\n    } else {\n      roleMessage = 'There are no available roles.';\n    }\n  } else {\n    roleMessage = (\"\\nHere are the \" + (hidden === false ? 'accessible' : 'available') + \" roles:\\n\\n  \" + roles.replace(/\\n/g, '\\n  ').replace(/\\n\\s\\s\\n/g, '\\n\\n') + \"\\n\").trim();\n  }\n  let nameHint = '';\n  if (name === undefined) {\n    nameHint = '';\n  } else if (typeof name === 'string') {\n    nameHint = \" and name \\\"\" + name + \"\\\"\";\n  } else {\n    nameHint = \" and name `\" + name + \"`\";\n  }\n  let descriptionHint = '';\n  if (description === undefined) {\n    descriptionHint = '';\n  } else if (typeof description === 'string') {\n    descriptionHint = \" and description \\\"\" + description + \"\\\"\";\n  } else {\n    descriptionHint = \" and description `\" + description + \"`\";\n  }\n  return (\"\\nUnable to find an \" + (hidden === false ? 'accessible ' : '') + \"element with the role \\\"\" + role + \"\\\"\" + nameHint + descriptionHint + \"\\n\\n\" + roleMessage).trim();\n};\nconst queryAllByRoleWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByRole, queryAllByRole.name, 'queryAll');\nconst [queryByRole, getAllByRole, getByRole, findAllByRole, findByRole] = buildQueries(queryAllByRole, getMultipleError$1, getMissingError$1);\n\nconst getTestIdAttribute = () => getConfig().testIdAttribute;\nconst queryAllByTestId = function () {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  checkContainerType(args[0]);\n  return queryAllByAttribute(getTestIdAttribute(), ...args);\n};\nconst getMultipleError = (c, id) => \"Found multiple elements by: [\" + getTestIdAttribute() + \"=\\\"\" + id + \"\\\"]\";\nconst getMissingError = (c, id) => \"Unable to find an element by: [\" + getTestIdAttribute() + \"=\\\"\" + id + \"\\\"]\";\nconst queryAllByTestIdWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByTestId, queryAllByTestId.name, 'queryAll');\nconst [queryByTestId, getAllByTestId, getByTestId, findAllByTestId, findByTestId] = buildQueries(queryAllByTestId, getMultipleError, getMissingError);\n\nvar queries = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  queryAllByLabelText: queryAllByLabelTextWithSuggestions,\n  queryByLabelText: queryByLabelText,\n  getAllByLabelText: getAllByLabelTextWithSuggestions,\n  getByLabelText: getByLabelTextWithSuggestions,\n  findAllByLabelText: findAllByLabelText,\n  findByLabelText: findByLabelText,\n  queryByPlaceholderText: queryByPlaceholderText,\n  queryAllByPlaceholderText: queryAllByPlaceholderTextWithSuggestions,\n  getByPlaceholderText: getByPlaceholderText,\n  getAllByPlaceholderText: getAllByPlaceholderText,\n  findAllByPlaceholderText: findAllByPlaceholderText,\n  findByPlaceholderText: findByPlaceholderText,\n  queryByText: queryByText,\n  queryAllByText: queryAllByTextWithSuggestions,\n  getByText: getByText,\n  getAllByText: getAllByText,\n  findAllByText: findAllByText,\n  findByText: findByText,\n  queryByDisplayValue: queryByDisplayValue,\n  queryAllByDisplayValue: queryAllByDisplayValueWithSuggestions,\n  getByDisplayValue: getByDisplayValue,\n  getAllByDisplayValue: getAllByDisplayValue,\n  findAllByDisplayValue: findAllByDisplayValue,\n  findByDisplayValue: findByDisplayValue,\n  queryByAltText: queryByAltText,\n  queryAllByAltText: queryAllByAltTextWithSuggestions,\n  getByAltText: getByAltText,\n  getAllByAltText: getAllByAltText,\n  findAllByAltText: findAllByAltText,\n  findByAltText: findByAltText,\n  queryByTitle: queryByTitle,\n  queryAllByTitle: queryAllByTitleWithSuggestions,\n  getByTitle: getByTitle,\n  getAllByTitle: getAllByTitle,\n  findAllByTitle: findAllByTitle,\n  findByTitle: findByTitle,\n  queryByRole: queryByRole,\n  queryAllByRole: queryAllByRoleWithSuggestions,\n  getAllByRole: getAllByRole,\n  getByRole: getByRole,\n  findAllByRole: findAllByRole,\n  findByRole: findByRole,\n  queryByTestId: queryByTestId,\n  queryAllByTestId: queryAllByTestIdWithSuggestions,\n  getByTestId: getByTestId,\n  getAllByTestId: getAllByTestId,\n  findAllByTestId: findAllByTestId,\n  findByTestId: findByTestId\n});\n\n/**\n * @typedef {{[key: string]: Function}} FuncMap\n */\n\n/**\n * @param {HTMLElement} element container\n * @param {FuncMap} queries object of functions\n * @param {Object} initialValue for reducer\n * @returns {FuncMap} returns object of functions bound to container\n */\nfunction getQueriesForElement(element, queries$1, initialValue) {\n  if (queries$1 === void 0) {\n    queries$1 = queries;\n  }\n  if (initialValue === void 0) {\n    initialValue = {};\n  }\n  return Object.keys(queries$1).reduce((helpers, key) => {\n    const fn = queries$1[key];\n    helpers[key] = fn.bind(null, element);\n    return helpers;\n  }, initialValue);\n}\n\nconst isRemoved = result => !result || Array.isArray(result) && !result.length;\n\n// Check if the element is not present.\n// As the name implies, waitForElementToBeRemoved should check `present` --> `removed`\nfunction initialCheck(elements) {\n  if (isRemoved(elements)) {\n    throw new Error('The element(s) given to waitForElementToBeRemoved are already removed. waitForElementToBeRemoved requires that the element(s) exist(s) before waiting for removal.');\n  }\n}\nasync function waitForElementToBeRemoved(callback, options) {\n  // created here so we get a nice stacktrace\n  const timeoutError = new Error('Timed out in waitForElementToBeRemoved.');\n  if (typeof callback !== 'function') {\n    initialCheck(callback);\n    const elements = Array.isArray(callback) ? callback : [callback];\n    const getRemainingElements = elements.map(element => {\n      let parent = element.parentElement;\n      if (parent === null) return () => null;\n      while (parent.parentElement) parent = parent.parentElement;\n      return () => parent.contains(element) ? element : null;\n    });\n    callback = () => getRemainingElements.map(c => c()).filter(Boolean);\n  }\n  initialCheck(callback());\n  return waitForWrapper(() => {\n    let result;\n    try {\n      result = callback();\n    } catch (error) {\n      if (error.name === 'TestingLibraryElementError') {\n        return undefined;\n      }\n      throw error;\n    }\n    if (!isRemoved(result)) {\n      throw timeoutError;\n    }\n    return undefined;\n  }, options);\n}\n\n/*\neslint\n  require-await: \"off\"\n*/\n\nconst eventMap = {\n  // Clipboard Events\n  copy: {\n    EventType: 'ClipboardEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  cut: {\n    EventType: 'ClipboardEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  paste: {\n    EventType: 'ClipboardEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  // Composition Events\n  compositionEnd: {\n    EventType: 'CompositionEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  compositionStart: {\n    EventType: 'CompositionEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  compositionUpdate: {\n    EventType: 'CompositionEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  // Keyboard Events\n  keyDown: {\n    EventType: 'KeyboardEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      charCode: 0,\n      composed: true\n    }\n  },\n  keyPress: {\n    EventType: 'KeyboardEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      charCode: 0,\n      composed: true\n    }\n  },\n  keyUp: {\n    EventType: 'KeyboardEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      charCode: 0,\n      composed: true\n    }\n  },\n  // Focus Events\n  focus: {\n    EventType: 'FocusEvent',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false,\n      composed: true\n    }\n  },\n  blur: {\n    EventType: 'FocusEvent',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false,\n      composed: true\n    }\n  },\n  focusIn: {\n    EventType: 'FocusEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false,\n      composed: true\n    }\n  },\n  focusOut: {\n    EventType: 'FocusEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false,\n      composed: true\n    }\n  },\n  // Form Events\n  change: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false\n    }\n  },\n  input: {\n    EventType: 'InputEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false,\n      composed: true\n    }\n  },\n  invalid: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: true\n    }\n  },\n  submit: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true\n    }\n  },\n  reset: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true\n    }\n  },\n  // Mouse Events\n  click: {\n    EventType: 'MouseEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      button: 0,\n      composed: true\n    }\n  },\n  contextMenu: {\n    EventType: 'MouseEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  dblClick: {\n    EventType: 'MouseEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  drag: {\n    EventType: 'DragEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  dragEnd: {\n    EventType: 'DragEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false,\n      composed: true\n    }\n  },\n  dragEnter: {\n    EventType: 'DragEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  dragExit: {\n    EventType: 'DragEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false,\n      composed: true\n    }\n  },\n  dragLeave: {\n    EventType: 'DragEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false,\n      composed: true\n    }\n  },\n  dragOver: {\n    EventType: 'DragEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  dragStart: {\n    EventType: 'DragEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  drop: {\n    EventType: 'DragEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  mouseDown: {\n    EventType: 'MouseEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  mouseEnter: {\n    EventType: 'MouseEvent',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false,\n      composed: true\n    }\n  },\n  mouseLeave: {\n    EventType: 'MouseEvent',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false,\n      composed: true\n    }\n  },\n  mouseMove: {\n    EventType: 'MouseEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  mouseOut: {\n    EventType: 'MouseEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  mouseOver: {\n    EventType: 'MouseEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  mouseUp: {\n    EventType: 'MouseEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  // Selection Events\n  select: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false\n    }\n  },\n  // Touch Events\n  touchCancel: {\n    EventType: 'TouchEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false,\n      composed: true\n    }\n  },\n  touchEnd: {\n    EventType: 'TouchEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  touchMove: {\n    EventType: 'TouchEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  touchStart: {\n    EventType: 'TouchEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  // UI Events\n  resize: {\n    EventType: 'UIEvent',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  scroll: {\n    EventType: 'UIEvent',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  // Wheel Events\n  wheel: {\n    EventType: 'WheelEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  // Media Events\n  abort: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  canPlay: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  canPlayThrough: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  durationChange: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  emptied: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  encrypted: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  ended: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  loadedData: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  loadedMetadata: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  loadStart: {\n    EventType: 'ProgressEvent',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  pause: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  play: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  playing: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  progress: {\n    EventType: 'ProgressEvent',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  rateChange: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  seeked: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  seeking: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  stalled: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  suspend: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  timeUpdate: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  volumeChange: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  waiting: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  // Events\n  load: {\n    // TODO: load events can be UIEvent or Event depending on what generated them\n    // This is where this abstraction breaks down.\n    // But the common targets are <img />, <script /> and window.\n    // Neither of these targets receive a UIEvent\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  error: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  // Animation Events\n  animationStart: {\n    EventType: 'AnimationEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false\n    }\n  },\n  animationEnd: {\n    EventType: 'AnimationEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false\n    }\n  },\n  animationIteration: {\n    EventType: 'AnimationEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false\n    }\n  },\n  // Transition Events\n  transitionCancel: {\n    EventType: 'TransitionEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false\n    }\n  },\n  transitionEnd: {\n    EventType: 'TransitionEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true\n    }\n  },\n  transitionRun: {\n    EventType: 'TransitionEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false\n    }\n  },\n  transitionStart: {\n    EventType: 'TransitionEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false\n    }\n  },\n  // pointer events\n  pointerOver: {\n    EventType: 'PointerEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  pointerEnter: {\n    EventType: 'PointerEvent',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  pointerDown: {\n    EventType: 'PointerEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  pointerMove: {\n    EventType: 'PointerEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  pointerUp: {\n    EventType: 'PointerEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  pointerCancel: {\n    EventType: 'PointerEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false,\n      composed: true\n    }\n  },\n  pointerOut: {\n    EventType: 'PointerEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true,\n      composed: true\n    }\n  },\n  pointerLeave: {\n    EventType: 'PointerEvent',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  gotPointerCapture: {\n    EventType: 'PointerEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false,\n      composed: true\n    }\n  },\n  lostPointerCapture: {\n    EventType: 'PointerEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false,\n      composed: true\n    }\n  },\n  // history events\n  popState: {\n    EventType: 'PopStateEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: false\n    }\n  },\n  // window events\n  offline: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  online: {\n    EventType: 'Event',\n    defaultInit: {\n      bubbles: false,\n      cancelable: false\n    }\n  },\n  pageHide: {\n    EventType: 'PageTransitionEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true\n    }\n  },\n  pageShow: {\n    EventType: 'PageTransitionEvent',\n    defaultInit: {\n      bubbles: true,\n      cancelable: true\n    }\n  }\n};\nconst eventAliasMap = {\n  doubleClick: 'dblClick'\n};\n\nfunction fireEvent(element, event) {\n  return getConfig().eventWrapper(() => {\n    if (!event) {\n      throw new Error(\"Unable to fire an event - please provide an event object.\");\n    }\n    if (!element) {\n      throw new Error(\"Unable to fire a \\\"\" + event.type + \"\\\" event - please provide a DOM element.\");\n    }\n    return element.dispatchEvent(event);\n  });\n}\nfunction createEvent(eventName, node, init, _temp) {\n  let {\n    EventType = 'Event',\n    defaultInit = {}\n  } = _temp === void 0 ? {} : _temp;\n  if (!node) {\n    throw new Error(\"Unable to fire a \\\"\" + eventName + \"\\\" event - please provide a DOM element.\");\n  }\n  const eventInit = {\n    ...defaultInit,\n    ...init\n  };\n  const {\n    target: {\n      value,\n      files,\n      ...targetProperties\n    } = {}\n  } = eventInit;\n  if (value !== undefined) {\n    setNativeValue(node, value);\n  }\n  if (files !== undefined) {\n    // input.files is a read-only property so this is not allowed:\n    // input.files = [file]\n    // so we have to use this workaround to set the property\n    Object.defineProperty(node, 'files', {\n      configurable: true,\n      enumerable: true,\n      writable: true,\n      value: files\n    });\n  }\n  Object.assign(node, targetProperties);\n  const window = getWindowFromNode(node);\n  const EventConstructor = window[EventType] || window.Event;\n  let event;\n  /* istanbul ignore else  */\n  if (typeof EventConstructor === 'function') {\n    event = new EventConstructor(eventName, eventInit);\n  } else {\n    // IE11 polyfill from https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill\n    event = window.document.createEvent(EventType);\n    const {\n      bubbles,\n      cancelable,\n      detail,\n      ...otherInit\n    } = eventInit;\n    event.initEvent(eventName, bubbles, cancelable, detail);\n    Object.keys(otherInit).forEach(eventKey => {\n      event[eventKey] = otherInit[eventKey];\n    });\n  }\n\n  // DataTransfer is not supported in jsdom: https://github.com/jsdom/jsdom/issues/1568\n  const dataTransferProperties = ['dataTransfer', 'clipboardData'];\n  dataTransferProperties.forEach(dataTransferKey => {\n    const dataTransferValue = eventInit[dataTransferKey];\n    if (typeof dataTransferValue === 'object') {\n      /* istanbul ignore if  */\n      if (typeof window.DataTransfer === 'function') {\n        Object.defineProperty(event, dataTransferKey, {\n          value: Object.getOwnPropertyNames(dataTransferValue).reduce((acc, propName) => {\n            Object.defineProperty(acc, propName, {\n              value: dataTransferValue[propName]\n            });\n            return acc;\n          }, new window.DataTransfer())\n        });\n      } else {\n        Object.defineProperty(event, dataTransferKey, {\n          value: dataTransferValue\n        });\n      }\n    }\n  });\n  return event;\n}\nObject.keys(eventMap).forEach(key => {\n  const {\n    EventType,\n    defaultInit\n  } = eventMap[key];\n  const eventName = key.toLowerCase();\n  createEvent[key] = (node, init) => createEvent(eventName, node, init, {\n    EventType,\n    defaultInit\n  });\n  fireEvent[key] = (node, init) => fireEvent(node, createEvent[key](node, init));\n});\n\n// function written after some investigation here:\n// https://github.com/facebook/react/issues/10135#issuecomment-401496776\nfunction setNativeValue(element, value) {\n  const {\n    set: valueSetter\n  } = Object.getOwnPropertyDescriptor(element, 'value') || {};\n  const prototype = Object.getPrototypeOf(element);\n  const {\n    set: prototypeValueSetter\n  } = Object.getOwnPropertyDescriptor(prototype, 'value') || {};\n  if (prototypeValueSetter && valueSetter !== prototypeValueSetter) {\n    prototypeValueSetter.call(element, value);\n  } else {\n    /* istanbul ignore if */\n    // eslint-disable-next-line no-lonely-if -- Can't be ignored by istanbul otherwise\n    if (valueSetter) {\n      valueSetter.call(element, value);\n    } else {\n      throw new Error('The given element does not have a value setter');\n    }\n  }\n}\nObject.keys(eventAliasMap).forEach(aliasKey => {\n  const key = eventAliasMap[aliasKey];\n  fireEvent[aliasKey] = function () {\n    return fireEvent[key](...arguments);\n  };\n});\n\n/* eslint complexity:[\"error\", 9] */\n\n// WARNING: `lz-string` only has a default export but statically we assume named exports are allowed\nfunction unindent(string) {\n  // remove white spaces first, to save a few bytes.\n  // testing-playground will reformat on load any ways.\n  return string.replace(/[ \\t]*[\\n][ \\t]*/g, '\\n');\n}\nfunction encode(value) {\n  return lzString.compressToEncodedURIComponent(unindent(value));\n}\nfunction getPlaygroundUrl(markup) {\n  return \"https://testing-playground.com/#markup=\" + encode(markup);\n}\nconst debug = (element, maxLength, options) => Array.isArray(element) ? element.forEach(el => logDOM(el, maxLength, options)) : logDOM(element, maxLength, options);\nconst logTestingPlaygroundURL = function (element) {\n  if (element === void 0) {\n    element = getDocument().body;\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n  if (!element || !('innerHTML' in element)) {\n    console.log(\"The element you're providing isn't a valid DOM element.\");\n    return;\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n  if (!element.innerHTML) {\n    console.log(\"The provided element doesn't have any children.\");\n    return;\n  }\n  const playgroundUrl = getPlaygroundUrl(element.innerHTML);\n  console.log(\"Open this URL in your browser\\n\\n\" + playgroundUrl);\n  return playgroundUrl;\n};\nconst initialValue = {\n  debug,\n  logTestingPlaygroundURL\n};\nconst screen = typeof document !== 'undefined' && document.body // eslint-disable-line @typescript-eslint/no-unnecessary-condition\n? getQueriesForElement(document.body, queries, initialValue) : Object.keys(queries).reduce((helpers, key) => {\n  // `key` is for all intents and purposes the type of keyof `helpers`, which itself is the type of `initialValue` plus incoming properties from `queries`\n  // if `Object.keys(something)` returned Array<keyof typeof something> this explicit type assertion would not be necessary\n  // see https://stackoverflow.com/questions/55012174/why-doesnt-object-keys-return-a-keyof-type-in-typescript\n  helpers[key] = () => {\n    throw new TypeError('For queries bound to document.body a global document has to be available... Learn more: https://testing-library.com/s/screen-global-error');\n  };\n  return helpers;\n}, initialValue);\n\nexport { buildQueries, configure, createEvent, findAllByAltText, findAllByDisplayValue, findAllByLabelText, findAllByPlaceholderText, findAllByRole, findAllByTestId, findAllByText, findAllByTitle, findByAltText, findByDisplayValue, findByLabelText, findByPlaceholderText, findByRole, findByTestId, findByText, findByTitle, fireEvent, getAllByAltText, getAllByDisplayValue, getAllByLabelTextWithSuggestions as getAllByLabelText, getAllByPlaceholderText, getAllByRole, getAllByTestId, getAllByText, getAllByTitle, getByAltText, getByDisplayValue, getByLabelTextWithSuggestions as getByLabelText, getByPlaceholderText, getByRole, getByTestId, getByText, getByTitle, getConfig, getDefaultNormalizer, getElementError, getMultipleElementsFoundError, getNodeText, getQueriesForElement, getRoles, getSuggestedQuery, isInaccessible, logDOM, logRoles, makeFindQuery, makeGetAllQuery, makeSingleQuery, prettyDOM, queries, queryAllByAltTextWithSuggestions as queryAllByAltText, queryAllByAttribute, queryAllByDisplayValueWithSuggestions as queryAllByDisplayValue, queryAllByLabelTextWithSuggestions as queryAllByLabelText, queryAllByPlaceholderTextWithSuggestions as queryAllByPlaceholderText, queryAllByRoleWithSuggestions as queryAllByRole, queryAllByTestIdWithSuggestions as queryAllByTestId, queryAllByTextWithSuggestions as queryAllByText, queryAllByTitleWithSuggestions as queryAllByTitle, queryByAltText, queryByAttribute, queryByDisplayValue, queryByLabelText, queryByPlaceholderText, queryByRole, queryByTestId, queryByText, queryByTitle, queryHelpers, screen, waitForWrapper as waitFor, waitForElementToBeRemoved, getQueriesForElement as within, wrapAllByQueryWithSuggestion, wrapSingleQueryWithSuggestion };\n","/**\n * @source {https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Polyfill}\n * but without thisArg (too hard to type, no need to `this`)\n */\nconst toStr = Object.prototype.toString;\nfunction isCallable(fn: unknown): boolean {\n\treturn typeof fn === \"function\" || toStr.call(fn) === \"[object Function]\";\n}\nfunction toInteger(value: unknown): number {\n\tconst number = Number(value);\n\tif (isNaN(number)) {\n\t\treturn 0;\n\t}\n\tif (number === 0 || !isFinite(number)) {\n\t\treturn number;\n\t}\n\treturn (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n}\nconst maxSafeInteger = Math.pow(2, 53) - 1;\nfunction toLength(value: unknown): number {\n\tconst len = toInteger(value);\n\treturn Math.min(Math.max(len, 0), maxSafeInteger);\n}\n/**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n */\nexport default function arrayFrom<T>(iterable: Iterable<T> | ArrayLike<T>): T[];\n/**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\nexport default function arrayFrom<T, U>(\n\tarrayLike: Iterable<T> | ArrayLike<T>,\n\tmapFn?: (v: T, k: number) => U\n): U[] {\n\t// 1. Let C be the this value.\n\t// edit(@eps1lon): we're not calling it as Array.from\n\tconst C = Array;\n\n\t// 2. Let items be ToObject(arrayLike).\n\tconst items = Object(arrayLike);\n\n\t// 3. ReturnIfAbrupt(items).\n\tif (arrayLike == null) {\n\t\tthrow new TypeError(\n\t\t\t\"Array.from requires an array-like object - not null or undefined\"\n\t\t);\n\t}\n\n\t// 4. If mapfn is undefined, then let mapping be false.\n\t// const mapFn = arguments.length > 1 ? arguments[1] : void undefined;\n\n\tif (typeof mapFn !== \"undefined\") {\n\t\t// 5. else\n\t\t// 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\n\t\tif (!isCallable(mapFn)) {\n\t\t\tthrow new TypeError(\n\t\t\t\t\"Array.from: when provided, the second argument must be a function\"\n\t\t\t);\n\t\t}\n\t}\n\n\t// 10. Let lenValue be Get(items, \"length\").\n\t// 11. Let len be ToLength(lenValue).\n\tconst len = toLength(items.length);\n\n\t// 13. If IsConstructor(C) is true, then\n\t// 13. a. Let A be the result of calling the [[Construct]] internal method\n\t// of C with an argument list containing the single item len.\n\t// 14. a. Else, Let A be ArrayCreate(len).\n\tconst A = isCallable(C) ? Object(new C(len)) : new Array(len);\n\n\t// 16. Let k be 0.\n\tlet k = 0;\n\t// 17. Repeat, while k < len… (also steps a - h)\n\tlet kValue;\n\twhile (k < len) {\n\t\tkValue = items[k];\n\t\tif (mapFn) {\n\t\t\tA[k] = mapFn(kValue, k);\n\t\t} else {\n\t\t\tA[k] = kValue;\n\t\t}\n\t\tk += 1;\n\t}\n\t// 18. Let putStatus be Put(A, \"length\", len, true).\n\tA.length = len;\n\t// 20. Return A.\n\treturn A;\n}\n","declare global {\n\tclass Set<T> {\n\t\t// es2015.collection.d.ts\n\t\tconstructor(items?: T[]);\n\t\tadd(value: T): this;\n\t\tclear(): void;\n\t\tdelete(value: T): boolean;\n\t\tforEach(\n\t\t\tcallbackfn: (value: T, value2: T, set: Set<T>) => void,\n\t\t\tthisArg?: unknown\n\t\t): void;\n\t\thas(value: T): boolean;\n\t\treadonly size: number;\n\n\t\t// es2015.iterable.d.ts\n\t\t// no  implemennted\n\t}\n}\n\n// for environments without Set we fallback to arrays with unique members\nclass SetLike<T> implements Set<T> {\n\tprivate items: T[];\n\n\tconstructor(items: T[] = []) {\n\t\tthis.items = items;\n\t}\n\n\tadd(value: T): this {\n\t\tif (this.has(value) === false) {\n\t\t\tthis.items.push(value);\n\t\t}\n\t\treturn this;\n\t}\n\tclear(): void {\n\t\tthis.items = [];\n\t}\n\tdelete(value: T): boolean {\n\t\tconst previousLength = this.items.length;\n\t\tthis.items = this.items.filter((item) => item !== value);\n\n\t\treturn previousLength !== this.items.length;\n\t}\n\tforEach(callbackfn: (value: T, value2: T, set: Set<T>) => void): void {\n\t\tthis.items.forEach((item) => {\n\t\t\tcallbackfn(item, item, this);\n\t\t});\n\t}\n\thas(value: T): boolean {\n\t\treturn this.items.indexOf(value) !== -1;\n\t}\n\n\tget size(): number {\n\t\treturn this.items.length;\n\t}\n}\n\nexport default typeof Set === \"undefined\" ? Set : SetLike;\n","// https://w3c.github.io/html-aria/#document-conformance-requirements-for-use-of-aria-attributes-in-html\n\n/**\n * Safe Element.localName for all supported environments\n * @param element\n */\nexport function getLocalName(element: Element): string {\n\treturn (\n\t\t// eslint-disable-next-line no-restricted-properties -- actual guard for environments without localName\n\t\telement.localName ??\n\t\t// eslint-disable-next-line no-restricted-properties -- required for the fallback\n\t\telement.tagName.toLowerCase()\n\t);\n}\n\nconst localNameToRoleMappings: Record<string, string | undefined> = {\n\tarticle: \"article\",\n\taside: \"complementary\",\n\tbutton: \"button\",\n\tdatalist: \"listbox\",\n\tdd: \"definition\",\n\tdetails: \"group\",\n\tdialog: \"dialog\",\n\tdt: \"term\",\n\tfieldset: \"group\",\n\tfigure: \"figure\",\n\t// WARNING: Only with an accessible name\n\tform: \"form\",\n\tfooter: \"contentinfo\",\n\th1: \"heading\",\n\th2: \"heading\",\n\th3: \"heading\",\n\th4: \"heading\",\n\th5: \"heading\",\n\th6: \"heading\",\n\theader: \"banner\",\n\thr: \"separator\",\n\thtml: \"document\",\n\tlegend: \"legend\",\n\tli: \"listitem\",\n\tmath: \"math\",\n\tmain: \"main\",\n\tmenu: \"list\",\n\tnav: \"navigation\",\n\tol: \"list\",\n\toptgroup: \"group\",\n\t// WARNING: Only in certain context\n\toption: \"option\",\n\toutput: \"status\",\n\tprogress: \"progressbar\",\n\t// WARNING: Only with an accessible name\n\tsection: \"region\",\n\tsummary: \"button\",\n\ttable: \"table\",\n\ttbody: \"rowgroup\",\n\ttextarea: \"textbox\",\n\ttfoot: \"rowgroup\",\n\t// WARNING: Only in certain context\n\ttd: \"cell\",\n\tth: \"columnheader\",\n\tthead: \"rowgroup\",\n\ttr: \"row\",\n\tul: \"list\",\n};\n\nconst prohibitedAttributes: Record<string, Set<string>> = {\n\tcaption: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tcode: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tdeletion: new Set([\"aria-label\", \"aria-labelledby\"]),\n\temphasis: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tgeneric: new Set([\"aria-label\", \"aria-labelledby\", \"aria-roledescription\"]),\n\tinsertion: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tparagraph: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tpresentation: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tstrong: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tsubscript: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tsuperscript: new Set([\"aria-label\", \"aria-labelledby\"]),\n};\n\n/**\n *\n * @param element\n * @param role The role used for this element. This is specified to control whether you want to use the implicit or explicit role.\n */\nfunction hasGlobalAriaAttributes(element: Element, role: string): boolean {\n\t// https://rawgit.com/w3c/aria/stable/#global_states\n\t// commented attributes are deprecated\n\treturn [\n\t\t\"aria-atomic\",\n\t\t\"aria-busy\",\n\t\t\"aria-controls\",\n\t\t\"aria-current\",\n\t\t\"aria-describedby\",\n\t\t\"aria-details\",\n\t\t// \"disabled\",\n\t\t\"aria-dropeffect\",\n\t\t// \"errormessage\",\n\t\t\"aria-flowto\",\n\t\t\"aria-grabbed\",\n\t\t// \"haspopup\",\n\t\t\"aria-hidden\",\n\t\t// \"invalid\",\n\t\t\"aria-keyshortcuts\",\n\t\t\"aria-label\",\n\t\t\"aria-labelledby\",\n\t\t\"aria-live\",\n\t\t\"aria-owns\",\n\t\t\"aria-relevant\",\n\t\t\"aria-roledescription\",\n\t].some((attributeName) => {\n\t\treturn (\n\t\t\telement.hasAttribute(attributeName) &&\n\t\t\t!prohibitedAttributes[role]?.has(attributeName)\n\t\t);\n\t});\n}\n\nfunction ignorePresentationalRole(\n\telement: Element,\n\timplicitRole: string\n): boolean {\n\t// https://rawgit.com/w3c/aria/stable/#conflict_resolution_presentation_none\n\treturn hasGlobalAriaAttributes(element, implicitRole);\n}\n\nexport default function getRole(element: Element): string | null {\n\tconst explicitRole = getExplicitRole(element);\n\tif (explicitRole === null || explicitRole === \"presentation\") {\n\t\tconst implicitRole = getImplicitRole(element);\n\t\tif (\n\t\t\texplicitRole !== \"presentation\" ||\n\t\t\tignorePresentationalRole(element, implicitRole || \"\")\n\t\t) {\n\t\t\treturn implicitRole;\n\t\t}\n\t}\n\n\treturn explicitRole;\n}\n\nfunction getImplicitRole(element: Element): string | null {\n\tconst mappedByTag = localNameToRoleMappings[getLocalName(element)];\n\tif (mappedByTag !== undefined) {\n\t\treturn mappedByTag;\n\t}\n\n\tswitch (getLocalName(element)) {\n\t\tcase \"a\":\n\t\tcase \"area\":\n\t\tcase \"link\":\n\t\t\tif (element.hasAttribute(\"href\")) {\n\t\t\t\treturn \"link\";\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"img\":\n\t\t\tif (\n\t\t\t\telement.getAttribute(\"alt\") === \"\" &&\n\t\t\t\t!ignorePresentationalRole(element, \"img\")\n\t\t\t) {\n\t\t\t\treturn \"presentation\";\n\t\t\t}\n\t\t\treturn \"img\";\n\t\tcase \"input\": {\n\t\t\tconst { type } = element as HTMLInputElement;\n\t\t\tswitch (type) {\n\t\t\t\tcase \"button\":\n\t\t\t\tcase \"image\":\n\t\t\t\tcase \"reset\":\n\t\t\t\tcase \"submit\":\n\t\t\t\t\treturn \"button\";\n\t\t\t\tcase \"checkbox\":\n\t\t\t\tcase \"radio\":\n\t\t\t\t\treturn type;\n\t\t\t\tcase \"range\":\n\t\t\t\t\treturn \"slider\";\n\t\t\t\tcase \"email\":\n\t\t\t\tcase \"tel\":\n\t\t\t\tcase \"text\":\n\t\t\t\tcase \"url\":\n\t\t\t\t\tif (element.hasAttribute(\"list\")) {\n\t\t\t\t\t\treturn \"combobox\";\n\t\t\t\t\t}\n\t\t\t\t\treturn \"textbox\";\n\n\t\t\t\tcase \"search\":\n\t\t\t\t\tif (element.hasAttribute(\"list\")) {\n\t\t\t\t\t\treturn \"combobox\";\n\t\t\t\t\t}\n\t\t\t\t\treturn \"searchbox\";\n\t\t\t\tcase \"number\":\n\t\t\t\t\treturn \"spinbutton\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tcase \"select\":\n\t\t\tif (\n\t\t\t\telement.hasAttribute(\"multiple\") ||\n\t\t\t\t(element as HTMLSelectElement).size > 1\n\t\t\t) {\n\t\t\t\treturn \"listbox\";\n\t\t\t}\n\t\t\treturn \"combobox\";\n\t}\n\treturn null;\n}\n\nfunction getExplicitRole(element: Element): string | null {\n\tconst role = element.getAttribute(\"role\");\n\tif (role !== null) {\n\t\tconst explicitRole = role.trim().split(\" \")[0];\n\t\t// String.prototype.split(sep, limit) will always return an array with at least one member\n\t\t// as long as limit is either undefined or > 0\n\t\tif (explicitRole.length > 0) {\n\t\t\treturn explicitRole;\n\t\t}\n\t}\n\n\treturn null;\n}\n","export { getLocalName } from \"./getRole\";\nimport getRole, { getLocalName } from \"./getRole\";\n\nexport function isElement(node: Node | null): node is Element {\n\treturn node !== null && node.nodeType === node.ELEMENT_NODE;\n}\n\nexport function isHTMLTableCaptionElement(\n\tnode: Node | null\n): node is HTMLTableCaptionElement {\n\treturn isElement(node) && getLocalName(node) === \"caption\";\n}\n\nexport function isHTMLInputElement(\n\tnode: Node | null\n): node is HTMLInputElement {\n\treturn isElement(node) && getLocalName(node) === \"input\";\n}\n\nexport function isHTMLOptGroupElement(\n\tnode: Node | null\n): node is HTMLOptGroupElement {\n\treturn isElement(node) && getLocalName(node) === \"optgroup\";\n}\n\nexport function isHTMLSelectElement(\n\tnode: Node | null\n): node is HTMLSelectElement {\n\treturn isElement(node) && getLocalName(node) === \"select\";\n}\n\nexport function isHTMLTableElement(\n\tnode: Node | null\n): node is HTMLTableElement {\n\treturn isElement(node) && getLocalName(node) === \"table\";\n}\n\nexport function isHTMLTextAreaElement(\n\tnode: Node | null\n): node is HTMLTextAreaElement {\n\treturn isElement(node) && getLocalName(node) === \"textarea\";\n}\n\nexport function safeWindow(node: Node): Window {\n\tconst { defaultView } =\n\t\tnode.ownerDocument === null ? (node as Document) : node.ownerDocument;\n\n\tif (defaultView === null) {\n\t\tthrow new TypeError(\"no window available\");\n\t}\n\treturn defaultView;\n}\n\nexport function isHTMLFieldSetElement(\n\tnode: Node | null\n): node is HTMLFieldSetElement {\n\treturn isElement(node) && getLocalName(node) === \"fieldset\";\n}\n\nexport function isHTMLLegendElement(\n\tnode: Node | null\n): node is HTMLLegendElement {\n\treturn isElement(node) && getLocalName(node) === \"legend\";\n}\n\nexport function isHTMLSlotElement(node: Node | null): node is HTMLSlotElement {\n\treturn isElement(node) && getLocalName(node) === \"slot\";\n}\n\nexport function isSVGElement(node: Node | null): node is SVGElement {\n\treturn isElement(node) && (node as SVGElement).ownerSVGElement !== undefined;\n}\n\nexport function isSVGSVGElement(node: Node | null): node is SVGSVGElement {\n\treturn isElement(node) && getLocalName(node) === \"svg\";\n}\n\nexport function isSVGTitleElement(node: Node | null): node is SVGTitleElement {\n\treturn isSVGElement(node) && getLocalName(node) === \"title\";\n}\n\n/**\n *\n * @param {Node} node -\n * @param {string} attributeName -\n * @returns {Element[]} -\n */\nexport function queryIdRefs(node: Node, attributeName: string): Element[] {\n\tif (isElement(node) && node.hasAttribute(attributeName)) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- safe due to hasAttribute check\n\t\tconst ids = node.getAttribute(attributeName)!.split(\" \");\n\n\t\t// Browsers that don't support shadow DOM won't have getRootNode\n\t\tconst root = node.getRootNode\n\t\t\t? (node.getRootNode() as Document | ShadowRoot)\n\t\t\t: node.ownerDocument;\n\n\t\treturn ids\n\t\t\t.map((id) => root.getElementById(id))\n\t\t\t.filter(\n\t\t\t\t(element: Element | null): element is Element => element !== null\n\t\t\t\t// TODO: why does this not narrow?\n\t\t\t) as Element[];\n\t}\n\n\treturn [];\n}\n\nexport function hasAnyConcreteRoles(\n\tnode: Node,\n\troles: Array<string | null>\n): node is Element {\n\tif (isElement(node)) {\n\t\treturn roles.indexOf(getRole(node)) !== -1;\n\t}\n\treturn false;\n}\n","/**\n * implements https://w3c.github.io/accname/\n */\nimport ArrayFrom from \"./polyfills/array.from\";\nimport SetLike from \"./polyfills/SetLike\";\nimport {\n\thasAnyConcreteRoles,\n\tisElement,\n\tisHTMLTableCaptionElement,\n\tisHTMLInputElement,\n\tisHTMLSelectElement,\n\tisHTMLTextAreaElement,\n\tsafeWindow,\n\tisHTMLFieldSetElement,\n\tisHTMLLegendElement,\n\tisHTMLOptGroupElement,\n\tisHTMLTableElement,\n\tisHTMLSlotElement,\n\tisSVGSVGElement,\n\tisSVGTitleElement,\n\tqueryIdRefs,\n\tgetLocalName,\n} from \"./util\";\n\n/**\n *  A string of characters where all carriage returns, newlines, tabs, and form-feeds are replaced with a single space, and multiple spaces are reduced to a single space. The string contains only character data; it does not contain any markup.\n */\ntype FlatString = string & {\n\t__flat: true;\n};\n\n/**\n * interface for an options-bag where `window.getComputedStyle` can be mocked\n */\nexport interface ComputeTextAlternativeOptions {\n\tcompute?: \"description\" | \"name\";\n\t/**\n\t * Set to true if window.computedStyle supports the second argument.\n\t * This should be false in JSDOM. Otherwise JSDOM will log console errors.\n\t */\n\tcomputedStyleSupportsPseudoElements?: boolean;\n\t/**\n\t * mock window.getComputedStyle. Needs `content`, `display` and `visibility`\n\t */\n\tgetComputedStyle?: typeof window.getComputedStyle;\n\t/**\n\t * Set to `true` if you want to include hidden elements in the accessible name and description computation.\n\t * Skips 2A in https://w3c.github.io/accname/#computation-steps.\n\t * @default false\n\t */\n\thidden?: boolean;\n}\n\n/**\n *\n * @param {string} string -\n * @returns {FlatString} -\n */\nfunction asFlatString(s: string): FlatString {\n\treturn s.trim().replace(/\\s\\s+/g, \" \") as FlatString;\n}\n\n/**\n *\n * @param node -\n * @param options - These are not optional to prevent accidentally calling it without options in `computeAccessibleName`\n * @returns {boolean} -\n */\nfunction isHidden(\n\tnode: Node,\n\tgetComputedStyleImplementation: typeof window.getComputedStyle\n): node is Element {\n\tif (!isElement(node)) {\n\t\treturn false;\n\t}\n\n\tif (\n\t\tnode.hasAttribute(\"hidden\") ||\n\t\tnode.getAttribute(\"aria-hidden\") === \"true\"\n\t) {\n\t\treturn true;\n\t}\n\n\tconst style = getComputedStyleImplementation(node);\n\treturn (\n\t\tstyle.getPropertyValue(\"display\") === \"none\" ||\n\t\tstyle.getPropertyValue(\"visibility\") === \"hidden\"\n\t);\n}\n\n/**\n * @param {Node} node -\n * @returns {boolean} - As defined in step 2E of https://w3c.github.io/accname/#mapping_additional_nd_te\n */\nfunction isControl(node: Node): boolean {\n\treturn (\n\t\thasAnyConcreteRoles(node, [\"button\", \"combobox\", \"listbox\", \"textbox\"]) ||\n\t\thasAbstractRole(node, \"range\")\n\t);\n}\n\nfunction hasAbstractRole(node: Node, role: string): node is Element {\n\tif (!isElement(node)) {\n\t\treturn false;\n\t}\n\n\tswitch (role) {\n\t\tcase \"range\":\n\t\t\treturn hasAnyConcreteRoles(node, [\n\t\t\t\t\"meter\",\n\t\t\t\t\"progressbar\",\n\t\t\t\t\"scrollbar\",\n\t\t\t\t\"slider\",\n\t\t\t\t\"spinbutton\",\n\t\t\t]);\n\t\tdefault:\n\t\t\tthrow new TypeError(\n\t\t\t\t`No knowledge about abstract role '${role}'. This is likely a bug :(`\n\t\t\t);\n\t}\n}\n\n/**\n * element.querySelectorAll but also considers owned tree\n * @param element\n * @param selectors\n */\nfunction querySelectorAllSubtree(\n\telement: Element,\n\tselectors: string\n): Element[] {\n\tconst elements = ArrayFrom(element.querySelectorAll(selectors));\n\n\tqueryIdRefs(element, \"aria-owns\").forEach((root) => {\n\t\t// babel transpiles this assuming an iterator\n\t\telements.push.apply(elements, ArrayFrom(root.querySelectorAll(selectors)));\n\t});\n\n\treturn elements;\n}\n\nfunction querySelectedOptions(listbox: Element): ArrayLike<Element> {\n\tif (isHTMLSelectElement(listbox)) {\n\t\t// IE11 polyfill\n\t\treturn (\n\t\t\tlistbox.selectedOptions || querySelectorAllSubtree(listbox, \"[selected]\")\n\t\t);\n\t}\n\treturn querySelectorAllSubtree(listbox, '[aria-selected=\"true\"]');\n}\n\nfunction isMarkedPresentational(node: Node): node is Element {\n\treturn hasAnyConcreteRoles(node, [\"none\", \"presentation\"]);\n}\n\n/**\n * Elements specifically listed in html-aam\n *\n * We don't need this for `label` or `legend` elements.\n * Their implicit roles already allow \"naming from content\".\n *\n * sources:\n *\n * - https://w3c.github.io/html-aam/#table-element\n */\nfunction isNativeHostLanguageTextAlternativeElement(\n\tnode: Node\n): node is Element {\n\treturn isHTMLTableCaptionElement(node);\n}\n\n/**\n * https://w3c.github.io/aria/#namefromcontent\n */\nfunction allowsNameFromContent(node: Node): boolean {\n\treturn hasAnyConcreteRoles(node, [\n\t\t\"button\",\n\t\t\"cell\",\n\t\t\"checkbox\",\n\t\t\"columnheader\",\n\t\t\"gridcell\",\n\t\t\"heading\",\n\t\t\"label\",\n\t\t\"legend\",\n\t\t\"link\",\n\t\t\"menuitem\",\n\t\t\"menuitemcheckbox\",\n\t\t\"menuitemradio\",\n\t\t\"option\",\n\t\t\"radio\",\n\t\t\"row\",\n\t\t\"rowheader\",\n\t\t\"switch\",\n\t\t\"tab\",\n\t\t\"tooltip\",\n\t\t\"treeitem\",\n\t]);\n}\n\n/**\n * TODO https://github.com/eps1lon/dom-accessibility-api/issues/100\n */\nfunction isDescendantOfNativeHostLanguageTextAlternativeElement(\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars -- not implemented yet\n\tnode: Node\n): boolean {\n\treturn false;\n}\n\nfunction getValueOfTextbox(element: Element): string {\n\tif (isHTMLInputElement(element) || isHTMLTextAreaElement(element)) {\n\t\treturn element.value;\n\t}\n\t// https://github.com/eps1lon/dom-accessibility-api/issues/4\n\treturn element.textContent || \"\";\n}\n\nfunction getTextualContent(declaration: CSSStyleDeclaration): string {\n\tconst content = declaration.getPropertyValue(\"content\");\n\tif (/^[\"'].*[\"']$/.test(content)) {\n\t\treturn content.slice(1, -1);\n\t}\n\treturn \"\";\n}\n\n/**\n * https://html.spec.whatwg.org/multipage/forms.html#category-label\n * TODO: form-associated custom elements\n * @param element\n */\nfunction isLabelableElement(element: Element): boolean {\n\tconst localName = getLocalName(element);\n\n\treturn (\n\t\tlocalName === \"button\" ||\n\t\t(localName === \"input\" && element.getAttribute(\"type\") !== \"hidden\") ||\n\t\tlocalName === \"meter\" ||\n\t\tlocalName === \"output\" ||\n\t\tlocalName === \"progress\" ||\n\t\tlocalName === \"select\" ||\n\t\tlocalName === \"textarea\"\n\t);\n}\n\n/**\n * > [...], then the first such descendant in tree order is the label element's labeled control.\n * -- https://html.spec.whatwg.org/multipage/forms.html#labeled-control\n * @param element\n */\nfunction findLabelableElement(element: Element): Element | null {\n\tif (isLabelableElement(element)) {\n\t\treturn element;\n\t}\n\tlet labelableElement: Element | null = null;\n\telement.childNodes.forEach((childNode) => {\n\t\tif (labelableElement === null && isElement(childNode)) {\n\t\t\tconst descendantLabelableElement = findLabelableElement(childNode);\n\t\t\tif (descendantLabelableElement !== null) {\n\t\t\t\tlabelableElement = descendantLabelableElement;\n\t\t\t}\n\t\t}\n\t});\n\n\treturn labelableElement;\n}\n\n/**\n * Polyfill of HTMLLabelElement.control\n * https://html.spec.whatwg.org/multipage/forms.html#labeled-control\n * @param label\n */\nfunction getControlOfLabel(label: HTMLLabelElement): Element | null {\n\tif (label.control !== undefined) {\n\t\treturn label.control;\n\t}\n\n\tconst htmlFor = label.getAttribute(\"for\");\n\tif (htmlFor !== null) {\n\t\treturn label.ownerDocument.getElementById(htmlFor);\n\t}\n\n\treturn findLabelableElement(label);\n}\n\n/**\n * Polyfill of HTMLInputElement.labels\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/labels\n * @param element\n */\nfunction getLabels(element: Element): HTMLLabelElement[] | null {\n\tconst labelsProperty = (element as HTMLInputElement).labels as\n\t\t| HTMLInputElement[\"labels\"]\n\t\t| undefined;\n\n\tif (labelsProperty === null) {\n\t\treturn labelsProperty;\n\t}\n\tif (labelsProperty !== undefined) {\n\t\treturn ArrayFrom(labelsProperty);\n\t}\n\n\t// polyfill\n\tif (!isLabelableElement(element)) {\n\t\treturn null;\n\t}\n\tconst document = element.ownerDocument;\n\n\treturn ArrayFrom(document.querySelectorAll(\"label\")).filter((label) => {\n\t\treturn getControlOfLabel(label) === element;\n\t});\n}\n\n/**\n * Gets the contents of a slot used for computing the accname\n * @param slot\n */\nfunction getSlotContents(slot: HTMLSlotElement): Node[] {\n\t// Computing the accessible name for elements containing slots is not\n\t// currently defined in the spec. This implementation reflects the\n\t// behavior of NVDA 2020.2/Firefox 81 and iOS VoiceOver/Safari 13.6.\n\tconst assignedNodes = slot.assignedNodes();\n\tif (assignedNodes.length === 0) {\n\t\t// if no nodes are assigned to the slot, it displays the default content\n\t\treturn ArrayFrom(slot.childNodes);\n\t}\n\treturn assignedNodes;\n}\n\n/**\n * implements https://w3c.github.io/accname/#mapping_additional_nd_te\n * @param root\n * @param options\n * @returns\n */\nexport function computeTextAlternative(\n\troot: Element,\n\toptions: ComputeTextAlternativeOptions = {}\n): string {\n\tconst consultedNodes = new SetLike<Node>();\n\n\tconst window = safeWindow(root);\n\tconst {\n\t\tcompute = \"name\",\n\t\tcomputedStyleSupportsPseudoElements = options.getComputedStyle !==\n\t\t\tundefined,\n\t\t// This might be overengineered. I don't know what happens if I call\n\t\t// window.getComputedStyle(elementFromAnotherWindow) or if I don't bind it\n\t\t// the type declarations don't require a `this`\n\t\t// eslint-disable-next-line no-restricted-properties\n\t\tgetComputedStyle = window.getComputedStyle.bind(window),\n\t\thidden = false,\n\t} = options;\n\n\t// 2F.i\n\tfunction computeMiscTextAlternative(\n\t\tnode: Node,\n\t\tcontext: { isEmbeddedInLabel: boolean; isReferenced: boolean }\n\t): string {\n\t\tlet accumulatedText = \"\";\n\t\tif (isElement(node) && computedStyleSupportsPseudoElements) {\n\t\t\tconst pseudoBefore = getComputedStyle(node, \"::before\");\n\t\t\tconst beforeContent = getTextualContent(pseudoBefore);\n\t\t\taccumulatedText = `${beforeContent} ${accumulatedText}`;\n\t\t}\n\n\t\t// FIXME: Including aria-owns is not defined in the spec\n\t\t// But it is required in the web-platform-test\n\t\tconst childNodes = isHTMLSlotElement(node)\n\t\t\t? getSlotContents(node)\n\t\t\t: ArrayFrom(node.childNodes).concat(queryIdRefs(node, \"aria-owns\"));\n\t\tchildNodes.forEach((child) => {\n\t\t\tconst result = computeTextAlternative(child, {\n\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\tisReferenced: false,\n\t\t\t\trecursion: true,\n\t\t\t});\n\t\t\t// TODO: Unclear why display affects delimiter\n\t\t\t// see https://github.com/w3c/accname/issues/3\n\t\t\tconst display = isElement(child)\n\t\t\t\t? getComputedStyle(child).getPropertyValue(\"display\")\n\t\t\t\t: \"inline\";\n\t\t\tconst separator = display !== \"inline\" ? \" \" : \"\";\n\t\t\t// trailing separator for wpt tests\n\t\t\taccumulatedText += `${separator}${result}${separator}`;\n\t\t});\n\n\t\tif (isElement(node) && computedStyleSupportsPseudoElements) {\n\t\t\tconst pseudoAfter = getComputedStyle(node, \"::after\");\n\t\t\tconst afterContent = getTextualContent(pseudoAfter);\n\t\t\taccumulatedText = `${accumulatedText} ${afterContent}`;\n\t\t}\n\n\t\treturn accumulatedText.trim();\n\t}\n\n\t/**\n\t *\n\t * @param element\n\t * @param attributeName\n\t * @returns A string non-empty string or `null`\n\t */\n\tfunction useAttribute(\n\t\telement: Element,\n\t\tattributeName: string\n\t): string | null {\n\t\tconst attribute = element.getAttributeNode(attributeName);\n\t\tif (\n\t\t\tattribute !== null &&\n\t\t\t!consultedNodes.has(attribute) &&\n\t\t\tattribute.value.trim() !== \"\"\n\t\t) {\n\t\t\tconsultedNodes.add(attribute);\n\t\t\treturn attribute.value;\n\t\t}\n\t\treturn null;\n\t}\n\n\tfunction computeTooltipAttributeValue(node: Node): string | null {\n\t\tif (!isElement(node)) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn useAttribute(node, \"title\");\n\t}\n\n\tfunction computeElementTextAlternative(node: Node): string | null {\n\t\tif (!isElement(node)) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// https://w3c.github.io/html-aam/#fieldset-and-legend-elements\n\t\tif (isHTMLFieldSetElement(node)) {\n\t\t\tconsultedNodes.add(node);\n\t\t\tconst children = ArrayFrom(node.childNodes);\n\t\t\tfor (let i = 0; i < children.length; i += 1) {\n\t\t\t\tconst child = children[i];\n\t\t\t\tif (isHTMLLegendElement(child)) {\n\t\t\t\t\treturn computeTextAlternative(child, {\n\t\t\t\t\t\tisEmbeddedInLabel: false,\n\t\t\t\t\t\tisReferenced: false,\n\t\t\t\t\t\trecursion: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isHTMLTableElement(node)) {\n\t\t\t// https://w3c.github.io/html-aam/#table-element\n\t\t\tconsultedNodes.add(node);\n\t\t\tconst children = ArrayFrom(node.childNodes);\n\t\t\tfor (let i = 0; i < children.length; i += 1) {\n\t\t\t\tconst child = children[i];\n\t\t\t\tif (isHTMLTableCaptionElement(child)) {\n\t\t\t\t\treturn computeTextAlternative(child, {\n\t\t\t\t\t\tisEmbeddedInLabel: false,\n\t\t\t\t\t\tisReferenced: false,\n\t\t\t\t\t\trecursion: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isSVGSVGElement(node)) {\n\t\t\t// https://www.w3.org/TR/svg-aam-1.0/\n\t\t\tconsultedNodes.add(node);\n\t\t\tconst children = ArrayFrom(node.childNodes);\n\t\t\tfor (let i = 0; i < children.length; i += 1) {\n\t\t\t\tconst child = children[i];\n\t\t\t\tif (isSVGTitleElement(child)) {\n\t\t\t\t\treturn child.textContent;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} else if (getLocalName(node) === \"img\" || getLocalName(node) === \"area\") {\n\t\t\t// https://w3c.github.io/html-aam/#area-element\n\t\t\t// https://w3c.github.io/html-aam/#img-element\n\t\t\tconst nameFromAlt = useAttribute(node, \"alt\");\n\t\t\tif (nameFromAlt !== null) {\n\t\t\t\treturn nameFromAlt;\n\t\t\t}\n\t\t} else if (isHTMLOptGroupElement(node)) {\n\t\t\tconst nameFromLabel = useAttribute(node, \"label\");\n\t\t\tif (nameFromLabel !== null) {\n\t\t\t\treturn nameFromLabel;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tisHTMLInputElement(node) &&\n\t\t\t(node.type === \"button\" ||\n\t\t\t\tnode.type === \"submit\" ||\n\t\t\t\tnode.type === \"reset\")\n\t\t) {\n\t\t\t// https://w3c.github.io/html-aam/#input-type-text-input-type-password-input-type-search-input-type-tel-input-type-email-input-type-url-and-textarea-element-accessible-description-computation\n\t\t\tconst nameFromValue = useAttribute(node, \"value\");\n\t\t\tif (nameFromValue !== null) {\n\t\t\t\treturn nameFromValue;\n\t\t\t}\n\n\t\t\t// TODO: l10n\n\t\t\tif (node.type === \"submit\") {\n\t\t\t\treturn \"Submit\";\n\t\t\t}\n\t\t\t// TODO: l10n\n\t\t\tif (node.type === \"reset\") {\n\t\t\t\treturn \"Reset\";\n\t\t\t}\n\t\t}\n\n\t\tconst labels = getLabels(node);\n\t\tif (labels !== null && labels.length !== 0) {\n\t\t\tconsultedNodes.add(node);\n\t\t\treturn ArrayFrom(labels)\n\t\t\t\t.map((element) => {\n\t\t\t\t\treturn computeTextAlternative(element, {\n\t\t\t\t\t\tisEmbeddedInLabel: true,\n\t\t\t\t\t\tisReferenced: false,\n\t\t\t\t\t\trecursion: true,\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.filter((label) => {\n\t\t\t\t\treturn label.length > 0;\n\t\t\t\t})\n\t\t\t\t.join(\" \");\n\t\t}\n\n\t\t// https://w3c.github.io/html-aam/#input-type-image-accessible-name-computation\n\t\t// TODO: wpt test consider label elements but html-aam does not mention them\n\t\t// We follow existing implementations over spec\n\t\tif (isHTMLInputElement(node) && node.type === \"image\") {\n\t\t\tconst nameFromAlt = useAttribute(node, \"alt\");\n\t\t\tif (nameFromAlt !== null) {\n\t\t\t\treturn nameFromAlt;\n\t\t\t}\n\n\t\t\tconst nameFromTitle = useAttribute(node, \"title\");\n\t\t\tif (nameFromTitle !== null) {\n\t\t\t\treturn nameFromTitle;\n\t\t\t}\n\n\t\t\t// TODO: l10n\n\t\t\treturn \"Submit Query\";\n\t\t}\n\n\t\tif (hasAnyConcreteRoles(node, [\"button\"])) {\n\t\t\t// https://www.w3.org/TR/html-aam-1.0/#button-element\n\t\t\tconst nameFromSubTree = computeMiscTextAlternative(node, {\n\t\t\t\tisEmbeddedInLabel: false,\n\t\t\t\tisReferenced: false,\n\t\t\t});\n\t\t\tif (nameFromSubTree !== \"\") {\n\t\t\t\treturn nameFromSubTree;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction computeTextAlternative(\n\t\tcurrent: Node,\n\t\tcontext: {\n\t\t\tisEmbeddedInLabel: boolean;\n\t\t\tisReferenced: boolean;\n\t\t\trecursion: boolean;\n\t\t}\n\t): string {\n\t\tif (consultedNodes.has(current)) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\t// 2A\n\t\tif (\n\t\t\t!hidden &&\n\t\t\tisHidden(current, getComputedStyle) &&\n\t\t\t!context.isReferenced\n\t\t) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn \"\" as FlatString;\n\t\t}\n\n\t\t// 2B\n\t\tconst labelAttributeNode = isElement(current)\n\t\t\t? current.getAttributeNode(\"aria-labelledby\")\n\t\t\t: null;\n\t\t// TODO: Do we generally need to block query IdRefs of attributes we have already consulted?\n\t\tconst labelElements =\n\t\t\tlabelAttributeNode !== null && !consultedNodes.has(labelAttributeNode)\n\t\t\t\t? queryIdRefs(current, \"aria-labelledby\")\n\t\t\t\t: [];\n\t\tif (\n\t\t\tcompute === \"name\" &&\n\t\t\t!context.isReferenced &&\n\t\t\tlabelElements.length > 0\n\t\t) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- Can't be null here otherwise labelElements would be empty\n\t\t\tconsultedNodes.add(labelAttributeNode!);\n\n\t\t\treturn labelElements\n\t\t\t\t.map((element) => {\n\t\t\t\t\t// TODO: Chrome will consider repeated values i.e. use a node multiple times while we'll bail out in computeTextAlternative.\n\t\t\t\t\treturn computeTextAlternative(element, {\n\t\t\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\t\t\tisReferenced: true,\n\t\t\t\t\t\t// this isn't recursion as specified, otherwise we would skip\n\t\t\t\t\t\t// `aria-label` in\n\t\t\t\t\t\t// <input id=\"myself\" aria-label=\"foo\" aria-labelledby=\"myself\"\n\t\t\t\t\t\trecursion: false,\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.join(\" \");\n\t\t}\n\n\t\t// 2C\n\t\t// Changed from the spec in anticipation of https://github.com/w3c/accname/issues/64\n\t\t// spec says we should only consider skipping if we have a non-empty label\n\t\tconst skipToStep2E =\n\t\t\tcontext.recursion && isControl(current) && compute === \"name\";\n\t\tif (!skipToStep2E) {\n\t\t\tconst ariaLabel = (\n\t\t\t\t(isElement(current) && current.getAttribute(\"aria-label\")) ||\n\t\t\t\t\"\"\n\t\t\t).trim();\n\t\t\tif (ariaLabel !== \"\" && compute === \"name\") {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\treturn ariaLabel;\n\t\t\t}\n\n\t\t\t// 2D\n\t\t\tif (!isMarkedPresentational(current)) {\n\t\t\t\tconst elementTextAlternative = computeElementTextAlternative(current);\n\t\t\t\tif (elementTextAlternative !== null) {\n\t\t\t\t\tconsultedNodes.add(current);\n\t\t\t\t\treturn elementTextAlternative;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// special casing, cheating to make tests pass\n\t\t// https://github.com/w3c/accname/issues/67\n\t\tif (hasAnyConcreteRoles(current, [\"menu\"])) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn \"\";\n\t\t}\n\n\t\t// 2E\n\t\tif (skipToStep2E || context.isEmbeddedInLabel || context.isReferenced) {\n\t\t\tif (hasAnyConcreteRoles(current, [\"combobox\", \"listbox\"])) {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\tconst selectedOptions = querySelectedOptions(current);\n\t\t\t\tif (selectedOptions.length === 0) {\n\t\t\t\t\t// defined per test `name_heading_combobox`\n\t\t\t\t\treturn isHTMLInputElement(current) ? current.value : \"\";\n\t\t\t\t}\n\t\t\t\treturn ArrayFrom(selectedOptions)\n\t\t\t\t\t.map((selectedOption) => {\n\t\t\t\t\t\treturn computeTextAlternative(selectedOption, {\n\t\t\t\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\t\t\t\tisReferenced: false,\n\t\t\t\t\t\t\trecursion: true,\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.join(\" \");\n\t\t\t}\n\t\t\tif (hasAbstractRole(current, \"range\")) {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\tif (current.hasAttribute(\"aria-valuetext\")) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- safe due to hasAttribute guard\n\t\t\t\t\treturn current.getAttribute(\"aria-valuetext\")!;\n\t\t\t\t}\n\t\t\t\tif (current.hasAttribute(\"aria-valuenow\")) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- safe due to hasAttribute guard\n\t\t\t\t\treturn current.getAttribute(\"aria-valuenow\")!;\n\t\t\t\t}\n\t\t\t\t// Otherwise, use the value as specified by a host language attribute.\n\t\t\t\treturn current.getAttribute(\"value\") || \"\";\n\t\t\t}\n\t\t\tif (hasAnyConcreteRoles(current, [\"textbox\"])) {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\treturn getValueOfTextbox(current);\n\t\t\t}\n\t\t}\n\n\t\t// 2F: https://w3c.github.io/accname/#step2F\n\t\tif (\n\t\t\tallowsNameFromContent(current) ||\n\t\t\t(isElement(current) && context.isReferenced) ||\n\t\t\tisNativeHostLanguageTextAlternativeElement(current) ||\n\t\t\tisDescendantOfNativeHostLanguageTextAlternativeElement(current)\n\t\t) {\n\t\t\tconst accumulatedText2F = computeMiscTextAlternative(current, {\n\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\tisReferenced: false,\n\t\t\t});\n\t\t\tif (accumulatedText2F !== \"\") {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\treturn accumulatedText2F;\n\t\t\t}\n\t\t}\n\n\t\tif (current.nodeType === current.TEXT_NODE) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn current.textContent || \"\";\n\t\t}\n\n\t\tif (context.recursion) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn computeMiscTextAlternative(current, {\n\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\tisReferenced: false,\n\t\t\t});\n\t\t}\n\n\t\tconst tooltipAttributeValue = computeTooltipAttributeValue(current);\n\t\tif (tooltipAttributeValue !== null) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn tooltipAttributeValue;\n\t\t}\n\n\t\t// TODO should this be reachable?\n\t\tconsultedNodes.add(current);\n\t\treturn \"\";\n\t}\n\n\treturn asFlatString(\n\t\tcomputeTextAlternative(root, {\n\t\t\tisEmbeddedInLabel: false,\n\t\t\t// by spec computeAccessibleDescription starts with the referenced elements as roots\n\t\t\tisReferenced: compute === \"description\",\n\t\t\trecursion: false,\n\t\t})\n\t);\n}\n","import {\n\tcomputeTextAlternative,\n\tComputeTextAlternativeOptions,\n} from \"./accessible-name-and-description\";\nimport { queryIdRefs } from \"./util\";\n\n/**\n * @param root\n * @param options\n * @returns\n */\nexport function computeAccessibleDescription(\n\troot: Element,\n\toptions: ComputeTextAlternativeOptions = {}\n): string {\n\tlet description = queryIdRefs(root, \"aria-describedby\")\n\t\t.map((element) => {\n\t\t\treturn computeTextAlternative(element, {\n\t\t\t\t...options,\n\t\t\t\tcompute: \"description\",\n\t\t\t});\n\t\t})\n\t\t.join(\" \");\n\n\t// TODO: Technically we need to make sure that node wasn't used for the accessible name\n\t//       This causes `description_1.0_combobox-focusable-manual` to fail\n\t//\n\t// https://www.w3.org/TR/html-aam-1.0/#accessible-name-and-description-computation\n\t// says for so many elements to use the `title` that we assume all elements are considered\n\tif (description === \"\") {\n\t\tconst title = root.getAttribute(\"title\");\n\t\tdescription = title === null ? \"\" : title;\n\t}\n\n\treturn description;\n}\n","import {\n\tcomputeTextAlternative,\n\tComputeTextAlternativeOptions,\n} from \"./accessible-name-and-description\";\nimport { hasAnyConcreteRoles } from \"./util\";\n\n/**\n * https://w3c.github.io/aria/#namefromprohibited\n */\nfunction prohibitsNaming(node: Node): boolean {\n\treturn hasAnyConcreteRoles(node, [\n\t\t\"caption\",\n\t\t\"code\",\n\t\t\"deletion\",\n\t\t\"emphasis\",\n\t\t\"generic\",\n\t\t\"insertion\",\n\t\t\"paragraph\",\n\t\t\"presentation\",\n\t\t\"strong\",\n\t\t\"subscript\",\n\t\t\"superscript\",\n\t]);\n}\n\n/**\n * implements https://w3c.github.io/accname/#mapping_additional_nd_name\n * @param root\n * @param options\n * @returns\n */\nexport function computeAccessibleName(\n\troot: Element,\n\toptions: ComputeTextAlternativeOptions = {}\n): string {\n\tif (prohibitsNaming(root)) {\n\t\treturn \"\";\n\t}\n\n\treturn computeTextAlternative(root, options);\n}\n","import { getConfig } from '@testing-library/dom';\n\nfunction wrapEvent(cb, _element) {\n    return getConfig().eventWrapper(cb);\n}\n\nexport { wrapEvent };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { getActiveElement } from '../utils/focus/getActiveElement.js';\nimport { isFocusable } from '../utils/focus/isFocusable.js';\nimport { findClosest } from '../utils/misc/findClosest.js';\nimport { updateSelectionOnFocus } from './selection/updateSelectionOnFocus.js';\nimport { wrapEvent } from './wrapEvent.js';\n\n// Browsers do not dispatch FocusEvent if the document does not have focus.\n// TODO: simulate FocusEvent in browsers\n/**\n * Focus closest focusable element.\n */ function focusElement(element) {\n    const target = findClosest(element, isFocusable);\n    const activeElement = getActiveElement(element.ownerDocument);\n    if ((target !== null && target !== undefined ? target : element.ownerDocument.body) === activeElement) {\n        return;\n    } else if (target) {\n        wrapEvent(()=>target.focus());\n    } else {\n        wrapEvent(()=>activeElement === null || activeElement === undefined ? undefined : activeElement.blur());\n    }\n    updateSelectionOnFocus(target !== null && target !== undefined ? target : element.ownerDocument.body);\n}\nfunction blurElement(element) {\n    if (!isFocusable(element)) return;\n    const wasActive = getActiveElement(element.ownerDocument) === element;\n    if (!wasActive) return;\n    wrapEvent(()=>element.blur());\n}\n\nexport { blurElement, focusElement };\n","const behavior = {};\n\nexport { behavior };\n","import { isElementType } from '../../utils/misc/isElementType.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { getWindow } from '../../utils/misc/getWindow.js';\nimport { isFocusable } from '../../utils/focus/isFocusable.js';\nimport { cloneEvent } from '../../utils/misc/cloneEvent.js';\nimport { focusElement, blurElement } from '../focus.js';\nimport { behavior } from './registry.js';\n\nbehavior.click = (event, target, instance)=>{\n    const context = target.closest('button,input,label,select,textarea');\n    const control = context && isElementType(context, 'label') && context.control;\n    if (control && control !== target) {\n        return ()=>{\n            if (isFocusable(control)) {\n                focusElement(control);\n                instance.dispatchEvent(control, cloneEvent(event));\n            }\n        };\n    } else if (isElementType(target, 'input', {\n        type: 'file'\n    })) {\n        return ()=>{\n            // blur fires when the file selector pops up\n            blurElement(target);\n            target.dispatchEvent(new (getWindow(target)).Event('fileDialog'));\n            // focus fires after the file selector has been closed\n            focusElement(target);\n        };\n    }\n};\n","const UIValue = Symbol('Displayed value in UI');\nconst UISelection = Symbol('Displayed selection in UI');\nconst InitialValue = Symbol('Initial value to compare on blur');\nfunction isUIValue(value) {\n    return typeof value === 'object' && UIValue in value;\n}\nfunction isUISelectionStart(start) {\n    return !!start && typeof start === 'object' && UISelection in start;\n}\nfunction setUIValue(element, value) {\n    if (element[InitialValue] === undefined) {\n        element[InitialValue] = element.value;\n    }\n    element[UIValue] = value;\n    // eslint-disable-next-line no-new-wrappers\n    element.value = Object.assign(new String(value), {\n        [UIValue]: true\n    });\n}\nfunction getUIValue(element) {\n    return element[UIValue] === undefined ? element.value : String(element[UIValue]);\n}\n/** Flag the IDL value as clean. This does not change the value.*/ function setUIValueClean(element) {\n    element[UIValue] = undefined;\n}\nfunction clearInitialValue(element) {\n    element[InitialValue] = undefined;\n}\nfunction getInitialValue(element) {\n    return element[InitialValue];\n}\nfunction setUISelectionRaw(element, selection) {\n    element[UISelection] = selection;\n}\nfunction setUISelection(element, { focusOffset: focusOffsetParam, anchorOffset: anchorOffsetParam = focusOffsetParam }, mode = 'replace') {\n    const valueLength = getUIValue(element).length;\n    const sanitizeOffset = (o)=>Math.max(0, Math.min(valueLength, o));\n    const anchorOffset = mode === 'replace' || element[UISelection] === undefined ? sanitizeOffset(anchorOffsetParam) : element[UISelection].anchorOffset;\n    const focusOffset = sanitizeOffset(focusOffsetParam);\n    const startOffset = Math.min(anchorOffset, focusOffset);\n    const endOffset = Math.max(anchorOffset, focusOffset);\n    element[UISelection] = {\n        anchorOffset,\n        focusOffset\n    };\n    if (element.selectionStart === startOffset && element.selectionEnd === endOffset) {\n        return;\n    }\n    // eslint-disable-next-line no-new-wrappers\n    const startObj = Object.assign(new Number(startOffset), {\n        [UISelection]: true\n    });\n    try {\n        element.setSelectionRange(startObj, endOffset);\n    } catch  {\n    // DOMException for invalid state is expected when calling this\n    // on an element without support for setSelectionRange\n    }\n}\nfunction getUISelection(element) {\n    var _element_selectionStart, _element_selectionEnd, _element_UISelection;\n    const sel = (_element_UISelection = element[UISelection]) !== null && _element_UISelection !== undefined ? _element_UISelection : {\n        anchorOffset: (_element_selectionStart = element.selectionStart) !== null && _element_selectionStart !== undefined ? _element_selectionStart : 0,\n        focusOffset: (_element_selectionEnd = element.selectionEnd) !== null && _element_selectionEnd !== undefined ? _element_selectionEnd : 0\n    };\n    return {\n        ...sel,\n        startOffset: Math.min(sel.anchorOffset, sel.focusOffset),\n        endOffset: Math.max(sel.anchorOffset, sel.focusOffset)\n    };\n}\nfunction hasUISelection(element) {\n    return !!element[UISelection];\n}\n/** Flag the IDL selection as clean. This does not change the selection. */ function setUISelectionClean(element) {\n    element[UISelection] = undefined;\n}\n\nexport { clearInitialValue, getInitialValue, getUISelection, getUIValue, hasUISelection, isUISelectionStart, isUIValue, setUISelection, setUISelectionClean, setUISelectionRaw, setUIValue, setUIValueClean };\n","const parseInt = globalThis.parseInt;\nfunction buildTimeValue(value) {\n    const onlyDigitsValue = value.replace(/\\D/g, '');\n    if (onlyDigitsValue.length < 2) {\n        return value;\n    }\n    const firstDigit = parseInt(onlyDigitsValue[0], 10);\n    const secondDigit = parseInt(onlyDigitsValue[1], 10);\n    if (firstDigit >= 3 || firstDigit === 2 && secondDigit >= 4) {\n        let index;\n        if (firstDigit >= 3) {\n            index = 1;\n        } else {\n            index = 2;\n        }\n        return build(onlyDigitsValue, index);\n    }\n    if (value.length === 2) {\n        return value;\n    }\n    return build(onlyDigitsValue, 2);\n}\nfunction build(onlyDigitsValue, index) {\n    const hours = onlyDigitsValue.slice(0, index);\n    const validHours = Math.min(parseInt(hours, 10), 23);\n    const minuteCharacters = onlyDigitsValue.slice(index);\n    const parsedMinutes = parseInt(minuteCharacters, 10);\n    const validMinutes = Math.min(parsedMinutes, 59);\n    return `${validHours.toString().padStart(2, '0')}:${validMinutes.toString().padStart(2, '0')}`;\n}\nfunction isValidDateOrTimeValue(element, value) {\n    const clone = element.cloneNode();\n    clone.value = value;\n    return clone.value === value;\n}\n\nexport { buildTimeValue, isValidDateOrTimeValue };\n","import { isElementType } from '../misc/isElementType.js';\n\nvar maxLengthSupportedTypes = /*#__PURE__*/ function(maxLengthSupportedTypes) {\n    maxLengthSupportedTypes[\"email\"] = \"email\";\n    maxLengthSupportedTypes[\"password\"] = \"password\";\n    maxLengthSupportedTypes[\"search\"] = \"search\";\n    maxLengthSupportedTypes[\"telephone\"] = \"telephone\";\n    maxLengthSupportedTypes[\"text\"] = \"text\";\n    maxLengthSupportedTypes[\"url\"] = \"url\";\n    return maxLengthSupportedTypes;\n}(maxLengthSupportedTypes || {});\n// can't use .maxLength property because of a jsdom bug:\n// https://github.com/jsdom/jsdom/issues/2927\nfunction getMaxLength(element) {\n    var _element_getAttribute;\n    const attr = (_element_getAttribute = element.getAttribute('maxlength')) !== null && _element_getAttribute !== undefined ? _element_getAttribute : '';\n    return /^\\d+$/.test(attr) && Number(attr) >= 0 ? Number(attr) : undefined;\n}\nfunction supportsMaxLength(element) {\n    return isElementType(element, 'textarea') || isElementType(element, 'input') && element.type in maxLengthSupportedTypes;\n}\n\nexport { getMaxLength, supportsMaxLength };\n","import { isContentEditable } from '../edit/isContentEditable.js';\nimport { isElementType } from '../misc/isElementType.js';\n\nfunction getNextCursorPosition(node, offset, direction, inputType) {\n    // The behavior at text node zero offset is inconsistent.\n    // When walking backwards:\n    // Firefox always moves to zero offset and jumps over last offset.\n    // Chrome jumps over zero offset per default but over last offset when Shift is pressed.\n    // The cursor always moves to zero offset if the focus area (contenteditable or body) ends there.\n    // When walking forward both ignore zero offset.\n    // When walking over input elements the cursor moves before or after that element.\n    // When walking over line breaks the cursor moves inside any following text node.\n    if (isTextNode(node) && offset + direction >= 0 && offset + direction <= node.nodeValue.length) {\n        return {\n            node,\n            offset: offset + direction\n        };\n    }\n    const nextNode = getNextCharacterContentNode(node, offset, direction);\n    if (nextNode) {\n        if (isTextNode(nextNode)) {\n            return {\n                node: nextNode,\n                offset: direction > 0 ? Math.min(1, nextNode.nodeValue.length) : Math.max(nextNode.nodeValue.length - 1, 0)\n            };\n        } else if (isElementType(nextNode, 'br')) {\n            const nextPlusOne = getNextCharacterContentNode(nextNode, undefined, direction);\n            if (!nextPlusOne) {\n                // The behavior when there is no possible cursor position beyond the line break is inconsistent.\n                // In Chrome outside of contenteditable moving before a leading line break is possible.\n                // A leading line break can still be removed per deleteContentBackward.\n                // A trailing line break on the other hand is not removed by deleteContentForward.\n                if (direction < 0 && inputType === 'deleteContentBackward') {\n                    return {\n                        node: nextNode.parentNode,\n                        offset: getOffset(nextNode)\n                    };\n                }\n                return undefined;\n            } else if (isTextNode(nextPlusOne)) {\n                return {\n                    node: nextPlusOne,\n                    offset: direction > 0 ? 0 : nextPlusOne.nodeValue.length\n                };\n            } else if (direction < 0 && isElementType(nextPlusOne, 'br')) {\n                return {\n                    node: nextNode.parentNode,\n                    offset: getOffset(nextNode)\n                };\n            } else {\n                return {\n                    node: nextPlusOne.parentNode,\n                    offset: getOffset(nextPlusOne) + (direction > 0 ? 0 : 1)\n                };\n            }\n        } else {\n            return {\n                node: nextNode.parentNode,\n                offset: getOffset(nextNode) + (direction > 0 ? 1 : 0)\n            };\n        }\n    }\n}\nfunction getNextCharacterContentNode(node, offset, direction) {\n    const nextOffset = Number(offset) + (direction < 0 ? -1 : 0);\n    if (offset !== undefined && isElement(node) && nextOffset >= 0 && nextOffset < node.children.length) {\n        node = node.children[nextOffset];\n    }\n    return walkNodes(node, direction === 1 ? 'next' : 'previous', isTreatedAsCharacterContent);\n}\nfunction isTreatedAsCharacterContent(node) {\n    if (isTextNode(node)) {\n        return true;\n    }\n    if (isElement(node)) {\n        if (isElementType(node, [\n            'input',\n            'textarea'\n        ])) {\n            return node.type !== 'hidden';\n        } else if (isElementType(node, 'br')) {\n            return true;\n        }\n    }\n    return false;\n}\nfunction getOffset(node) {\n    let i = 0;\n    while(node.previousSibling){\n        i++;\n        node = node.previousSibling;\n    }\n    return i;\n}\nfunction isElement(node) {\n    return node.nodeType === 1;\n}\nfunction isTextNode(node) {\n    return node.nodeType === 3;\n}\nfunction walkNodes(node, direction, callback) {\n    for(;;){\n        var _node_ownerDocument;\n        const sibling = node[`${direction}Sibling`];\n        if (sibling) {\n            node = getDescendant(sibling, direction === 'next' ? 'first' : 'last');\n            if (callback(node)) {\n                return node;\n            }\n        } else if (node.parentNode && (!isElement(node.parentNode) || !isContentEditable(node.parentNode) && node.parentNode !== ((_node_ownerDocument = node.ownerDocument) === null || _node_ownerDocument === undefined ? undefined : _node_ownerDocument.body))) {\n            node = node.parentNode;\n        } else {\n            break;\n        }\n    }\n}\nfunction getDescendant(node, direction) {\n    while(node.hasChildNodes()){\n        node = node[`${direction}Child`];\n    }\n    return node;\n}\n\nexport { getNextCursorPosition };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\nimport { setUIValueClean, setUISelection, hasUISelection } from './UI.js';\n\nconst TrackChanges = Symbol('Track programmatic changes for React workaround');\n// When the input event happens in the browser, React executes all event handlers\n// and if they change state of a controlled value, nothing happens.\n// But when we trigger the event handlers in test environment with React@17,\n// the changes are rolled back before the state update is applied.\n// This results in a reset cursor.\n// There might be a better way to work around if we figure out\n// why the batched update is executed differently in our test environment.\nfunction isReact17Element(element) {\n    return Object.getOwnPropertyNames(element).some((k)=>k.startsWith('__react')) && getWindow(element).REACT_VERSION === 17;\n}\nfunction startTrackValue(element) {\n    if (!isReact17Element(element)) {\n        return;\n    }\n    element[TrackChanges] = {\n        previousValue: String(element.value),\n        tracked: []\n    };\n}\nfunction trackOrSetValue(element, v) {\n    var _element_TrackChanges_tracked, _element_TrackChanges;\n    (_element_TrackChanges = element[TrackChanges]) === null || _element_TrackChanges === undefined ? undefined : (_element_TrackChanges_tracked = _element_TrackChanges.tracked) === null || _element_TrackChanges_tracked === undefined ? undefined : _element_TrackChanges_tracked.push(v);\n    if (!element[TrackChanges]) {\n        setUIValueClean(element);\n        setUISelection(element, {\n            focusOffset: v.length\n        });\n    }\n}\nfunction commitValueAfterInput(element, cursorOffset) {\n    var _changes_tracked;\n    const changes = element[TrackChanges];\n    element[TrackChanges] = undefined;\n    if (!(changes === null || changes === undefined ? undefined : (_changes_tracked = changes.tracked) === null || _changes_tracked === undefined ? undefined : _changes_tracked.length)) {\n        return;\n    }\n    const isJustReactStateUpdate = changes.tracked.length === 2 && changes.tracked[0] === changes.previousValue && changes.tracked[1] === element.value;\n    if (!isJustReactStateUpdate) {\n        setUIValueClean(element);\n    }\n    if (hasUISelection(element)) {\n        setUISelection(element, {\n            focusOffset: isJustReactStateUpdate ? cursorOffset : element.value.length\n        });\n    }\n}\n\nexport { commitValueAfterInput, startTrackValue, trackOrSetValue };\n","import { getUISelection } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { getContentEditable } from '../../utils/edit/isContentEditable.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\n\n/**\n * Determine which selection logic and selection ranges to consider.\n */ function getTargetTypeAndSelection(node) {\n    const element = getElement(node);\n    if (element && hasOwnSelection(element)) {\n        return {\n            type: 'input',\n            selection: getUISelection(element)\n        };\n    }\n    const selection = element === null || element === undefined ? undefined : element.ownerDocument.getSelection();\n    // It is possible to extend a single-range selection into a contenteditable.\n    // This results in the range acting like a range outside of contenteditable.\n    const isCE = getContentEditable(node) && (selection === null || selection === undefined ? undefined : selection.anchorNode) && getContentEditable(selection.anchorNode);\n    return {\n        type: isCE ? 'contenteditable' : 'default',\n        selection\n    };\n}\nfunction getElement(node) {\n    return node.nodeType === 1 ? node : node.parentElement;\n}\n\nexport { getTargetTypeAndSelection };\n","import { getTargetTypeAndSelection } from './getTargetTypeAndSelection.js';\n\n/**\n * Get the range that would be overwritten by input.\n */ function getInputRange(focusNode) {\n    const typeAndSelection = getTargetTypeAndSelection(focusNode);\n    if (typeAndSelection.type === 'input') {\n        return typeAndSelection.selection;\n    } else if (typeAndSelection.type === 'contenteditable') {\n        var _typeAndSelection_selection;\n        // Multi-range on contenteditable edits the first selection instead of the last\n        return (_typeAndSelection_selection = typeAndSelection.selection) === null || _typeAndSelection_selection === undefined ? undefined : _typeAndSelection_selection.getRangeAt(0);\n    }\n}\n\nexport { getInputRange };\n","import { setUISelection } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { getTargetTypeAndSelection } from './getTargetTypeAndSelection.js';\n\n/**\n * Set the selection\n */ function setSelection({ focusNode, focusOffset, anchorNode = focusNode, anchorOffset = focusOffset }) {\n    var _anchorNode_ownerDocument_getSelection, _anchorNode_ownerDocument;\n    const typeAndSelection = getTargetTypeAndSelection(focusNode);\n    if (typeAndSelection.type === 'input') {\n        return setUISelection(focusNode, {\n            anchorOffset,\n            focusOffset\n        });\n    }\n    (_anchorNode_ownerDocument = anchorNode.ownerDocument) === null || _anchorNode_ownerDocument === undefined ? undefined : (_anchorNode_ownerDocument_getSelection = _anchorNode_ownerDocument.getSelection()) === null || _anchorNode_ownerDocument_getSelection === undefined ? undefined : _anchorNode_ownerDocument_getSelection.setBaseAndExtent(anchorNode, anchorOffset, focusNode, focusOffset);\n}\n\nexport { setSelection };\n","import { setUIValue, clearInitialValue, getUIValue } from '../document/UI.js';\nimport { isElementType } from '../utils/misc/isElementType.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { isValidDateOrTimeValue, buildTimeValue } from '../utils/edit/timeValue.js';\nimport { supportsMaxLength, getMaxLength } from '../utils/edit/maxLength.js';\nimport { getNextCursorPosition } from '../utils/focus/cursor.js';\nimport { commitValueAfterInput } from '../document/trackValue.js';\nimport { getInputRange } from './selection/getInputRange.js';\nimport { setSelection } from './selection/setSelection.js';\n\nfunction isDateOrTime(element) {\n    return isElementType(element, 'input') && [\n        'date',\n        'time'\n    ].includes(element.type);\n}\nfunction input(instance, element, data, inputType = 'insertText') {\n    const inputRange = getInputRange(element);\n    /* istanbul ignore if */ if (!inputRange) {\n        return;\n    }\n    // There is no `beforeinput` event on `date` and `time` input\n    if (!isDateOrTime(element)) {\n        const unprevented = instance.dispatchUIEvent(element, 'beforeinput', {\n            inputType,\n            data\n        });\n        if (!unprevented) {\n            return;\n        }\n    }\n    if ('startContainer' in inputRange) {\n        editContenteditable(instance, element, inputRange, data, inputType);\n    } else {\n        editInputElement(instance, element, inputRange, data, inputType);\n    }\n}\nfunction editContenteditable(instance, element, inputRange, data, inputType) {\n    let del = false;\n    if (!inputRange.collapsed) {\n        del = true;\n        inputRange.deleteContents();\n    } else if ([\n        'deleteContentBackward',\n        'deleteContentForward'\n    ].includes(inputType)) {\n        const nextPosition = getNextCursorPosition(inputRange.startContainer, inputRange.startOffset, inputType === 'deleteContentBackward' ? -1 : 1, inputType);\n        if (nextPosition) {\n            del = true;\n            const delRange = inputRange.cloneRange();\n            if (delRange.comparePoint(nextPosition.node, nextPosition.offset) < 0) {\n                delRange.setStart(nextPosition.node, nextPosition.offset);\n            } else {\n                delRange.setEnd(nextPosition.node, nextPosition.offset);\n            }\n            delRange.deleteContents();\n        }\n    }\n    if (data) {\n        if (inputRange.endContainer.nodeType === 3) {\n            const offset = inputRange.endOffset;\n            inputRange.endContainer.insertData(offset, data);\n            inputRange.setStart(inputRange.endContainer, offset + data.length);\n            inputRange.setEnd(inputRange.endContainer, offset + data.length);\n        } else {\n            const text = element.ownerDocument.createTextNode(data);\n            inputRange.insertNode(text);\n            inputRange.setStart(text, data.length);\n            inputRange.setEnd(text, data.length);\n        }\n    }\n    if (del || data) {\n        instance.dispatchUIEvent(element, 'input', {\n            inputType\n        });\n    }\n}\nfunction editInputElement(instance, element, inputRange, data, inputType) {\n    let dataToInsert = data;\n    if (supportsMaxLength(element)) {\n        const maxLength = getMaxLength(element);\n        if (maxLength !== undefined && data.length > 0) {\n            const spaceUntilMaxLength = maxLength - element.value.length;\n            if (spaceUntilMaxLength > 0) {\n                dataToInsert = data.substring(0, spaceUntilMaxLength);\n            } else {\n                return;\n            }\n        }\n    }\n    const { newValue, newOffset, oldValue } = calculateNewValue(dataToInsert, element, inputRange, inputType);\n    if (newValue === oldValue && newOffset === inputRange.startOffset && newOffset === inputRange.endOffset) {\n        return;\n    }\n    if (isElementType(element, 'input', {\n        type: 'number'\n    }) && !isValidNumberInput(newValue)) {\n        return;\n    }\n    setUIValue(element, newValue);\n    setSelection({\n        focusNode: element,\n        anchorOffset: newOffset,\n        focusOffset: newOffset\n    });\n    if (isDateOrTime(element)) {\n        if (isValidDateOrTimeValue(element, newValue)) {\n            commitInput(instance, element, newOffset, {});\n            instance.dispatchUIEvent(element, 'change');\n            clearInitialValue(element);\n        }\n    } else {\n        commitInput(instance, element, newOffset, {\n            data,\n            inputType\n        });\n    }\n}\nfunction calculateNewValue(inputData, node, { startOffset, endOffset }, inputType) {\n    const value = getUIValue(node);\n    const prologEnd = Math.max(0, startOffset === endOffset && inputType === 'deleteContentBackward' ? startOffset - 1 : startOffset);\n    const prolog = value.substring(0, prologEnd);\n    const epilogStart = Math.min(value.length, startOffset === endOffset && inputType === 'deleteContentForward' ? startOffset + 1 : endOffset);\n    const epilog = value.substring(epilogStart, value.length);\n    let newValue = `${prolog}${inputData}${epilog}`;\n    let newOffset = prologEnd + inputData.length;\n    if (isElementType(node, 'input', {\n        type: 'time'\n    })) {\n        const builtValue = buildTimeValue(newValue);\n        if (builtValue !== '' && isValidDateOrTimeValue(node, builtValue)) {\n            newValue = builtValue;\n            newOffset = builtValue.length;\n        }\n    }\n    return {\n        oldValue: value,\n        newValue,\n        newOffset\n    };\n}\nfunction commitInput(instance, element, newOffset, inputInit) {\n    instance.dispatchUIEvent(element, 'input', inputInit);\n    commitValueAfterInput(element, newOffset);\n}\nfunction isValidNumberInput(value) {\n    var _value_match, _value_match1;\n    // the browser allows some invalid input but not others\n    // it allows up to two '-' at any place before any 'e' or one directly following 'e'\n    // it allows one '.' at any place before e\n    const valueParts = value.split('e', 2);\n    return !(/[^\\d.\\-e]/.test(value) || Number((_value_match = value.match(/-/g)) === null || _value_match === undefined ? undefined : _value_match.length) > 2 || Number((_value_match1 = value.match(/\\./g)) === null || _value_match1 === undefined ? undefined : _value_match1.length) > 1 || valueParts[1] && !/^-?\\d*$/.test(valueParts[1]));\n}\n\nexport { input };\n","import '../../utils/dataTransfer/Clipboard.js';\nimport { isEditable } from '../../utils/edit/isEditable.js';\nimport { input } from '../input.js';\nimport { behavior } from './registry.js';\n\nbehavior.cut = (event, target, instance)=>{\n    return ()=>{\n        if (isEditable(target)) {\n            input(instance, target, '', 'deleteByCut');\n        }\n    };\n};\n","import '../utils/dataTransfer/Clipboard.js';\nimport { isContentEditable } from '../utils/edit/isContentEditable.js';\nimport { getUIValue } from './UI.js';\n\nfunction getValueOrTextContent(element) {\n    // istanbul ignore if\n    if (!element) {\n        return null;\n    }\n    if (isContentEditable(element)) {\n        return element.textContent;\n    }\n    return getUIValue(element);\n}\n\nexport { getValueOrTextContent };\n","import { getWindow } from './getWindow.js';\n\nfunction isVisible(element) {\n    const window = getWindow(element);\n    for(let el = element; el === null || el === undefined ? undefined : el.ownerDocument; el = el.parentElement){\n        const { display, visibility } = window.getComputedStyle(el);\n        if (display === 'none') {\n            return false;\n        }\n        if (visibility === 'hidden') {\n            return false;\n        }\n    }\n    return true;\n}\n\nexport { isVisible };\n","import { isDisabled } from '../misc/isDisabled.js';\nimport { isElementType } from '../misc/isElementType.js';\nimport { isVisible } from '../misc/isVisible.js';\nimport { FOCUSABLE_SELECTOR } from './selector.js';\n\nfunction getTabDestination(activeElement, shift) {\n    const document = activeElement.ownerDocument;\n    const focusableElements = document.querySelectorAll(FOCUSABLE_SELECTOR);\n    const enabledElements = Array.from(focusableElements).filter((el)=>el === activeElement || !(Number(el.getAttribute('tabindex')) < 0 || isDisabled(el)));\n    // tabindex has no effect if the active element has negative tabindex\n    if (Number(activeElement.getAttribute('tabindex')) >= 0) {\n        enabledElements.sort((a, b)=>{\n            const i = Number(a.getAttribute('tabindex'));\n            const j = Number(b.getAttribute('tabindex'));\n            if (i === j) {\n                return 0;\n            } else if (i === 0) {\n                return 1;\n            } else if (j === 0) {\n                return -1;\n            }\n            return i - j;\n        });\n    }\n    const checkedRadio = {};\n    let prunedElements = [\n        document.body\n    ];\n    const activeRadioGroup = isElementType(activeElement, 'input', {\n        type: 'radio'\n    }) ? activeElement.name : undefined;\n    enabledElements.forEach((currentElement)=>{\n        const el = currentElement;\n        // For radio groups keep only the active radio\n        // If there is no active radio, keep only the checked radio\n        // If there is no checked radio, treat like everything else\n        if (isElementType(el, 'input', {\n            type: 'radio'\n        }) && el.name) {\n            // If the active element is part of the group, add only that\n            if (el === activeElement) {\n                prunedElements.push(el);\n                return;\n            } else if (el.name === activeRadioGroup) {\n                return;\n            }\n            // If we stumble upon a checked radio, remove the others\n            if (el.checked) {\n                prunedElements = prunedElements.filter((e)=>!isElementType(e, 'input', {\n                        type: 'radio',\n                        name: el.name\n                    }));\n                prunedElements.push(el);\n                checkedRadio[el.name] = el;\n                return;\n            }\n            // If we already found the checked one, skip\n            if (typeof checkedRadio[el.name] !== 'undefined') {\n                return;\n            }\n        }\n        prunedElements.push(el);\n    });\n    for(let index = prunedElements.findIndex((el)=>el === activeElement);;){\n        index += shift ? -1 : 1;\n        // loop at overflow\n        if (index === prunedElements.length) {\n            index = 0;\n        } else if (index === -1) {\n            index = prunedElements.length - 1;\n        }\n        if (prunedElements[index] === activeElement || prunedElements[index] === document.body || isVisible(prunedElements[index])) {\n            return prunedElements[index];\n        }\n    }\n}\n\nexport { getTabDestination };\n","import { getUISelection } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { getNextCursorPosition } from '../../utils/focus/cursor.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\nimport { setSelection } from './setSelection.js';\n\n/**\n * Move the selection\n */ function moveSelection(node, direction) {\n    // TODO: implement shift\n    if (hasOwnSelection(node)) {\n        const selection = getUISelection(node);\n        setSelection({\n            focusNode: node,\n            focusOffset: selection.startOffset === selection.endOffset ? selection.focusOffset + direction : direction < 0 ? selection.startOffset : selection.endOffset\n        });\n    } else {\n        const selection = node.ownerDocument.getSelection();\n        if (!(selection === null || selection === undefined ? undefined : selection.focusNode)) {\n            return;\n        }\n        if (selection.isCollapsed) {\n            const nextPosition = getNextCursorPosition(selection.focusNode, selection.focusOffset, direction);\n            if (nextPosition) {\n                setSelection({\n                    focusNode: nextPosition.node,\n                    focusOffset: nextPosition.offset\n                });\n            }\n        } else {\n            selection[direction < 0 ? 'collapseToStart' : 'collapseToEnd']();\n        }\n    }\n}\n\nexport { moveSelection };\n","import { getUIValue, getUISelection } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { getContentEditable } from '../../utils/edit/isContentEditable.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\nimport { setSelection } from './setSelection.js';\n\n/**\n * Expand a selection like the browser does when pressing Ctrl+A.\n */ function selectAll(target) {\n    if (hasOwnSelection(target)) {\n        return setSelection({\n            focusNode: target,\n            anchorOffset: 0,\n            focusOffset: getUIValue(target).length\n        });\n    }\n    var _getContentEditable;\n    const focusNode = (_getContentEditable = getContentEditable(target)) !== null && _getContentEditable !== undefined ? _getContentEditable : target.ownerDocument.body;\n    setSelection({\n        focusNode,\n        anchorOffset: 0,\n        focusOffset: focusNode.childNodes.length\n    });\n}\nfunction isAllSelected(target) {\n    if (hasOwnSelection(target)) {\n        return getUISelection(target).startOffset === 0 && getUISelection(target).endOffset === getUIValue(target).length;\n    }\n    var _getContentEditable;\n    const focusNode = (_getContentEditable = getContentEditable(target)) !== null && _getContentEditable !== undefined ? _getContentEditable : target.ownerDocument.body;\n    const selection = target.ownerDocument.getSelection();\n    return (selection === null || selection === undefined ? undefined : selection.anchorNode) === focusNode && selection.focusNode === focusNode && selection.anchorOffset === 0 && selection.focusOffset === focusNode.childNodes.length;\n}\n\nexport { isAllSelected, selectAll };\n","import '../../utils/dataTransfer/Clipboard.js';\nimport { isContentEditable } from '../../utils/edit/isContentEditable.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\nimport { setSelection } from './setSelection.js';\n\n/**\n * Backward-compatible selection.\n *\n * Handles input elements and contenteditable if it only contains a single text node.\n */ function setSelectionRange(element, anchorOffset, focusOffset) {\n    var _element_firstChild;\n    if (hasOwnSelection(element)) {\n        return setSelection({\n            focusNode: element,\n            anchorOffset,\n            focusOffset\n        });\n    }\n    /* istanbul ignore else */ if (isContentEditable(element) && ((_element_firstChild = element.firstChild) === null || _element_firstChild === undefined ? undefined : _element_firstChild.nodeType) === 3) {\n        return setSelection({\n            focusNode: element.firstChild,\n            anchorOffset,\n            focusOffset\n        });\n    }\n    /* istanbul ignore next */ throw new Error('Not implemented. The result of this interaction is unreliable.');\n}\n\nexport { setSelectionRange };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { isDisabled } from '../utils/misc/isDisabled.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\nimport { focusElement } from './focus.js';\n\nfunction walkRadio(instance, el, direction) {\n    const window = getWindow(el);\n    const group = Array.from(el.ownerDocument.querySelectorAll(el.name ? `input[type=\"radio\"][name=\"${window.CSS.escape(el.name)}\"]` : `input[type=\"radio\"][name=\"\"], input[type=\"radio\"]:not([name])`));\n    for(let i = group.findIndex((e)=>e === el) + direction;; i += direction){\n        if (!group[i]) {\n            i = direction > 0 ? 0 : group.length - 1;\n        }\n        if (group[i] === el) {\n            return;\n        }\n        if (isDisabled(group[i])) {\n            continue;\n        }\n        focusElement(group[i]);\n        instance.dispatchUIEvent(group[i], 'click');\n        return;\n    }\n}\n\nexport { walkRadio };\n","import { getUIValue, setUISelection } from '../../document/UI.js';\nimport { getValueOrTextContent } from '../../document/getValueOrTextContent.js';\nimport { isElementType } from '../../utils/misc/isElementType.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { isContentEditable } from '../../utils/edit/isContentEditable.js';\nimport { isEditable } from '../../utils/edit/isEditable.js';\nimport { getTabDestination } from '../../utils/focus/getTabDestination.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\nimport { focusElement } from '../focus.js';\nimport { input } from '../input.js';\nimport { moveSelection } from '../selection/moveSelection.js';\nimport { selectAll } from '../selection/selectAll.js';\nimport { setSelectionRange } from '../selection/setSelectionRange.js';\nimport { walkRadio } from '../radio.js';\nimport { behavior } from './registry.js';\n\nbehavior.keydown = (event, target, instance)=>{\n    var _keydownBehavior_event_key;\n    var _keydownBehavior_event_key1;\n    return (_keydownBehavior_event_key1 = (_keydownBehavior_event_key = keydownBehavior[event.key]) === null || _keydownBehavior_event_key === undefined ? undefined : _keydownBehavior_event_key.call(keydownBehavior, event, target, instance)) !== null && _keydownBehavior_event_key1 !== undefined ? _keydownBehavior_event_key1 : combinationBehavior(event, target, instance);\n};\nconst keydownBehavior = {\n    ArrowDown: (event, target, instance)=>{\n        /* istanbul ignore else */ if (isElementType(target, 'input', {\n            type: 'radio'\n        })) {\n            return ()=>walkRadio(instance, target, 1);\n        }\n    },\n    ArrowLeft: (event, target, instance)=>{\n        if (isElementType(target, 'input', {\n            type: 'radio'\n        })) {\n            return ()=>walkRadio(instance, target, -1);\n        }\n        return ()=>moveSelection(target, -1);\n    },\n    ArrowRight: (event, target, instance)=>{\n        if (isElementType(target, 'input', {\n            type: 'radio'\n        })) {\n            return ()=>walkRadio(instance, target, 1);\n        }\n        return ()=>moveSelection(target, 1);\n    },\n    ArrowUp: (event, target, instance)=>{\n        /* istanbul ignore else */ if (isElementType(target, 'input', {\n            type: 'radio'\n        })) {\n            return ()=>walkRadio(instance, target, -1);\n        }\n    },\n    Backspace: (event, target, instance)=>{\n        if (isEditable(target)) {\n            return ()=>{\n                input(instance, target, '', 'deleteContentBackward');\n            };\n        }\n    },\n    Delete: (event, target, instance)=>{\n        if (isEditable(target)) {\n            return ()=>{\n                input(instance, target, '', 'deleteContentForward');\n            };\n        }\n    },\n    End: (event, target)=>{\n        if (isElementType(target, [\n            'input',\n            'textarea'\n        ]) || isContentEditable(target)) {\n            return ()=>{\n                var _getValueOrTextContent;\n                var _getValueOrTextContent_length;\n                const newPos = (_getValueOrTextContent_length = (_getValueOrTextContent = getValueOrTextContent(target)) === null || _getValueOrTextContent === undefined ? undefined : _getValueOrTextContent.length) !== null && _getValueOrTextContent_length !== undefined ? _getValueOrTextContent_length : /* istanbul ignore next */ 0;\n                setSelectionRange(target, newPos, newPos);\n            };\n        }\n    },\n    Home: (event, target)=>{\n        if (isElementType(target, [\n            'input',\n            'textarea'\n        ]) || isContentEditable(target)) {\n            return ()=>{\n                setSelectionRange(target, 0, 0);\n            };\n        }\n    },\n    PageDown: (event, target)=>{\n        if (isElementType(target, [\n            'input'\n        ])) {\n            return ()=>{\n                const newPos = getUIValue(target).length;\n                setSelectionRange(target, newPos, newPos);\n            };\n        }\n    },\n    PageUp: (event, target)=>{\n        if (isElementType(target, [\n            'input'\n        ])) {\n            return ()=>{\n                setSelectionRange(target, 0, 0);\n            };\n        }\n    },\n    Tab: (event, target, instance)=>{\n        return ()=>{\n            const dest = getTabDestination(target, instance.system.keyboard.modifiers.Shift);\n            focusElement(dest);\n            if (hasOwnSelection(dest)) {\n                setUISelection(dest, {\n                    anchorOffset: 0,\n                    focusOffset: dest.value.length\n                });\n            }\n        };\n    }\n};\nconst combinationBehavior = (event, target, instance)=>{\n    if (event.code === 'KeyA' && instance.system.keyboard.modifiers.Control) {\n        return ()=>selectAll(target);\n    }\n};\n","import { isElementType } from '../../utils/misc/isElementType.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { isContentEditable } from '../../utils/edit/isContentEditable.js';\nimport { isEditable } from '../../utils/edit/isEditable.js';\nimport { input } from '../input.js';\nimport { behavior } from './registry.js';\n\nbehavior.keypress = (event, target, instance)=>{\n    if (event.key === 'Enter') {\n        if (isElementType(target, 'button') || isElementType(target, 'input') && ClickInputOnEnter.includes(target.type) || isElementType(target, 'a') && Boolean(target.href)) {\n            return ()=>{\n                instance.dispatchUIEvent(target, 'click');\n            };\n        } else if (isElementType(target, 'input')) {\n            const form = target.form;\n            const submit = form === null || form === undefined ? undefined : form.querySelector('input[type=\"submit\"], button:not([type]), button[type=\"submit\"]');\n            if (submit) {\n                return ()=>instance.dispatchUIEvent(submit, 'click');\n            } else if (form && SubmitSingleInputOnEnter.includes(target.type) && form.querySelectorAll('input').length === 1) {\n                return ()=>instance.dispatchUIEvent(form, 'submit');\n            } else {\n                return;\n            }\n        }\n    }\n    if (isEditable(target)) {\n        const inputType = event.key === 'Enter' ? isContentEditable(target) && !instance.system.keyboard.modifiers.Shift ? 'insertParagraph' : 'insertLineBreak' : 'insertText';\n        const inputData = event.key === 'Enter' ? '\\n' : event.key;\n        return ()=>input(instance, target, inputData, inputType);\n    }\n};\nconst ClickInputOnEnter = [\n    'button',\n    'color',\n    'file',\n    'image',\n    'reset',\n    'submit'\n];\nconst SubmitSingleInputOnEnter = [\n    'email',\n    'month',\n    'password',\n    'search',\n    'tel',\n    'text',\n    'url',\n    'week'\n];\n","import { isClickableInput } from '../../utils/click/isClickableInput.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { behavior } from './registry.js';\n\nbehavior.keyup = (event, target, instance)=>{\n    var _keyupBehavior_event_key;\n    return (_keyupBehavior_event_key = keyupBehavior[event.key]) === null || _keyupBehavior_event_key === undefined ? undefined : _keyupBehavior_event_key.call(keyupBehavior, event, target, instance);\n};\nconst keyupBehavior = {\n    ' ': (event, target, instance)=>{\n        if (isClickableInput(target)) {\n            return ()=>instance.dispatchUIEvent(target, 'click');\n        }\n    }\n};\n","import '../../utils/dataTransfer/Clipboard.js';\nimport { isEditable } from '../../utils/edit/isEditable.js';\nimport { input } from '../input.js';\nimport { behavior } from './registry.js';\n\nbehavior.paste = (event, target, instance)=>{\n    if (isEditable(target)) {\n        return ()=>{\n            var _event_clipboardData;\n            const insertData = (_event_clipboardData = event.clipboardData) === null || _event_clipboardData === undefined ? undefined : _event_clipboardData.getData('text');\n            if (insertData) {\n                input(instance, target, insertData, 'insertFromPaste');\n            }\n        };\n    }\n};\n","const eventMap = {\n    auxclick: {\n        EventType: 'PointerEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    beforeinput: {\n        EventType: 'InputEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    blur: {\n        EventType: 'FocusEvent',\n        defaultInit: {\n            bubbles: false,\n            cancelable: false,\n            composed: true\n        }\n    },\n    click: {\n        EventType: 'PointerEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    contextmenu: {\n        EventType: 'PointerEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    copy: {\n        EventType: 'ClipboardEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    change: {\n        EventType: 'Event',\n        defaultInit: {\n            bubbles: true,\n            cancelable: false\n        }\n    },\n    cut: {\n        EventType: 'ClipboardEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    dblclick: {\n        EventType: 'MouseEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    focus: {\n        EventType: 'FocusEvent',\n        defaultInit: {\n            bubbles: false,\n            cancelable: false,\n            composed: true\n        }\n    },\n    focusin: {\n        EventType: 'FocusEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: false,\n            composed: true\n        }\n    },\n    focusout: {\n        EventType: 'FocusEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: false,\n            composed: true\n        }\n    },\n    keydown: {\n        EventType: 'KeyboardEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    keypress: {\n        EventType: 'KeyboardEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    keyup: {\n        EventType: 'KeyboardEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    paste: {\n        EventType: 'ClipboardEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    input: {\n        EventType: 'InputEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: false,\n            composed: true\n        }\n    },\n    mousedown: {\n        EventType: 'MouseEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    mouseenter: {\n        EventType: 'MouseEvent',\n        defaultInit: {\n            bubbles: false,\n            cancelable: false,\n            composed: true\n        }\n    },\n    mouseleave: {\n        EventType: 'MouseEvent',\n        defaultInit: {\n            bubbles: false,\n            cancelable: false,\n            composed: true\n        }\n    },\n    mousemove: {\n        EventType: 'MouseEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    mouseout: {\n        EventType: 'MouseEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    mouseover: {\n        EventType: 'MouseEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    mouseup: {\n        EventType: 'MouseEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    pointerover: {\n        EventType: 'PointerEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    pointerenter: {\n        EventType: 'PointerEvent',\n        defaultInit: {\n            bubbles: false,\n            cancelable: false\n        }\n    },\n    pointerdown: {\n        EventType: 'PointerEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    pointermove: {\n        EventType: 'PointerEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    pointerup: {\n        EventType: 'PointerEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    pointercancel: {\n        EventType: 'PointerEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: false,\n            composed: true\n        }\n    },\n    pointerout: {\n        EventType: 'PointerEvent',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true,\n            composed: true\n        }\n    },\n    pointerleave: {\n        EventType: 'PointerEvent',\n        defaultInit: {\n            bubbles: false,\n            cancelable: false\n        }\n    },\n    submit: {\n        EventType: 'Event',\n        defaultInit: {\n            bubbles: true,\n            cancelable: true\n        }\n    }\n};\nfunction getEventClass(type) {\n    return eventMap[type].EventType;\n}\nconst mouseEvents = [\n    'MouseEvent',\n    'PointerEvent'\n];\nfunction isMouseEvent(type) {\n    return mouseEvents.includes(getEventClass(type));\n}\nfunction isKeyboardEvent(type) {\n    return getEventClass(type) === 'KeyboardEvent';\n}\n\nexport { eventMap, isKeyboardEvent, isMouseEvent };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\nimport { eventMap } from './eventMap.js';\n\nconst eventInitializer = {\n    ClipboardEvent: [\n        initClipboardEvent\n    ],\n    Event: [],\n    FocusEvent: [\n        initUIEvent,\n        initFocusEvent\n    ],\n    InputEvent: [\n        initUIEvent,\n        initInputEvent\n    ],\n    MouseEvent: [\n        initUIEvent,\n        initUIEventModifiers,\n        initMouseEvent\n    ],\n    PointerEvent: [\n        initUIEvent,\n        initUIEventModifiers,\n        initMouseEvent,\n        initPointerEvent\n    ],\n    KeyboardEvent: [\n        initUIEvent,\n        initUIEventModifiers,\n        initKeyboardEvent\n    ]\n};\nfunction createEvent(type, target, init) {\n    const window = getWindow(target);\n    const { EventType, defaultInit } = eventMap[type];\n    const event = new (getEventConstructors(window))[EventType](type, defaultInit);\n    eventInitializer[EventType].forEach((f)=>f(event, init !== null && init !== undefined ? init : {}));\n    return event;\n}\n/* istanbul ignore next */ function getEventConstructors(window) {\n    var _window_Event;\n    /* eslint-disable @typescript-eslint/no-unnecessary-condition, @typescript-eslint/no-extraneous-class */ const Event = (_window_Event = window.Event) !== null && _window_Event !== undefined ? _window_Event : class Event {\n    };\n    var _window_AnimationEvent;\n    const AnimationEvent = (_window_AnimationEvent = window.AnimationEvent) !== null && _window_AnimationEvent !== undefined ? _window_AnimationEvent : class AnimationEvent extends Event {\n    };\n    var _window_ClipboardEvent;\n    const ClipboardEvent = (_window_ClipboardEvent = window.ClipboardEvent) !== null && _window_ClipboardEvent !== undefined ? _window_ClipboardEvent : class ClipboardEvent extends Event {\n    };\n    var _window_PopStateEvent;\n    const PopStateEvent = (_window_PopStateEvent = window.PopStateEvent) !== null && _window_PopStateEvent !== undefined ? _window_PopStateEvent : class PopStateEvent extends Event {\n    };\n    var _window_ProgressEvent;\n    const ProgressEvent = (_window_ProgressEvent = window.ProgressEvent) !== null && _window_ProgressEvent !== undefined ? _window_ProgressEvent : class ProgressEvent extends Event {\n    };\n    var _window_TransitionEvent;\n    const TransitionEvent = (_window_TransitionEvent = window.TransitionEvent) !== null && _window_TransitionEvent !== undefined ? _window_TransitionEvent : class TransitionEvent extends Event {\n    };\n    var _window_UIEvent;\n    const UIEvent = (_window_UIEvent = window.UIEvent) !== null && _window_UIEvent !== undefined ? _window_UIEvent : class UIEvent extends Event {\n    };\n    var _window_CompositionEvent;\n    const CompositionEvent = (_window_CompositionEvent = window.CompositionEvent) !== null && _window_CompositionEvent !== undefined ? _window_CompositionEvent : class CompositionEvent extends UIEvent {\n    };\n    var _window_FocusEvent;\n    const FocusEvent = (_window_FocusEvent = window.FocusEvent) !== null && _window_FocusEvent !== undefined ? _window_FocusEvent : class FocusEvent extends UIEvent {\n    };\n    var _window_InputEvent;\n    const InputEvent = (_window_InputEvent = window.InputEvent) !== null && _window_InputEvent !== undefined ? _window_InputEvent : class InputEvent extends UIEvent {\n    };\n    var _window_KeyboardEvent;\n    const KeyboardEvent = (_window_KeyboardEvent = window.KeyboardEvent) !== null && _window_KeyboardEvent !== undefined ? _window_KeyboardEvent : class KeyboardEvent extends UIEvent {\n    };\n    var _window_MouseEvent;\n    const MouseEvent = (_window_MouseEvent = window.MouseEvent) !== null && _window_MouseEvent !== undefined ? _window_MouseEvent : class MouseEvent extends UIEvent {\n    };\n    var _window_DragEvent;\n    const DragEvent = (_window_DragEvent = window.DragEvent) !== null && _window_DragEvent !== undefined ? _window_DragEvent : class DragEvent extends MouseEvent {\n    };\n    var _window_PointerEvent;\n    const PointerEvent = (_window_PointerEvent = window.PointerEvent) !== null && _window_PointerEvent !== undefined ? _window_PointerEvent : class PointerEvent extends MouseEvent {\n    };\n    var _window_TouchEvent;\n    const TouchEvent = (_window_TouchEvent = window.TouchEvent) !== null && _window_TouchEvent !== undefined ? _window_TouchEvent : class TouchEvent extends UIEvent {\n    };\n    /* eslint-enable @typescript-eslint/no-unnecessary-condition, @typescript-eslint/no-extraneous-class */ return {\n        Event,\n        AnimationEvent,\n        ClipboardEvent,\n        PopStateEvent,\n        ProgressEvent,\n        TransitionEvent,\n        UIEvent,\n        CompositionEvent,\n        FocusEvent,\n        InputEvent,\n        KeyboardEvent,\n        MouseEvent,\n        DragEvent,\n        PointerEvent,\n        TouchEvent\n    };\n}\nfunction assignProps(obj, props) {\n    for (const [key, value] of Object.entries(props)){\n        Object.defineProperty(obj, key, {\n            get: ()=>value !== null && value !== undefined ? value : null\n        });\n    }\n}\nfunction sanitizeNumber(n) {\n    return Number(n !== null && n !== undefined ? n : 0);\n}\nfunction initClipboardEvent(event, { clipboardData }) {\n    assignProps(event, {\n        clipboardData\n    });\n}\nfunction initFocusEvent(event, { relatedTarget }) {\n    assignProps(event, {\n        relatedTarget\n    });\n}\nfunction initInputEvent(event, { data, inputType, isComposing }) {\n    assignProps(event, {\n        data,\n        isComposing: Boolean(isComposing),\n        inputType: String(inputType)\n    });\n}\nfunction initUIEvent(event, { view, detail }) {\n    assignProps(event, {\n        view,\n        detail: sanitizeNumber(detail !== null && detail !== undefined ? detail : 0)\n    });\n}\nfunction initUIEventModifiers(event, { altKey, ctrlKey, metaKey, shiftKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierNumLock, modifierScrollLock, modifierSymbol, modifierSymbolLock }) {\n    assignProps(event, {\n        altKey: Boolean(altKey),\n        ctrlKey: Boolean(ctrlKey),\n        metaKey: Boolean(metaKey),\n        shiftKey: Boolean(shiftKey),\n        getModifierState (k) {\n            return Boolean({\n                Alt: altKey,\n                AltGraph: modifierAltGraph,\n                CapsLock: modifierCapsLock,\n                Control: ctrlKey,\n                Fn: modifierFn,\n                FnLock: modifierFnLock,\n                Meta: metaKey,\n                NumLock: modifierNumLock,\n                ScrollLock: modifierScrollLock,\n                Shift: shiftKey,\n                Symbol: modifierSymbol,\n                SymbolLock: modifierSymbolLock\n            }[k]);\n        }\n    });\n}\nfunction initKeyboardEvent(event, { key, code, location, repeat, isComposing, charCode }) {\n    assignProps(event, {\n        key: String(key),\n        code: String(code),\n        location: sanitizeNumber(location),\n        repeat: Boolean(repeat),\n        isComposing: Boolean(isComposing),\n        charCode\n    });\n}\nfunction initMouseEvent(event, { x, y, screenX, screenY, clientX = x, clientY = y, button, buttons, relatedTarget, offsetX, offsetY, pageX, pageY }) {\n    assignProps(event, {\n        screenX: sanitizeNumber(screenX),\n        screenY: sanitizeNumber(screenY),\n        clientX: sanitizeNumber(clientX),\n        x: sanitizeNumber(clientX),\n        clientY: sanitizeNumber(clientY),\n        y: sanitizeNumber(clientY),\n        button: sanitizeNumber(button),\n        buttons: sanitizeNumber(buttons),\n        relatedTarget,\n        offsetX: sanitizeNumber(offsetX),\n        offsetY: sanitizeNumber(offsetY),\n        pageX: sanitizeNumber(pageX),\n        pageY: sanitizeNumber(pageY)\n    });\n}\nfunction initPointerEvent(event, { pointerId, width, height, pressure, tangentialPressure, tiltX, tiltY, twist, pointerType, isPrimary }) {\n    assignProps(event, {\n        pointerId: sanitizeNumber(pointerId),\n        width: sanitizeNumber(width !== null && width !== undefined ? width : 1),\n        height: sanitizeNumber(height !== null && height !== undefined ? height : 1),\n        pressure: sanitizeNumber(pressure),\n        tangentialPressure: sanitizeNumber(tangentialPressure),\n        tiltX: sanitizeNumber(tiltX),\n        tiltY: sanitizeNumber(tiltY),\n        twist: sanitizeNumber(twist),\n        pointerType: String(pointerType),\n        isPrimary: Boolean(isPrimary)\n    });\n}\n\nexport { createEvent };\n","import './behavior/click.js';\nimport './behavior/cut.js';\nimport './behavior/keydown.js';\nimport './behavior/keypress.js';\nimport './behavior/keyup.js';\nimport './behavior/paste.js';\nimport { behavior } from './behavior/registry.js';\nimport { wrapEvent } from './wrapEvent.js';\nimport { isMouseEvent, isKeyboardEvent } from './eventMap.js';\nimport { createEvent } from './createEvent.js';\n\nfunction dispatchUIEvent(target, type, init, preventDefault = false) {\n    if (isMouseEvent(type) || isKeyboardEvent(type)) {\n        init = {\n            ...init,\n            ...this.system.getUIEventModifiers()\n        };\n    }\n    const event = createEvent(type, target, init);\n    return dispatchEvent.call(this, target, event, preventDefault);\n}\nfunction dispatchEvent(target, event, preventDefault = false) {\n    var _behavior_type;\n    const type = event.type;\n    const behaviorImplementation = preventDefault ? ()=>{} : (_behavior_type = behavior[type]) === null || _behavior_type === undefined ? undefined : _behavior_type.call(behavior, event, target, this);\n    if (behaviorImplementation) {\n        event.preventDefault();\n        let defaultPrevented = false;\n        Object.defineProperty(event, 'defaultPrevented', {\n            get: ()=>defaultPrevented\n        });\n        Object.defineProperty(event, 'preventDefault', {\n            value: ()=>{\n                defaultPrevented = event.cancelable;\n            }\n        });\n        wrapEvent(()=>target.dispatchEvent(event));\n        if (!defaultPrevented) {\n            behaviorImplementation();\n        }\n        return !defaultPrevented;\n    }\n    return wrapEvent(()=>target.dispatchEvent(event));\n}\nfunction dispatchDOMEvent(target, type, init) {\n    const event = createEvent(type, target, init);\n    wrapEvent(()=>target.dispatchEvent(event));\n}\n\nexport { dispatchDOMEvent, dispatchEvent, dispatchUIEvent };\n","import { dispatchDOMEvent } from '../event/dispatchEvent.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { getActiveElement } from '../utils/focus/getActiveElement.js';\nimport '@testing-library/dom';\n\nconst patched = Symbol('patched focus/blur methods');\nfunction patchFocus(HTMLElement) {\n    if (HTMLElement.prototype[patched]) {\n        return;\n    }\n    // eslint-disable-next-line @typescript-eslint/unbound-method\n    const { focus, blur } = HTMLElement.prototype;\n    Object.defineProperties(HTMLElement.prototype, {\n        focus: {\n            configurable: true,\n            get: ()=>patchedFocus\n        },\n        blur: {\n            configurable: true,\n            get: ()=>patchedBlur\n        },\n        [patched]: {\n            configurable: true,\n            get: ()=>({\n                    focus,\n                    blur\n                })\n        }\n    });\n    let activeCall;\n    function patchedFocus(options) {\n        if (this.ownerDocument.visibilityState !== 'hidden') {\n            return focus.call(this, options);\n        }\n        const blurred = getActiveTarget(this.ownerDocument);\n        if (blurred === this) {\n            return;\n        }\n        const thisCall = Symbol('focus call');\n        activeCall = thisCall;\n        if (blurred) {\n            blur.call(blurred);\n            dispatchDOMEvent(blurred, 'blur', {\n                relatedTarget: this\n            });\n            dispatchDOMEvent(blurred, 'focusout', {\n                relatedTarget: activeCall === thisCall ? this : null\n            });\n        }\n        if (activeCall === thisCall) {\n            focus.call(this, options);\n            dispatchDOMEvent(this, 'focus', {\n                relatedTarget: blurred\n            });\n        }\n        if (activeCall === thisCall) {\n            dispatchDOMEvent(this, 'focusin', {\n                relatedTarget: blurred\n            });\n        }\n    }\n    function patchedBlur() {\n        if (this.ownerDocument.visibilityState !== 'hidden') {\n            return blur.call(this);\n        }\n        const blurred = getActiveTarget(this.ownerDocument);\n        if (blurred !== this) {\n            return;\n        }\n        const thisCall = Symbol('blur call');\n        activeCall = thisCall;\n        blur.call(this);\n        dispatchDOMEvent(blurred, 'blur', {\n            relatedTarget: null\n        });\n        dispatchDOMEvent(blurred, 'focusout', {\n            relatedTarget: null\n        });\n    }\n}\nfunction getActiveTarget(document) {\n    const active = getActiveElement(document);\n    return (active === null || active === undefined ? undefined : active.tagName) === 'BODY' ? null : active;\n}\nfunction restoreFocus(HTMLElement) {\n    if (HTMLElement.prototype[patched]) {\n        const { focus, blur } = HTMLElement.prototype[patched];\n        Object.defineProperties(HTMLElement.prototype, {\n            focus: {\n                configurable: true,\n                get: ()=>focus\n            },\n            blur: {\n                configurable: true,\n                get: ()=>blur\n            }\n        });\n    }\n}\n\nexport { patchFocus, restoreFocus };\n","import { isElementType } from '../utils/misc/isElementType.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { startTrackValue, trackOrSetValue } from './trackValue.js';\nimport { setUISelectionClean, setUISelectionRaw, getUIValue, setUIValueClean, isUIValue, isUISelectionStart } from './UI.js';\n\nconst Interceptor = Symbol('Interceptor for programmatical calls');\nfunction prepareInterceptor(element, propName, interceptorImpl) {\n    const prototypeDescriptor = Object.getOwnPropertyDescriptor(element.constructor.prototype, propName);\n    const objectDescriptor = Object.getOwnPropertyDescriptor(element, propName);\n    const target = (prototypeDescriptor === null || prototypeDescriptor === undefined ? undefined : prototypeDescriptor.set) ? 'set' : 'value';\n    /* istanbul ignore if */ if (typeof (prototypeDescriptor === null || prototypeDescriptor === undefined ? undefined : prototypeDescriptor[target]) !== 'function' || prototypeDescriptor[target][Interceptor]) {\n        throw new Error(`Element ${element.tagName} does not implement \"${String(propName)}\".`);\n    }\n    function intercept(...args) {\n        const { applyNative = false, realArgs, then } = interceptorImpl.call(this, ...args);\n        const realFunc = (!applyNative && objectDescriptor || prototypeDescriptor)[target];\n        if (target === 'set') {\n            realFunc.call(this, realArgs);\n        } else {\n            realFunc.call(this, ...realArgs);\n        }\n        then === null || then === undefined ? undefined : then();\n    }\n    intercept[Interceptor] = Interceptor;\n    Object.defineProperty(element, propName, {\n        ...objectDescriptor !== null && objectDescriptor !== undefined ? objectDescriptor : prototypeDescriptor,\n        [target]: intercept\n    });\n}\nfunction prepareValueInterceptor(element) {\n    prepareInterceptor(element, 'value', function interceptorImpl(v) {\n        const isUI = isUIValue(v);\n        if (isUI) {\n            startTrackValue(this);\n        }\n        return {\n            applyNative: !!isUI,\n            realArgs: sanitizeValue(this, v),\n            then: isUI ? undefined : ()=>trackOrSetValue(this, String(v))\n        };\n    });\n}\nfunction sanitizeValue(element, v) {\n    // Workaround for JSDOM\n    if (isElementType(element, 'input', {\n        type: 'number'\n    }) && String(v) !== '' && !Number.isNaN(Number(v))) {\n        // Setting value to \"1.\" results in `null` in JSDOM\n        return String(Number(v));\n    }\n    return String(v);\n}\nfunction prepareSelectionInterceptor(element) {\n    prepareInterceptor(element, 'setSelectionRange', function interceptorImpl(start, ...others) {\n        const isUI = isUISelectionStart(start);\n        return {\n            applyNative: !!isUI,\n            realArgs: [\n                Number(start),\n                ...others\n            ],\n            then: ()=>isUI ? undefined : setUISelectionClean(element)\n        };\n    });\n    prepareInterceptor(element, 'selectionStart', function interceptorImpl(v) {\n        return {\n            realArgs: v,\n            then: ()=>setUISelectionClean(element)\n        };\n    });\n    prepareInterceptor(element, 'selectionEnd', function interceptorImpl(v) {\n        return {\n            realArgs: v,\n            then: ()=>setUISelectionClean(element)\n        };\n    });\n    prepareInterceptor(element, 'select', function interceptorImpl() {\n        return {\n            realArgs: [],\n            then: ()=>setUISelectionRaw(element, {\n                    anchorOffset: 0,\n                    focusOffset: getUIValue(element).length\n                })\n        };\n    });\n}\nfunction prepareRangeTextInterceptor(element) {\n    prepareInterceptor(element, 'setRangeText', function interceptorImpl(...realArgs) {\n        return {\n            realArgs,\n            then: ()=>{\n                setUIValueClean(element);\n                setUISelectionClean(element);\n            }\n        };\n    });\n}\n\nexport { prepareInterceptor, prepareRangeTextInterceptor, prepareSelectionInterceptor, prepareValueInterceptor };\n","import { dispatchDOMEvent } from '../event/dispatchEvent.js';\nimport { isElementType } from '../utils/misc/isElementType.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { getInitialValue, clearInitialValue } from './UI.js';\nimport '@testing-library/dom';\nimport { prepareValueInterceptor, prepareSelectionInterceptor, prepareRangeTextInterceptor } from './interceptor.js';\n\nconst isPrepared = Symbol('Node prepared with document state workarounds');\nfunction prepareDocument(document) {\n    if (document[isPrepared]) {\n        return;\n    }\n    document.addEventListener('focus', (e)=>{\n        const el = e.target;\n        prepareElement(el);\n    }, {\n        capture: true,\n        passive: true\n    });\n    // Our test environment defaults to `document.body` as `activeElement`.\n    // In other environments this might be `null` when preparing.\n    // istanbul ignore else\n    if (document.activeElement) {\n        prepareElement(document.activeElement);\n    }\n    document.addEventListener('blur', (e)=>{\n        const el = e.target;\n        const initialValue = getInitialValue(el);\n        if (initialValue !== undefined) {\n            if (el.value !== initialValue) {\n                dispatchDOMEvent(el, 'change');\n            }\n            clearInitialValue(el);\n        }\n    }, {\n        capture: true,\n        passive: true\n    });\n    document[isPrepared] = isPrepared;\n}\nfunction prepareElement(el) {\n    if (el[isPrepared]) {\n        return;\n    }\n    if (isElementType(el, [\n        'input',\n        'textarea'\n    ])) {\n        prepareValueInterceptor(el);\n        prepareSelectionInterceptor(el);\n        prepareRangeTextInterceptor(el);\n    }\n    el[isPrepared] = isPrepared;\n}\n\nexport { prepareDocument };\n","function getDocumentFromNode(el) {\n    return isDocument(el) ? el : el.ownerDocument;\n}\nfunction isDocument(node) {\n    return node.nodeType === 9;\n}\n\nexport { getDocumentFromNode };\n","var ApiLevel = /*#__PURE__*/ function(ApiLevel) {\n    ApiLevel[ApiLevel[\"Trigger\"] = 2] = \"Trigger\";\n    ApiLevel[ApiLevel[\"Call\"] = 1] = \"Call\";\n    return ApiLevel;\n}({});\nfunction setLevelRef(instance, level) {\n    instance.levelRefs[level] = {};\n}\nfunction getLevelRef(instance, level) {\n    return instance.levelRefs[level];\n}\n\nexport { ApiLevel, getLevelRef, setLevelRef };\n","function wait(config) {\n    const delay = config.delay;\n    if (typeof delay !== 'number') {\n        return;\n    }\n    return Promise.all([\n        new Promise((resolve)=>globalThis.setTimeout(()=>resolve(), delay)),\n        config.advanceTimers(delay)\n    ]);\n}\n\nexport { wait };\n","var PointerEventsCheckLevel = /*#__PURE__*/ function(PointerEventsCheckLevel) {\n    /**\n   * Check pointer events on every user interaction that triggers a bunch of events.\n   * E.g. once for releasing a mouse button even though this triggers `pointerup`, `mouseup`, `click`, etc...\n   */ PointerEventsCheckLevel[PointerEventsCheckLevel[\"EachTrigger\"] = 4] = \"EachTrigger\";\n    /** Check each target once per call to pointer (related) API */ PointerEventsCheckLevel[PointerEventsCheckLevel[\"EachApiCall\"] = 2] = \"EachApiCall\";\n    /** Check each event target once */ PointerEventsCheckLevel[PointerEventsCheckLevel[\"EachTarget\"] = 1] = \"EachTarget\";\n    /** No pointer events check */ PointerEventsCheckLevel[PointerEventsCheckLevel[\"Never\"] = 0] = \"Never\";\n    return PointerEventsCheckLevel;\n}({});\n\nexport { PointerEventsCheckLevel };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { getActiveElementOrBody } from '../utils/focus/getActiveElement.js';\n\nfunction _define_property(obj, key, value) {\n    if (key in obj) {\n        Object.defineProperty(obj, key, {\n            value: value,\n            enumerable: true,\n            configurable: true,\n            writable: true\n        });\n    } else {\n        obj[key] = value;\n    }\n    return obj;\n}\nvar DOM_KEY_LOCATION = /*#__PURE__*/ function(DOM_KEY_LOCATION) {\n    DOM_KEY_LOCATION[DOM_KEY_LOCATION[\"STANDARD\"] = 0] = \"STANDARD\";\n    DOM_KEY_LOCATION[DOM_KEY_LOCATION[\"LEFT\"] = 1] = \"LEFT\";\n    DOM_KEY_LOCATION[DOM_KEY_LOCATION[\"RIGHT\"] = 2] = \"RIGHT\";\n    DOM_KEY_LOCATION[DOM_KEY_LOCATION[\"NUMPAD\"] = 3] = \"NUMPAD\";\n    return DOM_KEY_LOCATION;\n}({});\nconst modifierKeys = [\n    'Alt',\n    'AltGraph',\n    'Control',\n    'Fn',\n    'Meta',\n    'Shift',\n    'Symbol'\n];\nfunction isModifierKey(key) {\n    return modifierKeys.includes(key);\n}\nconst modifierLocks = [\n    'CapsLock',\n    'FnLock',\n    'NumLock',\n    'ScrollLock',\n    'SymbolLock'\n];\nfunction isModifierLock(key) {\n    return modifierLocks.includes(key);\n}\nclass KeyboardHost {\n    isKeyPressed(keyDef) {\n        return this.pressed.has(String(keyDef.code));\n    }\n    getPressedKeys() {\n        return this.pressed.values().map((p)=>p.keyDef);\n    }\n    /** Press a key */ async keydown(instance, keyDef) {\n        const key = String(keyDef.key);\n        const code = String(keyDef.code);\n        const target = getActiveElementOrBody(instance.config.document);\n        this.setKeydownTarget(target);\n        this.pressed.add(code, keyDef);\n        if (isModifierKey(key)) {\n            this.modifiers[key] = true;\n        }\n        const unprevented = instance.dispatchUIEvent(target, 'keydown', {\n            key,\n            code\n        });\n        if (isModifierLock(key) && !this.modifiers[key]) {\n            this.modifiers[key] = true;\n            this.modifierLockStart[key] = true;\n        }\n        if (unprevented) {\n            this.pressed.setUnprevented(code);\n        }\n        if (unprevented && this.hasKeyPress(key)) {\n            instance.dispatchUIEvent(getActiveElementOrBody(instance.config.document), 'keypress', {\n                key,\n                code,\n                charCode: keyDef.key === 'Enter' ? 13 : String(keyDef.key).charCodeAt(0)\n            });\n        }\n    }\n    /** Release a key */ async keyup(instance, keyDef) {\n        const key = String(keyDef.key);\n        const code = String(keyDef.code);\n        const unprevented = this.pressed.isUnprevented(code);\n        this.pressed.delete(code);\n        if (isModifierKey(key) && !this.pressed.values().find((p)=>p.keyDef.key === key)) {\n            this.modifiers[key] = false;\n        }\n        instance.dispatchUIEvent(getActiveElementOrBody(instance.config.document), 'keyup', {\n            key,\n            code\n        }, !unprevented);\n        if (isModifierLock(key) && this.modifiers[key]) {\n            if (this.modifierLockStart[key]) {\n                this.modifierLockStart[key] = false;\n            } else {\n                this.modifiers[key] = false;\n            }\n        }\n    }\n    setKeydownTarget(target) {\n        if (target !== this.lastKeydownTarget) {\n            this.carryChar = '';\n        }\n        this.lastKeydownTarget = target;\n    }\n    hasKeyPress(key) {\n        return (key.length === 1 || key === 'Enter') && !this.modifiers.Control && !this.modifiers.Alt;\n    }\n    constructor(system){\n        _define_property(this, \"system\", undefined);\n        _define_property(this, \"modifiers\", {\n            Alt: false,\n            AltGraph: false,\n            CapsLock: false,\n            Control: false,\n            Fn: false,\n            FnLock: false,\n            Meta: false,\n            NumLock: false,\n            ScrollLock: false,\n            Shift: false,\n            Symbol: false,\n            SymbolLock: false\n        });\n        _define_property(this, \"pressed\", new class {\n            add(code, keyDef) {\n                var _this_registry, _code;\n                var _;\n                (_ = (_this_registry = this.registry)[_code = code]) !== null && _ !== undefined ? _ : _this_registry[_code] = {\n                    keyDef,\n                    unpreventedDefault: false\n                };\n            }\n            has(code) {\n                return !!this.registry[code];\n            }\n            setUnprevented(code) {\n                const o = this.registry[code];\n                if (o) {\n                    o.unpreventedDefault = true;\n                }\n            }\n            isUnprevented(code) {\n                var _this_registry_code;\n                return !!((_this_registry_code = this.registry[code]) === null || _this_registry_code === undefined ? undefined : _this_registry_code.unpreventedDefault);\n            }\n            delete(code) {\n                // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n                delete this.registry[code];\n            }\n            values() {\n                return Object.values(this.registry);\n            }\n            constructor(){\n                _define_property(this, \"registry\", {});\n            }\n        }());\n        _define_property(this, \"carryChar\", '');\n        _define_property(this, \"lastKeydownTarget\", undefined);\n        _define_property(this, \"modifierLockStart\", {});\n        this.system = system;\n    }\n}\n\nexport { DOM_KEY_LOCATION, KeyboardHost };\n","import { DOM_KEY_LOCATION } from '../system/keyboard.js';\n\n/**\n * Mapping for a default US-104-QWERTY keyboard\n */ const defaultKeyMap = [\n    // alphanumeric block - writing system\n    ...'0123456789'.split('').map((c)=>({\n            code: `Digit${c}`,\n            key: c\n        })),\n    ...')!@#$%^&*('.split('').map((c, i)=>({\n            code: `Digit${i}`,\n            key: c,\n            shiftKey: true\n        })),\n    ...'abcdefghijklmnopqrstuvwxyz'.split('').map((c)=>({\n            code: `Key${c.toUpperCase()}`,\n            key: c\n        })),\n    ...'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('').map((c)=>({\n            code: `Key${c}`,\n            key: c,\n            shiftKey: true\n        })),\n    {\n        code: 'BracketLeft',\n        key: '['\n    },\n    {\n        code: 'BracketLeft',\n        key: '{',\n        shiftKey: true\n    },\n    {\n        code: 'BracketRight',\n        key: ']'\n    },\n    {\n        code: 'BracketRight',\n        key: '}',\n        shiftKey: true\n    },\n    // alphanumeric block - functional\n    {\n        code: 'Space',\n        key: ' '\n    },\n    {\n        code: 'AltLeft',\n        key: 'Alt',\n        location: DOM_KEY_LOCATION.LEFT\n    },\n    {\n        code: 'AltRight',\n        key: 'Alt',\n        location: DOM_KEY_LOCATION.RIGHT\n    },\n    {\n        code: 'ShiftLeft',\n        key: 'Shift',\n        location: DOM_KEY_LOCATION.LEFT\n    },\n    {\n        code: 'ShiftRight',\n        key: 'Shift',\n        location: DOM_KEY_LOCATION.RIGHT\n    },\n    {\n        code: 'ControlLeft',\n        key: 'Control',\n        location: DOM_KEY_LOCATION.LEFT\n    },\n    {\n        code: 'ControlRight',\n        key: 'Control',\n        location: DOM_KEY_LOCATION.RIGHT\n    },\n    {\n        code: 'MetaLeft',\n        key: 'Meta',\n        location: DOM_KEY_LOCATION.LEFT\n    },\n    {\n        code: 'MetaRight',\n        key: 'Meta',\n        location: DOM_KEY_LOCATION.RIGHT\n    },\n    {\n        code: 'OSLeft',\n        key: 'OS',\n        location: DOM_KEY_LOCATION.LEFT\n    },\n    {\n        code: 'OSRight',\n        key: 'OS',\n        location: DOM_KEY_LOCATION.RIGHT\n    },\n    {\n        code: 'ContextMenu',\n        key: 'ContextMenu'\n    },\n    {\n        code: 'Tab',\n        key: 'Tab'\n    },\n    {\n        code: 'CapsLock',\n        key: 'CapsLock'\n    },\n    {\n        code: 'Backspace',\n        key: 'Backspace'\n    },\n    {\n        code: 'Enter',\n        key: 'Enter'\n    },\n    // function\n    {\n        code: 'Escape',\n        key: 'Escape'\n    },\n    // arrows\n    {\n        code: 'ArrowUp',\n        key: 'ArrowUp'\n    },\n    {\n        code: 'ArrowDown',\n        key: 'ArrowDown'\n    },\n    {\n        code: 'ArrowLeft',\n        key: 'ArrowLeft'\n    },\n    {\n        code: 'ArrowRight',\n        key: 'ArrowRight'\n    },\n    // control pad\n    {\n        code: 'Home',\n        key: 'Home'\n    },\n    {\n        code: 'End',\n        key: 'End'\n    },\n    {\n        code: 'Delete',\n        key: 'Delete'\n    },\n    {\n        code: 'PageUp',\n        key: 'PageUp'\n    },\n    {\n        code: 'PageDown',\n        key: 'PageDown'\n    },\n    // Special keys that are not part of a default US-layout but included for specific behavior\n    {\n        code: 'Fn',\n        key: 'Fn'\n    },\n    {\n        code: 'Symbol',\n        key: 'Symbol'\n    },\n    {\n        code: 'AltRight',\n        key: 'AltGraph'\n    }\n];\n\nexport { defaultKeyMap };\n","const defaultKeyMap = [\n    {\n        name: 'MouseLeft',\n        pointerType: 'mouse',\n        button: 'primary'\n    },\n    {\n        name: 'MouseRight',\n        pointerType: 'mouse',\n        button: 'secondary'\n    },\n    {\n        name: 'MouseMiddle',\n        pointerType: 'mouse',\n        button: 'auxiliary'\n    },\n    {\n        name: 'TouchA',\n        pointerType: 'touch'\n    },\n    {\n        name: 'TouchB',\n        pointerType: 'touch'\n    },\n    {\n        name: 'TouchC',\n        pointerType: 'touch'\n    }\n];\n\nexport { defaultKeyMap };\n","function _define_property(obj, key, value) {\n    if (key in obj) {\n        Object.defineProperty(obj, key, {\n            value: value,\n            enumerable: true,\n            configurable: true,\n            writable: true\n        });\n    } else {\n        obj[key] = value;\n    }\n    return obj;\n}\nclass Buttons {\n    getButtons() {\n        let v = 0;\n        for (const button of Object.keys(this.pressed)){\n            // eslint-disable-next-line no-bitwise\n            v |= 2 ** Number(button);\n        }\n        return v;\n    }\n    down(keyDef) {\n        const button = getMouseButtonId(keyDef.button);\n        if (button in this.pressed) {\n            this.pressed[button].push(keyDef);\n            return undefined;\n        }\n        this.pressed[button] = [\n            keyDef\n        ];\n        return button;\n    }\n    up(keyDef) {\n        const button = getMouseButtonId(keyDef.button);\n        if (button in this.pressed) {\n            this.pressed[button] = this.pressed[button].filter((k)=>k.name !== keyDef.name);\n            if (this.pressed[button].length === 0) {\n                // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n                delete this.pressed[button];\n                return button;\n            }\n        }\n        return undefined;\n    }\n    constructor(){\n        _define_property(this, \"pressed\", {});\n    }\n}\nconst MouseButton = {\n    primary: 0,\n    secondary: 1,\n    auxiliary: 2,\n    back: 3,\n    X1: 3,\n    forward: 4,\n    X2: 4\n};\nfunction getMouseButtonId(button = 0) {\n    if (button in MouseButton) {\n        return MouseButton[button];\n    }\n    return Number(button);\n}\n// On the `MouseEvent.button` property auxiliary and secondary button are flipped compared to `MouseEvent.buttons`.\nconst MouseButtonFlip = {\n    1: 2,\n    2: 1\n};\nfunction getMouseEventButton(button) {\n    button = getMouseButtonId(button);\n    if (button in MouseButtonFlip) {\n        return MouseButtonFlip[button];\n    }\n    return button;\n}\n\nexport { Buttons, MouseButton, MouseButtonFlip, getMouseButtonId, getMouseEventButton };\n","function _define_property(obj, key, value) {\n    if (key in obj) {\n        Object.defineProperty(obj, key, {\n            value: value,\n            enumerable: true,\n            configurable: true,\n            writable: true\n        });\n    } else {\n        obj[key] = value;\n    }\n    return obj;\n}\nclass Device {\n    get countPressed() {\n        return this.pressedKeys.size;\n    }\n    isPressed(keyDef) {\n        return this.pressedKeys.has(keyDef.name);\n    }\n    addPressed(keyDef) {\n        return this.pressedKeys.add(keyDef.name);\n    }\n    removePressed(keyDef) {\n        return this.pressedKeys.delete(keyDef.name);\n    }\n    constructor(){\n        _define_property(this, \"pressedKeys\", new Set());\n    }\n}\n\nexport { Device };\n","function getTreeDiff(a, b) {\n    const treeA = [];\n    for(let el = a; el; el = el.parentElement){\n        treeA.push(el);\n    }\n    const treeB = [];\n    for(let el = b; el; el = el.parentElement){\n        treeB.push(el);\n    }\n    let i = 0;\n    for(;; i++){\n        if (i >= treeA.length || i >= treeB.length || treeA[treeA.length - 1 - i] !== treeB[treeB.length - 1 - i]) {\n            break;\n        }\n    }\n    return [\n        treeA.slice(0, treeA.length - i),\n        treeB.slice(0, treeB.length - i),\n        treeB.slice(treeB.length - i)\n    ];\n}\n\nexport { getTreeDiff };\n","import { getUIValue } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\n\nfunction resolveCaretPosition({ target, node, offset }) {\n    if (hasOwnSelection(target)) {\n        return {\n            node: target,\n            offset: offset !== null && offset !== undefined ? offset : getUIValue(target).length\n        };\n    } else if (node) {\n        return {\n            node,\n            offset: offset !== null && offset !== undefined ? offset : node.nodeType === 3 ? node.nodeValue.length : node.childNodes.length\n        };\n    }\n    return findNodeAtTextOffset(target, offset);\n}\nfunction findNodeAtTextOffset(node, offset, isRoot = true) {\n    // When clicking after the content the browser behavior can be complicated:\n    // 1. If there is textContent after the last element child,\n    // the cursor is moved there.\n    // 2. If there is textContent in the last element child,\n    // the browser moves the cursor to the last non-empty text node inside this element.\n    // 3. Otherwise the cursor is moved to the end of the target.\n    let i = offset === undefined ? node.childNodes.length - 1 : 0;\n    const step = offset === undefined ? -1 : 1;\n    while(offset === undefined ? i >= (isRoot ? Math.max(node.childNodes.length - 1, 0) : 0) : i <= node.childNodes.length){\n        if (offset && i === node.childNodes.length) {\n            throw new Error('The given offset is out of bounds.');\n        }\n        const c = node.childNodes.item(i);\n        const text = String(c.textContent);\n        if (text.length) {\n            if (offset !== undefined && text.length < offset) {\n                offset -= text.length;\n            } else if (c.nodeType === 1) {\n                return findNodeAtTextOffset(c, offset, false);\n            } else {\n                // The pre-commit hooks keeps changing this\n                // See https://github.com/kentcdodds/kcd-scripts/issues/218\n                /* istanbul ignore else */ // eslint-disable-next-line no-lonely-if\n                if (c.nodeType === 3) {\n                    return {\n                        node: c,\n                        offset: offset !== null && offset !== undefined ? offset : c.nodeValue.length\n                    };\n                }\n            }\n        }\n        i += step;\n    }\n    return {\n        node,\n        offset: node.childNodes.length\n    };\n}\n\nexport { resolveCaretPosition };\n","import { getUIValue, setUISelection } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { hasNoSelection, hasOwnSelection } from '../../utils/focus/selection.js';\nimport { resolveCaretPosition } from './resolveCaretPosition.js';\n\nfunction setSelectionPerMouseDown({ document, target, clickCount, node, offset }) {\n    if (hasNoSelection(target)) {\n        return;\n    }\n    const targetHasOwnSelection = hasOwnSelection(target);\n    // On non-input elements the text selection per multiple click\n    // can extend beyond the target boundaries.\n    // The exact mechanism what is considered in the same line is unclear.\n    // Looks it might be every inline element.\n    // TODO: Check what might be considered part of the same line of text.\n    const text = String(targetHasOwnSelection ? getUIValue(target) : target.textContent);\n    const [start, end] = node ? // which elements might be considered in the same line of text.\n    // TODO: support expanding initial range on multiple clicks if node is given\n    [\n        offset,\n        offset\n    ] : getTextRange(text, offset, clickCount);\n    // TODO: implement modifying selection per shift/ctrl+mouse\n    if (targetHasOwnSelection) {\n        setUISelection(target, {\n            anchorOffset: start !== null && start !== undefined ? start : text.length,\n            focusOffset: end !== null && end !== undefined ? end : text.length\n        });\n        return {\n            node: target,\n            start: start !== null && start !== undefined ? start : 0,\n            end: end !== null && end !== undefined ? end : text.length\n        };\n    } else {\n        const { node: startNode, offset: startOffset } = resolveCaretPosition({\n            target,\n            node,\n            offset: start\n        });\n        const { node: endNode, offset: endOffset } = resolveCaretPosition({\n            target,\n            node,\n            offset: end\n        });\n        const range = target.ownerDocument.createRange();\n        try {\n            range.setStart(startNode, startOffset);\n            range.setEnd(endNode, endOffset);\n        } catch (e) {\n            throw new Error('The given offset is out of bounds.');\n        }\n        const selection = document.getSelection();\n        selection === null || selection === undefined ? undefined : selection.removeAllRanges();\n        selection === null || selection === undefined ? undefined : selection.addRange(range.cloneRange());\n        return range;\n    }\n}\nfunction getTextRange(text, pos, clickCount) {\n    if (clickCount % 3 === 1 || text.length === 0) {\n        return [\n            pos,\n            pos\n        ];\n    }\n    const textPos = pos !== null && pos !== undefined ? pos : text.length;\n    if (clickCount % 3 === 2) {\n        return [\n            textPos - text.substr(0, pos).match(/(\\w+|\\s+|\\W)?$/)[0].length,\n            pos === undefined ? pos : pos + text.substr(pos).match(/^(\\w+|\\s+|\\W)?/)[0].length\n        ];\n    }\n    // triple click\n    return [\n        textPos - text.substr(0, pos).match(/[^\\r\\n]*$/)[0].length,\n        pos === undefined ? pos : pos + text.substr(pos).match(/^[^\\r\\n]*/)[0].length\n    ];\n}\n\nexport { setSelectionPerMouseDown };\n","import { setUISelection } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { resolveCaretPosition } from './resolveCaretPosition.js';\n\nfunction modifySelectionPerMouseMove(selectionRange, { document, target, node, offset }) {\n    const selectionFocus = resolveCaretPosition({\n        target,\n        node,\n        offset\n    });\n    if ('node' in selectionRange) {\n        // When the mouse is dragged outside of an input/textarea,\n        // the selection is extended to the beginning or end of the input\n        // depending on pointer position.\n        // TODO: extend selection according to pointer position\n        /* istanbul ignore else */ if (selectionFocus.node === selectionRange.node) {\n            const anchorOffset = selectionFocus.offset < selectionRange.start ? selectionRange.end : selectionRange.start;\n            const focusOffset = selectionFocus.offset > selectionRange.end || selectionFocus.offset < selectionRange.start ? selectionFocus.offset : selectionRange.end;\n            setUISelection(selectionRange.node, {\n                anchorOffset,\n                focusOffset\n            });\n        }\n    } else {\n        const range = selectionRange.cloneRange();\n        const cmp = range.comparePoint(selectionFocus.node, selectionFocus.offset);\n        if (cmp < 0) {\n            range.setStart(selectionFocus.node, selectionFocus.offset);\n        } else if (cmp > 0) {\n            range.setEnd(selectionFocus.node, selectionFocus.offset);\n        }\n        const selection = document.getSelection();\n        selection === null || selection === undefined ? undefined : selection.removeAllRanges();\n        selection === null || selection === undefined ? undefined : selection.addRange(range.cloneRange());\n    }\n}\n\nexport { modifySelectionPerMouseMove };\n","function isDifferentPointerPosition(positionA, positionB) {\n    var _positionA_coords, _positionB_coords, _positionA_coords1, _positionB_coords1, _positionA_coords2, _positionB_coords2, _positionA_coords3, _positionB_coords3, _positionA_coords4, _positionB_coords4, _positionA_coords5, _positionB_coords5, _positionA_coords6, _positionB_coords6, _positionA_coords7, _positionB_coords7, _positionA_coords8, _positionB_coords8, _positionA_coords9, _positionB_coords9, _positionA_caret, _positionB_caret, _positionA_caret1, _positionB_caret1;\n    return positionA.target !== positionB.target || ((_positionA_coords = positionA.coords) === null || _positionA_coords === undefined ? undefined : _positionA_coords.x) !== ((_positionB_coords = positionB.coords) === null || _positionB_coords === undefined ? undefined : _positionB_coords.x) || ((_positionA_coords1 = positionA.coords) === null || _positionA_coords1 === undefined ? undefined : _positionA_coords1.y) !== ((_positionB_coords1 = positionB.coords) === null || _positionB_coords1 === undefined ? undefined : _positionB_coords1.y) || ((_positionA_coords2 = positionA.coords) === null || _positionA_coords2 === undefined ? undefined : _positionA_coords2.clientX) !== ((_positionB_coords2 = positionB.coords) === null || _positionB_coords2 === undefined ? undefined : _positionB_coords2.clientX) || ((_positionA_coords3 = positionA.coords) === null || _positionA_coords3 === undefined ? undefined : _positionA_coords3.clientY) !== ((_positionB_coords3 = positionB.coords) === null || _positionB_coords3 === undefined ? undefined : _positionB_coords3.clientY) || ((_positionA_coords4 = positionA.coords) === null || _positionA_coords4 === undefined ? undefined : _positionA_coords4.offsetX) !== ((_positionB_coords4 = positionB.coords) === null || _positionB_coords4 === undefined ? undefined : _positionB_coords4.offsetX) || ((_positionA_coords5 = positionA.coords) === null || _positionA_coords5 === undefined ? undefined : _positionA_coords5.offsetY) !== ((_positionB_coords5 = positionB.coords) === null || _positionB_coords5 === undefined ? undefined : _positionB_coords5.offsetY) || ((_positionA_coords6 = positionA.coords) === null || _positionA_coords6 === undefined ? undefined : _positionA_coords6.pageX) !== ((_positionB_coords6 = positionB.coords) === null || _positionB_coords6 === undefined ? undefined : _positionB_coords6.pageX) || ((_positionA_coords7 = positionA.coords) === null || _positionA_coords7 === undefined ? undefined : _positionA_coords7.pageY) !== ((_positionB_coords7 = positionB.coords) === null || _positionB_coords7 === undefined ? undefined : _positionB_coords7.pageY) || ((_positionA_coords8 = positionA.coords) === null || _positionA_coords8 === undefined ? undefined : _positionA_coords8.screenX) !== ((_positionB_coords8 = positionB.coords) === null || _positionB_coords8 === undefined ? undefined : _positionB_coords8.screenX) || ((_positionA_coords9 = positionA.coords) === null || _positionA_coords9 === undefined ? undefined : _positionA_coords9.screenY) !== ((_positionB_coords9 = positionB.coords) === null || _positionB_coords9 === undefined ? undefined : _positionB_coords9.screenY) || ((_positionA_caret = positionA.caret) === null || _positionA_caret === undefined ? undefined : _positionA_caret.node) !== ((_positionB_caret = positionB.caret) === null || _positionB_caret === undefined ? undefined : _positionB_caret.node) || ((_positionA_caret1 = positionA.caret) === null || _positionA_caret1 === undefined ? undefined : _positionA_caret1.offset) !== ((_positionB_caret1 = positionB.caret) === null || _positionB_caret1 === undefined ? undefined : _positionB_caret1.offset);\n}\n\nexport { isDifferentPointerPosition };\n","import '../../event/behavior/click.js';\nimport '../../event/behavior/cut.js';\nimport '../../event/behavior/keydown.js';\nimport '../../event/behavior/keypress.js';\nimport '../../event/behavior/keyup.js';\nimport '../../event/behavior/paste.js';\nimport '@testing-library/dom';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { isDisabled } from '../../utils/misc/isDisabled.js';\nimport { getTreeDiff } from '../../utils/misc/getTreeDiff.js';\nimport { focusElement } from '../../event/focus.js';\nimport { setSelectionPerMouseDown } from '../../event/selection/setSelectionPerMouse.js';\nimport { modifySelectionPerMouseMove } from '../../event/selection/modifySelectionPerMouse.js';\nimport { getMouseEventButton, Buttons } from './buttons.js';\nimport { isDifferentPointerPosition } from './shared.js';\n\nfunction _define_property(obj, key, value) {\n    if (key in obj) {\n        Object.defineProperty(obj, key, {\n            value: value,\n            enumerable: true,\n            configurable: true,\n            writable: true\n        });\n    } else {\n        obj[key] = value;\n    }\n    return obj;\n}\n/**\n * This object is the single \"virtual\" mouse that might be controlled by multiple different pointer devices.\n */ class Mouse {\n    move(instance, position, /** Whether `preventDefault()` has been called on the `pointerdown` event */ isPrevented) {\n        const prevPosition = this.position;\n        const prevTarget = this.getTarget(instance);\n        this.position = position;\n        if (!isDifferentPointerPosition(prevPosition, position)) {\n            return;\n        }\n        const nextTarget = this.getTarget(instance);\n        const init = this.getEventInit('mousemove');\n        const [leave, enter] = getTreeDiff(prevTarget, nextTarget);\n        return {\n            leave: ()=>{\n                if (prevTarget !== nextTarget) {\n                    instance.dispatchUIEvent(prevTarget, 'mouseout', init);\n                    leave.forEach((el)=>instance.dispatchUIEvent(el, 'mouseleave', init));\n                }\n            },\n            enter: ()=>{\n                if (prevTarget !== nextTarget) {\n                    instance.dispatchUIEvent(nextTarget, 'mouseover', init);\n                    enter.forEach((el)=>instance.dispatchUIEvent(el, 'mouseenter', init));\n                }\n            },\n            move: ()=>{\n                if (isPrevented) {\n                    return;\n                }\n                instance.dispatchUIEvent(nextTarget, 'mousemove', init);\n                this.modifySelecting(instance);\n            }\n        };\n    }\n    down(instance, keyDef, /** Whether `preventDefault()` has been called on the `pointerdown` event */ isPrevented) {\n        const button = this.buttons.down(keyDef);\n        if (button === undefined) {\n            return;\n        }\n        const target = this.getTarget(instance);\n        this.buttonDownTarget[button] = target;\n        const init = this.getEventInit('mousedown', keyDef.button);\n        const disabled = isDisabled(target);\n        if (!isPrevented && (disabled || instance.dispatchUIEvent(target, 'mousedown', init))) {\n            this.startSelecting(instance, init.detail);\n            focusElement(target);\n        }\n        if (!disabled && getMouseEventButton(keyDef.button) === 2) {\n            instance.dispatchUIEvent(target, 'contextmenu', this.getEventInit('contextmenu', keyDef.button));\n        }\n    }\n    up(instance, keyDef, /** Whether `preventDefault()` has been called on the `pointerdown` event */ isPrevented) {\n        const button = this.buttons.up(keyDef);\n        if (button === undefined) {\n            return;\n        }\n        const target = this.getTarget(instance);\n        if (!isDisabled(target)) {\n            if (!isPrevented) {\n                const mouseUpInit = this.getEventInit('mouseup', keyDef.button);\n                instance.dispatchUIEvent(target, 'mouseup', mouseUpInit);\n                this.endSelecting();\n            }\n            const clickTarget = getTreeDiff(this.buttonDownTarget[button], target)[2][0];\n            if (clickTarget) {\n                const init = this.getEventInit('click', keyDef.button);\n                if (init.detail) {\n                    instance.dispatchUIEvent(clickTarget, init.button === 0 ? 'click' : 'auxclick', init);\n                    if (init.button === 0 && init.detail === 2) {\n                        instance.dispatchUIEvent(clickTarget, 'dblclick', {\n                            ...this.getEventInit('dblclick', keyDef.button),\n                            detail: init.detail\n                        });\n                    }\n                }\n            }\n        }\n    }\n    resetClickCount() {\n        this.clickCount.reset();\n    }\n    getEventInit(type, button) {\n        const init = {\n            ...this.position.coords\n        };\n        init.button = getMouseEventButton(button);\n        init.buttons = this.buttons.getButtons();\n        if (type === 'mousedown') {\n            init.detail = this.clickCount.getOnDown(init.button);\n        } else if (type === 'mouseup') {\n            init.detail = this.clickCount.getOnUp(init.button);\n        } else if (type === 'click' || type === 'auxclick') {\n            init.detail = this.clickCount.incOnClick(init.button);\n        }\n        return init;\n    }\n    getTarget(instance) {\n        var _this_position_target;\n        return (_this_position_target = this.position.target) !== null && _this_position_target !== undefined ? _this_position_target : instance.config.document.body;\n    }\n    startSelecting(instance, clickCount) {\n        var _this_position_caret, _this_position_caret1;\n        // TODO: support extending range (shift)\n        this.selecting = setSelectionPerMouseDown({\n            document: instance.config.document,\n            target: this.getTarget(instance),\n            node: (_this_position_caret = this.position.caret) === null || _this_position_caret === undefined ? undefined : _this_position_caret.node,\n            offset: (_this_position_caret1 = this.position.caret) === null || _this_position_caret1 === undefined ? undefined : _this_position_caret1.offset,\n            clickCount\n        });\n    }\n    modifySelecting(instance) {\n        var _this_position_caret, _this_position_caret1;\n        if (!this.selecting) {\n            return;\n        }\n        modifySelectionPerMouseMove(this.selecting, {\n            document: instance.config.document,\n            target: this.getTarget(instance),\n            node: (_this_position_caret = this.position.caret) === null || _this_position_caret === undefined ? undefined : _this_position_caret.node,\n            offset: (_this_position_caret1 = this.position.caret) === null || _this_position_caret1 === undefined ? undefined : _this_position_caret1.offset\n        });\n    }\n    endSelecting() {\n        this.selecting = undefined;\n    }\n    constructor(){\n        _define_property(this, \"position\", {});\n        _define_property(this, \"buttons\", new Buttons());\n        _define_property(this, \"selecting\", undefined);\n        _define_property(this, \"buttonDownTarget\", {});\n        // According to spec the `detail` on click events should be the number\n        // of *consecutive* clicks with a specific button.\n        // On `mousedown` and `mouseup` it should be this number increased by one.\n        // But the browsers don't implement it this way.\n        // If another button is pressed,\n        //   in Webkit: the `mouseup` on the previously pressed button has `detail: 0` and no `click`/`auxclick`.\n        //   in Gecko: the `mouseup` and click events have the same detail as the `mousedown`.\n        // If there is a delay while a button is pressed,\n        // the `mouseup` and `click` are normal, but a following `mousedown` starts a new click count.\n        // We'll follow the minimal implementation of Webkit.\n        _define_property(this, \"clickCount\", new class {\n            incOnClick(button) {\n                const current = this.down[button] === undefined ? undefined : Number(this.down[button]) + 1;\n                this.count = this.count[button] === undefined ? {} : {\n                    [button]: Number(this.count[button]) + 1\n                };\n                return current;\n            }\n            getOnDown(button) {\n                var _this_count_button;\n                this.down = {\n                    [button]: (_this_count_button = this.count[button]) !== null && _this_count_button !== undefined ? _this_count_button : 0\n                };\n                var _this_count_button1;\n                this.count = {\n                    [button]: (_this_count_button1 = this.count[button]) !== null && _this_count_button1 !== undefined ? _this_count_button1 : 0\n                };\n                return Number(this.count[button]) + 1;\n            }\n            getOnUp(button) {\n                return this.down[button] === undefined ? undefined : Number(this.down[button]) + 1;\n            }\n            reset() {\n                this.count = {};\n            }\n            constructor(){\n                _define_property(this, \"down\", {});\n                _define_property(this, \"count\", {});\n            }\n        }());\n    }\n}\n\nexport { Mouse };\n","import { PointerEventsCheckLevel } from '../../options.js';\nimport { getWindow } from '../misc/getWindow.js';\nimport { isElementType } from '../misc/isElementType.js';\nimport { ApiLevel, getLevelRef } from '../misc/level.js';\n\nfunction hasPointerEvents(instance, element) {\n    var _checkPointerEvents;\n    return ((_checkPointerEvents = checkPointerEvents(instance, element)) === null || _checkPointerEvents === undefined ? undefined : _checkPointerEvents.pointerEvents) !== 'none';\n}\nfunction closestPointerEventsDeclaration(element) {\n    const window = getWindow(element);\n    for(let el = element, tree = []; el === null || el === undefined ? undefined : el.ownerDocument; el = el.parentElement){\n        tree.push(el);\n        const pointerEvents = window.getComputedStyle(el).pointerEvents;\n        if (pointerEvents && ![\n            'inherit',\n            'unset'\n        ].includes(pointerEvents)) {\n            return {\n                pointerEvents,\n                tree\n            };\n        }\n    }\n    return undefined;\n}\nconst PointerEventsCheck = Symbol('Last check for pointer-events');\nfunction checkPointerEvents(instance, element) {\n    const lastCheck = element[PointerEventsCheck];\n    const needsCheck = instance.config.pointerEventsCheck !== PointerEventsCheckLevel.Never && (!lastCheck || hasBitFlag(instance.config.pointerEventsCheck, PointerEventsCheckLevel.EachApiCall) && lastCheck[ApiLevel.Call] !== getLevelRef(instance, ApiLevel.Call) || hasBitFlag(instance.config.pointerEventsCheck, PointerEventsCheckLevel.EachTrigger) && lastCheck[ApiLevel.Trigger] !== getLevelRef(instance, ApiLevel.Trigger));\n    if (!needsCheck) {\n        return lastCheck === null || lastCheck === undefined ? undefined : lastCheck.result;\n    }\n    const declaration = closestPointerEventsDeclaration(element);\n    element[PointerEventsCheck] = {\n        [ApiLevel.Call]: getLevelRef(instance, ApiLevel.Call),\n        [ApiLevel.Trigger]: getLevelRef(instance, ApiLevel.Trigger),\n        result: declaration\n    };\n    return declaration;\n}\nfunction assertPointerEvents(instance, element) {\n    const declaration = checkPointerEvents(instance, element);\n    if ((declaration === null || declaration === undefined ? undefined : declaration.pointerEvents) === 'none') {\n        throw new Error([\n            `Unable to perform pointer interaction as the element ${declaration.tree.length > 1 ? 'inherits' : 'has'} \\`pointer-events: none\\`:`,\n            '',\n            printTree(declaration.tree)\n        ].join('\\n'));\n    }\n}\nfunction printTree(tree) {\n    return tree.reverse().map((el, i)=>[\n            ''.padEnd(i),\n            el.tagName,\n            el.id && `#${el.id}`,\n            el.hasAttribute('data-testid') && `(testId=${el.getAttribute('data-testid')})`,\n            getLabelDescr(el),\n            tree.length > 1 && i === 0 && '  <-- This element declared `pointer-events: none`',\n            tree.length > 1 && i === tree.length - 1 && '  <-- Asserted pointer events here'\n        ].filter(Boolean).join('')).join('\\n');\n}\nfunction getLabelDescr(element) {\n    var _element_labels;\n    let label;\n    if (element.hasAttribute('aria-label')) {\n        label = element.getAttribute('aria-label');\n    } else if (element.hasAttribute('aria-labelledby')) {\n        var _element_ownerDocument_getElementById_textContent, _element_ownerDocument_getElementById;\n        label = (_element_ownerDocument_getElementById = element.ownerDocument.getElementById(element.getAttribute('aria-labelledby'))) === null || _element_ownerDocument_getElementById === undefined ? undefined : (_element_ownerDocument_getElementById_textContent = _element_ownerDocument_getElementById.textContent) === null || _element_ownerDocument_getElementById_textContent === undefined ? undefined : _element_ownerDocument_getElementById_textContent.trim();\n    } else if (isElementType(element, [\n        'button',\n        'input',\n        'meter',\n        'output',\n        'progress',\n        'select',\n        'textarea'\n    ]) && ((_element_labels = element.labels) === null || _element_labels === undefined ? undefined : _element_labels.length)) {\n        label = Array.from(element.labels).map((el)=>{\n            var _el_textContent;\n            return (_el_textContent = el.textContent) === null || _el_textContent === undefined ? undefined : _el_textContent.trim();\n        }).join('|');\n    } else if (isElementType(element, 'button')) {\n        var _element_textContent;\n        label = (_element_textContent = element.textContent) === null || _element_textContent === undefined ? undefined : _element_textContent.trim();\n    }\n    label = label === null || label === undefined ? undefined : label.replace(/\\n/g, '  ');\n    if (Number(label === null || label === undefined ? undefined : label.length) > 30) {\n        label = `${label === null || label === undefined ? undefined : label.substring(0, 29)}…`;\n    }\n    return label ? `(label=${label})` : '';\n}\n// With the eslint rule and prettier the bitwise operation isn't nice to read\nfunction hasBitFlag(conf, flag) {\n    // eslint-disable-next-line no-bitwise\n    return (conf & flag) > 0;\n}\n\nexport { assertPointerEvents, hasPointerEvents };\n","import '../../utils/dataTransfer/Clipboard.js';\nimport { getTreeDiff } from '../../utils/misc/getTreeDiff.js';\nimport { assertPointerEvents, hasPointerEvents } from '../../utils/pointer/cssPointerEvents.js';\nimport { isDifferentPointerPosition } from './shared.js';\nimport { getMouseEventButton } from './buttons.js';\n\nfunction _define_property(obj, key, value) {\n    if (key in obj) {\n        Object.defineProperty(obj, key, {\n            value: value,\n            enumerable: true,\n            configurable: true,\n            writable: true\n        });\n    } else {\n        obj[key] = value;\n    }\n    return obj;\n}\nclass Pointer {\n    init(instance) {\n        const target = this.getTarget(instance);\n        const [, enter] = getTreeDiff(null, target);\n        const init = this.getEventInit();\n        assertPointerEvents(instance, target);\n        instance.dispatchUIEvent(target, 'pointerover', init);\n        enter.forEach((el)=>instance.dispatchUIEvent(el, 'pointerenter', init));\n        return this;\n    }\n    move(instance, position) {\n        const prevPosition = this.position;\n        const prevTarget = this.getTarget(instance);\n        this.position = position;\n        if (!isDifferentPointerPosition(prevPosition, position)) {\n            return;\n        }\n        const nextTarget = this.getTarget(instance);\n        const init = this.getEventInit(-1);\n        const [leave, enter] = getTreeDiff(prevTarget, nextTarget);\n        return {\n            leave: ()=>{\n                if (hasPointerEvents(instance, prevTarget)) {\n                    if (prevTarget !== nextTarget) {\n                        instance.dispatchUIEvent(prevTarget, 'pointerout', init);\n                        leave.forEach((el)=>instance.dispatchUIEvent(el, 'pointerleave', init));\n                    }\n                }\n            },\n            enter: ()=>{\n                assertPointerEvents(instance, nextTarget);\n                if (prevTarget !== nextTarget) {\n                    instance.dispatchUIEvent(nextTarget, 'pointerover', init);\n                    enter.forEach((el)=>instance.dispatchUIEvent(el, 'pointerenter', init));\n                }\n            },\n            move: ()=>{\n                instance.dispatchUIEvent(nextTarget, 'pointermove', init);\n            }\n        };\n    }\n    down(instance, button = 0) {\n        if (this.isDown) {\n            return;\n        }\n        const target = this.getTarget(instance);\n        assertPointerEvents(instance, target);\n        this.isDown = true;\n        this.isPrevented = !instance.dispatchUIEvent(target, 'pointerdown', this.getEventInit(button));\n    }\n    up(instance, button = 0) {\n        if (!this.isDown) {\n            return;\n        }\n        const target = this.getTarget(instance);\n        assertPointerEvents(instance, target);\n        this.isPrevented = false;\n        this.isDown = false;\n        instance.dispatchUIEvent(target, 'pointerup', this.getEventInit(button));\n    }\n    release(instance) {\n        const target = this.getTarget(instance);\n        const [leave] = getTreeDiff(target, null);\n        const init = this.getEventInit();\n        // Currently there is no PointerEventsCheckLevel that would\n        // make this check not use the *asserted* cached value from `up`.\n        /* istanbul ignore else */ if (hasPointerEvents(instance, target)) {\n            instance.dispatchUIEvent(target, 'pointerout', init);\n            leave.forEach((el)=>instance.dispatchUIEvent(el, 'pointerleave', init));\n        }\n        this.isCancelled = true;\n    }\n    getTarget(instance) {\n        var _this_position_target;\n        return (_this_position_target = this.position.target) !== null && _this_position_target !== undefined ? _this_position_target : instance.config.document.body;\n    }\n    getEventInit(/**\n     * The `button` that caused the event.\n     *\n     * This should be `-1` if the event is not caused by a button or touch/pen contact,\n     * e.g. a moving pointer.\n     */ button) {\n        return {\n            ...this.position.coords,\n            pointerId: this.pointerId,\n            pointerType: this.pointerType,\n            isPrimary: this.isPrimary,\n            button: getMouseEventButton(button),\n            buttons: this.buttons.getButtons()\n        };\n    }\n    constructor({ pointerId, pointerType, isPrimary }, buttons){\n        _define_property(this, \"pointerId\", undefined);\n        _define_property(this, \"pointerType\", undefined);\n        _define_property(this, \"isPrimary\", undefined);\n        _define_property(this, \"buttons\", undefined);\n        _define_property(this, \"isMultitouch\", false);\n        _define_property(this, \"isCancelled\", false);\n        _define_property(this, \"isDown\", false);\n        _define_property(this, \"isPrevented\", false);\n        _define_property(this, \"position\", {});\n        this.pointerId = pointerId;\n        this.pointerType = pointerType;\n        this.isPrimary = isPrimary;\n        this.isMultitouch = !isPrimary;\n        this.buttons = buttons;\n    }\n}\n\nexport { Pointer };\n","import { Buttons } from './buttons.js';\nimport { Device } from './device.js';\nimport { Mouse } from './mouse.js';\nimport { Pointer } from './pointer.js';\n\nfunction _define_property(obj, key, value) {\n    if (key in obj) {\n        Object.defineProperty(obj, key, {\n            value: value,\n            enumerable: true,\n            configurable: true,\n            writable: true\n        });\n    } else {\n        obj[key] = value;\n    }\n    return obj;\n}\nclass PointerHost {\n    isKeyPressed(keyDef) {\n        return this.devices.get(keyDef.pointerType).isPressed(keyDef);\n    }\n    async press(instance, keyDef, position) {\n        this.devices.get(keyDef.pointerType).addPressed(keyDef);\n        this.buttons.down(keyDef);\n        const pointerName = this.getPointerName(keyDef);\n        const pointer = keyDef.pointerType === 'touch' ? this.pointers.new(pointerName, keyDef.pointerType, this.buttons) : this.pointers.get(pointerName);\n        // TODO: deprecate the following implicit setting of position\n        pointer.position = position;\n        if (pointer.pointerType !== 'touch') {\n            this.mouse.position = position;\n        }\n        if (pointer.pointerType === 'touch') {\n            pointer.init(instance);\n        }\n        pointer.down(instance, keyDef.button);\n        if (pointer.pointerType !== 'touch') {\n            this.mouse.down(instance, keyDef, pointer.isPrevented);\n        }\n    }\n    async move(instance, pointerName, position) {\n        const pointer = this.pointers.get(pointerName);\n        // In (some?) browsers this order of events can be observed.\n        // This interweaving of events is probably unnecessary.\n        // While the order of mouse (or pointer) events is defined per spec,\n        // the order in which they interweave/follow on a user interaction depends on the implementation.\n        const pointermove = pointer.move(instance, position);\n        const mousemove = pointer.pointerType === 'touch' ? undefined : this.mouse.move(instance, position, pointer.isPrevented);\n        pointermove === null || pointermove === undefined ? undefined : pointermove.leave();\n        mousemove === null || mousemove === undefined ? undefined : mousemove.leave();\n        pointermove === null || pointermove === undefined ? undefined : pointermove.enter();\n        mousemove === null || mousemove === undefined ? undefined : mousemove.enter();\n        pointermove === null || pointermove === undefined ? undefined : pointermove.move();\n        mousemove === null || mousemove === undefined ? undefined : mousemove.move();\n    }\n    async release(instance, keyDef, position) {\n        const device = this.devices.get(keyDef.pointerType);\n        device.removePressed(keyDef);\n        this.buttons.up(keyDef);\n        const pointer = this.pointers.get(this.getPointerName(keyDef));\n        const isPrevented = pointer.isPrevented;\n        // TODO: deprecate the following implicit setting of position\n        pointer.position = position;\n        if (pointer.pointerType !== 'touch') {\n            this.mouse.position = position;\n        }\n        if (device.countPressed === 0) {\n            pointer.up(instance, keyDef.button);\n        }\n        if (pointer.pointerType === 'touch') {\n            pointer.release(instance);\n        }\n        if (pointer.pointerType === 'touch' && !pointer.isMultitouch) {\n            const mousemove = this.mouse.move(instance, position, isPrevented);\n            mousemove === null || mousemove === undefined ? undefined : mousemove.leave();\n            mousemove === null || mousemove === undefined ? undefined : mousemove.enter();\n            mousemove === null || mousemove === undefined ? undefined : mousemove.move();\n            this.mouse.down(instance, keyDef, isPrevented);\n        }\n        if (!pointer.isMultitouch) {\n            const mousemove = this.mouse.move(instance, position, isPrevented);\n            mousemove === null || mousemove === undefined ? undefined : mousemove.leave();\n            mousemove === null || mousemove === undefined ? undefined : mousemove.enter();\n            mousemove === null || mousemove === undefined ? undefined : mousemove.move();\n            this.mouse.up(instance, keyDef, isPrevented);\n        }\n    }\n    getPointerName(keyDef) {\n        return keyDef.pointerType === 'touch' ? keyDef.name : keyDef.pointerType;\n    }\n    getPreviousPosition(pointerName) {\n        return this.pointers.has(pointerName) ? this.pointers.get(pointerName).position : undefined;\n    }\n    resetClickCount() {\n        this.mouse.resetClickCount();\n    }\n    getMouseTarget(instance) {\n        var _this_mouse_position_target;\n        return (_this_mouse_position_target = this.mouse.position.target) !== null && _this_mouse_position_target !== undefined ? _this_mouse_position_target : instance.config.document.body;\n    }\n    setMousePosition(position) {\n        this.mouse.position = position;\n        this.pointers.get('mouse').position = position;\n    }\n    constructor(system){\n        _define_property(this, \"system\", undefined);\n        _define_property(this, \"mouse\", undefined);\n        _define_property(this, \"buttons\", undefined);\n        _define_property(this, \"devices\", new class {\n            get(k) {\n                var _this_registry, _k;\n                var _;\n                return (_ = (_this_registry = this.registry)[_k = k]) !== null && _ !== undefined ? _ : _this_registry[_k] = new Device();\n            }\n            constructor(){\n                _define_property(this, \"registry\", {});\n            }\n        }());\n        _define_property(this, \"pointers\", new class {\n            new(pointerName, pointerType, buttons) {\n                const isPrimary = pointerType !== 'touch' || !Object.values(this.registry).some((p)=>p.pointerType === 'touch' && !p.isCancelled);\n                if (!isPrimary) {\n                    Object.values(this.registry).forEach((p)=>{\n                        if (p.pointerType === pointerType && !p.isCancelled) {\n                            p.isMultitouch = true;\n                        }\n                    });\n                }\n                this.registry[pointerName] = new Pointer({\n                    pointerId: this.nextId++,\n                    pointerType,\n                    isPrimary\n                }, buttons);\n                return this.registry[pointerName];\n            }\n            get(pointerName) {\n                if (!this.has(pointerName)) {\n                    throw new Error(`Trying to access pointer \"${pointerName}\" which does not exist.`);\n                }\n                return this.registry[pointerName];\n            }\n            has(pointerName) {\n                return pointerName in this.registry;\n            }\n            constructor(){\n                _define_property(this, \"registry\", {});\n                _define_property(this, \"nextId\", 1);\n            }\n        }());\n        this.system = system;\n        this.buttons = new Buttons();\n        this.mouse = new Mouse();\n        this.pointers.new('mouse', 'mouse', this.buttons);\n    }\n}\n\nexport { PointerHost };\n","import { KeyboardHost } from './keyboard.js';\nimport { PointerHost } from './pointer/index.js';\n\nfunction _define_property(obj, key, value) {\n    if (key in obj) {\n        Object.defineProperty(obj, key, {\n            value: value,\n            enumerable: true,\n            configurable: true,\n            writable: true\n        });\n    } else {\n        obj[key] = value;\n    }\n    return obj;\n}\n/**\n * @internal Do not create/alter this by yourself as this type might be subject to changes.\n */ class System {\n    getUIEventModifiers() {\n        return {\n            altKey: this.keyboard.modifiers.Alt,\n            ctrlKey: this.keyboard.modifiers.Control,\n            metaKey: this.keyboard.modifiers.Meta,\n            shiftKey: this.keyboard.modifiers.Shift,\n            modifierAltGraph: this.keyboard.modifiers.AltGraph,\n            modifierCapsLock: this.keyboard.modifiers.CapsLock,\n            modifierFn: this.keyboard.modifiers.Fn,\n            modifierFnLock: this.keyboard.modifiers.FnLock,\n            modifierNumLock: this.keyboard.modifiers.NumLock,\n            modifierScrollLock: this.keyboard.modifiers.ScrollLock,\n            modifierSymbol: this.keyboard.modifiers.Symbol,\n            modifierSymbolLock: this.keyboard.modifiers.SymbolLock\n        };\n    }\n    constructor(){\n        _define_property(this, \"keyboard\", new KeyboardHost(this));\n        _define_property(this, \"pointer\", new PointerHost(this));\n    }\n}\n\nexport { System };\n","async function click(element) {\n    const pointerIn = [];\n    if (!this.config.skipHover) {\n        pointerIn.push({\n            target: element\n        });\n    }\n    pointerIn.push({\n        keys: '[MouseLeft]',\n        target: element\n    });\n    return this.pointer(pointerIn);\n}\nasync function dblClick(element) {\n    return this.pointer([\n        {\n            target: element\n        },\n        '[MouseLeft][MouseLeft]'\n    ]);\n}\nasync function tripleClick(element) {\n    return this.pointer([\n        {\n            target: element\n        },\n        '[MouseLeft][MouseLeft][MouseLeft]'\n    ]);\n}\n\nexport { click, dblClick, tripleClick };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { assertPointerEvents } from '../utils/pointer/cssPointerEvents.js';\n\nasync function hover(element) {\n    return this.pointer({\n        target: element\n    });\n}\nasync function unhover(element) {\n    assertPointerEvents(this, this.system.pointer.getMouseTarget(this));\n    return this.pointer({\n        target: element.ownerDocument.body\n    });\n}\n\nexport { hover, unhover };\n","async function tab({ shift } = {}) {\n    return this.keyboard(shift === true ? '{Shift>}{Tab}{/Shift}' : shift === false ? '[/ShiftLeft][/ShiftRight]{Tab}' : '{Tab}');\n}\n\nexport { tab };\n","var bracketDict = /*#__PURE__*/ function(bracketDict) {\n    bracketDict[\"{\"] = \"}\";\n    bracketDict[\"[\"] = \"]\";\n    return bracketDict;\n}(bracketDict || {});\n/**\n * Read the next key definition from user input\n *\n * Describe key per `{descriptor}` or `[descriptor]`.\n * Everything else will be interpreted as a single character as descriptor - e.g. `a`.\n * Brackets `{` and `[` can be escaped by doubling - e.g. `foo[[bar` translates to `foo[bar`.\n * A previously pressed key can be released per `{/descriptor}`.\n * Keeping the key pressed can be written as `{descriptor>}`.\n * When keeping the key pressed you can choose how long the key is pressed `{descriptor>3}`.\n * You can then release the key per `{descriptor>3/}` or keep it pressed and continue with the next key.\n */ function readNextDescriptor(text, context) {\n    let pos = 0;\n    const startBracket = text[pos] in bracketDict ? text[pos] : '';\n    pos += startBracket.length;\n    const isEscapedChar = new RegExp(`^\\\\${startBracket}{2}`).test(text);\n    const type = isEscapedChar ? '' : startBracket;\n    return {\n        type,\n        ...type === '' ? readPrintableChar(text, pos, context) : readTag(text, pos, type, context)\n    };\n}\nfunction readPrintableChar(text, pos, context) {\n    const descriptor = text[pos];\n    assertDescriptor(descriptor, text, pos, context);\n    pos += descriptor.length;\n    return {\n        consumedLength: pos,\n        descriptor,\n        releasePrevious: false,\n        releaseSelf: true,\n        repeat: 1\n    };\n}\nfunction readTag(text, pos, startBracket, context) {\n    var _text_slice_match, _text_slice_match1;\n    const releasePreviousModifier = text[pos] === '/' ? '/' : '';\n    pos += releasePreviousModifier.length;\n    const escapedDescriptor = startBracket === '{' && text[pos] === '\\\\';\n    pos += Number(escapedDescriptor);\n    const descriptor = escapedDescriptor ? text[pos] : (_text_slice_match = text.slice(pos).match(startBracket === '{' ? /^\\w+|^[^}>/]/ : /^\\w+/)) === null || _text_slice_match === undefined ? undefined : _text_slice_match[0];\n    assertDescriptor(descriptor, text, pos, context);\n    pos += descriptor.length;\n    var _text_slice_match_;\n    const repeatModifier = (_text_slice_match_ = (_text_slice_match1 = text.slice(pos).match(/^>\\d+/)) === null || _text_slice_match1 === undefined ? undefined : _text_slice_match1[0]) !== null && _text_slice_match_ !== undefined ? _text_slice_match_ : '';\n    pos += repeatModifier.length;\n    const releaseSelfModifier = text[pos] === '/' || !repeatModifier && text[pos] === '>' ? text[pos] : '';\n    pos += releaseSelfModifier.length;\n    const expectedEndBracket = bracketDict[startBracket];\n    const endBracket = text[pos] === expectedEndBracket ? expectedEndBracket : '';\n    if (!endBracket) {\n        throw new Error(getErrorMessage([\n            !repeatModifier && 'repeat modifier',\n            !releaseSelfModifier && 'release modifier',\n            `\"${expectedEndBracket}\"`\n        ].filter(Boolean).join(' or '), text[pos], text, context));\n    }\n    pos += endBracket.length;\n    return {\n        consumedLength: pos,\n        descriptor,\n        releasePrevious: !!releasePreviousModifier,\n        repeat: repeatModifier ? Math.max(Number(repeatModifier.substr(1)), 1) : 1,\n        releaseSelf: hasReleaseSelf(releaseSelfModifier, repeatModifier)\n    };\n}\nfunction assertDescriptor(descriptor, text, pos, context) {\n    if (!descriptor) {\n        throw new Error(getErrorMessage('key descriptor', text[pos], text, context));\n    }\n}\nfunction hasReleaseSelf(releaseSelfModifier, repeatModifier) {\n    if (releaseSelfModifier) {\n        return releaseSelfModifier === '/';\n    }\n    if (repeatModifier) {\n        return false;\n    }\n}\nfunction getErrorMessage(expected, found, text, context) {\n    return `Expected ${expected} but found \"${found !== null && found !== undefined ? found : ''}\" in \"${text}\"\n    See ${context === 'pointer' ? `https://testing-library.com/docs/user-event/pointer#pressing-a-button-or-touching-the-screen` : `https://testing-library.com/docs/user-event/keyboard`}\n    for more information about how userEvent parses your input.`;\n}\n\nexport { readNextDescriptor };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { readNextDescriptor } from '../utils/keyDef/readNextDescriptor.js';\n\n/**\n * Parse key definitions per `keyboardMap`\n *\n * Keys can be referenced by `{key}` or `{special}` as well as physical locations per `[code]`.\n * Everything else will be interpreted as a typed character - e.g. `a`.\n * Brackets `{` and `[` can be escaped by doubling - e.g. `foo[[bar` translates to `foo[bar`.\n * Keeping the key pressed can be written as `{key>}`.\n * When keeping the key pressed you can choose how long (how many keydown and keypress) the key is pressed `{key>3}`.\n * You can then release the key per `{key>3/}` or keep it pressed and continue with the next key.\n */ function parseKeyDef(keyboardMap, text) {\n    const defs = [];\n    do {\n        const { type, descriptor, consumedLength, releasePrevious, releaseSelf = true, repeat } = readNextDescriptor(text, 'keyboard');\n        var _keyboardMap_find;\n        const keyDef = (_keyboardMap_find = keyboardMap.find((def)=>{\n            if (type === '[') {\n                var _def_code;\n                return ((_def_code = def.code) === null || _def_code === undefined ? undefined : _def_code.toLowerCase()) === descriptor.toLowerCase();\n            } else if (type === '{') {\n                var _def_key;\n                return ((_def_key = def.key) === null || _def_key === undefined ? undefined : _def_key.toLowerCase()) === descriptor.toLowerCase();\n            }\n            return def.key === descriptor;\n        })) !== null && _keyboardMap_find !== undefined ? _keyboardMap_find : {\n            key: 'Unknown',\n            code: 'Unknown',\n            [type === '[' ? 'code' : 'key']: descriptor\n        };\n        defs.push({\n            keyDef,\n            releasePrevious,\n            releaseSelf,\n            repeat\n        });\n        text = text.slice(consumedLength);\n    }while (text)\n    return defs;\n}\n\nexport { parseKeyDef };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { wait } from '../utils/misc/wait.js';\nimport { parseKeyDef } from './parseKeyDef.js';\n\nasync function keyboard(text) {\n    const actions = parseKeyDef(this.config.keyboardMap, text);\n    for(let i = 0; i < actions.length; i++){\n        await wait(this.config);\n        await keyboardAction(this, actions[i]);\n    }\n}\nasync function keyboardAction(instance, { keyDef, releasePrevious, releaseSelf, repeat }) {\n    const { system } = instance;\n    // Release the key automatically if it was pressed before.\n    if (system.keyboard.isKeyPressed(keyDef)) {\n        await system.keyboard.keyup(instance, keyDef);\n    }\n    if (!releasePrevious) {\n        for(let i = 1; i <= repeat; i++){\n            await system.keyboard.keydown(instance, keyDef);\n            if (i < repeat) {\n                await wait(instance.config);\n            }\n        }\n        // Release the key only on the last iteration on `state.repeatKey`.\n        if (releaseSelf) {\n            await system.keyboard.keyup(instance, keyDef);\n        }\n    }\n}\nasync function releaseAllKeys(instance) {\n    for (const k of instance.system.keyboard.getPressedKeys()){\n        await instance.system.keyboard.keyup(instance, k);\n    }\n}\n\nexport { keyboard, releaseAllKeys };\n","import { createDataTransfer } from '../utils/dataTransfer/DataTransfer.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\nimport { hasOwnSelection } from '../utils/focus/selection.js';\nimport { getUISelection, getUIValue } from './UI.js';\n\nfunction copySelection(target) {\n    const data = hasOwnSelection(target) ? {\n        'text/plain': readSelectedValueFromInput(target)\n    } : {\n        'text/plain': String(target.ownerDocument.getSelection())\n    };\n    const dt = createDataTransfer(getWindow(target));\n    for(const type in data){\n        if (data[type]) {\n            dt.setData(type, data[type]);\n        }\n    }\n    return dt;\n}\nfunction readSelectedValueFromInput(target) {\n    const sel = getUISelection(target);\n    const val = getUIValue(target);\n    return val.substring(sel.startOffset, sel.endOffset);\n}\n\nexport { copySelection };\n","import { writeDataTransferToClipboard } from '../utils/dataTransfer/Clipboard.js';\nimport { copySelection } from '../document/copySelection.js';\n\nasync function copy() {\n    const doc = this.config.document;\n    var _doc_activeElement;\n    const target = (_doc_activeElement = doc.activeElement) !== null && _doc_activeElement !== undefined ? _doc_activeElement : /* istanbul ignore next */ doc.body;\n    const clipboardData = copySelection(target);\n    if (clipboardData.items.length === 0) {\n        return;\n    }\n    if (this.dispatchUIEvent(target, 'copy', {\n        clipboardData\n    }) && this.config.writeToClipboard) {\n        await writeDataTransferToClipboard(doc, clipboardData);\n    }\n    return clipboardData;\n}\n\nexport { copy };\n","import { writeDataTransferToClipboard } from '../utils/dataTransfer/Clipboard.js';\nimport { copySelection } from '../document/copySelection.js';\n\nasync function cut() {\n    const doc = this.config.document;\n    var _doc_activeElement;\n    const target = (_doc_activeElement = doc.activeElement) !== null && _doc_activeElement !== undefined ? _doc_activeElement : /* istanbul ignore next */ doc.body;\n    const clipboardData = copySelection(target);\n    if (clipboardData.items.length === 0) {\n        return;\n    }\n    if (this.dispatchUIEvent(target, 'cut', {\n        clipboardData\n    }) && this.config.writeToClipboard) {\n        await writeDataTransferToClipboard(target.ownerDocument, clipboardData);\n    }\n    return clipboardData;\n}\n\nexport { cut };\n","import { createDataTransfer } from '../utils/dataTransfer/DataTransfer.js';\nimport { readDataTransferFromClipboard } from '../utils/dataTransfer/Clipboard.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\n\nasync function paste(clipboardData) {\n    const doc = this.config.document;\n    var _doc_activeElement;\n    const target = (_doc_activeElement = doc.activeElement) !== null && _doc_activeElement !== undefined ? _doc_activeElement : /* istanbul ignore next */ doc.body;\n    var _ref;\n    const dataTransfer = (_ref = typeof clipboardData === 'string' ? getClipboardDataFromString(doc, clipboardData) : clipboardData) !== null && _ref !== undefined ? _ref : await readDataTransferFromClipboard(doc).catch(()=>{\n        throw new Error('`userEvent.paste()` without `clipboardData` requires the `ClipboardAPI` to be available.');\n    });\n    this.dispatchUIEvent(target, 'paste', {\n        clipboardData: dataTransfer\n    });\n}\nfunction getClipboardDataFromString(doc, text) {\n    const dt = createDataTransfer(getWindow(doc));\n    dt.setData('text', text);\n    return dt;\n}\n\nexport { paste };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { readNextDescriptor } from '../utils/keyDef/readNextDescriptor.js';\n\nfunction parseKeyDef(pointerMap, keys) {\n    const defs = [];\n    do {\n        const { descriptor, consumedLength, releasePrevious, releaseSelf = true } = readNextDescriptor(keys, 'pointer');\n        const keyDef = pointerMap.find((p)=>p.name === descriptor);\n        if (keyDef) {\n            defs.push({\n                keyDef,\n                releasePrevious,\n                releaseSelf\n            });\n        }\n        keys = keys.slice(consumedLength);\n    }while (keys)\n    return defs;\n}\n\nexport { parseKeyDef };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { setLevelRef, ApiLevel } from '../utils/misc/level.js';\nimport { wait } from '../utils/misc/wait.js';\nimport { parseKeyDef } from './parseKeyDef.js';\n\nasync function pointer(input) {\n    const { pointerMap } = this.config;\n    const actions = [];\n    (Array.isArray(input) ? input : [\n        input\n    ]).forEach((actionInput)=>{\n        if (typeof actionInput === 'string') {\n            actions.push(...parseKeyDef(pointerMap, actionInput));\n        } else if ('keys' in actionInput) {\n            actions.push(...parseKeyDef(pointerMap, actionInput.keys).map((i)=>({\n                    ...actionInput,\n                    ...i\n                })));\n        } else {\n            actions.push(actionInput);\n        }\n    });\n    for(let i = 0; i < actions.length; i++){\n        await wait(this.config);\n        await pointerAction(this, actions[i]);\n    }\n    this.system.pointer.resetClickCount();\n}\nasync function pointerAction(instance, action) {\n    var _previousPosition_caret, _previousPosition_caret1;\n    const pointerName = 'pointerName' in action && action.pointerName ? action.pointerName : 'keyDef' in action ? instance.system.pointer.getPointerName(action.keyDef) : 'mouse';\n    const previousPosition = instance.system.pointer.getPreviousPosition(pointerName);\n    var _action_target, _action_coords, _action_node, _action_offset;\n    const position = {\n        target: (_action_target = action.target) !== null && _action_target !== undefined ? _action_target : getPrevTarget(instance, previousPosition),\n        coords: (_action_coords = action.coords) !== null && _action_coords !== undefined ? _action_coords : previousPosition === null || previousPosition === undefined ? undefined : previousPosition.coords,\n        caret: {\n            node: (_action_node = action.node) !== null && _action_node !== undefined ? _action_node : hasCaretPosition(action) ? undefined : previousPosition === null || previousPosition === undefined ? undefined : (_previousPosition_caret = previousPosition.caret) === null || _previousPosition_caret === undefined ? undefined : _previousPosition_caret.node,\n            offset: (_action_offset = action.offset) !== null && _action_offset !== undefined ? _action_offset : hasCaretPosition(action) ? undefined : previousPosition === null || previousPosition === undefined ? undefined : (_previousPosition_caret1 = previousPosition.caret) === null || _previousPosition_caret1 === undefined ? undefined : _previousPosition_caret1.offset\n        }\n    };\n    if ('keyDef' in action) {\n        if (instance.system.pointer.isKeyPressed(action.keyDef)) {\n            setLevelRef(instance, ApiLevel.Trigger);\n            await instance.system.pointer.release(instance, action.keyDef, position);\n        }\n        if (!action.releasePrevious) {\n            setLevelRef(instance, ApiLevel.Trigger);\n            await instance.system.pointer.press(instance, action.keyDef, position);\n            if (action.releaseSelf) {\n                setLevelRef(instance, ApiLevel.Trigger);\n                await instance.system.pointer.release(instance, action.keyDef, position);\n            }\n        }\n    } else {\n        setLevelRef(instance, ApiLevel.Trigger);\n        await instance.system.pointer.move(instance, pointerName, position);\n    }\n}\nfunction hasCaretPosition(action) {\n    var _action_target, _ref;\n    return !!((_ref = (_action_target = action.target) !== null && _action_target !== undefined ? _action_target : action.node) !== null && _ref !== undefined ? _ref : action.offset !== undefined);\n}\nfunction getPrevTarget(instance, position) {\n    if (!position) {\n        throw new Error('This pointer has no previous position. Provide a target property!');\n    }\n    var _position_target;\n    return (_position_target = position.target) !== null && _position_target !== undefined ? _position_target : instance.config.document.body;\n}\n\nexport { pointer };\n","import '../event/behavior/click.js';\nimport '../event/behavior/cut.js';\nimport '../event/behavior/keydown.js';\nimport '../event/behavior/keypress.js';\nimport '../event/behavior/keyup.js';\nimport '../event/behavior/paste.js';\nimport '@testing-library/dom';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { isEditable } from '../utils/edit/isEditable.js';\nimport { isDisabled } from '../utils/misc/isDisabled.js';\nimport { focusElement } from '../event/focus.js';\nimport { input } from '../event/input.js';\nimport { selectAll, isAllSelected } from '../event/selection/selectAll.js';\n\nasync function clear(element) {\n    if (!isEditable(element) || isDisabled(element)) {\n        throw new Error('clear()` is only supported on editable elements.');\n    }\n    focusElement(element);\n    if (element.ownerDocument.activeElement !== element) {\n        throw new Error('The element to be cleared could not be focused.');\n    }\n    selectAll(element);\n    if (!isAllSelected(element)) {\n        throw new Error('The element content to be cleared could not be selected.');\n    }\n    input(this, element, '', 'deleteContentBackward');\n}\n\nexport { clear };\n","import { getConfig } from '@testing-library/dom';\nimport { isElementType } from '../utils/misc/isElementType.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { isDisabled } from '../utils/misc/isDisabled.js';\nimport { wait } from '../utils/misc/wait.js';\nimport { hasPointerEvents } from '../utils/pointer/cssPointerEvents.js';\nimport '../event/behavior/click.js';\nimport '../event/behavior/cut.js';\nimport '../event/behavior/keydown.js';\nimport '../event/behavior/keypress.js';\nimport '../event/behavior/keyup.js';\nimport '../event/behavior/paste.js';\nimport { focusElement } from '../event/focus.js';\n\nasync function selectOptions(select, values) {\n    return selectOptionsBase.call(this, true, select, values);\n}\nasync function deselectOptions(select, values) {\n    return selectOptionsBase.call(this, false, select, values);\n}\nasync function selectOptionsBase(newValue, select, values) {\n    if (!newValue && !select.multiple) {\n        throw getConfig().getElementError(`Unable to deselect an option in a non-multiple select. Use selectOptions to change the selection instead.`, select);\n    }\n    const valArray = Array.isArray(values) ? values : [\n        values\n    ];\n    const allOptions = Array.from(select.querySelectorAll('option, [role=\"option\"]'));\n    const selectedOptions = valArray.map((val)=>{\n        if (typeof val !== 'string' && allOptions.includes(val)) {\n            return val;\n        } else {\n            const matchingOption = allOptions.find((o)=>o.value === val || o.innerHTML === val);\n            if (matchingOption) {\n                return matchingOption;\n            } else {\n                throw getConfig().getElementError(`Value \"${String(val)}\" not found in options`, select);\n            }\n        }\n    }).filter((option)=>!isDisabled(option));\n    if (isDisabled(select) || !selectedOptions.length) return;\n    const selectOption = (option)=>{\n        option.selected = newValue;\n        this.dispatchUIEvent(select, 'input', {\n            bubbles: true,\n            cancelable: false,\n            composed: true\n        });\n        this.dispatchUIEvent(select, 'change');\n    };\n    if (isElementType(select, 'select')) {\n        if (select.multiple) {\n            for (const option of selectedOptions){\n                const withPointerEvents = this.config.pointerEventsCheck === 0 ? true : hasPointerEvents(this, option);\n                // events fired for multiple select are weird. Can't use hover...\n                if (withPointerEvents) {\n                    this.dispatchUIEvent(option, 'pointerover');\n                    this.dispatchUIEvent(select, 'pointerenter');\n                    this.dispatchUIEvent(option, 'mouseover');\n                    this.dispatchUIEvent(select, 'mouseenter');\n                    this.dispatchUIEvent(option, 'pointermove');\n                    this.dispatchUIEvent(option, 'mousemove');\n                    this.dispatchUIEvent(option, 'pointerdown');\n                    this.dispatchUIEvent(option, 'mousedown');\n                }\n                focusElement(select);\n                if (withPointerEvents) {\n                    this.dispatchUIEvent(option, 'pointerup');\n                    this.dispatchUIEvent(option, 'mouseup');\n                }\n                selectOption(option);\n                if (withPointerEvents) {\n                    this.dispatchUIEvent(option, 'click');\n                }\n                await wait(this.config);\n            }\n        } else if (selectedOptions.length === 1) {\n            const withPointerEvents = this.config.pointerEventsCheck === 0 ? true : hasPointerEvents(this, select);\n            // the click to open the select options\n            if (withPointerEvents) {\n                await this.click(select);\n            } else {\n                focusElement(select);\n            }\n            selectOption(selectedOptions[0]);\n            if (withPointerEvents) {\n                // the browser triggers another click event on the select for the click on the option\n                // this second click has no 'down' phase\n                this.dispatchUIEvent(select, 'pointerover');\n                this.dispatchUIEvent(select, 'pointerenter');\n                this.dispatchUIEvent(select, 'mouseover');\n                this.dispatchUIEvent(select, 'mouseenter');\n                this.dispatchUIEvent(select, 'pointerup');\n                this.dispatchUIEvent(select, 'mouseup');\n                this.dispatchUIEvent(select, 'click');\n            }\n            await wait(this.config);\n        } else {\n            throw getConfig().getElementError(`Cannot select multiple options on a non-multiple select`, select);\n        }\n    } else if (select.getAttribute('role') === 'listbox') {\n        for (const option of selectedOptions){\n            await this.click(option);\n            await this.unhover(option);\n        }\n    } else {\n        throw getConfig().getElementError(`Cannot select options on elements that are neither select nor listbox elements`, select);\n    }\n}\n\nexport { deselectOptions, selectOptions };\n","import { releaseAllKeys } from '../keyboard/index.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { setSelectionRange } from '../event/selection/setSelectionRange.js';\n\nasync function type(element, text, { skipClick = this.config.skipClick, skipAutoClose = this.config.skipAutoClose, initialSelectionStart, initialSelectionEnd } = {}) {\n    // TODO: properly type guard\n    // we use this workaround for now to prevent changing behavior\n    if (element.disabled) return;\n    if (!skipClick) {\n        await this.click(element);\n    }\n    if (initialSelectionStart !== undefined) {\n        setSelectionRange(element, initialSelectionStart, initialSelectionEnd !== null && initialSelectionEnd !== undefined ? initialSelectionEnd : initialSelectionStart);\n    }\n    await this.keyboard(text);\n    if (!skipAutoClose) {\n        await releaseAllKeys(this);\n    }\n}\n\nexport { type };\n","// It is not possible to create a real FileList programmatically.\n// Therefore assigning `files` property with a programmatically created FileList results in an error.\n// Just assigning the property (as per fireEvent) breaks the interweaving with the `value` property.\nconst fakeFiles = Symbol('files and value properties are mocked');\nfunction restoreProperty(obj, prop, descriptor) {\n    if (descriptor) {\n        Object.defineProperty(obj, prop, descriptor);\n    } else {\n        // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n        delete obj[prop];\n    }\n}\nfunction setFiles(el, files) {\n    var _el_fakeFiles;\n    (_el_fakeFiles = el[fakeFiles]) === null || _el_fakeFiles === undefined ? undefined : _el_fakeFiles.restore();\n    const typeDescr = Object.getOwnPropertyDescriptor(el, 'type');\n    const valueDescr = Object.getOwnPropertyDescriptor(el, 'value');\n    const filesDescr = Object.getOwnPropertyDescriptor(el, 'files');\n    function restore() {\n        restoreProperty(el, 'type', typeDescr);\n        restoreProperty(el, 'value', valueDescr);\n        restoreProperty(el, 'files', filesDescr);\n    }\n    el[fakeFiles] = {\n        restore\n    };\n    Object.defineProperties(el, {\n        files: {\n            configurable: true,\n            get: ()=>files\n        },\n        value: {\n            configurable: true,\n            get: ()=>files.length ? `C:\\\\fakepath\\\\${files[0].name}` : '',\n            set (v) {\n                if (v === '') {\n                    restore();\n                } else {\n                    var _valueDescr_set;\n                    valueDescr === null || valueDescr === undefined ? undefined : (_valueDescr_set = valueDescr.set) === null || _valueDescr_set === undefined ? undefined : _valueDescr_set.call(el, v);\n                }\n            }\n        },\n        type: {\n            configurable: true,\n            get: ()=>'file',\n            set (v) {\n                if (v !== 'file') {\n                    restore();\n                    el.type = v;\n                }\n            }\n        }\n    });\n}\n\nexport { setFiles };\n","import { isElementType } from '../utils/misc/isElementType.js';\nimport { createFileList } from '../utils/dataTransfer/FileList.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { setFiles } from '../utils/edit/setFiles.js';\nimport { isDisabled } from '../utils/misc/isDisabled.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\n\nasync function upload(element, fileOrFiles) {\n    const input = isElementType(element, 'label') ? element.control : element;\n    if (!input || !isElementType(input, 'input', {\n        type: 'file'\n    })) {\n        throw new TypeError(`The ${input === element ? 'given' : 'associated'} ${input === null || input === undefined ? undefined : input.tagName} element does not accept file uploads`);\n    }\n    if (isDisabled(element)) return;\n    const files = (Array.isArray(fileOrFiles) ? fileOrFiles : [\n        fileOrFiles\n    ]).filter((file)=>!this.config.applyAccept || isAcceptableFile(file, input.accept)).slice(0, input.multiple ? undefined : 1);\n    const fileDialog = ()=>{\n        var _input_files;\n        // do not fire an input event if the file selection does not change\n        if (files.length === ((_input_files = input.files) === null || _input_files === undefined ? undefined : _input_files.length) && files.every((f, i)=>{\n            var _input_files;\n            return f === ((_input_files = input.files) === null || _input_files === undefined ? undefined : _input_files.item(i));\n        })) {\n            return;\n        }\n        setFiles(input, createFileList(getWindow(element), files));\n        this.dispatchUIEvent(input, 'input');\n        this.dispatchUIEvent(input, 'change');\n    };\n    input.addEventListener('fileDialog', fileDialog);\n    await this.click(element);\n    input.removeEventListener('fileDialog', fileDialog);\n}\n// When matching files, browsers ignore case and consider jpeg/jpg interchangeable.\nfunction normalize(nameOrType) {\n    return nameOrType.toLowerCase().replace(/(\\.|\\/)jpg\\b/g, '$1jpeg');\n}\nfunction isAcceptableFile(file, accept) {\n    if (!accept) {\n        return true;\n    }\n    const wildcards = [\n        'audio/*',\n        'image/*',\n        'video/*'\n    ];\n    return normalize(accept).trim().split(/\\s*,\\s*/).some((acceptToken)=>{\n        // tokens starting with a dot represent a file extension\n        if (acceptToken.startsWith('.')) {\n            return normalize(file.name).endsWith(acceptToken);\n        } else if (wildcards.includes(acceptToken)) {\n            return normalize(file.type).startsWith(acceptToken.replace('*', ''));\n        }\n        return normalize(file.type) === acceptToken;\n    });\n}\n\nexport { upload };\n","import { click, dblClick, tripleClick } from '../convenience/click.js';\nimport { hover, unhover } from '../convenience/hover.js';\nimport { tab } from '../convenience/tab.js';\nimport { keyboard } from '../keyboard/index.js';\nimport { copy } from '../clipboard/copy.js';\nimport { cut } from '../clipboard/cut.js';\nimport { paste } from '../clipboard/paste.js';\nimport { pointer } from '../pointer/index.js';\nimport { clear } from '../utility/clear.js';\nimport { deselectOptions, selectOptions } from '../utility/selectOptions.js';\nimport { type } from '../utility/type.js';\nimport { upload } from '../utility/upload.js';\n\nconst userEventApi = {\n    click,\n    dblClick,\n    tripleClick,\n    hover,\n    unhover,\n    tab,\n    keyboard,\n    copy,\n    cut,\n    paste,\n    pointer,\n    clear,\n    deselectOptions,\n    selectOptions,\n    type,\n    upload\n};\n\nexport { userEventApi };\n","import { getConfig } from '@testing-library/dom';\n\n/**\n * Wrap an internal Promise\n */ function wrapAsync(implementation) {\n    return getConfig().asyncWrapper(implementation);\n}\n\nexport { wrapAsync };\n","import { patchFocus } from '../document/patchFocus.js';\nimport { prepareDocument } from '../document/prepareDocument.js';\nimport { dispatchEvent, dispatchUIEvent } from '../event/dispatchEvent.js';\nimport { attachClipboardStubToView } from '../utils/dataTransfer/Clipboard.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\nimport { getDocumentFromNode } from '../utils/misc/getDocumentFromNode.js';\nimport { setLevelRef, ApiLevel } from '../utils/misc/level.js';\nimport { wait } from '../utils/misc/wait.js';\nimport { PointerEventsCheckLevel } from '../options.js';\nimport '@testing-library/dom';\nimport { defaultKeyMap } from '../keyboard/keyMap.js';\nimport { defaultKeyMap as defaultKeyMap$1 } from '../pointer/keyMap.js';\nimport { System } from '../system/index.js';\nimport { userEventApi } from './api.js';\nimport { wrapAsync } from './wrapAsync.js';\n\n/**\n * Default options applied when API is called per `userEvent.anyApi()`\n */ const defaultOptionsDirect = {\n    applyAccept: true,\n    autoModify: true,\n    delay: 0,\n    document: globalThis.document,\n    keyboardMap: defaultKeyMap,\n    pointerMap: defaultKeyMap$1,\n    pointerEventsCheck: PointerEventsCheckLevel.EachApiCall,\n    skipAutoClose: false,\n    skipClick: false,\n    skipHover: false,\n    writeToClipboard: false,\n    advanceTimers: ()=>Promise.resolve()\n};\n/**\n * Default options applied when API is called per `userEvent().anyApi()`\n */ const defaultOptionsSetup = {\n    ...defaultOptionsDirect,\n    writeToClipboard: true\n};\nfunction createConfig(options = {}, defaults = defaultOptionsSetup, node) {\n    const document = getDocument(options, node, defaults);\n    return {\n        ...defaults,\n        ...options,\n        document\n    };\n}\n/**\n * Start a \"session\" with userEvent.\n * All APIs returned by this function share an input device state and a default configuration.\n */ function setupMain(options = {}) {\n    const config = createConfig(options);\n    prepareDocument(config.document);\n    patchFocus(getWindow(config.document).HTMLElement);\n    var _config_document_defaultView;\n    const view = (_config_document_defaultView = config.document.defaultView) !== null && _config_document_defaultView !== undefined ? _config_document_defaultView : /* istanbul ignore next */ globalThis.window;\n    attachClipboardStubToView(view);\n    return createInstance(config).api;\n}\n/**\n * Setup in direct call per `userEvent.anyApi()`\n */ function setupDirect({ keyboardState, pointerState, ...options } = {}, node) {\n    const config = createConfig(options, defaultOptionsDirect, node);\n    prepareDocument(config.document);\n    patchFocus(getWindow(config.document).HTMLElement);\n    var _ref;\n    const system = (_ref = pointerState !== null && pointerState !== undefined ? pointerState : keyboardState) !== null && _ref !== undefined ? _ref : new System();\n    return {\n        api: createInstance(config, system).api,\n        system\n    };\n}\n/**\n * Create a set of callbacks with different default settings but the same state.\n */ function setupSub(options) {\n    return createInstance({\n        ...this.config,\n        ...options\n    }, this.system).api;\n}\nfunction wrapAndBindImpl(instance, impl) {\n    function method(...args) {\n        setLevelRef(instance, ApiLevel.Call);\n        return wrapAsync(()=>impl.apply(instance, args).then(async (ret)=>{\n                await wait(instance.config);\n                return ret;\n            }));\n    }\n    Object.defineProperty(method, 'name', {\n        get: ()=>impl.name\n    });\n    return method;\n}\nfunction createInstance(config, system = new System()) {\n    const instance = {};\n    Object.assign(instance, {\n        config,\n        dispatchEvent: dispatchEvent.bind(instance),\n        dispatchUIEvent: dispatchUIEvent.bind(instance),\n        system,\n        levelRefs: {},\n        ...userEventApi\n    });\n    return {\n        instance,\n        api: {\n            ...Object.fromEntries(Object.entries(userEventApi).map(([name, api])=>[\n                    name,\n                    wrapAndBindImpl(instance, api)\n                ])),\n            setup: setupSub.bind(instance)\n        }\n    };\n}\nfunction getDocument(options, node, defaults) {\n    var _options_document, _ref;\n    return (_ref = (_options_document = options.document) !== null && _options_document !== undefined ? _options_document : node && getDocumentFromNode(node)) !== null && _ref !== undefined ? _ref : defaults.document;\n}\n\nexport { createConfig, createInstance, setupDirect, setupMain, setupSub };\n","import { setupDirect } from './setup.js';\n\nfunction clear(element) {\n    return setupDirect().api.clear(element);\n}\nfunction click(element, options = {}) {\n    return setupDirect(options, element).api.click(element);\n}\nfunction copy(options = {}) {\n    return setupDirect(options).api.copy();\n}\nfunction cut(options = {}) {\n    return setupDirect(options).api.cut();\n}\nfunction dblClick(element, options = {}) {\n    return setupDirect(options).api.dblClick(element);\n}\nfunction deselectOptions(select, values, options = {}) {\n    return setupDirect(options).api.deselectOptions(select, values);\n}\nfunction hover(element, options = {}) {\n    return setupDirect(options).api.hover(element);\n}\nasync function keyboard(text, options = {}) {\n    const { api, system } = setupDirect(options);\n    return api.keyboard(text).then(()=>system);\n}\nasync function pointer(input, options = {}) {\n    const { api, system } = setupDirect(options);\n    return api.pointer(input).then(()=>system);\n}\nfunction paste(clipboardData, options) {\n    return setupDirect(options).api.paste(clipboardData);\n}\nfunction selectOptions(select, values, options = {}) {\n    return setupDirect(options).api.selectOptions(select, values);\n}\nfunction tripleClick(element, options = {}) {\n    return setupDirect(options).api.tripleClick(element);\n}\nfunction type(element, text, options = {}) {\n    return setupDirect(options, element).api.type(element, text, options);\n}\nfunction unhover(element, options = {}) {\n    const { api, system } = setupDirect(options);\n    system.pointer.setMousePosition({\n        target: element\n    });\n    return api.unhover(element);\n}\nfunction upload(element, fileOrFiles, options = {}) {\n    return setupDirect(options).api.upload(element, fileOrFiles);\n}\nfunction tab(options = {}) {\n    return setupDirect().api.tab(options);\n}\n\nexport { clear, click, copy, cut, dblClick, deselectOptions, hover, keyboard, paste, pointer, selectOptions, tab, tripleClick, type, unhover, upload };\n","import { setupMain } from './setup.js';\nimport * as directApi from './directApi.js';\n\nconst userEvent = {\n    ...directApi,\n    setup: setupMain\n};\n\nexport { userEvent };\n","import {\n  AccessibilityNode,\n  createAccessibilityTree,\n} from \"./createAccessibilityTree\";\nimport { commands, type VirtualCommands } from \"./commands/index\";\nimport {\n  ERR_VIRTUAL_MISSING_CONTAINER,\n  ERR_VIRTUAL_NOT_STARTED,\n} from \"./errors\";\nimport { getLiveSpokenPhrase, LIVE } from \"./getLiveSpokenPhrase\";\nimport { flattenTree } from \"./flattenTree\";\nimport { getElementNode } from \"./commands/getElementNode\";\nimport { getItemText } from \"./getItemText\";\nimport { getSpokenPhrase } from \"./getSpokenPhrase\";\nimport { observeDOM } from \"./observeDOM\";\nimport { tick } from \"./tick\";\nimport { userEvent } from \"@testing-library/user-event\";\nimport type { VirtualCommandArgs } from \"./commands/types\";\n\n/**\n * Modifiers ported from https://github.com/guidepup/guidepup to prevent ESM\n * issues by Guidepup's usage of node builtins etc.\n */\n\nconst MacOSModifiers: Record<string, string> = {\n  /**\n   * The Command (alias cmd, ⌘) key.\n   */\n  Command: \"command\",\n  CommandLeft: \"command\",\n  CommandRight: \"command\",\n  Meta: \"command\",\n  /**\n   * The Control (alias ctrl, ⌃) key.\n   */\n  Control: \"control\",\n  ControlLeft: \"control\",\n  ControlRight: \"control\",\n  /**\n   * The Option (alias alt, ⌥) key.\n   */\n  Option: \"option\",\n  OptionLeft: \"option\",\n  OptionRight: \"option\",\n  Alt: \"option\",\n  AltLeft: \"option\",\n  AltRight: \"option\",\n  /**\n   * The Shift (alias ⇧) key.\n   */\n  Shift: \"shift\",\n  ShiftLeft: \"shift\",\n  ShiftRight: \"shift\",\n};\n\nconst WindowsModifiers: Record<string, string> = {\n  /**\n   * Hold down the Control (alias ctrl, ⌃) key.\n   */\n  Control: \"control\",\n  /**\n   * Hold down the Alt (alias ⎇) key.\n   */\n  Alt: \"alt\",\n  /**\n   * Hold down the Shift (alias ⇧) key.\n   */\n  Shift: \"shift\",\n};\n\nexport interface Root {\n  document?: Document;\n  MutationObserver?: typeof MutationObserver;\n}\n\nexport interface StartOptions {\n  /**\n   * The bounding HTML element to use the Virtual Screen Reader in.\n   *\n   * To use the entire page pass `document.body`.\n   */\n  container: Node;\n\n  /**\n   * The window instance.\n   *\n   * Only required if the `window` instance is not already globally available.\n   * For example, when you are in a Node environment and using a custom DOM\n   * implementation that is not attached to the global scope.\n   *\n   * Defaults to using the global `window` instance.\n   */\n  window?: Root;\n\n  /**\n   * Display the Virtual Screen Reader cursor visually on the target element.\n   *\n   * Note: There is a performance overhead to visually rendering the cursor.\n   *\n   * Defaults to `false`.\n   */\n  displayCursor?: boolean;\n}\n\nconst defaultUserEventOptions = {\n  delay: 0,\n  skipHover: true,\n};\n\n/**\n * TODO: When a modal element is displayed, assistive technologies SHOULD\n * navigate to the element unless focus has explicitly been set elsewhere.\n *\n * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-modal\n */\n\n/**\n * TODO: When an assistive technology reading cursor moves from one article to\n * another, assistive technologies SHOULD set user agent focus on the article\n * that contains the reading cursor. If the reading cursor lands on a focusable\n * element inside the article, the assistive technology MAY set focus on that\n * element in lieu of setting focus on the containing article.\n *\n * REF: https://www.w3.org/TR/wai-aria-1.2/#feed\n */\n\n/**\n * [API Reference](https://www.guidepup.dev/docs/api/class-virtual)\n *\n * A Virtual Screen Reader class that can be used to launch and control a\n * headless JavaScript screen reader which is compatible with any specification\n * compliant DOM implementation, e.g. jsdom, Jest, or any modern browser.\n *\n * Here's a typical example:\n *\n * ```ts\n * import { Virtual } from \"@guidepup/virtual-screen-reader\";\n *\n * function setupBasicPage() {\n *   document.body.innerHTML = `\n *   <nav>Nav Text</nav>\n *   <section>\n *     <h1>Section Heading</h1>\n *     <p>Section Text</p>\n *     <article>\n *       <header>\n *         <h1>Article Header Heading</h1>\n *         <p>Article Header Text</p>\n *       </header>\n *       <p>Article Text</p>\n *     </article>\n *   </section>\n *   <footer>Footer</footer>\n *   `;\n * }\n *\n * describe(\"Screen Reader Tests\", () => {\n *   test(\"should traverse the page announcing the expected roles and content\", async () => {\n *     // Setup a page using a framework and testing library of your choice\n *     setupBasicPage();\n *\n *     // Create a new Virtual Screen Reader instance\n *     const virtual = new Virtual();\n *\n *     // Start your Virtual Screen Reader instance\n *     await virtual.start({ container: document.body });\n *\n *     // Navigate your environment with the Virtual Screen Reader just as your users would\n *     while ((await virtual.lastSpokenPhrase()) !== \"end of document\") {\n *       await virtual.next();\n *     }\n *\n *     // Assert on what your users would really see and hear when using screen readers\n *     expect(await virtual.spokenPhraseLog()).toEqual([\n *       \"document\",\n *       \"navigation\",\n *       \"Nav Text\",\n *       \"end of navigation\",\n *       \"region\",\n *       \"heading, Section Heading, level 1\",\n *       \"Section Text\",\n *       \"article\",\n *       \"heading, Article Header Heading, level 1\",\n *       \"Article Header Text\",\n *       \"Article Text\",\n *       \"end of article\",\n *       \"end of region\",\n *       \"contentinfo\",\n *       \"Footer\",\n *       \"end of contentinfo\",\n *       \"end of document\",\n *     ]);\n *\n *     // Stop your Virtual Screen Reader instance\n *     await virtual.stop();\n *   });\n * });\n * ```\n */\nexport class Virtual {\n  #activeNode: AccessibilityNode | null = null;\n  #container: Node | null = null;\n  #cursor: HTMLDivElement | null = null;\n  #itemTextLog: string[] = [];\n  #spokenPhraseLog: string[] = [];\n  #treeCache: AccessibilityNode[] | null = null;\n  #disconnectDOMObserver: (() => void) | null = null;\n  #boundHandleFocusChange: ((event: Event) => Promise<void>) | null = null;\n\n  #checkContainer() {\n    if (!this.#container) {\n      throw new Error(ERR_VIRTUAL_NOT_STARTED);\n    }\n  }\n\n  #createCursor(root: Root | undefined) {\n    if (!root?.document) {\n      return;\n    }\n\n    this.#cursor = root.document.createElement(\"div\");\n\n    this.#cursor.ariaHidden = \"true\";\n    this.#cursor.style.border = \"2px dashed #1f1f1f\";\n    this.#cursor.style.outline = \"2px dashed #f0f0f0\";\n    this.#cursor.style.minHeight = \"4px\";\n    this.#cursor.style.minWidth = \"4px\";\n    this.#cursor.style.position = \"absolute\";\n    this.#cursor.style.left = \"0px\";\n    this.#cursor.style.top = \"0px\";\n    this.#cursor.style.margin = \"0px\";\n    this.#cursor.style.padding = \"2px\";\n    this.#cursor.style.pointerEvents = \"none\";\n    this.#cursor.style.zIndex = \"calc(Infinity)\";\n    this.#cursor.dataset.testid = \"virtual-screen-reader-cursor\";\n\n    this.#container!.appendChild(this.#cursor);\n  }\n\n  #setActiveNode(accessibilityNode: AccessibilityNode) {\n    this.#activeNode = accessibilityNode;\n\n    if (!this.#cursor) {\n      return;\n    }\n\n    const rect = getElementNode(accessibilityNode).getBoundingClientRect();\n\n    this.#cursor.style.top = `${rect.top - 2}px`;\n    this.#cursor.style.left = `${rect.left - 4}px`;\n    this.#cursor.style.width = `${rect.width}px`;\n    this.#cursor.style.height = `${rect.height}px`;\n  }\n\n  #getAccessibilityTree() {\n    if (!this.#treeCache) {\n      const tree = createAccessibilityTree(this.#container);\n\n      this.#treeCache =\n        this.#container && tree ? flattenTree(this.#container, tree, null) : [];\n    }\n\n    return this.#treeCache;\n  }\n\n  #getModalAccessibilityTree() {\n    const tree = this.#getAccessibilityTree();\n\n    if (!this.#activeNode) {\n      return tree;\n    }\n\n    const isModal =\n      this.#activeNode.parentDialog?.getAttribute(\"aria-modal\") === \"true\";\n\n    if (!isModal) {\n      return tree;\n    }\n\n    /**\n     * Assistive technologies MAY limit navigation to the modal element's\n     * contents.\n     *\n     * REF: https://www.w3.org/TR/wai-aria-1.2/#aria-modal\n     */\n    return tree.filter(\n      ({ parentDialog }) => this.#activeNode!.parentDialog === parentDialog\n    );\n  }\n\n  #invalidateTreeCache() {\n    this.#treeCache = null;\n  }\n\n  async #handleFocusChange({ target }: Event) {\n    await tick();\n\n    this.#invalidateTreeCache();\n    const tree = this.#getAccessibilityTree();\n\n    if (!tree.length) {\n      return;\n    }\n\n    // We've covered the tree having no length so there should be at least one\n    // matching node, but if not we will not update the state\n    const newActiveNode = tree.find(({ node }) => node === target);\n\n    if (!newActiveNode) {\n      return;\n    }\n\n    this.#updateState(newActiveNode, true);\n  }\n\n  #focusActiveElement() {\n    // Is only called following a null guard for `this.#activeNode`.\n\n    const target = getElementNode(this.#activeNode!);\n    target?.focus();\n  }\n\n  async #announceLiveRegions(mutations: MutationRecord[]) {\n    await tick();\n\n    const container = this.#container;\n\n    mutations\n      .map((mutation) =>\n        getLiveSpokenPhrase({\n          container,\n          mutation,\n        })\n      )\n      .filter(Boolean)\n      .forEach((spokenPhrase) => {\n        this.#spokenPhraseLog.push(spokenPhrase);\n      });\n  }\n\n  #spokenPhraseLogWithoutLiveRegions() {\n    return this.#spokenPhraseLog.filter(\n      (spokenPhrase) =>\n        !spokenPhrase.startsWith(LIVE.ASSERTIVE) &&\n        !spokenPhrase.startsWith(LIVE.POLITE)\n    );\n  }\n\n  #updateState(accessibilityNode: AccessibilityNode, ignoreIfNoChange = false) {\n    /**\n     * When the dialog is correctly labeled and focus is moved to an element\n     * (often an interactive element, such as a button) inside the dialog,\n     * screen readers should announce the dialog's accessible role, name and\n     * optionally description, along with announcing the focused element.\n     *\n     * REF: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/dialog_role#possible_effects_on_user_agents_and_assistive_technology\n     */\n    if (\n      accessibilityNode.parentDialog !== null &&\n      accessibilityNode.parentDialog !== this.#activeNode?.parentDialog\n    ) {\n      // One of the few cases where you will get two logs for a single\n      // interaction.\n      //\n      // We don't need to perform the `ignoreIfNoChange` check as this will\n      // only fire if the parent dialog element has changed, and if that\n      // happens we can be fairly confident that item under the virtual\n      // cursor has changed.\n      const tree = this.#getAccessibilityTree();\n      const parentDialogNode = tree.find(\n        ({ node }) => node === accessibilityNode.parentDialog\n      )!;\n\n      const spokenPhrase = getSpokenPhrase(parentDialogNode);\n      const itemText = getItemText(parentDialogNode);\n\n      this.#itemTextLog.push(itemText);\n      this.#spokenPhraseLog.push(spokenPhrase);\n    }\n\n    this.#setActiveNode(accessibilityNode);\n\n    const spokenPhrase = getSpokenPhrase(accessibilityNode);\n    const itemText = getItemText(accessibilityNode);\n\n    if (\n      ignoreIfNoChange &&\n      spokenPhrase === this.#spokenPhraseLogWithoutLiveRegions().at(-1) &&\n      itemText === this.#itemTextLog.at(-1)\n    ) {\n      return;\n    }\n\n    this.#itemTextLog.push(itemText);\n    this.#spokenPhraseLog.push(spokenPhrase);\n  }\n\n  async #refreshState(ignoreIfNoChange: boolean) {\n    await tick();\n\n    this.#invalidateTreeCache();\n    const tree = this.#getAccessibilityTree();\n    const currentIndex = this.#getCurrentIndexByNode(tree);\n\n    // This only fires after keyboard like interactions, both of which null\n    // guard the `this.#activeNode` so it stands that we should still be able\n    // to find it in the tree.\n\n    const newActiveNode = tree.at(currentIndex)!;\n\n    this.#updateState(newActiveNode, ignoreIfNoChange);\n  }\n\n  #getCurrentIndex(tree: AccessibilityNode[]) {\n    return tree.findIndex(\n      ({\n        accessibleDescription,\n        accessibleName,\n        accessibleValue,\n        node,\n        role,\n        spokenRole,\n      }) =>\n        accessibleDescription === this.#activeNode?.accessibleDescription &&\n        accessibleName === this.#activeNode?.accessibleName &&\n        accessibleValue === this.#activeNode?.accessibleValue &&\n        node === this.#activeNode?.node &&\n        role === this.#activeNode?.role &&\n        spokenRole === this.#activeNode?.spokenRole\n    );\n  }\n\n  #getCurrentIndexByNode(tree: AccessibilityNode[]) {\n    return tree.findIndex(({ node }) => node === this.#activeNode?.node);\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-active-node)\n   *\n   * Getter for the active node under the Virtual Screen Reader cursor.\n   *\n   * Note that this is not always the same as the currently focused node.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Move to the next element.\n   *   await virtual.next();\n   *\n   *   // Log the currently focused node.\n   *   console.log(virtual.activeNode);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   *\n   * @returns {Node|null}\n   */\n  get activeNode() {\n    return this.#activeNode?.node ?? null;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-commands)\n   *\n   * Getter for all Virtual Screen Reader commands.\n   *\n   * Use with the `await virtual.perform(command)` command to invoke an action:\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next landmark.\n   *   await virtual.perform(virtual.commands.moveToNextLandmark);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  get commands() {\n    return Object.fromEntries<keyof VirtualCommands>(\n      (Object.keys(commands) as (keyof VirtualCommands)[]).map(\n        (command: keyof VirtualCommands) => [command, command]\n      )\n    ) as { [K in keyof VirtualCommands]: K };\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-detect)\n   *\n   * Detect whether the screen reader is supported for the current OS:\n   *\n   * - `true` for all OS\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   const isVirtualSupportedScreenReader = await virtual.detect();\n   *\n   *   console.log(isVirtualSupportedScreenReader);\n   * });\n   * ```\n   *\n   * @returns {Promise<boolean>}\n   */\n  async detect() {\n    return true;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-default)\n   *\n   * Detect whether the screen reader is the default screen reader for the current OS.\n   *\n   * - `false` for all OS\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   const isVirtualDefaultScreenReader = await virtual.default();\n   *\n   *   console.log(isVirtualDefaultScreenReader);\n   * });\n   * ```\n   *\n   * @returns {Promise<boolean>}\n   */\n  async default() {\n    return false;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-start)\n   *\n   * Turn the Virtual Screen Reader on.\n   *\n   * This must be called before any other Virtual command can be issued.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader on the entire page.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // ... perform some commands.\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   *\n   * @param {object} [options] Additional options.\n   */\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore for non-TS users we default the container to `null` which\n  // prompts the missing container error.\n  async start(\n    { container, displayCursor = false, window: root }: StartOptions = {\n      container: null as never,\n      displayCursor: false,\n    }\n  ) {\n    if (!container) {\n      throw new Error(ERR_VIRTUAL_MISSING_CONTAINER);\n    }\n\n    if (!root && typeof window !== \"undefined\") {\n      root = window;\n    }\n\n    this.#container = container;\n\n    if (displayCursor) {\n      this.#createCursor(root);\n    }\n\n    this.#disconnectDOMObserver = observeDOM(\n      root,\n      container,\n      (mutations: MutationRecord[]) => {\n        this.#invalidateTreeCache();\n        this.#announceLiveRegions(mutations);\n      }\n    );\n\n    const tree = this.#getAccessibilityTree();\n\n    if (!tree.length) {\n      return;\n    }\n\n    this.#boundHandleFocusChange = this.#handleFocusChange.bind(this);\n\n    this.#container.addEventListener(\"focusin\", this.#boundHandleFocusChange);\n\n    this.#updateState(tree[0]);\n\n    return;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-stop)\n   *\n   * Turn the Virtual Screen Reader off.\n   *\n   * Calling this method will clear any item text or spoken phrases collected by Virtual.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // ... perform some commands.\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  async stop() {\n    this.#disconnectDOMObserver?.();\n    this.#container?.removeEventListener(\"focusin\", this.#boundHandleFocusChange);\n    this.#invalidateTreeCache();\n\n    if (this.#cursor) {\n      this.#container?.removeChild(this.#cursor);\n      this.#cursor = null;\n    }\n\n    this.#activeNode = null;\n    this.#container = null;\n    this.#itemTextLog = [];\n    this.#spokenPhraseLog = [];\n    this.#boundHandleFocusChange = null;\n    return;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-previous)\n   *\n   * Move the screen reader cursor to the previous location.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Move to the previous item.\n   *   await virtual.previous();\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  async previous() {\n    this.#checkContainer();\n    await tick();\n\n    const tree = this.#getModalAccessibilityTree();\n\n    if (!tree.length) {\n      return;\n    }\n\n    const currentIndex = this.#getCurrentIndex(tree);\n    const nextIndex = currentIndex === -1 ? 0 : currentIndex - 1;\n    // We've covered the tree having no length so there must be at least one\n    // index, and we ensure to zero-guard with the logic above.\n\n    const newActiveNode = tree.at(nextIndex)!;\n\n    this.#updateState(newActiveNode);\n\n    return;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-next)\n   *\n   * Move the screen reader cursor to the next location.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Move to the next item.\n   *   await virtual.next();\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  async next() {\n    this.#checkContainer();\n    await tick();\n\n    const tree = this.#getModalAccessibilityTree();\n\n    if (!tree.length) {\n      return;\n    }\n\n    const currentIndex = this.#getCurrentIndex(tree);\n    const nextIndex =\n      currentIndex === -1 || currentIndex === tree.length - 1\n        ? 0\n        : currentIndex + 1;\n    // We've covered the tree having no length so there must be at least one\n    // index, and we ensure to zero-guard with the logic above.\n\n    const newActiveNode = tree.at(nextIndex)!;\n\n    this.#updateState(newActiveNode);\n\n    return;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-act)\n   *\n   * Perform the default action for the item in the Virtual Screen Reader cursor.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Move to the next item.\n   *   await virtual.next();\n   *\n   *   // Perform the default action for the item.\n   *   await virtual.act();\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  async act() {\n    this.#checkContainer();\n    await tick();\n\n    if (!this.#activeNode) {\n      return;\n    }\n\n    const target = getElementNode(this.#activeNode);\n\n    /**\n     * The user agent SHOULD simulate a click on the DOM element which is\n     * mapped to that accessible object.\n     *\n     * REF: https://www.w3.org/TR/core-aam-1.2/#mapping_actions\n     */\n    await userEvent.click(target, defaultUserEventOptions);\n\n    return;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-interact)\n   *\n   * No-op to provide same API across screen readers.\n   *\n   * The Virtual Screen Reader does not require users to perform an additional\n   * command to interact with the item in the Virtual Screen Reader cursor.\n   */\n  async interact() {\n    this.#checkContainer();\n\n    return;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-stop-interacting)\n   *\n   * No-op to provide same API across screen readers.\n   *\n   * The Virtual Screen Reader does not require users to perform an additional\n   * command to interact with the item in the Virtual Screen Reader cursor.\n   */\n  async stopInteracting() {\n    this.#checkContainer();\n\n    return;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-press)\n   *\n   * Press a key on the active item.\n   *\n   * `key` can specify the intended [keyboardEvent.key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key)\n   * value or a single character to generate the text for. A superset of the `key` values can be found\n   * [on the MDN key values page](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values). Examples of the keys are:\n   *\n   * `F1` - `F20`, `Digit0` - `Digit9`, `KeyA` - `KeyZ`, `Backquote`, `Minus`, `Equal`, `Backslash`, `Backspace`, `Tab`,\n   * `Delete`, `Escape`, `ArrowDown`, `End`, `Enter`, `Home`, `Insert`, `PageDown`, `PageUp`, `ArrowRight`, `ArrowUp`, etc.\n   *\n   * Following modification shortcuts are also supported: `Shift`, `Control`, `Alt`, `Meta` (OS permitting).\n   *\n   * Holding down `Shift` will type the text that corresponds to the `key` in the upper case.\n   *\n   * If `key` is a single character, it is case-sensitive, so the values `a` and `A` will generate different respective\n   * texts.\n   *\n   * Shortcuts such as `key: \"Control+f\"` or `key: \"Control+Shift+f\"` are supported as well. When specified with the\n   * modifier, modifier is pressed and being held while the subsequent key is being pressed.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Open a find text modal.\n   *   await virtual.press(\"Command+f\");\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   *\n   * @param {string} key Name of the key to press or a character to generate, such as `ArrowLeft` or `a`.\n   */\n  async press(key: string) {\n    this.#checkContainer();\n    await tick();\n\n    if (!this.#activeNode) {\n      return;\n    }\n\n    const rawKeys = key.replace(/{/g, \"{{\").replace(/\\[/g, \"[[\").split(\"+\");\n    const modifiers: string[] = [];\n    const keys: string[] = [];\n\n    rawKeys.forEach((rawKey) => {\n      if (\n        typeof MacOSModifiers[rawKey] !== \"undefined\" ||\n        typeof WindowsModifiers[rawKey] !== \"undefined\"\n      ) {\n        modifiers.push(rawKey);\n      } else {\n        keys.push(rawKey);\n      }\n    });\n\n    const keyboardCommand = [\n      ...modifiers.map((modifier) => `{${modifier}>}`),\n      ...keys.map((key) => `{${key}}`),\n      ...modifiers.reverse().map((modifier) => `{/${modifier}}`),\n    ].join(\"\");\n\n    this.#focusActiveElement();\n    await userEvent.keyboard(keyboardCommand, defaultUserEventOptions);\n    await this.#refreshState(true);\n\n    return;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-type)\n   *\n   * Type text into the active item.\n   *\n   * To press a special key, like `Control` or `ArrowDown`, use `virtual.press(key)`.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Type a username and key Enter.\n   *   await virtual.type(\"my-username\");\n   *   await virtual.press(\"Enter\");\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   *\n   * @param {string} text Text to type into the active item.\n   */\n  async type(text: string) {\n    this.#checkContainer();\n    await tick();\n\n    if (!this.#activeNode) {\n      return;\n    }\n\n    const target = getElementNode(this.#activeNode);\n    await userEvent.type(target, text, defaultUserEventOptions);\n    await this.#refreshState(true);\n\n    return;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-perform)\n   *\n   * Perform a Virtual Screen Reader command.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Perform action to move to the next landmark.\n   *   await virtual.perform(virtual.commands.moveToNextLandmark);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   *\n   * @param {string} command Screen reader command.\n   * @param {object} [options] Command options.\n   */\n  async perform<\n    T extends keyof VirtualCommands,\n    K extends Omit<Parameters<VirtualCommands[T]>[0], keyof VirtualCommandArgs>\n  >(command: T, options?: { [L in keyof K]: K[L] }) {\n    this.#checkContainer();\n    await tick();\n\n    const tree = this.#getModalAccessibilityTree();\n\n    if (!tree.length) {\n      return;\n    }\n\n    const currentIndex = this.#getCurrentIndex(tree);\n    const nextIndex = commands[command]?.({\n      ...options,\n      // `this.#checkContainer();` above null guards us here.\n\n      container: this.#container!,\n      currentIndex,\n      tree,\n    });\n\n    if (typeof nextIndex !== \"number\") {\n      return;\n    }\n\n    // We know the tree has length, and we guard against the command not being\n    // able to find an index in the tree so we are fine.\n\n    const newActiveNode = tree.at(nextIndex)!;\n    this.#updateState(newActiveNode);\n\n    return;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-click)\n   *\n   * Click the mouse.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Left-click the mouse.\n   *   await virtual.click();\n   *\n   *   // Left-click the mouse using specific options.\n   *   await virtual.click({ button: \"left\", clickCount: 1 });\n   *\n   *   // Double-right-click the mouse.\n   *   await virtual.click({ button: \"right\", clickCount: 2 });\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   *\n   * @param {object} [options] Click options.\n   */\n  async click({ button = \"left\", clickCount = 1 } = {}) {\n    this.#checkContainer();\n    await tick();\n\n    if (!this.#activeNode) {\n      return;\n    }\n\n    const key = `[Mouse${button[0].toUpperCase()}${button.slice(1)}]`;\n    const keys = key.repeat(clickCount);\n    const target = getElementNode(this.#activeNode);\n\n    await userEvent.pointer(\n      [{ target }, { keys, target }],\n      defaultUserEventOptions\n    );\n\n    return;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-last-spoken-phrase)\n   *\n   * Get the last spoken phrase.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Move to the next item.\n   *   await virtual.next();\n   *\n   *   // Get the phrase spoken by the Virtual Screen Reader from moving to the next item above.\n   *   const lastSpokenPhrase = await virtual.lastSpokenPhrase();\n   *   console.log(lastSpokenPhrase);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   *\n   * @returns {Promise<string>} The last spoken phrase.\n   */\n  async lastSpokenPhrase() {\n    this.#checkContainer();\n    await tick();\n\n    return this.#spokenPhraseLog.at(-1) ?? \"\";\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-item-text)\n   *\n   * Get the text of the item in the Virtual Screen Reader cursor.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Move to the next item.\n   *   await virtual.next();\n   *\n   *   // Get the text (if any) for the item currently in focus by the Virtual\n   *   // screen reader cursor.\n   *   const itemText = await virtual.itemText();\n   *   console.log(itemText);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   *\n   * @returns {Promise<string>} The item's text.\n   */\n  async itemText() {\n    this.#checkContainer();\n    await tick();\n\n    return this.#itemTextLog.at(-1) ?? \"\";\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-spoken-phrase-log)\n   *\n   * Get the log of all spoken phrases for this Virtual Screen Reader instance.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Move through several items.\n   *   for (let i = 0; i < 10; i++) {\n   *     await virtual.next();\n   *   }\n   *\n   *   // Get the phrase spoken by the Virtual Screen Reader from moving through the\n   *   // items above.\n   *   const spokenPhraseLog = await virtual.spokenPhraseLog();\n   *   console.log(spokenPhraseLog);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   *\n   * @returns {Promise<string[]>} The spoken phrase log.\n   */\n  async spokenPhraseLog() {\n    this.#checkContainer();\n\n    await tick();\n\n    return this.#spokenPhraseLog;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-item-text-log)\n   *\n   * Get the log of all visited item text for this Virtual Screen Reader instance.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // Move through several items.\n   *   for (let i = 0; i < 10; i++) {\n   *     await virtual.next();\n   *   }\n   *\n   *   // Get the text (if any) for all the items visited by the Virtual screen\n   *   // reader cursor.\n   *   const itemTextLog = await virtual.itemTextLog();\n   *   console.log(itemTextLog);\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   *\n   * @returns {Promise<string[]>} The item text log.\n   */\n  async itemTextLog() {\n    this.#checkContainer();\n\n    await tick();\n\n    return this.#itemTextLog;\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-clear-spoken-phrase-log)\n   *\n   * Clear the log of all spoken phrases for this Virtual Screen Reader\n   * instance.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // ... perform some commands.\n   *\n   *   // Clear the spoken phrase log.\n   *   await virtual.clearSpokenPhraseLog();\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  async clearSpokenPhraseLog() {\n    this.#checkContainer();\n\n    await tick();\n\n    this.#spokenPhraseLog = [];\n  }\n\n  /**\n   * [API Reference](https://www.guidepup.dev/docs/api/class-virtual#virtual-clear-item-text-log)\n   *\n   * Clear the log of all visited item text for this Virtual Screen Reader\n   * instance.\n   *\n   * ```ts\n   * import { virtual } from \"@guidepup/virtual-screen-reader\";\n   *\n   * test(\"example test\", async () => {\n   *   // Start the Virtual Screen Reader.\n   *   await virtual.start({ container: document.body });\n   *\n   *   // ... perform some commands.\n   *\n   *   // Clear the item text log.\n   *   await virtual.clearItemTextLog();\n   *\n   *   // Stop the Virtual Screen Reader.\n   *   await virtual.stop();\n   * });\n   * ```\n   */\n  async clearItemTextLog() {\n    this.#checkContainer();\n\n    await tick();\n\n    this.#itemTextLog = [];\n  }\n}\n","import { type StartOptions, Virtual } from \"./Virtual\";\n\n/**\n * [API Reference](https://www.guidepup.dev/docs/api/class-virtual)\n *\n * A Virtual Screen Reader instance that can be used to launch and control a\n * headless JavaScript screen reader which is compatible with any specification\n * compliant DOM implementation, e.g. jsdom, Jest, or any modern browser.\n *\n * Here's a typical example:\n *\n * ```ts\n * import { virtual } from \"@guidepup/virtual-screen-reader\";\n *\n * function setupBasicPage() {\n *   document.body.innerHTML = `\n *   <nav>Nav Text</nav>\n *   <section>\n *     <h1>Section Heading</h1>\n *     <p>Section Text</p>\n *     <article>\n *       <header>\n *         <h1>Article Header Heading</h1>\n *         <p>Article Header Text</p>\n *       </header>\n *       <p>Article Text</p>\n *     </article>\n *   </section>\n *   <footer>Footer</footer>\n *   `;\n * }\n *\n * describe(\"Screen Reader Tests\", () => {\n *   test(\"should traverse the page announcing the expected roles and content\", async () => {\n *     // Setup a page using a framework and testing library of your choice\n *     setupBasicPage();\n *\n *     // Start your Virtual Screen Reader instance\n *     await virtual.start({ container: document.body });\n *\n *     // Navigate your environment with the Virtual Screen Reader just as your users would\n *     while ((await virtual.lastSpokenPhrase()) !== \"end of document\") {\n *       await virtual.next();\n *     }\n *\n *     // Assert on what your users would really see and hear when using screen readers\n *     expect(await virtual.spokenPhraseLog()).toEqual([\n *       \"document\",\n *       \"navigation\",\n *       \"Nav Text\",\n *       \"end of navigation\",\n *       \"region\",\n *       \"heading, Section Heading, level 1\",\n *       \"Section Text\",\n *       \"article\",\n *       \"heading, Article Header Heading, level 1\",\n *       \"Article Header Text\",\n *       \"Article Text\",\n *       \"end of article\",\n *       \"end of region\",\n *       \"contentinfo\",\n *       \"Footer\",\n *       \"end of contentinfo\",\n *       \"end of document\",\n *     ]);\n *\n *     // Stop your Virtual Screen Reader instance\n *     await virtual.stop();\n *   });\n * });\n * ```\n */\nexport const virtual = new Virtual();\n\nexport { type StartOptions, Virtual };\n"],"mappings":"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AW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,UAAW,CACT,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,MAAO,CACL,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,WAAY,CACV,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,eAAgB,CACd,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,UAAW,CACT,UAAW,gBACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,MAAO,CACL,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,KAAM,CACJ,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,QAAS,CACP,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,SAAU,CACR,UAAW,gBACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,WAAY,CACV,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,OAAQ,CACN,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,QAAS,CACP,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,QAAS,CACP,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,QAAS,CACP,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,WAAY,CACV,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,aAAc,CACZ,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,QAAS,CACP,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EAEA,KAAM,CAKJ,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,MAAO,CACL,UAAW,QACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EAEA,eAAgB,CACd,UAAW,iBACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,aAAc,CACZ,UAAW,iBACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,mBAAoB,CAClB,UAAW,iBACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EAEA,iBAAkB,CAChB,UAAW,kBACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,cAAe,CACb,UAAW,kBACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,cAAe,CACb,UAAW,kBACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,gBAAiB,CACf,UAAW,kBACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EAEA,YAAa,CACX,UAAW,eACX,YAAa,CACX,QAAS,GACT,WAAY,GACZ,SAAU,EACZ,CACF,EACA,aAAc,CACZ,UAAW,eACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,YAAa,CACX,UAAW,eACX,YAAa,CACX,QAAS,GACT,WAAY,GACZ,SAAU,EACZ,CACF,EACA,YAAa,CACX,UAAW,eACX,YAAa,CACX,QAAS,GACT,WAAY,GACZ,SAAU,EACZ,CACF,EACA,UAAW,CACT,UAAW,eACX,YAAa,CACX,QAAS,GACT,WAAY,GACZ,SAAU,EACZ,CACF,EACA,cAAe,CACb,UAAW,eACX,YAAa,CACX,QAAS,GACT,WAAY,GACZ,SAAU,EACZ,CACF,EACA,WAAY,CACV,UAAW,eACX,YAAa,CACX,QAAS,GACT,WAAY,GACZ,SAAU,EACZ,CACF,EACA,aAAc,CACZ,UAAW,eACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EACA,kBAAmB,CACjB,UAAW,eACX,YAAa,CACX,QAAS,GACT,WAAY,GACZ,SAAU,EACZ,CACF,EACA,mBAAoB,CAClB,UAAW,eACX,YAAa,CACX,QAAS,GACT,WAAY,GACZ,SAAU,EACZ,CACF,EAEA,SAAU,CACR,UAAW,gBACX,YAAa,CACX,QAAS,GACT,WAAY,EACd,CACF,EAEA,QAAS,CACP,UAAW,QACX,YAAa,C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AC,GACf,IAAKD,EACL,SAAU,EACd,EAAE,EACN,GAAG,6BAA6B,MAAM,EAAE,EAAE,IAAKA,IAAK,CAC5C,KAAM,MAAMA,EAAE,YAAY,CAAC,GAC3B,IAAKA,CACT,EAAE,EACN,GAAG,6BAA6B,MAAM,EAAE,EAAE,IAAKA,IAAK,CAC5C,KAAM,MAAMA,CAAC,GACb,IAAKA,EACL,SAAU,EACd,EAAE,EACN,CACI,KAAM,cACN,IAAK,GACT,EACA,CACI,KAAM,cACN,IAAK,IACL,SAAU,EACd,EACA,CACI,KAAM,eACN,IAAK,GACT,EACA,CACI,KAAM,eACN,IAAK,IACL,SAAU,EACd,EAEA,CACI,KAAM,QACN,IAAK,GACT,EACA,CACI,KAAM,UACN,IAAK,MACL,SAAUE,GAAiB,IAC/B,EACA,CACI,KAAM,WACN,IAAK,MACL,SAAUA,GAAiB,KAC/B,EACA,CACI,KAAM,YACN,IAAK,QACL,SAAUA,GAAiB,IAC/B,EACA,CACI,KAAM,aACN,IAAK,QACL,SAAUA,GAAiB,KAC/B,EACA,CACI,KAAM,cACN,IAAK,UACL,SAAUA,GAAiB,IAC/B,EACA,CACI,KAAM,eACN,IAAK,UACL,SAAUA,GAAiB,KAC/B,EACA,CACI,KAAM,WACN,IAAK,OACL,SAAUA,GAAiB,IAC/B,EACA,CACI,KAAM,YACN,IAAK,OACL,SAAUA,GAAiB,KAC/B,EACA,CACI,KAAM,SACN,IAAK,KACL,SAAUA,GAAiB,IAC/B,EACA,CACI,KAAM,UACN,IAAK,KACL,SAAUA,GAAiB,KAC/B,EACA,CACI,KAAM,cACN,IAAK,aACT,EACA,CACI,KAAM,MACN,IAAK,KACT,EACA,CACI,KAAM,WACN,IAAK,UACT,EACA,CACI,KAAM,YACN,IAAK,WACT,EACA,CACI,KAAM,QACN,IAAK,OACT,EAEA,CACI,KAAM,SACN,IAAK,QACT,EAEA,CACI,KAAM,UACN,IAAK,SACT,EACA,CACI,KAAM,YACN,IAAK,WACT,EACA,CACI,KAAM,YACN,IAAK,WACT,EACA,CACI,KAAM,aACN,IAAK,YACT,EAEA,CACI,KAAM,OACN,IAAK,MACT,EACA,CACI,KAAM,MACN,IAAK,KACT,EACA,CACI,KAAM,SACN,IAAK,QACT,EACA,CACI,KAAM,SACN,IAAK,QACT,EACA,CACI,KAAM,WACN,IAAK,UACT,EAEA,CACI,KAAM,KACN,IAAK,IACT,EACA,CACI,KAAM,SACN,IAAK,QACT,EACA,CACI,KAAM,WACN,IAAK,UACT,CACJ,EC7KA,IAAMC,GAAgB,CAClB,CACI,KAAM,YACN,YAAa,QACb,OAAQ,SACZ,EACA,CACI,KAAM,aACN,YAAa,QACb,OAAQ,WACZ,EACA,CACI,KAAM,cACN,YAAa,QACb,OAAQ,WACZ,EACA,CACI,KAAM,SACN,YAAa,OACjB,EACA,CACI,KAAM,SACN,YAAa,OACjB,EACA,CACI,KAAM,SACN,YAAa,OACjB,CACJ,EC5BA,SAASC,GAAiBC,EAAKC,EAAKC,EAAO,CACvC,OAAID,KAAOD,EACP,OAAO,eAAeA,EAAKC,EAAK,CAC5B,MAAOC,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACd,CAAC,EAEDF,EAAIC,CAAG,EAAIC,EAERF,CACX,CACA,IAAMG,GAAN,KAAc,CACV,YAAa,CACT,IAAIC,EAAI,EACR,QAAWC,KAAU,OAAO,KAAK,KAAK,OAAO,EAEzCD,GAAK,GAAK,OAAOC,CAAM,EAE3B,OAAOD,CACX,CACA,KAAKE,EAAQ,CACT,IAAMD,EAASE,GAAiBD,EAAO,MAAM,EAC7C,GAAID,KAAU,KAAK,QAAS,CACxB,KAAK,QAAQA,CAAM,EAAE,KAAKC,CAAM,EAChC,MACJ,CACA,YAAK,QAAQD,CAAM,EAAI,CACnBC,CACJ,EACOD,CACX,CACA,GAAGC,EAAQ,CACP,IAAMD,EAASE,GAAiBD,EAAO,MAAM,EAC7C,GAAID,KAAU,KAAK,UACf,KAAK,QAAQA,CAAM,EAAI,KAAK,QAAQA,CAAM,EAAE,OAAQG,GAAIA,EAAE,OAASF,EAAO,IAAI,EAC1E,KAAK,QAAQD,CAAM,EAAE,SAAW,GAEhC,cAAO,KAAK,QAAQA,CAAM,EACnBA,CAInB,CACA,aAAa,CACTN,GAAiB,KAAM,UAAW,CAAC,CAAC,CACxC,CACJ,EACMU,GAAc,CAChB,QAAS,EACT,UAAW,EACX,UAAW,EACX,KAAM,EACN,GAAI,EACJ,QAAS,EACT,GAAI,CACR,EACA,SAASF,GAAiBF,EAAS,EAAG,CAClC,OAAIA,KAAUI,GACHA,GAAYJ,CAAM,EAEtB,OAAOA,CAAM,CACxB,CAEA,IAAMK,GAAkB,CACpB,EAAG,EACH,EAAG,CACP,EACA,SAASC,GAAoBN,EAAQ,CAEjC,OADAA,EAASE,GAAiBF,CAAM,EAC5BA,KAAUK,GACHA,GAAgBL,CAAM,EAE1BA,CACX,CC3EA,SAASO,GAAiBC,EAAKC,EAAKC,EAAO,CACvC,OAAID,KAAOD,EACP,OAAO,eAAeA,EAAKC,EAAK,CAC5B,MAAOC,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACd,CAAC,EAEDF,EAAIC,CAAG,EAAIC,EAERF,CACX,CACA,IAAMG,GAAN,KAAa,CACT,IAAI,cAAe,CACf,OAAO,KAAK,YAAY,IAC5B,CACA,UAAUC,EAAQ,CACd,OAAO,KAAK,YAAY,IAAIA,EAAO,IAAI,CAC3C,CACA,WAAWA,EAAQ,CACf,OAAO,KAAK,YAAY,IAAIA,EAAO,IAAI,CAC3C,CACA,cAAcA,EAAQ,CAClB,OAAO,KAAK,YAAY,OAAOA,EAAO,IAAI,CAC9C,CACA,aAAa,CACTL,GAAiB,KAAM,cAAe,IAAI,GAAK,CACnD,CACJ,EC7BA,SAASM,GAAYC,EAAGC,EAAG,CACvB,IAAMC,EAAQ,CAAC,EACf,QAAQC,EAAKH,EAAGG,EAAIA,EAAKA,EAAG,cACxBD,EAAM,KAAKC,CAAE,EAEjB,IAAMC,EAAQ,CAAC,EACf,QAAQD,EAAKF,EAAGE,EAAIA,EAAKA,EAAG,cACxBC,EAAM,KAAKD,CAAE,EAEjB,IAAI,EAAI,EACR,KACQ,KAAKD,EAAM,QAAU,GAAKE,EAAM,QAAUF,EAAMA,EAAM,OAAS,EAAI,CAAC,IAAME,EAAMA,EAAM,OAAS,EAAI,CAAC,GADrG,IACH,CAIJ,MAAO,CACHF,EAAM,MAAM,EAAGA,EAAM,OAAS,CAAC,EAC/BE,EAAM,MAAM,EAAGA,EAAM,OAAS,CAAC,EAC/BA,EAAM,MAAMA,EAAM,OAAS,CAAC,CAChC,CACJ,CChBA,SAASC,GAAqB,CAAE,OAAAC,EAAQ,KAAAC,EAAM,OAAAC,CAAO,EAAG,CACpD,OAAIC,EAAgBH,CAAM,EACf,CACH,KAAMA,EACN,OAAQE,GAAmDE,EAAWJ,CAAM,EAAE,MAClF,EACOC,EACA,CACH,KAAAA,EACA,OAAQC,IAAmDD,EAAK,WAAa,EAAIA,EAAK,UAAU,OAASA,EAAK,WAAW,OAC7H,EAEGI,GAAqBL,EAAQE,CAAM,CAC9C,CACA,SAASG,GAAqBJ,EAAMC,EAAQI,EAAS,GAAM,CAOvD,IAAIC,EAAIL,IAAW,OAAYD,EAAK,WAAW,OAAS,EAAI,EACtDO,EAAON,IAAW,OAAY,GAAK,EACzC,KAAMA,IAAW,OAAYK,IAAMD,EAAS,KAAK,IAAIL,EAAK,WAAW,OAAS,EAAG,CAAC,EAAI,GAAKM,GAAKN,EAAK,WAAW,QAAO,CACnH,GAAIC,GAAUK,IAAMN,EAAK,WAAW,OAChC,MAAM,IAAI,MAAM,oCAAoC,EAExD,IAAMQ,EAAIR,EAAK,WAAW,KAAKM,CAAC,EAC1BG,EAAO,OAAOD,EAAE,WAAW,EACjC,GAAIC,EAAK,OACL,GAAIR,IAAW,QAAaQ,EAAK,OAASR,EACtCA,GAAUQ,EAAK,WACZ,IAAID,EAAE,WAAa,EACtB,OAAOJ,GAAqBI,EAAGP,EAAQ,EAAK,EAK5C,GAAIO,EAAE,WAAa,EACf,MAAO,CACH,KAAMA,EACN,OAAQP,GAAmDO,EAAE,UAAU,MAC3E,EAIZF,GAAKC,CACT,CACA,MAAO,CACH,KAAAP,EACA,OAAQA,EAAK,WAAW,MAC5B,CACJ,CCnDA,SAASU,GAAyB,CAAE,SAAAC,EAAU,OAAAC,EAAQ,WAAAC,EAAY,KAAAC,EAAM,OAAAC,CAAO,EAAG,CAC9E,GAAIC,GAAeJ,CAAM,EACrB,OAEJ,IAAMK,EAAwBC,EAAgBN,CAAM,EAM9CO,EAAO,OAAOF,EAAwBG,EAAWR,CAAM,EAAIA,EAAO,WAAW,EAC7E,CAACS,EAAOC,CAAG,EAAIR,EAErB,CACIC,EACAA,CACJ,EAAIQ,GAAaJ,EAAMJ,EAAQF,CAAU,EAEzC,GAAII,EACA,OAAAO,GAAeZ,EAAQ,CACnB,aAAcS,GAAgDF,EAAK,OACnE,YAAaG,GAA0CH,EAAK,MAChE,CAAC,EACM,CACH,KAAMP,EACN,MAAOS,GAAgD,EACvD,IAAKC,GAA0CH,EAAK,MACxD,EACG,CACH,GAAM,CAAE,KAAMM,EAAW,OAAQC,CAAY,EAAIC,GAAqB,CAClE,OAAAf,EACA,KAAAE,EACA,OAAQO,CACZ,CAAC,EACK,CAAE,KAAMO,EAAS,OAAQC,CAAU,EAAIF,GAAqB,CAC9D,OAAAf,EACA,KAAAE,EACA,OAAQQ,CACZ,CAAC,EACKQ,EAAQlB,EAAO,cAAc,YAAY,EAC/C,GAAI,CACAkB,EAAM,SAASL,EAAWC,CAAW,EACrCI,EAAM,OAAOF,EAASC,CAAS,CACnC,MAAY,CACR,MAAM,IAAI,MAAM,oCAAoC,CACxD,CACA,IAAME,EAAYpB,EAAS,aAAa,EACxC,OAA4DoB,GAAU,gBAAgB,EAC1BA,GAAU,SAASD,EAAM,WAAW,CAAC,EAC1FA,CACX,CACJ,CACA,SAASP,GAAaJ,EAAMa,EAAKnB,EAAY,CACzC,GAAIA,EAAa,IAAM,GAAKM,EAAK,SAAW,EACxC,MAAO,CACHa,EACAA,CACJ,EAEJ,IAAMC,EAAUD,GAA0Cb,EAAK,OAC/D,OAAIN,EAAa,IAAM,EACZ,CACHoB,EAAUd,EAAK,OAAO,EAAGa,CAAG,EAAE,MAAM,gBAAgB,EAAE,CAAC,EAAE,OACzDA,IAAQ,OAAYA,EAAMA,EAAMb,EAAK,OAAOa,CAAG,EAAE,MAAM,gBAAgB,EAAE,CAAC,EAAE,MAChF,EAGG,CACHC,EAAUd,EAAK,OAAO,EAAGa,CAAG,EAAE,MAAM,WAAW,EAAE,CAAC,EAAE,OACpDA,IAAQ,OAAYA,EAAMA,EAAMb,EAAK,OAAOa,CAAG,EAAE,MAAM,WAAW,EAAE,CAAC,EAAE,MAC3E,CACJ,CCxEA,SAASE,GAA4BC,EAAgB,CAAE,SAAAC,EAAU,OAAAC,EAAQ,KAAAC,EAAM,OAAAC,CAAO,EAAG,CACrF,IAAMC,EAAiBC,GAAqB,CACxC,OAAAJ,EACA,KAAAC,EACA,OAAAC,CACJ,CAAC,EACD,GAAI,SAAUJ,GAKiB,GAAIK,EAAe,OAASL,EAAe,KAAM,CACxE,IAAMO,EAAeF,EAAe,OAASL,EAAe,MAAQA,EAAe,IAAMA,EAAe,MAClGQ,EAAcH,EAAe,OAASL,EAAe,KAAOK,EAAe,OAASL,EAAe,MAAQK,EAAe,OAASL,EAAe,IACxJS,GAAeT,EAAe,KAAM,CAChC,aAAAO,EACA,YAAAC,CACJ,CAAC,CACL,MACG,CACH,IAAME,EAAQV,EAAe,WAAW,EAClCW,EAAMD,EAAM,aAAaL,EAAe,KAAMA,EAAe,MAAM,EACrEM,EAAM,EACND,EAAM,SAASL,EAAe,KAAMA,EAAe,MAAM,EAClDM,EAAM,GACbD,EAAM,OAAOL,EAAe,KAAMA,EAAe,MAAM,EAE3D,IAAMO,EAAYX,EAAS,aAAa,EACoBW,GAAU,gBAAgB,EAC1BA,GAAU,SAASF,EAAM,WAAW,CAAC,CACrG,CACJ,CCnCA,SAASG,GAA2BC,EAAWC,EAAW,CACtD,IAAIC,EAAmBC,EAAmBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAoBC,EAAkBC,EAAkBC,EAAmBC,EACzc,OAAOzB,EAAU,SAAWC,EAAU,UAAYC,EAAoBF,EAAU,UAAY,MAAQE,IAAsB,OAAY,OAAYA,EAAkB,OAASC,EAAoBF,EAAU,UAAY,MAAQE,IAAsB,OAAY,OAAYA,EAAkB,MAAQC,EAAqBJ,EAAU,UAAY,MAAQI,IAAuB,OAAY,OAAYA,EAAmB,OAASC,EAAqBJ,EAAU,UAAY,MAAQI,IAAuB,OAAY,OAAYA,EAAmB,MAAQC,EAAqBN,EAAU,UAAY,MAAQM,IAAuB,OAAY,OAAYA,EAAmB,aAAeC,EAAqBN,EAAU,UAAY,MAAQM,IAAuB,OAAY,OAAYA,EAAmB,YAAcC,EAAqBR,EAAU,UAAY,MAAQQ,IAAuB,OAAY,OAAYA,EAAmB,aAAeC,EAAqBR,EAAU,UAAY,MAAQQ,IAAuB,OAAY,OAAYA,EAAmB,YAAcC,EAAqBV,EAAU,UAAY,MAAQU,IAAuB,OAAY,OAAYA,EAAmB,aAAeC,EAAqBV,EAAU,UAAY,MAAQU,IAAuB,OAAY,OAAYA,EAAmB,YAAcC,EAAqBZ,EAAU,UAAY,MAAQY,IAAuB,OAAY,OAAYA,EAAmB,aAAeC,EAAqBZ,EAAU,UAAY,MAAQY,IAAuB,OAAY,OAAYA,EAAmB,YAAcC,EAAqBd,EAAU,UAAY,MAAQc,IAAuB,OAAY,OAAYA,EAAmB,WAAaC,EAAqBd,EAAU,UAAY,MAAQc,IAAuB,OAAY,OAAYA,EAAmB,UAAYC,EAAqBhB,EAAU,UAAY,MAAQgB,IAAuB,OAAY,OAAYA,EAAmB,WAAaC,EAAqBhB,EAAU,UAAY,MAAQgB,IAAuB,OAAY,OAAYA,EAAmB,UAAYC,EAAqBlB,EAAU,UAAY,MAAQkB,IAAuB,OAAY,OAAYA,EAAmB,aAAeC,EAAqBlB,EAAU,UAAY,MAAQkB,IAAuB,OAAY,OAAYA,EAAmB,YAAcC,EAAqBpB,EAAU,UAAY,MAAQoB,IAAuB,OAAY,OAAYA,EAAmB,aAAeC,EAAqBpB,EAAU,UAAY,MAAQoB,IAAuB,OAAY,OAAYA,EAAmB,YAAcC,EAAmBtB,EAAU,SAAW,MAAQsB,IAAqB,OAAY,OAAYA,EAAiB,UAAYC,EAAmBtB,EAAU,SAAW,MAAQsB,IAAqB,OAAY,OAAYA,EAAiB,SAAWC,EAAoBxB,EAAU,SAAW,MAAQwB,IAAsB,OAAY,OAAYA,EAAkB,YAAcC,EAAoBxB,EAAU,SAAW,MAAQwB,IAAsB,OAAY,OAAYA,EAAkB,OACzjG,CCaA,SAASC,GAAiBC,EAAKC,EAAKC,EAAO,CACvC,OAAID,KAAOD,EACP,OAAO,eAAeA,EAAKC,EAAK,CAC5B,MAAOC,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACd,CAAC,EAEDF,EAAIC,CAAG,EAAIC,EAERF,CACX,CAGI,IAAMG,GAAN,KAAY,CACZ,KAAKC,EAAUC,EAAuFC,EAAa,CAC/G,IAAMC,EAAe,KAAK,SACpBC,EAAa,KAAK,UAAUJ,CAAQ,EAE1C,GADA,KAAK,SAAWC,EACZ,CAACI,GAA2BF,EAAcF,CAAQ,EAClD,OAEJ,IAAMK,EAAa,KAAK,UAAUN,CAAQ,EACpCO,EAAO,KAAK,aAAa,WAAW,EACpC,CAACC,EAAOC,CAAK,EAAIC,GAAYN,EAAYE,CAAU,EACzD,MAAO,CACH,MAAO,IAAI,CACHF,IAAeE,IACfN,EAAS,gBAAgBI,EAAY,WAAYG,CAAI,EACrDC,EAAM,QAASG,GAAKX,EAAS,gBAAgBW,EAAI,aAAcJ,CAAI,CAAC,EAE5E,EACA,MAAO,IAAI,CACHH,IAAeE,IACfN,EAAS,gBAAgBM,EAAY,YAAaC,CAAI,EACtDE,EAAM,QAASE,GAAKX,EAAS,gBAAgBW,EAAI,aAAcJ,CAAI,CAAC,EAE5E,EACA,KAAM,IAAI,CACFL,IAGJF,EAAS,gBAAgBM,EAAY,YAAaC,CAAI,EACtD,KAAK,gBAAgBP,CAAQ,EACjC,CACJ,CACJ,CACA,KAAKA,EAAUY,EAAqFV,EAAa,CAC7G,IAAMW,EAAS,KAAK,QAAQ,KAAKD,CAAM,EACvC,GAAIC,IAAW,OACX,OAEJ,IAAMC,EAAS,KAAK,UAAUd,CAAQ,EACtC,KAAK,iBAAiBa,CAAM,EAAIC,EAChC,IAAMP,EAAO,KAAK,aAAa,YAAaK,EAAO,MAAM,EACnDG,EAAWC,GAAWF,CAAM,EAC9B,CAACZ,IAAgBa,GAAYf,EAAS,gBAAgBc,EAAQ,YAAaP,CAAI,KAC/E,KAAK,eAAeP,EAAUO,EAAK,MAAM,EACzCU,GAAaH,CAAM,GAEnB,CAACC,GAAYG,GAAoBN,EAAO,MAAM,IAAM,GACpDZ,EAAS,gBAAgBc,EAAQ,cAAe,KAAK,aAAa,cAAeF,EAAO,MAAM,CAAC,CAEvG,CACA,GAAGZ,EAAUY,EAAqFV,EAAa,CAC3G,IAAMW,EAAS,KAAK,QAAQ,GAAGD,CAAM,EACrC,GAAIC,IAAW,OACX,OAEJ,IAAMC,EAAS,KAAK,UAAUd,CAAQ,EACtC,GAAI,CAACgB,GAAWF,CAAM,EAAG,CACrB,GAAI,CAACZ,EAAa,CACd,IAAMiB,EAAc,KAAK,aAAa,UAAWP,EAAO,MAAM,EAC9DZ,EAAS,gBAAgBc,EAAQ,UAAWK,CAAW,EACvD,KAAK,aAAa,CACtB,CACA,IAAMC,EAAcV,GAAY,KAAK,iBAAiBG,CAAM,EAAGC,CAAM,EAAE,CAAC,EAAE,CAAC,EAC3E,GAAIM,EAAa,CACb,IAAMb,EAAO,KAAK,aAAa,QAASK,EAAO,MAAM,EACjDL,EAAK,SACLP,EAAS,gBAAgBoB,EAAab,EAAK,SAAW,EAAI,QAAU,WAAYA,CAAI,EAChFA,EAAK,SAAW,GAAKA,EAAK,SAAW,GACrCP,EAAS,gBAAgBoB,EAAa,WAAY,CAC9C,GAAG,KAAK,aAAa,WAAYR,EAAO,MAAM,EAC9C,OAAQL,EAAK,MACjB,CAAC,EAGb,CACJ,CACJ,CACA,iBAAkB,CACd,KAAK,WAAW,MAAM,CAC1B,CACA,aAAac,EAAMR,EAAQ,CACvB,IAAMN,EAAO,CACT,GAAG,KAAK,SAAS,MACrB,EACA,OAAAA,EAAK,OAASW,GAAoBL,CAAM,EACxCN,EAAK,QAAU,KAAK,QAAQ,WAAW,EACnCc,IAAS,YACTd,EAAK,OAAS,KAAK,WAAW,UAAUA,EAAK,MAAM,EAC5Cc,IAAS,UAChBd,EAAK,OAAS,KAAK,WAAW,QAAQA,EAAK,MAAM,GAC1Cc,IAAS,SAAWA,IAAS,cACpCd,EAAK,OAAS,KAAK,WAAW,WAAWA,EAAK,MAAM,GAEjDA,CACX,CACA,UAAUP,EAAU,CAChB,IAAIsB,EACJ,OAAQA,EAAwB,KAAK,SAAS,UAAY,MAAQA,IAA0B,OAAYA,EAAwBtB,EAAS,OAAO,SAAS,IAC7J,CACA,eAAeA,EAAUuB,EAAY,CACjC,IAAIC,EAAsBC,EAE1B,KAAK,UAAYC,GAAyB,CACtC,SAAU1B,EAAS,OAAO,SAC1B,OAAQ,KAAK,UAAUA,CAAQ,EAC/B,MAAOwB,EAAuB,KAAK,SAAS,SAAW,MAAQA,IAAyB,OAAY,OAAYA,EAAqB,KACrI,QAASC,EAAwB,KAAK,SAAS,SAAW,MAAQA,IAA0B,OAAY,OAAYA,EAAsB,OAC1I,WAAAF,CACJ,CAAC,CACL,CACA,gBAAgBvB,EAAU,CACtB,IAAIwB,EAAsBC,EACrB,KAAK,WAGVE,GAA4B,KAAK,UAAW,CACxC,SAAU3B,EAAS,OAAO,SAC1B,OAAQ,KAAK,UAAUA,CAAQ,EAC/B,MAAOwB,EAAuB,KAAK,SAAS,SAAW,MAAQA,IAAyB,OAAY,OAAYA,EAAqB,KACrI,QAASC,EAAwB,KAAK,SAAS,SAAW,MAAQA,IAA0B,OAAY,OAAYA,EAAsB,MAC9I,CAAC,CACL,CACA,cAAe,CACX,KAAK,UAAY,MACrB,CACA,aAAa,CACT9B,GAAiB,KAAM,WAAY,CAAC,CAAC,EACrCA,GAAiB,KAAM,UAAW,IAAIiC,EAAS,EAC/CjC,GAAiB,KAAM,YAAa,MAAS,EAC7CA,GAAiB,KAAM,mBAAoB,CAAC,CAAC,EAW7CA,GAAiB,KAAM,aAAc,IAAI,KAAM,CAC3C,WAAWkB,EAAQ,CACf,IAAMgB,EAAU,KAAK,KAAKhB,CAAM,IAAM,OAAY,OAAY,OAAO,KAAK,KAAKA,CAAM,CAAC,EAAI,EAC1F,YAAK,MAAQ,KAAK,MAAMA,CAAM,IAAM,OAAY,CAAC,EAAI,CACjD,CAACA,CAAM,EAAG,OAAO,KAAK,MAAMA,CAAM,CAAC,EAAI,CAC3C,EACOgB,CACX,CACA,UAAUhB,EAAQ,CACd,IAAIiB,EACJ,KAAK,KAAO,CACR,CAACjB,CAAM,GAAIiB,EAAqB,KAAK,MAAMjB,CAAM,KAAO,MAAQiB,IAAuB,OAAYA,EAAqB,CAC5H,EACA,IAAIC,EACJ,YAAK,MAAQ,CACT,CAAClB,CAAM,GAAIkB,EAAsB,KAAK,MAAMlB,CAAM,KAAO,MAAQkB,IAAwB,OAAYA,EAAsB,CAC/H,EACO,OAAO,KAAK,MAAMlB,CAAM,CAAC,EAAI,CACxC,CACA,QAAQA,EAAQ,CACZ,OAAO,KAAK,KAAKA,CAAM,IAAM,OAAY,OAAY,OAAO,KAAK,KAAKA,CAAM,CAAC,EAAI,CACrF,CACA,OAAQ,CACJ,KAAK,MAAQ,CAAC,CAClB,CACA,aAAa,CACTlB,GAAiB,KAAM,OAAQ,CAAC,CAAC,EACjCA,GAAiB,KAAM,QAAS,CAAC,CAAC,CACtC,CACJ,CAAG,CACP,CACJ,ECrMA,SAASqC,GAAiBC,EAAUC,EAAS,CACzC,IAAIC,EACJ,QAASA,EAAsBC,GAAmBH,EAAUC,CAAO,KAAO,MAAQC,IAAwB,OAAY,OAAYA,EAAoB,iBAAmB,MAC7K,CACA,SAASE,GAAgCH,EAAS,CAC9C,IAAMI,EAASC,EAAUL,CAAO,EAChC,QAAQM,EAAKN,EAASO,EAAO,CAAC,EAAiDD,GAAG,cAAeA,EAAKA,EAAG,cAAc,CACnHC,EAAK,KAAKD,CAAE,EACZ,IAAME,EAAgBJ,EAAO,iBAAiBE,CAAE,EAAE,cAClD,GAAIE,GAAiB,CAAC,CAClB,UACA,OACJ,EAAE,SAASA,CAAa,EACpB,MAAO,CACH,cAAAA,EACA,KAAAD,CACJ,CAER,CAEJ,CACA,IAAME,GAAqB,OAAO,+BAA+B,EACjE,SAASP,GAAmBH,EAAUC,EAAS,CAC3C,IAAMU,EAAYV,EAAQS,EAAkB,EAE5C,GAAI,EADeV,EAAS,OAAO,qBAAuBY,GAAwB,QAAU,CAACD,GAAaE,GAAWb,EAAS,OAAO,mBAAoBY,GAAwB,WAAW,GAAKD,EAAUG,GAAS,IAAI,IAAMC,GAAYf,EAAUc,GAAS,IAAI,GAAKD,GAAWb,EAAS,OAAO,mBAAoBY,GAAwB,WAAW,GAAKD,EAAUG,GAAS,OAAO,IAAMC,GAAYf,EAAUc,GAAS,OAAO,IAE/Z,OAAmEH,GAAU,OAEjF,IAAMK,EAAcZ,GAAgCH,CAAO,EAC3D,OAAAA,EAAQS,EAAkB,EAAI,CAC1B,CAACI,GAAS,IAAI,EAAGC,GAAYf,EAAUc,GAAS,IAAI,EACpD,CAACA,GAAS,OAAO,EAAGC,GAAYf,EAAUc,GAAS,OAAO,EAC1D,OAAQE,CACZ,EACOA,CACX,CACA,SAASC,GAAoBjB,EAAUC,EAAS,CAC5C,IAAMe,EAAcb,GAAmBH,EAAUC,CAAO,EACxD,GAAqEe,GAAY,gBAAmB,OAChG,MAAM,IAAI,MAAM,CACZ,wDAAwDA,EAAY,KAAK,OAAS,EAAI,WAAa,KAAK,6BACxG,GACAE,GAAUF,EAAY,IAAI,CAC9B,EAAE,KAAK;AAAA,CAAI,CAAC,CAEpB,CACA,SAASE,GAAUV,EAAM,CACrB,OAAOA,EAAK,QAAQ,EAAE,IAAI,CAACD,EAAIY,IAAI,CAC3B,GAAG,OAAOA,CAAC,EACXZ,EAAG,QACHA,EAAG,IAAM,IAAIA,EAAG,EAAE,GAClBA,EAAG,aAAa,aAAa,GAAK,WAAWA,EAAG,aAAa,aAAa,CAAC,IAC3Ea,GAAcb,CAAE,EAChBC,EAAK,OAAS,GAAKW,IAAM,GAAK,qDAC9BX,EAAK,OAAS,GAAKW,IAAMX,EAAK,OAAS,GAAK,oCAChD,EAAE,OAAO,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK;AAAA,CAAI,CAC7C,CACA,SAASY,GAAcnB,EAAS,CAC5B,IAAIoB,EACJ,IAAIC,EACJ,GAAIrB,EAAQ,aAAa,YAAY,EACjCqB,EAAQrB,EAAQ,aAAa,YAAY,UAClCA,EAAQ,aAAa,iBAAiB,EAAG,CAChD,IAAIsB,EAAmDC,EACvDF,GAASE,EAAwCvB,EAAQ,cAAc,eAAeA,EAAQ,aAAa,iBAAiB,CAAC,KAAO,MAAQuB,IAA0C,SAAyBD,EAAoDC,EAAsC,eAAiB,MAAQD,IAAsD,OAAtL,OAA8MA,EAAkD,KAAK,CAC3c,SAAWE,EAAcxB,EAAS,CAC9B,SACA,QACA,QACA,SACA,WACA,SACA,UACJ,CAAC,IAAO,GAAAoB,EAAkBpB,EAAQ,UAAY,MAAQoB,IAAoB,SAAwBA,EAAgB,QAC9GC,EAAQ,MAAM,KAAKrB,EAAQ,MAAM,EAAE,IAAKM,GAAK,CACzC,IAAImB,EACJ,OAAQA,EAAkBnB,EAAG,eAAiB,MAAQmB,IAAoB,OAAY,OAAYA,EAAgB,KAAK,CAC3H,CAAC,EAAE,KAAK,GAAG,UACJD,EAAcxB,EAAS,QAAQ,EAAG,CACzC,IAAI0B,EACJL,GAASK,EAAuB1B,EAAQ,eAAiB,MAAQ0B,IAAyB,OAAY,OAAYA,EAAqB,KAAK,CAChJ,CACA,OAAAL,EAA4DA,GAAM,QAAQ,MAAO,IAAI,EACjF,OAA2DA,GAAM,MAAM,EAAI,KAC3EA,EAAQ,GAAuDA,GAAM,UAAU,EAAG,EAAE,CAAC,UAElFA,EAAQ,UAAUA,CAAK,IAAM,EACxC,CAEA,SAAST,GAAWe,EAAMC,EAAM,CAE5B,OAAQD,EAAOC,GAAQ,CAC3B,CC3FA,SAASC,GAAiBC,EAAKC,EAAKC,EAAO,CACvC,OAAID,KAAOD,EACP,OAAO,eAAeA,EAAKC,EAAK,CAC5B,MAAOC,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACd,CAAC,EAEDF,EAAIC,CAAG,EAAIC,EAERF,CACX,CACA,IAAMG,GAAN,KAAc,CACV,KAAKC,EAAU,CACX,IAAMC,EAAS,KAAK,UAAUD,CAAQ,EAChC,CAAC,CAAEE,CAAK,EAAIC,GAAY,KAAMF,CAAM,EACpCG,EAAO,KAAK,aAAa,EAC/B,OAAAC,GAAoBL,EAAUC,CAAM,EACpCD,EAAS,gBAAgBC,EAAQ,cAAeG,CAAI,EACpDF,EAAM,QAASI,GAAKN,EAAS,gBAAgBM,EAAI,eAAgBF,CAAI,CAAC,EAC/D,IACX,CACA,KAAKJ,EAAUO,EAAU,CACrB,IAAMC,EAAe,KAAK,SACpBC,EAAa,KAAK,UAAUT,CAAQ,EAE1C,GADA,KAAK,SAAWO,EACZ,CAACG,GAA2BF,EAAcD,CAAQ,EAClD,OAEJ,IAAMI,EAAa,KAAK,UAAUX,CAAQ,EACpCI,EAAO,KAAK,aAAa,EAAE,EAC3B,CAACQ,EAAOV,CAAK,EAAIC,GAAYM,EAAYE,CAAU,EACzD,MAAO,CACH,MAAO,IAAI,CACHE,GAAiBb,EAAUS,CAAU,GACjCA,IAAeE,IACfX,EAAS,gBAAgBS,EAAY,aAAcL,CAAI,EACvDQ,EAAM,QAASN,GAAKN,EAAS,gBAAgBM,EAAI,eAAgBF,CAAI,CAAC,EAGlF,EACA,MAAO,IAAI,CACPC,GAAoBL,EAAUW,CAAU,EACpCF,IAAeE,IACfX,EAAS,gBAAgBW,EAAY,cAAeP,CAAI,EACxDF,EAAM,QAASI,GAAKN,EAAS,gBAAgBM,EAAI,eAAgBF,CAAI,CAAC,EAE9E,EACA,KAAM,IAAI,CACNJ,EAAS,gBAAgBW,EAAY,cAAeP,CAAI,CAC5D,CACJ,CACJ,CACA,KAAKJ,EAAUc,EAAS,EAAG,CACvB,GAAI,KAAK,OACL,OAEJ,IAAMb,EAAS,KAAK,UAAUD,CAAQ,EACtCK,GAAoBL,EAAUC,CAAM,EACpC,KAAK,OAAS,GACd,KAAK,YAAc,CAACD,EAAS,gBAAgBC,EAAQ,cAAe,KAAK,aAAaa,CAAM,CAAC,CACjG,CACA,GAAGd,EAAUc,EAAS,EAAG,CACrB,GAAI,CAAC,KAAK,OACN,OAEJ,IAAMb,EAAS,KAAK,UAAUD,CAAQ,EACtCK,GAAoBL,EAAUC,CAAM,EACpC,KAAK,YAAc,GACnB,KAAK,OAAS,GACdD,EAAS,gBAAgBC,EAAQ,YAAa,KAAK,aAAaa,CAAM,CAAC,CAC3E,CACA,QAAQd,EAAU,CACd,IAAMC,EAAS,KAAK,UAAUD,CAAQ,EAChC,CAACY,CAAK,EAAIT,GAAYF,EAAQ,IAAI,EAClCG,EAAO,KAAK,aAAa,EAGAS,GAAiBb,EAAUC,CAAM,IAC5DD,EAAS,gBAAgBC,EAAQ,aAAcG,CAAI,EACnDQ,EAAM,QAASN,GAAKN,EAAS,gBAAgBM,EAAI,eAAgBF,CAAI,CAAC,GAE1E,KAAK,YAAc,EACvB,CACA,UAAUJ,EAAU,CAChB,IAAIe,EACJ,OAAQA,EAAwB,KAAK,SAAS,UAAY,MAAQA,IAA0B,OAAYA,EAAwBf,EAAS,OAAO,SAAS,IAC7J,CACA,aAKIc,EAAQ,CACR,MAAO,CACH,GAAG,KAAK,SAAS,OACjB,UAAW,KAAK,UAChB,YAAa,KAAK,YAClB,UAAW,KAAK,UAChB,OAAQE,GAAoBF,CAAM,EAClC,QAAS,KAAK,QAAQ,WAAW,CACrC,CACJ,CACA,YAAY,CAAE,UAAAG,EAAW,YAAAC,EAAa,UAAAC,CAAU,EAAGC,EAAQ,CACvDzB,GAAiB,KAAM,YAAa,MAAS,EAC7CA,GAAiB,KAAM,cAAe,MAAS,EAC/CA,GAAiB,KAAM,YAAa,MAAS,EAC7CA,GAAiB,KAAM,UAAW,MAAS,EAC3CA,GAAiB,KAAM,eAAgB,EAAK,EAC5CA,GAAiB,KAAM,cAAe,EAAK,EAC3CA,GAAiB,KAAM,SAAU,EAAK,EACtCA,GAAiB,KAAM,cAAe,EAAK,EAC3CA,GAAiB,KAAM,WAAY,CAAC,CAAC,EACrC,KAAK,UAAYsB,EACjB,KAAK,YAAcC,EACnB,KAAK,UAAYC,EACjB,KAAK,aAAe,CAACA,EACrB,KAAK,QAAUC,CACnB,CACJ,ECzHA,SAASC,GAAiBC,EAAKC,EAAKC,EAAO,CACvC,OAAID,KAAOD,EACP,OAAO,eAAeA,EAAKC,EAAK,CAC5B,MAAOC,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACd,CAAC,EAEDF,EAAIC,CAAG,EAAIC,EAERF,CACX,CACA,IAAMG,GAAN,KAAkB,CACd,aAAaC,EAAQ,CACjB,OAAO,KAAK,QAAQ,IAAIA,EAAO,WAAW,EAAE,UAAUA,CAAM,CAChE,CACA,MAAM,MAAMC,EAAUD,EAAQE,EAAU,CACpC,KAAK,QAAQ,IAAIF,EAAO,WAAW,EAAE,WAAWA,CAAM,EACtD,KAAK,QAAQ,KAAKA,CAAM,EACxB,IAAMG,EAAc,KAAK,eAAeH,CAAM,EACxCI,EAAUJ,EAAO,cAAgB,QAAU,KAAK,SAAS,IAAIG,EAAaH,EAAO,YAAa,KAAK,OAAO,EAAI,KAAK,SAAS,IAAIG,CAAW,EAEjJC,EAAQ,SAAWF,EACfE,EAAQ,cAAgB,UACxB,KAAK,MAAM,SAAWF,GAEtBE,EAAQ,cAAgB,SACxBA,EAAQ,KAAKH,CAAQ,EAEzBG,EAAQ,KAAKH,EAAUD,EAAO,MAAM,EAChCI,EAAQ,cAAgB,SACxB,KAAK,MAAM,KAAKH,EAAUD,EAAQI,EAAQ,WAAW,CAE7D,CACA,MAAM,KAAKH,EAAUE,EAAaD,EAAU,CACxC,IAAME,EAAU,KAAK,SAAS,IAAID,CAAW,EAKvCE,EAAcD,EAAQ,KAAKH,EAAUC,CAAQ,EAC7CI,EAAYF,EAAQ,cAAgB,QAAU,OAAY,KAAK,MAAM,KAAKH,EAAUC,EAAUE,EAAQ,WAAW,EACvDC,GAAY,MAAM,EACtBC,GAAU,MAAM,EACZD,GAAY,MAAM,EACtBC,GAAU,MAAM,EACZD,GAAY,KAAK,EACrBC,GAAU,KAAK,CAC/E,CACA,MAAM,QAAQL,EAAUD,EAAQE,EAAU,CACtC,IAAMK,EAAS,KAAK,QAAQ,IAAIP,EAAO,WAAW,EAClDO,EAAO,cAAcP,CAAM,EAC3B,KAAK,QAAQ,GAAGA,CAAM,EACtB,IAAMI,EAAU,KAAK,SAAS,IAAI,KAAK,eAAeJ,CAAM,CAAC,EACvDQ,EAAcJ,EAAQ,YAY5B,GAVAA,EAAQ,SAAWF,EACfE,EAAQ,cAAgB,UACxB,KAAK,MAAM,SAAWF,GAEtBK,EAAO,eAAiB,GACxBH,EAAQ,GAAGH,EAAUD,EAAO,MAAM,EAElCI,EAAQ,cAAgB,SACxBA,EAAQ,QAAQH,CAAQ,EAExBG,EAAQ,cAAgB,SAAW,CAACA,EAAQ,aAAc,CAC1D,IAAME,EAAY,KAAK,MAAM,KAAKL,EAAUC,EAAUM,CAAW,EACLF,GAAU,MAAM,EAChBA,GAAU,MAAM,EAChBA,GAAU,KAAK,EAC3E,KAAK,MAAM,KAAKL,EAAUD,EAAQQ,CAAW,CACjD,CACA,GAAI,CAACJ,EAAQ,aAAc,CACvB,IAAME,EAAY,KAAK,MAAM,KAAKL,EAAUC,EAAUM,CAAW,EACLF,GAAU,MAAM,EAChBA,GAAU,MAAM,EAChBA,GAAU,KAAK,EAC3E,KAAK,MAAM,GAAGL,EAAUD,EAAQQ,CAAW,CAC/C,CACJ,CACA,eAAeR,EAAQ,CACnB,OAAOA,EAAO,cAAgB,QAAUA,EAAO,KAAOA,EAAO,WACjE,CACA,oBAAoBG,EAAa,CAC7B,OAAO,KAAK,SAAS,IAAIA,CAAW,EAAI,KAAK,SAAS,IAAIA,CAAW,EAAE,SAAW,MACtF,CACA,iBAAkB,CACd,KAAK,MAAM,gBAAgB,CAC/B,CACA,eAAeF,EAAU,CACrB,IAAIQ,EACJ,OAAQA,EAA8B,KAAK,MAAM,SAAS,UAAY,MAAQA,IAAgC,OAAYA,EAA8BR,EAAS,OAAO,SAAS,IACrL,CACA,iBAAiBC,EAAU,CACvB,KAAK,MAAM,SAAWA,EACtB,KAAK,SAAS,IAAI,OAAO,EAAE,SAAWA,CAC1C,CACA,YAAYQ,EAAO,CACff,GAAiB,KAAM,SAAU,MAAS,EAC1CA,GAAiB,KAAM,QAAS,MAAS,EACzCA,GAAiB,KAAM,UAAW,MAAS,EAC3CA,GAAiB,KAAM,UAAW,IAAI,KAAM,CACxC,IAAIgB,EAAG,CACH,IAAIC,EAAgBC,EAChBC,EACJ,OAAQA,GAAKF,EAAiB,KAAK,UAAUC,EAAKF,CAAC,KAAO,MAAQG,IAAM,OAAYA,EAAIF,EAAeC,CAAE,EAAI,IAAIE,EACrH,CACA,aAAa,CACTpB,GAAiB,KAAM,WAAY,CAAC,CAAC,CACzC,CACJ,CAAG,EACHA,GAAiB,KAAM,WAAY,IAAI,KAAM,CACzC,IAAIQ,EAAaa,EAAaC,EAAS,CACnC,IAAMC,EAAYF,IAAgB,SAAW,CAAC,OAAO,OAAO,KAAK,QAAQ,EAAE,KAAMG,GAAIA,EAAE,cAAgB,SAAW,CAACA,EAAE,WAAW,EAChI,OAAKD,GACD,OAAO,OAAO,KAAK,QAAQ,EAAE,QAASC,GAAI,CAClCA,EAAE,cAAgBH,GAAe,CAACG,EAAE,cACpCA,EAAE,aAAe,GAEzB,CAAC,EAEL,KAAK,SAAShB,CAAW,EAAI,IAAIiB,GAAQ,CACrC,UAAW,KAAK,SAChB,YAAAJ,EACA,UAAAE,CACJ,EAAGD,CAAO,EACH,KAAK,SAASd,CAAW,CACpC,CACA,IAAIA,EAAa,CACb,GAAI,CAAC,KAAK,IAAIA,CAAW,EACrB,MAAM,IAAI,MAAM,6BAA6BA,CAAW,yBAAyB,EAErF,OAAO,KAAK,SAASA,CAAW,CACpC,CACA,IAAIA,EAAa,CACb,OAAOA,KAAe,KAAK,QAC/B,CACA,aAAa,CACTR,GAAiB,KAAM,WAAY,CAAC,CAAC,EACrCA,GAAiB,KAAM,SAAU,CAAC,CACtC,CACJ,CAAG,EACH,KAAK,OAASe,EACd,KAAK,QAAU,IAAIW,GACnB,KAAK,MAAQ,IAAIC,GACjB,KAAK,SAAS,IAAI,QAAS,QAAS,KAAK,OAAO,CACpD,CACJ,ECvJA,SAASC,GAAiBC,EAAKC,EAAKC,EAAO,CACvC,OAAID,KAAOD,EACP,OAAO,eAAeA,EAAKC,EAAK,CAC5B,MAAOC,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACd,CAAC,EAEDF,EAAIC,CAAG,EAAIC,EAERF,CACX,CAGI,IAAMG,GAAN,KAAa,CACb,qBAAsB,CAClB,MAAO,CACH,OAAQ,KAAK,SAAS,UAAU,IAChC,QAAS,KAAK,SAAS,UAAU,QACjC,QAAS,KAAK,SAAS,UAAU,KACjC,SAAU,KAAK,SAAS,UAAU,MAClC,iBAAkB,KAAK,SAAS,UAAU,SAC1C,iBAAkB,KAAK,SAAS,UAAU,SAC1C,WAAY,KAAK,SAAS,UAAU,GACpC,eAAgB,KAAK,SAAS,UAAU,OACxC,gBAAiB,KAAK,SAAS,UAAU,QACzC,mBAAoB,KAAK,SAAS,UAAU,WAC5C,eAAgB,KAAK,SAAS,UAAU,OACxC,mBAAoB,KAAK,SAAS,UAAU,UAChD,CACJ,CACA,aAAa,CACTJ,GAAiB,KAAM,WAAY,IAAIK,GAAa,IAAI,CAAC,EACzDL,GAAiB,KAAM,UAAW,IAAIM,GAAY,IAAI,CAAC,CAC3D,CACJ,ECvCA,eAAeC,GAAMC,EAAS,CAC1B,IAAMC,EAAY,CAAC,EACnB,OAAK,KAAK,OAAO,WACbA,EAAU,KAAK,CACX,OAAQD,CACZ,CAAC,EAELC,EAAU,KAAK,CACX,KAAM,cACN,OAAQD,CACZ,CAAC,EACM,KAAK,QAAQC,CAAS,CACjC,CACA,eAAeC,GAASF,EAAS,CAC7B,OAAO,KAAK,QAAQ,CAChB,CACI,OAAQA,CACZ,EACA,wBACJ,CAAC,CACL,CACA,eAAeG,GAAYH,EAAS,CAChC,OAAO,KAAK,QAAQ,CAChB,CACI,OAAQA,CACZ,EACA,mCACJ,CAAC,CACL,CCzBA,eAAeI,GAAMC,EAAS,CAC1B,OAAO,KAAK,QAAQ,CAChB,OAAQA,CACZ,CAAC,CACL,CACA,eAAeC,GAAQD,EAAS,CAC5B,OAAAE,GAAoB,KAAM,KAAK,OAAO,QAAQ,eAAe,IAAI,CAAC,EAC3D,KAAK,QAAQ,CAChB,OAAQF,EAAQ,cAAc,IAClC,CAAC,CACL,CCbA,eAAeG,GAAI,CAAE,MAAAC,CAAM,EAAI,CAAC,EAAG,CAC/B,OAAO,KAAK,SAASA,IAAU,GAAO,wBAA0BA,IAAU,GAAQ,iCAAmC,OAAO,CAChI,CCFA,IAAIC,GAA4B,SAASA,EAAa,CAClD,OAAAA,EAAY,GAAG,EAAI,IACnBA,EAAY,GAAG,EAAI,IACZA,CACX,EAAEA,IAAe,CAAC,CAAC,EAWf,SAASC,GAAmBC,EAAMC,EAAS,CAC3C,IAAIC,EAAM,EACJC,EAAeH,EAAKE,CAAG,IAAKJ,GAAcE,EAAKE,CAAG,EAAI,GAC5DA,GAAOC,EAAa,OAEpB,IAAMC,EADgB,IAAI,OAAO,MAAMD,CAAY,KAAK,EAAE,KAAKH,CAAI,EACtC,GAAKG,EAClC,MAAO,CACH,KAAAC,EACA,GAAGA,IAAS,GAAKC,GAAkBL,EAAME,EAAKD,CAAO,EAAIK,GAAQN,EAAME,EAAKE,EAAMH,CAAO,CAC7F,CACJ,CACA,SAASI,GAAkBL,EAAME,EAAKD,EAAS,CAC3C,IAAMM,EAAaP,EAAKE,CAAG,EAC3B,OAAAM,GAAiBD,EAAYP,EAAME,EAAKD,CAAO,EAC/CC,GAAOK,EAAW,OACX,CACH,eAAgBL,EAChB,WAAAK,EACA,gBAAiB,GACjB,YAAa,GACb,OAAQ,CACZ,CACJ,CACA,SAASD,GAAQN,EAAME,EAAKC,EAAcF,EAAS,CAC/C,IAAIQ,EAAmBC,EACvB,IAAMC,EAA0BX,EAAKE,CAAG,IAAM,IAAM,IAAM,GAC1DA,GAAOS,EAAwB,OAC/B,IAAMC,EAAoBT,IAAiB,KAAOH,EAAKE,CAAG,IAAM,KAChEA,GAAO,OAAOU,CAAiB,EAC/B,IAAML,EAAaK,EAAoBZ,EAAKE,CAAG,GAAKO,EAAoBT,EAAK,MAAME,CAAG,EAAE,MAAMC,IAAiB,IAAM,eAAiB,MAAM,KAAO,MAAQM,IAAsB,OAAY,OAAYA,EAAkB,CAAC,EAC5ND,GAAiBD,EAAYP,EAAME,EAAKD,CAAO,EAC/CC,GAAOK,EAAW,OAClB,IAAIM,EACJ,IAAMC,GAAkBD,GAAsBH,EAAqBV,EAAK,MAAME,CAAG,EAAE,MAAM,OAAO,KAAO,MAAQQ,IAAuB,OAAY,OAAYA,EAAmB,CAAC,KAAO,MAAQG,IAAuB,OAAYA,EAAqB,GACzPX,GAAOY,EAAe,OACtB,IAAMC,EAAsBf,EAAKE,CAAG,IAAM,KAAO,CAACY,GAAkBd,EAAKE,CAAG,IAAM,IAAMF,EAAKE,CAAG,EAAI,GACpGA,GAAOa,EAAoB,OAC3B,IAAMC,EAAqBlB,GAAYK,CAAY,EAC7Cc,EAAajB,EAAKE,CAAG,IAAMc,EAAqBA,EAAqB,GAC3E,GAAI,CAACC,EACD,MAAM,IAAI,MAAMC,GAAgB,CAC5B,CAACJ,GAAkB,kBACnB,CAACC,GAAuB,mBACxB,IAAIC,CAAkB,GAC1B,EAAE,OAAO,OAAO,EAAE,KAAK,MAAM,EAAGhB,EAAKE,CAAG,EAAGF,EAAMC,CAAO,CAAC,EAE7D,OAAAC,GAAOe,EAAW,OACX,CACH,eAAgBf,EAChB,WAAAK,EACA,gBAAiB,CAAC,CAACI,EACnB,OAAQG,EAAiB,KAAK,IAAI,OAAOA,EAAe,OAAO,CAAC,CAAC,EAAG,CAAC,EAAI,EACzE,YAAaK,GAAeJ,EAAqBD,CAAc,CACnE,CACJ,CACA,SAASN,GAAiBD,EAAYP,EAAME,EAAKD,EAAS,CACtD,GAAI,CAACM,EACD,MAAM,IAAI,MAAMW,GAAgB,iBAAkBlB,EAAKE,CAAG,EAAGF,EAAMC,CAAO,CAAC,CAEnF,CACA,SAASkB,GAAeJ,EAAqBD,EAAgB,CACzD,GAAIC,EACA,OAAOA,IAAwB,IAEnC,GAAID,EACA,MAAO,EAEf,CACA,SAASI,GAAgBE,EAAUC,EAAOrB,EAAMC,EAAS,CACrD,MAAO,YAAYmB,CAAQ,eAAeC,GAAgD,EAAE,SAASrB,CAAI;AAAA,UACnGC,IAAY,UAAY,+FAAiG,sDAAsD;AAAA,gEAEzL,CC3EI,SAASqB,GAAYC,EAAaC,EAAM,CACxC,IAAMC,EAAO,CAAC,EACd,EAAG,CACC,GAAM,CAAE,KAAAC,EAAM,WAAAC,EAAY,eAAAC,EAAgB,gBAAAC,EAAiB,YAAAC,EAAc,GAAM,OAAAC,CAAO,EAAIC,GAAmBR,EAAM,UAAU,EAC7H,IAAIS,EACJ,IAAMC,GAAUD,EAAoBV,EAAY,KAAMY,GAAM,CACxD,GAAIT,IAAS,IAAK,CACd,IAAIU,EACJ,QAASA,EAAYD,EAAI,QAAU,MAAQC,IAAc,OAAY,OAAYA,EAAU,YAAY,KAAOT,EAAW,YAAY,CACzI,SAAWD,IAAS,IAAK,CACrB,IAAIW,EACJ,QAASA,EAAWF,EAAI,OAAS,MAAQE,IAAa,OAAY,OAAYA,EAAS,YAAY,KAAOV,EAAW,YAAY,CACrI,CACA,OAAOQ,EAAI,MAAQR,CACvB,CAAC,KAAO,MAAQM,IAAsB,OAAYA,EAAoB,CAClE,IAAK,UACL,KAAM,UACN,CAACP,IAAS,IAAM,OAAS,KAAK,EAAGC,CACrC,EACAF,EAAK,KAAK,CACN,OAAAS,EACA,gBAAAL,EACA,YAAAC,EACA,OAAAC,CACJ,CAAC,EACDP,EAAOA,EAAK,MAAMI,CAAc,CACpC,OAAQJ,GACR,OAAOC,CACX,CCpCA,eAAea,GAASC,EAAM,CAC1B,IAAMC,EAAUC,GAAY,KAAK,OAAO,YAAaF,CAAI,EACzD,QAAQG,EAAI,EAAGA,EAAIF,EAAQ,OAAQE,IAC/B,MAAMC,GAAK,KAAK,MAAM,EACtB,MAAMC,GAAe,KAAMJ,EAAQE,CAAC,CAAC,CAE7C,CACA,eAAeE,GAAeC,EAAU,CAAE,OAAAC,EAAQ,gBAAAC,EAAiB,YAAAC,EAAa,OAAAC,CAAO,EAAG,CACtF,GAAM,CAAE,OAAAC,CAAO,EAAIL,EAKnB,GAHIK,EAAO,SAAS,aAAaJ,CAAM,GACnC,MAAMI,EAAO,SAAS,MAAML,EAAUC,CAAM,EAE5C,CAACC,EAAiB,CAClB,QAAQL,EAAI,EAAGA,GAAKO,EAAQP,IACxB,MAAMQ,EAAO,SAAS,QAAQL,EAAUC,CAAM,EAC1CJ,EAAIO,GACJ,MAAMN,GAAKE,EAAS,MAAM,EAI9BG,GACA,MAAME,EAAO,SAAS,MAAML,EAAUC,CAAM,CAEpD,CACJ,CACA,eAAeK,GAAeN,EAAU,CACpC,QAAWO,KAAKP,EAAS,OAAO,SAAS,eAAe,EACpD,MAAMA,EAAS,OAAO,SAAS,MAAMA,EAAUO,CAAC,CAExD,CC5BA,SAASC,GAAcC,EAAQ,CAC3B,IAAMC,EAAOC,EAAgBF,CAAM,EAAI,CACnC,aAAcG,GAA2BH,CAAM,CACnD,EAAI,CACA,aAAc,OAAOA,EAAO,cAAc,aAAa,CAAC,CAC5D,EACMI,EAAKC,GAAmBC,EAAUN,CAAM,CAAC,EAC/C,QAAUO,KAAQN,EACVA,EAAKM,CAAI,GACTH,EAAG,QAAQG,EAAMN,EAAKM,CAAI,CAAC,EAGnC,OAAOH,CACX,CACA,SAASD,GAA2BH,EAAQ,CACxC,IAAMQ,EAAMC,GAAeT,CAAM,EAEjC,OADYU,EAAWV,CAAM,EAClB,UAAUQ,EAAI,YAAaA,EAAI,SAAS,CACvD,CCrBA,eAAeG,IAAO,CAClB,IAAMC,EAAM,KAAK,OAAO,SACxB,IAAIC,EACJ,IAAMC,GAAUD,EAAqBD,EAAI,iBAAmB,MAAQC,IAAuB,OAAYA,EAAgDD,EAAI,KACrJG,EAAgBC,GAAcF,CAAM,EAC1C,GAAIC,EAAc,MAAM,SAAW,EAGnC,OAAI,KAAK,gBAAgBD,EAAQ,OAAQ,CACrC,cAAAC,CACJ,CAAC,GAAK,KAAK,OAAO,kBACd,MAAME,GAA6BL,EAAKG,CAAa,EAElDA,CACX,CCdA,eAAeG,IAAM,CACjB,IAAMC,EAAM,KAAK,OAAO,SACxB,IAAIC,EACJ,IAAMC,GAAUD,EAAqBD,EAAI,iBAAmB,MAAQC,IAAuB,OAAYA,EAAgDD,EAAI,KACrJG,EAAgBC,GAAcF,CAAM,EAC1C,GAAIC,EAAc,MAAM,SAAW,EAGnC,OAAI,KAAK,gBAAgBD,EAAQ,MAAO,CACpC,cAAAC,CACJ,CAAC,GAAK,KAAK,OAAO,kBACd,MAAME,GAA6BH,EAAO,cAAeC,CAAa,EAEnEA,CACX,CCbA,eAAeG,GAAMC,EAAe,CAChC,IAAMC,EAAM,KAAK,OAAO,SACxB,IAAIC,EACJ,IAAMC,GAAUD,EAAqBD,EAAI,iBAAmB,MAAQC,IAAuB,OAAYA,EAAgDD,EAAI,KAC3J,IAAIG,EACJ,IAAMC,GAAgBD,EAAO,OAAOJ,GAAkB,SAAWM,GAA2BL,EAAKD,CAAa,EAAIA,KAAmB,MAAQI,IAAS,OAAYA,EAAO,MAAMG,GAA8BN,CAAG,EAAE,MAAM,IAAI,CACxN,MAAM,IAAI,MAAM,0FAA0F,CAC9G,CAAC,EACD,KAAK,gBAAgBE,EAAQ,QAAS,CAClC,cAAeE,CACnB,CAAC,CACL,CACA,SAASC,GAA2BL,EAAKO,EAAM,CAC3C,IAAMC,EAAKC,GAAmBC,EAAUV,CAAG,CAAC,EAC5C,OAAAQ,EAAG,QAAQ,OAAQD,CAAI,EAChBC,CACX,CCjBA,SAASG,GAAYC,EAAYC,EAAM,CACnC,IAAMC,EAAO,CAAC,EACd,EAAG,CACC,GAAM,CAAE,WAAAC,EAAY,eAAAC,EAAgB,gBAAAC,EAAiB,YAAAC,EAAc,EAAK,EAAIC,GAAmBN,EAAM,SAAS,EACxGO,EAASR,EAAW,KAAMS,GAAIA,EAAE,OAASN,CAAU,EACrDK,GACAN,EAAK,KAAK,CACN,OAAAM,EACA,gBAAAH,EACA,YAAAC,CACJ,CAAC,EAELL,EAAOA,EAAK,MAAMG,CAAc,CACpC,OAAQH,GACR,OAAOC,CACX,CCbA,eAAeQ,GAAQC,EAAO,CAC1B,GAAM,CAAE,WAAAC,CAAW,EAAI,KAAK,OACtBC,EAAU,CAAC,GAChB,MAAM,QAAQF,CAAK,EAAIA,EAAQ,CAC5BA,CACJ,GAAG,QAASG,GAAc,CAClB,OAAOA,GAAgB,SACvBD,EAAQ,KAAK,GAAGE,GAAYH,EAAYE,CAAW,CAAC,EAC7C,SAAUA,EACjBD,EAAQ,KAAK,GAAGE,GAAYH,EAAYE,EAAY,IAAI,EAAE,IAAK,IAAK,CAC5D,GAAGA,EACH,GAAG,CACP,EAAE,CAAC,EAEPD,EAAQ,KAAKC,CAAW,CAEhC,CAAC,EACD,QAAQE,EAAI,EAAGA,EAAIH,EAAQ,OAAQG,IAC/B,MAAMC,GAAK,KAAK,MAAM,EACtB,MAAMC,GAAc,KAAML,EAAQG,CAAC,CAAC,EAExC,KAAK,OAAO,QAAQ,gBAAgB,CACxC,CACA,eAAeE,GAAcC,EAAUC,EAAQ,CAC3C,IAAIC,EAAyBC,EAC7B,IAAMC,EAAc,gBAAiBH,GAAUA,EAAO,YAAcA,EAAO,YAAc,WAAYA,EAASD,EAAS,OAAO,QAAQ,eAAeC,EAAO,MAAM,EAAI,QAChKI,EAAmBL,EAAS,OAAO,QAAQ,oBAAoBI,CAAW,EAChF,IAAIE,EAAgBC,EAAgBC,EAAcC,EAClD,IAAMC,EAAW,CACb,QAASJ,EAAiBL,EAAO,UAAY,MAAQK,IAAmB,OAAYA,EAAiBK,GAAcX,EAAUK,CAAgB,EAC7I,QAASE,EAAiBN,EAAO,UAAY,MAAQM,IAAmB,OAAYA,EAA2FF,GAAiB,OAChM,MAAO,CACH,MAAOG,EAAeP,EAAO,QAAU,MAAQO,IAAiB,OAAYA,EAAeI,GAAiBX,CAAM,GAAgBI,GAAqB,OAAsDH,EAA0BG,EAAiB,SAAW,MAAQH,IAA4B,OAAjL,OAAyMA,EAAwB,KACvV,QAASO,EAAiBR,EAAO,UAAY,MAAQQ,IAAmB,OAAYA,EAAiBG,GAAiBX,CAAM,GAAgBI,GAAqB,OAAsDF,EAA2BE,EAAiB,SAAW,MAAQF,IAA6B,OAAnL,OAA2MA,EAAyB,MACxW,CACJ,EACI,WAAYF,GACRD,EAAS,OAAO,QAAQ,aAAaC,EAAO,MAAM,IAClDY,GAAYb,EAAUc,GAAS,OAAO,EACtC,MAAMd,EAAS,OAAO,QAAQ,QAAQA,EAAUC,EAAO,OAAQS,CAAQ,GAEtET,EAAO,kBACRY,GAAYb,EAAUc,GAAS,OAAO,EACtC,MAAMd,EAAS,OAAO,QAAQ,MAAMA,EAAUC,EAAO,OAAQS,CAAQ,EACjET,EAAO,cACPY,GAAYb,EAAUc,GAAS,OAAO,EACtC,MAAMd,EAAS,OAAO,QAAQ,QAAQA,EAAUC,EAAO,OAAQS,CAAQ,MAI/EG,GAAYb,EAAUc,GAAS,OAAO,EACtC,MAAMd,EAAS,OAAO,QAAQ,KAAKA,EAAUI,EAAaM,CAAQ,EAE1E,CACA,SAASE,GAAiBX,EAAQ,CAC9B,IAAIK,EAAgBS,EACpB,MAAO,CAAC,GAAGA,GAAQT,EAAiBL,EAAO,UAAY,MAAQK,IAAmB,OAAYA,EAAiBL,EAAO,QAAU,MAAQc,IAAS,OAAYA,EAAOd,EAAO,SAAW,OAC1L,CACA,SAASU,GAAcX,EAAUU,EAAU,CACvC,GAAI,CAACA,EACD,MAAM,IAAI,MAAM,mEAAmE,EAEvF,IAAIM,EACJ,OAAQA,EAAmBN,EAAS,UAAY,MAAQM,IAAqB,OAAYA,EAAmBhB,EAAS,OAAO,SAAS,IACzI,CCvDA,eAAeiB,GAAMC,EAAS,CAC1B,GAAI,CAACC,GAAWD,CAAO,GAAKE,GAAWF,CAAO,EAC1C,MAAM,IAAI,MAAM,kDAAkD,EAGtE,GADAG,GAAaH,CAAO,EAChBA,EAAQ,cAAc,gBAAkBA,EACxC,MAAM,IAAI,MAAM,iDAAiD,EAGrE,GADAI,GAAUJ,CAAO,EACb,CAACK,GAAcL,CAAO,EACtB,MAAM,IAAI,MAAM,0DAA0D,EAE9EM,GAAM,KAAMN,EAAS,GAAI,uBAAuB,CACpD,CCbA,eAAeO,GAAcC,EAAQC,EAAQ,CACzC,OAAOC,GAAkB,KAAK,KAAM,GAAMF,EAAQC,CAAM,CAC5D,CACA,eAAeE,GAAgBH,EAAQC,EAAQ,CAC3C,OAAOC,GAAkB,KAAK,KAAM,GAAOF,EAAQC,CAAM,CAC7D,CACA,eAAeC,GAAkBE,EAAUJ,EAAQC,EAAQ,CACvD,GAAI,CAACG,GAAY,CAACJ,EAAO,SACrB,MAAMK,EAAU,EAAE,gBAAgB,4GAA6GL,CAAM,EAEzJ,IAAMM,EAAW,MAAM,QAAQL,CAAM,EAAIA,EAAS,CAC9CA,CACJ,EACMM,EAAa,MAAM,KAAKP,EAAO,iBAAiB,yBAAyB,CAAC,EAC1EQ,EAAkBF,EAAS,IAAKG,GAAM,CACxC,GAAI,OAAOA,GAAQ,UAAYF,EAAW,SAASE,CAAG,EAClD,OAAOA,EACJ,CACH,IAAMC,EAAiBH,EAAW,KAAMI,GAAIA,EAAE,QAAUF,GAAOE,EAAE,YAAcF,CAAG,EAClF,GAAIC,EACA,OAAOA,EAEP,MAAML,EAAU,EAAE,gBAAgB,UAAU,OAAOI,CAAG,CAAC,yBAA0BT,CAAM,CAE/F,CACJ,CAAC,EAAE,OAAQY,GAAS,CAACC,GAAWD,CAAM,CAAC,EACvC,GAAIC,GAAWb,CAAM,GAAK,CAACQ,EAAgB,OAAQ,OACnD,IAAMM,EAAgBF,GAAS,CAC3BA,EAAO,SAAWR,EAClB,KAAK,gBAAgBJ,EAAQ,QAAS,CAClC,QAAS,GACT,WAAY,GACZ,SAAU,EACd,CAAC,EACD,KAAK,gBAAgBA,EAAQ,QAAQ,CACzC,EACA,GAAIe,EAAcf,EAAQ,QAAQ,EAC9B,GAAIA,EAAO,SACP,QAAWY,KAAUJ,EAAgB,CACjC,IAAMQ,EAAoB,KAAK,OAAO,qBAAuB,EAAI,GAAOC,GAAiB,KAAML,CAAM,EAEjGI,IACA,KAAK,gBAAgBJ,EAAQ,aAAa,EAC1C,KAAK,gBAAgBZ,EAAQ,cAAc,EAC3C,KAAK,gBAAgBY,EAAQ,WAAW,EACxC,KAAK,gBAAgBZ,EAAQ,YAAY,EACzC,KAAK,gBAAgBY,EAAQ,aAAa,EAC1C,KAAK,gBAAgBA,EAAQ,WAAW,EACxC,KAAK,gBAAgBA,EAAQ,aAAa,EAC1C,KAAK,gBAAgBA,EAAQ,WAAW,GAE5CM,GAAalB,CAAM,EACfgB,IACA,KAAK,gBAAgBJ,EAAQ,WAAW,EACxC,KAAK,gBAAgBA,EAAQ,SAAS,GAE1CE,EAAaF,CAAM,EACfI,GACA,KAAK,gBAAgBJ,EAAQ,OAAO,EAExC,MAAMO,GAAK,KAAK,MAAM,CAC1B,SACOX,EAAgB,SAAW,EAAG,CACrC,IAAMQ,EAAoB,KAAK,OAAO,qBAAuB,EAAI,GAAOC,GAAiB,KAAMjB,CAAM,EAEjGgB,EACA,MAAM,KAAK,MAAMhB,CAAM,EAEvBkB,GAAalB,CAAM,EAEvBc,EAAaN,EAAgB,CAAC,CAAC,EAC3BQ,IAGA,KAAK,gBAAgBhB,EAAQ,aAAa,EAC1C,KAAK,gBAAgBA,EAAQ,cAAc,EAC3C,KAAK,gBAAgBA,EAAQ,WAAW,EACxC,KAAK,gBAAgBA,EAAQ,YAAY,EACzC,KAAK,gBAAgBA,EAAQ,WAAW,EACxC,KAAK,gBAAgBA,EAAQ,SAAS,EACtC,KAAK,gBAAgBA,EAAQ,OAAO,GAExC,MAAMmB,GAAK,KAAK,MAAM,CAC1B,KACI,OAAMd,EAAU,EAAE,gBAAgB,0DAA2DL,CAAM,UAEhGA,EAAO,aAAa,MAAM,IAAM,UACvC,QAAWY,KAAUJ,EACjB,MAAM,KAAK,MAAMI,CAAM,EACvB,MAAM,KAAK,QAAQA,CAAM,MAG7B,OAAMP,EAAU,EAAE,gBAAgB,iFAAkFL,CAAM,CAElI,CCxGA,eAAeoB,GAAKC,EAASC,EAAM,CAAE,UAAAC,EAAY,KAAK,OAAO,UAAW,cAAAC,EAAgB,KAAK,OAAO,cAAe,sBAAAC,EAAuB,oBAAAC,CAAoB,EAAI,CAAC,EAAG,CAG9JL,EAAQ,WACPE,GACD,MAAM,KAAK,MAAMF,CAAO,EAExBI,IAA0B,QAC1BE,GAAkBN,EAASI,EAAuBC,GAA0FD,CAAqB,EAErK,MAAM,KAAK,SAASH,CAAI,EACnBE,GACD,MAAMI,GAAe,IAAI,EAEjC,CCfA,IAAMC,GAAY,OAAO,uCAAuC,EAChE,SAASC,GAAgBC,EAAKC,EAAMC,EAAY,CACxCA,EACA,OAAO,eAAeF,EAAKC,EAAMC,CAAU,EAG3C,OAAOF,EAAIC,CAAI,CAEvB,CACA,SAASE,GAASC,EAAIC,EAAO,CACzB,IAAIC,GACHA,EAAgBF,EAAGN,EAAS,KAAO,MAAQQ,IAAkB,QAAwBA,EAAc,QAAQ,EAC5G,IAAMC,EAAY,OAAO,yBAAyBH,EAAI,MAAM,EACtDI,EAAa,OAAO,yBAAyBJ,EAAI,OAAO,EACxDK,EAAa,OAAO,yBAAyBL,EAAI,OAAO,EAC9D,SAASM,GAAU,CACfX,GAAgBK,EAAI,OAAQG,CAAS,EACrCR,GAAgBK,EAAI,QAASI,CAAU,EACvCT,GAAgBK,EAAI,QAASK,CAAU,CAC3C,CACAL,EAAGN,EAAS,EAAI,CACZ,QAAAY,CACJ,EACA,OAAO,iBAAiBN,EAAI,CACxB,MAAO,CACH,aAAc,GACd,IAAK,IAAIC,CACb,EACA,MAAO,CACH,aAAc,GACd,IAAK,IAAIA,EAAM,OAAS,iBAAiBA,EAAM,CAAC,EAAE,IAAI,GAAK,GAC3D,IAAKM,EAAG,CACJ,GAAIA,IAAM,GACND,EAAQ,MACL,CACH,IAAIE,EACJJ,GAAe,OAAgDI,EAAkBJ,EAAW,OAAS,MAAQI,IAAoB,QAAwBA,EAAgB,KAAKR,EAAIO,CAAC,CACvL,CACJ,CACJ,EACA,KAAM,CACF,aAAc,GACd,IAAK,IAAI,OACT,IAAKA,EAAG,CACAA,IAAM,SACND,EAAQ,EACRN,EAAG,KAAOO,EAElB,CACJ,CACJ,CAAC,CACL,CC/CA,eAAeE,GAAOC,EAASC,EAAa,CACxC,IAAMC,EAAQC,EAAcH,EAAS,OAAO,EAAIA,EAAQ,QAAUA,EAClE,GAAI,CAACE,GAAS,CAACC,EAAcD,EAAO,QAAS,CACzC,KAAM,MACV,CAAC,EACG,MAAM,IAAI,UAAU,OAAOA,IAAUF,EAAU,QAAU,YAAY,IAAwDE,GAAM,OAAO,uCAAuC,EAErL,GAAIE,GAAWJ,CAAO,EAAG,OACzB,IAAMK,GAAS,MAAM,QAAQJ,CAAW,EAAIA,EAAc,CACtDA,CACJ,GAAG,OAAQK,GAAO,CAAC,KAAK,OAAO,aAAeC,GAAiBD,EAAMJ,EAAM,MAAM,CAAC,EAAE,MAAM,EAAGA,EAAM,SAAW,OAAY,CAAC,EACrHM,EAAa,IAAI,CACnB,IAAIC,EAEAJ,EAAM,WAAaI,EAAeP,EAAM,SAAW,MAAQO,IAAiB,OAAY,OAAYA,EAAa,SAAWJ,EAAM,MAAM,CAACK,EAAGC,IAAI,CAChJ,IAAIF,EACJ,OAAOC,MAAQD,EAAeP,EAAM,SAAW,MAAQO,IAAiB,OAAY,OAAYA,EAAa,KAAKE,CAAC,EACvH,CAAC,IAGDC,GAASV,EAAOW,GAAeC,EAAUd,CAAO,EAAGK,CAAK,CAAC,EACzD,KAAK,gBAAgBH,EAAO,OAAO,EACnC,KAAK,gBAAgBA,EAAO,QAAQ,EACxC,EACAA,EAAM,iBAAiB,aAAcM,CAAU,EAC/C,MAAM,KAAK,MAAMR,CAAO,EACxBE,EAAM,oBAAoB,aAAcM,CAAU,CACtD,CAEA,SAASO,GAAUC,EAAY,CAC3B,OAAOA,EAAW,YAAY,EAAE,QAAQ,gBAAiB,QAAQ,CACrE,CACA,SAAST,GAAiBD,EAAMW,EAAQ,CACpC,GAAI,CAACA,EACD,MAAO,GAEX,IAAMC,EAAY,CACd,UACA,UACA,SACJ,EACA,OAAOH,GAAUE,CAAM,EAAE,KAAK,EAAE,MAAM,SAAS,EAAE,KAAME,GAE/CA,EAAY,WAAW,GAAG,EACnBJ,GAAUT,EAAK,IAAI,EAAE,SAASa,CAAW,EACzCD,EAAU,SAASC,CAAW,EAC9BJ,GAAUT,EAAK,IAAI,EAAE,WAAWa,EAAY,QAAQ,IAAK,EAAE,CAAC,EAEhEJ,GAAUT,EAAK,IAAI,IAAMa,CACnC,CACL,CC5CA,IAAMC,GAAe,CACjB,MAAAC,GACA,SAAAC,GACA,YAAAC,GACA,MAAAC,GACA,QAAAC,GACA,IAAAC,GACA,SAAAC,GACA,KAAAC,GACA,IAAAC,GACA,MAAAC,GACA,QAAAC,GACA,MAAAC,GACA,gBAAAC,GACA,cAAAC,GACA,KAAAC,GACA,OAAAC,EACJ,EC1BI,SAASC,GAAUC,EAAgB,CACnC,OAAOC,EAAU,EAAE,aAAaD,CAAc,CAClD,CCYI,IAAME,GAAuB,CAC7B,YAAa,GACb,WAAY,GACZ,MAAO,EACP,SAAU,WAAW,SACrB,YAAaC,GACb,WAAYA,GACZ,mBAAoBC,GAAwB,YAC5C,cAAe,GACf,UAAW,GACX,UAAW,GACX,iBAAkB,GAClB,cAAe,IAAI,QAAQ,QAAQ,CACvC,EAGUC,GAAsB,CAC5B,GAAGH,GACH,iBAAkB,EACtB,EACA,SAASI,GAAaC,EAAU,CAAC,EAAGC,EAAWH,GAAqBI,EAAM,CACtE,IAAMC,EAAWC,GAAYJ,EAASE,EAAMD,CAAQ,EACpD,MAAO,CACH,GAAGA,EACH,GAAGD,EACH,SAAAG,CACJ,CACJ,CAII,SAASE,GAAUL,EAAU,CAAC,EAAG,CACjC,IAAMM,EAASP,GAAaC,CAAO,EACnCO,GAAgBD,EAAO,QAAQ,EAC/BE,GAAWC,EAAUH,EAAO,QAAQ,EAAE,WAAW,EACjD,IAAII,EACJ,IAAMC,GAAQD,EAA+BJ,EAAO,SAAS,eAAiB,MAAQI,IAAiC,OAAYA,EAA0D,WAAW,OACxM,OAAAE,GAA0BD,CAAI,EACvBE,GAAeP,CAAM,EAAE,GAClC,CAGI,SAASQ,GAAY,CAAE,cAAAC,EAAe,aAAAC,EAAc,GAAGhB,CAAQ,EAAI,CAAC,EAAGE,EAAM,CAC7E,IAAMI,EAASP,GAAaC,EAASL,GAAsBO,CAAI,EAC/DK,GAAgBD,EAAO,QAAQ,EAC/BE,GAAWC,EAAUH,EAAO,QAAQ,EAAE,WAAW,EACjD,IAAIW,EACJ,IAAMC,GAAUD,EAAOD,GAAqED,KAAmB,MAAQE,IAAS,OAAYA,EAAO,IAAIE,GACvJ,MAAO,CACH,IAAKN,GAAeP,EAAQY,CAAM,EAAE,IACpC,OAAAA,CACJ,CACJ,CAGI,SAASE,GAASpB,EAAS,CAC3B,OAAOa,GAAe,CAClB,GAAG,KAAK,OACR,GAAGb,CACP,EAAG,KAAK,MAAM,EAAE,GACpB,CACA,SAASqB,GAAgBC,EAAUC,EAAM,CACrC,SAASC,KAAUC,EAAM,CACrB,OAAAC,GAAYJ,EAAUK,GAAS,IAAI,EAC5BC,GAAU,IAAIL,EAAK,MAAMD,EAAUG,CAAI,EAAE,KAAK,MAAOI,IACpD,MAAMC,GAAKR,EAAS,MAAM,EACnBO,EACV,CAAC,CACV,CACA,cAAO,eAAeL,EAAQ,OAAQ,CAClC,IAAK,IAAID,EAAK,IAClB,CAAC,EACMC,CACX,CACA,SAASX,GAAeP,EAAQY,EAAS,IAAIC,GAAU,CACnD,IAAMG,EAAW,CAAC,EAClB,cAAO,OAAOA,EAAU,CACpB,OAAAhB,EACA,cAAeyB,GAAc,KAAKT,CAAQ,EAC1C,gBAAiBU,GAAgB,KAAKV,CAAQ,EAC9C,OAAAJ,EACA,UAAW,CAAC,EACZ,GAAGe,EACP,CAAC,EACM,CACH,SAAAX,EACA,IAAK,CACD,GAAG,OAAO,YAAY,OAAO,QAAQW,EAAY,EAAE,IAAI,CAAC,CAACC,EAAMC,CAAG,IAAI,CAC9DD,EACAb,GAAgBC,EAAUa,CAAG,CACjC,CAAC,CAAC,EACN,MAAOf,GAAS,KAAKE,CAAQ,CACjC,CACJ,CACJ,CACA,SAASlB,GAAYJ,EAASE,EAAMD,EAAU,CAC1C,IAAImC,EAAmBnB,EACvB,OAAQA,GAAQmB,EAAoBpC,EAAQ,YAAc,MAAQoC,IAAsB,OAAYA,EAAoBlC,GAAQmC,GAAoBnC,CAAI,KAAO,MAAQe,IAAS,OAAYA,EAAOhB,EAAS,QAChN,CCpHA,IAAAqC,GAAA,GAAAC,GAAAD,GAAA,WAAAE,GAAA,UAAAC,GAAA,SAAAC,GAAA,QAAAC,GAAA,aAAAC,GAAA,oBAAAC,GAAA,UAAAC,GAAA,aAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,kBAAAC,GAAA,QAAAC,GAAA,gBAAAC,GAAA,SAAAC,GAAA,YAAAC,GAAA,WAAAC,KAEA,SAASC,GAAMC,EAAS,CACpB,OAAOC,GAAY,EAAE,IAAI,MAAMD,CAAO,CAC1C,CACA,SAASE,GAAMF,EAASG,EAAU,CAAC,EAAG,CAClC,OAAOF,GAAYE,EAASH,CAAO,EAAE,IAAI,MAAMA,CAAO,CAC1D,CACA,SAASI,GAAKD,EAAU,CAAC,EAAG,CACxB,OAAOF,GAAYE,CAAO,EAAE,IAAI,KAAK,CACzC,CACA,SAASE,GAAIF,EAAU,CAAC,EAAG,CACvB,OAAOF,GAAYE,CAAO,EAAE,IAAI,IAAI,CACxC,CACA,SAASG,GAASN,EAASG,EAAU,CAAC,EAAG,CACrC,OAAOF,GAAYE,CAAO,EAAE,IAAI,SAASH,CAAO,CACpD,CACA,SAASO,GAAgBC,EAAQC,EAAQN,EAAU,CAAC,EAAG,CACnD,OAAOF,GAAYE,CAAO,EAAE,IAAI,gBAAgBK,EAAQC,CAAM,CAClE,CACA,SAASC,GAAMV,EAASG,EAAU,CAAC,EAAG,CAClC,OAAOF,GAAYE,CAAO,EAAE,IAAI,MAAMH,CAAO,CACjD,CACA,eAAeW,GAASC,EAAMT,EAAU,CAAC,EAAG,CACxC,GAAM,CAAE,IAAAU,EAAK,OAAAC,CAAO,EAAIb,GAAYE,CAAO,EAC3C,OAAOU,EAAI,SAASD,CAAI,EAAE,KAAK,IAAIE,CAAM,CAC7C,CACA,eAAeC,GAAQC,EAAOb,EAAU,CAAC,EAAG,CACxC,GAAM,CAAE,IAAAU,EAAK,OAAAC,CAAO,EAAIb,GAAYE,CAAO,EAC3C,OAAOU,EAAI,QAAQG,CAAK,EAAE,KAAK,IAAIF,CAAM,CAC7C,CACA,SAASG,GAAMC,EAAef,EAAS,CACnC,OAAOF,GAAYE,CAAO,EAAE,IAAI,MAAMe,CAAa,CACvD,CACA,SAASC,GAAcX,EAAQC,EAAQN,EAAU,CAAC,EAAG,CACjD,OAAOF,GAAYE,CAAO,EAAE,IAAI,cAAcK,EAAQC,CAAM,CAChE,CACA,SAASW,GAAYpB,EAASG,EAAU,CAAC,EAAG,CACxC,OAAOF,GAAYE,CAAO,EAAE,IAAI,YAAYH,CAAO,CACvD,CACA,SAASqB,GAAKrB,EAASY,EAAMT,EAAU,CAAC,EAAG,CACvC,OAAOF,GAAYE,EAASH,CAAO,EAAE,IAAI,KAAKA,EAASY,EAAMT,CAAO,CACxE,CACA,SAASmB,GAAQtB,EAASG,EAAU,CAAC,EAAG,CACpC,GAAM,CAAE,IAAAU,EAAK,OAAAC,CAAO,EAAIb,GAAYE,CAAO,EAC3C,OAAAW,EAAO,QAAQ,iBAAiB,CAC5B,OAAQd,CACZ,CAAC,EACMa,EAAI,QAAQb,CAAO,CAC9B,CACA,SAASuB,GAAOvB,EAASwB,EAAarB,EAAU,CAAC,EAAG,CAChD,OAAOF,GAAYE,CAAO,EAAE,IAAI,OAAOH,EAASwB,CAAW,CAC/D,CACA,SAASC,GAAItB,EAAU,CAAC,EAAG,CACvB,OAAOF,GAAY,EAAE,IAAI,IAAIE,CAAO,CACxC,CCpDA,IAAMuB,GAAY,CACd,GAAGC,GACH,MAAOC,EACX,ECkBA,IAAMC,GAAyC,CAI7C,QAAS,UACT,YAAa,UACb,aAAc,UACd,KAAM,UAIN,QAAS,UACT,YAAa,UACb,aAAc,UAId,OAAQ,SACR,WAAY,SACZ,YAAa,SACb,IAAK,SACL,QAAS,SACT,SAAU,SAIV,MAAO,QACP,UAAW,QACX,WAAY,OACd,EAEMC,GAA2C,CAI/C,QAAS,UAIT,IAAK,MAIL,MAAO,OACT,EAoCMC,GAA0B,CAC9B,MAAO,EACP,UAAW,EACb,EA4FaC,GAAN,KAAc,CACnBC,GAAwC,KACxCC,GAA0B,KAC1BC,GAAiC,KACjCC,GAAyB,CAAC,EAC1BC,GAA6B,CAAC,EAC9BC,GAAyC,KACzCC,GAA8C,KAC9CC,GAAoE,KAEpEC,IAAkB,CAChB,GAAI,CAAC,KAAKP,GACR,MAAM,IAAI,MAAMQ,EAAuB,CAE3C,CAEAC,GAAcC,EAAwB,CAC/BA,GAAM,WAIX,KAAKT,GAAUS,EAAK,SAAS,cAAc,KAAK,EAEhD,KAAKT,GAAQ,WAAa,OAC1B,KAAKA,GAAQ,MAAM,OAAS,qBAC5B,KAAKA,GAAQ,MAAM,QAAU,qBAC7B,KAAKA,GAAQ,MAAM,UAAY,MAC/B,KAAKA,GAAQ,MAAM,SAAW,MAC9B,KAAKA,GAAQ,MAAM,SAAW,WAC9B,KAAKA,GAAQ,MAAM,KAAO,MAC1B,KAAKA,GAAQ,MAAM,IAAM,MACzB,KAAKA,GAAQ,MAAM,OAAS,MAC5B,KAAKA,GAAQ,MAAM,QAAU,MAC7B,KAAKA,GAAQ,MAAM,cAAgB,OACnC,KAAKA,GAAQ,MAAM,OAAS,iBAC5B,KAAKA,GAAQ,QAAQ,OAAS,+BAE9B,KAAKD,GAAY,YAAY,KAAKC,EAAO,EAC3C,CAEAU,GAAeC,EAAsC,CAGnD,GAFA,KAAKb,GAAca,EAEf,CAAC,KAAKX,GACR,OAGF,IAAMY,EAAOC,GAAeF,CAAiB,EAAE,sBAAsB,EAErE,KAAKX,GAAQ,MAAM,IAAM,GAAGY,EAAK,IAAM,CAAC,KACxC,KAAKZ,GAAQ,MAAM,KAAO,GAAGY,EAAK,KAAO,CAAC,KAC1C,KAAKZ,GAAQ,MAAM,MAAQ,GAAGY,EAAK,KAAK,KACxC,KAAKZ,GAAQ,MAAM,OAAS,GAAGY,EAAK,MAAM,IAC5C,CAEAE,IAAwB,CACtB,GAAI,CAAC,KAAKX,GAAY,CACpB,IAAMY,EAAOC,GAAwB,KAAKjB,EAAU,EAEpD,KAAKI,GACH,KAAKJ,IAAcgB,EAAOE,GAAY,KAAKlB,GAAYgB,EAAM,IAAI,EAAI,CAAC,CAC1E,CAEA,OAAO,KAAKZ,EACd,CAEAe,IAA6B,CAC3B,IAAMH,EAAO,KAAKD,GAAsB,EASxC,MAPI,CAAC,KAAKhB,IAON,EAFF,KAAKA,GAAY,cAAc,aAAa,YAAY,IAAM,QAGvDiB,EASFA,EAAK,OACV,CAAC,CAAE,aAAAI,CAAa,IAAM,KAAKrB,GAAa,eAAiBqB,CAC3D,CACF,CAEAC,IAAuB,CACrB,KAAKjB,GAAa,IACpB,CAEA,KAAMkB,GAAmB,CAAE,OAAAC,CAAO,EAAU,CAC1C,MAAMC,GAAK,EAEX,KAAKH,GAAqB,EAC1B,IAAML,EAAO,KAAKD,GAAsB,EAExC,GAAI,CAACC,EAAK,OACR,OAKF,IAAMS,EAAgBT,EAAK,KAAK,CAAC,CAAE,KAAAU,CAAK,IAAMA,IAASH,CAAM,EAExDE,GAIL,KAAKE,GAAaF,EAAe,EAAI,CACvC,CAEAG,IAAsB,CAGLd,GAAe,KAAKf,EAAY,GACvC,MAAM,CAChB,CAEA,KAAM8B,GAAqBC,EAA6B,CACtD,MAAMN,GAAK,EAEX,IAAMO,EAAY,KAAK/B,GAEvB8B,EACG,IAAKE,GACJC,GAAoB,CAClB,UAAAF,EACA,SAAAC,CACF,CAAC,CACH,EACC,OAAO,OAAO,EACd,QAASE,GAAiB,CACzB,KAAK/B,GAAiB,KAAK+B,CAAY,CACzC,CAAC,CACL,CAEAC,IAAqC,CACnC,OAAO,KAAKhC,GAAiB,OAC1B+B,GACC,CAACA,EAAa,WAAWE,GAAK,SAAS,GACvC,CAACF,EAAa,WAAWE,GAAK,MAAM,CACxC,CACF,CAEAT,GAAaf,EAAsCyB,EAAmB,GAAO,CAS3E,GACEzB,EAAkB,eAAiB,MACnCA,EAAkB,eAAiB,KAAKb,IAAa,aACrD,CASA,IAAMuC,EADO,KAAKvB,GAAsB,EACV,KAC5B,CAAC,CAAE,KAAAW,CAAK,IAAMA,IAASd,EAAkB,YAC3C,EAEMsB,EAAeK,GAAgBD,CAAgB,EAC/CE,EAAWC,GAAYH,CAAgB,EAE7C,KAAKpC,GAAa,KAAKsC,CAAQ,EAC/B,KAAKrC,GAAiB,KAAK+B,CAAY,CACzC,CAEA,KAAKvB,GAAeC,CAAiB,EAErC,IAAMsB,EAAeK,GAAgB3B,CAAiB,EAChD4B,EAAWC,GAAY7B,CAAiB,EAG5CyB,GACAH,IAAiB,KAAKC,GAAmC,EAAE,GAAG,EAAE,GAChEK,IAAa,KAAKtC,GAAa,GAAG,EAAE,IAKtC,KAAKA,GAAa,KAAKsC,CAAQ,EAC/B,KAAKrC,GAAiB,KAAK+B,CAAY,EACzC,CAEA,KAAMQ,GAAcL,EAA2B,CAC7C,MAAMb,GAAK,EAEX,KAAKH,GAAqB,EAC1B,IAAML,EAAO,KAAKD,GAAsB,EAClC4B,EAAe,KAAKC,GAAuB5B,CAAI,EAM/CS,EAAgBT,EAAK,GAAG2B,CAAY,EAE1C,KAAKhB,GAAaF,EAAeY,CAAgB,CACnD,CAEAQ,GAAiB7B,EAA2B,CAC1C,OAAOA,EAAK,UACV,CAAC,CACC,sBAAA8B,EACA,eAAAC,EACA,gBAAAC,EACA,KAAAtB,EACA,KAAAuB,EACA,WAAAC,CACF,IACEJ,IAA0B,KAAK/C,IAAa,uBAC5CgD,IAAmB,KAAKhD,IAAa,gBACrCiD,IAAoB,KAAKjD,IAAa,iBACtC2B,IAAS,KAAK3B,IAAa,MAC3BkD,IAAS,KAAKlD,IAAa,MAC3BmD,IAAe,KAAKnD,IAAa,UACrC,CACF,CAEA6C,GAAuB5B,EAA2B,CAChD,OAAOA,EAAK,UAAU,CAAC,CAAE,KAAAU,CAAK,IAAMA,IAAS,KAAK3B,IAAa,IAAI,CACrE,CA6BA,IAAI,YAAa,CACf,OAAO,KAAKA,IAAa,MAAQ,IACnC,CAwBA,IAAI,UAAW,CACb,OAAO,OAAO,YACX,OAAO,KAAKoD,EAAQ,EAAgC,IAClDC,GAAmC,CAACA,EAASA,CAAO,CACvD,CACF,CACF,CAqBA,MAAM,QAAS,CACb,MAAO,EACT,CAqBA,MAAM,SAAU,CACd,MAAO,EACT,CA4BA,MAAM,MACJ,CAAE,UAAArB,EAAW,cAAAsB,EAAgB,GAAO,OAAQ3C,CAAK,EAAkB,CACjE,UAAW,KACX,cAAe,EACjB,EACA,CACA,GAAI,CAACqB,EACH,MAAM,IAAI,MAAMuB,EAA6B,EAG3C,CAAC5C,GAAQ,OAAO,OAAW,MAC7BA,EAAO,QAGT,KAAKV,GAAa+B,EAEdsB,GACF,KAAK5C,GAAcC,CAAI,EAGzB,KAAKL,GAAyBkD,GAC5B7C,EACAqB,EACCD,GAAgC,CAC/B,KAAKT,GAAqB,EAC1B,KAAKQ,GAAqBC,CAAS,CACrC,CACF,EAEA,IAAMd,EAAO,KAAKD,GAAsB,EAEnCC,EAAK,SAIV,KAAKV,GAA0B,KAAKgB,GAAmB,KAAK,IAAI,EAEhE,KAAKtB,GAAW,iBAAiB,UAAW,KAAKM,EAAuB,EAExE,KAAKqB,GAAaX,EAAK,CAAC,CAAC,EAG3B,CAuBA,MAAM,MAAO,CACX,KAAKX,KAAyB,EAC9B,KAAKL,IAAY,oBAAoB,UAAW,KAAKM,EAAuB,EAC5E,KAAKe,GAAqB,EAEtB,KAAKpB,KACP,KAAKD,IAAY,YAAY,KAAKC,EAAO,EACzC,KAAKA,GAAU,MAGjB,KAAKF,GAAc,KACnB,KAAKC,GAAa,KAClB,KAAKE,GAAe,CAAC,EACrB,KAAKC,GAAmB,CAAC,EACzB,KAAKG,GAA0B,IAEjC,CAsBA,MAAM,UAAW,CACf,KAAKC,GAAgB,EACrB,MAAMiB,GAAK,EAEX,IAAMR,EAAO,KAAKG,GAA2B,EAE7C,GAAI,CAACH,EAAK,OACR,OAGF,IAAM2B,EAAe,KAAKE,GAAiB7B,CAAI,EACzCwC,EAAYb,IAAiB,GAAK,EAAIA,EAAe,EAIrDlB,EAAgBT,EAAK,GAAGwC,CAAS,EAEvC,KAAK7B,GAAaF,CAAa,CAGjC,CAsBA,MAAM,MAAO,CACX,KAAKlB,GAAgB,EACrB,MAAMiB,GAAK,EAEX,IAAMR,EAAO,KAAKG,GAA2B,EAE7C,GAAI,CAACH,EAAK,OACR,OAGF,IAAM2B,EAAe,KAAKE,GAAiB7B,CAAI,EACzCwC,EACJb,IAAiB,IAAMA,IAAiB3B,EAAK,OAAS,EAClD,EACA2B,EAAe,EAIflB,EAAgBT,EAAK,GAAGwC,CAAS,EAEvC,KAAK7B,GAAaF,CAAa,CAGjC,CAyBA,MAAM,KAAM,CAIV,GAHA,KAAKlB,GAAgB,EACrB,MAAMiB,GAAK,EAEP,CAAC,KAAKzB,GACR,OAGF,IAAMwB,EAAST,GAAe,KAAKf,EAAW,EAQ9C,MAAM0D,GAAU,MAAMlC,EAAQ1B,EAAuB,CAGvD,CAUA,MAAM,UAAW,CACf,KAAKU,GAAgB,CAGvB,CAUA,MAAM,iBAAkB,CACtB,KAAKA,GAAgB,CAGvB,CAyCA,MAAM,MAAMmD,EAAa,CAIvB,GAHA,KAAKnD,GAAgB,EACrB,MAAMiB,GAAK,EAEP,CAAC,KAAKzB,GACR,OAGF,IAAM4D,EAAUD,EAAI,QAAQ,KAAM,IAAI,EAAE,QAAQ,MAAO,IAAI,EAAE,MAAM,GAAG,EAChEE,EAAsB,CAAC,EACvBC,EAAiB,CAAC,EAExBF,EAAQ,QAASG,GAAW,CAExB,OAAOnE,GAAemE,CAAM,EAAM,KAClC,OAAOlE,GAAiBkE,CAAM,EAAM,IAEpCF,EAAU,KAAKE,CAAM,EAErBD,EAAK,KAAKC,CAAM,CAEpB,CAAC,EAED,IAAMC,EAAkB,CACtB,GAAGH,EAAU,IAAKI,GAAa,IAAIA,CAAQ,IAAI,EAC/C,GAAGH,EAAK,IAAKH,GAAQ,IAAIA,CAAG,GAAG,EAC/B,GAAGE,EAAU,QAAQ,EAAE,IAAKI,GAAa,KAAKA,CAAQ,GAAG,CAC3D,EAAE,KAAK,EAAE,EAET,KAAKpC,GAAoB,EACzB,MAAM6B,GAAU,SAASM,EAAiBlE,EAAuB,EACjE,MAAM,KAAK6C,GAAc,EAAI,CAG/B,CA2BA,MAAM,KAAKuB,EAAc,CAIvB,GAHA,KAAK1D,GAAgB,EACrB,MAAMiB,GAAK,EAEP,CAAC,KAAKzB,GACR,OAGF,IAAMwB,EAAST,GAAe,KAAKf,EAAW,EAC9C,MAAM0D,GAAU,KAAKlC,EAAQ0C,EAAMpE,EAAuB,EAC1D,MAAM,KAAK6C,GAAc,EAAI,CAG/B,CAyBA,MAAM,QAGJU,EAAYc,EAAoC,CAChD,KAAK3D,GAAgB,EACrB,MAAMiB,GAAK,EAEX,IAAMR,EAAO,KAAKG,GAA2B,EAE7C,GAAI,CAACH,EAAK,OACR,OAGF,IAAM2B,EAAe,KAAKE,GAAiB7B,CAAI,EACzCwC,EAAYL,GAASC,CAAO,IAAI,CACpC,GAAGc,EAGH,UAAW,KAAKlE,GAChB,aAAA2C,EACA,KAAA3B,CACF,CAAC,EAED,GAAI,OAAOwC,GAAc,SACvB,OAMF,IAAM/B,EAAgBT,EAAK,GAAGwC,CAAS,EACvC,KAAK7B,GAAaF,CAAa,CAGjC,CA8BA,MAAM,MAAM,CAAE,OAAA0C,EAAS,OAAQ,WAAAC,EAAa,CAAE,EAAI,CAAC,EAAG,CAIpD,GAHA,KAAK7D,GAAgB,EACrB,MAAMiB,GAAK,EAEP,CAAC,KAAKzB,GACR,OAIF,IAAM8D,EADM,SAASM,EAAO,CAAC,EAAE,YAAY,CAAC,GAAGA,EAAO,MAAM,CAAC,CAAC,IAC7C,OAAOC,CAAU,EAC5B7C,EAAST,GAAe,KAAKf,EAAW,EAE9C,MAAM0D,GAAU,QACd,CAAC,CAAE,OAAAlC,CAAO,EAAG,CAAE,KAAAsC,EAAM,OAAAtC,CAAO,CAAC,EAC7B1B,EACF,CAGF,CA4BA,MAAM,kBAAmB,CACvB,YAAKU,GAAgB,EACrB,MAAMiB,GAAK,EAEJ,KAAKrB,GAAiB,GAAG,EAAE,GAAK,EACzC,CA6BA,MAAM,UAAW,CACf,YAAKI,GAAgB,EACrB,MAAMiB,GAAK,EAEJ,KAAKtB,GAAa,GAAG,EAAE,GAAK,EACrC,CA+BA,MAAM,iBAAkB,CACtB,YAAKK,GAAgB,EAErB,MAAMiB,GAAK,EAEJ,KAAKrB,EACd,CA+BA,MAAM,aAAc,CAClB,YAAKI,GAAgB,EAErB,MAAMiB,GAAK,EAEJ,KAAKtB,EACd,CAyBA,MAAM,sBAAuB,CAC3B,KAAKK,GAAgB,EAErB,MAAMiB,GAAK,EAEX,KAAKrB,GAAmB,CAAC,CAC3B,CAyBA,MAAM,kBAAmB,CACvB,KAAKI,GAAgB,EAErB,MAAMiB,GAAK,EAEX,KAAKtB,GAAe,CAAC,CACvB,CACF,EC3oCO,IAAMmE,GAAU,IAAIC","names":["require_ansi_styles","__commonJSMin","exports","module","wrapAnsi256","offset","code","wrapAnsi16m","red","green","blue","assembleStyles","codes","styles","groupName","group","styleName","style","hex","matches","colorString","character","integer","require_collections","__commonJSMin","exports","printIteratorEntries","printIteratorValues","printListItems","printObjectProperties","getKeysOfEnumerableProperties","object","compareKeys","keys","symbol","iterator","config","indentation","depth","refs","printer","separator","result","current","indentationNext","name","value","list","i","val","key","require_AsymmetricMatcher","__commonJSMin","exports","_collections","global","Symbol","asymmetricMatcher","SPACE","serialize","val","config","indentation","depth","refs","printer","stringedValue","test","plugin","_default","require_ansi_regex","__commonJSMin","exports","module","onlyFirst","pattern","require_ConvertAnsi","__commonJSMin","exports","_ansiRegex","_interopRequireDefault","_ansiStyles","obj","toHumanReadableAnsi","text","match","test","val","serialize","config","indentation","depth","refs","printer","plugin","_default","require_DOMCollection","__commonJSMin","exports","_collections","SPACE","OBJECT_NAMES","ARRAY_REGEXP","testName","name","test","val","isNamedNodeMap","collection","serialize","config","indentation","depth","refs","printer","props","attribute","plugin","_default","require_escapeHTML","__commonJSMin","exports","escapeHTML","str","require_markup","__commonJSMin","exports","_escapeHTML","_interopRequireDefault","obj","printProps","keys","props","config","indentation","depth","refs","printer","indentationNext","colors","key","value","printed","printChildren","children","child","printText","text","contentColor","printComment","comment","commentColor","printElement","type","printedProps","printedChildren","tagColor","printElementAsLeaf","require_DOMElement","__commonJSMin","exports","_markup","ELEMENT_NODE","TEXT_NODE","COMMENT_NODE","FRAGMENT_NODE","ELEMENT_REGEXP","testHasAttribute","val","testNode","constructorName","nodeType","tagName","isCustomElement","test","_val$constructor","nodeIsText","node","nodeIsComment","nodeIsFragment","serialize","config","indentation","depth","refs","printer","type","attr","props","attribute","plugin","_default","require_Immutable","__commonJSMin","exports","_collections","IS_ITERABLE_SENTINEL","IS_LIST_SENTINEL","IS_KEYED_SENTINEL","IS_MAP_SENTINEL","IS_ORDERED_SENTINEL","IS_RECORD_SENTINEL","IS_SEQ_SENTINEL","IS_SET_SENTINEL","IS_STACK_SENTINEL","getImmutableName","name","printAsLeaf","SPACE","LAZY","printImmutableEntries","val","config","indentation","depth","refs","printer","type","getRecordEntries","i","key","printImmutableRecord","printImmutableSeq","printImmutableValues","serialize","test","plugin","_default","require_react_is_production_min","__commonJSMin","exports","b","c","d","e","f","g","h","k","l","m","n","p","q","r","u","v","w","x","y","a","t","z","A","B","C","D","E","F","G","H","I","require_react_is","__commonJSMin","exports","module","require_ReactElement","__commonJSMin","exports","ReactIs","_interopRequireWildcard","_markup","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","obj","cache","newObj","hasPropertyDescriptor","key","desc","getChildren","arg","children","item","getType","element","type","functionName","getPropKeys","props","serialize","config","indentation","depth","refs","printer","test","val","plugin","_default","require_ReactTestComponent","__commonJSMin","exports","_markup","global","Symbol","testSymbol","getPropKeys","object","props","key","serialize","config","indentation","depth","refs","printer","test","val","plugin","_default","require_build","__commonJSMin","exports","format","_ansiStyles","_interopRequireDefault","_collections","_AsymmetricMatcher","_ConvertAnsi","_DOMCollection","_DOMElement","_Immutable","_ReactElement","_ReactTestComponent","obj","toString","toISOString","errorToString","regExpToString","getConstructorName","val","isWindow","SYMBOL_REGEXP","NEWLINE_REGEXP","PrettyFormatPluginError","message","stack","isToStringedArrayType","toStringed","printNumber","printBigInt","printFunction","printFunctionName","printSymbol","printError","printBasicValue","escapeRegex","escapeString","typeOf","printComplexValue","config","indentation","depth","refs","hasCalledToJSON","hitMaxDepth","min","printer","isNewPlugin","plugin","printPlugin","printed","valChild","str","indentationNext","error","findPlugin","plugins","p","basicResult","DEFAULT_THEME","DEFAULT_THEME_KEYS","DEFAULT_OPTIONS","validateOptions","options","key","getColorsHighlight","colors","value","color","getColorsEmpty","getPrintFunctionName","getEscapeRegex","getEscapeString","getConfig","_options$printBasicPr","createIndent","indent","_default","require_iteratorProxy","__commonJSMin","exports","iteratorProxy","values","index","iter","value","_default","require_iterationDecorator","__commonJSMin","exports","iterationDecorator","_iteratorProxy","_interopRequireDefault","obj","_typeof","collection","entries","require_ariaPropsMap","__commonJSMin","exports","_iterationDecorator","_interopRequireDefault","obj","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_i","_arr","_n","_d","_s","_e","err","_createForOfIteratorHelper","o","allowArrayLike","it","F","_e2","normalCompletion","didErr","step","_e3","minLen","_arrayLikeToArray","n","len","arr2","properties","ariaPropsMap","fn","thisArg","_iterator","_step","_step$value","key","values","item","tuple","_ref","_ref2","_ref3","_ref4","_default","require_domMap","__commonJSMin","exports","_iterationDecorator","_interopRequireDefault","obj","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_i","_arr","_n","_d","_s","_e","err","_createForOfIteratorHelper","o","allowArrayLike","it","F","_e2","normalCompletion","didErr","step","_e3","minLen","_arrayLikeToArray","n","len","arr2","dom","domMap","fn","thisArg","_iterator","_step","_step$value","key","values","item","tuple","_ref","_ref2","_ref3","_ref4","_default","require_commandRole","__commonJSMin","exports","commandRole","_default","require_compositeRole","__commonJSMin","exports","compositeRole","_default","require_inputRole","__commonJSMin","exports","inputRole","_default","require_landmarkRole","__commonJSMin","exports","landmarkRole","_default","require_rangeRole","__commonJSMin","exports","rangeRole","_default","require_roletypeRole","__commonJSMin","exports","roletypeRole","_default","require_sectionRole","__commonJSMin","exports","sectionRole","_default","require_sectionheadRole","__commonJSMin","exports","sectionheadRole","_default","require_selectRole","__commonJSMin","exports","selectRole","_default","require_structureRole","__commonJSMin","exports","structureRole","_default","require_widgetRole","__commonJSMin","exports","widgetRole","_default","require_windowRole","__commonJSMin","exports","windowRole","_default","require_ariaAbstractRoles","__commonJSMin","exports","_commandRole","_interopRequireDefault","_compositeRole","_inputRole","_landmarkRole","_rangeRole","_roletypeRole","_sectionRole","_sectionheadRole","_selectRole","_structureRole","_widgetRole","_windowRole","obj","ariaAbstractRoles","_default","require_alertRole","__commonJSMin","exports","alertRole","_default","require_alertdialogRole","__commonJSMin","exports","alertdialogRole","_default","require_applicationRole","__commonJSMin","exports","applicationRole","_default","require_articleRole","__commonJSMin","exports","articleRole","_default","require_bannerRole","__commonJSMin","exports","bannerRole","_default","require_blockquoteRole","__commonJSMin","exports","blockquoteRole","_default","require_buttonRole","__commonJSMin","exports","buttonRole","_default","require_captionRole","__commonJSMin","exports","captionRole","_default","require_cellRole","__commonJSMin","exports","cellRole","_default","require_checkboxRole","__commonJSMin","exports","checkboxRole","_default","require_codeRole","__commonJSMin","exports","codeRole","_default","require_columnheaderRole","__commonJSMin","exports","columnheaderRole","_default","require_comboboxRole","__commonJSMin","exports","comboboxRole","_default","require_complementaryRole","__commonJSMin","exports","complementaryRole","_default","require_contentinfoRole","__commonJSMin","exports","contentinfoRole","_default","require_definitionRole","__commonJSMin","exports","definitionRole","_default","require_deletionRole","__commonJSMin","exports","deletionRole","_default","require_dialogRole","__commonJSMin","exports","dialogRole","_default","require_directoryRole","__commonJSMin","exports","directoryRole","_default","require_documentRole","__commonJSMin","exports","documentRole","_default","require_emphasisRole","__commonJSMin","exports","emphasisRole","_default","require_feedRole","__commonJSMin","exports","feedRole","_default","require_figureRole","__commonJSMin","exports","figureRole","_default","require_formRole","__commonJSMin","exports","formRole","_default","require_genericRole","__commonJSMin","exports","genericRole","_default","require_gridRole","__commonJSMin","exports","gridRole","_default","require_gridcellRole","__commonJSMin","exports","gridcellRole","_default","require_groupRole","__commonJSMin","exports","groupRole","_default","require_headingRole","__commonJSMin","exports","headingRole","_default","require_imgRole","__commonJSMin","exports","imgRole","_default","require_insertionRole","__commonJSMin","exports","insertionRole","_default","require_linkRole","__commonJSMin","exports","linkRole","_default","require_listRole","__commonJSMin","exports","listRole","_default","require_listboxRole","__commonJSMin","exports","listboxRole","_default","require_listitemRole","__commonJSMin","exports","listitemRole","_default","require_logRole","__commonJSMin","exports","logRole","_default","require_mainRole","__commonJSMin","exports","mainRole","_default","require_markRole","__commonJSMin","exports","markRole","_default","require_marqueeRole","__commonJSMin","exports","marqueeRole","_default","require_mathRole","__commonJSMin","exports","mathRole","_default","require_menuRole","__commonJSMin","exports","menuRole","_default","require_menubarRole","__commonJSMin","exports","menubarRole","_default","require_menuitemRole","__commonJSMin","exports","menuitemRole","_default","require_menuitemcheckboxRole","__commonJSMin","exports","menuitemcheckboxRole","_default","require_menuitemradioRole","__commonJSMin","exports","menuitemradioRole","_default","require_meterRole","__commonJSMin","exports","meterRole","_default","require_navigationRole","__commonJSMin","exports","navigationRole","_default","require_noneRole","__commonJSMin","exports","noneRole","_default","require_noteRole","__commonJSMin","exports","noteRole","_default","require_optionRole","__commonJSMin","exports","optionRole","_default","require_paragraphRole","__commonJSMin","exports","paragraphRole","_default","require_presentationRole","__commonJSMin","exports","presentationRole","_default","require_progressbarRole","__commonJSMin","exports","progressbarRole","_default","require_radioRole","__commonJSMin","exports","radioRole","_default","require_radiogroupRole","__commonJSMin","exports","radiogroupRole","_default","require_regionRole","__commonJSMin","exports","regionRole","_default","require_rowRole","__commonJSMin","exports","rowRole","_default","require_rowgroupRole","__commonJSMin","exports","rowgroupRole","_default","require_rowheaderRole","__commonJSMin","exports","rowheaderRole","_default","require_scrollbarRole","__commonJSMin","exports","scrollbarRole","_default","require_searchRole","__commonJSMin","exports","searchRole","_default","require_searchboxRole","__commonJSMin","exports","searchboxRole","_default","require_separatorRole","__commonJSMin","exports","separatorRole","_default","require_sliderRole","__commonJSMin","exports","sliderRole","_default","require_spinbuttonRole","__commonJSMin","exports","spinbuttonRole","_default","require_statusRole","__commonJSMin","exports","statusRole","_default","require_strongRole","__commonJSMin","exports","strongRole","_default","require_subscriptRole","__commonJSMin","exports","subscriptRole","_default","require_superscriptRole","__commonJSMin","exports","superscriptRole","_default","require_switchRole","__commonJSMin","exports","switchRole","_default","require_tabRole","__commonJSMin","exports","tabRole","_default","require_tableRole","__commonJSMin","exports","tableRole","_default","require_tablistRole","__commonJSMin","exports","tablistRole","_default","require_tabpanelRole","__commonJSMin","exports","tabpanelRole","_default","require_termRole","__commonJSMin","exports","termRole","_default","require_textboxRole","__commonJSMin","exports","textboxRole","_default","require_timeRole","__commonJSMin","exports","timeRole","_default","require_timerRole","__commonJSMin","exports","timerRole","_default","require_toolbarRole","__commonJSMin","exports","toolbarRole","_default","require_tooltipRole","__commonJSMin","exports","tooltipRole","_default","require_treeRole","__commonJSMin","exports","treeRole","_default","require_treegridRole","__commonJSMin","exports","treegridRole","_default","require_treeitemRole","__commonJSMin","exports","treeitemRole","_default","require_ariaLiteralRoles","__commonJSMin","exports","_alertRole","_interopRequireDefault","_alertdialogRole","_applicationRole","_articleRole","_bannerRole","_blockquoteRole","_buttonRole","_captionRole","_cellRole","_checkboxRole","_codeRole","_columnheaderRole","_comboboxRole","_complementaryRole","_contentinfoRole","_definitionRole","_deletionRole","_dialogRole","_directoryRole","_documentRole","_emphasisRole","_feedRole","_figureRole","_formRole","_genericRole","_gridRole","_gridcellRole","_groupRole","_headingRole","_imgRole","_insertionRole","_linkRole","_listRole","_listboxRole","_listitemRole","_logRole","_mainRole","_markRole","_marqueeRole","_mathRole","_menuRole","_menubarRole","_menuitemRole","_menuitemcheckboxRole","_menuitemradioRole","_meterRole","_navigationRole","_noneRole","_noteRole","_optionRole","_paragraphRole","_presentationRole","_progressbarRole","_radioRole","_radiogroupRole","_regionRole","_rowRole","_rowgroupRole","_rowheaderRole","_scrollbarRole","_searchRole","_searchboxRole","_separatorRole","_sliderRole","_spinbuttonRole","_statusRole","_strongRole","_subscriptRole","_superscriptRole","_switchRole","_tabRole","_tableRole","_tablistRole","_tabpanelRole","_termRole","_textboxRole","_timeRole","_timerRole","_toolbarRole","_tooltipRole","_treeRole","_treegridRole","_treeitemRole","obj","ariaLiteralRoles","_default","require_docAbstractRole","__commonJSMin","exports","docAbstractRole","_default","require_docAcknowledgmentsRole","__commonJSMin","exports","docAcknowledgmentsRole","_default","require_docAfterwordRole","__commonJSMin","exports","docAfterwordRole","_default","require_docAppendixRole","__commonJSMin","exports","docAppendixRole","_default","require_docBacklinkRole","__commonJSMin","exports","docBacklinkRole","_default","require_docBiblioentryRole","__commonJSMin","exports","docBiblioentryRole","_default","require_docBibliographyRole","__commonJSMin","exports","docBibliographyRole","_default","require_docBibliorefRole","__commonJSMin","exports","docBibliorefRole","_default","require_docChapterRole","__commonJSMin","exports","docChapterRole","_default","require_docColophonRole","__commonJSMin","exports","docColophonRole","_default","require_docConclusionRole","__commonJSMin","exports","docConclusionRole","_default","require_docCoverRole","__commonJSMin","exports","docCoverRole","_default","require_docCreditRole","__commonJSMin","exports","docCreditRole","_default","require_docCreditsRole","__commonJSMin","exports","docCreditsRole","_default","require_docDedicationRole","__commonJSMin","exports","docDedicationRole","_default","require_docEndnoteRole","__commonJSMin","exports","docEndnoteRole","_default","require_docEndnotesRole","__commonJSMin","exports","docEndnotesRole","_default","require_docEpigraphRole","__commonJSMin","exports","docEpigraphRole","_default","require_docEpilogueRole","__commonJSMin","exports","docEpilogueRole","_default","require_docErrataRole","__commonJSMin","exports","docErrataRole","_default","require_docExampleRole","__commonJSMin","exports","docExampleRole","_default","require_docFootnoteRole","__commonJSMin","exports","docFootnoteRole","_default","require_docForewordRole","__commonJSMin","exports","docForewordRole","_default","require_docGlossaryRole","__commonJSMin","exports","docGlossaryRole","_default","require_docGlossrefRole","__commonJSMin","exports","docGlossrefRole","_default","require_docIndexRole","__commonJSMin","exports","docIndexRole","_default","require_docIntroductionRole","__commonJSMin","exports","docIntroductionRole","_default","require_docNoterefRole","__commonJSMin","exports","docNoterefRole","_default","require_docNoticeRole","__commonJSMin","exports","docNoticeRole","_default","require_docPagebreakRole","__commonJSMin","exports","docPagebreakRole","_default","require_docPagelistRole","__commonJSMin","exports","docPagelistRole","_default","require_docPartRole","__commonJSMin","exports","docPartRole","_default","require_docPrefaceRole","__commonJSMin","exports","docPrefaceRole","_default","require_docPrologueRole","__commonJSMin","exports","docPrologueRole","_default","require_docPullquoteRole","__commonJSMin","exports","docPullquoteRole","_default","require_docQnaRole","__commonJSMin","exports","docQnaRole","_default","require_docSubtitleRole","__commonJSMin","exports","docSubtitleRole","_default","require_docTipRole","__commonJSMin","exports","docTipRole","_default","require_docTocRole","__commonJSMin","exports","docTocRole","_default","require_ariaDpubRoles","__commonJSMin","exports","_docAbstractRole","_interopRequireDefault","_docAcknowledgmentsRole","_docAfterwordRole","_docAppendixRole","_docBacklinkRole","_docBiblioentryRole","_docBibliographyRole","_docBibliorefRole","_docChapterRole","_docColophonRole","_docConclusionRole","_docCoverRole","_docCreditRole","_docCreditsRole","_docDedicationRole","_docEndnoteRole","_docEndnotesRole","_docEpigraphRole","_docEpilogueRole","_docErrataRole","_docExampleRole","_docFootnoteRole","_docForewordRole","_docGlossaryRole","_docGlossrefRole","_docIndexRole","_docIntroductionRole","_docNoterefRole","_docNoticeRole","_docPagebreakRole","_docPagelistRole","_docPartRole","_docPrefaceRole","_docPrologueRole","_docPullquoteRole","_docQnaRole","_docSubtitleRole","_docTipRole","_docTocRole","obj","ariaDpubRoles","_default","require_graphicsDocumentRole","__commonJSMin","exports","graphicsDocumentRole","_default","require_graphicsObjectRole","__commonJSMin","exports","graphicsObjectRole","_default","require_graphicsSymbolRole","__commonJSMin","exports","graphicsSymbolRole","_default","require_ariaGraphicsRoles","__commonJSMin","exports","_graphicsDocumentRole","_interopRequireDefault","_graphicsObjectRole","_graphicsSymbolRole","obj","ariaGraphicsRoles","_default","require_rolesMap","__commonJSMin","exports","_ariaAbstractRoles","_interopRequireDefault","_ariaLiteralRoles","_ariaDpubRoles","_ariaGraphicsRoles","_iterationDecorator","obj","_defineProperty","key","value","_createForOfIteratorHelper","o","allowArrayLike","it","_unsupportedIterableToArray","i","F","_e2","normalCompletion","didErr","err","step","_e3","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","_arrayLikeToArray","n","len","arr2","_i","_arr","_n","_d","_s","_e","roles","_ref","_ref2","roleDefinition","_iterator","_step","superClassIter","_iterator2","_step2","_loop","superClassName","superClassRoleTuple","_ref3","_ref4","name","superClassDefinition","_i2","_Object$keys","prop","rolesMap","fn","thisArg","_iterator3","_step3","_step3$value","values","item","tuple","_ref5","_ref6","_ref7","_ref8","_default","require_lite","__commonJSMin","exports","has","dequal","foo","bar","ctor","len","require_elementRoleMap","__commonJSMin","exports","_lite","_iterationDecorator","_interopRequireDefault","_rolesMap","obj","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_i","_arr","_n","_d","_s","_e","err","_createForOfIteratorHelper","o","allowArrayLike","it","F","_e2","normalCompletion","didErr","step","_e3","minLen","_arrayLikeToArray","n","len","arr2","elementRoles","keys","key","role","concepts","k","relation","concept","elementRoleRelation","roles","isUnique","elementRoleMap","fn","thisArg","_iterator","_step","_step$value","_key","values","item","tuple","_ref","_ref2","_ref3","_ref4","_default","require_roleElementMap","__commonJSMin","exports","_iterationDecorator","_interopRequireDefault","_rolesMap","obj","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_i","_arr","_n","_d","_s","_e","err","_createForOfIteratorHelper","o","allowArrayLike","it","F","_e2","normalCompletion","didErr","step","_e3","minLen","_arrayLikeToArray","n","len","arr2","roleElement","keys","key","role","relationConcepts","concepts","k","relation","concept","roleElementMap","fn","thisArg","_iterator","_step","_step$value","_key","values","item","tuple","_ref","_ref2","_ref3","_ref4","_default","require_lib","__commonJSMin","exports","_ariaPropsMap","_interopRequireDefault","_domMap","_rolesMap","_elementRoleMap","_roleElementMap","obj","aria","dom","roles","elementRoles","roleElements","require_lz_string","__commonJSMin","exports","module","LZString","f","keyStrBase64","keyStrUriSafe","baseReverseDic","getBaseValue","alphabet","character","i","input","res","a","index","compressed","uncompressed","buf","TotalLen","current_value","result","c","bitsPerChar","getCharFromInt","value","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","ii","length","resetValue","getNextValue","dictionary","next","enlargeIn","dictSize","numBits","entry","w","bits","resb","maxpower","power","data","getIdRefsByAttribute","attributeName","node","widgetRoles","documentRoles","landmarkRoles","liveRegionRoles","windowRoles","graphicsRoles","digitalPublishingRoles","roles","ALL_ROLES","a","b","NO_ROLES","NO_CORRESPONDING_ROLE","SVG_ALWAYS_INACCESSIBLE_ELEMENT","SVG_MAYBE_ACCESSIBLE_ELEMENT","tags","parseTokenList","tokenList","firstMatchingToken","validValues","value","getTagName","element","attr","attribute","calculateAccessibleName","role","label","alt","LANDMARK_ROLES","landmarkRoles","LANDMARK_ELEMENTS","LANDMARK_CSS_SELECTOR","role","el","hasLandmarkParent","element","ancestors","attr","LIST_ELEMENTS","LIST_ROLES","LIST_CSS_SELECTOR","hasListParent","GRID_ROLES","GRID_CSS_SELECTOR","hasGridParent","hasTableParent","SECTIONING_CONTENT_ROLES","SECTIONING_CONTENT_ELEMENTS","SECTIONING_CONTENT_CSS_SELECTOR","hasSectioningContentParent","getAsideRole","element","options","hasSectioningContentParent","roles","tags","getFooterRole","hasLandmarkParent","getHeaderRole","INPUT_ROLE_MAP","NO_CORRESPONDING_ROLE","getInputRole","type","attr","role","INPUT_SUPPORTED_ROLES_MAP","getLIRole","element","options","hasListParent","roles","getSelectRole","size","normalizeSize","attr","multiple","tags","normalizeSize","size","SVG_ACCESSIBLE_ROLE_MAPPING","roles","getSvgElementRole","element","tagName","getTagName","defaultRole","tags","accessibleRole","ariaHidden","attr","isHidden","getTDRole","options","hasGridParent","hasTableParent","NO_CORRESPONDING_ROLE","getTHRole","el","getRole","tagData","role","firstRole","firstMatchingToken","ALL_ROLES","calculateAccessibleName","getAsideRole","getHeaderRole","getLIRole","getInputRole","getFooterRole","getSelectRole","globalAttributes","widgetAttributes","liveregionAttributes","draganddropAttributes","relationshipAttributes","attributes","ALL_ATTRIBUTES","a","b","GLOBAL_ATTRIBUTES","globalAttributes","getLocalName","element","isElement","node","presentationRoles","synonymRolesMap","allowedNonAbstractRoles","ALL_ROLES","rolesRequiringName","globalStatesAndProperties","FOCUSABLE_SELECTOR","isFocusable","node","hasGlobalStateOrProperty","global","mapAliasedRoles","role","getExplicitRole","accessibleName","allowedAccessibilityRoles","inheritedImplicitPresentational","authorErrorFilteredRoles","isExplicitAllowedChildElement","allowedExplicitRole","getRole","isElement","baseExplicitRole","explicitRole","baseImplicitRole","getLocalName","implicitRole","toStr","Object","prototype","toString","isCallable","fn","call","toInteger","value","number","Number","isNaN","isFinite","Math","floor","abs","maxSafeInteger","pow","toLength","len","min","max","arrayFrom","arrayLike","mapFn","C","Array","items","TypeError","length","A","k","kValue","SetLike","items","arguments","length","undefined","_classCallCheck","_defineProperty","_createClass","key","value","has","push","previousLength","filter","item","callbackfn","_this","forEach","indexOf","get","SetLike_default","Set","getLocalName","element","_element$localName","localName","tagName","toLowerCase","localNameToRoleMappings","article","aside","button","datalist","dd","details","dialog","dt","fieldset","figure","form","footer","h1","h2","h3","h4","h5","h6","header","hr","html","legend","li","math","main","menu","nav","ol","optgroup","option","output","progress","section","summary","table","tbody","textarea","tfoot","td","th","thead","tr","ul","prohibitedAttributes","caption","Set","code","deletion","emphasis","generic","insertion","none","paragraph","presentation","strong","subscript","superscript","hasGlobalAriaAttributes","role","some","attributeName","_prohibitedAttributes","hasAttribute","has","ignorePresentationalRole","implicitRole","getRole","explicitRole","getExplicitRole","presentationRoles","indexOf","getImplicitRole","mappedByTag","undefined","getAttribute","_ref","type","size","trim","split","length","presentationRoles","isElement","node","nodeType","ELEMENT_NODE","isHTMLTableCaptionElement","getLocalName","isHTMLInputElement","isHTMLOptGroupElement","isHTMLSelectElement","isHTMLTableElement","isHTMLTextAreaElement","safeWindow","_ref","ownerDocument","defaultView","TypeError","isHTMLFieldSetElement","isHTMLLegendElement","isHTMLSlotElement","isSVGElement","ownerSVGElement","undefined","isSVGSVGElement","isSVGTitleElement","queryIdRefs","attributeName","hasAttribute","ids","getAttribute","split","root","getRootNode","map","id","getElementById","filter","element","hasAnyConcreteRoles","roles","indexOf","getRole","asFlatString","s","trim","replace","isHidden","node","getComputedStyleImplementation","isElement","hasAttribute","getAttribute","style","getPropertyValue","isControl","hasAnyConcreteRoles","hasAbstractRole","role","TypeError","concat","querySelectorAllSubtree","element","selectors","elements","ArrayFrom","querySelectorAll","queryIdRefs","forEach","root","push","apply","querySelectedOptions","listbox","isHTMLSelectElement","selectedOptions","isMarkedPresentational","presentationRoles","isNativeHostLanguageTextAlternativeElement","isHTMLTableCaptionElement","allowsNameFromContent","isDescendantOfNativeHostLanguageTextAlternativeElement","getValueOfTextbox","isHTMLInputElement","isHTMLTextAreaElement","value","textContent","getTextualContent","declaration","content","test","slice","isLabelableElement","localName","getLocalName","findLabelableElement","labelableElement","childNodes","childNode","descendantLabelableElement","getControlOfLabel","label","control","undefined","htmlFor","ownerDocument","getElementById","getLabels","labelsProperty","labels","document","filter","getSlotContents","slot","assignedNodes","length","computeTextAlternative","options","arguments","consultedNodes","SetLike","computedStyles","Map","window","safeWindow","_options$compute","compute","_options$computedStyl","computedStyleSupportsPseudoElements","getComputedStyle","_options$getComputedS","uncachedGetComputedStyle","bind","_options$hidden","hidden","el","pseudoElement","Error","cachedStyles","get","set","computeMiscTextAlternative","context","accumulatedText","pseudoBefore","beforeContent","isHTMLSlotElement","child","result","isEmbeddedInLabel","isReferenced","recursion","display","separator","pseudoAfter","afterContent","useAttribute","attributeName","attribute","getAttributeNode","has","add","computeTooltipAttributeValue","computeElementTextAlternative","isHTMLFieldSetElement","children","i","isHTMLLegendElement","isHTMLTableElement","isSVGSVGElement","isSVGTitleElement","nameFromAlt","isHTMLOptGroupElement","nameFromLabel","type","nameFromValue","map","join","nameFromTitle","nameFromSubTree","current","labelAttributeNode","labelElements","skipToStep2E","ariaLabel","elementTextAlternative","selectedOption","accumulatedText2F","nodeType","TEXT_NODE","tooltipAttributeValue","computeAccessibleDescription","root","options","arguments","length","undefined","description","queryIdRefs","map","element","computeTextAlternative","_objectSpread","compute","join","ariaDescription","getAttribute","title","prohibitsNaming","node","hasAnyConcreteRoles","computeAccessibleName","root","options","arguments","length","undefined","computeTextAlternative","getAccessibleDescription","node","isElement","computeAccessibleDescription","sanitizeString","string","getAccessibleName","node","isElement","computeAccessibleName","sanitizeString","ignoredInputTypes","allowedLocalNames","getSelectValue","node","selectedOptions","optionElement","getValue","getInputValue","localName","getLocalName","getAccessibleValue","isElement","dialogRoles","isDialogRole","role","childrenPresentationalRoles","roles","childrenPresentational","key","getSpokenRole","isGeneric","isPresentational","node","role","isElement","roledescription","getIsInert","inheritedImplicitInert","isNativeModalDialog","getLocalName","isModalDialog","isDialogRole","getNodeAccessibilityData","allowedAccessibilityRoles","inheritedImplicitPresentational","accessibleDescription","getAccessibleDescription","accessibleName","getAccessibleName","accessibleValue","getAccessibleValue","explicitRole","implicitRole","getRole","amendedAccessibleDescription","isExplicitPresentational","presentationRoles","spokenRole","allowedAccessibilityChildRoles","implicitAllowedAccessibilityChildRoles","isChildrenPresentationalRole","isExplicitOrInheritedPresentation","isElementWithImplicitAllowedAccessibilityChildRoles","isInert","getNodeByIdRef","container","idRef","isElement","TEXT_NODE","isHiddenFromAccessibilityTree","node","isElement","getComputedStyle","computedStyle","addAlternateReadingOrderNodes","node","alternateReadingOrderMap","container","getIdRefsByAttribute","idRef","childNode","getNodeByIdRef","currentParentNodes","mapAlternateReadingOrder","isElement","parentNode","addOwnedNodes","ownedNodes","ownedNode","getAllOwnedNodes","owningNode","getOwnedNodes","growTree","tree","visitedNodes","parentDialog","isDialogRole","isHiddenFromAccessibilityTree","alternateReadingOrderParents","accessibleDescription","accessibleName","accessibleValue","allowedAccessibilityChildRoles","childrenPresentational","isExplicitPresentational","isInert","role","spokenRole","getNodeAccessibilityData","childTree","createAccessibilityTree","matchesRoles","node","roles","matchesAccessibleAttributes","ariaAttributes","name","value","ignoreAttributesWithAccessibleValue","nonSpecCompliantAttributeMap","getAttributesByRole","accessibleValue","role","supportedAttributes","defaultAttributeValues","prohibitedAttributes","roles","implicitRoleAttributes","globalStatesAndProperties","attribute","getItemText","accessibilityNode","accessibleName","accessibleValue","STATE","ariaPropertyToVirtualLabelMap","idRef","token","state","tristate","integer","string","idRefs","errorMessageIdRefs","number","stateValue","attributeValue","negative","propertyDescriptionSuffixSingular","propertyDescriptionSuffixPlural","printCount","container","node","idRefsCount","getNodeByIdRef","propertyName","accessibleName","getAccessibleName","accessibleValue","getAccessibleValue","itemText","getItemText","concat","mixedValue","tokenMap","mapAttributeNameAndValueToLabel","attributeName","mapper","getLabelFromAriaAttribute","attributeName","container","node","attributeValue","mapAttributeNameAndValueToLabel","isNotMatchingElement","elements","node","getLocalName","isNotMatchingProperties","properties","key","value","ariaToHTMLAttributeMapping","getLabelFromHtmlEquivalentAttribute","attributeName","container","htmlAttribute","implicitMissingValue","name","negative","attributeValue","label","mapAttributeNameAndValueToLabel","getLevelFromDocumentStructure","level","role","tree","parentTree","getFirstNestedChildrenByRole","role","tree","child","getParentByRole","parentTree","getSiblingsByRoleAndLevel","parentRole","getFormOwnerTree","getRadioInputsByName","name","isElement","getRadioGroup","node","formOwnerTree","getChildrenByRole","getSet","hasTreegridAncestor","tree","headingLocalNameToLevelMap","getNodeSet","node","role","tree","hasTreegridAncestor","getSet","levelItemRoles","mapHtmlElementAriaToImplicitValue","localName","getLocalName","getLevelFromDocumentStructure","nodeSet","child","getLabelFromImplicitHtmlElementValue","attributeName","container","parentAccessibilityNodeTree","implicitValue","mapAttributeNameAndValueToLabel","percentageBasedValueRoles","isNumberLike","value","toNumber","toPercentageLabel","postProcessAriaValueNow","max","min","role","percentage","priorityReplacementMap","postProcessLabels","labels","role","preferred","dropped","postProcessAriaValueNow","getAccessibleAttributeLabels","accessibleValue","alternateReadingOrderParents","container","node","parentAccessibilityNodeTree","role","isElement","labels","getAttributesByRole","attributeName","implicitAttributeValue","labelFromHtmlEquivalentAttribute","valueFromHtmlEquivalentAttribute","getLabelFromHtmlEquivalentAttribute","labelFromAriaAttribute","valueFromAriaAttribute","getLabelFromAriaAttribute","labelFromImplicitHtmlElementValue","valueFromImplicitHtmlElementValue","getLabelFromImplicitHtmlElementValue","labelFromImplicitAriaAttributeValue","mapAttributeNameAndValueToLabel","accessibleAttributeToLabelMap","postProcessLabels","accessibleAttributeLabels","label","END_OF_ROLE_PREFIX","END_OF_NO_ROLE_PREFIX","TEXT_NODE","shouldIgnoreChildren","tree","accessibleName","children","node","child","flattenTree","container","parentAccessibilityNodeTree","treeNode","accessibleAttributeLabels","accessibleAttributeToLabelMap","getAccessibleAttributeLabels","treeNodeWithAttributeLabels","isAnnounced","ignoreChildren","flattenedTree","isRoleContainer","getIndexByRoleAndAttributes","filters","reorderedTree","tree","accessibilityNode","node","END_OF_ROLE_PREFIX","matchesRoles","matchesAccessibleAttributes","getNextIndexByRoleAndAttributes","filters","currentIndex","tree","reorderedTree","getIndexByRoleAndAttributes","getPreviousIndexByRoleAndAttributes","filters","currentIndex","tree","reorderedTree","getIndexByRoleAndAttributes","getElementFromNode","node","isElement","getElementNode","accessibilityNode","node","getElementFromNode","getNextIndexByIdRefsAttribute","attributeName","index","container","currentIndex","tree","isElement","currentAccessibilityNode","currentNode","getElementNode","idRef","getIdRefsByAttribute","targetNode","getNodeByIdRef","nodeIndex","node","nodeIndexByParent","parent","jumpToControlledElement","index","container","currentIndex","tree","getNextIndexByIdRefsAttribute","jumpToDetailsElement","container","currentIndex","tree","getNextIndexByIdRefsAttribute","jumpToErrorMessageElement","index","container","currentIndex","tree","getNextIndexByIdRefsAttribute","moveToNextAlternateReadingOrderElement","index","container","currentIndex","tree","getNextIndexByIdRefsAttribute","moveToPreviousAlternateReadingOrderElement","index","container","currentIndex","tree","isElement","alternateReadingOrderParents","targetNode","node","quickLandmarkNavigationRoles","quickAriaRoleNavigationRoles","quickAriaRoleNavigationCommands","accumulatedCommands","role","moveToNextCommand","moveToPreviousCommand","getNextIndexByRoleAndAttributes","getPreviousIndexByRoleAndAttributes","headingLevels","headingLevelNavigationCommands","headingLevel","commands","jumpToControlledElement","jumpToDetailsElement","jumpToErrorMessageElement","moveToNextAlternateReadingOrderElement","moveToPreviousAlternateReadingOrderElement","ERR_VIRTUAL_MISSING_CONTAINER","ERR_VIRTUAL_NOT_STARTED","LIVE","RELEVANT","RELEVANT_VALUES","DEFAULT_ATOMIC","DEFAULT_LIVE","DEFAULT_RELEVANT","getSpokenPhraseForNode","node","getAccessibleName","getAccessibleValue","sanitizeString","getAllSpokenPhrase","addedNodes","removedNodes","target","type","getAdditionsSpokenPhrase","getRemovalsSpokenPhrase","getTextSpokenPhrase","isElement","removedNode","TEXT_NODE","relevantToSpokenPhraseMap","roleToImplicitLiveRegionStatesAndPropertiesMap","getLiveRegionAttributes","container","atomic","live","liveTarget","relevant","accessibleName","role","getRole","implicitAttributes","token","targetAncestor","getLiveSpokenPhrase","getElementFromNode","spokenPhrases","relevantType","getSpokenPhrase","accessibilityNode","accessibleAttributeLabels","accessibleDescription","accessibleName","accessibleValue","spokenRole","observeDOM","root","node","onChange","isElement","MutationObserver","mutationObserver","tick","resolve","isElementType","element","tag","props","k","v","getWindow","node","_node_ownerDocument","isDocument","describe","val","readBlobText","blob","FileReader","res","rej","fr","createFileList","window","files","list","index","_define_property","obj","key","value","DataTransferItemStub","callback","dataOrFile","type","DataTransferItemListStub","args","item","index","getTypeMatcher","exact","group","sub","isGroup","createDataTransferStub","window","format","_this_items_find","match","text","t","data","matchIndex","i","createFileList","createDataTransfer","files","dt","getBlobFromDataTransferItem","r","_define_property","obj","key","value","createClipboardItem","window","blobs","dataMap","b","type","d","ClipboardStubControl","createClipboardStub","control","text","item","t","readBlobText","data","args","isClipboardStub","clipboard","attachClipboardStubToView","realClipboard","stub","resetClipboardStubOnView","detachClipboardStubFromView","readDataTransferFromClipboard","document","items","dt","createDataTransfer","writeDataTransferToClipboard","clipboardData","getWindow","i","dtItem","blob","getBlobFromDataTransferItem","g","FOCUSABLE_SELECTOR","isFocusable","element","FOCUSABLE_SELECTOR","cloneEvent","event","isDisabled","element","el","isElementType","_el_querySelector","getActiveElement","document","activeElement","isDisabled","getActiveElementOrBody","_getActiveElement","findClosest","element","callback","el","isContentEditable","element","getContentEditable","node","getElement","clickableInputTypes","isClickableInput","element","isElementType","isEditable","element","isEditableInputOrTextArea","isContentEditable","editableInputTypes","isElementType","hasOwnSelection","node","isElement","isEditableInputOrTextArea","hasNoSelection","isClickableInput","updateSelectionOnFocus","element","selection","hasOwnSelection","contenteditable","getContentEditable","_contenteditable_firstChild","focusNode","prettyFormat","toStr","Object","prototype","toString","isCallable","fn","call","toInteger","value","number","Number","isNaN","isFinite","Math","floor","abs","maxSafeInteger","pow","toLength","len","min","max","arrayFrom","arrayLike","mapFn","C","Array","items","TypeError","length","A","k","kValue","SetLike","items","_classCallCheck","_defineProperty","_createClass","value","has","push","previousLength","length","filter","item","callbackfn","_this","forEach","indexOf","SetLike_default","Set","getLocalName","element","_element$localName","localName","tagName","toLowerCase","localNameToRoleMappings","article","aside","button","datalist","dd","details","dialog","dt","fieldset","figure","form","footer","h1","h2","h3","h4","h5","h6","header","hr","html","legend","li","math","main","menu","nav","ol","optgroup","option","output","progress","section","summary","table","tbody","textarea","tfoot","td","th","thead","tr","ul","prohibitedAttributes","caption","Set","code","deletion","emphasis","generic","insertion","paragraph","presentation","strong","subscript","superscript","hasGlobalAriaAttributes","role","some","attributeName","_prohibitedAttributes","hasAttribute","has","ignorePresentationalRole","implicitRole","getRole","explicitRole","getExplicitRole","getImplicitRole","mappedByTag","undefined","getAttribute","_ref","type","size","trim","split","length","isElement","node","nodeType","ELEMENT_NODE","isHTMLTableCaptionElement","getLocalName","isHTMLInputElement","isHTMLOptGroupElement","isHTMLSelectElement","isHTMLTableElement","isHTMLTextAreaElement","safeWindow","_ref","ownerDocument","defaultView","TypeError","isHTMLFieldSetElement","isHTMLLegendElement","isHTMLSlotElement","isSVGElement","ownerSVGElement","undefined","isSVGSVGElement","isSVGTitleElement","queryIdRefs","attributeName","hasAttribute","ids","getAttribute","split","root","getRootNode","map","id","getElementById","filter","element","hasAnyConcreteRoles","roles","indexOf","getRole","asFlatString","s","trim","replace","isHidden","node","getComputedStyleImplementation","isElement","hasAttribute","getAttribute","style","getPropertyValue","isControl","hasAnyConcreteRoles","hasAbstractRole","role","TypeError","querySelectorAllSubtree","element","selectors","elements","ArrayFrom","querySelectorAll","queryIdRefs","forEach","root","push","apply","querySelectedOptions","listbox","isHTMLSelectElement","selectedOptions","isMarkedPresentational","isNativeHostLanguageTextAlternativeElement","isHTMLTableCaptionElement","allowsNameFromContent","isDescendantOfNativeHostLanguageTextAlternativeElement","getValueOfTextbox","isHTMLInputElement","isHTMLTextAreaElement","value","textContent","getTextualContent","declaration","content","test","slice","isLabelableElement","localName","getLocalName","findLabelableElement","labelableElement","childNodes","childNode","descendantLabelableElement","getControlOfLabel","label","control","undefined","htmlFor","ownerDocument","getElementById","getLabels","labelsProperty","labels","document","filter","getSlotContents","slot","assignedNodes","length","computeTextAlternative","options","consultedNodes","SetLike","window","safeWindow","_options$compute","compute","_options$computedStyl","computedStyleSupportsPseudoElements","getComputedStyle","_options$getComputedS","bind","_options$hidden","hidden","computeMiscTextAlternative","context","accumulatedText","pseudoBefore","beforeContent","isHTMLSlotElement","concat","child","result","isEmbeddedInLabel","isReferenced","recursion","display","separator","pseudoAfter","afterContent","useAttribute","attributeName","attribute","getAttributeNode","has","add","computeTooltipAttributeValue","computeElementTextAlternative","isHTMLFieldSetElement","children","i","isHTMLLegendElement","isHTMLTableElement","isSVGSVGElement","isSVGTitleElement","nameFromAlt","isHTMLOptGroupElement","nameFromLabel","type","nameFromValue","map","join","nameFromTitle","nameFromSubTree","current","labelAttributeNode","labelElements","skipToStep2E","ariaLabel","elementTextAlternative","selectedOption","accumulatedText2F","nodeType","TEXT_NODE","tooltipAttributeValue","computeAccessibleDescription","root","options","description","queryIdRefs","map","element","computeTextAlternative","_objectSpread","compute","join","title","getAttribute","prohibitsNaming","node","hasAnyConcreteRoles","computeAccessibleName","root","options","computeTextAlternative","import_aria_query","import_lz_string","escapeHTML","str","printProps","keys","props","config","indentation","depth","refs","printer","indentationNext","colors","key","value","printed","NodeTypeTextNode","printChildren","children","child","printedChild","printText","text","contentColor","printComment","comment","commentColor","printElement","type","printedProps","printedChildren","tagColor","printElementAsLeaf","ELEMENT_NODE$1","TEXT_NODE$1","COMMENT_NODE$1","FRAGMENT_NODE","ELEMENT_REGEXP","isCustomElement","val","tagName","testNode","constructorName","nodeType","nodeIsText","node","nodeIsComment","nodeIsFragment","createDOMElementFilter","filterNode","_val$constructor2","attr","attribute","chalk","readFileSync","codeFrameColumns","nodeRequire","getCodeFrame","frame","locationStart","locationEnd","frameLocation","frameLocationElements","filename","line","column","rawFileContents","codeFrame","getUserCodeFrame","firstClientCodeFrame","TEXT_NODE","jestFakeTimersAreEnabled","getDocument","getWindowFromNode","checkContainerType","container","getTypeName","object","shouldHighlight","_process$env","colorsJSON","DOMCollection","ELEMENT_NODE","COMMENT_NODE","filterCommentsAndDefaultIgnoreTagsTags","getConfig","prettyDOM","dom","maxLength","options","domTypeName","prettyFormatOptions","debugContent","logDOM","userCodeFrame","cb","message","prettifiedDOM","error","runWithExpensiveErrorDiagnosticsDisabled","callback","getConfig","config","labelledNodeNames","getTextContent","node","TEXT_NODE","childNode","getLabelContent","element","textContent","getRealLabels","_labels","isLabelable","labels","label","getLabels","container","_temp","selector","ariaLabelledBy","labelsId","labelId","labellingElement","textToMatch","labelledFormControl","formControlElement","assertNotNullOrUndefined","matcher","fuzzyMatches","normalizer","normalizedText","matchRegExp","matches","getDefaultNormalizer","trim","collapseWhitespace","text","makeNormalizer","_ref","match","getNodeText","child","c","elementRoleList","buildElementRoleList","isSubtreeInaccessible","isInaccessible","options","isSubtreeInaccessibleImpl","currentElement","getImplicitAriaRoles","currentNode","roles","elementRolesMap","makeElementSelector","name","attributes","_ref2","attributeName","value","constraints","shouldNotExist","shouldBeNonEmpty","getSelectorSpecificity","_ref3","bySelectorSpecificity","_ref4","_ref5","leftSpecificity","rightSpecificity","typeTextIndex","attribute","result","getRoles","hidden","flattenDOM","acc","rolesAcc","role","prettyRoles","dom","_ref6","includeDescription","_ref7","_ref8","elements","delimiterBar","elementsString","el","nameString","computeAccessibleName","domString","prettyDOM","descriptionString","computeAccessibleDescription","computeAriaSelected","element","checkBooleanAttribute","computeAriaBusy","computeAriaChecked","computeAriaPressed","computeAriaCurrent","_ref9","_checkBooleanAttribut","computeAriaExpanded","attribute","attributeValue","computeHeadingLevel","implicitHeadingLevels","computeAriaValueNow","valueNow","computeAriaValueMax","valueMax","computeAriaValueMin","valueMin","computeAriaValueText","valueText","normalize","getDefaultNormalizer","escapeRegExp","string","getRegExpMatcher","makeSuggestion","queryName","content","_ref","variant","name","warning","queryOptions","queryArgs","isInaccessible","queryMethod","text","options","_ref2","k","v","canSuggest","currentMethod","requestedMethod","data","getSuggestedQuery","method","_element$getAttribute","_getImplicitAriaRoles","getConfig","role","getImplicitAriaRoles","computeAccessibleName","labelText","getLabels","label","placeholderText","textContent","getNodeText","alt","title","testId","copyStackTrace","target","source","waitFor","callback","container","getDocument","timeout","showOriginalStackTrace","stackTraceError","interval","onTimeout","error","mutationObserverOptions","resolve","reject","lastError","intervalId","observer","finished","promiseStatus","overallTimeoutTimer","handleTimeout","usingJestFakeTimers","jestFakeTimersAreEnabled","advanceTimersWrapper","checkCallback","checkContainerType","e","checkRealTimersCallback","MutationObserver","getWindowFromNode","onDone","result","runWithExpensiveErrorDiagnosticsDisabled","resolvedValue","rejectedValue","waitForWrapper","getElementError","message","getMultipleElementsFoundError","queryAllByAttribute","_temp","exact","collapseWhitespace","trim","normalizer","matcher","matches","fuzzyMatches","matchNormalizer","makeNormalizer","node","makeSingleQuery","allQuery","getMultipleError","container","_len","args","_key","els","elementStrings","element","getElementError","getMultipleElementsFoundError","getSuggestionError","suggestion","getConfig","makeGetAllQuery","getMissingError","_len2","_key2","makeFindQuery","getter","text","options","waitForOptions","waitForWrapper","wrapSingleQueryWithSuggestion","query","queryAllByName","variant","_len3","_key3","suggest","getSuggestedQuery","wrapAllByQueryWithSuggestion","_len4","_key4","uniqueSuggestionMessages","_getSuggestedQuery","buildQueries","queryAllBy","queryBy","getAllBy","getBy","getByWithSuggestions","getAllWithSuggestions","findAllBy","findBy","queryAllLabels","container","node","getLabelContent","_ref","textToMatch","queryAllLabelsByText","text","_temp","exact","trim","collapseWhitespace","normalizer","matcher","matches","fuzzyMatches","matchNormalizer","makeNormalizer","_ref2","_ref3","queryAllByLabelText","_temp2","selector","checkContainerType","matchingLabelledElements","element","getRealLabels","labelledElements","labelledElement","labelList","getLabels","label","labelsValue","labelValue","index","labelsFiltered","queryAllByAttribute","getAllByLabelText","_len","rest","_key","els","labels","tagNames","getTagNameOfElementAssociatedWithLabelViaFor","tagName","getConfig","htmlFor","getMultipleError$7","c","queryByLabelText","wrapSingleQueryWithSuggestion","makeSingleQuery","getByLabelText","findAllByLabelText","makeFindQuery","wrapAllByQueryWithSuggestion","findByLabelText","getAllByLabelTextWithSuggestions","getByLabelTextWithSuggestions","queryAllByLabelTextWithSuggestions","queryAllByPlaceholderText","args","getMultipleError$6","getMissingError$6","queryAllByPlaceholderTextWithSuggestions","queryByPlaceholderText","getAllByPlaceholderText","getByPlaceholderText","findAllByPlaceholderText","findByPlaceholderText","buildQueries","queryAllByText","ignore","baseArray","getNodeText","getMultipleError$5","getMissingError$5","options","normalizedText","isNormalizedDifferent","isCustomSelector","queryAllByTextWithSuggestions","queryByText","getAllByText","getByText","findAllByText","findByText","queryAllByDisplayValue","value","option","optionNode","getMultipleError$4","getMissingError$4","queryAllByDisplayValueWithSuggestions","queryByDisplayValue","getAllByDisplayValue","getByDisplayValue","findAllByDisplayValue","findByDisplayValue","VALID_TAG_REGEXP","queryAllByAltText","alt","getMultipleError$3","getMissingError$3","queryAllByAltTextWithSuggestions","queryByAltText","getAllByAltText","getByAltText","findAllByAltText","findByAltText","isSvgTitle","_node$parentElement","queryAllByTitle","getMultipleError$2","title","getMissingError$2","queryAllByTitleWithSuggestions","queryByTitle","getAllByTitle","getByTitle","findAllByTitle","findByTitle","queryAllByRole","role","hidden","name","description","queryFallbacks","selected","busy","checked","pressed","current","level","expanded","valueNow","valueMin","valueMax","valueText","_allRoles$get","_allRoles$get2","_allRoles$get3","_allRoles$get4","_allRoles$get5","_allRoles$get6","_allRoles$get7","_allRoles$get8","_allRoles$get9","_allRoles$get10","subtreeIsInaccessibleCache","cachedIsSubtreeInaccessible","isSubtreeInaccessible","makeRoleSelector","roleValue","roleAttributeToken","firstRoleAttributeToken","getImplicitAriaRoles","implicitRole","computeAriaSelected","computeAriaBusy","computeAriaChecked","computeAriaPressed","computeAriaCurrent","computeAriaExpanded","computeHeadingLevel","valueMatches","computeAriaValueNow","computeAriaValueMax","computeAriaValueMin","_computeAriaValueText","computeAriaValueText","computeAccessibleName","computeAccessibleDescription","isInaccessible","_roleElements$get","explicitRoleSelector","roleRelations","implicitRoleSelectors","getNameHint","nameHint","getMultipleError$1","getMissingError$1","_temp3","roles","childElement","prettyRoles","roleMessage","descriptionHint","queryAllByRoleWithSuggestions","queryByRole","getAllByRole","getByRole","findAllByRole","findByRole","getTestIdAttribute","queryAllByTestId","getMultipleError","id","getMissingError","queryAllByTestIdWithSuggestions","queryByTestId","getAllByTestId","getByTestId","findAllByTestId","findByTestId","queries","getQueriesForElement","queries$1","initialValue","helpers","key","fn","eventMap","eventAliasMap","fireEvent","element","event","getConfig","createEvent","eventName","node","init","_temp","EventType","defaultInit","eventInit","value","files","targetProperties","setNativeValue","window","getWindowFromNode","EventConstructor","bubbles","cancelable","detail","otherInit","eventKey","dataTransferKey","dataTransferValue","acc","propName","key","valueSetter","prototype","prototypeValueSetter","aliasKey","unindent","string","encode","lzString","getPlaygroundUrl","markup","debug","maxLength","options","el","logDOM","logTestingPlaygroundURL","getDocument","playgroundUrl","initialValue","screen","getQueriesForElement","queries","helpers","wrapEvent","cb","_element","getConfig","focusElement","element","target","findClosest","isFocusable","activeElement","getActiveElement","wrapEvent","updateSelectionOnFocus","blurElement","behavior","behavior","event","target","instance","context","control","isElementType","isFocusable","focusElement","cloneEvent","blurElement","getWindow","UIValue","UISelection","InitialValue","isUIValue","value","isUISelectionStart","start","setUIValue","element","getUIValue","setUIValueClean","clearInitialValue","getInitialValue","setUISelectionRaw","selection","setUISelection","focusOffsetParam","anchorOffsetParam","mode","valueLength","sanitizeOffset","o","anchorOffset","focusOffset","startOffset","endOffset","startObj","getUISelection","_element_selectionStart","_element_selectionEnd","_element_UISelection","sel","hasUISelection","setUISelectionClean","parseInt","buildTimeValue","value","onlyDigitsValue","firstDigit","secondDigit","index","build","hours","validHours","minuteCharacters","parsedMinutes","validMinutes","isValidDateOrTimeValue","element","clone","maxLengthSupportedTypes","getMaxLength","element","_element_getAttribute","attr","supportsMaxLength","isElementType","getNextCursorPosition","node","offset","direction","inputType","isTextNode","nextNode","getNextCharacterContentNode","isElementType","nextPlusOne","getOffset","nextOffset","isElement","walkNodes","isTreatedAsCharacterContent","i","callback","_node_ownerDocument","sibling","getDescendant","isContentEditable","TrackChanges","isReact17Element","element","k","getWindow","startTrackValue","trackOrSetValue","v","_element_TrackChanges_tracked","_element_TrackChanges","setUIValueClean","setUISelection","commitValueAfterInput","cursorOffset","_changes_tracked","changes","isJustReactStateUpdate","hasUISelection","getTargetTypeAndSelection","node","element","getElement","hasOwnSelection","getUISelection","selection","getContentEditable","getInputRange","focusNode","typeAndSelection","getTargetTypeAndSelection","_typeAndSelection_selection","setSelection","focusNode","focusOffset","anchorNode","anchorOffset","_anchorNode_ownerDocument_getSelection","_anchorNode_ownerDocument","getTargetTypeAndSelection","setUISelection","isDateOrTime","element","isElementType","input","instance","data","inputType","inputRange","getInputRange","editContenteditable","editInputElement","del","nextPosition","getNextCursorPosition","delRange","offset","text","dataToInsert","supportsMaxLength","maxLength","getMaxLength","spaceUntilMaxLength","newValue","newOffset","oldValue","calculateNewValue","isValidNumberInput","setUIValue","setSelection","isValidDateOrTimeValue","commitInput","clearInitialValue","inputData","node","startOffset","endOffset","value","getUIValue","prologEnd","prolog","epilogStart","epilog","builtValue","buildTimeValue","inputInit","commitValueAfterInput","_value_match","_value_match1","valueParts","behavior","event","target","instance","isEditable","input","getValueOrTextContent","element","isContentEditable","getUIValue","isVisible","element","window","getWindow","el","display","visibility","getTabDestination","activeElement","shift","document","focusableElements","FOCUSABLE_SELECTOR","enabledElements","el","isDisabled","a","b","i","j","checkedRadio","prunedElements","activeRadioGroup","isElementType","currentElement","e","index","isVisible","moveSelection","node","direction","hasOwnSelection","selection","getUISelection","setSelection","nextPosition","getNextCursorPosition","selectAll","target","hasOwnSelection","setSelection","getUIValue","_getContentEditable","focusNode","getContentEditable","isAllSelected","getUISelection","selection","setSelectionRange","element","anchorOffset","focusOffset","_element_firstChild","hasOwnSelection","setSelection","isContentEditable","walkRadio","instance","el","direction","window","getWindow","group","i","e","isDisabled","focusElement","behavior","event","target","instance","_keydownBehavior_event_key","_keydownBehavior_event_key1","keydownBehavior","combinationBehavior","isElementType","walkRadio","moveSelection","isEditable","input","isContentEditable","_getValueOrTextContent","_getValueOrTextContent_length","newPos","getValueOrTextContent","setSelectionRange","getUIValue","dest","getTabDestination","focusElement","hasOwnSelection","setUISelection","selectAll","behavior","event","target","instance","isElementType","ClickInputOnEnter","form","submit","SubmitSingleInputOnEnter","isEditable","inputType","isContentEditable","inputData","input","behavior","event","target","instance","_keyupBehavior_event_key","keyupBehavior","isClickableInput","behavior","event","target","instance","isEditable","_event_clipboardData","insertData","input","eventMap","getEventClass","type","mouseEvents","isMouseEvent","isKeyboardEvent","eventInitializer","initClipboardEvent","initUIEvent","initFocusEvent","initInputEvent","initUIEventModifiers","initMouseEvent","initPointerEvent","initKeyboardEvent","createEvent","type","target","init","window","getWindow","EventType","defaultInit","eventMap","event","getEventConstructors","f","_window_Event","Event","_window_AnimationEvent","AnimationEvent","_window_ClipboardEvent","ClipboardEvent","_window_PopStateEvent","PopStateEvent","_window_ProgressEvent","ProgressEvent","_window_TransitionEvent","TransitionEvent","_window_UIEvent","UIEvent","_window_CompositionEvent","CompositionEvent","_window_FocusEvent","FocusEvent","_window_InputEvent","InputEvent","_window_KeyboardEvent","KeyboardEvent","_window_MouseEvent","MouseEvent","_window_DragEvent","DragEvent","_window_PointerEvent","PointerEvent","_window_TouchEvent","TouchEvent","assignProps","obj","props","key","value","sanitizeNumber","n","clipboardData","relatedTarget","data","inputType","isComposing","view","detail","altKey","ctrlKey","metaKey","shiftKey","modifierAltGraph","modifierCapsLock","modifierFn","modifierFnLock","modifierNumLock","modifierScrollLock","modifierSymbol","modifierSymbolLock","k","code","location","repeat","charCode","x","y","screenX","screenY","clientX","clientY","button","buttons","offsetX","offsetY","pageX","pageY","pointerId","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","dispatchUIEvent","target","type","init","preventDefault","isMouseEvent","isKeyboardEvent","event","createEvent","dispatchEvent","_behavior_type","behaviorImplementation","behavior","defaultPrevented","wrapEvent","dispatchDOMEvent","patched","patchFocus","HTMLElement","focus","blur","patchedFocus","patchedBlur","activeCall","options","blurred","getActiveTarget","thisCall","dispatchDOMEvent","document","active","getActiveElement","Interceptor","prepareInterceptor","element","propName","interceptorImpl","prototypeDescriptor","objectDescriptor","target","intercept","args","applyNative","realArgs","then","realFunc","prepareValueInterceptor","v","isUI","isUIValue","startTrackValue","sanitizeValue","trackOrSetValue","isElementType","prepareSelectionInterceptor","start","others","isUISelectionStart","setUISelectionClean","setUISelectionRaw","getUIValue","prepareRangeTextInterceptor","setUIValueClean","isPrepared","prepareDocument","document","e","el","prepareElement","initialValue","getInitialValue","dispatchDOMEvent","clearInitialValue","isElementType","prepareValueInterceptor","prepareSelectionInterceptor","prepareRangeTextInterceptor","getDocumentFromNode","el","isDocument","node","ApiLevel","setLevelRef","instance","level","getLevelRef","wait","config","delay","resolve","PointerEventsCheckLevel","_define_property","obj","key","value","DOM_KEY_LOCATION","modifierKeys","isModifierKey","modifierLocks","isModifierLock","KeyboardHost","keyDef","p","instance","code","target","getActiveElementOrBody","unprevented","system","_this_registry","_code","_","o","_this_registry_code","defaultKeyMap","c","i","DOM_KEY_LOCATION","defaultKeyMap","_define_property","obj","key","value","Buttons","v","button","keyDef","getMouseButtonId","k","MouseButton","MouseButtonFlip","getMouseEventButton","_define_property","obj","key","value","Device","keyDef","getTreeDiff","a","b","treeA","el","treeB","resolveCaretPosition","target","node","offset","hasOwnSelection","getUIValue","findNodeAtTextOffset","isRoot","i","step","c","text","setSelectionPerMouseDown","document","target","clickCount","node","offset","hasNoSelection","targetHasOwnSelection","hasOwnSelection","text","getUIValue","start","end","getTextRange","setUISelection","startNode","startOffset","resolveCaretPosition","endNode","endOffset","range","selection","pos","textPos","modifySelectionPerMouseMove","selectionRange","document","target","node","offset","selectionFocus","resolveCaretPosition","anchorOffset","focusOffset","setUISelection","range","cmp","selection","isDifferentPointerPosition","positionA","positionB","_positionA_coords","_positionB_coords","_positionA_coords1","_positionB_coords1","_positionA_coords2","_positionB_coords2","_positionA_coords3","_positionB_coords3","_positionA_coords4","_positionB_coords4","_positionA_coords5","_positionB_coords5","_positionA_coords6","_positionB_coords6","_positionA_coords7","_positionB_coords7","_positionA_coords8","_positionB_coords8","_positionA_coords9","_positionB_coords9","_positionA_caret","_positionB_caret","_positionA_caret1","_positionB_caret1","_define_property","obj","key","value","Mouse","instance","position","isPrevented","prevPosition","prevTarget","isDifferentPointerPosition","nextTarget","init","leave","enter","getTreeDiff","el","keyDef","button","target","disabled","isDisabled","focusElement","getMouseEventButton","mouseUpInit","clickTarget","type","_this_position_target","clickCount","_this_position_caret","_this_position_caret1","setSelectionPerMouseDown","modifySelectionPerMouseMove","Buttons","current","_this_count_button","_this_count_button1","hasPointerEvents","instance","element","_checkPointerEvents","checkPointerEvents","closestPointerEventsDeclaration","window","getWindow","el","tree","pointerEvents","PointerEventsCheck","lastCheck","PointerEventsCheckLevel","hasBitFlag","ApiLevel","getLevelRef","declaration","assertPointerEvents","printTree","i","getLabelDescr","_element_labels","label","_element_ownerDocument_getElementById_textContent","_element_ownerDocument_getElementById","isElementType","_el_textContent","_element_textContent","conf","flag","_define_property","obj","key","value","Pointer","instance","target","enter","getTreeDiff","init","assertPointerEvents","el","position","prevPosition","prevTarget","isDifferentPointerPosition","nextTarget","leave","hasPointerEvents","button","_this_position_target","getMouseEventButton","pointerId","pointerType","isPrimary","buttons","_define_property","obj","key","value","PointerHost","keyDef","instance","position","pointerName","pointer","pointermove","mousemove","device","isPrevented","_this_mouse_position_target","system","k","_this_registry","_k","_","Device","pointerType","buttons","isPrimary","p","Pointer","Buttons","Mouse","_define_property","obj","key","value","System","KeyboardHost","PointerHost","click","element","pointerIn","dblClick","tripleClick","hover","element","unhover","assertPointerEvents","tab","shift","bracketDict","readNextDescriptor","text","context","pos","startBracket","type","readPrintableChar","readTag","descriptor","assertDescriptor","_text_slice_match","_text_slice_match1","releasePreviousModifier","escapedDescriptor","_text_slice_match_","repeatModifier","releaseSelfModifier","expectedEndBracket","endBracket","getErrorMessage","hasReleaseSelf","expected","found","parseKeyDef","keyboardMap","text","defs","type","descriptor","consumedLength","releasePrevious","releaseSelf","repeat","readNextDescriptor","_keyboardMap_find","keyDef","def","_def_code","_def_key","keyboard","text","actions","parseKeyDef","i","wait","keyboardAction","instance","keyDef","releasePrevious","releaseSelf","repeat","system","releaseAllKeys","k","copySelection","target","data","hasOwnSelection","readSelectedValueFromInput","dt","createDataTransfer","getWindow","type","sel","getUISelection","getUIValue","copy","doc","_doc_activeElement","target","clipboardData","copySelection","writeDataTransferToClipboard","cut","doc","_doc_activeElement","target","clipboardData","copySelection","writeDataTransferToClipboard","paste","clipboardData","doc","_doc_activeElement","target","_ref","dataTransfer","getClipboardDataFromString","readDataTransferFromClipboard","text","dt","createDataTransfer","getWindow","parseKeyDef","pointerMap","keys","defs","descriptor","consumedLength","releasePrevious","releaseSelf","readNextDescriptor","keyDef","p","pointer","input","pointerMap","actions","actionInput","parseKeyDef","i","wait","pointerAction","instance","action","_previousPosition_caret","_previousPosition_caret1","pointerName","previousPosition","_action_target","_action_coords","_action_node","_action_offset","position","getPrevTarget","hasCaretPosition","setLevelRef","ApiLevel","_ref","_position_target","clear","element","isEditable","isDisabled","focusElement","selectAll","isAllSelected","input","selectOptions","select","values","selectOptionsBase","deselectOptions","newValue","getConfig","valArray","allOptions","selectedOptions","val","matchingOption","o","option","isDisabled","selectOption","isElementType","withPointerEvents","hasPointerEvents","focusElement","wait","type","element","text","skipClick","skipAutoClose","initialSelectionStart","initialSelectionEnd","setSelectionRange","releaseAllKeys","fakeFiles","restoreProperty","obj","prop","descriptor","setFiles","el","files","_el_fakeFiles","typeDescr","valueDescr","filesDescr","restore","v","_valueDescr_set","upload","element","fileOrFiles","input","isElementType","isDisabled","files","file","isAcceptableFile","fileDialog","_input_files","f","i","setFiles","createFileList","getWindow","normalize","nameOrType","accept","wildcards","acceptToken","userEventApi","click","dblClick","tripleClick","hover","unhover","tab","keyboard","copy","cut","paste","pointer","clear","deselectOptions","selectOptions","type","upload","wrapAsync","implementation","getConfig","defaultOptionsDirect","defaultKeyMap","PointerEventsCheckLevel","defaultOptionsSetup","createConfig","options","defaults","node","document","getDocument","setupMain","config","prepareDocument","patchFocus","getWindow","_config_document_defaultView","view","attachClipboardStubToView","createInstance","setupDirect","keyboardState","pointerState","_ref","system","System","setupSub","wrapAndBindImpl","instance","impl","method","args","setLevelRef","ApiLevel","wrapAsync","ret","wait","dispatchEvent","dispatchUIEvent","userEventApi","name","api","_options_document","getDocumentFromNode","directApi_exports","__export","clear","click","copy","cut","dblClick","deselectOptions","hover","keyboard","paste","pointer","selectOptions","tab","tripleClick","type","unhover","upload","clear","element","setupDirect","click","options","copy","cut","dblClick","deselectOptions","select","values","hover","keyboard","text","api","system","pointer","input","paste","clipboardData","selectOptions","tripleClick","type","unhover","upload","fileOrFiles","tab","userEvent","directApi_exports","setupMain","MacOSModifiers","WindowsModifiers","defaultUserEventOptions","Virtual","#activeNode","#container","#cursor","#itemTextLog","#spokenPhraseLog","#treeCache","#disconnectDOMObserver","#boundHandleFocusChange","#checkContainer","ERR_VIRTUAL_NOT_STARTED","#createCursor","root","#setActiveNode","accessibilityNode","rect","getElementNode","#getAccessibilityTree","tree","createAccessibilityTree","flattenTree","#getModalAccessibilityTree","parentDialog","#invalidateTreeCache","#handleFocusChange","target","tick","newActiveNode","node","#updateState","#focusActiveElement","#announceLiveRegions","mutations","container","mutation","getLiveSpokenPhrase","spokenPhrase","#spokenPhraseLogWithoutLiveRegions","LIVE","ignoreIfNoChange","parentDialogNode","getSpokenPhrase","itemText","getItemText","#refreshState","currentIndex","#getCurrentIndexByNode","#getCurrentIndex","accessibleDescription","accessibleName","accessibleValue","role","spokenRole","commands","command","displayCursor","ERR_VIRTUAL_MISSING_CONTAINER","observeDOM","nextIndex","userEvent","key","rawKeys","modifiers","keys","rawKey","keyboardCommand","modifier","text","options","button","clickCount","virtual","Virtual"]}