{"version":3,"file":"js/vendors-3d7bb971.min.js?t=1743075070513","mappings":"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","sources":["webpack://frontend/./node_modules/@vonage/vivid/shared/definition29.js","webpack://frontend/./node_modules/@vonage/vivid/shared/definition2.js"],"sourcesContent":["import { F as FoundationElement, D as DOM, _ as __decorate, a as attr, o as observable, h as html, r as registerFactory } from './index.js';\nimport { a as iconRegistries } from './definition27.js';\nimport { A as AffixIcon, a as affixIconTemplateFactory } from './affix.js';\nimport { b as anchored } from './anchored.js';\nimport { S as StartEnd } from './start-end.js';\nimport { D as Direction, g as getDirection } from './direction.js';\nimport { a as applyMixins } from './apply-mixins.js';\nimport { i as keyArrowLeft, h as keyArrowRight, a as keySpace, k as keyEnter, g as keyHome, d as keyEnd, e as keyArrowUp, f as keyArrowDown } from './key-codes.js';\nimport { i as isHTMLElement } from './dom.js';\nimport { I as Icon } from './icon.js';\nimport { s as slotted, e as elements } from './slotted.js';\nimport { w as when } from './when.js';\nimport { c as classNames } from './class-names.js';\n\n/**\n * Menu items roles.\n * @public\n */\nconst MenuItemRole$1 = {\n /**\n * The menu item has a \"menuitem\" role\n */\n menuitem: \"menuitem\",\n /**\n * The menu item has a \"menuitemcheckbox\" role\n */\n menuitemcheckbox: \"menuitemcheckbox\",\n /**\n * The menu item has a \"menuitemradio\" role\n */\n menuitemradio: \"menuitemradio\",\n};\n/**\n * @internal\n */\nconst roleForMenuItem = {\n [MenuItemRole$1.menuitem]: \"menuitem\",\n [MenuItemRole$1.menuitemcheckbox]: \"menuitemcheckbox\",\n [MenuItemRole$1.menuitemradio]: \"menuitemradio\",\n};\n\n/**\n * A Switch Custom HTML Element.\n * Implements {@link https://www.w3.org/TR/wai-aria-1.1/#menuitem | ARIA menuitem }, {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemcheckbox | ARIA menuitemcheckbox}, or {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemradio | ARIA menuitemradio }.\n *\n * @slot checked-indicator - The checked indicator\n * @slot radio-indicator - The radio indicator\n * @slot start - Content which can be provided before the menu item content\n * @slot end - Content which can be provided after the menu item content\n * @slot - The default slot for menu item content\n * @slot expand-collapse-indicator - The expand/collapse indicator\n * @slot submenu - Used to nest menu's within menu items\n * @csspart input-container - The element representing the visual checked or radio indicator\n * @csspart checkbox - The element wrapping the `menuitemcheckbox` indicator\n * @csspart radio - The element wrapping the `menuitemradio` indicator\n * @csspart content - The element wrapping the menu item content\n * @csspart expand-collapse-glyph-container - The element wrapping the expand collapse element\n * @csspart expand-collapse - The expand/collapse element\n * @csspart submenu-region - The container for the submenu, used for positioning\n * @fires expanded-change - Fires a custom 'expanded-change' event when the expanded state changes\n * @fires change - Fires a custom 'change' event when a non-submenu item with a role of `menuitemcheckbox`, `menuitemradio`, or `menuitem` is invoked\n *\n * @public\n */\nlet MenuItem$1 = class MenuItem extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * The role of the element.\n *\n * @public\n * @remarks\n * HTML Attribute: role\n */\n this.role = MenuItemRole$1.menuitem;\n /**\n * @internal\n */\n this.hasSubmenu = false;\n /**\n * Track current direction to pass to the anchored region\n *\n * @internal\n */\n this.currentDirection = Direction.ltr;\n this.focusSubmenuOnLoad = false;\n /**\n * @internal\n */\n this.handleMenuItemKeyDown = (e) => {\n if (e.defaultPrevented) {\n return false;\n }\n switch (e.key) {\n case keyEnter:\n case keySpace:\n this.invoke();\n return false;\n case keyArrowRight:\n //open/focus on submenu\n this.expandAndFocus();\n return false;\n case keyArrowLeft:\n //close submenu\n if (this.expanded) {\n this.expanded = false;\n this.focus();\n return false;\n }\n }\n return true;\n };\n /**\n * @internal\n */\n this.handleMenuItemClick = (e) => {\n if (e.defaultPrevented || this.disabled) {\n return false;\n }\n this.invoke();\n return false;\n };\n /**\n * @internal\n */\n this.submenuLoaded = () => {\n if (!this.focusSubmenuOnLoad) {\n return;\n }\n this.focusSubmenuOnLoad = false;\n if (this.hasSubmenu) {\n this.submenu.focus();\n this.setAttribute(\"tabindex\", \"-1\");\n }\n };\n /**\n * @internal\n */\n this.handleMouseOver = (e) => {\n if (this.disabled || !this.hasSubmenu || this.expanded) {\n return false;\n }\n this.expanded = true;\n return false;\n };\n /**\n * @internal\n */\n this.handleMouseOut = (e) => {\n if (!this.expanded || this.contains(document.activeElement)) {\n return false;\n }\n this.expanded = false;\n return false;\n };\n /**\n * @internal\n */\n this.expandAndFocus = () => {\n if (!this.hasSubmenu) {\n return;\n }\n this.focusSubmenuOnLoad = true;\n this.expanded = true;\n };\n /**\n * @internal\n */\n this.invoke = () => {\n if (this.disabled) {\n return;\n }\n switch (this.role) {\n case MenuItemRole$1.menuitemcheckbox:\n this.checked = !this.checked;\n break;\n case MenuItemRole$1.menuitem:\n // update submenu\n this.updateSubmenu();\n if (this.hasSubmenu) {\n this.expandAndFocus();\n }\n else {\n this.$emit(\"change\");\n }\n break;\n case MenuItemRole$1.menuitemradio:\n if (!this.checked) {\n this.checked = true;\n }\n break;\n }\n };\n /**\n * Gets the submenu element if any\n *\n * @internal\n */\n this.updateSubmenu = () => {\n this.submenu = this.domChildren().find((element) => {\n return element.getAttribute(\"role\") === \"menu\";\n });\n this.hasSubmenu = this.submenu === undefined ? false : true;\n };\n }\n expandedChanged(oldValue) {\n if (this.$fastController.isConnected) {\n if (this.submenu === undefined) {\n return;\n }\n if (this.expanded === false) {\n this.submenu.collapseExpandedItem();\n }\n else {\n this.currentDirection = getDirection(this);\n }\n this.$emit(\"expanded-change\", this, { bubbles: false });\n }\n }\n checkedChanged(oldValue, newValue) {\n if (this.$fastController.isConnected) {\n this.$emit(\"change\");\n }\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n DOM.queueUpdate(() => {\n this.updateSubmenu();\n });\n if (!this.startColumnCount) {\n this.startColumnCount = 1;\n }\n this.observer = new MutationObserver(this.updateSubmenu);\n }\n /**\n * @internal\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.submenu = undefined;\n if (this.observer !== undefined) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n }\n /**\n * get an array of valid DOM children\n */\n domChildren() {\n return Array.from(this.children).filter(child => !child.hasAttribute(\"hidden\"));\n }\n};\n__decorate([\n attr({ mode: \"boolean\" })\n], MenuItem$1.prototype, \"disabled\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], MenuItem$1.prototype, \"expanded\", void 0);\n__decorate([\n observable\n], MenuItem$1.prototype, \"startColumnCount\", void 0);\n__decorate([\n attr\n], MenuItem$1.prototype, \"role\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], MenuItem$1.prototype, \"checked\", void 0);\n__decorate([\n observable\n], MenuItem$1.prototype, \"submenuRegion\", void 0);\n__decorate([\n observable\n], MenuItem$1.prototype, \"hasSubmenu\", void 0);\n__decorate([\n observable\n], MenuItem$1.prototype, \"currentDirection\", void 0);\n__decorate([\n observable\n], MenuItem$1.prototype, \"submenu\", void 0);\napplyMixins(MenuItem$1, StartEnd);\n\n/**\n * A Menu Custom HTML Element.\n * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#menu | ARIA menu }.\n *\n * @slot - The default slot for the menu items\n *\n * @public\n */\nlet Menu$1 = class Menu extends FoundationElement {\n constructor() {\n super(...arguments);\n this.expandedItem = null;\n /**\n * The index of the focusable element in the items array\n * defaults to -1\n */\n this.focusIndex = -1;\n /**\n * @internal\n */\n this.isNestedMenu = () => {\n return (this.parentElement !== null &&\n isHTMLElement(this.parentElement) &&\n this.parentElement.getAttribute(\"role\") === \"menuitem\");\n };\n /**\n * if focus is moving out of the menu, reset to a stable initial state\n * @internal\n */\n this.handleFocusOut = (e) => {\n if (!this.contains(e.relatedTarget) && this.menuItems !== undefined) {\n this.collapseExpandedItem();\n // find our first focusable element\n const focusIndex = this.menuItems.findIndex(this.isFocusableElement);\n // set the current focus index's tabindex to -1\n this.menuItems[this.focusIndex].setAttribute(\"tabindex\", \"-1\");\n // set the first focusable element tabindex to 0\n this.menuItems[focusIndex].setAttribute(\"tabindex\", \"0\");\n // set the focus index\n this.focusIndex = focusIndex;\n }\n };\n this.handleItemFocus = (e) => {\n const targetItem = e.target;\n if (this.menuItems !== undefined &&\n targetItem !== this.menuItems[this.focusIndex]) {\n this.menuItems[this.focusIndex].setAttribute(\"tabindex\", \"-1\");\n this.focusIndex = this.menuItems.indexOf(targetItem);\n targetItem.setAttribute(\"tabindex\", \"0\");\n }\n };\n this.handleExpandedChanged = (e) => {\n if (e.defaultPrevented ||\n e.target === null ||\n this.menuItems === undefined ||\n this.menuItems.indexOf(e.target) < 0) {\n return;\n }\n e.preventDefault();\n const changedItem = e.target;\n // closing an expanded item without opening another\n if (this.expandedItem !== null &&\n changedItem === this.expandedItem &&\n changedItem.expanded === false) {\n this.expandedItem = null;\n return;\n }\n if (changedItem.expanded) {\n if (this.expandedItem !== null && this.expandedItem !== changedItem) {\n this.expandedItem.expanded = false;\n }\n this.menuItems[this.focusIndex].setAttribute(\"tabindex\", \"-1\");\n this.expandedItem = changedItem;\n this.focusIndex = this.menuItems.indexOf(changedItem);\n changedItem.setAttribute(\"tabindex\", \"0\");\n }\n };\n this.removeItemListeners = () => {\n if (this.menuItems !== undefined) {\n this.menuItems.forEach((item) => {\n item.removeEventListener(\"expanded-change\", this.handleExpandedChanged);\n item.removeEventListener(\"focus\", this.handleItemFocus);\n });\n }\n };\n this.setItems = () => {\n const newItems = this.domChildren();\n this.removeItemListeners();\n this.menuItems = newItems;\n const menuItems = this.menuItems.filter(this.isMenuItemElement);\n // if our focus index is not -1 we have items\n if (menuItems.length) {\n this.focusIndex = 0;\n }\n function elementIndent(el) {\n const role = el.getAttribute(\"role\");\n const startSlot = el.querySelector(\"[slot=start]\");\n if (role !== MenuItemRole$1.menuitem && startSlot === null) {\n return 1;\n }\n else if (role === MenuItemRole$1.menuitem && startSlot !== null) {\n return 1;\n }\n else if (role !== MenuItemRole$1.menuitem && startSlot !== null) {\n return 2;\n }\n else {\n return 0;\n }\n }\n const indent = menuItems.reduce((accum, current) => {\n const elementValue = elementIndent(current);\n return accum > elementValue ? accum : elementValue;\n }, 0);\n menuItems.forEach((item, index) => {\n item.setAttribute(\"tabindex\", index === 0 ? \"0\" : \"-1\");\n item.addEventListener(\"expanded-change\", this.handleExpandedChanged);\n item.addEventListener(\"focus\", this.handleItemFocus);\n if (item instanceof MenuItem$1 || \"startColumnCount\" in item) {\n item.startColumnCount = indent;\n }\n });\n };\n /**\n * handle change from child element\n */\n this.changeHandler = (e) => {\n if (this.menuItems === undefined) {\n return;\n }\n const changedMenuItem = e.target;\n const changeItemIndex = this.menuItems.indexOf(changedMenuItem);\n if (changeItemIndex === -1) {\n return;\n }\n if (changedMenuItem.role === \"menuitemradio\" &&\n changedMenuItem.checked === true) {\n for (let i = changeItemIndex - 1; i >= 0; --i) {\n const item = this.menuItems[i];\n const role = item.getAttribute(\"role\");\n if (role === MenuItemRole$1.menuitemradio) {\n item.checked = false;\n }\n if (role === \"separator\") {\n break;\n }\n }\n const maxIndex = this.menuItems.length - 1;\n for (let i = changeItemIndex + 1; i <= maxIndex; ++i) {\n const item = this.menuItems[i];\n const role = item.getAttribute(\"role\");\n if (role === MenuItemRole$1.menuitemradio) {\n item.checked = false;\n }\n if (role === \"separator\") {\n break;\n }\n }\n }\n };\n /**\n * check if the item is a menu item\n */\n this.isMenuItemElement = (el) => {\n return (isHTMLElement(el) &&\n Menu.focusableElementRoles.hasOwnProperty(el.getAttribute(\"role\")));\n };\n /**\n * check if the item is focusable\n */\n this.isFocusableElement = (el) => {\n return this.isMenuItemElement(el);\n };\n }\n itemsChanged(oldValue, newValue) {\n // only update children after the component is connected and\n // the setItems has run on connectedCallback\n // (menuItems is undefined until then)\n if (this.$fastController.isConnected && this.menuItems !== undefined) {\n this.setItems();\n }\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n DOM.queueUpdate(() => {\n // wait until children have had a chance to\n // connect before setting/checking their props/attributes\n this.setItems();\n });\n this.addEventListener(\"change\", this.changeHandler);\n }\n /**\n * @internal\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeItemListeners();\n this.menuItems = undefined;\n this.removeEventListener(\"change\", this.changeHandler);\n }\n /**\n * Focuses the first item in the menu.\n *\n * @public\n */\n focus() {\n this.setFocus(0, 1);\n }\n /**\n * Collapses any expanded menu items.\n *\n * @public\n */\n collapseExpandedItem() {\n if (this.expandedItem !== null) {\n this.expandedItem.expanded = false;\n this.expandedItem = null;\n }\n }\n /**\n * @internal\n */\n handleMenuKeyDown(e) {\n if (e.defaultPrevented || this.menuItems === undefined) {\n return;\n }\n switch (e.key) {\n case keyArrowDown:\n // go forward one index\n this.setFocus(this.focusIndex + 1, 1);\n return;\n case keyArrowUp:\n // go back one index\n this.setFocus(this.focusIndex - 1, -1);\n return;\n case keyEnd:\n // set focus on last item\n this.setFocus(this.menuItems.length - 1, -1);\n return;\n case keyHome:\n // set focus on first item\n this.setFocus(0, 1);\n return;\n default:\n // if we are not handling the event, do not prevent default\n return true;\n }\n }\n /**\n * get an array of valid DOM children\n */\n domChildren() {\n return Array.from(this.children).filter(child => !child.hasAttribute(\"hidden\"));\n }\n setFocus(focusIndex, adjustment) {\n if (this.menuItems === undefined) {\n return;\n }\n while (focusIndex >= 0 && focusIndex < this.menuItems.length) {\n const child = this.menuItems[focusIndex];\n if (this.isFocusableElement(child)) {\n // change the previous index to -1\n if (this.focusIndex > -1 &&\n this.menuItems.length >= this.focusIndex - 1) {\n this.menuItems[this.focusIndex].setAttribute(\"tabindex\", \"-1\");\n }\n // update the focus index\n this.focusIndex = focusIndex;\n // update the tabindex of next focusable element\n child.setAttribute(\"tabindex\", \"0\");\n // focus the element\n child.focus();\n break;\n }\n focusIndex += adjustment;\n }\n }\n};\nMenu$1.focusableElementRoles = roleForMenuItem;\n__decorate([\n observable\n], Menu$1.prototype, \"items\", void 0);\n\nconst styles = \":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;border-radius:8px}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}\";\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass$1 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$1(target, key, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\nvar _triggerBehaviour, triggerBehaviour_get, _setupAnchor, setupAnchor_fn, _updateAnchor, updateAnchor_fn, _cleanupAnchor, cleanupAnchor_fn, _onAnchorClick;\nlet Menu = class extends Menu$1 {\n constructor() {\n super();\n __privateAdd(this, _triggerBehaviour);\n __privateAdd(this, _setupAnchor);\n __privateAdd(this, _updateAnchor);\n __privateAdd(this, _cleanupAnchor);\n this.ariaLabel = null;\n this.placement = \"bottom\";\n this.autoDismiss = false;\n this.open = false;\n __privateAdd(this, _onAnchorClick, () => {\n if (__privateGet(this, _triggerBehaviour, triggerBehaviour_get) === \"off\") {\n return;\n }\n if (__privateGet(this, _triggerBehaviour, triggerBehaviour_get) === \"legacy\" && this.open) {\n return;\n }\n const newValue = !this.open;\n DOM.queueUpdate(() => this.open = newValue);\n });\n this._onFocusout = (e) => {\n const focusTarget = e.relatedTarget;\n const focusMovedAway = !this.contains(focusTarget) && !this._anchorEl?.contains(focusTarget);\n if (this.autoDismiss && focusMovedAway) {\n this.open = false;\n }\n };\n const handleFocusOut = this.handleFocusOut;\n this.handleFocusOut = (e) => {\n const privates2 = this;\n const isSafeToCallSuper = privates2.menuItems.some(\n privates2.isFocusableElement\n );\n if (!isSafeToCallSuper) {\n return;\n }\n handleFocusOut(e);\n };\n const privates = this;\n const domChildren = privates.domChildren;\n privates.domChildren = () => {\n return domChildren.call(this).filter((child) => !child.hasAttribute(\"slot\"));\n };\n }\n openChanged(_, newValue) {\n newValue ? this.$emit(\"open\", void 0, { bubbles: false }) : this.$emit(\"close\", void 0, { bubbles: false });\n if (this._anchorEl) {\n __privateMethod(this, _updateAnchor, updateAnchor_fn).call(this, this._anchorEl);\n }\n }\n /**\n * @internal\n */\n _anchorElChanged(oldValue, newValue) {\n if (oldValue)\n __privateMethod(this, _cleanupAnchor, cleanupAnchor_fn).call(this, oldValue);\n if (newValue)\n __privateMethod(this, _setupAnchor, setupAnchor_fn).call(this, newValue);\n }\n /**\n * @internal\n */\n _onChange(e) {\n const clickedOnNonCheckboxMenuItem = e.target instanceof HTMLElement && (e.target.role === \"menuitem\" || e.target.role === \"menuitemradio\");\n if (__privateGet(this, _triggerBehaviour, triggerBehaviour_get) === \"auto\" && clickedOnNonCheckboxMenuItem) {\n this.open = false;\n }\n return true;\n }\n};\n_triggerBehaviour = new WeakSet();\ntriggerBehaviour_get = function() {\n return this.trigger ?? \"legacy\";\n};\n_setupAnchor = new WeakSet();\nsetupAnchor_fn = function(a) {\n a.addEventListener(\"click\", __privateGet(this, _onAnchorClick), true);\n a.addEventListener(\"focusout\", this._onFocusout);\n a.setAttribute(\"aria-haspopup\", \"menu\");\n __privateMethod(this, _updateAnchor, updateAnchor_fn).call(this, a);\n};\n_updateAnchor = new WeakSet();\nupdateAnchor_fn = function(a) {\n a.setAttribute(\"aria-expanded\", this.open.toString());\n};\n_cleanupAnchor = new WeakSet();\ncleanupAnchor_fn = function(a) {\n a.removeEventListener(\"click\", __privateGet(this, _onAnchorClick), true);\n a.removeEventListener(\"focusout\", this._onFocusout);\n a.removeAttribute(\"aria-hasPopup\");\n a.removeAttribute(\"aria-expanded\");\n};\n_onAnchorClick = new WeakMap();\n__decorateClass$1([\n attr({ attribute: \"aria-label\" })\n], Menu.prototype, \"ariaLabel\", 2);\n__decorateClass$1([\n attr({ mode: \"fromView\" })\n], Menu.prototype, \"placement\", 2);\n__decorateClass$1([\n attr\n], Menu.prototype, \"trigger\", 2);\n__decorateClass$1([\n attr({ mode: \"boolean\", attribute: \"auto-dismiss\" })\n], Menu.prototype, \"autoDismiss\", 2);\n__decorateClass$1([\n attr({ mode: \"boolean\" })\n], Menu.prototype, \"open\", 2);\n__decorateClass$1([\n observable\n], Menu.prototype, \"headerSlottedContent\", 2);\n__decorateClass$1([\n observable\n], Menu.prototype, \"actionItemsSlottedContent\", 2);\nMenu = __decorateClass$1([\n anchored\n], Menu);\n\nvar __defProp = Object.defineProperty;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = void 0 ;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (decorator(target, key, result) ) || result;\n if (result)\n __defProp(target, key, result);\n return result;\n};\nconst MenuItemRole = {\n ...MenuItemRole$1,\n presentation: \"presentation\"\n};\nvar CheckAppearance = /* @__PURE__ */ ((CheckAppearance2) => {\n CheckAppearance2[\"Normal\"] = \"normal\";\n CheckAppearance2[\"TickOnly\"] = \"tick-only\";\n return CheckAppearance2;\n})(CheckAppearance || {});\nclass MenuItem extends MenuItem$1 {\n constructor() {\n super();\n this.checkTrailing = false;\n this.#submenuArray = [];\n this.updateSubmenu = () => this.#updateSubmenu();\n this.addEventListener(\"expanded-change\", this.#expandedChange);\n }\n #submenuArray;\n /**\n *\n *\n * @internal\n */\n slottedSubmenuChanged(_oldValue, newValue) {\n this.#submenuArray = newValue;\n }\n #updateSubmenu() {\n for (const submenu of this.#submenuArray) {\n this.submenu = submenu;\n this.submenu.anchor = this;\n this.submenu.placement = \"right-start\";\n this.submenu.collapseExpandedItem = () => this.#collapseExpandedItem();\n }\n this.hasSubmenu = this.submenu === void 0 ? false : true;\n }\n #collapseExpandedItem() {\n this.expanded = false;\n }\n #expandedChange() {\n if (this.hasSubmenu) {\n this.submenu.open = this.expanded;\n }\n }\n}\n__decorateClass([\n attr\n], MenuItem.prototype, \"text\");\n__decorateClass([\n attr({ attribute: \"text-secondary\" })\n], MenuItem.prototype, \"textSecondary\");\n__decorateClass([\n attr\n], MenuItem.prototype, \"connotation\");\n__decorateClass([\n attr({ mode: \"boolean\", attribute: \"check-trailing\" })\n], MenuItem.prototype, \"checkTrailing\");\n__decorateClass([\n attr({ attribute: \"check-appearance\" })\n], MenuItem.prototype, \"checkedAppearance\");\n__decorateClass([\n observable\n], MenuItem.prototype, \"metaSlottedContent\");\n__decorateClass([\n observable\n], MenuItem.prototype, \"trailingMetaSlottedContent\");\n__decorateClass([\n observable\n], MenuItem.prototype, \"slottedSubmenu\");\napplyMixins(MenuItem, AffixIcon);\n\nconst getIndicatorIcon = (x) => {\n if (x.checkedAppearance === CheckAppearance.TickOnly) {\n return x.checked ? \"check-line\" : \"\";\n }\n const iconType = x.role === MenuItemRole.menuitemcheckbox ? \"checkbox\" : \"radio\";\n const iconStatus = x.checked ? \"checked\" : \"unchecked\";\n return `${iconType}-${iconStatus}-2-line`;\n};\nconst getClasses = ({\n connotation,\n disabled,\n checked,\n role,\n text: text2,\n textSecondary,\n icon,\n metaSlottedContent,\n checkTrailing\n}) => classNames(\n \"base\",\n [`connotation-${connotation}`, Boolean(connotation)],\n [\"disabled\", Boolean(disabled)],\n [\"selected\", role !== MenuItemRole.menuitem && Boolean(checked)],\n [\n \"trailing\",\n role !== MenuItemRole.menuitem && (checkTrailing || Boolean(icon))\n ],\n [\"item-checkbox\", role === MenuItemRole.menuitemcheckbox],\n [\"item-radio\", role === MenuItemRole.menuitemradio],\n [\"two-lines\", Boolean(text2?.length) && Boolean(textSecondary?.length)],\n [\"has-meta\", Boolean(metaSlottedContent?.length)]\n);\nfunction handleClick(x, { event }) {\n x.handleMenuItemClick(event);\n return x.role === MenuItemRole.presentation;\n}\nfunction checkIndicator(context) {\n const iconTag = context.tagFor(Icon);\n return html`${when(\n (x) => x.role === MenuItemRole.menuitemcheckbox || x.role === MenuItemRole.menuitemradio,\n html`<span class=\"action\"><${iconTag} class=\"icon\" name=\"${(x) => getIndicatorIcon(x)}\"></${iconTag}></span>`\n )}`;\n}\nfunction text() {\n return html`${when(\n (x) => x.text || x.textSecondary,\n html`<span class=\"text\">\n\t\t\t${when(\n (x) => x.text,\n html`<span class=\"text-primary\">${(x) => x.text}</span>`\n )}\n\t\t\t${when(\n (x) => x.textSecondary,\n html`<span class=\"text-secondary\">${(x) => x.textSecondary}</span>`\n )}\n\t\t</span>`\n )}`;\n}\nconst MenuItemTemplate = (context) => {\n const affixIconTemplate = affixIconTemplateFactory(context);\n const iconTag = context.tagFor(Icon);\n return html`\n\t\t<template\n\t\t\trole=\"${(x) => x.role ? x.role : MenuItemRole.menuitem}\"\n\t\t\taria-haspopup=\"${(x) => x.hasSubmenu ? \"menu\" : void 0}\"\n\t\t\taria-checked=\"${(x) => x.role !== MenuItemRole.menuitem ? x.checked : void 0}\"\n\t\t\taria-disabled=\"${(x) => x.disabled}\"\n\t\t\taria-expanded=\"${(x) => x.expanded}\"\n\t\t\t@keydown=\"${(x, c) => x.handleMenuItemKeyDown(c.event)}\"\n\t\t\t@click=\"${handleClick}\"\n\t\t\t@mouseover=\"${(x, c) => x.handleMouseOver(c.event)}\"\n\t\t\t@mouseout=\"${(x, c) => x.handleMouseOut(c.event)}\"\n\t\t>\n\t\t\t<div class=\"${getClasses}\">\n\t\t\t\t<slot name=\"meta\" ${slotted(\"metaSlottedContent\")}></slot>\n\t\t\t\t${checkIndicator(context)}\n\t\t\t\t${when(\n (x) => x.icon,\n html`<span class=\"decorative\"\n\t\t\t\t\t\t>${(x) => affixIconTemplate(x.icon)}</span\n\t\t\t\t\t>`\n )}\n\t\t\t\t${text()}\n\t\t\t\t<slot\n\t\t\t\t\tname=\"trailing-meta\"\n\t\t\t\t\t${slotted(\"trailingMetaSlottedContent\")}\n\t\t\t\t></slot>\n\t\t\t\t${when(\n (x) => x.hasSubmenu,\n html`<${iconTag} class=\"chevron\" name=\"chevron-right-line\"></${iconTag}>`\n )}\n\t\t\t</div>\n\t\t\t<slot\n\t\t\t\tname=\"submenu\"\n\t\t\t\t${slotted({\n property: \"slottedSubmenu\",\n filter: elements(context.tagFor(Menu))\n })}\n\t\t\t></slot>\n\t\t</template>\n\t`;\n};\n\nconst menuItemDefinition = MenuItem.compose({\n baseName: \"menu-item\",\n template: MenuItemTemplate,\n styles\n});\nconst menuItemRegistries = [menuItemDefinition(), ...iconRegistries];\nconst registerMenuItem = registerFactory(menuItemRegistries);\n\nexport { MenuItemRole as M, menuItemRegistries as a, Menu as b, MenuItem as c, menuItemDefinition as m, registerMenuItem as r };\n","import { F as FoundationElement, _ as __decorate, a as attr, o as observable, h as html, r as registerFactory } from './index.js';\nimport { A as AccordionItem$1, b as accordionItemRegistries } from './definition.js';\nimport { d as keyEnd, g as keyHome, f as keyArrowDown, e as keyArrowUp } from './key-codes.js';\nimport { w as wrapInBounds } from './numbers.js';\nimport { s as slotted, e as elements } from './slotted.js';\nimport { c as classNames } from './class-names.js';\n\n/**\n * Expand mode for {@link Accordion}\n * @public\n */\nconst AccordionExpandMode = {\n /**\n * Designates only a single {@link @microsoft/fast-foundation#(AccordionItem:class) } can be open a time.\n */\n single: \"single\",\n /**\n * Designates multiple {@link @microsoft/fast-foundation#(AccordionItem:class) | AccordionItems} can be open simultaneously.\n */\n multi: \"multi\",\n};\n/**\n * An Accordion Custom HTML Element\n * Implements {@link https://www.w3.org/TR/wai-aria-practices-1.1/#accordion | ARIA Accordion}.\n *\n * @fires change - Fires a custom 'change' event when the active item changes\n * @csspart item - The slot for the accordion items\n * @public\n *\n * @remarks\n * Designed to be used with {@link @microsoft/fast-foundation#accordionTemplate} and {@link @microsoft/fast-foundation#(AccordionItem:class)}.\n */\nlet Accordion$1 = class Accordion extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * Controls the expand mode of the Accordion, either allowing\n * single or multiple item expansion.\n * @public\n *\n * @remarks\n * HTML attribute: expand-mode\n */\n this.expandmode = AccordionExpandMode.multi;\n this.activeItemIndex = 0;\n this.change = () => {\n this.$emit(\"change\", this.activeid);\n };\n this.setItems = () => {\n var _a;\n if (this.accordionItems.length === 0) {\n return;\n }\n this.accordionIds = this.getItemIds();\n this.accordionItems.forEach((item, index) => {\n if (item instanceof AccordionItem$1) {\n item.addEventListener(\"change\", this.activeItemChange);\n if (this.isSingleExpandMode()) {\n this.activeItemIndex !== index\n ? (item.expanded = false)\n : (item.expanded = true);\n }\n }\n const itemId = this.accordionIds[index];\n item.setAttribute(\"id\", typeof itemId !== \"string\" ? `accordion-${index + 1}` : itemId);\n this.activeid = this.accordionIds[this.activeItemIndex];\n item.addEventListener(\"keydown\", this.handleItemKeyDown);\n item.addEventListener(\"focus\", this.handleItemFocus);\n });\n if (this.isSingleExpandMode()) {\n const expandedItem = (_a = this.findExpandedItem()) !== null && _a !== void 0 ? _a : this.accordionItems[0];\n expandedItem.setAttribute(\"aria-disabled\", \"true\");\n }\n };\n this.removeItemListeners = (oldValue) => {\n oldValue.forEach((item, index) => {\n item.removeEventListener(\"change\", this.activeItemChange);\n item.removeEventListener(\"keydown\", this.handleItemKeyDown);\n item.removeEventListener(\"focus\", this.handleItemFocus);\n });\n };\n this.activeItemChange = (event) => {\n if (event.defaultPrevented || event.target !== event.currentTarget) {\n return;\n }\n event.preventDefault();\n const selectedItem = event.target;\n this.activeid = selectedItem.getAttribute(\"id\");\n if (this.isSingleExpandMode()) {\n this.resetItems();\n selectedItem.expanded = true;\n selectedItem.setAttribute(\"aria-disabled\", \"true\");\n this.accordionItems.forEach((item) => {\n if (!item.hasAttribute(\"disabled\") && item.id !== this.activeid) {\n item.removeAttribute(\"aria-disabled\");\n }\n });\n }\n this.activeItemIndex = Array.from(this.accordionItems).indexOf(selectedItem);\n this.change();\n };\n this.handleItemKeyDown = (event) => {\n // only handle the keydown if the event target is the accordion item\n // prevents arrow keys from moving focus to accordion headers when focus is on accordion item panel content\n if (event.target !== event.currentTarget) {\n return;\n }\n this.accordionIds = this.getItemIds();\n switch (event.key) {\n case keyArrowUp:\n event.preventDefault();\n this.adjust(-1);\n break;\n case keyArrowDown:\n event.preventDefault();\n this.adjust(1);\n break;\n case keyHome:\n this.activeItemIndex = 0;\n this.focusItem();\n break;\n case keyEnd:\n this.activeItemIndex = this.accordionItems.length - 1;\n this.focusItem();\n break;\n }\n };\n this.handleItemFocus = (event) => {\n // update the active item index if the focus moves to an accordion item via a different method other than the up and down arrow key actions\n // only do so if the focus is actually on the accordion item and not on any of its children\n if (event.target === event.currentTarget) {\n const focusedItem = event.target;\n const focusedIndex = (this.activeItemIndex = Array.from(this.accordionItems).indexOf(focusedItem));\n if (this.activeItemIndex !== focusedIndex && focusedIndex !== -1) {\n this.activeItemIndex = focusedIndex;\n this.activeid = this.accordionIds[this.activeItemIndex];\n }\n }\n };\n }\n /**\n * @internal\n */\n accordionItemsChanged(oldValue, newValue) {\n if (this.$fastController.isConnected) {\n this.removeItemListeners(oldValue);\n this.setItems();\n }\n }\n findExpandedItem() {\n for (let item = 0; item < this.accordionItems.length; item++) {\n if (this.accordionItems[item].getAttribute(\"expanded\") === \"true\") {\n return this.accordionItems[item];\n }\n }\n return null;\n }\n resetItems() {\n this.accordionItems.forEach((item, index) => {\n item.expanded = false;\n });\n }\n getItemIds() {\n return this.accordionItems.map((accordionItem) => {\n return accordionItem.getAttribute(\"id\");\n });\n }\n isSingleExpandMode() {\n return this.expandmode === AccordionExpandMode.single;\n }\n adjust(adjustment) {\n this.activeItemIndex = wrapInBounds(0, this.accordionItems.length - 1, this.activeItemIndex + adjustment);\n this.focusItem();\n }\n focusItem() {\n const element = this.accordionItems[this.activeItemIndex];\n if (element instanceof AccordionItem$1) {\n element.expandbutton.focus();\n }\n }\n};\n__decorate([\n attr({ attribute: \"expand-mode\" })\n], Accordion$1.prototype, \"expandmode\", void 0);\n__decorate([\n observable\n], Accordion$1.prototype, \"accordionItems\", void 0);\n\nconst styles = \".base{display:flex;box-sizing:border-box;flex-direction:column}::slotted(:not(:only-of-type)){border-bottom:1px solid var(--vvd-color-neutral-200)}\";\n\nclass Accordion extends Accordion$1 {\n constructor() {\n super(...arguments);\n /**\n * Controls the expand mode of the Accordion, either allowing\n * single or multiple item expansion.\n * @public\n *\n * @remarks\n * HTML attribute: expand-mode\n */\n this.expandmode = AccordionExpandMode.single;\n }\n closeAll() {\n if (this.expandmode === AccordionExpandMode.multi) {\n this.accordionItems.forEach((item) => {\n item.expanded = false;\n });\n }\n }\n}\n\nconst getClasses = (_) => classNames(\"base\");\nconst AccordionTemplate = () => html`\n\t\t<div class=\"${getClasses}\">\n\t\t\t<slot\n\t\t\t\t${slotted({ property: \"accordionItems\", filter: elements() })}\n\t\t\t></slot>\n\t\t</div>\n\t`;\n\nconst accordionDefinition = Accordion.compose({\n baseName: \"accordion\",\n template: AccordionTemplate,\n styles\n});\nconst accordionRegistries = [\n accordionDefinition(),\n ...accordionItemRegistries\n];\nconst registerAccordion = registerFactory(accordionRegistries);\n\nexport { accordionDefinition as a, accordionRegistries as b, registerAccordion as r };\n"],"names":["MenuItemRole$1","menuitem","menuitemcheckbox","menuitemradio","roleForMenuItem","MenuItem$1","F","constructor","super","arguments","this","role","hasSubmenu","currentDirection","D","ltr","focusSubmenuOnLoad","handleMenuItemKeyDown","e","defaultPrevented","key","k","invoke","expandAndFocus","expanded","focus","handleMenuItemClick","disabled","submenuLoaded","submenu","setAttribute","handleMouseOver","handleMouseOut","contains","document","activeElement","checked","updateSubmenu","$emit","domChildren","find","element","getAttribute","undefined","expandedChanged","oldValue","$fastController","isConnected","collapseExpandedItem","g","bubbles","checkedChanged","newValue","connectedCallback","queueUpdate","startColumnCount","observer","MutationObserver","disconnectedCallback","disconnect","Array","from","children","filter","child","hasAttribute","_","a","mode","prototype","o","S","Menu$1","Menu","expandedItem","focusIndex","isNestedMenu","parentElement","i","handleFocusOut","relatedTarget","menuItems","findIndex","isFocusableElement","handleItemFocus","targetItem","target","indexOf","handleExpandedChanged","preventDefault","changedItem","removeItemListeners","forEach","item","removeEventListener","setItems","newItems","isMenuItemElement","length","indent","reduce","accum","current","elementValue","el","startSlot","querySelector","elementIndent","index","addEventListener","changeHandler","changedMenuItem","changeItemIndex","maxIndex","focusableElementRoles","hasOwnProperty","itemsChanged","setFocus","handleMenuKeyDown","adjustment","_triggerBehaviour","triggerBehaviour_get","_setupAnchor","setupAnchor_fn","_updateAnchor","updateAnchor_fn","_cleanupAnchor","cleanupAnchor_fn","_onAnchorClick","__defProp$1","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__decorateClass$1","decorators","kind","decorator","result","__accessCheck","obj","member","msg","has","TypeError","__privateGet","getter","call","get","__privateAdd","value","WeakSet","add","set","__privateMethod","method","ariaLabel","placement","autoDismiss","open","_onFocusout","focusTarget","focusMovedAway","_anchorEl","some","openChanged","_anchorElChanged","_onChange","clickedOnNonCheckboxMenuItem","HTMLElement","trigger","toString","removeAttribute","WeakMap","attribute","__defProp","__decorateClass","MenuItemRole","presentation","CheckAppearance","CheckAppearance2","MenuItem","checkTrailing","slottedSubmenuChanged","_oldValue","anchor","A","getClasses","connotation","text","text2","textSecondary","icon","metaSlottedContent","c","Boolean","handleClick","x","event","menuItemRegistries","compose","baseName","template","context","affixIconTemplate","iconTag","tagFor","I","h","s","w","checkedAppearance","TickOnly","getIndicatorIcon","checkIndicator","property","styles","menuItemDefinition","registerMenuItem","r","AccordionExpandMode","Accordion$1","expandmode","activeItemIndex","change","activeid","_a","accordionItems","accordionIds","getItemIds","activeItemChange","isSingleExpandMode","itemId","handleItemKeyDown","findExpandedItem","currentTarget","selectedItem","resetItems","id","adjust","focusItem","focusedItem","focusedIndex","accordionItemsChanged","map","accordionItem","expandbutton","accordionDefinition","closeAll","accordionRegistries","registerAccordion"],"sourceRoot":""}