{"version":3,"sources":["jsdelivr-header.js","/npm/@scoped-elements/material-web@0.1.7/src/polyfill.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/tslib/tslib.es6.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/motion/animation.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/field/lib/field.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/field/lib/filled-field.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/field/lib/filled-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/field/lib/shared-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/field/filled-field.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/list-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/decorators/aria-property.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/list.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/autocomplete/lib/autocompletelist/autocomplete-list.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/autocomplete/lib/autocompletelist/autocomplete-list-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/autocomplete/autocomplete-list.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menusurface/lib/menu-surface-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/elevation/lib/elevation.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/elevation/lib/elevation-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/elevation/elevation.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/controller/is-rtl.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menusurface/lib/constants.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menusurface/lib/foundation.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menusurface/lib/menu-surface.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/autocomplete/lib/autocompletesurface/autocomplete-surface.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/autocomplete/autocomplete-surface.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/textfield/lib/filled-forced-colors-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/textfield/lib/filled-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/textfield/lib/shared-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/controller/events.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/decorators/bound.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/controller/form-associated.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/controller/shim-label-activation.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/controller/form-controller.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/controller/string-converter.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/textfield/lib/text-field.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/ripple/lib/ripple.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/ripple/lib/ripple-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/ripple/ripple.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/focus/lib/focus-ring.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/focus/lib/focus-ring-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/focus/focus-ring.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/focus/strong-focus.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/ripple/directive.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/listitem/list-item.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/autocomplete/lib/autocompleteitem/autocomplete-item.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/autocomplete/lib/autocomplete.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/autocomplete/lib/filled-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/autocomplete/lib/shared-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/autocomplete/filled-autocomplete.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/listitem/list-item-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/autocomplete/autocomplete-item.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/field/lib/outlined-field.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/field/lib/outlined-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/field/outlined-field.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/textfield/lib/outlined-forced-colors-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/textfield/lib/outlined-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/autocomplete/lib/outlined-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/autocomplete/outlined-autocomplete.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/badge/lib/badge.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/badge/lib/badge-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/badge/badge.ts","/npm/@scoped-elements/material-web@0.1.7/src/focus/focus-ring.ts","/npm/@scoped-elements/material-web@0.1.7/src/ripple/ripple.ts","/npm/@scoped-elements/material-web@0.1.7/src/elevation/elevation.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/button.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/elevated-button.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/elevated-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/shared-elevation-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/shared-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/button/elevated-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/link-button.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/elevated-link-button.js","/npm/@scoped-elements/material-web@0.1.7/src/button/elevated-link-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/filled-button.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/filled-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/button/filled-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/filled-link-button.js","/npm/@scoped-elements/material-web@0.1.7/src/button/filled-link-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/outlined-button.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/outlined-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/button/outlined-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/outlined-link-button.js","/npm/@scoped-elements/material-web@0.1.7/src/button/outlined-link-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/text-button.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/text-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/button/text-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/text-link-button.js","/npm/@scoped-elements/material-web@0.1.7/src/button/text-link-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/tonal-button.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/tonal-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/button/tonal-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/button/lib/tonal-link-button.js","/npm/@scoped-elements/material-web@0.1.7/src/button/tonal-link-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/checkbox/lib/checkbox.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/checkbox/lib/checkbox-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/checkbox/lib/forced-colors-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/checkbox/checkbox.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/dialog/lib/dialog.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/dialog/lib/dialog-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/dialog/dialog.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/divider/lib/divider.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/divider/lib/divider-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/divider/divider.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/icon/lib/icon.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/icon/lib/icon-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/icon/icon.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/fab/lib/fab-shared.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/fab/lib/fab.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/fab/lib/fab-shared-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/fab/lib/fab-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/fab/fab.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/fab/lib/fab-extended.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/fab/lib/fab-extended-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/fab/fab-extended.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/iconbutton/lib/filled-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/icon/icon.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/iconbutton/lib/icon-button.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/iconbutton/lib/shared-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/iconbutton/filled-icon-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/iconbutton/lib/icon-button-toggle.js","/npm/@scoped-elements/material-web@0.1.7/src/iconbutton/filled-icon-button-toggle.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/iconbutton/lib/link-icon-button.js","/npm/@scoped-elements/material-web@0.1.7/src/iconbutton/filled-link-icon-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/iconbutton/lib/filled-tonal-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/iconbutton/filled-tonal-icon-button.ts","/npm/@scoped-elements/material-web@0.1.7/src/iconbutton/filled-tonal-icon-button-toggle.ts","/npm/@scoped-elements/material-web@0.1.7/src/iconbutton/filled-tonal-link-icon-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/iconbutton/lib/outlined-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/iconbutton/outlined-icon-button.ts","/npm/@scoped-elements/material-web@0.1.7/src/iconbutton/outlined-icon-button-toggle.ts","/npm/@scoped-elements/material-web@0.1.7/src/iconbutton/outlined-link-icon-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/iconbutton/lib/standard-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/iconbutton/standard-icon-button.ts","/npm/@scoped-elements/material-web@0.1.7/src/iconbutton/standard-icon-button-toggle.ts","/npm/@scoped-elements/material-web@0.1.7/src/iconbutton/standard-link-icon-button.ts","/npm/@scoped-elements/material-web@0.1.7/src/list/list.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/listitem/list-item-private-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/list/list-item.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/avatar/list-item-avatar.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/avatar/list-item-avatar-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/list/list-item-avatar.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/icon/list-item-icon.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/icon/list-item-icon-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/list/list-item-icon.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/image/list-item-image.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/image/list-item-image-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/list/list-item-image.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/video/list-item-video.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/video/list-item-video-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/list/list-item-video.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/lib/listitemlink/list-item-link.js","/npm/@scoped-elements/material-web@0.1.7/src/list/list-item-link.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/list/list.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menu/lib/surfacePositionController.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menu/lib/typeaheadController.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menu/lib/menu.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menu/lib/menu-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menu/lib/shared.js","/npm/@scoped-elements/material-web@0.1.7/src/menu/menu.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menu/lib/menuitem/menu-item.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menu/lib/menuitem/menu-item-private-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menu/lib/menuitem/menu-item-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/menu/menu-item.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menu/lib/menuitemlink/menu-item-link.js","/npm/@scoped-elements/material-web@0.1.7/src/menu/menu-item-link.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/menu/lib/submenuitem/sub-menu-item.js","/npm/@scoped-elements/material-web@0.1.7/src/menu/sub-menu-item.ts","/npm/@scoped-elements/material-web@0.1.7/src/menusurface/menu-surface.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/navigationbar/lib/navigation-bar.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/navigationbar/lib/navigation-bar-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/navigationbar/navigation-bar.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/navigationdrawer/lib/navigation-drawer.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/navigationdrawer/lib/navigation-drawer-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/navigationdrawer/lib/shared-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/navigationdrawer/navigation-drawer.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/navigationdrawer/lib/navigation-drawer-modal.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/navigationdrawer/lib/navigation-drawer-modal-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/navigationdrawer/navigation-drawer-modal.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/badge/badge.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/controller/action-controller.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/actionelement/action-element.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/navigationtab/lib/navigation-tab.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/navigationtab/lib/navigation-tab-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/navigationtab/navigation-tab.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/radio/lib/forced-colors-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/radio/lib/single-selection-controller.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/radio/lib/radio.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/radio/lib/radio-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/radio/radio.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/segmentedbutton/lib/segmented-button.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/segmentedbutton/lib/outlined-segmented-button.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/segmentedbutton/lib/outlined-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/segmentedbutton/lib/shared-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/segmentedbutton/outlined-segmented-button.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/segmentedbuttonset/lib/segmented-button-set.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/segmentedbuttonset/lib/outlined-segmented-button-set.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/segmentedbuttonset/lib/outlined-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/segmentedbuttonset/lib/shared-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/segmentedbuttonset/outlined-segmented-button-set.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/slider/lib/forced-colors-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/slider/lib/slider.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/slider/lib/slider-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/slider/slider.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/switch/lib/switch.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/switch/lib/switch-styles.css.js","/npm/@scoped-elements/material-web@0.1.7/src/switch/switch.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/field/filled-field.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/textfield/lib/filled-text-field.js","/npm/@scoped-elements/material-web@0.1.7/src/textfield/filled-text-field.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/field/outlined-field.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/web/textfield/lib/outlined-text-field.js","/npm/@scoped-elements/material-web@0.1.7/src/textfield/outlined-text-field.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/thirdparty/isPlainObject.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/thirdparty/_merge.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/thirdparty/merge.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/EventProvider.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/whenDOMReady.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/createStyleInHead.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/FeaturesRegistry.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/FontFace.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/SystemCSSVars.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/generated/AssetParameters.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/InitialConfiguration.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/asset-registries/Themes.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/theming/createThemePropertiesStyleTag.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/theming/getThemeDesignerTheme.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/theming/ThemeLoaded.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/theming/applyTheme.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/config/Theme.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/Boot.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/types/DataType.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/isDescendantOf.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/StringHelper.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/SlotsHelper.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/CustomElementsScope.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/UI5ElementMetadata.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/getSingletonElementInstance.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/StaticArea.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/renderer/executeTemplate.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/RenderQueue.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/setToArray.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/CustomElementsRegistry.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/locale/RTLAwareRegistry.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/Render.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/theming/CustomStyle.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/theming/getStylesString.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/theming/getEffectiveStyle.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/theming/getConstructableStyle.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/isLegacyBrowser.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/updateShadowRoot.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/getEffectiveContentDensity.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/StaticAreaItem.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/DOMObserver.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/config/NoConflict.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/locale/languageChange.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/config/Language.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/getDesigntimePropertyAsArray.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/detectNavigatorLanguage.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/config/RTL.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/locale/getEffectiveDir.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/types/Integer.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/types/Float.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/isValidPropertyName.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/arraysAreEqual.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/UI5Element.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/renderer/LitRenderer.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/locale/Locale.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/locale/getLocale.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/locale/normalizeLocale.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/locale/nextFallbackLocale.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/asset-registries/i18n.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/util/formatMessage.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/i18nBundle.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents/dist/generated/templates/CardTemplate.lit.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/getSharedResource.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/asset-registries/Icons.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-base/dist/Keys.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents/dist/generated/templates/IconTemplate.lit.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents/dist/generated/themes/Icon.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents/dist/Icon.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents/dist/generated/i18n/i18n-defaults.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents/dist/generated/themes/Card.css.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@ui5/webcomponents/dist/Card.js","/npm/@scoped-elements/material-web@0.1.7/src/mwc-card.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/mwc-base/aria-property.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/mwc-circular-progress/mwc-circular-progress-base.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/mwc-circular-progress/mwc-circular-progress.css.js","/npm/@scoped-elements/material-web@0.1.7/src/mwc-circular-progress.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/mwc-base/utils.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/mwc-base/base-element.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/mwc-base/observer.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/base/foundation.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/snackbar/constants.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/snackbar/foundation.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/mwc-snackbar/accessible-snackbar-label-directive.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/mwc-snackbar/mwc-snackbar-base.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/mwc-snackbar/mwc-snackbar.css.js","/npm/@scoped-elements/material-web@0.1.7/src/mwc-snackbar.ts","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/top-app-bar/constants.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/top-app-bar/foundation.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/top-app-bar/standard/foundation.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/mwc-top-app-bar/mwc-top-app-bar-base-base.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/mwc-top-app-bar/mwc-top-app-bar-base.js","/npm/@scoped-elements/material-web@0.1.7/node_modules/@material/mwc-top-app-bar/mwc-top-app-bar.css.js","/npm/@scoped-elements/material-web@0.1.7/src/mwc-top-app-bar.ts"],"names":[],"mappings":"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","file":"/npm/@scoped-elements/material-web@0.1.7/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@scoped-elements/material-web@0.1.7/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","class FormDataEvent extends Event {\n  constructor(formData) {\n    super('formdata');\n    this.formData = formData;\n  }\n}\n\nclass FormDataPolyfilled extends FormData {\n  constructor(form) {\n    super(form);\n    this.form = form;\n    form.dispatchEvent(new FormDataEvent(this));\n  }\n\n  append(name, value) {\n    let input = this.form.elements[name];\n\n    if (!input) {\n      input = document.createElement('input');\n      input.type = 'hidden';\n      input.name = name;\n      this.form.appendChild(input);\n    }\n\n    // if the name already exists, there is already a hidden input in the dom\n    // and it will have been picked up by FormData during construction.\n    // in this case, we can't just blindly append() since that will result in two entries.\n    // nor can we blindly delete() the entry, since there can be multiple entries per name (e.g. checkboxes).\n    // so we must carefully splice out the old value, and add back in the new value\n    if (this.has(name)) {\n      const entries = this.getAll(name);\n      const index = entries.indexOf(input.value);\n\n      if (index !== -1) {\n        entries.splice(index, 1);\n      }\n\n      entries.push(value);\n      this.set(name, entries);\n    } else {\n      super.append(name, value);\n    }\n\n    input.value = value;\n  }\n}\n\nfunction supportsFormDataEvent({ document }) {\n  return 'FormDataEvent' in window;\n}\n\nfunction polyfillFormDataEvent(win) {\n  if (!win.FormData || supportsFormDataEvent(win)) {\n    return;\n  }\n\n  window.FormData = FormDataPolyfilled;\n  win.addEventListener('submit', e => {\n    if (!e.defaultPrevented) {\n      // eslint-disable-next-line no-new\n      new FormData(e.target);\n    }\n  });\n}\npolyfillFormDataEvent(window);\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n    function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n    var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n    var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n    var _, done = false;\r\n    for (var i = decorators.length - 1; i >= 0; i--) {\r\n        var context = {};\r\n        for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n        for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n        context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n        var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n        if (kind === \"accessor\") {\r\n            if (result === void 0) continue;\r\n            if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n            if (_ = accept(result.get)) descriptor.get = _;\r\n            if (_ = accept(result.set)) descriptor.set = _;\r\n            if (_ = accept(result.init)) initializers.push(_);\r\n        }\r\n        else if (_ = accept(result)) {\r\n            if (kind === \"field\") initializers.push(_);\r\n            else descriptor[key] = _;\r\n        }\r\n    }\r\n    if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n    done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n    var useValue = arguments.length > 2;\r\n    for (var i = 0; i < initializers.length; i++) {\r\n        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n    }\r\n    return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n    return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n    if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n    return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Easing functions to use for web animations.\n *\n * **NOTE:** `EASING.EMPHASIZED` is approximated with unknown accuracy.\n *\n * TODO(b/241113345): replace with tokens\n */\nexport const EASING = {\n    STANDARD: 'cubic-bezier(0.2, 0, 0, 1)',\n    STANDARD_ACCELERATE: 'cubic-bezier(.3,0,1,1)',\n    STANDARD_DECELERATE: 'cubic-bezier(0,0,0,1)',\n    EMPHASIZED: 'cubic-bezier(.3,0,0,1)',\n    EMPHASIZED_ACCELERATE: 'cubic-bezier(.3,0,.8,.15)',\n    EMPHASIZED_DECELERATE: 'cubic-bezier(.05,.7,.1,1)',\n};\n/**\n * Creates an `AnimationSignal` that can be used to cancel a previous task.\n *\n * @example\n * class MyClass {\n *   private labelAnimationSignal = createAnimationSignal();\n *\n *   private async animateLabel() {\n *     // Start of the task. Previous tasks will be canceled.\n *     const signal = this.labelAnimationSignal.start();\n *\n *     // Do async work...\n *     if (signal.aborted) {\n *       // Use AbortSignal to check if a request was made to abort after some\n *       // asynchronous work.\n *       return;\n *     }\n *\n *     const animation = this.animate(...);\n *     // Add event listeners to be notified when the task should be canceled.\n *     signal.addEventListener('abort', () => {\n *       animation.cancel();\n *     });\n *\n *     animation.addEventListener('finish', () => {\n *       // Tell the signal that the current task is finished.\n *       this.labelAnimationSignal.finish();\n *     });\n *   }\n * }\n *\n * @return An `AnimationSignal`.\n */\nexport function createAnimationSignal() {\n    // The current animation's AbortController\n    let animationAbortController = null;\n    return {\n        start() {\n            // Tell the previous animation to cancel.\n            animationAbortController?.abort();\n            // Set up a new AbortController for the current animation.\n            animationAbortController = new AbortController();\n            // Provide the AbortSignal so that the caller can check aborted status\n            // and add listeners.\n            return animationAbortController.signal;\n        },\n        finish() {\n            animationAbortController = null;\n        },\n    };\n}\n/**\n * Returns a function which can be used to throttle function calls\n * mapped to a key via a given function that should produce a promise that\n * determines the throtle amount (defaults to requestAnimationFrame).\n */\nexport function createThrottle() {\n    const stack = new Set();\n    return async (key = '', cb, timeout = async () => {\n        await new Promise(requestAnimationFrame);\n    }) => {\n        if (!stack.has(key)) {\n            stack.add(key);\n            await timeout();\n            if (stack.has(key)) {\n                stack.delete(key);\n                cb();\n            }\n        }\n    };\n}\n/**\n * Parses an number in milliseconds from a css time value\n */\nexport function msFromTimeCSSValue(value) {\n    const match = value.trim().match(/([\\d.]+)(\\s*s$)?/);\n    const time = match?.[1];\n    const seconds = match?.[2];\n    return Number(time ?? 0) * (seconds ? 1000 : 1);\n}\n//# sourceMappingURL=animation.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html, LitElement, nothing } from 'lit';\nimport { property, queryAsync, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { createAnimationSignal, EASING } from '../../motion/animation.js';\n/**\n * A field component.\n */\nexport class Field extends LitElement {\n    constructor() {\n        super(...arguments);\n        this.disabled = false;\n        this.error = false;\n        this.focused = false;\n        this.populated = false;\n        this.required = false;\n        /**\n         * Whether or not the field has leading content.\n         */\n        this.hasStart = false;\n        /**\n         * Whether or not the field has trailing content.\n         */\n        this.hasEnd = false;\n        this.isAnimating = false;\n        this.labelAnimationSignal = createAnimationSignal();\n    }\n    update(props) {\n        // Client-side property updates\n        // When disabling, remove focus styles if focused.\n        if (this.disabled && this.focused) {\n            props.set('focused', true);\n            this.focused = false;\n        }\n        // Animate if focused or populated change.\n        this.animateLabelIfNeeded({\n            wasFocused: props.get('focused'),\n            wasPopulated: props.get('populated')\n        });\n        super.update(props);\n    }\n    render() {\n        const floatingLabel = this.renderLabel(/*isFloating*/ true);\n        const restingLabel = this.renderLabel(/*isFloating*/ false);\n        const outline = this.renderOutline?.(floatingLabel);\n        const classes = {\n            'disabled': this.disabled,\n            'error': this.error && !this.disabled,\n            'focused': this.focused,\n            'with-start': this.hasStart,\n            'with-end': this.hasEnd,\n            'populated': this.populated,\n            'required': this.required,\n            'no-label': !this.label,\n        };\n        return html `\n      <div class=\"field ${classMap(classes)}\">\n        <div class=\"container\">\n          ${this.renderBackground?.()}\n          ${this.renderIndicator?.()}\n          ${outline}\n          <div class=\"start\">\n            <slot name=\"start\"></slot>\n          </div>\n          <div class=\"middle\">\n            ${restingLabel}\n            ${outline ? nothing : floatingLabel}\n            <div class=\"content\">\n              <slot></slot>\n            </div>\n          </div>\n          <div class=\"end\">\n            <slot name=\"end\"></slot>\n          </div>\n        </div>\n\n        <div class=\"supporting-text\">\n          <div class=\"supporting-text-start\">\n            <slot name=\"supporting-text\"></slot>\n          </div>\n          <div class=\"supporting-text-end\">\n            <slot name=\"supporting-text-end\"></slot>\n          </div>\n        </div>\n      </div>\n    `;\n    }\n    renderLabel(isFloating) {\n        let visible;\n        if (isFloating) {\n            // Floating label is visible when focused/populated. It is never visible\n            // while animating.\n            visible = (this.focused || this.populated) && !this.isAnimating;\n        }\n        else {\n            // Resting label is visible when unfocused or while animating.\n            visible = !(this.focused || this.populated) || this.isAnimating;\n        }\n        const classes = {\n            'hidden': !visible,\n            'floating': isFloating,\n            'resting': !isFloating,\n        };\n        let labelText = this.label ?? '';\n        // Add '*' if a label is present and the field is required\n        labelText += this.required && labelText ? '*' : '';\n        return html `\n      <span class=\"label ${classMap(classes)}\"\n        aria-hidden=${!visible}\n      >${labelText}</span>\n    `;\n    }\n    async animateLabelIfNeeded({ wasFocused, wasPopulated }) {\n        if (!this.label) {\n            return;\n        }\n        wasFocused ?? (wasFocused = this.focused);\n        wasPopulated ?? (wasPopulated = this.populated);\n        const wasFloating = wasFocused || wasPopulated;\n        const shouldBeFloating = this.focused || this.populated;\n        if (wasFloating === shouldBeFloating) {\n            return;\n        }\n        this.isAnimating = true;\n        const signal = this.labelAnimationSignal.start();\n        // Only one label is visible at a time for clearer text rendering.\n        // The resting label is visible and used during animation. At the end of the\n        // animation, it will either remain visible (if resting) or hide and the\n        // floating label will be shown.\n        const labelEl = await this.restingLabelEl;\n        const keyframes = await this.getLabelKeyframes();\n        if (signal.aborted) {\n            // Don't animate if this animation was requested to stop while getting\n            // the label element or calculating keyframes\n            return;\n        }\n        // We don't use forward filling because if the dimensions of the text field\n        // change (leading icon removed, density changes, etc), then the animation\n        // will be inaccurate.\n        //\n        // Re-calculating the animation each time will prevent any visual glitches\n        // from appearing.\n        // TODO(b/241113345): use animation tokens\n        const animation = labelEl.animate(keyframes, { duration: 150, easing: EASING.STANDARD });\n        signal.addEventListener('abort', () => {\n            // Cancel if requested (another animation starts playing).\n            animation.cancel();\n        });\n        animation.addEventListener('finish', () => {\n            // At the end of the animation, update the visible label.\n            this.isAnimating = false;\n            this.labelAnimationSignal.finish();\n        });\n    }\n    async getLabelKeyframes() {\n        const floatingLabelEl = await this.floatingLabelEl;\n        const restingLabelEl = await this.restingLabelEl;\n        const { x: floatingX, y: floatingY, width: floatingWidth, height: floatingHeight } = floatingLabelEl.getBoundingClientRect();\n        const { x: restingX, y: restingY, width: restingWidth, height: restingHeight } = restingLabelEl.getBoundingClientRect();\n        // Scale by width ratio instead of font size since letter-spacing will scale\n        // incorrectly. Using the width we can better approximate the adjusted\n        // scale and compensate for tracking.\n        const scale = floatingWidth / restingWidth;\n        const xDelta = floatingX - restingX;\n        // The line-height of the resting and floating label are different. When\n        // we move the resting label up to the floating label's position, it won't\n        // exactly match because of this. We need to adjust by half of what the\n        // final scaled resting label's height will be.\n        const yDelta = floatingY - restingY +\n            Math.round((floatingHeight - restingHeight * scale) / 2);\n        // Create the two transforms: resting to floating (using the calculations\n        // above), and floating to resting (re-setting the transform to initial\n        // values).\n        const floatTransform = `translateX(${xDelta}px) translateY(calc(-50% + ${yDelta}px)) scale(${scale})`;\n        const restTransform = `translateX(0) translateY(-50%) scale(1)`;\n        if (this.focused || this.populated) {\n            return [{ transform: restTransform }, { transform: floatTransform }];\n        }\n        return [{ transform: floatTransform }, { transform: restTransform }];\n    }\n}\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Field.prototype, \"disabled\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Field.prototype, \"error\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Field.prototype, \"focused\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", String)\n], Field.prototype, \"label\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Field.prototype, \"populated\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Field.prototype, \"required\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Field.prototype, \"hasStart\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Field.prototype, \"hasEnd\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Field.prototype, \"isAnimating\", void 0);\n__decorate([\n    queryAsync('.label.floating'),\n    __metadata(\"design:type\", Promise)\n], Field.prototype, \"floatingLabelEl\", void 0);\n__decorate([\n    queryAsync('.label.resting'),\n    __metadata(\"design:type\", Promise)\n], Field.prototype, \"restingLabelEl\", void 0);\n//# sourceMappingURL=field.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { Field } from './field.js';\n/**\n * A filled field component.\n */\nexport class FilledField extends Field {\n    constructor() {\n        super();\n        this.strokeTransformOrigin = '';\n        this.addEventListener('click', event => {\n            if (!this.disabled) {\n                this.updateStrokeTransformOrigin(event);\n            }\n        });\n    }\n    renderBackground() {\n        return html `\n      <div class=\"state-layer\"></div>\n    `;\n    }\n    renderIndicator() {\n        const strokeStyle = { transformOrigin: this.strokeTransformOrigin };\n        return html `\n      <div class=\"active-indicator\" style=\"${styleMap(strokeStyle)}\"></div>\n    `;\n    }\n    update(props) {\n        // Upon losing focus, the stroke resets to expanding from the center, such\n        // as when re-focusing with a keyboard.\n        const unfocusing = props.has('focused') && !this.focused;\n        if (unfocusing) {\n            this.updateStrokeTransformOrigin();\n        }\n        super.update(props);\n    }\n    updateStrokeTransformOrigin(event) {\n        let transformOrigin = '';\n        if (event) {\n            // Can't use instanceof TouchEvent since Firefox does not provide the\n            // constructor globally.\n            const isTouchEvent = 'touches' in event;\n            const eventX = isTouchEvent ? event.touches[0].clientX : event.clientX;\n            const rootRect = this.getBoundingClientRect();\n            transformOrigin = `${eventX - rootRect.x}px`;\n        }\n        this.strokeTransformOrigin = transformOrigin;\n    }\n}\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], FilledField.prototype, \"strokeTransformOrigin\", void 0);\n//# sourceMappingURL=filled-field.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-filled-field-container-shape-start-start, var(--md-filled-field-container-shape, 4px));--_container-shape-start-end: var(--md-filled-field-container-shape-start-end, var(--md-filled-field-container-shape, 4px));--_container-shape-end-end: var(--md-filled-field-container-shape-end-end, var(--md-filled-field-container-shape, 0px));--_container-shape-end-start: var(--md-filled-field-container-shape-end-start, var(--md-filled-field-container-shape, 0px));--_active-indicator-color: var(--md-filled-field-active-indicator-color, var(--md-sys-color-on-surface-variant, #49454f));--_active-indicator-height: var(--md-filled-field-active-indicator-height, 1px);--_container-color: var(--md-filled-field-container-color, var(--md-sys-color-surface-variant, #e7e0ec));--_disabled-active-indicator-color: var(--md-filled-field-disabled-active-indicator-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-active-indicator-height: var(--md-filled-field-disabled-active-indicator-height, 1px);--_disabled-active-indicator-opacity: var(--md-filled-field-disabled-active-indicator-opacity, 0.38);--_disabled-container-color: var(--md-filled-field-disabled-container-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-container-opacity: var(--md-filled-field-disabled-container-opacity, 0.04);--_disabled-label-text-color: var(--md-filled-field-disabled-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-label-text-opacity: var(--md-filled-field-disabled-label-text-opacity, 0.38);--_disabled-leading-icon-color: var(--md-filled-field-disabled-leading-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-leading-icon-opacity: var(--md-filled-field-disabled-leading-icon-opacity, 0.38);--_disabled-supporting-text-color: var(--md-filled-field-disabled-supporting-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-supporting-text-opacity: var(--md-filled-field-disabled-supporting-text-opacity, 0.38);--_disabled-trailing-icon-color: var(--md-filled-field-disabled-trailing-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-trailing-icon-opacity: var(--md-filled-field-disabled-trailing-icon-opacity, 0.38);--_error-active-indicator-color: var(--md-filled-field-error-active-indicator-color, var(--md-sys-color-error, #b3261e));--_error-focus-active-indicator-color: var(--md-filled-field-error-focus-active-indicator-color, var(--md-sys-color-error, #b3261e));--_error-focus-label-text-color: var(--md-filled-field-error-focus-label-text-color, var(--md-sys-color-error, #b3261e));--_error-focus-leading-icon-color: var(--md-filled-field-error-focus-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_error-focus-supporting-text-color: var(--md-filled-field-error-focus-supporting-text-color, var(--md-sys-color-error, #b3261e));--_error-focus-trailing-icon-color: var(--md-filled-field-error-focus-trailing-icon-color, var(--md-sys-color-error, #b3261e));--_error-hover-active-indicator-color: var(--md-filled-field-error-hover-active-indicator-color, var(--md-sys-color-on-error-container, #410e0b));--_error-hover-label-text-color: var(--md-filled-field-error-hover-label-text-color, var(--md-sys-color-on-error-container, #410e0b));--_error-hover-leading-icon-color: var(--md-filled-field-error-hover-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_error-hover-state-layer-color: var(--md-filled-field-error-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_error-hover-state-layer-opacity: var(--md-filled-field-error-hover-state-layer-opacity, 0.08);--_error-hover-supporting-text-color: var(--md-filled-field-error-hover-supporting-text-color, var(--md-sys-color-error, #b3261e));--_error-hover-trailing-icon-color: var(--md-filled-field-error-hover-trailing-icon-color, var(--md-sys-color-on-error-container, #410e0b));--_error-label-text-color: var(--md-filled-field-error-label-text-color, var(--md-sys-color-error, #b3261e));--_error-leading-icon-color: var(--md-filled-field-error-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_error-supporting-text-color: var(--md-filled-field-error-supporting-text-color, var(--md-sys-color-error, #b3261e));--_error-trailing-icon-color: var(--md-filled-field-error-trailing-icon-color, var(--md-sys-color-error, #b3261e));--_focus-active-indicator-color: var(--md-filled-field-focus-active-indicator-color, var(--md-sys-color-primary, #6750a4));--_focus-active-indicator-height: var(--md-filled-field-focus-active-indicator-height, 2px);--_focus-label-text-color: var(--md-filled-field-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_focus-leading-icon-color: var(--md-filled-field-focus-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-supporting-text-color: var(--md-filled-field-focus-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-trailing-icon-color: var(--md-filled-field-focus-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-active-indicator-color: var(--md-filled-field-hover-active-indicator-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-active-indicator-height: var(--md-filled-field-hover-active-indicator-height, 1px);--_hover-label-text-color: var(--md-filled-field-hover-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-leading-icon-color: var(--md-filled-field-hover-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-state-layer-color: var(--md-filled-field-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-state-layer-opacity: var(--md-filled-field-hover-state-layer-opacity, 0.08);--_hover-supporting-text-color: var(--md-filled-field-hover-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-trailing-icon-color: var(--md-filled-field-hover-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_label-text-color: var(--md-filled-field-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_label-text-populated-line-height: var(--md-filled-field-label-text-populated-line-height, 1rem);--_label-text-populated-size: var(--md-filled-field-label-text-populated-size, 0.75rem);--_label-text-type: var(--md-filled-field-label-text-type, 400 1rem / 1.5rem Roboto);--_leading-icon-color: var(--md-filled-field-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_leading-icon-size: var(--md-filled-field-leading-icon-size, 24px);--_supporting-text-color: var(--md-filled-field-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_supporting-text-type: var(--md-filled-field-supporting-text-type, 400 0.75rem / 1rem Roboto);--_trailing-icon-color: var(--md-filled-field-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_trailing-icon-size: var(--md-filled-field-trailing-icon-size, 24px);--_container-padding-horizontal: var(--md-filled-field-container-padding-horizontal, 16px);--_container-padding-vertical: var(--md-filled-field-container-padding-vertical, 16px);--_content-color: var(--md-filled-field-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-content-color: var(--md-filled-field-disabled-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-content-opacity: var(--md-filled-field-disabled-content-opacity, 0.38);--_error-content-color: var(--md-filled-field-error-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_error-focus-content-color: var(--md-filled-field-error-focus-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_error-hover-content-color: var(--md-filled-field-error-hover-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_focus-content-color: var(--md-filled-field-focus-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-content-color: var(--md-filled-field-hover-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_supporting-text-padding: var(--md-filled-field-supporting-text-padding, 16px);--_supporting-text-padding-top: var(--md-filled-field-supporting-text-padding-top, 4px);--_with-label-container-padding-vertical: var(--md-filled-field-with-label-container-padding-vertical, 8px)}.container{border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-end-radius:var(--_container-shape-end-end);border-end-start-radius:var(--_container-shape-end-start);overflow:hidden;z-index:0}.container::before{background:var(--_container-color)}.container::after{visibility:hidden}.container::before,.container::after{border-radius:inherit;content:\"\";display:flex;height:100%;position:absolute;width:100%;z-index:-1}.label.floating{position:absolute;top:0}.state-layer{border-radius:inherit;height:100%;position:absolute;width:100%;visibility:hidden;z-index:-1}.field:not(.disabled):hover .state-layer{visibility:visible}.active-indicator{inset:auto 0 0 0;pointer-events:none;position:absolute;width:100%}.active-indicator::before,.active-indicator::after{border-bottom:var(--_active-indicator-height) solid var(--_active-indicator-color);inset:auto 0 0 0;content:\"\";position:absolute;width:100%}.active-indicator::after{opacity:0;transform:scaleX(0);transform-origin:inherit;transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1),transform 0s ease 150ms}.focused .active-indicator::after{opacity:1;transform:scaleX(1);transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1)}.field:not(.with-start) .start{padding-inline-start:var(--_container-padding-horizontal)}.field:not(.with-end) .end{padding-inline-end:var(--_container-padding-horizontal)}.field:not(.no-label) .container{padding-bottom:var(--_with-label-container-padding-vertical);padding-top:var(--_with-label-container-padding-vertical)}.field:not(.no-label) .middle{padding-top:var(--_label-text-populated-line-height)}:hover .active-indicator::before{border-bottom-color:var(--_hover-active-indicator-color);border-bottom-width:var(--_hover-active-indicator-height)}.active-indicator::after{border-bottom-color:var(--_focus-active-indicator-color);border-bottom-width:var(--_focus-active-indicator-height)}:hover .state-layer{background:var(--_hover-state-layer-color);opacity:var(--_hover-state-layer-opacity)}.disabled .active-indicator::before{border-bottom-color:var(--_disabled-active-indicator-color);border-bottom-width:var(--_disabled-active-indicator-height);opacity:var(--_disabled-active-indicator-opacity)}.disabled .container::before{background:var(--_disabled-container-color);opacity:var(--_disabled-container-opacity)}.error .active-indicator::before{border-bottom-color:var(--_error-active-indicator-color)}.error:hover .active-indicator::before{border-bottom-color:var(--_error-hover-active-indicator-color)}.error:hover .state-layer{background:var(--_error-hover-state-layer-color);opacity:var(--_error-hover-state-layer-opacity)}.error .active-indicator::after{border-bottom-color:var(--_error-focus-active-indicator-color)}/*# sourceMappingURL=filled-styles.css.map */\n`;\n//# sourceMappingURL=filled-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{display:inline-flex}.field{display:inline-flex;flex:1;flex-direction:column;writing-mode:horizontal-tb}.container{align-items:center;box-sizing:border-box;display:flex;flex:1;flex-basis:var(--_container-height);padding-top:var(--_container-padding-vertical);padding-bottom:var(--_container-padding-vertical);position:relative}.disabled{pointer-events:none}.with-start .start,.with-end .end{min-width:48px}.with-start .start{margin-inline-end:4px}.with-end .end{margin-inline-start:4px}.start,.middle,.end{display:flex;align-items:center;box-sizing:border-box;height:100%;position:relative}.start,.end{justify-content:center}.middle{align-self:baseline;flex:1}.content{display:flex;flex:1;opacity:0;transition:opacity 83ms cubic-bezier(0.4, 0, 0.2, 1);color:var(--_content-color)}.no-label .content,.focused .content,.populated .content{opacity:1;transition-delay:67ms}.disabled.no-label .content,.disabled.focused .content,.disabled.populated .content{opacity:var(--_disabled-content-opacity)}:hover .content{color:var(--_hover-content-color)}.focused .content{color:var(--_focus-content-color)}.disabled .content{color:var(--_disabled-content-color)}.error .content{color:var(--_error-content-color)}.error:hover .content{color:var(--_error-hover-content-color)}.error.focused .content{color:var(--_error-focus-content-color)}.label{color:var(--_label-text-color);overflow:hidden;max-width:100%;pointer-events:none;text-overflow:ellipsis;white-space:nowrap;z-index:1;font:var(--_label-text-type)}.label.resting{position:absolute;top:50%;transform:translateY(-50%);transform-origin:top left}.label.floating{font-size:var(--_label-text-populated-size);line-height:var(--_label-text-populated-line-height)}.label.hidden{opacity:0}.no-label .label{display:none}:hover .label{color:var(--_hover-label-text-color)}.focused .label{color:var(--_focus-label-text-color)}.disabled .label{color:var(--_disabled-label-text-color)}.disabled .label:not(.hidden){opacity:var(--_disabled-label-text-opacity)}.error .label{color:var(--_error-label-text-color)}.error:hover .label{color:var(--_error-hover-label-text-color)}.error.focused .label{color:var(--_error-focus-label-text-color)}.supporting-text{color:var(--_supporting-text-color);display:flex;justify-content:space-between;padding:0 var(--_supporting-text-padding);font:var(--_supporting-text-type)}.supporting-text-start,.supporting-text-end{display:flex}.supporting-text-start ::slotted(:not(:empty)),.supporting-text-end ::slotted(:not(:empty)){padding-top:var(--_supporting-text-padding-top)}.supporting-text-end ::slotted(:not(:empty)){padding-inline-start:var(--_supporting-text-padding)}:hover .supporting-text{color:var(--_hover-supporting-text-color)}.focus .supporting-text{color:var(--_focus-supporting-text-color)}.disabled .supporting-text{color:var(--_disabled-supporting-text-color);opacity:var(--_disabled-supporting-text-opacity)}.error .supporting-text{color:var(--_error-supporting-text-color)}.error:hover .supporting-text{color:var(--_error-hover-supporting-text-color)}.error.focus .supporting-text{color:var(--_error-focus-supporting-text-color)}/*# sourceMappingURL=shared-styles.css.map */\n`;\n//# sourceMappingURL=shared-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport {FilledField} from '@material/web/field/lib/filled-field.js';\nimport {styles as filledStyles} from '@material/web/field/lib/filled-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/field/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-filled-field': MdFilledField;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdFilledField extends FilledField {\n  static override styles = [sharedStyles, filledStyles];\n}\n","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_list-item-label-text-font: var(--md-list-list-item-label-text-font, Roboto);--_list-item-label-text-line-height: var(--md-list-list-item-label-text-line-height, 1.5rem);--_list-item-label-text-size: var(--md-list-list-item-label-text-size, 1rem);--_list-item-label-text-tracking: var(--md-list-list-item-label-text-tracking, 0.031rem);--_list-item-label-text-weight: var(--md-list-list-item-label-text-weight, 400);--_list-item-supporting-text-font: var(--md-list-list-item-supporting-text-font, Roboto);--_list-item-supporting-text-line-height: var(--md-list-list-item-supporting-text-line-height, 1.25rem);--_list-item-supporting-text-size: var(--md-list-list-item-supporting-text-size, 0.875rem);--_list-item-supporting-text-tracking: var(--md-list-list-item-supporting-text-tracking, 0.016rem);--_list-item-supporting-text-weight: var(--md-list-list-item-supporting-text-weight, 400);--_list-item-trailing-supporting-text-font: var(--md-list-list-item-trailing-supporting-text-font, Roboto);--_list-item-trailing-supporting-text-line-height: var(--md-list-list-item-trailing-supporting-text-line-height, 1rem);--_list-item-trailing-supporting-text-size: var(--md-list-list-item-trailing-supporting-text-size, 0.688rem);--_list-item-trailing-supporting-text-tracking: var(--md-list-list-item-trailing-supporting-text-tracking, 0.031rem);--_list-item-trailing-supporting-text-weight: var(--md-list-list-item-trailing-supporting-text-weight, 500);--_container-color: var(--md-list-container-color, var(--md-sys-color-surface, #fffbfe));color:unset}.md3-list{background-color:var(--_container-color);display:block;list-style-type:none;margin:0;min-width:300px;outline:none;padding:8px 0;position:relative}/*# sourceMappingURL=list-styles.css.map */\n`;\n//# sourceMappingURL=list-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * A property decorator that helps proxy an aria attribute to an internal node.\n *\n * This decorator is only intended for use with ARIAMixin properties,\n * such as `ariaLabel`, to help with screen readers.\n *\n * This decorator will remove the host `aria-*` attribute at runtime and add it\n * to a `data-aria-*` attribute to avoid screenreader conflicts between the\n * host and internal node.\n *\n * `@ariaProperty` decorated properties should sync with LitElement to the\n * `data-aria-*` attribute, not the native `aria-*` attribute.\n *\n * @example\n * ```ts\n * class MyElement extends LitElement {\n *   \\@ariaProperty\n *   // TODO(b/210730484): replace with @soyParam annotation\n *   \\@property({ type: String, attribute: 'data-aria-label', noAccessor: true})\n *   ariaLabel!: string;\n * }\n * ```\n * @category Decorator\n * @ExportDecoratedItems\n */\nexport function ariaProperty(prototype, property) {\n    // Replace the ARIAMixin property with data-* attribute syncing instead of\n    // using the native aria-* attribute reflection. This preserves the attribute\n    // for SSR and avoids screenreader conflicts after delegating the attribute\n    // to a child node.\n    Object.defineProperty(prototype, property, {\n        configurable: true,\n        enumerable: true,\n        get() {\n            return this.dataset[property] ?? '';\n        },\n        set(value) {\n            // Coerce non-string values to a string\n            const strValue = String(value ?? '');\n            if (strValue) {\n                this.dataset[property] = strValue;\n            }\n            else {\n                delete this.dataset[property];\n            }\n            // lit will call this setter whenever the data-* attribute changes.\n            // However, this.dataset[property] will automatically be updated to the\n            // current value. To avoid bugs, always request an update regardless of\n            // the old value.\n            this.requestUpdate();\n        }\n    });\n    // Define an internal property that syncs from the `aria-*` attribute with lit\n    // and delegates to the real ARIAMixin property, which renders an update.\n    // This property will immediately remove the `aria-*` attribute, which doesn't\n    // work well with SSR (which is why there's a separate synced property).\n    const internalAriaProperty = Symbol(property);\n    // \"ariaLabel\" -> \"aria-label\" / \"ariaLabelledBy\" -> \"aria-labelledby\"\n    const ariaAttribute = property.replace('aria', 'aria-').toLowerCase();\n    const constructor = prototype.constructor;\n    let removingAttribute = false;\n    Object.defineProperty(prototype, internalAriaProperty, {\n        get() {\n            // tslint is failing here, but the types are correct (ARIAMixin\n            // properties do not obfuscate with closure)\n            // tslint:disable-next-line:no-dict-access-on-struct-type\n            return this[property];\n        },\n        set(value) {\n            if (removingAttribute) {\n                // Ignore this update, which is triggered below\n                return;\n            }\n            // Set the ARIAMixin property, which will sync the `data-*` attribute\n            // and trigger rendering if the value changed.\n            // tslint is failing here, but the types are correct (ARIAMixin\n            // properties do not obfuscate with closure)\n            // tslint:disable-next-line:no-dict-access-on-struct-type\n            this[property] = value;\n            // Remove the `aria-*` attribute, which will call this setter again with\n            // the incorrect value. Ignore these updates.\n            removingAttribute = true;\n            this.removeAttribute(ariaAttribute);\n            removingAttribute = false;\n        }\n    });\n    // Tell lit to observe the `aria-*` attribute and set the internal property,\n    // which acts as a \"aria-* attribute changed\" observer.\n    constructor.createProperty(internalAriaProperty, {\n        attribute: ariaAttribute,\n        noAccessor: true,\n    });\n}\n//# sourceMappingURL=aria-property.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\n// Required for @ariaProperty\n// tslint:disable:no-new-decorators\nimport { html, LitElement } from 'lit';\nimport { property, query, queryAssignedElements } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\nconst NAVIGABLE_KEYS = {\n    ArrowDown: 'ArrowDown',\n    ArrowUp: 'ArrowUp',\n    Home: 'Home',\n    End: 'End',\n};\nconst navigableKeySet = new Set(Object.values(NAVIGABLE_KEYS));\nfunction isNavigableKey(key) {\n    return navigableKeySet.has(key);\n}\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class List extends LitElement {\n    constructor() {\n        super(...arguments);\n        // @ts-ignore(b/264292293): Use `override` with TS 4.9+\n        this.role = 'list';\n        /**\n         * The tabindex of the underlying list.\n         */\n        this.listTabIndex = 0;\n    }\n    render() {\n        return this.renderList();\n    }\n    /**\n     * Renders the main list element.\n     */\n    renderList() {\n        return html `\n    <ul class=\"md3-list ${classMap(this.getListClasses())}\"\n        aria-label=\"${ifDefined(this.ariaLabel)}\"\n        tabindex=${this.listTabIndex}\n        role=${this.role}\n        @keydown=${this.handleKeydown}\n        >\n      ${this.renderContent()}\n    </ul>\n  `;\n    }\n    /**\n     * The classes to be applied to the underlying list.\n     */\n    getListClasses() {\n        return {};\n    }\n    /**\n     * The content to be slotted into the list.\n     */\n    renderContent() {\n        return html `<span><slot @click=${(e) => {\n            e.stopPropagation();\n        }}></slot></span>`;\n    }\n    /**\n     * Handles keyboard navigation in the list.\n     *\n     * @param event {KeyboardEvent} The keyboard event that triggers this handler.\n     */\n    handleKeydown(event) {\n        const key = event.key;\n        if (!isNavigableKey(key)) {\n            return;\n        }\n        // do not use this.items directly so we don't re-query the DOM unnecessarily\n        const items = this.items;\n        if (!items.length) {\n            return;\n        }\n        const activeItemRecord = List.getActiveItem(items);\n        if (activeItemRecord) {\n            activeItemRecord.item.active = false;\n        }\n        event.preventDefault();\n        switch (key) {\n            // Activate the next item\n            case NAVIGABLE_KEYS.ArrowDown:\n                if (activeItemRecord) {\n                    const next = List.getNextItem(items, activeItemRecord.index);\n                    if (next)\n                        next.active = true;\n                }\n                else {\n                    List.activateFirstItem(items);\n                }\n                break;\n            // Activate the previous item\n            case NAVIGABLE_KEYS.ArrowUp:\n                if (activeItemRecord) {\n                    const prev = List.getPrevItem(items, activeItemRecord.index);\n                    if (prev)\n                        prev.active = true;\n                }\n                else {\n                    items[items.length - 1].active = true;\n                }\n                break;\n            // Activate the first item\n            case NAVIGABLE_KEYS.Home:\n                List.activateFirstItem(items);\n                break;\n            // Activate the last item\n            case NAVIGABLE_KEYS.End:\n                List.activateLastItem(items);\n                break;\n            default:\n                break;\n        }\n    }\n    /**\n     * Activates the first non-disabled item of a given array of items.\n     *\n     * @param items {Array<ListItem>} The items from which to activate the\n     * first item.\n     */\n    static activateFirstItem(items) {\n        // NOTE: These selector functions are static and not on the instance such\n        // that multiple operations can be chained and we do not have to re-query\n        // the DOM\n        const firstItem = List.getFirstActivatableItem(items);\n        if (firstItem) {\n            firstItem.active = true;\n        }\n    }\n    /**\n     * Activates the last non-disabled item of a given array of items.\n     *\n     * @param items {Array<ListItem>} The items from which to activate the\n     * last item.\n     */\n    static activateLastItem(items) {\n        const lastItem = List.getLastActivatableItem(items);\n        if (lastItem) {\n            lastItem.active = true;\n        }\n    }\n    /**\n     * Deactivates the currently active item of a given array of items.\n     *\n     * @param items {Array<ListItem>} The items from which to deactivate the\n     * active item.\n     * @returns A record of the deleselcted activated item including the item and\n     * the index of the item or `null` if none are deactivated.\n     */\n    static deactivateActiveItem(items) {\n        const activeItem = List.getActiveItem(items);\n        if (activeItem) {\n            activeItem.item.active = false;\n        }\n        return activeItem;\n    }\n    focus() {\n        this.listRoot.focus();\n    }\n    /**\n     * Retrieves the the first activated item of a given array of items.\n     *\n     * @param items {Array<ListItem>} The items to search.\n     * @returns A record of the first activated item including the item and the\n     * index of the item or `null` if none are activated.\n     */\n    static getActiveItem(items) {\n        for (let i = 0; i < items.length; i++) {\n            const item = items[i];\n            if (item.active) {\n                return {\n                    item,\n                    index: i,\n                };\n            }\n        }\n        return null;\n    }\n    /**\n     * Retrieves the the first non-disabled item of a given array of items. This\n     * the first item that is not disabled.\n     *\n     * @param items {Array<ListItem>} The items to search.\n     * @returns The first activatable item or `null` if none are activatable.\n     */\n    static getFirstActivatableItem(items) {\n        for (const item of items) {\n            if (!item.disabled) {\n                return item;\n            }\n        }\n        return null;\n    }\n    /**\n     * Retrieves the the last non-disabled item of a given array of items.\n     *\n     * @param items {Array<ListItem>} The items to search.\n     * @returns The last activatable item or `null` if none are activatable.\n     */\n    static getLastActivatableItem(items) {\n        for (let i = items.length - 1; i >= 0; i--) {\n            const item = items[i];\n            if (!item.disabled) {\n                return item;\n            }\n        }\n        return null;\n    }\n    /**\n     * Retrieves the the next non-disabled item of a given array of items.\n     *\n     * @param items {Array<ListItem>} The items to search.\n     * @param index {{index: number}} The index to search from.\n     * @returns The next activatable item or `null` if none are activatable.\n     */\n    static getNextItem(items, index) {\n        for (let i = 1; i < items.length; i++) {\n            const nextIndex = (i + index) % items.length;\n            const item = items[nextIndex];\n            if (!item.disabled) {\n                return item;\n            }\n        }\n        return null;\n    }\n    /**\n     * Retrieves the the previous non-disabled item of a given array of items.\n     *\n     * @param items {Array<ListItem>} The items to search.\n     * @param index {{index: number}} The index to search from.\n     * @returns The previous activatable item or `null` if none are activatable.\n     */\n    static getPrevItem(items, index) {\n        for (let i = 1; i < items.length; i++) {\n            const prevIndex = (index - i + items.length) % items.length;\n            const item = items[prevIndex];\n            if (!item.disabled) {\n                return item;\n            }\n        }\n        return null;\n    }\n}\nList.shadowRootOptions = { mode: 'open', delegatesFocus: true };\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-label', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], List.prototype, \"ariaLabel\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-activedescendant', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], List.prototype, \"ariaActivedescendant\", void 0);\n__decorate([\n    ariaProperty\n    // tslint:disable-next-line\n    ,\n    property({ type: String, attribute: 'data-role', noAccessor: true })\n    // @ts-ignore(b/264292293): Use `override` with TS 4.9+\n    ,\n    __metadata(\"design:type\", String)\n], List.prototype, \"role\", void 0);\n__decorate([\n    property({ type: Number }),\n    __metadata(\"design:type\", Number)\n], List.prototype, \"listTabIndex\", void 0);\n__decorate([\n    query('.md3-list'),\n    __metadata(\"design:type\", HTMLElement)\n], List.prototype, \"listRoot\", void 0);\n__decorate([\n    queryAssignedElements({ flatten: true, selector: '[md-list-item]' }),\n    __metadata(\"design:type\", Array)\n], List.prototype, \"items\", void 0);\n//# sourceMappingURL=list.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { List } from '../../../list/lib/list.js';\n/** Base class for autocomplete list component. */\nexport class AutocompleteList extends List {\n    constructor() {\n        super(...arguments);\n        this.role = 'listbox';\n    }\n    /** @soyTemplate */\n    getListClasses() {\n        return {\n            ...super.getListClasses(),\n            'md3-autocomplete-list': true,\n        };\n    }\n}\n//# sourceMappingURL=autocomplete-list.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `.md3-autocomplete-list{min-width:unset}/*# sourceMappingURL=autocomplete-list-styles.css.map */\n`;\n//# sourceMappingURL=autocomplete-list-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {styles} from '@material/web/list/lib/list-styles.css.js';\n\nimport {AutocompleteList} from '@material/web/autocomplete/lib/autocompletelist/autocomplete-list.js';\nimport {styles as autocompleteStyles} from '@material/web/autocomplete/lib/autocompletelist/autocomplete-list-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-autocomplete-list': MdAutocompleteList;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdAutocompleteList extends AutocompleteList {\n  static override styles = [styles, autocompleteStyles];\n}\n","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-elevation: var(--md-menu-surface-container-elevation, 2);--_container-shadow-color: var(--md-menu-surface-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-menu-surface-container-shape, 4px);--_container-surface-tint-layer-color: var(--md-menu-surface-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4))}.md3-menu-surface{border-radius:var(--_container-shape);box-sizing:border-box;display:none;opacity:0;overflow:auto;margin:0;max-height:calc(100vh - 32px);max-width:calc(100vw - 32px);padding:0;position:absolute;transform:scale(1);transform-origin:top left;transition:opacity .03s linear,transform .12s cubic-bezier(0, 0, 0.2, 1),height 250ms cubic-bezier(0, 0, 0.2, 1);will-change:transform,opacity;z-index:8;--md-elevation-level:var(--_container-elevation);--md-elevation-shadow-color:var(--_container-shadow-color);--md-elevation-surface-tint:var(--_container-surface-tint-layer-color)}.md3-menu-surface md-elevation{z-index:0}.md3-menu-surface:focus{outline:none}.md3-menu-surface--animating-open{display:inline-block;opacity:0;transform:scale(0.8)}.md3-menu-surface--open{display:inline-block;opacity:1;transform:scale(1)}.md3-menu-surface--animating-closed{display:inline-block;opacity:0;transition:opacity .075s linear}.md3-menu-surface--anchor{overflow:visible;position:relative}.md3-menu-surface--fixed{position:fixed}.md3-menu-surface--fullwidth{width:100%}.md3-menu-surface--is-open-below{border-top-left-radius:0px;border-top-right-radius:0px}/*# sourceMappingURL=menu-surface-styles.css.map */\n`;\n//# sourceMappingURL=menu-surface-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n/**\n * A component for elevation.\n */\nexport class Elevation extends LitElement {\n    constructor() {\n        super(...arguments);\n        /**\n         * Whether or not the elevation level should display a shadow.\n         */\n        this.shadow = false;\n        /**\n         * Whether or not the elevation level should display a surface tint color.\n         */\n        this.surface = false;\n    }\n    render() {\n        return html `\n       <span class=\"surface\"></span>\n       <span class=\"shadow\"></span>\n     `;\n    }\n}\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Elevation.prototype, \"shadow\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Elevation.prototype, \"surface\", void 0);\n//# sourceMappingURL=elevation.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_duration: var(--md-elevation-duration, 0s);--_easing: var(--md-elevation-easing, cubic-bezier(0.2, 0, 0, 1));--_level: var(--md-elevation-level, 0);--_shadow-color: var(--md-elevation-shadow-color, var(--md-sys-color-shadow, #000));--_surface-tint: var(--md-elevation-surface-tint, var(--md-sys-color-primary, #6750a4));border-radius:inherit;display:flex;position:relative}:host(:not([surface])) .surface,:host(:not([shadow])) .shadow{display:none}.surface,.shadow,.shadow::before,.shadow::after{border-radius:inherit;content:\"\";inset:0;position:absolute;transition-property:box-shadow,opacity;transition-duration:var(--_duration);transition-timing-function:var(--_easing)}.shadow::before{box-shadow:0px calc(1px*(clamp(0,var(--_level),1) + clamp(0,var(--_level) - 3,1) + 2*clamp(0,var(--_level) - 4,1))) calc(1px*(2*clamp(0,var(--_level),1) + clamp(0,var(--_level) - 2,1) + clamp(0,var(--_level) - 4,1))) 0px var(--_shadow-color);opacity:.3}.shadow::after{opacity:.15;box-shadow:0px calc(1px*(clamp(0,var(--_level),1) + clamp(0,var(--_level) - 1,1) + 2*clamp(0,var(--_level) - 2,3))) calc(1px*(3*clamp(0,var(--_level),2) + 2*clamp(0,var(--_level) - 2,3))) calc(1px*(clamp(0,var(--_level),4) + 2*clamp(0,var(--_level) - 4,1))) var(--_shadow-color)}.surface{background:var(--_surface-tint);opacity:calc(clamp(0,var(--_level),.05) + clamp(0,var(--_level) - 1,.03) + clamp(0,var(--_level) - 2,.03) + clamp(0,var(--_level) - 3,.01) + clamp(0,var(--_level) - 4,.02))}/*# sourceMappingURL=elevation-styles.css.map */\n`;\n//# sourceMappingURL=elevation-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Elevation } from './lib/elevation.js';\nimport { styles } from './lib/elevation-styles.css.js';\n/**\n * The `<md-elevation>` custom element with default styles.\n *\n * Elevation is the relative distance between two surfaces along the z-axis.\n */\nlet MdElevation = class MdElevation extends Elevation {\n};\nMdElevation.styles = [styles];\nMdElevation = __decorate([\n    customElement('md-elevation')\n], MdElevation);\nexport { MdElevation };\n//# sourceMappingURL=elevation.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Returns `true` if the given element is in a right-to-left direction.\n *\n * @param el Element to determine direction from\n * @param shouldCheck Optional. If `false`, return `false` without checking\n *     direction. Determining the direction of `el` is somewhat expensive, so\n *     this parameter can be used as a conditional guard. Defaults to `true`.\n */\nexport function isRtl(el, shouldCheck = true) {\n    return shouldCheck &&\n        getComputedStyle(el).getPropertyValue('direction').trim() === 'rtl';\n}\n//# sourceMappingURL=is-rtl.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst cssClasses = {\n    ANCHOR: 'md3-menu-surface--anchor',\n    ANIMATING_CLOSED: 'md3-menu-surface--animating-closed',\n    ANIMATING_OPEN: 'md3-menu-surface--animating-open',\n    FIXED: 'md3-menu-surface--fixed',\n    IS_OPEN_BELOW: 'md3-menu-surface--is-open-below',\n    OPEN: 'md3-menu-surface--open',\n    ROOT: 'md3-menu-surface',\n};\n// tslint:disable:object-literal-sort-keys\nconst strings = {\n    CLOSED_EVENT: 'MDCMenuSurface:closed',\n    CLOSING_EVENT: 'MDCMenuSurface:closing',\n    OPENED_EVENT: 'MDCMenuSurface:opened',\n    OPENING_EVENT: 'MDCMenuSurface:opening',\n    FOCUSABLE_ELEMENTS: [\n        'button:not(:disabled)',\n        '[href]:not([aria-disabled=\"true\"])',\n        'input:not(:disabled)',\n        'select:not(:disabled)',\n        'textarea:not(:disabled)',\n        '[tabindex]:not([tabindex=\"-1\"]):not([aria-disabled=\"true\"])',\n    ].join(', '),\n};\n// tslint:enable:object-literal-sort-keys\nconst numbers = {\n    /** Total duration of menu-surface open animation. */\n    TRANSITION_OPEN_DURATION: 120,\n    /** Total duration of menu-surface close animation. */\n    TRANSITION_CLOSE_DURATION: 75,\n    /**\n     * Margin left to the edge of the viewport when menu-surface is at maximum\n     * possible height. Also used as a viewport margin.\n     */\n    MARGIN_TO_EDGE: 32,\n    /**\n     * Ratio of anchor width to menu-surface width for switching from corner\n     * positioning to center positioning.\n     */\n    ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO: 0.67,\n    /**\n     * Amount of time to wait before restoring focus when closing the menu\n     * surface. This is important because if a touch event triggered the menu\n     * close, and the subsequent mouse event occurs after focus is restored, then\n     * the restored focus would be lost.\n     */\n    TOUCH_EVENT_WAIT_MS: 30,\n};\n/**\n * Enum for bits in the {@see Corner) bitmap.\n */\nvar CornerBit;\n(function (CornerBit) {\n    CornerBit[CornerBit[\"BOTTOM\"] = 1] = \"BOTTOM\";\n    CornerBit[CornerBit[\"CENTER\"] = 2] = \"CENTER\";\n    CornerBit[CornerBit[\"RIGHT\"] = 4] = \"RIGHT\";\n    CornerBit[CornerBit[\"FLIP_RTL\"] = 8] = \"FLIP_RTL\";\n})(CornerBit || (CornerBit = {}));\n/**\n * Enum for representing an element corner for positioning the menu-surface.\n *\n * The START constants map to LEFT if element directionality is left\n * to right and RIGHT if the directionality is right to left.\n * Likewise END maps to RIGHT or LEFT depending on the directionality.\n */\nvar Corner;\n(function (Corner) {\n    Corner[Corner[\"TOP_LEFT\"] = 0] = \"TOP_LEFT\";\n    Corner[Corner[\"TOP_RIGHT\"] = 4] = \"TOP_RIGHT\";\n    Corner[Corner[\"BOTTOM_LEFT\"] = 1] = \"BOTTOM_LEFT\";\n    Corner[Corner[\"BOTTOM_RIGHT\"] = 5] = \"BOTTOM_RIGHT\";\n    Corner[Corner[\"TOP_START\"] = 8] = \"TOP_START\";\n    Corner[Corner[\"TOP_END\"] = 12] = \"TOP_END\";\n    Corner[Corner[\"BOTTOM_START\"] = 9] = \"BOTTOM_START\";\n    Corner[Corner[\"BOTTOM_END\"] = 13] = \"BOTTOM_END\";\n})(Corner || (Corner = {}));\nexport { cssClasses, strings, numbers, CornerBit, Corner };\n//# sourceMappingURL=constants.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Corner, CornerBit, cssClasses, numbers, strings } from './constants.js';\nexport class MDCMenuSurfaceFoundation {\n    static get cssClasses() {\n        return cssClasses;\n    }\n    static get strings() {\n        return strings;\n    }\n    static get numbers() {\n        return numbers;\n    }\n    static get Corner() {\n        return Corner;\n    }\n    /**\n     * @see {@link MDCMenuSurfaceAdapter} for typing information on parameters and return types.\n     */\n    static get defaultAdapter() {\n        // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n        return {\n            addClass: () => undefined,\n            removeClass: () => undefined,\n            hasClass: () => false,\n            hasAnchor: () => false,\n            isElementInContainer: () => false,\n            isFocused: () => false,\n            isRtl: () => false,\n            getInnerDimensions: () => ({ height: 0, width: 0 }),\n            getAnchorDimensions: () => null,\n            getWindowDimensions: () => ({ height: 0, width: 0 }),\n            getBodyDimensions: () => ({ height: 0, width: 0 }),\n            getWindowScroll: () => ({ x: 0, y: 0 }),\n            setPosition: () => undefined,\n            setMaxHeight: () => undefined,\n            setTransformOrigin: () => undefined,\n            saveFocus: () => undefined,\n            restoreFocus: () => undefined,\n            notifyClose: () => undefined,\n            notifyClosing: () => undefined,\n            notifyOpen: () => undefined,\n            notifyOpening: () => undefined,\n        };\n        // tslint:enable:object-literal-sort-keys\n    }\n    constructor(adapter) {\n        this.isSurfaceOpen = false;\n        this.isQuickOpen = false;\n        this.isHoistedElement = false;\n        this.isFixedPosition = false;\n        this.isHorizontallyCenteredOnViewport = false;\n        this.maxHeight = 0;\n        this.openBottomBias = 0;\n        this.openAnimationEndTimerId = 0;\n        this.closeAnimationEndTimerId = 0;\n        this.animationRequestId = 0;\n        this.anchorCorner = Corner.TOP_START;\n        /**\n         * Corner of the menu surface to which menu surface is attached to anchor.\n         *\n         *  Anchor corner --->+----------+\n         *                    |  ANCHOR  |\n         *                    +----------+\n         *  Origin corner --->+--------------+\n         *                    |              |\n         *                    |              |\n         *                    | MENU SURFACE |\n         *                    |              |\n         *                    |              |\n         *                    +--------------+\n         */\n        this.originCorner = Corner.TOP_START;\n        this.anchorMargin = { top: 0, right: 0, bottom: 0, left: 0 };\n        this.position = { x: 0, y: 0 };\n        this.adapter = { ...MDCMenuSurfaceFoundation.defaultAdapter, ...adapter };\n    }\n    init() {\n        const { ROOT, OPEN } = MDCMenuSurfaceFoundation.cssClasses;\n        if (!this.adapter.hasClass(ROOT)) {\n            throw new Error(`${ROOT} class required in root element.`);\n        }\n        if (this.adapter.hasClass(OPEN)) {\n            this.isSurfaceOpen = true;\n        }\n    }\n    destroy() {\n        clearTimeout(this.openAnimationEndTimerId);\n        clearTimeout(this.closeAnimationEndTimerId);\n        // Cancel any currently running animations.\n        cancelAnimationFrame(this.animationRequestId);\n    }\n    /**\n     * @param corner Default anchor corner alignment of top-left menu surface\n     *     corner.\n     */\n    setAnchorCorner(corner) {\n        this.anchorCorner = corner;\n    }\n    /**\n     * Flips menu corner horizontally.\n     */\n    flipCornerHorizontally() {\n        this.originCorner = this.originCorner ^ CornerBit.RIGHT;\n    }\n    /**\n     * @param margin Set of margin values from anchor.\n     */\n    setAnchorMargin(margin) {\n        this.anchorMargin.top = margin.top || 0;\n        this.anchorMargin.right = margin.right || 0;\n        this.anchorMargin.bottom = margin.bottom || 0;\n        this.anchorMargin.left = margin.left || 0;\n    }\n    /** Used to indicate if the menu-surface is hoisted to the body. */\n    setIsHoisted(isHoisted) {\n        this.isHoistedElement = isHoisted;\n    }\n    /**\n     * Used to set the menu-surface calculations based on a fixed position menu.\n     */\n    setFixedPosition(isFixedPosition) {\n        this.isFixedPosition = isFixedPosition;\n    }\n    /**\n     * @return Returns true if menu is in fixed (`position: fixed`) position.\n     */\n    isFixed() {\n        return this.isFixedPosition;\n    }\n    /** Sets the menu-surface position on the page. */\n    setAbsolutePosition(x, y) {\n        this.position.x = this.isFinite(x) ? x : 0;\n        this.position.y = this.isFinite(y) ? y : 0;\n    }\n    /** Sets whether menu-surface should be horizontally centered to viewport. */\n    setIsHorizontallyCenteredOnViewport(isCentered) {\n        this.isHorizontallyCenteredOnViewport = isCentered;\n    }\n    setQuickOpen(quickOpen) {\n        this.isQuickOpen = quickOpen;\n    }\n    /**\n     * Sets maximum menu-surface height on open.\n     * @param maxHeight The desired max-height. Set to 0 (default) to\n     *     automatically calculate max height based on available viewport space.\n     */\n    setMaxHeight(maxHeight) {\n        this.maxHeight = maxHeight;\n    }\n    /**\n     * Set to a positive integer to influence the menu to preferentially open\n     * below the anchor instead of above.\n     * @param bias A value of `x` simulates an extra `x` pixels of available space\n     *     below the menu during positioning calculations.\n     */\n    setOpenBottomBias(bias) {\n        this.openBottomBias = bias;\n    }\n    isOpen() {\n        return this.isSurfaceOpen;\n    }\n    /**\n     * Open the menu surface.\n     */\n    open() {\n        if (this.isSurfaceOpen) {\n            return;\n        }\n        this.adapter.notifyOpening();\n        this.adapter.saveFocus();\n        if (this.isQuickOpen) {\n            this.isSurfaceOpen = true;\n            this.adapter.addClass(MDCMenuSurfaceFoundation.cssClasses.OPEN);\n            this.dimensions = this.adapter.getInnerDimensions();\n            this.autoposition();\n            this.adapter.notifyOpen();\n        }\n        else {\n            this.adapter.addClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_OPEN);\n            this.animationRequestId = requestAnimationFrame(() => {\n                this.dimensions = this.adapter.getInnerDimensions();\n                this.autoposition();\n                this.adapter.addClass(MDCMenuSurfaceFoundation.cssClasses.OPEN);\n                this.openAnimationEndTimerId = setTimeout(() => {\n                    this.openAnimationEndTimerId = 0;\n                    this.adapter.removeClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_OPEN);\n                    this.adapter.notifyOpen();\n                }, numbers.TRANSITION_OPEN_DURATION);\n            });\n            this.isSurfaceOpen = true;\n        }\n    }\n    /**\n     * Closes the menu surface.\n     */\n    close(skipRestoreFocus = false) {\n        if (!this.isSurfaceOpen) {\n            return;\n        }\n        this.adapter.notifyClosing();\n        if (this.isQuickOpen) {\n            this.isSurfaceOpen = false;\n            if (!skipRestoreFocus) {\n                this.maybeRestoreFocus();\n            }\n            this.adapter.removeClass(MDCMenuSurfaceFoundation.cssClasses.OPEN);\n            this.adapter.removeClass(MDCMenuSurfaceFoundation.cssClasses.IS_OPEN_BELOW);\n            this.adapter.notifyClose();\n            return;\n        }\n        this.adapter.addClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_CLOSED);\n        requestAnimationFrame(() => {\n            this.adapter.removeClass(MDCMenuSurfaceFoundation.cssClasses.OPEN);\n            this.adapter.removeClass(MDCMenuSurfaceFoundation.cssClasses.IS_OPEN_BELOW);\n            this.closeAnimationEndTimerId = setTimeout(() => {\n                this.closeAnimationEndTimerId = 0;\n                this.adapter.removeClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_CLOSED);\n                this.adapter.notifyClose();\n            }, numbers.TRANSITION_CLOSE_DURATION);\n        });\n        this.isSurfaceOpen = false;\n        if (!skipRestoreFocus) {\n            this.maybeRestoreFocus();\n        }\n    }\n    /** Handle clicks and close if not within menu-surface element. */\n    handleBodyClick(evt) {\n        const el = evt.target;\n        if (this.adapter.isElementInContainer(el)) {\n            return;\n        }\n        this.close();\n    }\n    /** Handle keys that close the surface. */\n    handleKeydown(evt) {\n        const { keyCode, key } = evt;\n        const isEscape = key === 'Escape' || keyCode === 27;\n        if (isEscape) {\n            this.close();\n        }\n    }\n    autoposition() {\n        // Compute measurements for autoposition methods reuse.\n        this.measurements = this.getAutoLayoutmeasurements();\n        const corner = this.getOriginCorner();\n        const maxMenuSurfaceHeight = this.getMenuSurfaceMaxHeight(corner);\n        const verticalAlignment = this.hasBit(corner, CornerBit.BOTTOM) ? 'bottom' : 'top';\n        let horizontalAlignment = this.hasBit(corner, CornerBit.RIGHT) ? 'right' : 'left';\n        const horizontalOffset = this.getHorizontalOriginOffset(corner);\n        const verticalOffset = this.getVerticalOriginOffset(corner);\n        const { anchorSize, surfaceSize } = this.measurements;\n        const position = {\n            [horizontalAlignment]: horizontalOffset,\n            [verticalAlignment]: verticalOffset,\n        };\n        // Center align when anchor width is comparable or greater than menu\n        // surface, otherwise keep corner.\n        if (anchorSize.width / surfaceSize.width >\n            numbers.ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO) {\n            horizontalAlignment = 'center';\n        }\n        // If the menu-surface has been hoisted to the body, it's no longer relative\n        // to the anchor element\n        if (this.isHoistedElement || this.isFixedPosition) {\n            this.adjustPositionForHoistedElement(position);\n        }\n        this.adapter.setTransformOrigin(`${horizontalAlignment} ${verticalAlignment}`);\n        this.adapter.setPosition(position);\n        this.adapter.setMaxHeight(maxMenuSurfaceHeight ? maxMenuSurfaceHeight + 'px' : '');\n        // If it is opened from the top then add is-open-below class\n        if (!this.hasBit(corner, CornerBit.BOTTOM)) {\n            this.adapter.addClass(MDCMenuSurfaceFoundation.cssClasses.IS_OPEN_BELOW);\n        }\n    }\n    /**\n     * @return Measurements used to position menu surface popup.\n     */\n    getAutoLayoutmeasurements() {\n        let anchorRect = this.adapter.getAnchorDimensions();\n        const bodySize = this.adapter.getBodyDimensions();\n        const viewportSize = this.adapter.getWindowDimensions();\n        const windowScroll = this.adapter.getWindowScroll();\n        if (!anchorRect) {\n            // tslint:disable:object-literal-sort-keys Positional properties are more readable when they're grouped together\n            anchorRect = {\n                top: this.position.y,\n                right: this.position.x,\n                bottom: this.position.y,\n                left: this.position.x,\n                width: 0,\n                height: 0,\n            };\n            // tslint:enable:object-literal-sort-keys\n        }\n        return {\n            anchorSize: anchorRect,\n            bodySize,\n            surfaceSize: this.dimensions,\n            viewportDistance: {\n                // tslint:disable:object-literal-sort-keys Positional properties are more readable when they're grouped together\n                top: anchorRect.top,\n                right: viewportSize.width - anchorRect.right,\n                bottom: viewportSize.height - anchorRect.bottom,\n                left: anchorRect.left,\n                // tslint:enable:object-literal-sort-keys\n            },\n            viewportSize,\n            windowScroll,\n        };\n    }\n    /**\n     * Computes the corner of the anchor from which to animate and position the\n     * menu surface.\n     *\n     * Only LEFT or RIGHT bit is used to position the menu surface ignoring RTL\n     * context. E.g., menu surface will be positioned from right side on TOP_END.\n     */\n    getOriginCorner() {\n        let corner = this.originCorner;\n        const { viewportDistance, anchorSize, surfaceSize } = this.measurements;\n        const { MARGIN_TO_EDGE } = MDCMenuSurfaceFoundation.numbers;\n        const isAnchoredToBottom = this.hasBit(this.anchorCorner, CornerBit.BOTTOM);\n        let availableTop;\n        let availableBottom;\n        if (isAnchoredToBottom) {\n            availableTop =\n                viewportDistance.top - MARGIN_TO_EDGE + this.anchorMargin.bottom;\n            availableBottom =\n                viewportDistance.bottom - MARGIN_TO_EDGE - this.anchorMargin.bottom;\n        }\n        else {\n            availableTop =\n                viewportDistance.top - MARGIN_TO_EDGE + this.anchorMargin.top;\n            availableBottom = viewportDistance.bottom - MARGIN_TO_EDGE +\n                anchorSize.height - this.anchorMargin.top;\n        }\n        const isAvailableBottom = availableBottom - surfaceSize.height > 0;\n        if (!isAvailableBottom &&\n            availableTop > availableBottom + this.openBottomBias) {\n            // Attach bottom side of surface to the anchor.\n            corner = this.setBit(corner, CornerBit.BOTTOM);\n        }\n        const isRtl = this.adapter.isRtl();\n        const isFlipRtl = this.hasBit(this.anchorCorner, CornerBit.FLIP_RTL);\n        const hasRightBit = this.hasBit(this.anchorCorner, CornerBit.RIGHT) ||\n            this.hasBit(corner, CornerBit.RIGHT);\n        // Whether surface attached to right side of anchor element.\n        let isAnchoredToRight = false;\n        // Anchored to start\n        if (isRtl && isFlipRtl) {\n            isAnchoredToRight = !hasRightBit;\n        }\n        else {\n            // Anchored to right\n            isAnchoredToRight = hasRightBit;\n        }\n        let availableLeft;\n        let availableRight;\n        if (isAnchoredToRight) {\n            availableLeft =\n                viewportDistance.left + anchorSize.width + this.anchorMargin.right;\n            availableRight = viewportDistance.right - this.anchorMargin.right;\n        }\n        else {\n            availableLeft = viewportDistance.left + this.anchorMargin.left;\n            availableRight =\n                viewportDistance.right + anchorSize.width - this.anchorMargin.left;\n        }\n        const isAvailableLeft = availableLeft - surfaceSize.width > 0;\n        const isAvailableRight = availableRight - surfaceSize.width > 0;\n        const isOriginCornerAlignedToEnd = this.hasBit(corner, CornerBit.FLIP_RTL) &&\n            this.hasBit(corner, CornerBit.RIGHT);\n        if (isAvailableRight && isOriginCornerAlignedToEnd && isRtl ||\n            !isAvailableLeft && isOriginCornerAlignedToEnd) {\n            // Attach left side of surface to the anchor.\n            corner = this.unsetBit(corner, CornerBit.RIGHT);\n        }\n        else if (isAvailableLeft && isAnchoredToRight && isRtl ||\n            (isAvailableLeft && !isAnchoredToRight && hasRightBit) ||\n            (!isAvailableRight && availableLeft >= availableRight)) {\n            // Attach right side of surface to the anchor.\n            corner = this.setBit(corner, CornerBit.RIGHT);\n        }\n        return corner;\n    }\n    /**\n     * @param corner Origin corner of the menu surface.\n     * @return Maximum height of the menu surface, based on available space. 0\n     *     indicates should not be set.\n     */\n    getMenuSurfaceMaxHeight(corner) {\n        if (this.maxHeight > 0) {\n            return this.maxHeight;\n        }\n        const { viewportDistance } = this.measurements;\n        let maxHeight = 0;\n        const isBottomAligned = this.hasBit(corner, CornerBit.BOTTOM);\n        const isBottomAnchored = this.hasBit(this.anchorCorner, CornerBit.BOTTOM);\n        const { MARGIN_TO_EDGE } = MDCMenuSurfaceFoundation.numbers;\n        // When maximum height is not specified, it is handled from CSS.\n        if (isBottomAligned) {\n            maxHeight = viewportDistance.top + this.anchorMargin.top - MARGIN_TO_EDGE;\n            if (!isBottomAnchored) {\n                maxHeight += this.measurements.anchorSize.height;\n            }\n        }\n        else {\n            maxHeight = viewportDistance.bottom - this.anchorMargin.bottom +\n                this.measurements.anchorSize.height - MARGIN_TO_EDGE;\n            if (isBottomAnchored) {\n                maxHeight -= this.measurements.anchorSize.height;\n            }\n        }\n        return maxHeight;\n    }\n    /**\n     * @param corner Origin corner of the menu surface.\n     * @return Horizontal offset of menu surface origin corner from corresponding\n     *     anchor corner.\n     */\n    getHorizontalOriginOffset(corner) {\n        const { anchorSize } = this.measurements;\n        // isRightAligned corresponds to using the 'right' property on the surface.\n        const isRightAligned = this.hasBit(corner, CornerBit.RIGHT);\n        const avoidHorizontalOverlap = this.hasBit(this.anchorCorner, CornerBit.RIGHT);\n        if (isRightAligned) {\n            const rightOffset = avoidHorizontalOverlap ?\n                anchorSize.width - this.anchorMargin.left :\n                this.anchorMargin.right;\n            // For hoisted or fixed elements, adjust the offset by the difference\n            // between viewport width and body width so when we calculate the right\n            // value (`adjustPositionForHoistedElement`) based on the element\n            // position, the right property is correct.\n            if (this.isHoistedElement || this.isFixedPosition) {\n                return rightOffset -\n                    (this.measurements.viewportSize.width -\n                        this.measurements.bodySize.width);\n            }\n            return rightOffset;\n        }\n        return avoidHorizontalOverlap ? anchorSize.width - this.anchorMargin.right :\n            this.anchorMargin.left;\n    }\n    /**\n     * @param corner Origin corner of the menu surface.\n     * @return Vertical offset of menu surface origin corner from corresponding\n     *     anchor corner.\n     */\n    getVerticalOriginOffset(corner) {\n        const { anchorSize } = this.measurements;\n        const isBottomAligned = this.hasBit(corner, CornerBit.BOTTOM);\n        const avoidVerticalOverlap = this.hasBit(this.anchorCorner, CornerBit.BOTTOM);\n        let y = 0;\n        if (isBottomAligned) {\n            y = avoidVerticalOverlap ? anchorSize.height - this.anchorMargin.top :\n                -this.anchorMargin.bottom;\n        }\n        else {\n            y = avoidVerticalOverlap ?\n                (anchorSize.height + this.anchorMargin.bottom) :\n                this.anchorMargin.top;\n        }\n        return y;\n    }\n    /**\n     * Calculates the offsets for positioning the menu-surface when the\n     * menu-surface has been hoisted to the body.\n     */\n    adjustPositionForHoistedElement(position) {\n        const { windowScroll, viewportDistance, surfaceSize, viewportSize } = this.measurements;\n        const props = Object.keys(position);\n        for (const prop of props) {\n            let value = position[prop] || 0;\n            if (this.isHorizontallyCenteredOnViewport &&\n                (prop === 'left' || prop === 'right')) {\n                position[prop] = (viewportSize.width - surfaceSize.width) / 2;\n                continue;\n            }\n            // Hoisted surfaces need to have the anchor elements location on the page\n            // added to the position properties for proper alignment on the body.\n            value += viewportDistance[prop];\n            // Surfaces that are absolutely positioned need to have additional\n            // calculations for scroll and bottom positioning.\n            if (!this.isFixedPosition) {\n                if (prop === 'top') {\n                    value += windowScroll.y;\n                }\n                else if (prop === 'bottom') {\n                    value -= windowScroll.y;\n                }\n                else if (prop === 'left') {\n                    value += windowScroll.x;\n                }\n                else { // prop === 'right'\n                    value -= windowScroll.x;\n                }\n            }\n            position[prop] = value;\n        }\n    }\n    /**\n     * The last focused element when the menu surface was opened should regain\n     * focus, if the user is focused on or within the menu surface when it is\n     * closed.\n     */\n    maybeRestoreFocus() {\n        const isRootFocused = this.adapter.isFocused();\n        const ownerDocument = this.adapter.getOwnerDocument ?\n            this.adapter.getOwnerDocument() :\n            document;\n        const childHasFocus = ownerDocument.activeElement &&\n            this.adapter.isElementInContainer(ownerDocument.activeElement);\n        if (isRootFocused || childHasFocus) {\n            // Wait before restoring focus when closing the menu surface. This is\n            // important because if a touch event triggered the menu close, and the\n            // subsequent mouse event occurs after focus is restored, then the\n            // restored focus would be lost.\n            setTimeout(() => {\n                this.adapter.restoreFocus();\n            }, numbers.TOUCH_EVENT_WAIT_MS);\n        }\n    }\n    hasBit(corner, bit) {\n        return Boolean(corner & bit); // tslint:disable-line:no-bitwise\n    }\n    setBit(corner, bit) {\n        return corner | bit; // tslint:disable-line:no-bitwise\n    }\n    unsetBit(corner, bit) {\n        return corner ^ bit;\n    }\n    /**\n     * isFinite that doesn't force conversion to number type.\n     * Equivalent to Number.isFinite in ES2015, which is not supported in IE.\n     */\n    isFinite(num) {\n        return typeof num === 'number' && isFinite(num);\n    }\n}\n//# sourceMappingURL=foundation.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\n// Style preference for leading underscores.\n// tslint:disable:strip-private-property-underscore\nimport '../../elevation/elevation.js';\nimport { html, LitElement } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { isRtl } from '../../controller/is-rtl.js';\nimport { Corner as CornerEnum } from './constants.js';\nimport { MDCMenuSurfaceFoundation } from './foundation.js';\n// tslint:disable:no-bitwise\n// required for closure compiler\nconst stringToCorner = {\n    'TOP_LEFT': CornerEnum.TOP_LEFT,\n    'TOP_RIGHT': CornerEnum.TOP_RIGHT,\n    'BOTTOM_LEFT': CornerEnum.BOTTOM_LEFT,\n    'BOTTOM_RIGHT': CornerEnum.BOTTOM_RIGHT,\n    'TOP_START': CornerEnum.TOP_START,\n    'TOP_END': CornerEnum.TOP_END,\n    'BOTTOM_START': CornerEnum.BOTTOM_START,\n    'BOTTOM_END': CornerEnum.BOTTOM_END,\n};\n/**\n * @fires opened\n * @fires closed\n */\nexport class MenuSurface extends LitElement {\n    constructor() {\n        super(...arguments);\n        this.absolute = false;\n        this.fullwidth = false;\n        this.fixed = false;\n        this.x = null;\n        this.y = null;\n        // must be defined before open or else race condition in foundation occurs.\n        this.quick = false;\n        this.open = false;\n        this.stayOpenOnBodyClick = false;\n        this.skipRestoreFocus = false;\n        this.previousFlipMenuHorizontally = false;\n        /**\n         * Whether to align the menu surface to the opposite side of the default\n         * alignment.\n         */\n        this.flipMenuHorizontally = false;\n        this.corner = 'BOTTOM_START';\n        this.styleTop = '';\n        this.styleLeft = '';\n        this.styleRight = '';\n        this.styleBottom = '';\n        this.styleMaxHeight = '';\n        this.styleTransformOrigin = '';\n        this.anchor = null;\n        this.previouslyFocused = null;\n        this.previousAnchor = null;\n        this.onBodyClickBound = () => undefined;\n    }\n    render() {\n        const styles = {\n            'top': this.styleTop,\n            'left': this.styleLeft,\n            'right': this.styleRight,\n            'bottom': this.styleBottom,\n            'max-height': this.styleMaxHeight,\n            'transform-origin': this.styleTransformOrigin,\n        };\n        return html `\n      <div\n          class=\"md3-menu-surface ${classMap(this.getRenderClasses())}\"\n          style=\"${styleMap(styles)}\"\n          @keydown=${this.onKeydown}\n          @opened=${this.registerBodyClick}\n          @closed=${this.deregisterBodyClick}>\n        <md-elevation shadow></md-elevation>\n        <slot></slot>\n      </div>`;\n    }\n    /** @soyTemplate */\n    getRenderClasses() {\n        return {\n            'md3-menu-surface--fixed': this.fixed,\n            'md3-menu-surface--fullwidth': this.fullwidth,\n        };\n    }\n    updated(changedProperties) {\n        if (changedProperties.has('absolute') && !this.fixed) {\n            this.mdcFoundation.setIsHoisted(this.absolute);\n        }\n        if (changedProperties.has('fixed') && !this.absolute) {\n            this.mdcFoundation.setFixedPosition(this.fixed);\n        }\n        if ((changedProperties.has('x') || changedProperties.has('y')) &&\n            this.x !== null && this.y !== null) {\n            this.mdcFoundation.setAbsolutePosition(this.x, this.y);\n            this.mdcFoundation.setAnchorMargin({ left: this.x, top: this.y, right: -this.y, bottom: this.y });\n        }\n        if (changedProperties.has('quick')) {\n            this.mdcFoundation.setQuickOpen(this.quick);\n        }\n        if (changedProperties.has('open')) {\n            const wasOpen = changedProperties.get('open');\n            if (this.open) {\n                this.mdcFoundation.open();\n                // wasOpen helps with first render (when it is `undefined`) perf\n            }\n            else if (wasOpen !== undefined) {\n                this.mdcFoundation.close(this.skipRestoreFocus);\n            }\n        }\n        if (changedProperties.has('flipMenuHorizontally')) {\n            if (this.previousFlipMenuHorizontally !== this.flipMenuHorizontally) {\n                this.mdcFoundation.flipCornerHorizontally();\n            }\n            this.previousFlipMenuHorizontally = this.flipMenuHorizontally;\n        }\n        if (changedProperties.has('corner') && this.corner) {\n            const bitwiseCorner = stringToCorner[this.corner];\n            this.mdcFoundation.setAnchorCorner(bitwiseCorner);\n        }\n    }\n    firstUpdated() {\n        if (this.mdcFoundation !== undefined) {\n            this.mdcFoundation.destroy();\n        }\n        this.mdcFoundation = new MDCMenuSurfaceFoundation(this.createAdapter());\n        this.mdcFoundation.init();\n    }\n    createAdapter() {\n        return {\n            addClass: (className) => {\n                this.mdcRoot.classList.add(className);\n            },\n            removeClass: (className) => {\n                this.mdcRoot.classList.remove(className);\n            },\n            hasClass: (className) => this.mdcRoot.classList.contains(className),\n            hasAnchor: () => {\n                return !!this.anchor;\n            },\n            notifyClose: () => {\n                const init = { bubbles: true, composed: true };\n                const ev = new CustomEvent('closed', init);\n                this.open = false;\n                this.mdcRoot.dispatchEvent(ev);\n            },\n            notifyClosing: () => {\n                const init = { bubbles: true, composed: true };\n                const ev = new CustomEvent('closing', init);\n                this.mdcRoot.dispatchEvent(ev);\n            },\n            notifyOpen: () => {\n                const init = { bubbles: true, composed: true };\n                const ev = new CustomEvent('opened', init);\n                this.open = true;\n                this.mdcRoot.dispatchEvent(ev);\n            },\n            notifyOpening: () => {\n                const init = { bubbles: true, composed: true };\n                const ev = new CustomEvent('opening', init);\n                this.mdcRoot.dispatchEvent(ev);\n            },\n            isElementInContainer: () => false,\n            isRtl: () => this.mdcRoot ? isRtl(this.mdcRoot) : false,\n            setTransformOrigin: (origin) => {\n                const root = this.mdcRoot;\n                if (!root) {\n                    return;\n                }\n                this.styleTransformOrigin = origin;\n            },\n            isFocused: () => {\n                return this.matches(':focus-within');\n            },\n            saveFocus: () => {\n                this.previouslyFocused = document.activeElement;\n            },\n            restoreFocus: () => {\n                if (!this.previouslyFocused) {\n                    return;\n                }\n                if ('focus' in this.previouslyFocused) {\n                    this.previouslyFocused.focus();\n                }\n            },\n            getInnerDimensions: () => {\n                const mdcRoot = this.mdcRoot;\n                if (!mdcRoot) {\n                    return { width: 0, height: 0 };\n                }\n                return { width: mdcRoot.offsetWidth, height: mdcRoot.offsetHeight };\n            },\n            getAnchorDimensions: () => {\n                const anchorElement = this.anchor;\n                return anchorElement ? anchorElement.getBoundingClientRect() : null;\n            },\n            getBodyDimensions: () => {\n                return {\n                    width: document.body.clientWidth,\n                    height: document.body.clientHeight,\n                };\n            },\n            getWindowDimensions: () => {\n                return {\n                    width: window.innerWidth,\n                    height: window.innerHeight,\n                };\n            },\n            getWindowScroll: () => {\n                return {\n                    x: window.pageXOffset,\n                    y: window.pageYOffset,\n                };\n            },\n            setPosition: (position) => {\n                const mdcRoot = this.mdcRoot;\n                if (!mdcRoot) {\n                    return;\n                }\n                this.styleLeft = 'left' in position ? `${position.left}px` : '';\n                this.styleRight = 'right' in position ? `${position.right}px` : '';\n                this.styleTop = 'top' in position ? `${position.top}px` : '';\n                this.styleBottom = 'bottom' in position ? `${position.bottom}px` : '';\n            },\n            setMaxHeight: async (height) => {\n                const mdcRoot = this.mdcRoot;\n                if (!mdcRoot) {\n                    return;\n                }\n                // must set both for IE support as IE will not set a var\n                this.styleMaxHeight = height;\n                await this.updateComplete;\n                this.styleMaxHeight = `var(--md3-menu-max-height, ${height})`;\n            },\n        };\n    }\n    onKeydown(evt) {\n        if (this.mdcFoundation) {\n            this.mdcFoundation.handleKeydown(evt);\n        }\n    }\n    onBodyClick(evt) {\n        if (this.stayOpenOnBodyClick) {\n            return;\n        }\n        const path = evt.composedPath();\n        if (path.indexOf(this) === -1) {\n            this.close();\n        }\n    }\n    registerBodyClick() {\n        this.onBodyClickBound = this.onBodyClick.bind(this);\n        // capture otherwise listener closes menu after quick menu opens\n        document.body.addEventListener('click', this.onBodyClickBound, { passive: true, capture: true });\n    }\n    deregisterBodyClick() {\n        document.body.removeEventListener('click', this.onBodyClickBound, { capture: true });\n    }\n    close() {\n        this.open = false;\n    }\n    show() {\n        this.open = true;\n    }\n}\n__decorate([\n    query('.md3-menu-surface'),\n    __metadata(\"design:type\", HTMLDivElement)\n], MenuSurface.prototype, \"mdcRoot\", void 0);\n__decorate([\n    query('slot'),\n    __metadata(\"design:type\", HTMLSlotElement)\n], MenuSurface.prototype, \"slotElement\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"absolute\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"fullwidth\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"fixed\", void 0);\n__decorate([\n    property({ type: Number }),\n    __metadata(\"design:type\", Number)\n], MenuSurface.prototype, \"x\", void 0);\n__decorate([\n    property({ type: Number }),\n    __metadata(\"design:type\", Number)\n], MenuSurface.prototype, \"y\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"quick\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"open\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"stayOpenOnBodyClick\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"skipRestoreFocus\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"flipMenuHorizontally\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", String)\n], MenuSurface.prototype, \"corner\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"styleTop\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"styleLeft\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"styleRight\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"styleBottom\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"styleMaxHeight\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], MenuSurface.prototype, \"styleTransformOrigin\", void 0);\n//# sourceMappingURL=menu-surface.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MenuSurface } from '../../../menusurface/lib/menu-surface.js';\n/** Base class for autocomplete surface component. */\nexport class AutocompleteSurface extends MenuSurface {\n    constructor() {\n        super(...arguments);\n        this.stayOpenOnBodyClick = true;\n    }\n    /** @soyTemplate */\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-autocomplete-surface': true,\n        };\n    }\n}\n//# sourceMappingURL=autocomplete-surface.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `.md3-autocomplete-surface{width:100%}/*# sourceMappingURL=autocomplete-surface-styles.css.map */\n`;\n//# sourceMappingURL=autocomplete-surface-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {styles} from '@material/web/menusurface/lib/menu-surface-styles.css.js';\n\nimport {AutocompleteSurface} from '@material/web/autocomplete/lib/autocompletesurface/autocomplete-surface.js';\nimport {styles as autocompleteStyles} from '@material/web/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-autocomplete-surface': MdAutocompleteSurface;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdAutocompleteSurface extends AutocompleteSurface {\n  static override styles = [styles, autocompleteStyles];\n}\n","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `@media(forced-colors: active){:host{--md-filled-text-field-disabled-active-indicator-color:GrayText;--md-filled-text-field-disabled-active-indicator-opacity:1;--md-filled-text-field-disabled-input-text-color:GrayText;--md-filled-text-field-disabled-input-text-opacity:1;--md-filled-text-field-disabled-label-text-color:GrayText;--md-filled-text-field-disabled-label-text-opacity:1;--md-filled-text-field-disabled-leading-icon-color:GrayText;--md-filled-text-field-disabled-leading-icon-opacity:1;--md-filled-text-field-disabled-supporting-text-color:GrayText;--md-filled-text-field-disabled-supporting-text-opacity:1;--md-filled-text-field-disabled-trailing-icon-color:GrayText;--md-filled-text-field-disabled-trailing-icon-opacity:1}}/*# sourceMappingURL=filled-forced-colors-styles.css.map */\n`;\n//# sourceMappingURL=filled-forced-colors-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-filled-text-field-container-shape-start-start, var(--md-filled-text-field-container-shape, 4px));--_container-shape-start-end: var(--md-filled-text-field-container-shape-start-end, var(--md-filled-text-field-container-shape, 4px));--_container-shape-end-end: var(--md-filled-text-field-container-shape-end-end, var(--md-filled-text-field-container-shape, 0px));--_container-shape-end-start: var(--md-filled-text-field-container-shape-end-start, var(--md-filled-text-field-container-shape, 0px));--_container-padding-horizontal: var(--md-filled-text-field-container-padding-horizontal, 16px);--_container-padding-vertical: var(--md-filled-text-field-container-padding-vertical, 16px);--_input-text-prefix-padding: var(--md-filled-text-field-input-text-prefix-padding, 2px);--_input-text-suffix-padding: var(--md-filled-text-field-input-text-suffix-padding, 2px);--_with-label-container-padding-vertical: var(--md-filled-text-field-with-label-container-padding-vertical, 8px);--_active-indicator-color: var(--md-filled-text-field-active-indicator-color, var(--md-sys-color-on-surface-variant, #49454f));--_active-indicator-height: var(--md-filled-text-field-active-indicator-height, 1px);--_caret-color: var(--md-filled-text-field-caret-color, var(--md-sys-color-primary, #6750a4));--_container-color: var(--md-filled-text-field-container-color, var(--md-sys-color-surface-variant, #e7e0ec));--_disabled-active-indicator-color: var(--md-filled-text-field-disabled-active-indicator-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-active-indicator-height: var(--md-filled-text-field-disabled-active-indicator-height, 1px);--_disabled-active-indicator-opacity: var(--md-filled-text-field-disabled-active-indicator-opacity, 0.38);--_disabled-container-color: var(--md-filled-text-field-disabled-container-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-container-opacity: var(--md-filled-text-field-disabled-container-opacity, 0.04);--_disabled-input-text-color: var(--md-filled-text-field-disabled-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-input-text-opacity: var(--md-filled-text-field-disabled-input-text-opacity, 0.38);--_disabled-label-text-color: var(--md-filled-text-field-disabled-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-label-text-opacity: var(--md-filled-text-field-disabled-label-text-opacity, 0.38);--_disabled-leading-icon-color: var(--md-filled-text-field-disabled-leading-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-leading-icon-opacity: var(--md-filled-text-field-disabled-leading-icon-opacity, 0.38);--_disabled-supporting-text-color: var(--md-filled-text-field-disabled-supporting-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-supporting-text-opacity: var(--md-filled-text-field-disabled-supporting-text-opacity, 0.38);--_disabled-trailing-icon-color: var(--md-filled-text-field-disabled-trailing-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-trailing-icon-opacity: var(--md-filled-text-field-disabled-trailing-icon-opacity, 0.38);--_error-active-indicator-color: var(--md-filled-text-field-error-active-indicator-color, var(--md-sys-color-error, #b3261e));--_error-focus-active-indicator-color: var(--md-filled-text-field-error-focus-active-indicator-color, var(--md-sys-color-error, #b3261e));--_error-focus-caret-color: var(--md-filled-text-field-error-focus-caret-color, var(--md-sys-color-error, #b3261e));--_error-focus-input-text-color: var(--md-filled-text-field-error-focus-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_error-focus-label-text-color: var(--md-filled-text-field-error-focus-label-text-color, var(--md-sys-color-error, #b3261e));--_error-focus-leading-icon-color: var(--md-filled-text-field-error-focus-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_error-focus-supporting-text-color: var(--md-filled-text-field-error-focus-supporting-text-color, var(--md-sys-color-error, #b3261e));--_error-focus-trailing-icon-color: var(--md-filled-text-field-error-focus-trailing-icon-color, var(--md-sys-color-error, #b3261e));--_error-hover-active-indicator-color: var(--md-filled-text-field-error-hover-active-indicator-color, var(--md-sys-color-on-error-container, #410e0b));--_error-hover-input-text-color: var(--md-filled-text-field-error-hover-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_error-hover-label-text-color: var(--md-filled-text-field-error-hover-label-text-color, var(--md-sys-color-on-error-container, #410e0b));--_error-hover-leading-icon-color: var(--md-filled-text-field-error-hover-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_error-hover-state-layer-color: var(--md-filled-text-field-error-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_error-hover-state-layer-opacity: var(--md-filled-text-field-error-hover-state-layer-opacity, 0.08);--_error-hover-supporting-text-color: var(--md-filled-text-field-error-hover-supporting-text-color, var(--md-sys-color-error, #b3261e));--_error-hover-trailing-icon-color: var(--md-filled-text-field-error-hover-trailing-icon-color, var(--md-sys-color-on-error-container, #410e0b));--_error-input-text-color: var(--md-filled-text-field-error-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_error-label-text-color: var(--md-filled-text-field-error-label-text-color, var(--md-sys-color-error, #b3261e));--_error-leading-icon-color: var(--md-filled-text-field-error-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_error-supporting-text-color: var(--md-filled-text-field-error-supporting-text-color, var(--md-sys-color-error, #b3261e));--_error-trailing-icon-color: var(--md-filled-text-field-error-trailing-icon-color, var(--md-sys-color-error, #b3261e));--_focus-active-indicator-color: var(--md-filled-text-field-focus-active-indicator-color, var(--md-sys-color-primary, #6750a4));--_focus-active-indicator-height: var(--md-filled-text-field-focus-active-indicator-height, 2px);--_focus-input-text-color: var(--md-filled-text-field-focus-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_focus-label-text-color: var(--md-filled-text-field-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_focus-leading-icon-color: var(--md-filled-text-field-focus-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-supporting-text-color: var(--md-filled-text-field-focus-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-trailing-icon-color: var(--md-filled-text-field-focus-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-active-indicator-color: var(--md-filled-text-field-hover-active-indicator-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-active-indicator-height: var(--md-filled-text-field-hover-active-indicator-height, 1px);--_hover-input-text-color: var(--md-filled-text-field-hover-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-label-text-color: var(--md-filled-text-field-hover-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-leading-icon-color: var(--md-filled-text-field-hover-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-state-layer-color: var(--md-filled-text-field-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-state-layer-opacity: var(--md-filled-text-field-hover-state-layer-opacity, 0.08);--_hover-supporting-text-color: var(--md-filled-text-field-hover-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-trailing-icon-color: var(--md-filled-text-field-hover-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_input-text-color: var(--md-filled-text-field-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_input-text-placeholder-color: var(--md-filled-text-field-input-text-placeholder-color, var(--md-sys-color-on-surface-variant, #49454f));--_input-text-prefix-color: var(--md-filled-text-field-input-text-prefix-color, var(--md-sys-color-on-surface-variant, #49454f));--_input-text-suffix-color: var(--md-filled-text-field-input-text-suffix-color, var(--md-sys-color-on-surface-variant, #49454f));--_input-text-type: var(--md-filled-text-field-input-text-type, 400 1rem / 1.5rem Roboto);--_label-text-color: var(--md-filled-text-field-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_label-text-populated-line-height: var(--md-filled-text-field-label-text-populated-line-height, 1rem);--_label-text-populated-size: var(--md-filled-text-field-label-text-populated-size, 0.75rem);--_label-text-type: var(--md-filled-text-field-label-text-type, 400 1rem / 1.5rem Roboto);--_leading-icon-color: var(--md-filled-text-field-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_leading-icon-size: var(--md-filled-text-field-leading-icon-size, 24px);--_supporting-text-color: var(--md-filled-text-field-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_supporting-text-type: var(--md-filled-text-field-supporting-text-type, 400 0.75rem / 1rem Roboto);--_trailing-icon-color: var(--md-filled-text-field-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_trailing-icon-size: var(--md-filled-text-field-trailing-icon-size, 24px);--md-filled-field-container-shape-start-start:var(--md-filled-field-container-shape, var(--_container-shape-start-start));--md-filled-field-container-shape-start-end:var(--md-filled-field-container-shape, var(--_container-shape-start-end));--md-filled-field-container-shape-end-end:var(--md-filled-field-container-shape, var(--_container-shape-end-end));--md-filled-field-container-shape-end-start:var(--md-filled-field-container-shape, var(--_container-shape-end-start));--md-filled-field-active-indicator-color:var(--_active-indicator-color);--md-filled-field-active-indicator-height:var(--_active-indicator-height);--md-filled-field-container-color:var(--_container-color);--md-filled-field-container-padding-horizontal:var(--_container-padding-horizontal);--md-filled-field-container-padding-vertical:var(--_container-padding-vertical);--md-filled-field-content-color:var(--_input-text-color);--md-filled-field-disabled-active-indicator-color:var(--_disabled-active-indicator-color);--md-filled-field-disabled-active-indicator-height:var(--_disabled-active-indicator-height);--md-filled-field-disabled-active-indicator-opacity:var(--_disabled-active-indicator-opacity);--md-filled-field-disabled-container-color:var(--_disabled-container-color);--md-filled-field-disabled-container-opacity:var(--_disabled-container-opacity);--md-filled-field-disabled-content-color:var(--_disabled-input-text-color);--md-filled-field-disabled-content-opacity:var(--_disabled-input-text-opacity);--md-filled-field-disabled-label-text-color:var(--_disabled-label-text-color);--md-filled-field-disabled-label-text-opacity:var(--_disabled-label-text-opacity);--md-filled-field-disabled-leading-icon-color:var(--_disabled-leading-icon-color);--md-filled-field-disabled-leading-icon-opacity:var(--_disabled-leading-icon-opacity);--md-filled-field-disabled-supporting-text-color:var(--_disabled-supporting-text-color);--md-filled-field-disabled-supporting-text-opacity:var(--_disabled-supporting-text-opacity);--md-filled-field-disabled-trailing-icon-color:var(--_disabled-trailing-icon-color);--md-filled-field-disabled-trailing-icon-opacity:var(--_disabled-trailing-icon-opacity);--md-filled-field-error-active-indicator-color:var(--_error-active-indicator-color);--md-filled-field-error-focus-active-indicator-color:var(--_error-focus-active-indicator-color);--md-filled-field-error-focus-content-color:var(--_error-focus-input-text-color);--md-filled-field-error-focus-label-text-color:var(--_error-focus-label-text-color);--md-filled-field-error-focus-leading-icon-color:var(--_error-focus-leading-icon-color);--md-filled-field-error-focus-supporting-text-color:var(--_error-focus-supporting-text-color);--md-filled-field-error-focus-trailing-icon-color:var(--_error-focus-trailing-icon-color);--md-filled-field-error-hover-active-indicator-color:var(--_error-hover-active-indicator-color);--md-filled-field-error-hover-content-color:var(--_error-hover-input-text-color);--md-filled-field-error-hover-label-text-color:var(--_error-hover-label-text-color);--md-filled-field-error-hover-leading-icon-color:var(--_error-hover-leading-icon-color);--md-filled-field-error-hover-state-layer-color:var(--_error-hover-state-layer-color);--md-filled-field-error-hover-state-layer-opacity:var(--_error-hover-state-layer-opacity);--md-filled-field-error-hover-supporting-text-color:var(--_error-hover-supporting-text-color);--md-filled-field-error-hover-trailing-icon-color:var(--_error-hover-trailing-icon-color);--md-filled-field-error-content-color:var(--_error-input-text-color);--md-filled-field-error-label-text-color:var(--_error-label-text-color);--md-filled-field-error-leading-icon-color:var(--_error-leading-icon-color);--md-filled-field-error-supporting-text-color:var(--_error-supporting-text-color);--md-filled-field-error-trailing-icon-color:var(--_error-trailing-icon-color);--md-filled-field-focus-active-indicator-color:var(--_focus-active-indicator-color);--md-filled-field-focus-active-indicator-height:var(--_focus-active-indicator-height);--md-filled-field-focus-content-color:var(--_focus-input-text-color);--md-filled-field-focus-label-text-color:var(--_focus-label-text-color);--md-filled-field-focus-leading-icon-color:var(--_focus-leading-icon-color);--md-filled-field-focus-supporting-text-color:var(--_focus-supporting-text-color);--md-filled-field-focus-trailing-icon-color:var(--_focus-trailing-icon-color);--md-filled-field-hover-active-indicator-color:var(--_hover-active-indicator-color);--md-filled-field-hover-active-indicator-height:var(--_hover-active-indicator-height);--md-filled-field-hover-content-color:var(--_hover-input-text-color);--md-filled-field-hover-label-text-color:var(--_hover-label-text-color);--md-filled-field-hover-leading-icon-color:var(--_hover-leading-icon-color);--md-filled-field-hover-state-layer-color:var(--_hover-state-layer-color);--md-filled-field-hover-state-layer-opacity:var(--_hover-state-layer-opacity);--md-filled-field-hover-supporting-text-color:var(--_hover-supporting-text-color);--md-filled-field-hover-trailing-icon-color:var(--_hover-trailing-icon-color);--md-filled-field-label-text-color:var(--_label-text-color);--md-filled-field-label-text-type:var(--_label-text-type);--md-filled-field-label-text-populated-line-height:var(--_label-text-populated-line-height);--md-filled-field-label-text-populated-size:var(--_label-text-populated-size);--md-filled-field-leading-icon-color:var(--_leading-icon-color);--md-filled-field-leading-icon-size:var(--_leading-icon-size);--md-filled-field-supporting-text-color:var(--_supporting-text-color);--md-filled-field-supporting-text-type:var(--_supporting-text-type);--md-filled-field-trailing-icon-color:var(--_trailing-icon-color);--md-filled-field-trailing-icon-size:var(--_trailing-icon-size);--md-filled-field-with-label-container-padding-vertical:var(--_with-label-container-padding-vertical)}/*# sourceMappingURL=filled-styles.css.map */\n`;\n//# sourceMappingURL=filled-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{display:inline-flex;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.text-field{display:inline-flex;flex:1}.field{cursor:text;flex:1}.disabled .field{cursor:default}.counter{white-space:nowrap}.icon{display:flex}.icon ::slotted(*){display:flex}.icon.leading{color:var(--_leading-icon-color)}.icon.trailing{color:var(--_trailing-icon-color)}:hover .icon.leading{color:var(--_hover-leading-icon-color)}:hover .icon.trailing{color:var(--_hover-trailing-icon-color)}:focus-within .icon.leading{color:var(--_focus-leading-icon-color)}:focus-within .icon.trailing{color:var(--_focus-trailing-icon-color)}.disabled .icon.leading{color:var(--_disabled-leading-icon-color);opacity:var(--_disabled-leading-icon-opacity)}.disabled .icon.trailing{color:var(--_disabled-trailing-icon-color);opacity:var(--_disabled-trailing-icon-opacity)}.error .icon.leading{color:var(--_error-leading-icon-color)}.error .icon.trailing{color:var(--_error-trailing-icon-color)}.error:hover .icon.leading{color:var(--_error-hover-leading-icon-color)}.error:hover .icon.trailing{color:var(--_error-hover-trailing-icon-color)}.error:focus-within .icon.leading{color:var(--_error-focus-leading-icon-color)}.error:focus-within .icon.trailing{color:var(--_error-focus-trailing-icon-color)}input{appearance:none;background:none;border:none;caret-color:var(--_caret-color);color:currentColor;outline:none;padding:0;text-align:inherit;width:100%}input::placeholder{color:currentColor;opacity:1}input::-webkit-calendar-picker-indicator{display:none}@media(forced-colors: active){input{background-color:Field}}:focus-within input{caret-color:var(--_focus-caret-color)}.error:focus-within input{caret-color:var(--_error-focus-caret-color)}input,.prefix,.suffix{font:var(--_input-text-type)}.text-field:not(.disabled) .prefix,.text-field:not(.disabled) .suffix{color:var(--_input-text-prefix-color)}.text-field:not(.disabled) input::placeholder{color:var(--_input-text-placeholder-color)}.prefix{padding-inline-end:var(--_input-text-prefix-padding)}.suffix{padding-inline-start:var(--_input-text-suffix-padding)}/*# sourceMappingURL=shared-styles.css.map */\n`;\n//# sourceMappingURL=shared-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Re-dispatches an event from the provided element.\n *\n * This function is useful for forwarding non-composed events, such as `change`\n * events.\n *\n * @example\n * class MyInput extends LitElement {\n *   render() {\n *     return html`<input @change=${this.redispatchEvent}>`;\n *   }\n *\n *   protected redispatchEvent(event: Event) {\n *     redispatchEvent(this, event);\n *   }\n * }\n *\n * @param element The element to dispatch the event from.\n * @param event The event to re-dispatch.\n * @return Whether or not the event was dispatched (if cancelable).\n */\nexport function redispatchEvent(element, event) {\n    // For bubbling events in SSR light DOM (or composed), stop their propagation\n    // and dispatch the copy.\n    if (event.bubbles && (!element.shadowRoot || event.composed)) {\n        event.stopPropagation();\n    }\n    const copy = Reflect.construct(event.constructor, [event.type, event]);\n    const dispatched = element.dispatchEvent(copy);\n    if (!dispatched) {\n        event.preventDefault();\n    }\n    return dispatched;\n}\n/**\n * Dispatches a click event to the given element that triggers a native action,\n * but is not composed and therefore is not seen outside the element.\n *\n * This is useful for responding to an external click event on the host element\n * that should trigger an internal action like a button click.\n *\n * Note, a helper is provided because setting this up correctly is a bit tricky.\n * In particular, calling `click` on an element creates a composed event, which\n * is not desirable, and a manually dispatched event must specifically be a\n * `MouseEvent` to trigger a native action.\n *\n * @example\n * hostClickListener = (event: MouseEvent) {\n *   if (isActivationClick(event)) {\n *     this.dispatchActivationClick(this.buttonElement);\n *   }\n * }\n *\n */\nexport function dispatchActivationClick(element) {\n    const event = new MouseEvent('click', { bubbles: true });\n    element.dispatchEvent(event);\n    return event;\n}\n/**\n * Returns true if the click event should trigger an activation behavior. The\n * behavior is defined by the element and is whatever it should do when\n * clicked.\n *\n * Typically when an element needs to handle a click, the click is generated\n * from within the element and an event listener within the element implements\n * the needed behavior; however, it's possible to fire a click directly\n * at the element that the element should handle. This method helps\n * distinguish these \"external\" clicks.\n *\n * An \"external\" click can be triggered in a number of ways: via a click\n * on an associated label for a form  associated element, calling\n * `element.click()`, or calling\n * `element.dispatchEvent(new MouseEvent('click', ...))`.\n *\n * Also works around Firefox issue\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1804576 by squelching\n * events for a microtask after called.\n *\n * @example\n * hostClickListener = (event: MouseEvent) {\n *   if (isActivationClick(event)) {\n *     this.dispatchActivationClick(this.buttonElement);\n *   }\n * }\n *\n */\nexport function isActivationClick(event) {\n    // Event must start at the event target.\n    if (event.currentTarget !== event.target) {\n        return false;\n    }\n    // Event must not be retargeted from shadowRoot.\n    if (event.composedPath()[0] !== event.target) {\n        return false;\n    }\n    // Target must not be disabled; this should only occur for a synthetically\n    // dispatched click.\n    if (event.target.disabled) {\n        return false;\n    }\n    // This is an activation if the event should not be squelched.\n    return !squelchEvent(event);\n}\n// TODO(https://bugzilla.mozilla.org/show_bug.cgi?id=1804576)\n//  Remove when Firefox bug is addressed.\nfunction squelchEvent(event) {\n    const squelched = isSquelchingEvents;\n    if (squelched) {\n        event.preventDefault();\n        event.stopImmediatePropagation();\n    }\n    squelchEventsForMicrotask();\n    return squelched;\n}\n// Ignore events for one microtask only.\nlet isSquelchingEvents = false;\nasync function squelchEventsForMicrotask() {\n    isSquelchingEvents = true;\n    // Need to pause for just one microtask.\n    // tslint:disable-next-line\n    await null;\n    isSquelchingEvents = false;\n}\n//# sourceMappingURL=events.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nexport function bound(target, propertyKey, methodDescriptor) {\n    const descriptor = methodDescriptor || {\n        configurable: true,\n        enumerable: true,\n        writable: true,\n    };\n    const memoizedBoundValues = new WeakMap();\n    let get;\n    let set;\n    if (descriptor.get || descriptor.writable) {\n        get = function () {\n            const self = this; // Needed for closure conformance\n            if (descriptor.get) {\n                // Separate variables needed for closure conformance\n                const getter = descriptor.get;\n                const value = getter.call(self);\n                return value.bind(self);\n            }\n            if (!memoizedBoundValues.has(self)) {\n                const bound = (descriptor.value || self[propertyKey])?.bind(self);\n                memoizedBoundValues.set(self, bound);\n                return bound;\n            }\n            return memoizedBoundValues.get(self);\n        };\n    }\n    if (descriptor.set || descriptor.writable) {\n        set = function (value) {\n            const self = this; // Needed for closure conformance\n            value = value.bind(self);\n            if (descriptor.set) {\n                descriptor.set.call(self, value);\n            }\n            memoizedBoundValues.set(self, value);\n        };\n    }\n    return {\n        get,\n        set,\n        configurable: descriptor.configurable,\n        enumerable: descriptor.enumerable,\n    };\n}\n//# sourceMappingURL=bound.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Returns true if the element is a form associated custom element (FACE).\n */\nexport function isFormAssociated(element) {\n    return element.constructor.formAssociated;\n}\n//# sourceMappingURL=form-associated.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isFormAssociated } from './form-associated.js';\n// TODO Label activation shim is currently only needed for Safari. Remove it\n// when no longer needed, see b/261871554.\n/**\n * Returns true if labeling is supported for form associated custom elemeents.\n * Chrome and Firefox currently do and Safari support appears to be in progress,\n * see https://bugs.webkit.org/show_bug.cgi?id=197960.\n */\nexport const SUPPORTS_FACE_LABEL = 'labels' in (globalThis?.ElementInternals?.prototype ?? {});\nfunction isCustomElement(element) {\n    return element.localName.match('-');\n}\n// Elements that can be associated with a <label> element include <button>,\n// <input> (except for type=\"hidden\"), <meter>, <output>, <progress>, <select>\n// and <textarea>.\nconst implicitLabelReactive = new Set(['button', 'input', 'meter', 'progress', 'output', 'select', 'textarea']);\nfunction isLabelReactive(element) {\n    return implicitLabelReactive.has(element.localName) ||\n        isFormAssociated(element);\n}\n/**\n * Provides a shim for labeling form associated custom elements via clicks\n * on label elements. Note, this is currently needed only in Safari and\n * support appears to be in progress, see\n * https://bugs.webkit.org/show_bug.cgi?id=197960.\n */\nexport function shimLabelSupport(root) {\n    // Listen for clicks on root to find clicks on label elements\n    root.addEventListener('click', labelActivationListener);\n}\nfunction labelActivationListener(event) {\n    // Find label on which user clicked.\n    const path = event.composedPath();\n    const root = event.currentTarget;\n    let label = undefined;\n    for (let i = 0; i < path.length; i++) {\n        const target = path[i];\n        // Not element or not in scope.\n        if (target.nodeType !== Node.ELEMENT_NODE ||\n            target.getRootNode() !== root) {\n            continue;\n        }\n        // If the click is on a label reactive element, this is not a label click.\n        if (isLabelReactive(target)) {\n            return;\n        }\n        if (target.localName === 'label') {\n            label = target;\n        }\n    }\n    if (label === undefined) {\n        return;\n    }\n    // Find associated element to activate.\n    const forId = label.getAttribute('for');\n    const target = forId ?\n        root.getElementById(forId) :\n        Array.from(label.querySelectorAll('*'))\n            .find((el) => isCustomElement(el) && isFormAssociated(el));\n    if (target == null) {\n        return;\n    }\n    // Simulate FACE by issuing a click on the associated element.\n    const simulatedClick = new PointerEvent('click', { composed: true, bubbles: true });\n    target.dispatchEvent(simulatedClick);\n}\n//# sourceMappingURL=shim-label-activation.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { bound } from '../decorators/bound.js';\nimport { isFormAssociated } from './form-associated.js';\nimport { shimLabelSupport, SUPPORTS_FACE_LABEL } from './shim-label-activation.js';\n/**\n * A unique symbol key for `FormController` elements to implement their\n * `getFormValue()` function.\n */\nexport const getFormValue = Symbol('getFormValue');\n/**\n * A `ReactiveController` that adds `<form>` support to an element.\n *\n * Elements should also set `static formAssociated = true` which\n * provides platform support for forms. When an element is form associated,\n * it can be activated via clicks on associated label elements. It is the\n * responsibility of the element to process this click and perform any necessary\n * activation tasks, for example focusing and clicking on an internal element.\n *\n */\nexport class FormController {\n    /**\n     * Creates a new `FormController` for the given element.\n     *\n     * @param element The element to add `<form>` support to.\n     */\n    constructor(element) {\n        this.element = element;\n    }\n    hostConnected() {\n        // If the component internals are not in Shadow DOM, subscribing to form\n        // data events could lead to duplicated data, which may not work correctly\n        // on the server side.\n        if (!this.element.shadowRoot || window.ShadyDOM?.inUse) {\n            return;\n        }\n        // Preserve a reference to the form, since on hostDisconnected it may be\n        // null if the child was removed.\n        this.form = this.element.form;\n        this.form?.addEventListener('formdata', this.formDataListener);\n        // TODO(b/261871554) Label activation shim is currently only needed for\n        // Safari. Remove it when no longer needed.\n        if (isFormAssociated(this.element) && !SUPPORTS_FACE_LABEL) {\n            shimLabelSupport(this.element.getRootNode());\n        }\n    }\n    hostDisconnected() {\n        this.form?.removeEventListener('formdata', this.formDataListener);\n    }\n    formDataListener(event) {\n        if (this.element.disabled) {\n            // Check for truthiness since some elements may not support disabling.\n            return;\n        }\n        const value = this.element[getFormValue]();\n        // If given a `FormData` instance, append all values to the form. This\n        // allows elements to customize what is added beyond a single name/value\n        // pair.\n        if (value instanceof FormData) {\n            for (const [key, dataValue] of value) {\n                event.formData.append(key, dataValue);\n            }\n            return;\n        }\n        // Do not associate the value with the form if there is no value or no name.\n        if (value === null || !this.element.name) {\n            return;\n        }\n        event.formData.append(this.element.name, value);\n    }\n}\n__decorate([\n    bound,\n    __metadata(\"design:type\", Function),\n    __metadata(\"design:paramtypes\", [FormDataEvent]),\n    __metadata(\"design:returntype\", void 0)\n], FormController.prototype, \"formDataListener\", null);\n//# sourceMappingURL=form-controller.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nexport const stringConverter = {\n    fromAttribute(value) {\n        return value ?? '';\n    },\n    toAttribute(value) {\n        return value || null;\n    }\n};\n//# sourceMappingURL=string-converter.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html, LitElement, nothing } from 'lit';\nimport { property, query, queryAssignedElements, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { live } from 'lit/directives/live.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { html as staticHtml } from 'lit/static-html.js';\nimport { redispatchEvent } from '../../controller/events.js';\nimport { FormController, getFormValue } from '../../controller/form-controller.js';\nimport { stringConverter } from '../../controller/string-converter.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\n/**\n * A text field component.\n */\nexport class TextField extends LitElement {\n    // FormElement\n    get form() {\n        return this.closest('form');\n    }\n    [getFormValue]() {\n        return this.value;\n    }\n    /**\n     * Gets or sets the direction in which selection occurred.\n     */\n    get selectionDirection() {\n        return this.getInput().selectionDirection;\n    }\n    set selectionDirection(value) {\n        this.getInput().selectionDirection = value;\n    }\n    /**\n     * Gets or sets the end position or offset of a text selection.\n     */\n    get selectionEnd() {\n        return this.getInput().selectionEnd;\n    }\n    set selectionEnd(value) {\n        this.getInput().selectionEnd = value;\n    }\n    /**\n     * Gets or sets the starting position or offset of a text selection.\n     */\n    get selectionStart() {\n        return this.getInput().selectionStart;\n    }\n    set selectionStart(value) {\n        this.getInput().selectionStart = value;\n    }\n    /**\n     * Returns the native validation error message that would be displayed upon\n     * calling `reportValidity()`.\n     *\n     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement/validationMessage\n     */\n    get validationMessage() {\n        return this.getInput().validationMessage;\n    }\n    /**\n     * Returns a ValidityState object that represents the validity states of the\n     * text field.\n     *\n     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement/validity\n     */\n    get validity() {\n        return this.getInput().validity;\n    }\n    /**\n     * The text field's value as a number.\n     */\n    get valueAsNumber() {\n        return this.getInput().valueAsNumber;\n    }\n    set valueAsNumber(value) {\n        this.getInput().valueAsNumber = value;\n        this.value = this.getInput().value;\n    }\n    /**\n     * The text field's value as a Date.\n     */\n    get valueAsDate() {\n        return this.getInput().valueAsDate;\n    }\n    set valueAsDate(value) {\n        this.getInput().valueAsDate = value;\n        this.value = this.getInput().value;\n    }\n    /**\n     * Returns whether an element will successfully validate based on forms\n     * validation rules and constraints.\n     *\n     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement/willValidate\n     */\n    get willValidate() {\n        return this.getInput().willValidate;\n    }\n    get hasError() {\n        return this.error || this.nativeError;\n    }\n    constructor() {\n        super();\n        this.disabled = false;\n        /**\n         * Gets or sets whether or not the text field is in a visually invalid state.\n         *\n         * Calling `reportValidity()` will automatically update `error`.\n         */\n        this.error = false;\n        /**\n         * The error message that replaces supporting text when `error` is true. If\n         * `errorText` is an empty string, then the supporting text will continue to\n         * show.\n         *\n         * Calling `reportValidity()` will automatically update `errorText` to the\n         * native `validationMessage`.\n         */\n        this.errorText = '';\n        this.required = false;\n        /**\n         * The current value of the text field. It is always a string.\n         *\n         * This is equal to `defaultValue` before user input.\n         */\n        this.value = '';\n        /**\n         * The default value of the text field. Before user input, changing the\n         * default value will update `value` as well.\n         *\n         * When the text field is reset, its `value` will be set to this default\n         * value.\n         */\n        this.defaultValue = '';\n        /**\n         * An optional prefix to display before the input value.\n         */\n        this.prefixText = '';\n        /**\n         * An optional suffix to display after the input value.\n         */\n        this.suffixText = '';\n        /**\n         * Whether or not the text field has a leading icon. Used for SSR.\n         */\n        this.hasLeadingIcon = false;\n        /**\n         * Whether or not the text field has a trailing icon. Used for SSR.\n         */\n        this.hasTrailingIcon = false;\n        /**\n         * Conveys additional information below the text field, such as how it should\n         * be used.\n         */\n        this.supportingText = '';\n        /**\n         * Override the input text CSS `direction`. Useful for RTL languages that use\n         * LTR notation for fractions.\n         */\n        this.textDirection = '';\n        // ARIA\n        this.ariaAutoComplete = null;\n        this.ariaControls = null;\n        this.ariaActiveDescendant = null;\n        this.ariaExpanded = null;\n        this.role = null;\n        this.name = '';\n        // <input> properties\n        /**\n         * Defines the greatest value in the range of permitted values.\n         *\n         * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#max\n         */\n        this.max = '';\n        /**\n         * The maximum number of characters a user can enter into the text field. Set\n         * to -1 for none.\n         *\n         * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#maxlength\n         */\n        this.maxLength = -1;\n        /**\n         * Defines the most negative value in the range of permitted values.\n         *\n         * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#min\n         */\n        this.min = '';\n        /**\n         * The minimum number of characters a user can enter into the text field. Set\n         * to -1 for none.\n         *\n         * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#minlength\n         */\n        this.minLength = -1;\n        /**\n         * A regular expression that the text field's value must match to pass\n         * constraint validation.\n         *\n         * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#pattern\n         */\n        this.pattern = '';\n        this.placeholder = '';\n        /**\n         * Indicates whether or not a user should be able to edit the text field's\n         * value.\n         *\n         * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#readonly\n         */\n        this.readOnly = false;\n        /**\n         * Returns or sets the element's step attribute, which works with min and max\n         * to limit the increments at which a numeric or date-time value can be set.\n         *\n         * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#step\n         */\n        this.step = '';\n        this.type = 'text';\n        /**\n         * Returns true when the text field has been interacted with. Native\n         * validation errors only display in response to user interactions.\n         */\n        this.dirty = false;\n        this.focused = false;\n        /**\n         * When set to true, the error text's `role=\"alert\"` will be removed, then\n         * re-added after an animation frame. This will re-announce an error message\n         * to screen readers.\n         */\n        this.refreshErrorAlert = false;\n        /**\n         * Returns true when the text field's `value` property has been changed from\n         * it's initial value.\n         *\n         * Setting `value` should always overwrite `defaultValue`, even when `value`\n         * is an empty string. This flag ensures that behavior.\n         */\n        this.valueHasChanged = false;\n        /**\n         * Whether or not to ignore the next `value` change when computing\n         * `valueHasChanged`.\n         */\n        this.ignoreNextValueChange = false;\n        /**\n         * Whether or not a native error has been reported via `reportValidity()`.\n         */\n        this.nativeError = false;\n        /**\n         * The validation message displayed from a native error via\n         * `reportValidity()`.\n         */\n        this.nativeErrorText = '';\n        this.addController(new FormController(this));\n        this.addEventListener('click', this.focus);\n        this.addEventListener('focusin', this.handleFocusin);\n        this.addEventListener('focusout', this.handleFocusout);\n    }\n    /**\n     * Checks the text field's native validation and returns whether or not the\n     * element is valid.\n     *\n     * If invalid, this method will dispatch the `invalid` event.\n     *\n     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/checkValidity\n     *\n     * @return true if the text field is valid, or false if not.\n     */\n    checkValidity() {\n        const { valid } = this.checkValidityAndDispatch();\n        return valid;\n    }\n    /**\n     * Focuses the text field's input text.\n     */\n    focus() {\n        if (this.disabled || this.matches(':focus-within')) {\n            // Don't shift focus from an element within the text field, like an icon\n            // button, to the input when focus is requested.\n            return;\n        }\n        super.focus();\n    }\n    /**\n     * Checks the text field's native validation and returns whether or not the\n     * element is valid.\n     *\n     * If invalid, this method will dispatch the `invalid` event.\n     *\n     * This method will display or clear an error text message equal to the text\n     * field's `validationMessage`, unless the invalid event is canceled.\n     *\n     * Use `setCustomValidity()` to customize the `validationMessage`.\n     *\n     * This method can also be used to re-announce error messages to screen\n     * readers.\n     *\n     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/reportValidity\n     *\n     * @return true if the text field is valid, or false if not.\n     */\n    reportValidity() {\n        const { valid, canceled } = this.checkValidityAndDispatch();\n        if (!canceled) {\n            const prevMessage = this.getErrorText();\n            this.nativeError = !valid;\n            this.nativeErrorText = this.validationMessage;\n            const needsRefresh = this.shouldErrorAnnounce() && prevMessage === this.getErrorText();\n            if (needsRefresh) {\n                this.refreshErrorAlert = true;\n            }\n        }\n        return valid;\n    }\n    /**\n     * Selects all the text in the text field.\n     *\n     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select\n     */\n    select() {\n        this.getInput().select();\n    }\n    /**\n     * Sets the text field's native validation error message. This is used to\n     * customize `validationMessage`.\n     *\n     * When the error is not an empty string, the text field is considered invalid\n     * and `validity.customError` will be true.\n     *\n     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setCustomValidity\n     *\n     * @param error The error message to display.\n     */\n    setCustomValidity(error) {\n        this.getInput().setCustomValidity(error);\n    }\n    setRangeText(...args) {\n        // Calling setRangeText with 1 vs 3-4 arguments has different behavior.\n        // Use spread syntax and type casting to ensure correct usage.\n        this.getInput().setRangeText(...args);\n        this.value = this.getInput().value;\n    }\n    /**\n     * Sets the start and end positions of a selection in the text field.\n     *\n     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n     *\n     * @param start The offset into the text field for the start of the selection.\n     * @param end The offset into the text field for the end of the selection.\n     * @param direction The direction in which the selection is performed.\n     */\n    setSelectionRange(start, end, direction) {\n        this.getInput().setSelectionRange(start, end, direction);\n    }\n    /**\n     * Decrements the value of a numeric type text field by `step` or `n` `step`\n     * number of times.\n     *\n     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/stepDown\n     *\n     * @param stepDecrement The number of steps to decrement, defaults to 1.\n     */\n    stepDown(stepDecrement) {\n        const input = this.getInput();\n        input.stepDown(stepDecrement);\n        this.value = input.value;\n    }\n    /**\n     * Increments the value of a numeric type text field by `step` or `n` `step`\n     * number of times.\n     *\n     * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/stepUp\n     *\n     * @param stepIncrement The number of steps to increment, defaults to 1.\n     */\n    stepUp(stepIncrement) {\n        const input = this.getInput();\n        input.stepUp(stepIncrement);\n        this.value = input.value;\n    }\n    /**\n     * Reset the text field to its default value.\n     */\n    reset() {\n        this.dirty = false;\n        this.valueHasChanged = false;\n        this.ignoreNextValueChange = true;\n        this.value = this.defaultValue;\n        this.nativeError = false;\n        this.nativeErrorText = '';\n    }\n    update(changedProperties) {\n        // Consider a value change anything that is not the initial empty string\n        // value.\n        const valueHasChanged = changedProperties.has('value') &&\n            changedProperties.get('value') !== undefined;\n        if (valueHasChanged && !this.ignoreNextValueChange) {\n            this.valueHasChanged = true;\n        }\n        if (this.ignoreNextValueChange) {\n            this.ignoreNextValueChange = false;\n        }\n        super.update(changedProperties);\n    }\n    render() {\n        const classes = {\n            'disabled': this.disabled,\n            'error': !this.disabled && this.hasError,\n        };\n        return html `\n       <span class=\"text-field ${classMap(classes)}\">\n         ${this.renderField()}\n       </span>\n     `;\n    }\n    updated(changedProperties) {\n        // Keep changedProperties arg so that subclasses may call it\n        // If a property such as `type` changes and causes the internal <input>\n        // value to change without dispatching an event, re-sync it.\n        const value = this.getInput().value;\n        if (this.value !== value) {\n            // Don't consider these updates (such as setting `defaultValue`) as\n            // the developer directly changing the `value`.\n            this.ignoreNextValueChange = true;\n            // Note this is typically inefficient in updated() since it schedules\n            // another update. However, it is needed for the <input> to fully render\n            // before checking its value.\n            this.value = value;\n        }\n        if (this.refreshErrorAlert) {\n            // The past render cycle removed the role=\"alert\" from the error message.\n            // Re-add it after an animation frame to re-announce the error.\n            requestAnimationFrame(() => {\n                this.refreshErrorAlert = false;\n            });\n        }\n    }\n    renderField() {\n        const prefix = this.renderPrefix();\n        const suffix = this.renderSuffix();\n        const input = this.renderInput();\n        return staticHtml `<${this.fieldTag}\n      class=\"field\"\n      ?disabled=${this.disabled}\n      ?error=${this.hasError}\n      ?focused=${this.focused}\n      ?hasEnd=${this.hasTrailingIcon}\n      ?hasStart=${this.hasLeadingIcon}\n      .label=${this.label}\n      ?populated=${!!this.getInputValue()}\n      ?required=${this.required}\n    >\n      ${this.renderLeadingIcon()}\n      ${prefix}${input}${suffix}\n      ${this.renderTrailingIcon()}\n      ${this.renderSupportingText()}\n      ${this.renderCounter()}\n    </${this.fieldTag}>`;\n    }\n    renderLeadingIcon() {\n        return html `\n       <span class=\"icon leading\" slot=\"start\">\n         <slot name=\"leadingicon\" @slotchange=${this.handleIconChange}></slot>\n       </span>\n     `;\n    }\n    renderTrailingIcon() {\n        return html `\n       <span class=\"icon trailing\" slot=\"end\">\n         <slot name=\"trailingicon\" @slotchange=${this.handleIconChange}></slot>\n       </span>\n     `;\n    }\n    renderInput() {\n        const style = { direction: this.textDirection };\n        // TODO(b/243805848): remove `as unknown as number` once lit analyzer is\n        // fixed\n        return html `<input\n       style=${styleMap(style)}\n       aria-activedescendant=${this.ariaActiveDescendant || nothing}\n       aria-autocomplete=${this.ariaAutoComplete || nothing}\n       aria-controls=${this.ariaControls || nothing}\n       aria-describedby=${this.getAriaDescribedBy() || nothing}\n       aria-expanded=${this.ariaExpanded || nothing}\n       aria-invalid=${this.hasError}\n       aria-label=${this.ariaLabel || this.label || nothing}\n       ?disabled=${this.disabled}\n       max=${(this.max || nothing)}\n       maxlength=${this.maxLength > -1 ? this.maxLength : nothing}\n       min=${(this.min || nothing)}\n       minlength=${this.minLength > -1 ? this.minLength : nothing}\n       pattern=${this.pattern || nothing}\n       placeholder=${this.placeholder || nothing}\n       role=${this.role || nothing}\n       ?readonly=${this.readOnly}\n       ?required=${this.required}\n       step=${(this.step || nothing)}\n       type=${this.type}\n       .value=${live(this.getInputValue())}\n       @change=${this.redispatchEvent}\n       @input=${this.handleInput}\n       @select=${this.redispatchEvent}\n     >`;\n    }\n    getInputValue() {\n        const alwaysShowValue = this.dirty || this.valueHasChanged;\n        if (alwaysShowValue) {\n            return this.value;\n        }\n        return this.defaultValue || this.value;\n    }\n    getAriaDescribedBy() {\n        const ids = [];\n        if (this.getSupportingText()) {\n            ids.push('support');\n        }\n        if (this.getCounterText()) {\n            ids.push('counter');\n        }\n        return ids.join(' ');\n    }\n    renderPrefix() {\n        return this.renderAffix(this.prefixText, /* isSuffix */ false);\n    }\n    renderSuffix() {\n        return this.renderAffix(this.suffixText, /* isSuffix */ true);\n    }\n    renderAffix(text, isSuffix) {\n        if (!text) {\n            return nothing;\n        }\n        const classes = {\n            'suffix': isSuffix,\n            'prefix': !isSuffix,\n        };\n        return html `<span class=\"${classMap(classes)}\">${text}</span>`;\n    }\n    renderSupportingText() {\n        const text = this.getSupportingText();\n        if (!text) {\n            return nothing;\n        }\n        return html `<span id=\"support\"\n      slot=\"supporting-text\"\n      role=${this.shouldErrorAnnounce() ? 'alert' : nothing}>${text}</span>`;\n    }\n    getSupportingText() {\n        const errorText = this.getErrorText();\n        return this.hasError && errorText ? errorText : this.supportingText;\n    }\n    getErrorText() {\n        return this.error ? this.errorText : this.nativeErrorText;\n    }\n    shouldErrorAnnounce() {\n        // Announce if there is an error and error text visible.\n        // If refreshErrorAlert is true, do not announce. This will remove the\n        // role=\"alert\" attribute. Another render cycle will happen after an\n        // animation frame to re-add the role.\n        return this.hasError && !!this.getErrorText() && !this.refreshErrorAlert;\n    }\n    renderCounter() {\n        const text = this.getCounterText();\n        if (!text) {\n            return nothing;\n        }\n        // TODO(b/244473435): add aria-label and announcements\n        return html `<span id=\"counter\"\n       class=\"counter\"\n       slot=\"supporting-text-end\">${text}</span>`;\n    }\n    getCounterText() {\n        return this.maxLength > -1 ? `${this.value.length} / ${this.maxLength}` :\n            '';\n    }\n    handleFocusin() {\n        this.focused = true;\n    }\n    handleFocusout() {\n        if (this.matches(':focus-within')) {\n            // Changing focus to another child within the text field, like a button\n            return;\n        }\n        this.focused = false;\n    }\n    handleInput(event) {\n        this.dirty = true;\n        this.value = event.target.value;\n        this.redispatchEvent(event);\n    }\n    redispatchEvent(event) {\n        redispatchEvent(this, event);\n    }\n    getInput() {\n        if (!this.input) {\n            // If the input is not yet defined, synchronously render.\n            // e.g.\n            // const textField = document.createElement('md-outlined-text-field');\n            // document.body.appendChild(textField);\n            // textField.focus(); // synchronously render\n            this.connectedCallback();\n            this.scheduleUpdate();\n        }\n        if (this.isUpdatePending) {\n            // If there are pending updates, synchronously perform them. This ensures\n            // that constraint validation properties (like `required`) are synced\n            // before interacting with input APIs that depend on them.\n            this.scheduleUpdate();\n        }\n        return this.input;\n    }\n    checkValidityAndDispatch() {\n        const valid = this.getInput().checkValidity();\n        let canceled = false;\n        if (!valid) {\n            canceled = !this.dispatchEvent(new Event('invalid', { cancelable: true }));\n        }\n        return { valid, canceled };\n    }\n    handleIconChange() {\n        this.hasLeadingIcon = this.leadingIcons.length > 0;\n        this.hasTrailingIcon = this.trailingIcons.length > 0;\n    }\n}\nTextField.shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true };\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"disabled\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"error\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"errorText\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", String)\n], TextField.prototype, \"label\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"required\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"value\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"defaultValue\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"prefixText\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"suffixText\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"hasLeadingIcon\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"hasTrailingIcon\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"supportingText\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"textDirection\", void 0);\n__decorate([\n    property({ type: String, attribute: 'data-aria-autocomplete', noAccessor: true }),\n    ariaProperty // tslint:disable-line:no-new-decorators\n    ,\n    __metadata(\"design:type\", String)\n], TextField.prototype, \"ariaAutoComplete\", void 0);\n__decorate([\n    property({ type: String, attribute: 'data-aria-controls', noAccessor: true }),\n    ariaProperty // tslint:disable-line:no-new-decorators\n    ,\n    __metadata(\"design:type\", String)\n], TextField.prototype, \"ariaControls\", void 0);\n__decorate([\n    property({ type: String, attribute: 'data-aria-activedescendant', noAccessor: true }),\n    ariaProperty // tslint:disable-line:no-new-decorators\n    ,\n    __metadata(\"design:type\", String)\n], TextField.prototype, \"ariaActiveDescendant\", void 0);\n__decorate([\n    property({ type: String, attribute: 'data-aria-expanded', noAccessor: true }),\n    ariaProperty // tslint:disable-line:no-new-decorators\n    ,\n    __metadata(\"design:type\", String)\n], TextField.prototype, \"ariaExpanded\", void 0);\n__decorate([\n    property({ type: String, attribute: 'data-aria-label', noAccessor: true }),\n    ariaProperty // tslint:disable-line:no-new-decorators\n    ,\n    __metadata(\"design:type\", String)\n], TextField.prototype, \"ariaLabel\", void 0);\n__decorate([\n    property({ type: String, attribute: 'data-role', noAccessor: true }),\n    ariaProperty // tslint:disable-line:no-new-decorators\n    ,\n    __metadata(\"design:type\", String)\n], TextField.prototype, \"role\", void 0);\n__decorate([\n    property({ type: String, reflect: true, converter: stringConverter }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"name\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"max\", void 0);\n__decorate([\n    property({ type: Number }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"maxLength\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"min\", void 0);\n__decorate([\n    property({ type: Number }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"minLength\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"pattern\", void 0);\n__decorate([\n    property({ type: String, reflect: true, converter: stringConverter }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"placeholder\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"readOnly\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"step\", void 0);\n__decorate([\n    property({ type: String, reflect: true }),\n    __metadata(\"design:type\", String)\n], TextField.prototype, \"type\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"dirty\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"focused\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"refreshErrorAlert\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"valueHasChanged\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"nativeError\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], TextField.prototype, \"nativeErrorText\", void 0);\n__decorate([\n    query('input'),\n    __metadata(\"design:type\", HTMLInputElement)\n], TextField.prototype, \"input\", void 0);\n__decorate([\n    queryAssignedElements({ slot: 'leadingicon' }),\n    __metadata(\"design:type\", Array)\n], TextField.prototype, \"leadingIcons\", void 0);\n__decorate([\n    queryAssignedElements({ slot: 'trailingicon' }),\n    __metadata(\"design:type\", Array)\n], TextField.prototype, \"trailingIcons\", void 0);\n//# sourceMappingURL=text-field.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html, LitElement } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { EASING } from '../../motion/animation.js';\nconst PRESS_GROW_MS = 450;\nconst MINIMUM_PRESS_MS = 225;\nconst INITIAL_ORIGIN_SCALE = 0.2;\nconst PADDING = 10;\nconst SOFT_EDGE_MINIMUM_SIZE = 75;\nconst SOFT_EDGE_CONTAINER_RATIO = 0.35;\nconst PRESS_PSEUDO = '::after';\nconst ANIMATION_FILL = 'forwards';\n/**\n * Interaction states for the ripple.\n *\n * On Touch:\n *  - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`\n *  - `INACTIVE -> TOUCH_DELAY -> HOLDING -> WAITING_FOR_CLICK -> INACTIVE`\n *\n * On Mouse or Pen:\n *   - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`\n */\nvar State;\n(function (State) {\n    /**\n     * Initial state of the control, no touch in progress.\n     *\n     * Transitions:\n     *   - on touch down: transition to `TOUCH_DELAY`.\n     *   - on mouse down: transition to `WAITING_FOR_CLICK`.\n     */\n    State[State[\"INACTIVE\"] = 0] = \"INACTIVE\";\n    /**\n     * Touch down has been received, waiting to determine if it's a swipe or\n     * scroll.\n     *\n     * Transitions:\n     *   - on touch up: begin press; transition to `WAITING_FOR_CLICK`.\n     *   - on cancel: transition to `INACTIVE`.\n     *   - after `TOUCH_DELAY_MS`: begin press; transition to `HOLDING`.\n     */\n    State[State[\"TOUCH_DELAY\"] = 1] = \"TOUCH_DELAY\";\n    /**\n     * A touch has been deemed to be a press\n     *\n     * Transitions:\n     *  - on up: transition to `WAITING_FOR_CLICK`.\n     */\n    State[State[\"HOLDING\"] = 2] = \"HOLDING\";\n    /**\n     * The user touch has finished, transition into rest state.\n     *\n     * Transitions:\n     *   - on click end press; transition to `INACTIVE`.\n     */\n    State[State[\"WAITING_FOR_CLICK\"] = 3] = \"WAITING_FOR_CLICK\";\n})(State || (State = {}));\n/**\n * Delay reacting to touch so that we do not show the ripple for a swipe or\n * scroll interaction.\n */\nconst TOUCH_DELAY_MS = 150;\n/**\n * A ripple component.\n */\nexport class Ripple extends LitElement {\n    constructor() {\n        super(...arguments);\n        // TODO(https://bugs.webkit.org/show_bug.cgi?id=247546)\n        // Remove Safari workaround that requires reflecting `unbounded` so\n        // it can be styled against.\n        /**\n         * Sets the ripple to be an unbounded circle.\n         */\n        this.unbounded = false;\n        /**\n         * Disables the ripple.\n         */\n        this.disabled = false;\n        this.hovered = false;\n        this.focused = false;\n        this.pressed = false;\n        this.rippleSize = '';\n        this.rippleScale = '';\n        this.initialSize = 0;\n        this.state = State.INACTIVE;\n        this.checkBoundsAfterContextMenu = false;\n    }\n    handlePointerenter(event) {\n        if (!this.shouldReactToEvent(event)) {\n            return;\n        }\n        this.hovered = true;\n    }\n    handlePointerleave(event) {\n        if (!this.shouldReactToEvent(event)) {\n            return;\n        }\n        this.hovered = false;\n        // release a held mouse or pen press that moves outside the element\n        if (this.state !== State.INACTIVE) {\n            this.endPressAnimation();\n        }\n    }\n    handleFocusin() {\n        this.focused = true;\n    }\n    handleFocusout() {\n        this.focused = false;\n    }\n    handlePointerup(event) {\n        if (!this.shouldReactToEvent(event)) {\n            return;\n        }\n        if (this.state === State.HOLDING) {\n            this.state = State.WAITING_FOR_CLICK;\n            return;\n        }\n        if (this.state === State.TOUCH_DELAY) {\n            this.state = State.WAITING_FOR_CLICK;\n            this.startPressAnimation(this.rippleStartEvent);\n            return;\n        }\n    }\n    async handlePointerdown(event) {\n        if (!this.shouldReactToEvent(event)) {\n            return;\n        }\n        this.rippleStartEvent = event;\n        if (!this.isTouch(event)) {\n            this.state = State.WAITING_FOR_CLICK;\n            this.startPressAnimation(event);\n            return;\n        }\n        // after a longpress contextmenu event, an extra `pointerdown` can be\n        // dispatched to the pressed element. Check that the down is within\n        // bounds of the element in this case.\n        if (this.checkBoundsAfterContextMenu && !this.inBounds(event)) {\n            return;\n        }\n        this.checkBoundsAfterContextMenu = false;\n        // Wait for a hold after touch delay\n        this.state = State.TOUCH_DELAY;\n        await new Promise(resolve => {\n            setTimeout(resolve, TOUCH_DELAY_MS);\n        });\n        if (this.state !== State.TOUCH_DELAY) {\n            return;\n        }\n        this.state = State.HOLDING;\n        this.startPressAnimation(event);\n    }\n    handleClick() {\n        // Click is a MouseEvent in Firefox and Safari, so we cannot use\n        // `shouldReactToEvent`\n        if (this.disabled) {\n            return;\n        }\n        if (this.state === State.WAITING_FOR_CLICK) {\n            this.endPressAnimation();\n            return;\n        }\n        if (this.state === State.INACTIVE) {\n            // keyboard synthesized click event\n            this.startPressAnimation();\n            this.endPressAnimation();\n        }\n    }\n    handlePointercancel(event) {\n        if (!this.shouldReactToEvent(event)) {\n            return;\n        }\n        this.endPressAnimation();\n    }\n    handleContextmenu() {\n        if (this.disabled) {\n            return;\n        }\n        this.checkBoundsAfterContextMenu = true;\n        this.endPressAnimation();\n    }\n    render() {\n        const classes = {\n            'hovered': this.hovered,\n            'focused': this.focused,\n            'pressed': this.pressed,\n            'unbounded': this.unbounded,\n        };\n        return html `<div class=\"surface ${classMap(classes)}\"></div>`;\n    }\n    update(changedProps) {\n        if (changedProps.has('disabled') && this.disabled) {\n            this.hovered = false;\n            this.focused = false;\n            this.pressed = false;\n        }\n        super.update(changedProps);\n    }\n    getDimensions() {\n        return (this.parentElement ?? this).getBoundingClientRect();\n    }\n    determineRippleSize() {\n        const { height, width } = this.getDimensions();\n        const maxDim = Math.max(height, width);\n        const softEdgeSize = Math.max(SOFT_EDGE_CONTAINER_RATIO * maxDim, SOFT_EDGE_MINIMUM_SIZE);\n        let maxRadius = maxDim;\n        let initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);\n        const hypotenuse = Math.sqrt(width ** 2 + height ** 2);\n        maxRadius = hypotenuse + PADDING;\n        // ensure `initialSize` is even for unbounded\n        if (this.unbounded) {\n            initialSize = initialSize - (initialSize % 2);\n        }\n        this.initialSize = initialSize;\n        this.rippleScale = `${(maxRadius + softEdgeSize) / initialSize}`;\n        this.rippleSize = `${this.initialSize}px`;\n    }\n    getNormalizedPointerEventCoords(pointerEvent) {\n        const { scrollX, scrollY } = window;\n        const { left, top } = this.getDimensions();\n        const documentX = scrollX + left;\n        const documentY = scrollY + top;\n        const { pageX, pageY } = pointerEvent;\n        return { x: pageX - documentX, y: pageY - documentY };\n    }\n    getTranslationCoordinates(positionEvent) {\n        const { height, width } = this.getDimensions();\n        // end in the center\n        const endPoint = {\n            x: (width - this.initialSize) / 2,\n            y: (height - this.initialSize) / 2,\n        };\n        let startPoint;\n        if (positionEvent instanceof PointerEvent) {\n            startPoint = this.getNormalizedPointerEventCoords(positionEvent);\n        }\n        else {\n            startPoint = {\n                x: width / 2,\n                y: height / 2,\n            };\n        }\n        // center around start point\n        startPoint = {\n            x: startPoint.x - (this.initialSize / 2),\n            y: startPoint.y - (this.initialSize / 2),\n        };\n        return { startPoint, endPoint };\n    }\n    startPressAnimation(positionEvent) {\n        this.pressed = true;\n        this.growAnimation?.cancel();\n        this.determineRippleSize();\n        const { startPoint, endPoint } = this.getTranslationCoordinates(positionEvent);\n        const translateStart = `${startPoint.x}px, ${startPoint.y}px`;\n        const translateEnd = `${endPoint.x}px, ${endPoint.y}px`;\n        this.growAnimation = this.mdRoot.animate({\n            top: [0, 0],\n            left: [0, 0],\n            height: [this.rippleSize, this.rippleSize],\n            width: [this.rippleSize, this.rippleSize],\n            transform: [\n                `translate(${translateStart}) scale(1)`,\n                `translate(${translateEnd}) scale(${this.rippleScale})`\n            ],\n        }, {\n            pseudoElement: PRESS_PSEUDO,\n            duration: PRESS_GROW_MS,\n            easing: EASING.STANDARD,\n            fill: ANIMATION_FILL\n        });\n    }\n    async endPressAnimation() {\n        const animation = this.growAnimation;\n        const pressAnimationPlayState = animation?.currentTime ?? Infinity;\n        if (pressAnimationPlayState >= MINIMUM_PRESS_MS) {\n            this.pressed = false;\n            return;\n        }\n        await new Promise(resolve => {\n            setTimeout(resolve, MINIMUM_PRESS_MS - pressAnimationPlayState);\n        });\n        if (this.growAnimation !== animation) {\n            // A new press animation was started. The old animation was canceled and\n            // should not finish the pressed state.\n            return;\n        }\n        this.pressed = false;\n    }\n    /**\n     * Returns `true` if\n     *  - the ripple element is enabled\n     *  - the pointer is primary for the input type\n     *  - the pointer is the pointer that started the interaction, or will start\n     * the interaction\n     *  - the pointer is a touch, or the pointer state has the primary button\n     * held, or the pointer is hovering\n     */\n    shouldReactToEvent(event) {\n        if (this.disabled || !event.isPrimary) {\n            return false;\n        }\n        if (this.rippleStartEvent &&\n            this.rippleStartEvent.pointerId !== event.pointerId) {\n            return false;\n        }\n        if (event.type === 'pointerenter' || event.type === 'pointerleave') {\n            return !this.isTouch(event);\n        }\n        const isPrimaryButton = event.buttons === 1;\n        return this.isTouch(event) || isPrimaryButton;\n    }\n    /**\n     * Check if the event is within the bounds of the element.\n     *\n     * This is only needed for the \"stuck\" contextmenu longpress on Chrome.\n     */\n    inBounds({ x, y }) {\n        const { top, left, bottom, right } = this.getBoundingClientRect();\n        return x >= left && x <= right && y >= top && y <= bottom;\n    }\n    isTouch({ pointerType }) {\n        return pointerType === 'touch';\n    }\n}\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Ripple.prototype, \"unbounded\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Ripple.prototype, \"disabled\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Ripple.prototype, \"hovered\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Ripple.prototype, \"focused\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Ripple.prototype, \"pressed\", void 0);\n__decorate([\n    query('.surface'),\n    __metadata(\"design:type\", HTMLElement)\n], Ripple.prototype, \"mdRoot\", void 0);\n//# sourceMappingURL=ripple.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_focus-color: var(--md-ripple-focus-color, var(--md-sys-color-on-surface, #1c1b1f));--_focus-opacity: var(--md-ripple-focus-opacity, 0.12);--_hover-color: var(--md-ripple-hover-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-opacity: var(--md-ripple-hover-opacity, 0.08);--_pressed-color: var(--md-ripple-pressed-color, var(--md-sys-color-on-surface, #1c1b1f));--_pressed-opacity: var(--md-ripple-pressed-opacity, 0.12);--_shape: var(--md-ripple-shape, 0px)}:host{display:flex}:host([disabled]){opacity:0}:host,.surface{position:absolute;inset:0;pointer-events:none;overflow:hidden}.surface{will-change:transform;border-radius:var(--_shape);outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.surface::before,.surface::after{position:absolute;opacity:0;pointer-events:none;content:\"\"}.surface::before{background-color:var(--_hover-color);transition:opacity 15ms linear,background-color 15ms linear;inset:0}.surface::after{background:radial-gradient(closest-side, var(--_pressed-color) max(100% - 70px, 65%), transparent 100%);transition:opacity 375ms linear;transform-origin:center center}.hovered::before{background-color:var(--_hover-color);opacity:var(--_hover-opacity)}.focused::before{background-color:var(--_focus-color);opacity:var(--_focus-opacity);transition-duration:75ms}.pressed::after{opacity:var(--_pressed-opacity);transition-duration:105ms}.unbounded{--_shape: var(--md-ripple-shape, 9999px)}@media screen and (forced-colors: active){:host{display:none}}/*# sourceMappingURL=ripple-styles.css.map */\n`;\n//# sourceMappingURL=ripple-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Ripple } from './lib/ripple.js';\nimport { styles } from './lib/ripple-styles.css.js';\n/**\n * @summary Ripples, also known as state layers, are visual indicators used to\n * communicate the status of a component or interactive element.\n *\n * @description A state layer is a semi-transparent covering on an element that\n * indicates its state. State layers provide a systematic approach to\n * visualizing states by using opacity. A layer can be applied to an entire\n * element or in a circular shape and only one state layer can be applied at a\n * given time.\n *\n * @final\n * @suppress {visibility}\n */\nlet MdRipple = class MdRipple extends Ripple {\n};\nMdRipple.styles = [styles];\nMdRipple = __decorate([\n    customElement('md-ripple')\n], MdRipple);\nexport { MdRipple };\n//# sourceMappingURL=ripple.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n/**\n * @summary An accessible, themable ring designed to be shown on\n * `:focus-visible`.\n *\n * @description\n * An accessible, themable ring designed to be shown on focus-visible.\n * Focus ring is designed to be controlled by the `strong-focus` module in the\n * same package.\n *\n * In most cases, `visible` should be set to\n * `shouldShowStrongFocus()` on `focus` and `pointerdown` (see `pointerPress()`\n * documentation in the `strong-focus` module), and `false` on `blur`.\n */\nexport class FocusRing extends LitElement {\n    constructor() {\n        super(...arguments);\n        /**\n         * Makes the focus ring visible.\n         */\n        this.visible = false;\n    }\n}\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], FocusRing.prototype, \"visible\", void 0);\n//# sourceMappingURL=focus-ring.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_shape-start-start: var(--md-focus-ring-shape-start-start, var(--md-focus-ring-shape, 9999px));--_shape-start-end: var(--md-focus-ring-shape-start-end, var(--md-focus-ring-shape, 9999px));--_shape-end-end: var(--md-focus-ring-shape-end-end, var(--md-focus-ring-shape, 9999px));--_shape-end-start: var(--md-focus-ring-shape-end-start, var(--md-focus-ring-shape, 9999px));--_offset-vertical: var(--md-focus-ring-offset-vertical, 2px);--_offset-horizontal: var(--md-focus-ring-offset-horizontal, 2px);--_width: var(--md-focus-ring-width, 3px);--_color: var(--md-focus-ring-color, var(--md-sys-color-secondary, #625b71));display:none;position:absolute;box-sizing:border-box;pointer-events:none;border:var(--_width) solid var(--_color);border-start-start-radius:var(--_shape-start-start);border-start-end-radius:var(--_shape-start-end);border-end-start-radius:var(--_shape-end-start);border-end-end-radius:var(--_shape-end-end);inset:calc(-1*(var(--_offset-vertical) + var(--_width))) calc(-1*(var(--_offset-horizontal) + var(--_width)))}:host([visible]){display:flex}/*# sourceMappingURL=focus-ring-styles.css.map */\n`;\n//# sourceMappingURL=focus-ring-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { FocusRing } from './lib/focus-ring.js';\nimport { styles } from './lib/focus-ring-styles.css.js';\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nlet MdFocusRing = class MdFocusRing extends FocusRing {\n};\nMdFocusRing.styles = [styles];\nMdFocusRing = __decorate([\n    customElement('md-focus-ring')\n], MdFocusRing);\nexport { MdFocusRing };\n//# sourceMappingURL=focus-ring.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nclass FocusGlobal {\n    constructor() {\n        this.visible = false;\n    }\n    setVisible(visible) {\n        this.visible = visible;\n    }\n}\n/**\n * This object can be overwritten by the `setup()` function to use a different\n * focus coordination object.\n */\nlet focusObject = new FocusGlobal();\n/**\n * Set of keyboard event codes that correspond to keyboard navigation\n */\nconst KEYBOARD_NAVIGATION_KEYS = new Set(['Tab', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']);\nfunction keydownHandler(e) {\n    if (KEYBOARD_NAVIGATION_KEYS.has(e.key)) {\n        focusObject.setVisible(true);\n    }\n}\n/**\n * Set up integration with alternate global focus tracking object\n *\n * @param focusGlobal A global focus object to coordinate between multiple\n *     systems\n * @param enableKeydownHandler Set to true to let StrongFocusService listen for\n *     keyboard navigation\n */\nexport function setup(focusGlobal, enableKeydownHandler = false) {\n    focusObject = focusGlobal;\n    if (enableKeydownHandler) {\n        window.addEventListener('keydown', keydownHandler);\n    }\n    else {\n        window.removeEventListener('keydown', keydownHandler);\n    }\n}\n/**\n * Setting for always showing strong focus\n *\n * Defaults to false, controlled by `setForceStrongFocus`\n */\nlet alwaysStrong = false;\n/**\n * Returns `true` if the component should show strong focus.\n *\n * By default, strong focus is shown only on keyboard navigation, and not on\n * pointer interaction.\n */\nexport function shouldShowStrongFocus() {\n    return alwaysStrong || focusObject.visible;\n}\n/**\n * Control if strong focus should always be shown on component focus\n *\n * Defaults to `false`\n *\n * @param force Forces strong focus on the page. Disables strong focus if false.\n */\nexport function setForceStrongFocus(force) {\n    alwaysStrong = force;\n}\n/**\n * If `true`, strong focus is always shown\n */\nexport function isStrongFocusForced() {\n    return alwaysStrong;\n}\n/**\n * Components should call this when a user interacts with a component with a\n * pointing device.\n *\n * By default, this will prevent the strong focus from being shown.\n */\nexport function pointerPress() {\n    focusObject.setVisible(false);\n}\nsetup(focusObject, true);\n//# sourceMappingURL=strong-focus.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { noChange } from 'lit';\nimport { Directive, directive, PartType } from 'lit/directive.js';\nclass RippleDirective extends Directive {\n    constructor(partInfo) {\n        super(partInfo);\n        this.rippleGetter = async () => null;\n        if (partInfo.type !== PartType.ELEMENT) {\n            throw new Error('The `ripple` directive must be used on an element');\n        }\n    }\n    render(ripple) {\n        return noChange;\n    }\n    // Use EventListenerObject::handleEvent interface to handle events without\n    // generating bound event handlers\n    async handleEvent(event) {\n        const ripple = await this.rippleGetter();\n        if (!ripple) {\n            return;\n        }\n        switch (event.type) {\n            case 'click':\n                ripple.handleClick();\n                break;\n            case 'contextmenu':\n                ripple.handleContextmenu();\n                break;\n            case 'pointercancel':\n                ripple.handlePointercancel(event);\n                break;\n            case 'pointerdown':\n                await ripple.handlePointerdown(event);\n                break;\n            case 'pointerenter':\n                ripple.handlePointerenter(event);\n                break;\n            case 'pointerleave':\n                ripple.handlePointerleave(event);\n                break;\n            case 'pointerup':\n                ripple.handlePointerup(event);\n                break;\n            default:\n                break;\n        }\n    }\n    update(part, [ripple]) {\n        if (!this.element) {\n            // NOTE: addEventListener typing needs to be used with HTMLElements or a\n            // subclass\n            this.element = part.element;\n            this.element.addEventListener('click', this);\n            this.element.addEventListener('contextmenu', this);\n            this.element.addEventListener('pointercancel', this);\n            this.element.addEventListener('pointerdown', this);\n            this.element.addEventListener('pointerenter', this);\n            this.element.addEventListener('pointerleave', this);\n            this.element.addEventListener('pointerup', this);\n        }\n        // Normalize given ripple accessor\n        this.rippleGetter = typeof ripple === 'function' ? ripple : () => ripple;\n        return noChange;\n    }\n}\n/**\n * Connects a Ripple element to a node that drives the interaction\n *\n * @param rippleGetter A function that returns an `md-ripple` element\n * @param simulateKeyboardClick For elements that do not issue a click on\n *     keyboard interaction, pass `true` to enable press animations on Enter or\n *     Spacebar\n */\nexport const ripple = directive(RippleDirective);\n//# sourceMappingURL=directive.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\n// Required for @ariaProperty\n// tslint:disable:no-new-decorators\nimport '../../../ripple/ripple.js';\nimport '../../../focus/focus-ring.js';\nimport { html, LitElement, nothing } from 'lit';\nimport { property, query, queryAsync, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ariaProperty } from '../../../decorators/aria-property.js';\nimport { pointerPress, shouldShowStrongFocus } from '../../../focus/strong-focus.js';\nimport { ripple } from '../../../ripple/directive.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class ListItemEl extends LitElement {\n    constructor() {\n        super(...arguments);\n        // @ts-ignore(b/264292293): Use `override` with TS 4.9+\n        this.role = 'listitem';\n        /**\n         * The primary, headline text of the list item.\n         */\n        this.headline = '';\n        /**\n         * The one-line supporting text below the headline.\n         */\n        this.supportingText = '';\n        /**\n         * The multi-line supporting text below the headline. __NOTE:__ if set to a\n         * truthy value, overrides the visibility and behavior of `supportingText`.\n         */\n        this.multiLineSupportingText = '';\n        /**\n         * The supporting text placed at the end of the item. Overriden by elements\n         * slotted into the `end` slot.\n         */\n        this.trailingSupportingText = '';\n        /**\n         * Disables the item and makes it non-selectable and non-interactive.\n         */\n        this.disabled = false;\n        /**\n         * The tabindex of the underlying item.\n         *\n         * __NOTE:__ this is overriden by the keyboard behavior of `md-list` and by\n         * setting `selected`.\n         */\n        this.itemTabIndex = -1;\n        /**\n         * Whether or not the element is in the selected visual state. When active,\n         * tabindex is set to 0, and in some list item variants (like md-list-item),\n         * focuses the underlying item.\n         */\n        this.active = false;\n        /**\n         * READONLY. Sets the `md-list-item` attribute on the element.\n         */\n        this.isListItem = true;\n        this.showFocusRing = false;\n        this.showRipple = false;\n        /**\n         * Only meant to be overriden by subclassing and not by the user. This is\n         * so that we have control over focus on specific variants such as disabling\n         * focus on <md-autocomplete-item> but enabling it for <md-menu-item>.\n         */\n        this.focusOnSelection = true;\n        this.getRipple = () => {\n            this.showRipple = true;\n            return this.ripple;\n        };\n        this.isFirstUpdate = true;\n    }\n    willUpdate(changed) {\n        if (changed.has('active') && !this.disabled) {\n            if (this.active) {\n                this.itemTabIndex = 0;\n                if (this.focusOnSelection) {\n                    this.showFocusRing = shouldShowStrongFocus();\n                }\n                // Do not reset anything if it's the first render because user could\n                // have set `itemTabIndex` manually.\n            }\n            else if (!this.isFirstUpdate) {\n                this.itemTabIndex = -1;\n            }\n        }\n    }\n    render() {\n        return this.renderListItem(html `\n      ${this.renderStart()}\n      ${this.renderBody()}\n      ${this.renderEnd()}\n      <div class=\"ripple\">\n        ${this.renderRipple()}\n      </div>\n      <div class=\"focus-ring\">\n        ${this.renderFocusRing()}\n      </div>`);\n    }\n    /**\n     * Renders the root list item.\n     *\n     * @param content {unkown} the child content of the list item.\n     */\n    renderListItem(content) {\n        return html `\n      <li\n          tabindex=${this.disabled ? -1 : this.itemTabIndex}\n          role=${this.role}\n          aria-selected=${this.ariaSelected || nothing}\n          aria-checked=${this.ariaChecked || nothing}\n          class=\"list-item ${classMap(this.getRenderClasses())}\"\n          @pointerdown=${this.onPointerdown}\n          @focus=${this.onFocus}\n          @blur=${this.onBlur}\n          @click=${this.onClick}\n          @pointerenter=${this.onPointerenter}\n          @pointerleave=${this.onPointerleave}\n          @keydown=${this.onKeydown}\n          ${ripple(this.getRipple)}>${content}</li>`;\n    }\n    /**\n     * Handles rendering of the ripple element.\n     */\n    renderRipple() {\n        return this.showRipple ?\n            html `<md-ripple ?disabled=\"${this.disabled}\"></md-ripple>` :\n            nothing;\n    }\n    /**\n     * Handles rendering of the focus ring.\n     */\n    renderFocusRing() {\n        return html `<md-focus-ring .visible=\"${this.showFocusRing}\"></md-focus-ring>`;\n    }\n    /**\n     * Classes applied to the list item root.\n     */\n    getRenderClasses() {\n        return {\n            'with-one-line': this.supportingText === '' && this.multiLineSupportingText === '',\n            'with-two-line': this.supportingText !== '' && this.multiLineSupportingText === '',\n            'with-three-line': this.multiLineSupportingText !== '',\n            'disabled': this.disabled,\n            'enabled': !this.disabled,\n        };\n    }\n    /**\n     * The content rendered at the start of the list item.\n     */\n    renderStart() {\n        return html `<div class=\"start\"><slot name=\"start\"></slot></div>`;\n    }\n    /**\n     * Handles rendering the headline and supporting text.\n     */\n    renderBody() {\n        const supportingText = this.multiLineSupportingText !== '' ?\n            this.renderMultiLineSupportingText() :\n            this.supportingText !== '' ? this.renderSupportingText() :\n                '';\n        return html `<div class=\"body\"\n      ><span class=\"label-text\">${this.headline}</span>${supportingText}</div>`;\n    }\n    /**\n     * Renders the one-line supporting text.\n     */\n    renderSupportingText() {\n        return html `<span class=\"supporting-text\">${this.supportingText}</span>`;\n    }\n    /**\n     * Renders the multi-line supporting text\n     */\n    renderMultiLineSupportingText() {\n        return html `<span class=\"supporting-text supporting-text--multi-line\"\n      >${this.multiLineSupportingText}</span>`;\n    }\n    /**\n     * The content rendered at the end of the list item.\n     */\n    renderEnd() {\n        const supportingText = this.trailingSupportingText !== '' ?\n            this.renderTrailingSupportingText() :\n            '';\n        return html `<div class=\"end\"\n      ><slot name=\"end\">${supportingText}</slot></div>`;\n    }\n    /**\n     * Renders the supporting text at the end of the list item.\n     */\n    renderTrailingSupportingText() {\n        return html `<span class=\"trailing-supporting-text\"\n      >${this.trailingSupportingText}</span>`;\n    }\n    onPointerdown() {\n        pointerPress();\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    onFocus() {\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    onBlur() {\n        this.showFocusRing = false;\n    }\n    // For easier overriding in menu-item\n    onClick(e) { }\n    onKeydown(e) { }\n    onPointerenter(e) { }\n    onPointerleave(e) { }\n    updated(changed) {\n        super.updated(changed);\n        // will focus the list item root if it is selected but not on the first\n        // update or else it may cause the page to jump on first load.\n        if (changed.has('active') && !this.isFirstUpdate && this.active &&\n            this.focusOnSelection) {\n            this.listItemRoot.focus();\n        }\n        this.isFirstUpdate = false;\n    }\n}\n__decorate([\n    ariaProperty\n    // tslint:disable-next-line\n    ,\n    property({ type: String, attribute: 'data-role', noAccessor: true })\n    // @ts-ignore(b/264292293): Use `override` with TS 4.9+\n    ,\n    __metadata(\"design:type\", String)\n], ListItemEl.prototype, \"role\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-selected', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], ListItemEl.prototype, \"ariaSelected\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-checked', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], ListItemEl.prototype, \"ariaChecked\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], ListItemEl.prototype, \"headline\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], ListItemEl.prototype, \"supportingText\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], ListItemEl.prototype, \"multiLineSupportingText\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], ListItemEl.prototype, \"trailingSupportingText\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], ListItemEl.prototype, \"disabled\", void 0);\n__decorate([\n    property({ type: Number }),\n    __metadata(\"design:type\", Object)\n], ListItemEl.prototype, \"itemTabIndex\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], ListItemEl.prototype, \"active\", void 0);\n__decorate([\n    property({ type: Boolean, attribute: 'md-list-item', reflect: true }),\n    __metadata(\"design:type\", Object)\n], ListItemEl.prototype, \"isListItem\", void 0);\n__decorate([\n    queryAsync('md-ripple'),\n    __metadata(\"design:type\", Promise)\n], ListItemEl.prototype, \"ripple\", void 0);\n__decorate([\n    query('.list-item'),\n    __metadata(\"design:type\", HTMLElement)\n], ListItemEl.prototype, \"listItemRoot\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], ListItemEl.prototype, \"showFocusRing\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], ListItemEl.prototype, \"showRipple\", void 0);\n//# sourceMappingURL=list-item.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { ListItemEl } from '../../../list/lib/listitem/list-item.js';\n/** Base class for autocomplete item component. */\nexport class AutocompleteItem extends ListItemEl {\n    constructor() {\n        super(...arguments);\n        this.role = 'option';\n    }\n}\n//# sourceMappingURL=autocomplete-item.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html } from 'lit';\nimport { property, query, queryAssignedElements, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { html as staticHtml } from 'lit/static-html.js';\nimport { TextField } from '../../textfield/lib/text-field.js';\nimport { AutocompleteItem } from './autocompleteitem/autocomplete-item.js';\nimport { AutocompleteList } from './autocompletelist/autocomplete-list.js';\nimport { AutocompleteSurface } from './autocompletesurface/autocomplete-surface.js';\n/** @soyCompatible */\nexport class Autocomplete extends TextField {\n    constructor() {\n        super(...arguments);\n        this.role = 'combobox';\n        this.ariaAutoComplete = 'list';\n        /**\n         * The ID prefix for the item elements, used for SSR.\n         */\n        this.itemIdPrefix = 'autocomplete-item';\n        this.value = '';\n        this.selectedItem = null;\n    }\n    /** @soyTemplate */\n    render() {\n        return html `<div class=\"md3-autocomplete ${classMap(this.getAutocompleteRenderClasses())}\"\n            @click=${this.handleClicked}\n            @focusout=${this.handleAnyFocusout}\n            @action=${this.handleAction}\n            @keydown=${this.handleKeydown}\n            @keyup=${this.handleKeyup}>\n            ${super.render()}\n            ${this.renderMenuSurface()}</div>`;\n    }\n    /** @soyTemplate */\n    getAutocompleteRenderClasses() {\n        return {};\n    }\n    updated(changedProperties) {\n        super.updated(changedProperties);\n        if (changedProperties.has('selectedItem')) {\n            this.updateSelectedItem();\n            // TODO(b/265209253): implement\n            // this.ariaActiveDescendant = this.selectedItem?.itemId ?? null;\n        }\n        if (changedProperties.has('value')) {\n            this.dispatchEvent(new CustomEvent('autocomplete-value-changed', { detail: { value: this.value }, bubbles: true, composed: true }));\n        }\n    }\n    firstUpdated(changedProperties) {\n        console.warn('<md-autocomplete> is not yet implemented.');\n        super.firstUpdated(changedProperties);\n        this.menuSurface.anchor = this;\n    }\n    /** @soyTemplate */\n    renderMenuSurface() {\n        return staticHtml `<${this.menuSurfaceTag}\n      class=\"md3-autocomplete__menu-surface\">\n      <${this.listTag} class=\"md3-autocomplete__list\">\n        <slot></slot>\n      </${this.listTag}>\n    </${this.menuSurfaceTag}>`;\n    }\n    isOpen() {\n        return this.menuSurface?.open || false;\n    }\n    open() {\n        this.menuSurface?.show();\n        this.ariaExpanded = 'true';\n    }\n    close() {\n        this.menuSurface?.close();\n        this.selectedItem = null;\n        this.ariaExpanded = 'false';\n    }\n    handleClicked(event) {\n        // When clicking the list (not items nor text field) the menu should stay\n        // open.\n        if (this.isOpen() &&\n            event.target?.parentNode !== this.menuSurface) {\n            this.close();\n        }\n        else {\n            this.open();\n        }\n    }\n    handleAnyFocusout() {\n        if (this.matches(':focus-within')) {\n            super.focus();\n            return;\n        }\n        this.close();\n        this.blur();\n    }\n    handleAction(event) {\n        const detail = event.detail;\n        this.value = detail.item.headline;\n    }\n    handleKeydown(event) {\n        let bubble = true;\n        const altKey = event.altKey;\n        switch (event.key) {\n            case 'Enter':\n                if (this.selectedItem) {\n                    this.value = this.selectedItem.headline;\n                }\n                this.close();\n                bubble = false;\n                break;\n            case 'ArrowDown':\n                if (!this.slottedItems)\n                    return;\n                if (this.slottedItems.length) {\n                    if (this.selectedItem) {\n                        this.selectedItem = this.getNextItem();\n                    }\n                    else {\n                        this.open();\n                        if (!altKey) {\n                            this.selectedItem = this.slottedItems[0];\n                        }\n                    }\n                }\n                bubble = false;\n                break;\n            case 'ArrowUp':\n                if (!this.slottedItems)\n                    return;\n                if (this.slottedItems.length) {\n                    if (this.selectedItem) {\n                        this.selectedItem = this.getPreviousItem();\n                    }\n                    else {\n                        this.open();\n                        if (!altKey) {\n                            this.selectedItem =\n                                this.slottedItems[this.slottedItems.length - 1];\n                        }\n                    }\n                }\n                bubble = false;\n                break;\n            case 'Escape':\n                if (this.isOpen()) {\n                    this.close();\n                }\n                else {\n                    this.value = '';\n                }\n                this.selectedItem = null;\n                bubble = false;\n                break;\n            case 'Tab':\n                if (this.selectedItem) {\n                    this.value = this.selectedItem.headline;\n                }\n                this.close();\n                break;\n            case 'Home':\n                this.setSelectionRange(0, 0);\n                this.selectedItem = null;\n                bubble = false;\n                break;\n            case 'End':\n                this.setSelectionRange(this.value.length, this.value.length);\n                this.selectedItem = null;\n                bubble = false;\n                break;\n            default:\n                break;\n        }\n        if (bubble)\n            return;\n        event.stopPropagation();\n        event.preventDefault();\n    }\n    handleKeyup(event) {\n        let bubble = true;\n        switch (event.key) {\n            case 'Backspace':\n            case 'ArrowLeft':\n            case 'ArrowRight':\n                this.selectedItem = null;\n                bubble = false;\n                break;\n            default:\n                break;\n        }\n        if (bubble)\n            return;\n        event.stopPropagation();\n        event.preventDefault();\n    }\n    /**\n     * When selectedItem is updated, item prefixes and aria-selected status will\n     * be updated along with scrolling the selected item into view, if needed.\n     */\n    updateSelectedItem() {\n        if (!this.slottedItems)\n            return;\n        this.slottedItems.forEach((item, index) => {\n            // TODO(b/265209253): implement\n            // item.itemId = `${this.itemIdPrefix}-${index}`;\n            if (this.selectedItem && item === this.selectedItem && this.list) {\n                item.ariaSelected = 'true';\n                // Scroll into view\n                if (this.list.scrollTop + this.list.offsetHeight <\n                    item.offsetTop + item.offsetHeight) {\n                    this.list.scrollTop =\n                        item.offsetTop + item.offsetHeight - this.list.offsetHeight;\n                }\n                else if (this.list.scrollTop > item.offsetTop + 2) {\n                    this.list.scrollTop = item.offsetTop;\n                }\n            }\n            else {\n                item.ariaSelected = 'false';\n            }\n        });\n    }\n    getPreviousItem() {\n        if (!this.slottedItems)\n            return null;\n        const index = this.selectedItem ? this.slottedItems.indexOf(this.selectedItem) : 0;\n        const length = this.slottedItems.length;\n        return this.slottedItems[(index - 1 + length) % length];\n    }\n    getNextItem() {\n        if (!this.slottedItems)\n            return null;\n        const index = this.selectedItem ? this.slottedItems.indexOf(this.selectedItem) : 0;\n        const length = this.slottedItems.length;\n        return this.slottedItems[(index + 1) % length];\n    }\n}\nAutocomplete.shadowRootOptions = { mode: 'open', delegatesFocus: true };\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], Autocomplete.prototype, \"itemIdPrefix\", void 0);\n__decorate([\n    query('.md3-autocomplete__menu-surface'),\n    __metadata(\"design:type\", AutocompleteSurface)\n], Autocomplete.prototype, \"menuSurface\", void 0);\n__decorate([\n    query('.md3-autocomplete__list'),\n    __metadata(\"design:type\", AutocompleteList)\n], Autocomplete.prototype, \"list\", void 0);\n__decorate([\n    queryAssignedElements({ flatten: true }),\n    __metadata(\"design:type\", Array)\n], Autocomplete.prototype, \"slottedItems\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], Autocomplete.prototype, \"value\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", AutocompleteItem)\n], Autocomplete.prototype, \"selectedItem\", void 0);\n//# sourceMappingURL=autocomplete.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_text-field-container-shape-start-start: var(--md-filled-autocomplete-text-field-container-shape-start-start, var(--md-filled-autocomplete-text-field-container-shape, 4px));--_text-field-container-shape-start-end: var(--md-filled-autocomplete-text-field-container-shape-start-end, var(--md-filled-autocomplete-text-field-container-shape, 4px));--_text-field-container-shape-end-end: var(--md-filled-autocomplete-text-field-container-shape-end-end, var(--md-filled-autocomplete-text-field-container-shape, 0px));--_text-field-container-shape-end-start: var(--md-filled-autocomplete-text-field-container-shape-end-start, var(--md-filled-autocomplete-text-field-container-shape, 0px));--_menu-cascading-menu-indicator-icon-color: var(--md-filled-autocomplete-menu-cascading-menu-indicator-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_menu-cascading-menu-indicator-icon-size: var(--md-filled-autocomplete-menu-cascading-menu-indicator-icon-size, 24px);--_menu-container-color: var(--md-filled-autocomplete-menu-container-color, var(--md-sys-color-surface, #fffbfe));--_menu-container-elevation: var(--md-filled-autocomplete-menu-container-elevation, 2);--_menu-container-shadow-color: var(--md-filled-autocomplete-menu-container-shadow-color, var(--md-sys-color-shadow, #000));--_menu-container-shape: var(--md-filled-autocomplete-menu-container-shape, 4px);--_menu-container-surface-tint-layer-color: var(--md-filled-autocomplete-menu-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--_menu-divider-color: var(--md-filled-autocomplete-menu-divider-color, var(--md-sys-color-surface-variant, #e7e0ec));--_menu-divider-height: var(--md-filled-autocomplete-menu-divider-height, 1px);--_menu-list-item-container-height: var(--md-filled-autocomplete-menu-list-item-container-height, 48px);--_menu-list-item-label-text-color: var(--md-filled-autocomplete-menu-list-item-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_menu-list-item-label-text-font: var(--md-filled-autocomplete-menu-list-item-label-text-font, Roboto);--_menu-list-item-label-text-line-height: var(--md-filled-autocomplete-menu-list-item-label-text-line-height, 1.25rem);--_menu-list-item-label-text-size: var(--md-filled-autocomplete-menu-list-item-label-text-size, 0.875rem);--_menu-list-item-label-text-tracking: var(--md-filled-autocomplete-menu-list-item-label-text-tracking, 0.006rem);--_menu-list-item-label-text-type: var(--md-filled-autocomplete-menu-list-item-label-text-type, 500 0.875rem / 1.25rem Roboto);--_menu-list-item-label-text-weight: var(--md-filled-autocomplete-menu-list-item-label-text-weight, 500);--_menu-list-item-selected-container-color: var(--md-filled-autocomplete-menu-list-item-selected-container-color, var(--md-sys-color-surface-variant, #e7e0ec));--_text-field-active-indicator-color: var(--md-filled-autocomplete-text-field-active-indicator-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-active-indicator-height: var(--md-filled-autocomplete-text-field-active-indicator-height, 1px);--_text-field-caret-color: var(--md-filled-autocomplete-text-field-caret-color, var(--md-sys-color-primary, #6750a4));--_text-field-container-color: var(--md-filled-autocomplete-text-field-container-color, var(--md-sys-color-surface-variant, #e7e0ec));--_text-field-disabled-active-indicator-color: var(--md-filled-autocomplete-text-field-disabled-active-indicator-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-active-indicator-height: var(--md-filled-autocomplete-text-field-disabled-active-indicator-height, 1px);--_text-field-disabled-active-indicator-opacity: var(--md-filled-autocomplete-text-field-disabled-active-indicator-opacity, 0.38);--_text-field-disabled-container-color: var(--md-filled-autocomplete-text-field-disabled-container-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-container-opacity: var(--md-filled-autocomplete-text-field-disabled-container-opacity, 0.04);--_text-field-disabled-input-text-color: var(--md-filled-autocomplete-text-field-disabled-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-input-text-opacity: var(--md-filled-autocomplete-text-field-disabled-input-text-opacity, 0.38);--_text-field-disabled-label-text-color: var(--md-filled-autocomplete-text-field-disabled-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-label-text-opacity: var(--md-filled-autocomplete-text-field-disabled-label-text-opacity, 0.38);--_text-field-disabled-leading-icon-color: var(--md-filled-autocomplete-text-field-disabled-leading-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-leading-icon-opacity: var(--md-filled-autocomplete-text-field-disabled-leading-icon-opacity, 0.38);--_text-field-disabled-supporting-text-color: var(--md-filled-autocomplete-text-field-disabled-supporting-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-supporting-text-opacity: var(--md-filled-autocomplete-text-field-disabled-supporting-text-opacity, 0.38);--_text-field-disabled-trailing-icon-color: var(--md-filled-autocomplete-text-field-disabled-trailing-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-trailing-icon-opacity: var(--md-filled-autocomplete-text-field-disabled-trailing-icon-opacity, 0.38);--_text-field-error-active-indicator-color: var(--md-filled-autocomplete-text-field-error-active-indicator-color, var(--md-sys-color-error, #b3261e));--_text-field-error-focus-active-indicator-color: var(--md-filled-autocomplete-text-field-error-focus-active-indicator-color, var(--md-sys-color-error, #b3261e));--_text-field-error-focus-caret-color: var(--md-filled-autocomplete-text-field-error-focus-caret-color, var(--md-sys-color-error, #b3261e));--_text-field-error-focus-input-text-color: var(--md-filled-autocomplete-text-field-error-focus-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-error-focus-label-text-color: var(--md-filled-autocomplete-text-field-error-focus-label-text-color, var(--md-sys-color-error, #b3261e));--_text-field-error-focus-leading-icon-color: var(--md-filled-autocomplete-text-field-error-focus-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-error-focus-supporting-text-color: var(--md-filled-autocomplete-text-field-error-focus-supporting-text-color, var(--md-sys-color-error, #b3261e));--_text-field-error-focus-trailing-icon-color: var(--md-filled-autocomplete-text-field-error-focus-trailing-icon-color, var(--md-sys-color-error, #b3261e));--_text-field-error-hover-active-indicator-color: var(--md-filled-autocomplete-text-field-error-hover-active-indicator-color, var(--md-sys-color-on-error-container, #410e0b));--_text-field-error-hover-input-text-color: var(--md-filled-autocomplete-text-field-error-hover-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-error-hover-label-text-color: var(--md-filled-autocomplete-text-field-error-hover-label-text-color, var(--md-sys-color-on-error-container, #410e0b));--_text-field-error-hover-leading-icon-color: var(--md-filled-autocomplete-text-field-error-hover-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-error-hover-state-layer-color: var(--md-filled-autocomplete-text-field-error-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-error-hover-state-layer-opacity: var(--md-filled-autocomplete-text-field-error-hover-state-layer-opacity, 0.08);--_text-field-error-hover-supporting-text-color: var(--md-filled-autocomplete-text-field-error-hover-supporting-text-color, var(--md-sys-color-error, #b3261e));--_text-field-error-hover-trailing-icon-color: var(--md-filled-autocomplete-text-field-error-hover-trailing-icon-color, var(--md-sys-color-on-error-container, #410e0b));--_text-field-error-input-text-color: var(--md-filled-autocomplete-text-field-error-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-error-label-text-color: var(--md-filled-autocomplete-text-field-error-label-text-color, var(--md-sys-color-error, #b3261e));--_text-field-error-leading-icon-color: var(--md-filled-autocomplete-text-field-error-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-error-supporting-text-color: var(--md-filled-autocomplete-text-field-error-supporting-text-color, var(--md-sys-color-error, #b3261e));--_text-field-error-trailing-icon-color: var(--md-filled-autocomplete-text-field-error-trailing-icon-color, var(--md-sys-color-error, #b3261e));--_text-field-focus-active-indicator-color: var(--md-filled-autocomplete-text-field-focus-active-indicator-color, var(--md-sys-color-primary, #6750a4));--_text-field-focus-active-indicator-height: var(--md-filled-autocomplete-text-field-focus-active-indicator-height, 2px);--_text-field-focus-input-text-color: var(--md-filled-autocomplete-text-field-focus-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-focus-label-text-color: var(--md-filled-autocomplete-text-field-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_text-field-focus-leading-icon-color: var(--md-filled-autocomplete-text-field-focus-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-focus-supporting-text-color: var(--md-filled-autocomplete-text-field-focus-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-focus-trailing-icon-color: var(--md-filled-autocomplete-text-field-focus-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-hover-active-indicator-color: var(--md-filled-autocomplete-text-field-hover-active-indicator-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-hover-active-indicator-height: var(--md-filled-autocomplete-text-field-hover-active-indicator-height, 1px);--_text-field-hover-input-text-color: var(--md-filled-autocomplete-text-field-hover-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-hover-label-text-color: var(--md-filled-autocomplete-text-field-hover-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-hover-leading-icon-color: var(--md-filled-autocomplete-text-field-hover-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-hover-state-layer-color: var(--md-filled-autocomplete-text-field-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-hover-state-layer-opacity: var(--md-filled-autocomplete-text-field-hover-state-layer-opacity, 0.08);--_text-field-hover-supporting-text-color: var(--md-filled-autocomplete-text-field-hover-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-hover-trailing-icon-color: var(--md-filled-autocomplete-text-field-hover-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-input-text-color: var(--md-filled-autocomplete-text-field-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-input-text-font: var(--md-filled-autocomplete-text-field-input-text-font, Roboto);--_text-field-input-text-line-height: var(--md-filled-autocomplete-text-field-input-text-line-height, 1.5rem);--_text-field-input-text-size: var(--md-filled-autocomplete-text-field-input-text-size, 1rem);--_text-field-input-text-tracking: var(--md-filled-autocomplete-text-field-input-text-tracking, 0.031rem);--_text-field-input-text-type: var(--md-filled-autocomplete-text-field-input-text-type, 400 1rem / 1.5rem Roboto);--_text-field-input-text-weight: var(--md-filled-autocomplete-text-field-input-text-weight, 400);--_text-field-label-text-color: var(--md-filled-autocomplete-text-field-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-label-text-font: var(--md-filled-autocomplete-text-field-label-text-font, Roboto);--_text-field-label-text-line-height: var(--md-filled-autocomplete-text-field-label-text-line-height, 1.5rem);--_text-field-label-text-populated-line-height: var(--md-filled-autocomplete-text-field-label-text-populated-line-height, 1rem);--_text-field-label-text-populated-size: var(--md-filled-autocomplete-text-field-label-text-populated-size, 0.75rem);--_text-field-label-text-size: var(--md-filled-autocomplete-text-field-label-text-size, 1rem);--_text-field-label-text-tracking: var(--md-filled-autocomplete-text-field-label-text-tracking, 0.031rem);--_text-field-label-text-type: var(--md-filled-autocomplete-text-field-label-text-type, 400 1rem / 1.5rem Roboto);--_text-field-label-text-weight: var(--md-filled-autocomplete-text-field-label-text-weight, 400);--_text-field-leading-icon-color: var(--md-filled-autocomplete-text-field-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-leading-icon-size: var(--md-filled-autocomplete-text-field-leading-icon-size, 20px);--_text-field-supporting-text-color: var(--md-filled-autocomplete-text-field-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-supporting-text-font: var(--md-filled-autocomplete-text-field-supporting-text-font, Roboto);--_text-field-supporting-text-line-height: var(--md-filled-autocomplete-text-field-supporting-text-line-height, 1rem);--_text-field-supporting-text-size: var(--md-filled-autocomplete-text-field-supporting-text-size, 0.75rem);--_text-field-supporting-text-tracking: var(--md-filled-autocomplete-text-field-supporting-text-tracking, 0.025rem);--_text-field-supporting-text-type: var(--md-filled-autocomplete-text-field-supporting-text-type, 400 0.75rem / 1rem Roboto);--_text-field-supporting-text-weight: var(--md-filled-autocomplete-text-field-supporting-text-weight, 400);--_text-field-trailing-icon-color: var(--md-filled-autocomplete-text-field-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-trailing-icon-size: var(--md-filled-autocomplete-text-field-trailing-icon-size, 24px)}.md3-text-field{--md-filled-text-field-active-indicator-color:var(--_text-field-active-indicator-color);--md-filled-text-field-active-indicator-height:var(--_text-field-active-indicator-height);--md-filled-text-field-caret-color:var(--_text-field-caret-color);--md-filled-text-field-container-color:var(--_text-field-container-color);--md-filled-text-field-disabled-active-indicator-color:var(--_text-field-disabled-active-indicator-color);--md-filled-text-field-disabled-active-indicator-height:var(--_text-field-disabled-active-indicator-height);--md-filled-text-field-disabled-active-indicator-opacity:var(--_text-field-disabled-active-indicator-opacity);--md-filled-text-field-disabled-container-color:var(--_text-field-disabled-container-color);--md-filled-text-field-disabled-container-opacity:var(--_text-field-disabled-container-opacity);--md-filled-text-field-disabled-input-text-color:var(--_text-field-disabled-input-text-color);--md-filled-text-field-disabled-input-text-opacity:var(--_text-field-disabled-input-text-opacity);--md-filled-text-field-disabled-label-text-color:var(--_text-field-disabled-label-text-color);--md-filled-text-field-disabled-label-text-opacity:var(--_text-field-disabled-label-text-opacity);--md-filled-text-field-disabled-leading-icon-color:var(--_text-field-disabled-leading-icon-color);--md-filled-text-field-disabled-leading-icon-opacity:var(--_text-field-disabled-leading-icon-opacity);--md-filled-text-field-disabled-supporting-text-color:var(--_text-field-disabled-supporting-text-color);--md-filled-text-field-disabled-supporting-text-opacity:var(--_text-field-disabled-supporting-text-opacity);--md-filled-text-field-disabled-trailing-icon-color:var(--_text-field-disabled-trailing-icon-color);--md-filled-text-field-disabled-trailing-icon-opacity:var(--_text-field-disabled-trailing-icon-opacity);--md-filled-text-field-error-active-indicator-color:var(--_text-field-error-active-indicator-color);--md-filled-text-field-error-focus-active-indicator-color:var(--_text-field-error-focus-active-indicator-color);--md-filled-text-field-error-focus-caret-color:var(--_text-field-error-focus-caret-color);--md-filled-text-field-error-focus-input-text-color:var(--_text-field-error-focus-input-text-color);--md-filled-text-field-error-focus-label-text-color:var(--_text-field-error-focus-label-text-color);--md-filled-text-field-error-focus-leading-icon-color:var(--_text-field-error-focus-leading-icon-color);--md-filled-text-field-error-focus-supporting-text-color:var(--_text-field-error-focus-supporting-text-color);--md-filled-text-field-error-focus-trailing-icon-color:var(--_text-field-error-focus-trailing-icon-color);--md-filled-text-field-error-hover-active-indicator-color:var(--_text-field-error-hover-active-indicator-color);--md-filled-text-field-error-hover-input-text-color:var(--_text-field-error-hover-input-text-color);--md-filled-text-field-error-hover-label-text-color:var(--_text-field-error-hover-label-text-color);--md-filled-text-field-error-hover-leading-icon-color:var(--_text-field-error-hover-leading-icon-color);--md-filled-text-field-error-hover-state-layer-color:var(--_text-field-error-hover-state-layer-color);--md-filled-text-field-error-hover-state-layer-opacity:var(--_text-field-error-hover-state-layer-opacity);--md-filled-text-field-error-hover-supporting-text-color:var(--_text-field-error-hover-supporting-text-color);--md-filled-text-field-error-hover-trailing-icon-color:var(--_text-field-error-hover-trailing-icon-color);--md-filled-text-field-error-input-text-color:var(--_text-field-error-input-text-color);--md-filled-text-field-error-label-text-color:var(--_text-field-error-label-text-color);--md-filled-text-field-error-leading-icon-color:var(--_text-field-error-leading-icon-color);--md-filled-text-field-error-supporting-text-color:var(--_text-field-error-supporting-text-color);--md-filled-text-field-error-trailing-icon-color:var(--_text-field-error-trailing-icon-color);--md-filled-text-field-focus-active-indicator-color:var(--_text-field-focus-active-indicator-color);--md-filled-text-field-focus-active-indicator-height:var(--_text-field-focus-active-indicator-height);--md-filled-text-field-focus-input-text-color:var(--_text-field-focus-input-text-color);--md-filled-text-field-focus-label-text-color:var(--_text-field-focus-label-text-color);--md-filled-text-field-focus-leading-icon-color:var(--_text-field-focus-leading-icon-color);--md-filled-text-field-focus-supporting-text-color:var(--_text-field-focus-supporting-text-color);--md-filled-text-field-focus-trailing-icon-color:var(--_text-field-focus-trailing-icon-color);--md-filled-text-field-hover-active-indicator-color:var(--_text-field-hover-active-indicator-color);--md-filled-text-field-hover-active-indicator-height:var(--_text-field-hover-active-indicator-height);--md-filled-text-field-hover-input-text-color:var(--_text-field-hover-input-text-color);--md-filled-text-field-hover-label-text-color:var(--_text-field-hover-label-text-color);--md-filled-text-field-hover-leading-icon-color:var(--_text-field-hover-leading-icon-color);--md-filled-text-field-hover-state-layer-color:var(--_text-field-hover-state-layer-color);--md-filled-text-field-hover-state-layer-opacity:var(--_text-field-hover-state-layer-opacity);--md-filled-text-field-hover-supporting-text-color:var(--_text-field-hover-supporting-text-color);--md-filled-text-field-hover-trailing-icon-color:var(--_text-field-hover-trailing-icon-color);--md-filled-text-field-input-text-color:var(--_text-field-input-text-color);--md-filled-text-field-input-text-type:var(--_text-field-input-text-type);--md-filled-text-field-label-text-color:var(--_text-field-label-text-color);--md-filled-text-field-label-text-type:var(--_label-text-type);--md-filled-text-field-label-text-populated-line-height:var(--_text-field-label-text-populated-line-height);--md-filled-text-field-label-text-populated-size:var(--_text-field-label-text-populated-size);--md-filled-text-field-leading-icon-color:var(--_text-field-leading-icon-color);--md-filled-text-field-leading-icon-size:var(--_text-field-leading-icon-size);--md-filled-text-field-supporting-text-color:var(--_text-field-supporting-text-color);--md-filled-text-field-supporting-text-type:var(--_supporting-text-type);--md-filled-text-field-trailing-icon-color:var(--_text-field-trailing-icon-color);--md-filled-text-field-trailing-icon-size:var(--_text-field-trailing-icon-size);--md-filled-field-container-shape-start-start:var(--md-filled-field-container-shape, var(--_text-field-container-shape-start-start));--md-filled-field-container-shape-start-end:var(--md-filled-field-container-shape, var(--_text-field-container-shape-start-end));--md-filled-field-container-shape-end-end:var(--md-filled-field-container-shape, var(--_text-field-container-shape-end-end));--md-filled-field-container-shape-end-start:var(--md-filled-field-container-shape, var(--_text-field-container-shape-end-start))}.md3-autocomplete__menu-surface{--md-menu-surface-container-elevation:var(--_menu-container-elevation);--md-menu-surface-container-shape:var(--_menu-container-shape);--md-menu-surface-container-shadow-color:var(--_menu-container-shadow-color)}/*# sourceMappingURL=filled-styles.css.map */\n`;\n//# sourceMappingURL=filled-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `.md3-autocomplete{display:inline-flex;flex:1}/*# sourceMappingURL=shared-styles.css.map */\n`;\n//# sourceMappingURL=shared-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdFilledField } from '../field/filled-field.js';\nimport { MdAutocompleteList } from './autocomplete-list.js';\nimport { MdAutocompleteSurface } from './autocomplete-surface.js';\n\nimport { ClassInfo } from 'lit/directives/class-map.js';\nimport { literal } from 'lit/static-html.js';\n\nimport { styles as filledForcedColorsStyles } from '@material/web/textfield/lib/filled-forced-colors-styles.css.js';\nimport { styles as filledStyles } from '@material/web/textfield/lib/filled-styles.css.js';\nimport { styles as sharedStyles } from '@material/web/textfield/lib/shared-styles.css.js';\n\nimport { Autocomplete } from '@material/web/autocomplete/lib/autocomplete.js';\nimport { styles as autocompleteStyles } from '@material/web/autocomplete/lib/filled-styles.css.js';\nimport { styles as sharedAutocompleteStyles } from '@material/web/autocomplete/lib/shared-styles.css.js';\n\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-filled-autocomplete': MdFilledAutocomplete;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdFilledAutocomplete extends ScopedElementsMixin(Autocomplete) {\n  static override styles = [\n    sharedStyles,\n    filledStyles,\n    filledForcedColorsStyles,\n    sharedAutocompleteStyles,\n    autocompleteStyles,\n  ];\n\n  static get scopedElements() {\n    return {\n      'md-filled-field': MdFilledField,\n      'md-autocomplete-list': MdAutocompleteList,\n      'md-autocomplete-surface': MdAutocompleteSurface,\n    };\n  }\n\n  protected override readonly listTag = literal`md-autocomplete-list`;\n  protected override readonly menuSurfaceTag = literal`md-autocomplete-surface`;\n  protected override readonly fieldTag = literal`md-filled-field`;\n\n  /** @soyTemplate */\n  protected override getAutocompleteRenderClasses(): ClassInfo {\n    return {\n      ...super.getAutocompleteRenderClasses(),\n      'md3-autocomplete--filled': true,\n    };\n  }\n\n  /** @soyTemplate */\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-text-field--filled': true,\n    };\n  }\n}\n","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{color:unset;--md-list-item-image-list-item-leading-image-height:var(--_list-item-leading-image-height);--md-list-item-image-list-item-leading-image-width:var(--_list-item-leading-image-width);--md-list-item-image-list-item-leading-image-shape:var(--_list-item-leading-image-shape);--md-list-item-video-list-item-small-leading-video-height:var(--_list-item-small-leading-video-height);--md-list-item-video-list-item-large-leading-video-height:var(--_list-item-large-leading-video-height);--md-list-item-video-list-item-leading-video-width:var(--_list-item-leading-video-width);--md-list-item-video-list-item-leading-video-shape:var(--_list-item-leading-video-shape);--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, 4px);--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, 4px);--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, 4px);--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, 4px);--md-focus-ring-offset-vertical:-2px;--md-focus-ring-offset-horizontal:-3px;--md-ripple-hover-color:var(--_list-item-hover-state-layer-color);--md-ripple-hover-opacity:var(--_list-item-hover-state-layer-opacity);--md-ripple-pressed-color:var(--_list-item-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_list-item-pressed-state-layer-opacity);--md-ripple-focus-color:var(--_list-item-focus-state-layer-color);--md-ripple-focus-opacity:var(--_list-item-focus-state-layer-opacity)}.list-item{align-items:center;box-sizing:border-box;display:flex;outline:none;position:relative;width:100%;text-decoration:none;background-color:var(--_list-item-container-color);border-radius:var(--_list-item-container-shape)}.list-item.enabled{cursor:pointer}.list-item.disabled{pointer-events:none}.with-one-line{min-height:var(--_list-item-one-line-container-height)}.with-two-line{min-height:var(--_list-item-two-line-container-height)}.with-three-line{min-height:var(--_list-item-three-line-container-height)}.start{flex:0 0 auto;z-index:1;--md-list-item-icon-list-item-icon-color:var(--_list-item-leading-icon-color);--md-list-item-icon-list-item-icon-size:var(--_list-item-leading-icon-size)}:hover .start{--md-list-item-icon-list-item-icon-color:var(--_list-item-hover-leading-icon-icon-color)}:active .start{--md-list-item-icon-list-item-icon-color:var(--_list-item-pressed-leading-icon-icon-color)}.disabled .start{--md-list-item-icon-list-item-icon-color:var(--_list-item-disabled-leading-icon-color);--md-list-item-icon-list-item-icon-opacity:var(--_list-item-disabled-leading-icon-opacity)}.with-leading-thumbnail .start,.with-leading-image .start{padding-inline-start:16px}.with-leading-video .start{padding-inline-start:0}.body{box-sizing:border-box;flex:1 0 0;padding-inline-start:16px;width:100%;z-index:1}.end{flex:0 0 auto;padding-inline-end:24px;z-index:1;--md-list-item-icon-list-item-icon-color:var(--_list-item-trailing-icon-color);--md-list-item-icon-list-item-icon-size:var(--_list-item-trailing-icon-size)}:hover .end{--md-list-item-icon-list-item-icon-color:var(--_list-item-hover-trailing-icon-icon-color)}:active .end{--md-list-item-icon-list-item-icon-color:var(--_list-item-pressed-trailing-icon-icon-color)}.disabled .end{--md-list-item-icon-list-item-icon-color:var(--_list-item-disabled-trailing-icon-color);--md-list-item-icon-list-item-icon-opacity:var(--_list-item-disabled-trailing-icon-opacity)}.label-text{display:flex;color:var(--_list-item-label-text-color);font:var(--_list-item-label-text-type)}.disabled .label-text{color:var(--_list-item-disabled-label-text-color);opacity:var(--_list-item-disabled-label-text-opacity)}.supporting-text{display:block;padding-block-start:4px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;color:var(--_list-item-supporting-text-color);font:var(--_list-item-supporting-text-type)}.disabled .supporting-text{color:var(--_list-item-disabled-label-text-color);opacity:var(--_list-item-disabled-label-text-opacity)}.supporting-text--multi-line{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;overflow:hidden;white-space:normal}.trailing-supporting-text{padding-inline-start:16px;font:var(--_list-item-trailing-supporting-text-type)}.list-item:not(.disabled) .trailing-supporting-text{color:var(--_list-item-trailing-supporting-text-color)}.disabled .trailing-supporting-text{color:var(--_list-item-disabled-label-text-color);opacity:var(--_list-item-disabled-label-text-opacity)}.ripple{display:inline-flex;inset:0;position:absolute;z-index:0}.focus-ring{z-index:1}/*# sourceMappingURL=list-item-styles.css.map */\n`;\n//# sourceMappingURL=list-item-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {styles} from '@material/web/list/lib/listitem/list-item-styles.css.js';\n\nimport {AutocompleteItem} from '@material/web/autocomplete/lib/autocompleteitem/autocomplete-item.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-autocomplete-item': MdAutocompleteItem;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdAutocompleteItem extends AutocompleteItem {\n  static override styles = [styles];\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { html } from 'lit';\nimport { Field } from './field.js';\n/**\n * An outlined field component.\n */\nexport class OutlinedField extends Field {\n    renderOutline(floatingLabel) {\n        return html `\n      <div class=\"outline\">\n        <div class=\"outline-start\"></div>\n        <div class=\"outline-notch\">\n          <div class=\"outline-panel-inactive\"></div>\n          <div class=\"outline-panel-active\"></div>\n          ${floatingLabel}\n        </div>\n        <div class=\"outline-end\"></div>\n      </div>\n    `;\n    }\n}\n//# sourceMappingURL=outlined-field.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-outlined-field-container-shape-start-start, var(--md-outlined-field-container-shape, 4px));--_container-shape-start-end: var(--md-outlined-field-container-shape-start-end, var(--md-outlined-field-container-shape, 4px));--_container-shape-end-end: var(--md-outlined-field-container-shape-end-end, var(--md-outlined-field-container-shape, 4px));--_container-shape-end-start: var(--md-outlined-field-container-shape-end-start, var(--md-outlined-field-container-shape, 4px));--_disabled-label-text-color: var(--md-outlined-field-disabled-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-label-text-opacity: var(--md-outlined-field-disabled-label-text-opacity, 0.38);--_disabled-leading-icon-color: var(--md-outlined-field-disabled-leading-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-leading-icon-opacity: var(--md-outlined-field-disabled-leading-icon-opacity, 0.38);--_disabled-outline-color: var(--md-outlined-field-disabled-outline-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-outline-opacity: var(--md-outlined-field-disabled-outline-opacity, 0.12);--_disabled-outline-width: var(--md-outlined-field-disabled-outline-width, 1px);--_disabled-supporting-text-color: var(--md-outlined-field-disabled-supporting-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-supporting-text-opacity: var(--md-outlined-field-disabled-supporting-text-opacity, 0.38);--_disabled-trailing-icon-color: var(--md-outlined-field-disabled-trailing-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-trailing-icon-opacity: var(--md-outlined-field-disabled-trailing-icon-opacity, 0.38);--_error-focus-label-text-color: var(--md-outlined-field-error-focus-label-text-color, var(--md-sys-color-error, #b3261e));--_error-focus-leading-icon-color: var(--md-outlined-field-error-focus-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_error-focus-outline-color: var(--md-outlined-field-error-focus-outline-color, var(--md-sys-color-error, #b3261e));--_error-focus-supporting-text-color: var(--md-outlined-field-error-focus-supporting-text-color, var(--md-sys-color-error, #b3261e));--_error-focus-trailing-icon-color: var(--md-outlined-field-error-focus-trailing-icon-color, var(--md-sys-color-error, #b3261e));--_error-hover-label-text-color: var(--md-outlined-field-error-hover-label-text-color, var(--md-sys-color-on-error-container, #410e0b));--_error-hover-leading-icon-color: var(--md-outlined-field-error-hover-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_error-hover-outline-color: var(--md-outlined-field-error-hover-outline-color, var(--md-sys-color-on-error-container, #410e0b));--_error-hover-supporting-text-color: var(--md-outlined-field-error-hover-supporting-text-color, var(--md-sys-color-error, #b3261e));--_error-hover-trailing-icon-color: var(--md-outlined-field-error-hover-trailing-icon-color, var(--md-sys-color-on-error-container, #410e0b));--_error-label-text-color: var(--md-outlined-field-error-label-text-color, var(--md-sys-color-error, #b3261e));--_error-leading-icon-color: var(--md-outlined-field-error-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_error-outline-color: var(--md-outlined-field-error-outline-color, var(--md-sys-color-error, #b3261e));--_error-supporting-text-color: var(--md-outlined-field-error-supporting-text-color, var(--md-sys-color-error, #b3261e));--_error-trailing-icon-color: var(--md-outlined-field-error-trailing-icon-color, var(--md-sys-color-error, #b3261e));--_focus-label-text-color: var(--md-outlined-field-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_focus-leading-icon-color: var(--md-outlined-field-focus-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-outline-color: var(--md-outlined-field-focus-outline-color, var(--md-sys-color-primary, #6750a4));--_focus-outline-width: var(--md-outlined-field-focus-outline-width, 2px);--_focus-supporting-text-color: var(--md-outlined-field-focus-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-trailing-icon-color: var(--md-outlined-field-focus-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-label-text-color: var(--md-outlined-field-hover-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-leading-icon-color: var(--md-outlined-field-hover-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-outline-color: var(--md-outlined-field-hover-outline-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-outline-width: var(--md-outlined-field-hover-outline-width, 1px);--_hover-supporting-text-color: var(--md-outlined-field-hover-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-trailing-icon-color: var(--md-outlined-field-hover-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_label-text-color: var(--md-outlined-field-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_label-text-populated-line-height: var(--md-outlined-field-label-text-populated-line-height, 1rem);--_label-text-populated-size: var(--md-outlined-field-label-text-populated-size, 0.75rem);--_label-text-type: var(--md-outlined-field-label-text-type, 400 1rem / 1.5rem Roboto);--_leading-icon-color: var(--md-outlined-field-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_leading-icon-size: var(--md-outlined-field-leading-icon-size, 24px);--_outline-color: var(--md-outlined-field-outline-color, var(--md-sys-color-outline, #79747e));--_outline-width: var(--md-outlined-field-outline-width, 1px);--_supporting-text-color: var(--md-outlined-field-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_supporting-text-type: var(--md-outlined-field-supporting-text-type, 400 0.75rem / 1rem Roboto);--_trailing-icon-color: var(--md-outlined-field-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_trailing-icon-size: var(--md-outlined-field-trailing-icon-size, 24px);--_container-padding-horizontal: var(--md-outlined-field-container-padding-horizontal, 16px);--_container-padding-vertical: var(--md-outlined-field-container-padding-vertical, 16px);--_content-color: var(--md-outlined-field-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-content-color: var(--md-outlined-field-disabled-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-content-opacity: var(--md-outlined-field-disabled-content-opacity, 0.38);--_error-content-color: var(--md-outlined-field-error-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_error-focus-content-color: var(--md-outlined-field-error-focus-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_error-hover-content-color: var(--md-outlined-field-error-hover-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_focus-content-color: var(--md-outlined-field-focus-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-content-color: var(--md-outlined-field-hover-content-color, var(--md-sys-color-on-surface, #1c1b1f));--_label-text-padding-bottom: var(--md-outlined-field-label-text-padding-bottom, 8px);--_outline-label-padding: var(--md-outlined-field-outline-label-padding, 4px);--_supporting-text-padding: var(--md-outlined-field-supporting-text-padding, 16px);--_supporting-text-padding-top: var(--md-outlined-field-supporting-text-padding-top, 4px)}.outline{border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-end-radius:var(--_container-shape-end-end);border-end-start-radius:var(--_container-shape-end-start);border-color:var(--_outline-color);color:var(--_outline-color);display:flex;pointer-events:none;height:100%;position:absolute;width:100%}.outline-start::before,.outline-start::after,.outline-panel-inactive::before,.outline-panel-inactive::after,.outline-panel-active::before,.outline-panel-active::after,.outline-end::before,.outline-end::after{border:inherit;content:\"\";inset:0;position:absolute}.outline-start,.outline-end{border:inherit;border-radius:inherit;box-sizing:border-box;position:relative}.outline-start::before,.outline-start::after,.outline-end::before,.outline-end::after{border-bottom-style:solid;border-top-style:solid}.outline-start::after,.outline-end::after{opacity:0;transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.focused .outline-start::after,.focused .outline-end::after{opacity:1}.outline-start::before,.outline-start::after{border-inline-start-style:solid;border-inline-end-style:none;border-start-start-radius:inherit;border-start-end-radius:0;border-end-start-radius:inherit;border-end-end-radius:0;margin-inline-end:var(--_outline-label-padding)}.outline-end{flex-grow:1;margin-inline-start:calc(-1*var(--_outline-label-padding))}.outline-end::before,.outline-end::after{border-inline-start-style:none;border-inline-end-style:solid;border-start-start-radius:0;border-start-end-radius:inherit;border-end-start-radius:0;border-end-end-radius:inherit}.outline-notch{align-items:flex-start;border:inherit;display:flex;margin-inline-start:calc(-1*var(--_outline-label-padding));margin-inline-end:var(--_outline-label-padding);max-width:calc(100% - 2*var(--_container-padding-horizontal));padding:0 var(--_outline-label-padding);position:relative}.no-label .outline-notch{display:none}.outline-panel-inactive,.outline-panel-active{border:inherit;border-bottom-style:solid;inset:0;position:absolute}.outline-panel-inactive::before,.outline-panel-inactive::after,.outline-panel-active::before,.outline-panel-active::after{border-top-style:solid;border-bottom:none;bottom:auto;transform:scaleX(1);transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1)}.outline-panel-inactive::before,.outline-panel-active::before{right:50%;transform-origin:top left}.outline-panel-inactive::after,.outline-panel-active::after{left:50%;transform-origin:top right}.populated .outline-panel-inactive::before,.populated .outline-panel-inactive::after,.populated .outline-panel-active::before,.populated .outline-panel-active::after,.focused .outline-panel-inactive::before,.focused .outline-panel-inactive::after,.focused .outline-panel-active::before,.focused .outline-panel-active::after{transform:scaleX(0)}.outline-panel-active{opacity:0;transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.focused .outline-panel-active{opacity:1}.label.floating{transform:translateY(calc(-100% + var(--_label-text-padding-bottom)))}.outline-start,.field:not(.with-start) .start{padding-inline-start:max(var(--_container-padding-horizontal),max(var(--_container-shape-start-start),var(--_container-shape-end-start)) + var(--_outline-label-padding))}.field:not(.with-end) .end{padding-inline-end:max(var(--_container-padding-horizontal),max(var(--_container-shape-start-end),var(--_container-shape-end-end)))}.outline-start::before,.outline-end::before,.outline-panel-inactive,.outline-panel-inactive::before,.outline-panel-inactive::after{border-width:var(--_outline-width)}:hover .outline{border-color:var(--_hover-outline-color);color:var(--_hover-outline-color)}:hover .outline-start::before,:hover .outline-end::before,:hover .outline-panel-inactive,:hover .outline-panel-inactive::before,:hover .outline-panel-inactive::after{border-width:var(--_hover-outline-width)}.focused .outline{border-color:var(--_focus-outline-color);color:var(--_focus-outline-color)}.outline-start::after,.outline-end::after,.outline-panel-active,.outline-panel-active::before,.outline-panel-active::after{border-width:var(--_focus-outline-width)}.disabled .outline{border-color:var(--_disabled-outline-color);color:var(--_disabled-outline-color)}.disabled .outline-start,.disabled .outline-end,.disabled .outline-panel-inactive{opacity:var(--_disabled-outline-opacity)}.disabled .outline-start::before,.disabled .outline-end::before,.disabled .outline-panel-inactive,.disabled .outline-panel-inactive::before,.disabled .outline-panel-inactive::after{border-width:var(--_disabled-outline-width)}.error .outline{border-color:var(--_error-outline-color);color:var(--_error-outline-color)}.error:hover .outline{border-color:var(--_error-hover-outline-color);color:var(--_error-hover-outline-color)}.error.focused .outline{border-color:var(--_error-focus-outline-color);color:var(--_error-focus-outline-color)}/*# sourceMappingURL=outlined-styles.css.map */\n`;\n//# sourceMappingURL=outlined-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {OutlinedField} from '@material/web/field/lib/outlined-field.js';\nimport {styles as outlinedStyles} from '@material/web/field/lib/outlined-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/field/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-outlined-field': MdOutlinedField;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdOutlinedField extends OutlinedField {\n  static override styles = [sharedStyles, outlinedStyles];\n}\n","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `@media(forced-colors: active){:host{--md-outlined-text-field-disabled-input-text-color:GrayText;--md-outlined-text-field-disabled-input-text-opacity:1;--md-outlined-text-field-disabled-label-text-color:GrayText;--md-outlined-text-field-disabled-label-text-opacity:1;--md-outlined-text-field-disabled-leading-icon-color:GrayText;--md-outlined-text-field-disabled-leading-icon-opacity:1;--md-outlined-text-field-disabled-outline-color:GrayText;--md-outlined-text-field-disabled-outline-opacity:1;--md-outlined-text-field-disabled-supporting-text-color:GrayText;--md-outlined-text-field-disabled-supporting-text-opacity:1;--md-outlined-text-field-disabled-trailing-icon-color:GrayText;--md-outlined-text-field-disabled-trailing-icon-opacity:1}}/*# sourceMappingURL=outlined-forced-colors-styles.css.map */\n`;\n//# sourceMappingURL=outlined-forced-colors-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-outlined-text-field-container-shape-start-start, var(--md-outlined-text-field-container-shape, 4px));--_container-shape-start-end: var(--md-outlined-text-field-container-shape-start-end, var(--md-outlined-text-field-container-shape, 4px));--_container-shape-end-end: var(--md-outlined-text-field-container-shape-end-end, var(--md-outlined-text-field-container-shape, 4px));--_container-shape-end-start: var(--md-outlined-text-field-container-shape-end-start, var(--md-outlined-text-field-container-shape, 4px));--_container-padding-horizontal: var(--md-outlined-text-field-container-padding-horizontal, 16px);--_container-padding-vertical: var(--md-outlined-text-field-container-padding-vertical, 16px);--_input-text-prefix-padding: var(--md-outlined-text-field-input-text-prefix-padding, 2px);--_input-text-suffix-padding: var(--md-outlined-text-field-input-text-suffix-padding, 2px);--_outline-label-padding: var(--md-outlined-text-field-outline-label-padding, 4px);--_caret-color: var(--md-outlined-text-field-caret-color, var(--md-sys-color-primary, #6750a4));--_disabled-input-text-color: var(--md-outlined-text-field-disabled-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-input-text-opacity: var(--md-outlined-text-field-disabled-input-text-opacity, 0.38);--_disabled-label-text-color: var(--md-outlined-text-field-disabled-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-label-text-opacity: var(--md-outlined-text-field-disabled-label-text-opacity, 0.38);--_disabled-leading-icon-color: var(--md-outlined-text-field-disabled-leading-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-leading-icon-opacity: var(--md-outlined-text-field-disabled-leading-icon-opacity, 0.38);--_disabled-outline-color: var(--md-outlined-text-field-disabled-outline-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-outline-opacity: var(--md-outlined-text-field-disabled-outline-opacity, 0.12);--_disabled-outline-width: var(--md-outlined-text-field-disabled-outline-width, 1px);--_disabled-supporting-text-color: var(--md-outlined-text-field-disabled-supporting-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-supporting-text-opacity: var(--md-outlined-text-field-disabled-supporting-text-opacity, 0.38);--_disabled-trailing-icon-color: var(--md-outlined-text-field-disabled-trailing-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-trailing-icon-opacity: var(--md-outlined-text-field-disabled-trailing-icon-opacity, 0.38);--_error-focus-caret-color: var(--md-outlined-text-field-error-focus-caret-color, var(--md-sys-color-error, #b3261e));--_error-focus-input-text-color: var(--md-outlined-text-field-error-focus-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_error-focus-label-text-color: var(--md-outlined-text-field-error-focus-label-text-color, var(--md-sys-color-error, #b3261e));--_error-focus-leading-icon-color: var(--md-outlined-text-field-error-focus-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_error-focus-outline-color: var(--md-outlined-text-field-error-focus-outline-color, var(--md-sys-color-error, #b3261e));--_error-focus-supporting-text-color: var(--md-outlined-text-field-error-focus-supporting-text-color, var(--md-sys-color-error, #b3261e));--_error-focus-trailing-icon-color: var(--md-outlined-text-field-error-focus-trailing-icon-color, var(--md-sys-color-error, #b3261e));--_error-hover-input-text-color: var(--md-outlined-text-field-error-hover-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_error-hover-label-text-color: var(--md-outlined-text-field-error-hover-label-text-color, var(--md-sys-color-on-error-container, #410e0b));--_error-hover-leading-icon-color: var(--md-outlined-text-field-error-hover-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_error-hover-outline-color: var(--md-outlined-text-field-error-hover-outline-color, var(--md-sys-color-on-error-container, #410e0b));--_error-hover-supporting-text-color: var(--md-outlined-text-field-error-hover-supporting-text-color, var(--md-sys-color-error, #b3261e));--_error-hover-trailing-icon-color: var(--md-outlined-text-field-error-hover-trailing-icon-color, var(--md-sys-color-on-error-container, #410e0b));--_error-input-text-color: var(--md-outlined-text-field-error-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_error-label-text-color: var(--md-outlined-text-field-error-label-text-color, var(--md-sys-color-error, #b3261e));--_error-leading-icon-color: var(--md-outlined-text-field-error-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_error-outline-color: var(--md-outlined-text-field-error-outline-color, var(--md-sys-color-error, #b3261e));--_error-supporting-text-color: var(--md-outlined-text-field-error-supporting-text-color, var(--md-sys-color-error, #b3261e));--_error-trailing-icon-color: var(--md-outlined-text-field-error-trailing-icon-color, var(--md-sys-color-error, #b3261e));--_focus-input-text-color: var(--md-outlined-text-field-focus-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_focus-label-text-color: var(--md-outlined-text-field-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_focus-leading-icon-color: var(--md-outlined-text-field-focus-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-outline-color: var(--md-outlined-text-field-focus-outline-color, var(--md-sys-color-primary, #6750a4));--_focus-outline-width: var(--md-outlined-text-field-focus-outline-width, 2px);--_focus-supporting-text-color: var(--md-outlined-text-field-focus-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-trailing-icon-color: var(--md-outlined-text-field-focus-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-input-text-color: var(--md-outlined-text-field-hover-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-label-text-color: var(--md-outlined-text-field-hover-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-leading-icon-color: var(--md-outlined-text-field-hover-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-outline-color: var(--md-outlined-text-field-hover-outline-color, var(--md-sys-color-on-surface, #1c1b1f));--_hover-outline-width: var(--md-outlined-text-field-hover-outline-width, 1px);--_hover-supporting-text-color: var(--md-outlined-text-field-hover-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-trailing-icon-color: var(--md-outlined-text-field-hover-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_input-text-color: var(--md-outlined-text-field-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_input-text-placeholder-color: var(--md-outlined-text-field-input-text-placeholder-color, var(--md-sys-color-on-surface-variant, #49454f));--_input-text-prefix-color: var(--md-outlined-text-field-input-text-prefix-color, var(--md-sys-color-on-surface-variant, #49454f));--_input-text-suffix-color: var(--md-outlined-text-field-input-text-suffix-color, var(--md-sys-color-on-surface-variant, #49454f));--_input-text-type: var(--md-outlined-text-field-input-text-type, 400 1rem / 1.5rem Roboto);--_label-text-color: var(--md-outlined-text-field-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_label-text-populated-line-height: var(--md-outlined-text-field-label-text-populated-line-height, 1rem);--_label-text-populated-size: var(--md-outlined-text-field-label-text-populated-size, 0.75rem);--_label-text-type: var(--md-outlined-text-field-label-text-type, 400 1rem / 1.5rem Roboto);--_leading-icon-color: var(--md-outlined-text-field-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_leading-icon-size: var(--md-outlined-text-field-leading-icon-size, 24px);--_outline-color: var(--md-outlined-text-field-outline-color, var(--md-sys-color-outline, #79747e));--_outline-width: var(--md-outlined-text-field-outline-width, 1px);--_supporting-text-color: var(--md-outlined-text-field-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_supporting-text-type: var(--md-outlined-text-field-supporting-text-type, 400 0.75rem / 1rem Roboto);--_trailing-icon-color: var(--md-outlined-text-field-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_trailing-icon-size: var(--md-outlined-text-field-trailing-icon-size, 24px);--md-outlined-field-container-shape-start-start:var(--md-outlined-field-container-shape, var(--_container-shape-start-start));--md-outlined-field-container-shape-start-end:var(--md-outlined-field-container-shape, var(--_container-shape-start-end));--md-outlined-field-container-shape-end-end:var(--md-outlined-field-container-shape, var(--_container-shape-end-end));--md-outlined-field-container-shape-end-start:var(--md-outlined-field-container-shape, var(--_container-shape-end-start));--md-outlined-field-container-padding-horizontal:var(--_container-padding-horizontal);--md-outlined-field-container-padding-vertical:var(--_container-padding-vertical);--md-outlined-field-disabled-content-color:var(--_disabled-input-text-color);--md-outlined-field-disabled-content-opacity:var(--_disabled-input-text-opacity);--md-outlined-field-disabled-label-text-color:var(--_disabled-label-text-color);--md-outlined-field-disabled-label-text-opacity:var(--_disabled-label-text-opacity);--md-outlined-field-disabled-leading-icon-color:var(--_disabled-leading-icon-color);--md-outlined-field-disabled-leading-icon-opacity:var(--_disabled-leading-icon-opacity);--md-outlined-field-disabled-outline-color:var(--_disabled-outline-color);--md-outlined-field-disabled-outline-opacity:var(--_disabled-outline-opacity);--md-outlined-field-disabled-outline-width:var(--_disabled-outline-width);--md-outlined-field-disabled-supporting-text-color:var(--_disabled-supporting-text-color);--md-outlined-field-disabled-supporting-text-opacity:var(--_disabled-supporting-text-opacity);--md-outlined-field-disabled-trailing-icon-color:var(--_disabled-trailing-icon-color);--md-outlined-field-disabled-trailing-icon-opacity:var(--_disabled-trailing-icon-opacity);--md-outlined-field-error-focus-content-color:var(--_error-focus-input-text-color);--md-outlined-field-error-focus-label-text-color:var(--_error-focus-label-text-color);--md-outlined-field-error-focus-leading-icon-color:var(--_error-focus-leading-icon-color);--md-outlined-field-error-focus-outline-color:var(--_error-focus-outline-color);--md-outlined-field-error-focus-supporting-text-color:var(--_error-focus-supporting-text-color);--md-outlined-field-error-focus-trailing-icon-color:var(--_error-focus-trailing-icon-color);--md-outlined-field-error-hover-content-color:var(--_error-hover-input-text-color);--md-outlined-field-error-hover-label-text-color:var(--_error-hover-label-text-color);--md-outlined-field-error-hover-leading-icon-color:var(--_error-hover-leading-icon-color);--md-outlined-field-error-hover-outline-color:var(--_error-hover-outline-color);--md-outlined-field-error-hover-supporting-text-color:var(--_error-hover-supporting-text-color);--md-outlined-field-error-hover-trailing-icon-color:var(--_error-hover-trailing-icon-color);--md-outlined-field-error-content-color:var(--_error-input-text-color);--md-outlined-field-error-label-text-color:var(--_error-label-text-color);--md-outlined-field-error-leading-icon-color:var(--_error-leading-icon-color);--md-outlined-field-error-outline-color:var(--_error-outline-color);--md-outlined-field-error-supporting-text-color:var(--_error-supporting-text-color);--md-outlined-field-error-trailing-icon-color:var(--_error-trailing-icon-color);--md-outlined-field-focus-content-color:var(--_focus-input-text-color);--md-outlined-field-focus-label-text-color:var(--_focus-label-text-color);--md-outlined-field-focus-leading-icon-color:var(--_focus-leading-icon-color);--md-outlined-field-focus-outline-color:var(--_focus-outline-color);--md-outlined-field-focus-outline-width:var(--_focus-outline-width);--md-outlined-field-focus-supporting-text-color:var(--_focus-supporting-text-color);--md-outlined-field-focus-trailing-icon-color:var(--_focus-trailing-icon-color);--md-outlined-field-hover-content-color:var(--_hover-input-text-color);--md-outlined-field-hover-label-text-color:var(--_hover-label-text-color);--md-outlined-field-hover-leading-icon-color:var(--_hover-leading-icon-color);--md-outlined-field-hover-outline-color:var(--_hover-outline-color);--md-outlined-field-hover-outline-width:var(--_hover-outline-width);--md-outlined-field-hover-supporting-text-color:var(--_hover-supporting-text-color);--md-outlined-field-hover-trailing-icon-color:var(--_hover-trailing-icon-color);--md-outlined-field-content-color:var(--_input-text-color);--md-outlined-field-label-text-color:var(--_label-text-color);--md-outlined-field-label-text-type:var(--_label-text-type);--md-outlined-field-label-text-padding-bottom:var(--_label-text-padding-bottom);--md-outlined-field-label-text-populated-line-height:var(--_label-text-populated-line-height);--md-outlined-field-label-text-populated-size:var(--_label-text-populated-size);--md-outlined-field-leading-icon-color:var(--_leading-icon-color);--md-outlined-field-leading-icon-size:var(--_leading-icon-size);--md-outlined-field-outline-color:var(--_outline-color);--md-outlined-field-outline-width:var(--_outline-width);--md-outlined-field-supporting-text-type:var(--_supporting-text-type);--md-outlined-field-supporting-text-color:var(--_supporting-text-color);--md-outlined-field-trailing-icon-color:var(--_trailing-icon-color);--md-outlined-field-trailing-icon-size:var(--_trailing-icon-size)}/*# sourceMappingURL=outlined-styles.css.map */\n`;\n//# sourceMappingURL=outlined-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_text-field-container-shape-start-start: var(--md-outlined-autocomplete-text-field-container-shape-start-start, var(--md-outlined-autocomplete-text-field-container-shape, 4px));--_text-field-container-shape-start-end: var(--md-outlined-autocomplete-text-field-container-shape-start-end, var(--md-outlined-autocomplete-text-field-container-shape, 4px));--_text-field-container-shape-end-end: var(--md-outlined-autocomplete-text-field-container-shape-end-end, var(--md-outlined-autocomplete-text-field-container-shape, 4px));--_text-field-container-shape-end-start: var(--md-outlined-autocomplete-text-field-container-shape-end-start, var(--md-outlined-autocomplete-text-field-container-shape, 4px));--_menu-cascading-menu-indicator-icon-color: var(--md-outlined-autocomplete-menu-cascading-menu-indicator-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_menu-cascading-menu-indicator-icon-size: var(--md-outlined-autocomplete-menu-cascading-menu-indicator-icon-size, 24px);--_menu-container-color: var(--md-outlined-autocomplete-menu-container-color, var(--md-sys-color-surface, #fffbfe));--_menu-container-elevation: var(--md-outlined-autocomplete-menu-container-elevation, 2);--_menu-container-shadow-color: var(--md-outlined-autocomplete-menu-container-shadow-color, var(--md-sys-color-shadow, #000));--_menu-container-shape: var(--md-outlined-autocomplete-menu-container-shape, 4px);--_menu-container-surface-tint-layer-color: var(--md-outlined-autocomplete-menu-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--_menu-divider-color: var(--md-outlined-autocomplete-menu-divider-color, var(--md-sys-color-surface-variant, #e7e0ec));--_menu-divider-height: var(--md-outlined-autocomplete-menu-divider-height, 1px);--_menu-list-item-container-height: var(--md-outlined-autocomplete-menu-list-item-container-height, 48px);--_menu-list-item-label-text-color: var(--md-outlined-autocomplete-menu-list-item-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_menu-list-item-label-text-font: var(--md-outlined-autocomplete-menu-list-item-label-text-font, Roboto);--_menu-list-item-label-text-line-height: var(--md-outlined-autocomplete-menu-list-item-label-text-line-height, 1.25rem);--_menu-list-item-label-text-size: var(--md-outlined-autocomplete-menu-list-item-label-text-size, 0.875rem);--_menu-list-item-label-text-tracking: var(--md-outlined-autocomplete-menu-list-item-label-text-tracking, 0.006rem);--_menu-list-item-label-text-type: var(--md-outlined-autocomplete-menu-list-item-label-text-type, 500 0.875rem / 1.25rem Roboto);--_menu-list-item-label-text-weight: var(--md-outlined-autocomplete-menu-list-item-label-text-weight, 500);--_menu-list-item-selected-container-color: var(--md-outlined-autocomplete-menu-list-item-selected-container-color, var(--md-sys-color-surface-variant, #e7e0ec));--_text-field-caret-color: var(--md-outlined-autocomplete-text-field-caret-color, var(--md-sys-color-primary, #6750a4));--_text-field-container-color: var(--md-outlined-autocomplete-text-field-container-color, var(--md-sys-color-surface-variant, #e7e0ec));--_text-field-disabled-input-text-color: var(--md-outlined-autocomplete-text-field-disabled-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-input-text-opacity: var(--md-outlined-autocomplete-text-field-disabled-input-text-opacity, 0.38);--_text-field-disabled-label-text-color: var(--md-outlined-autocomplete-text-field-disabled-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-label-text-opacity: var(--md-outlined-autocomplete-text-field-disabled-label-text-opacity, 0.38);--_text-field-disabled-leading-icon-color: var(--md-outlined-autocomplete-text-field-disabled-leading-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-leading-icon-opacity: var(--md-outlined-autocomplete-text-field-disabled-leading-icon-opacity, 0.38);--_text-field-disabled-outline-color: var(--md-outlined-autocomplete-text-field-disabled-outline-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-outline-opacity: var(--md-outlined-autocomplete-text-field-disabled-outline-opacity, 0.12);--_text-field-disabled-outline-width: var(--md-outlined-autocomplete-text-field-disabled-outline-width, 1px);--_text-field-disabled-supporting-text-color: var(--md-outlined-autocomplete-text-field-disabled-supporting-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-supporting-text-opacity: var(--md-outlined-autocomplete-text-field-disabled-supporting-text-opacity, 0.38);--_text-field-disabled-trailing-icon-color: var(--md-outlined-autocomplete-text-field-disabled-trailing-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-disabled-trailing-icon-opacity: var(--md-outlined-autocomplete-text-field-disabled-trailing-icon-opacity, 0.38);--_text-field-error-focus-caret-color: var(--md-outlined-autocomplete-text-field-error-focus-caret-color, var(--md-sys-color-error, #b3261e));--_text-field-error-focus-input-text-color: var(--md-outlined-autocomplete-text-field-error-focus-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-error-focus-label-text-color: var(--md-outlined-autocomplete-text-field-error-focus-label-text-color, var(--md-sys-color-error, #b3261e));--_text-field-error-focus-leading-icon-color: var(--md-outlined-autocomplete-text-field-error-focus-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-error-focus-outline-color: var(--md-outlined-autocomplete-text-field-error-focus-outline-color, var(--md-sys-color-error, #b3261e));--_text-field-error-focus-supporting-text-color: var(--md-outlined-autocomplete-text-field-error-focus-supporting-text-color, var(--md-sys-color-error, #b3261e));--_text-field-error-focus-trailing-icon-color: var(--md-outlined-autocomplete-text-field-error-focus-trailing-icon-color, var(--md-sys-color-error, #b3261e));--_text-field-error-hover-input-text-color: var(--md-outlined-autocomplete-text-field-error-hover-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-error-hover-label-text-color: var(--md-outlined-autocomplete-text-field-error-hover-label-text-color, var(--md-sys-color-on-error-container, #410e0b));--_text-field-error-hover-leading-icon-color: var(--md-outlined-autocomplete-text-field-error-hover-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-error-hover-outline-color: var(--md-outlined-autocomplete-text-field-error-hover-outline-color, var(--md-sys-color-on-error-container, #410e0b));--_text-field-error-hover-state-layer-color: var(--md-outlined-autocomplete-text-field-error-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-error-hover-state-layer-opacity: var(--md-outlined-autocomplete-text-field-error-hover-state-layer-opacity, 0.08);--_text-field-error-hover-supporting-text-color: var(--md-outlined-autocomplete-text-field-error-hover-supporting-text-color, var(--md-sys-color-error, #b3261e));--_text-field-error-hover-trailing-icon-color: var(--md-outlined-autocomplete-text-field-error-hover-trailing-icon-color, var(--md-sys-color-on-error-container, #410e0b));--_text-field-error-input-text-color: var(--md-outlined-autocomplete-text-field-error-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-error-label-text-color: var(--md-outlined-autocomplete-text-field-error-label-text-color, var(--md-sys-color-error, #b3261e));--_text-field-error-leading-icon-color: var(--md-outlined-autocomplete-text-field-error-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-error-outline-color: var(--md-outlined-autocomplete-text-field-error-outline-color, var(--md-sys-color-error, #b3261e));--_text-field-error-supporting-text-color: var(--md-outlined-autocomplete-text-field-error-supporting-text-color, var(--md-sys-color-error, #b3261e));--_text-field-error-trailing-icon-color: var(--md-outlined-autocomplete-text-field-error-trailing-icon-color, var(--md-sys-color-error, #b3261e));--_text-field-focus-input-text-color: var(--md-outlined-autocomplete-text-field-focus-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-focus-label-text-color: var(--md-outlined-autocomplete-text-field-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_text-field-focus-leading-icon-color: var(--md-outlined-autocomplete-text-field-focus-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-focus-outline-color: var(--md-outlined-autocomplete-text-field-focus-outline-color, var(--md-sys-color-primary, #6750a4));--_text-field-focus-outline-width: var(--md-outlined-autocomplete-text-field-focus-outline-width, 2px);--_text-field-focus-supporting-text-color: var(--md-outlined-autocomplete-text-field-focus-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-focus-trailing-icon-color: var(--md-outlined-autocomplete-text-field-focus-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-hover-input-text-color: var(--md-outlined-autocomplete-text-field-hover-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-hover-label-text-color: var(--md-outlined-autocomplete-text-field-hover-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-hover-leading-icon-color: var(--md-outlined-autocomplete-text-field-hover-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-hover-outline-color: var(--md-outlined-autocomplete-text-field-hover-outline-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-hover-outline-width: var(--md-outlined-autocomplete-text-field-hover-outline-width, 1px);--_text-field-hover-state-layer-color: var(--md-outlined-autocomplete-text-field-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-hover-state-layer-opacity: var(--md-outlined-autocomplete-text-field-hover-state-layer-opacity, 0.08);--_text-field-hover-supporting-text-color: var(--md-outlined-autocomplete-text-field-hover-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-hover-trailing-icon-color: var(--md-outlined-autocomplete-text-field-hover-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-input-text-color: var(--md-outlined-autocomplete-text-field-input-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_text-field-input-text-font: var(--md-outlined-autocomplete-text-field-input-text-font, Roboto);--_text-field-input-text-line-height: var(--md-outlined-autocomplete-text-field-input-text-line-height, 1.5rem);--_text-field-input-text-size: var(--md-outlined-autocomplete-text-field-input-text-size, 1rem);--_text-field-input-text-tracking: var(--md-outlined-autocomplete-text-field-input-text-tracking, 0.031rem);--_text-field-input-text-type: var(--md-outlined-autocomplete-text-field-input-text-type, 400 1rem / 1.5rem Roboto);--_text-field-input-text-weight: var(--md-outlined-autocomplete-text-field-input-text-weight, 400);--_text-field-label-text-color: var(--md-outlined-autocomplete-text-field-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-label-text-font: var(--md-outlined-autocomplete-text-field-label-text-font, Roboto);--_text-field-label-text-line-height: var(--md-outlined-autocomplete-text-field-label-text-line-height, 1.5rem);--_text-field-label-text-populated-line-height: var(--md-outlined-autocomplete-text-field-label-text-populated-line-height, 1rem);--_text-field-label-text-populated-size: var(--md-outlined-autocomplete-text-field-label-text-populated-size, 0.75rem);--_text-field-label-text-size: var(--md-outlined-autocomplete-text-field-label-text-size, 1rem);--_text-field-label-text-tracking: var(--md-outlined-autocomplete-text-field-label-text-tracking, 0.031rem);--_text-field-label-text-type: var(--md-outlined-autocomplete-text-field-label-text-type, 400 1rem / 1.5rem Roboto);--_text-field-label-text-weight: var(--md-outlined-autocomplete-text-field-label-text-weight, 400);--_text-field-leading-icon-color: var(--md-outlined-autocomplete-text-field-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-leading-icon-size: var(--md-outlined-autocomplete-text-field-leading-icon-size, 24px);--_text-field-outline-color: var(--md-outlined-autocomplete-text-field-outline-color, var(--md-sys-color-outline, #79747e));--_text-field-outline-width: var(--md-outlined-autocomplete-text-field-outline-width, 1px);--_text-field-supporting-text-color: var(--md-outlined-autocomplete-text-field-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-supporting-text-font: var(--md-outlined-autocomplete-text-field-supporting-text-font, Roboto);--_text-field-supporting-text-line-height: var(--md-outlined-autocomplete-text-field-supporting-text-line-height, 1rem);--_text-field-supporting-text-size: var(--md-outlined-autocomplete-text-field-supporting-text-size, 0.75rem);--_text-field-supporting-text-tracking: var(--md-outlined-autocomplete-text-field-supporting-text-tracking, 0.025rem);--_text-field-supporting-text-type: var(--md-outlined-autocomplete-text-field-supporting-text-type, 400 0.75rem / 1rem Roboto);--_text-field-supporting-text-weight: var(--md-outlined-autocomplete-text-field-supporting-text-weight, 400);--_text-field-trailing-icon-color: var(--md-outlined-autocomplete-text-field-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_text-field-trailing-icon-size: var(--md-outlined-autocomplete-text-field-trailing-icon-size, 24px)}.md3-text-field{--md-outlined-text-field-caret-color:var(--_text-field-caret-color);--md-outlined-text-field-disabled-input-text-color:var(--_text-field-disabled-input-text-color);--md-outlined-text-field-disabled-input-text-opacity:var(--_text-field-disabled-input-text-opacity);--md-outlined-text-field-disabled-label-text-color:var(--_text-field-disabled-label-text-color);--md-outlined-text-field-disabled-label-text-opacity:var(--_text-field-disabled-label-text-opacity);--md-outlined-text-field-disabled-leading-icon-color:var(--_text-field-disabled-leading-icon-color);--md-outlined-text-field-disabled-leading-icon-opacity:var(--_text-field-disabled-leading-icon-opacity);--md-outlined-text-field-disabled-outline-color:var(--_text-field-disabled-outline-color);--md-outlined-text-field-disabled-outline-opacity:var(--_text-field-disabled-outline-opacity);--md-outlined-text-field-disabled-outline-width:var(--_text-field-disabled-outline-width);--md-outlined-text-field-disabled-supporting-text-color:var(--_text-field-disabled-supporting-text-color);--md-outlined-text-field-disabled-supporting-text-opacity:var(--_text-field-disabled-supporting-text-opacity);--md-outlined-text-field-disabled-trailing-icon-color:var(--_text-field-disabled-trailing-icon-color);--md-outlined-text-field-disabled-trailing-icon-opacity:var(--_text-field-disabled-trailing-icon-opacity);--md-outlined-text-field-error-focus-caret-color:var(--_text-field-error-focus-caret-color);--md-outlined-text-field-error-focus-input-text-color:var(--_text-field-error-focus-input-text-color);--md-outlined-text-field-error-focus-label-text-color:var(--_text-field-error-focus-label-text-color);--md-outlined-text-field-error-focus-leading-icon-color:var(--_text-field-error-focus-leading-icon-color);--md-outlined-text-field-error-focus-outline-color:var(--_text-field-error-focus-outline-color);--md-outlined-text-field-error-focus-supporting-text-color:var(--_text-field-error-focus-supporting-text-color);--md-outlined-text-field-error-focus-trailing-icon-color:var(--_text-field-error-focus-trailing-icon-color);--md-outlined-text-field-error-hover-input-text-color:var(--_text-field-error-hover-input-text-color);--md-outlined-text-field-error-hover-label-text-color:var(--_text-field-error-hover-label-text-color);--md-outlined-text-field-error-hover-leading-icon-color:var(--_text-field-error-hover-leading-icon-color);--md-outlined-text-field-error-hover-outline-color:var(--_text-field-error-hover-outline-color);--md-outlined-text-field-error-hover-supporting-text-color:var(--_text-field-error-hover-supporting-text-color);--md-outlined-text-field-error-hover-trailing-icon-color:var(--_text-field-error-hover-trailing-icon-color);--md-outlined-text-field-error-input-text-color:var(--_text-field-error-input-text-color);--md-outlined-text-field-error-label-text-color:var(--_text-field-error-label-text-color);--md-outlined-text-field-error-leading-icon-color:var(--_text-field-error-leading-icon-color);--md-outlined-text-field-error-outline-color:var(--_text-field-error-outline-color);--md-outlined-text-field-error-supporting-text-color:var(--_text-field-error-supporting-text-color);--md-outlined-text-field-error-trailing-icon-color:var(--_text-field-error-trailing-icon-color);--md-outlined-text-field-focus-input-text-color:var(--_text-field-focus-input-text-color);--md-outlined-text-field-focus-label-text-color:var(--_text-field-focus-label-text-color);--md-outlined-text-field-focus-leading-icon-color:var(--_text-field-focus-leading-icon-color);--md-outlined-text-field-focus-outline-color:var(--_text-field-focus-outline-color);--md-outlined-text-field-focus-outline-width:var(--_text-field-focus-outline-width);--md-outlined-text-field-focus-supporting-text-color:var(--_text-field-focus-supporting-text-color);--md-outlined-text-field-focus-trailing-icon-color:var(--_text-field-focus-trailing-icon-color);--md-outlined-text-field-hover-input-text-color:var(--_text-field-hover-input-text-color);--md-outlined-text-field-hover-label-text-color:var(--_text-field-hover-label-text-color);--md-outlined-text-field-hover-leading-icon-color:var(--_text-field-hover-leading-icon-color);--md-outlined-text-field-hover-outline-color:var(--_text-field-hover-outline-color);--md-outlined-text-field-hover-outline-width:var(--_text-field-hover-outline-width);--md-outlined-text-field-hover-supporting-text-color:var(--_text-field-hover-supporting-text-color);--md-outlined-text-field-hover-trailing-icon-color:var(--_text-field-hover-trailing-icon-color);--md-outlined-text-field-input-text-color:var(--_text-field-input-text-color);--md-outlined-text-field-input-text-type:var(--_text-field-input-text-type);--md-outlined-text-field-label-text-color:var(--_text-field-label-text-color);--md-outlined-text-field-label-text-type:var(--_label-text-type);--md-outlined-text-field-label-text-populated-line-height:var(--_text-field-label-text-populated-line-height);--md-outlined-text-field-label-text-populated-size:var(--_text-field-label-text-populated-size);--md-outlined-text-field-leading-icon-color:var(--_text-field-leading-icon-color);--md-outlined-text-field-leading-icon-size:var(--_text-field-leading-icon-size);--md-outlined-text-field-outline-color:var(--_text-field-outline-color);--md-outlined-text-field-outline-width:var(--_text-field-outline-width);--md-outlined-text-field-supporting-text-color:var(--_text-field-supporting-text-color);--md-outlined-text-field-supporting-text-type:var(--_supporting-text-type);--md-outlined-text-field-trailing-icon-color:var(--_text-field-trailing-icon-color);--md-outlined-text-field-trailing-icon-size:var(--_text-field-trailing-icon-size);--md-outlined-field-container-shape-start-start:var(--md-outlined-field-container-shape, var(--_text-field-container-shape-start-start));--md-outlined-field-container-shape-start-end:var(--md-outlined-field-container-shape, var(--_text-field-container-shape-start-end));--md-outlined-field-container-shape-end-end:var(--md-outlined-field-container-shape, var(--_text-field-container-shape-end-end));--md-outlined-field-container-shape-end-start:var(--md-outlined-field-container-shape, var(--_text-field-container-shape-end-start))}.md3-autocomplete__menu-surface{--md-menu-surface-container-elevation:var(--_menu-container-elevation);--md-menu-surface-container-shape:var(--_menu-container-shape);--md-menu-surface-container-shadow-color:var(--_menu-container-shadow-color)}/*# sourceMappingURL=outlined-styles.css.map */\n`;\n//# sourceMappingURL=outlined-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdOutlinedField } from '../field/outlined-field.js';\nimport { MdAutocompleteList } from './autocomplete-list.js';\nimport { MdAutocompleteSurface } from './autocomplete-surface.js';\n\nimport {ClassInfo} from 'lit/directives/class-map.js';\nimport {literal} from 'lit/static-html.js';\n\nimport {styles as outlinedForcedColorsStyles} from '@material/web/textfield/lib/outlined-forced-colors-styles.css.js';\nimport {styles as outlinedStyles} from '@material/web/textfield/lib/outlined-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/textfield/lib/shared-styles.css.js';\n\nimport {Autocomplete} from '@material/web/autocomplete/lib/autocomplete.js';\nimport {styles as autocompleteStyles} from '@material/web/autocomplete/lib/outlined-styles.css.js';\nimport {styles as sharedAutocompleteStyles} from '@material/web/autocomplete/lib/shared-styles.css.js';\n\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-outlined-autocomplete': MdOutlinedAutocomplete;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdOutlinedAutocomplete extends ScopedElementsMixin(Autocomplete) {\n  static override styles = [\n    sharedStyles, outlinedStyles, outlinedForcedColorsStyles,\n    sharedAutocompleteStyles, autocompleteStyles\n  ];\n\n  protected override readonly listTag = literal`md-autocomplete-list`;\n  protected override readonly menuSurfaceTag = literal`md-autocomplete-surface`;\n  protected override readonly fieldTag = literal`md-outlined-field`;\n\n  /** @soyTemplate */\n  protected override getAutocompleteRenderClasses(): ClassInfo {\n    return {\n      ...super.getAutocompleteRenderClasses(),\n      'md3-autocomplete--outlined': true,\n    };\n  }\n\n  /** @soyTemplate */\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-text-field--outlined': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-outlined-field': MdOutlinedField,\n      'md-autocomplete-list': MdAutocompleteList,\n      'md-autocomplete-surface': MdAutocompleteSurface\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/** @soyCompatible */\nexport class Badge extends LitElement {\n    constructor() {\n        super(...arguments);\n        this.value = '';\n    }\n    /** @soyTemplate */\n    render() {\n        return html `<div class=\"md3-badge ${classMap(this.getRenderClasses())}\"><p class=\"md3-badge__value\">${this.value}</p></div>`;\n    }\n    /** @soyTemplate */\n    getRenderClasses() {\n        return {\n            'md3-badge--large': this.value,\n        };\n    }\n}\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], Badge.prototype, \"value\", void 0);\n//# sourceMappingURL=badge.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_color: var(--md-badge-color, var(--md-sys-color-error, #b3261e));--_large-color: var(--md-badge-large-color, var(--md-sys-color-error, #b3261e));--_large-label-text-color: var(--md-badge-large-label-text-color, var(--md-sys-color-on-error, #fff));--_large-label-text-type: var(--md-badge-large-label-text-type, 500 0.688rem / 1rem Roboto);--_large-shape: var(--md-badge-large-shape, 9999px);--_large-size: var(--md-badge-large-size, 16px);--_shape: var(--md-badge-shape, 9999px);--_size: var(--md-badge-size, 6px)}.md3-badge{inset-inline-start:50%;margin-inline-start:6px;margin-block-start:4px;position:absolute;inset-block-start:0px;background-color:var(--_color);border-radius:var(--_shape);height:var(--_size)}.md3-badge:not(.md3-badge--large){width:var(--_size)}.md3-badge.md3-badge--large{display:flex;flex-direction:column;justify-content:center;margin-inline-start:2px;margin-block-start:1px;background-color:var(--_large-color);border-radius:var(--_large-shape);height:var(--_large-size);min-width:var(--_large-size);color:var(--_large-label-text-color)}.md3-badge.md3-badge--large .md3-badge__value{padding:0px 4px}.md3-badge__value{font:var(--_large-label-text-type)}/*# sourceMappingURL=badge-styles.css.map */\n`;\n//# sourceMappingURL=badge-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport {Badge} from '@material/web/badge/lib/badge.js';\nimport {styles} from '@material/web/badge/lib/badge-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-badge': MdBadge;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdBadge extends Badge {\n  static override styles = [styles];\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {FocusRing} from '@material/web/focus/lib/focus-ring.js';\nimport {styles} from '@material/web/focus/lib/focus-ring-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-focus-ring': MdFocusRing;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdFocusRing extends FocusRing {\n  static override styles = [styles];\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {Ripple} from '@material/web/ripple/lib/ripple.js';\nimport {styles} from '@material/web/ripple/lib/ripple-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-ripple': MdRipple;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdRipple extends Ripple {\n  static override styles = [styles];\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {Elevation} from '@material/web/elevation/lib/elevation.js';\nimport {styles} from '@material/web/elevation/lib/elevation-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-elevation': MdElevation;\n  }\n}\n\n/**\n * The `<md-elevation>` custom element with default styles.\n *\n * Elevation is the relative distance between two surfaces along the z-axis.\n */\nexport class MdElevation extends Elevation {\n  static override styles = [styles];\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\n// This is required for @ariaProperty\n// tslint:disable:no-new-decorators\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\nimport { html, LitElement, nothing } from 'lit';\nimport { property, query, queryAssignedElements, queryAsync, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { when } from 'lit/directives/when.js';\nimport { dispatchActivationClick, isActivationClick } from '../../controller/events.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\nimport { pointerPress, shouldShowStrongFocus } from '../../focus/strong-focus.js';\nimport { ripple } from '../../ripple/directive.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class Button extends LitElement {\n    constructor() {\n        super();\n        /**\n         * Whether or not the button is disabled.\n         */\n        this.disabled = false;\n        /**\n         * Whether to render the icon at the inline end of the label rather than the\n         * inline start.\n         *\n         * _Note:_ Link buttons cannot have trailing icons.\n         */\n        this.trailingIcon = false;\n        /**\n         * The button's visible label.\n         */\n        this.label = '';\n        /**\n         * Whether to display the icon or not.\n         */\n        this.hasIcon = false;\n        /**\n         * Whether `preventDefault()` should be called on the underlying button.\n         * Useful for preventing certain native functionalities like preventing form\n         * submissions.\n         */\n        this.preventClickDefault = false;\n        this.showFocusRing = false;\n        this.showRipple = false;\n        this.handleActivationClick = (event) => {\n            if (!isActivationClick((event))) {\n                return;\n            }\n            this.focus();\n            dispatchActivationClick(this.buttonElement);\n        };\n        this.getRipple = () => {\n            this.showRipple = true;\n            return this.ripple;\n        };\n        this.renderRipple = () => {\n            return html `<md-ripple class=\"md3-button__ripple\" ?disabled=\"${this.disabled}\"></md-ripple>`;\n        };\n        this.addEventListener('click', this.handleActivationClick);\n    }\n    focus() {\n        this.buttonElement.focus();\n    }\n    blur() {\n        this.buttonElement.blur();\n    }\n    render() {\n        // TODO(b/237283903): Replace ifDefined(... || undefined) with ifTruthy(...)\n        return html `\n      <button\n          class=\"md3-button ${classMap(this.getRenderClasses())}\"\n          ?disabled=\"${this.disabled}\"\n          aria-label=\"${this.ariaLabel || nothing}\"\n          aria-haspopup=\"${this.ariaHasPopup || nothing}\"\n          @pointerdown=\"${this.handlePointerDown}\"\n          @focus=\"${this.handleFocus}\"\n          @blur=\"${this.handleBlur}\"\n          @click=\"${this.handleClick}\"\n          ${ripple(this.getRipple)}>\n        ${this.renderFocusRing()}\n        ${this.renderElevation()}\n        ${when(this.showRipple, this.renderRipple)}\n        ${this.renderOutline()}\n        ${this.renderTouchTarget()}\n        ${this.renderLeadingIcon()}\n        ${this.renderLabel()}\n        ${this.renderTrailingIcon()}\n      </button>`;\n    }\n    getRenderClasses() {\n        return {\n            'md3-button--icon-leading': !this.trailingIcon && this.hasIcon,\n            'md3-button--icon-trailing': this.trailingIcon && this.hasIcon,\n        };\n    }\n    renderTouchTarget() {\n        return html `\n      <span class=\"md3-button__touch\"></span>\n    `;\n    }\n    renderElevation() {\n        return html ``;\n    }\n    renderOutline() {\n        return html ``;\n    }\n    renderFocusRing() {\n        return html `<md-focus-ring .visible=\"${this.showFocusRing}\"></md-focus-ring>`;\n    }\n    renderLabel() {\n        return html `<span class=\"md3-button__label\">${this.label}</span>`;\n    }\n    renderLeadingIcon() {\n        return this.trailingIcon ? '' : this.renderIcon();\n    }\n    renderTrailingIcon() {\n        return this.trailingIcon ? this.renderIcon() : '';\n    }\n    renderIcon() {\n        return html `<slot name=\"icon\" @slotchange=\"${this.handleSlotChange}\"></slot>`;\n    }\n    handlePointerDown(e) {\n        pointerPress();\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handleClick(e) {\n        if (this.preventClickDefault) {\n            e.preventDefault();\n        }\n    }\n    handleFocus() {\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handleBlur() {\n        this.showFocusRing = false;\n    }\n    handleSlotChange() {\n        this.hasIcon = this.assignedIcons.length > 0;\n    }\n}\nButton.shadowRootOptions = { mode: 'open', delegatesFocus: true };\n__decorate([\n    property({ type: String, attribute: 'data-aria-has-popup', noAccessor: true }),\n    ariaProperty,\n    __metadata(\"design:type\", String)\n], Button.prototype, \"ariaHasPopup\", void 0);\n__decorate([\n    property({ type: String, attribute: 'data-aria-label', noAccessor: true }),\n    ariaProperty,\n    __metadata(\"design:type\", String)\n], Button.prototype, \"ariaLabel\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Button.prototype, \"disabled\", void 0);\n__decorate([\n    property({ type: Boolean, attribute: 'trailingicon' }),\n    __metadata(\"design:type\", Object)\n], Button.prototype, \"trailingIcon\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], Button.prototype, \"label\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Button.prototype, \"hasIcon\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Button.prototype, \"preventClickDefault\", void 0);\n__decorate([\n    query('.md3-button'),\n    __metadata(\"design:type\", HTMLElement)\n], Button.prototype, \"buttonElement\", void 0);\n__decorate([\n    queryAsync('md-ripple'),\n    __metadata(\"design:type\", Promise)\n], Button.prototype, \"ripple\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Button.prototype, \"showFocusRing\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Button.prototype, \"showRipple\", void 0);\n__decorate([\n    queryAssignedElements({ slot: 'icon', flatten: true }),\n    __metadata(\"design:type\", Array)\n], Button.prototype, \"assignedIcons\", void 0);\n//# sourceMappingURL=button.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport '../../elevation/elevation.js';\nimport { html } from 'lit';\nimport { Button } from './button.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class ElevatedButton extends Button {\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-button--elevated': true,\n        };\n    }\n    renderElevation() {\n        return html `<md-elevation shadow surface></md-elevation>`;\n    }\n}\n//# sourceMappingURL=elevated-button.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-elevated-button-container-shape-start-start, var(--md-elevated-button-container-shape, 9999px));--_container-shape-start-end: var(--md-elevated-button-container-shape-start-end, var(--md-elevated-button-container-shape, 9999px));--_container-shape-end-end: var(--md-elevated-button-container-shape-end-end, var(--md-elevated-button-container-shape, 9999px));--_container-shape-end-start: var(--md-elevated-button-container-shape-end-start, var(--md-elevated-button-container-shape, 9999px));--_container-color: var(--md-elevated-button-container-color, var(--md-sys-color-surface, #fffbfe));--_container-elevation: var(--md-elevated-button-container-elevation, 1);--_container-height: var(--md-elevated-button-container-height, 40px);--_container-shadow-color: var(--md-elevated-button-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-surface-tint-layer-color: var(--md-elevated-button-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--_disabled-container-color: var(--md-elevated-button-disabled-container-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.12));--_disabled-container-elevation: var(--md-elevated-button-disabled-container-elevation, 0);--_disabled-label-text-color: var(--md-elevated-button-disabled-label-text-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_focus-container-elevation: var(--md-elevated-button-focus-container-elevation, 1);--_focus-label-text-color: var(--md-elevated-button-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-color: var(--md-elevated-button-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-opacity: var(--md-elevated-button-focus-state-layer-opacity, 0.12);--_hover-container-elevation: var(--md-elevated-button-hover-container-elevation, 2);--_hover-label-text-color: var(--md-elevated-button-hover-label-text-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-color: var(--md-elevated-button-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-opacity: var(--md-elevated-button-hover-state-layer-opacity, 0.08);--_label-text-color: var(--md-elevated-button-label-text-color, var(--md-sys-color-primary, #6750a4));--_label-text-type: var(--md-elevated-button-label-text-type, 500 0.875rem / 1.25rem Roboto);--_pressed-container-elevation: var(--md-elevated-button-pressed-container-elevation, 1);--_pressed-label-text-color: var(--md-elevated-button-pressed-label-text-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-color: var(--md-elevated-button-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--md-elevated-button-pressed-state-layer-opacity, 0.12);--_with-icon-disabled-icon-color: var(--md-elevated-button-with-icon-disabled-icon-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_with-icon-focus-icon-color: var(--md-elevated-button-with-icon-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_with-icon-hover-icon-color: var(--md-elevated-button-with-icon-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_with-icon-icon-color: var(--md-elevated-button-with-icon-icon-color, var(--md-sys-color-primary, #6750a4));--_with-icon-icon-size: var(--md-elevated-button-with-icon-icon-size, 18px);--_with-icon-pressed-icon-color: var(--md-elevated-button-with-icon-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_spacing-leading: var(--md-elevated-button-spacing-leading, 24px);--_spacing-trailing: var(--md-elevated-button-spacing-trailing, 24px);--_with-icon-spacing-leading: var(--md-elevated-button-with-icon-spacing-leading, 16px);--_with-icon-spacing-trailing: var(--md-elevated-button-with-icon-spacing-trailing, 24px);--_with-trailing-icon-spacing-leading: var(--md-elevated-button-with-trailing-icon-spacing-leading, 24px);--_with-trailing-icon-spacing-trailing: var(--md-elevated-button-with-trailing-icon-spacing-trailing, 16px)}/*# sourceMappingURL=elevated-styles.css.map */\n`;\n//# sourceMappingURL=elevated-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `md-elevation{inset:0;position:absolute}.md3-button{--md-elevation-duration:280ms;--md-elevation-level:var(--_container-elevation);--md-elevation-shadow-color:var(--_container-shadow-color);--md-elevation-surface-tint:var(--_container-surface-tint-layer-color)}.md3-button:focus{--md-elevation-level:var(--_focus-container-elevation)}.md3-button:hover{--md-elevation-level:var(--_hover-container-elevation)}.md3-button:active{--md-elevation-level:var(--_pressed-container-elevation)}.md3-button:disabled{--md-elevation-level:var(--_disabled-container-elevation)}/*# sourceMappingURL=shared-elevation-styles.css.map */\n`;\n//# sourceMappingURL=shared-elevation-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{display:inline-flex;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);vertical-align:top;--md-ripple-hover-color:var(--_hover-state-layer-color);--md-ripple-focus-color:var(--_focus-state-layer-color);--md-ripple-pressed-color:var(--_pressed-state-layer-color);--md-ripple-hover-opacity:var(--_hover-state-layer-opacity);--md-ripple-focus-opacity:var(--_focus-state-layer-opacity);--md-ripple-pressed-opacity:var(--_pressed-state-layer-opacity);--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, var(--_container-shape-start-start));--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, var(--_container-shape-start-end));--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, var(--_container-shape-end-end));--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, var(--_container-shape-end-start)))))}:host([disabled]){cursor:default;pointer-events:none}.md3-button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-inline-size:64px;border:none;outline:none;user-select:none;-webkit-appearance:none;vertical-align:middle;background:rgba(0,0,0,0);text-decoration:none;inline-size:100%;position:relative;z-index:0;block-size:var(--_container-height);font:var(--_label-text-type);background-color:var(--_container-color);color:var(--_label-text-color);padding-inline-start:var(--_spacing-leading);padding-inline-end:var(--_spacing-trailing);gap:8px}.md3-button::-moz-focus-inner{padding:0;border:0}.md3-button:hover{color:var(--_hover-label-text-color);cursor:pointer}.md3-button:focus{color:var(--_focus-label-text-color)}.md3-button:active{color:var(--_pressed-label-text-color);outline:none}.md3-button:disabled{background-color:var(--_disabled-container-color);color:var(--_disabled-label-text-color)}@media(forced-colors: active){.md3-button::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\"\";pointer-events:none}}.md3-button,.md3-button__ripple{border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-start-radius:var(--_container-shape-end-start);border-end-end-radius:var(--_container-shape-end-end)}md-elevation,.md3-button__ripple{z-index:-1}.md3-button--icon-leading{padding-inline-start:var(--_with-icon-spacing-leading);padding-inline-end:var(--_with-icon-spacing-trailing)}.md3-button--icon-trailing{padding-inline-start:var(--_with-trailing-icon-spacing-leading);padding-inline-end:var(--_with-trailing-icon-spacing-trailing)}.md3-link-button-wrapper{inline-size:100%}.md3-button ::slotted([slot=icon]){display:inline-flex;position:relative;writing-mode:horizontal-tb;fill:currentColor;color:var(--_with-icon-icon-color);font-size:var(--_with-icon-icon-size);inline-size:var(--_with-icon-icon-size);block-size:var(--_with-icon-icon-size)}.md3-button:hover ::slotted([slot=icon]){color:var(--_with-icon-hover-icon-color)}.md3-button:focus ::slotted([slot=icon]){color:var(--_with-icon-focus-icon-color)}.md3-button:active ::slotted([slot=icon]){color:var(--_with-icon-pressed-icon-color)}.md3-button:disabled ::slotted([slot=icon]){color:var(--_with-icon-disabled-icon-color)}.md3-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}/*# sourceMappingURL=shared-styles.css.map */\n`;\n//# sourceMappingURL=shared-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdElevation } from '../elevation/elevation.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport {ElevatedButton} from '@material/web/button/lib/elevated-button.js';\nimport {styles as elevatedStyles} from '@material/web/button/lib/elevated-styles.css.js';\nimport {styles as sharedElevationStyles} from '@material/web/button/lib/shared-elevation-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/button/lib/shared-styles.css.js';\n\n\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-elevated-button': MdElevatedButton;\n  }\n}\n\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment.\n *\n * @description\n * __Emphasis:__ Medium emphasis – For important actions that don’t distract\n * from other onscreen elements.\n *\n * __Rationale:__ Elevated buttons are essentially filled buttons with a lighter\n * background color and a shadow. To prevent shadow creep, only use them when\n * absolutely necessary, such as when the button requires visual separation from\n * a patterned background.\n *\n * __Example usages:__\n * - Reply\n * - View all\n * - Add to cart\n * - Take out of trash\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdElevatedButton extends ScopedElementsMixin(ElevatedButton) {\n  static override styles =\n      [sharedStyles, sharedElevationStyles, elevatedStyles];\n      \n  static get scopedElements() {\n    return {\n      'md-elevation': MdElevation,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { when } from 'lit/directives/when.js';\nimport { ripple } from '../../ripple/directive.js';\nimport { Button } from './button.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class LinkButton extends Button {\n    constructor() {\n        super(...arguments);\n        /**\n         * Link buttons cannot be disabled.\n         */\n        this.disabled = false;\n    }\n    // Note: link buttons cannot have trailing icons.\n    getRenderClasses() {\n        return {\n            'md3-button--icon-leading': this.hasIcon,\n        };\n    }\n    render() {\n        return html `\n      <span class=\"md3-link-button-wrapper\">\n        <a class=\"md3-button ${classMap(this.getRenderClasses())}\"\n          href=\"${ifDefined(this.href)}\"\n          target=\"${ifDefined(this.target)}\"\n          aria-label=\"${ifDefined(this.ariaLabel)}\"\n          @focus=\"${this.handleFocus}\"\n          @blur=\"${this.handleBlur}\"\n          @pointerdown=\"${this.handlePointerDown}\"\n          @click=\"${this.handleClick}\"\n          ${ripple(this.getRipple)}>\n            ${this.renderFocusRing()}\n            ${this.renderElevation()}\n            ${when(this.showRipple, this.renderRipple)}\n            ${this.renderOutline()}\n            ${this.renderTouchTarget()}\n            ${this.renderIcon()}\n            ${this.renderLabel()}</a>\n      </span>`;\n    }\n}\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", String)\n], LinkButton.prototype, \"href\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", String)\n], LinkButton.prototype, \"target\", void 0);\n//# sourceMappingURL=link-button.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport '../../elevation/elevation.js';\nimport { html } from 'lit';\nimport { LinkButton } from './link-button.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class ElevatedLinkButton extends LinkButton {\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-button--elevated': true,\n        };\n    }\n    renderElevation() {\n        return html `<md-elevation shadow surface></md-elevation>`;\n    }\n}\n//# sourceMappingURL=elevated-link-button.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdElevation } from '../elevation/elevation.js';\nimport {ElevatedLinkButton} from '@material/web/button/lib/elevated-link-button.js';\nimport {styles as elevatedStyles} from '@material/web/button/lib/elevated-styles.css.js';\nimport {styles as sharedElevationStyles} from '@material/web/button/lib/shared-elevation-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/button/lib/shared-styles.css.js';\n\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-elevated-link-button': MdElevatedLinkButton;\n  }\n}\n\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment. This is a linkable variant.\n *\n * @description\n * __Emphasis:__ Medium emphasis – For important actions that don’t distract\n * from other onscreen elements.\n *\n * __Rationale:__ Elevated buttons are essentially filled buttons with a lighter\n * background color and a shadow. To prevent shadow creep, only use them when\n * absolutely necessary, such as when the button requires visual separation from\n * a patterned background.\n *\n * __Example usages:__\n * - Reply\n * - View all\n * - Add to cart\n * - Take out of trash\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdElevatedLinkButton extends ScopedElementsMixin(ElevatedLinkButton) {\n  static override styles =\n      [sharedStyles, sharedElevationStyles, elevatedStyles];      \n  static get scopedElements() {\n    return {\n      'md-elevation': MdElevation,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport '../../elevation/elevation.js';\nimport { html } from 'lit';\nimport { Button } from './button.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class FilledButton extends Button {\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-button--filled': true,\n        };\n    }\n    /** @soyTemplate */\n    renderElevation() {\n        return html `<md-elevation shadow surface></md-elevation>`;\n    }\n}\n//# sourceMappingURL=filled-button.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-filled-button-container-shape-start-start, var(--md-filled-button-container-shape, 9999px));--_container-shape-start-end: var(--md-filled-button-container-shape-start-end, var(--md-filled-button-container-shape, 9999px));--_container-shape-end-end: var(--md-filled-button-container-shape-end-end, var(--md-filled-button-container-shape, 9999px));--_container-shape-end-start: var(--md-filled-button-container-shape-end-start, var(--md-filled-button-container-shape, 9999px));--_container-color: var(--md-filled-button-container-color, var(--md-sys-color-primary, #6750a4));--_container-elevation: var(--md-filled-button-container-elevation, 0);--_container-height: var(--md-filled-button-container-height, 40px);--_container-shadow-color: var(--md-filled-button-container-shadow-color, var(--md-sys-color-shadow, #000));--_disabled-container-color: var(--md-filled-button-disabled-container-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.12));--_disabled-container-elevation: var(--md-filled-button-disabled-container-elevation, 0);--_disabled-label-text-color: var(--md-filled-button-disabled-label-text-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_focus-container-elevation: var(--md-filled-button-focus-container-elevation, 0);--_focus-label-text-color: var(--md-filled-button-focus-label-text-color, var(--md-sys-color-on-primary, #fff));--_focus-state-layer-color: var(--md-filled-button-focus-state-layer-color, var(--md-sys-color-on-primary, #fff));--_focus-state-layer-opacity: var(--md-filled-button-focus-state-layer-opacity, 0.12);--_hover-container-elevation: var(--md-filled-button-hover-container-elevation, 1);--_hover-label-text-color: var(--md-filled-button-hover-label-text-color, var(--md-sys-color-on-primary, #fff));--_hover-state-layer-color: var(--md-filled-button-hover-state-layer-color, var(--md-sys-color-on-primary, #fff));--_hover-state-layer-opacity: var(--md-filled-button-hover-state-layer-opacity, 0.08);--_label-text-color: var(--md-filled-button-label-text-color, var(--md-sys-color-on-primary, #fff));--_label-text-type: var(--md-filled-button-label-text-type, 500 0.875rem / 1.25rem Roboto);--_pressed-container-elevation: var(--md-filled-button-pressed-container-elevation, 0);--_pressed-label-text-color: var(--md-filled-button-pressed-label-text-color, var(--md-sys-color-on-primary, #fff));--_pressed-state-layer-color: var(--md-filled-button-pressed-state-layer-color, var(--md-sys-color-on-primary, #fff));--_pressed-state-layer-opacity: var(--md-filled-button-pressed-state-layer-opacity, 0.12);--_with-icon-disabled-icon-color: var(--md-filled-button-with-icon-disabled-icon-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_with-icon-focus-icon-color: var(--md-filled-button-with-icon-focus-icon-color, var(--md-sys-color-on-primary, #fff));--_with-icon-hover-icon-color: var(--md-filled-button-with-icon-hover-icon-color, var(--md-sys-color-on-primary, #fff));--_with-icon-icon-color: var(--md-filled-button-with-icon-icon-color, var(--md-sys-color-on-primary, #fff));--_with-icon-icon-size: var(--md-filled-button-with-icon-icon-size, 18px);--_with-icon-pressed-icon-color: var(--md-filled-button-with-icon-pressed-icon-color, var(--md-sys-color-on-primary, #fff));--_spacing-leading: var(--md-filled-button-spacing-leading, 24px);--_spacing-trailing: var(--md-filled-button-spacing-trailing, 24px);--_with-icon-spacing-leading: var(--md-filled-button-with-icon-spacing-leading, 16px);--_with-icon-spacing-trailing: var(--md-filled-button-with-icon-spacing-trailing, 24px);--_with-trailing-icon-spacing-leading: var(--md-filled-button-with-trailing-icon-spacing-leading, 24px);--_with-trailing-icon-spacing-trailing: var(--md-filled-button-with-trailing-icon-spacing-trailing, 16px)}/*# sourceMappingURL=filled-styles.css.map */\n`;\n//# sourceMappingURL=filled-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdElevation } from '../elevation/elevation.js';\nimport {FilledButton} from '@material/web/button/lib/filled-button.js';\nimport {styles as filledStyles} from '@material/web/button/lib/filled-styles.css.js';\nimport {styles as sharedElevationStyles} from '@material/web/button/lib/shared-elevation-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/button/lib/shared-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-filled-button': MdFilledButton;\n  }\n}\n\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment.\n *\n * @description\n * __Emphasis:__ High emphasis – For the primary, most important, or most common\n * action on a screen\n *\n * __Rationale:__ The filled button’s contrasting surface color makes it the\n * most prominent button after the FAB. It’s used for final or unblocking\n * actions in a flow.\n *\n * __Example usages:__\n * - Save\n * - Confirm\n * - Done\n *\n * @final\n * @suppress {visibility}\n */\n\nexport class MdFilledButton extends ScopedElementsMixin(FilledButton) {\n  static override styles = [sharedStyles, sharedElevationStyles, filledStyles];      \n  static get scopedElements() {\n    return {\n      'md-elevation': MdElevation,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport '../../elevation/elevation.js';\nimport { html } from 'lit';\nimport { LinkButton } from './link-button.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class FilledLinkButton extends LinkButton {\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-button--filled': true,\n        };\n    }\n    /** @soyTemplate */\n    renderElevation() {\n        return html `<md-elevation shadow surface></md-elevation>`;\n    }\n}\n//# sourceMappingURL=filled-link-button.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdElevation } from '../elevation/elevation.js';\nimport {FilledLinkButton} from '@material/web/button/lib/filled-link-button.js';\nimport {styles as filledStyles} from '@material/web/button/lib/filled-styles.css.js';\nimport {styles as sharedElevationStyles} from '@material/web/button/lib/shared-elevation-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/button/lib/shared-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-filled-link-button': MdFilledLinkButton;\n  }\n}\n\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment. This is a linkable variant.\n *\n * @description\n * __Emphasis:__ High emphasis – For the primary, most important, or most common\n * action on a screen\n *\n * __Rationale:__ The filled button’s contrasting surface color makes it the\n * most prominent button after the FAB. It’s used for final or unblocking\n * actions in a flow.\n *\n * __Example usages:__\n * - Save\n * - Confirm\n * - Done\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdFilledLinkButton extends ScopedElementsMixin(FilledLinkButton) {\n  static override styles = [sharedStyles, sharedElevationStyles, filledStyles];      \n  static get scopedElements() {\n    return {\n      'md-elevation': MdElevation,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { html } from 'lit';\nimport { Button } from './button.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class OutlinedButton extends Button {\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-button--outlined': true,\n        };\n    }\n    renderOutline() {\n        return html `<span class=\"md3-button__outline\"></span>`;\n    }\n}\n//# sourceMappingURL=outlined-button.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-outlined-button-container-shape-start-start, var(--md-outlined-button-container-shape, 9999px));--_container-shape-start-end: var(--md-outlined-button-container-shape-start-end, var(--md-outlined-button-container-shape, 9999px));--_container-shape-end-end: var(--md-outlined-button-container-shape-end-end, var(--md-outlined-button-container-shape, 9999px));--_container-shape-end-start: var(--md-outlined-button-container-shape-end-start, var(--md-outlined-button-container-shape, 9999px));--_container-height: var(--md-outlined-button-container-height, 40px);--_disabled-label-text-color: var(--md-outlined-button-disabled-label-text-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_disabled-outline-color: var(--md-outlined-button-disabled-outline-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.12));--_focus-label-text-color: var(--md-outlined-button-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_focus-outline-color: var(--md-outlined-button-focus-outline-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-color: var(--md-outlined-button-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-opacity: var(--md-outlined-button-focus-state-layer-opacity, 0.12);--_hover-label-text-color: var(--md-outlined-button-hover-label-text-color, var(--md-sys-color-primary, #6750a4));--_hover-outline-color: var(--md-outlined-button-hover-outline-color, var(--md-sys-color-outline, #79747e));--_hover-state-layer-color: var(--md-outlined-button-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-opacity: var(--md-outlined-button-hover-state-layer-opacity, 0.08);--_label-text-color: var(--md-outlined-button-label-text-color, var(--md-sys-color-primary, #6750a4));--_label-text-type: var(--md-outlined-button-label-text-type, 500 0.875rem / 1.25rem Roboto);--_outline-color: var(--md-outlined-button-outline-color, var(--md-sys-color-outline, #79747e));--_outline-width: var(--md-outlined-button-outline-width, 1px);--_pressed-label-text-color: var(--md-outlined-button-pressed-label-text-color, var(--md-sys-color-primary, #6750a4));--_pressed-outline-color: var(--md-outlined-button-pressed-outline-color, var(--md-sys-color-outline, #79747e));--_pressed-state-layer-color: var(--md-outlined-button-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--md-outlined-button-pressed-state-layer-opacity, 0.12);--_with-icon-disabled-icon-color: var(--md-outlined-button-with-icon-disabled-icon-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_with-icon-focus-icon-color: var(--md-outlined-button-with-icon-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_with-icon-hover-icon-color: var(--md-outlined-button-with-icon-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_with-icon-icon-color: var(--md-outlined-button-with-icon-icon-color, var(--md-sys-color-primary, #6750a4));--_with-icon-icon-size: var(--md-outlined-button-with-icon-icon-size, 18px);--_with-icon-pressed-icon-color: var(--md-outlined-button-with-icon-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_spacing-leading: var(--md-outlined-button-spacing-leading, 24px);--_spacing-trailing: var(--md-outlined-button-spacing-trailing, 24px);--_with-icon-spacing-leading: var(--md-outlined-button-with-icon-spacing-leading, 16px);--_with-icon-spacing-trailing: var(--md-outlined-button-with-icon-spacing-trailing, 24px);--_with-trailing-icon-spacing-leading: var(--md-outlined-button-with-trailing-icon-spacing-leading, 24px);--_with-trailing-icon-spacing-trailing: var(--md-outlined-button-with-trailing-icon-spacing-trailing, 16px)}.md3-button__outline{inset:0;border-style:solid;position:absolute;box-sizing:border-box;border-color:var(--_outline-color);border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-start-radius:var(--_container-shape-end-start);border-end-end-radius:var(--_container-shape-end-end)}.md3-button:active .md3-button__outline{border-color:var(--_pressed-outline-color)}.md3-button:disabled .md3-button__outline{border-color:var(--_disabled-outline-color)}.md3-button__outline,.md3-button__ripple{border-width:var(--_outline-width)}.md3-button__ripple{inline-size:calc(100% - 2*var(--_outline-width));block-size:calc(100% - 2*var(--_outline-width));border-style:solid;border-color:rgba(0,0,0,0)}/*# sourceMappingURL=outlined-styles.css.map */\n`;\n//# sourceMappingURL=outlined-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\n\nimport {OutlinedButton} from '@material/web/button/lib/outlined-button.js';\nimport {styles as outlinedStyles} from '@material/web/button/lib/outlined-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/button/lib/shared-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-outlined-button': MdOutlinedButton;\n  }\n}\n\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment.\n *\n * @description\n * __Emphasis:__ Medium emphasis – For important actions that don’t distract\n * from other onscreen elements.\n *\n * __Rationale:__ Use an outlined button for actions that need attention but\n * aren’t the primary action, such as “See all” or “Add to cart.” This is also\n * the button to use for giving someone the opportunity to change their mind or\n * escape a flow.\n *\n * __Example usages:__\n * - Reply\n * - View all\n * - Add to cart\n * - Take out of trash\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdOutlinedButton extends ScopedElementsMixin(OutlinedButton) {\n  static override styles = [sharedStyles, outlinedStyles];      \n  static get scopedElements() {\n    return {\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { html } from 'lit';\nimport { LinkButton } from './link-button.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class OutlinedLinkButton extends LinkButton {\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-button--outlined': true,\n        };\n    }\n    renderOutline() {\n        return html `<span class=\"md3-button__outline\"></span>`;\n    }\n}\n//# sourceMappingURL=outlined-link-button.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport {OutlinedLinkButton} from '@material/web/button/lib/outlined-link-button.js';\nimport {styles as outlinedStyles} from '@material/web/button/lib/outlined-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/button/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-outlined-link-button': MdOutlinedLinkButton;\n  }\n}\n\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment. This is a linkable variant.\n *\n * @description\n * __Emphasis:__ Medium emphasis – For important actions that don’t distract\n * from other onscreen elements.\n *\n * __Rationale:__ Use an outlined button for actions that need attention but\n * aren’t the primary action, such as “See all” or “Add to cart.” This is also\n * the button to use for giving someone the opportunity to change their mind or\n * escape a flow.\n *\n * __Example usages:__\n * - Reply\n * - View all\n * - Add to cart\n * - Take out of trash\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdOutlinedLinkButton extends OutlinedLinkButton {\n  static override styles = [sharedStyles, outlinedStyles];      \n  static get scopedElements() {\n    return {\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Button } from './button.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class TextButton extends Button {\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-button--text': true,\n        };\n    }\n}\n//# sourceMappingURL=text-button.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-text-button-container-shape-start-start, var(--md-text-button-container-shape, 9999px));--_container-shape-start-end: var(--md-text-button-container-shape-start-end, var(--md-text-button-container-shape, 9999px));--_container-shape-end-end: var(--md-text-button-container-shape-end-end, var(--md-text-button-container-shape, 9999px));--_container-shape-end-start: var(--md-text-button-container-shape-end-start, var(--md-text-button-container-shape, 9999px));--_container-height: var(--md-text-button-container-height, 40px);--_disabled-label-text-color: var(--md-text-button-disabled-label-text-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_focus-label-text-color: var(--md-text-button-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-color: var(--md-text-button-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-opacity: var(--md-text-button-focus-state-layer-opacity, 0.12);--_hover-label-text-color: var(--md-text-button-hover-label-text-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-color: var(--md-text-button-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-opacity: var(--md-text-button-hover-state-layer-opacity, 0.08);--_label-text-color: var(--md-text-button-label-text-color, var(--md-sys-color-primary, #6750a4));--_label-text-type: var(--md-text-button-label-text-type, 500 0.875rem / 1.25rem Roboto);--_pressed-label-text-color: var(--md-text-button-pressed-label-text-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-color: var(--md-text-button-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--md-text-button-pressed-state-layer-opacity, 0.12);--_with-icon-disabled-icon-color: var(--md-text-button-with-icon-disabled-icon-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_with-icon-focus-icon-color: var(--md-text-button-with-icon-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_with-icon-hover-icon-color: var(--md-text-button-with-icon-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_with-icon-icon-color: var(--md-text-button-with-icon-icon-color, var(--md-sys-color-primary, #6750a4));--_with-icon-icon-size: var(--md-text-button-with-icon-icon-size, 18px);--_with-icon-pressed-icon-color: var(--md-text-button-with-icon-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_spacing-leading: var(--md-text-button-spacing-leading, 12px);--_spacing-trailing: var(--md-text-button-spacing-trailing, 12px);--_with-icon-spacing-leading: var(--md-text-button-with-icon-spacing-leading, 12px);--_with-icon-spacing-trailing: var(--md-text-button-with-icon-spacing-trailing, 16px);--_with-trailing-icon-spacing-leading: var(--md-text-button-with-trailing-icon-spacing-leading, 16px);--_with-trailing-icon-spacing-trailing: var(--md-text-button-with-trailing-icon-spacing-trailing, 12px)}/*# sourceMappingURL=text-styles.css.map */\n`;\n//# sourceMappingURL=text-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\n\nimport {styles as sharedStyles} from '@material/web/button/lib/shared-styles.css.js';\nimport {TextButton} from '@material/web/button/lib/text-button.js';\nimport {styles as textStyles} from '@material/web/button/lib/text-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-text-button': MdTextButton;\n  }\n}\n\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence\n *\n * __Rationale:__ Text buttons have less visual prominence, so should be used\n * for low emphasis actions, such as an alternative option.\n *\n * __Example usages:__\n * - Learn more\n * - View all\n * - Change account\n * - Turn on\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdTextButton extends ScopedElementsMixin(TextButton) {\n  static override styles = [sharedStyles, textStyles];      \n  static get scopedElements() {\n    return {\n\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { LinkButton } from './link-button.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class TextLinkButton extends LinkButton {\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-button--text': true,\n        };\n    }\n}\n//# sourceMappingURL=text-link-button.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\n\nimport {styles as sharedStyles} from '@material/web/button/lib/shared-styles.css.js';\nimport {TextLinkButton} from '@material/web/button/lib/text-link-button.js';\nimport {styles as textStyles} from '@material/web/button/lib/text-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-text-link-button': MdTextLinkButton;\n  }\n}\n\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment. This is a linkable variant.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence\n *\n * __Rationale:__ Text buttons have less visual prominence, so should be used\n * for low emphasis actions, such as an alternative option.\n *\n * __Example usages:__\n * - Learn more\n * - View all\n * - Change account\n * - Turn on\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdTextLinkButton extends ScopedElementsMixin(TextLinkButton) {\n  static override styles = [sharedStyles, textStyles];      \n  static get scopedElements() {\n    return {\n\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport '../../elevation/elevation.js';\nimport { html } from 'lit';\nimport { Button } from './button.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class TonalButton extends Button {\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-button--tonal': true,\n        };\n    }\n    /** @soyTemplate */\n    renderElevation() {\n        return html `<md-elevation shadow></md-elevation>`;\n    }\n}\n//# sourceMappingURL=tonal-button.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-tonal-button-container-shape-start-start, var(--md-tonal-button-container-shape, 9999px));--_container-shape-start-end: var(--md-tonal-button-container-shape-start-end, var(--md-tonal-button-container-shape, 9999px));--_container-shape-end-end: var(--md-tonal-button-container-shape-end-end, var(--md-tonal-button-container-shape, 9999px));--_container-shape-end-start: var(--md-tonal-button-container-shape-end-start, var(--md-tonal-button-container-shape, 9999px));--_container-color: var(--md-tonal-button-container-color, var(--md-sys-color-secondary-container, #e8def8));--_container-elevation: var(--md-tonal-button-container-elevation, 0);--_container-height: var(--md-tonal-button-container-height, 40px);--_container-shadow-color: var(--md-tonal-button-container-shadow-color, var(--md-sys-color-shadow, #000));--_disabled-container-color: var(--md-tonal-button-disabled-container-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.12));--_disabled-container-elevation: var(--md-tonal-button-disabled-container-elevation, 0);--_disabled-label-text-color: var(--md-tonal-button-disabled-label-text-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_focus-container-elevation: var(--md-tonal-button-focus-container-elevation, 0);--_focus-label-text-color: var(--md-tonal-button-focus-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_focus-state-layer-color: var(--md-tonal-button-focus-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_focus-state-layer-opacity: var(--md-tonal-button-focus-state-layer-opacity, 0.12);--_hover-container-elevation: var(--md-tonal-button-hover-container-elevation, 1);--_hover-label-text-color: var(--md-tonal-button-hover-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_hover-state-layer-color: var(--md-tonal-button-hover-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_hover-state-layer-opacity: var(--md-tonal-button-hover-state-layer-opacity, 0.08);--_label-text-color: var(--md-tonal-button-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_label-text-type: var(--md-tonal-button-label-text-type, 500 0.875rem / 1.25rem Roboto);--_pressed-container-elevation: var(--md-tonal-button-pressed-container-elevation, 0);--_pressed-label-text-color: var(--md-tonal-button-pressed-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_pressed-state-layer-color: var(--md-tonal-button-pressed-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_pressed-state-layer-opacity: var(--md-tonal-button-pressed-state-layer-opacity, 0.12);--_with-icon-disabled-icon-color: var(--md-tonal-button-with-icon-disabled-icon-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_with-icon-focus-icon-color: var(--md-tonal-button-with-icon-focus-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_with-icon-hover-icon-color: var(--md-tonal-button-with-icon-hover-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_with-icon-icon-color: var(--md-tonal-button-with-icon-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_with-icon-icon-size: var(--md-tonal-button-with-icon-icon-size, 18px);--_with-icon-pressed-icon-color: var(--md-tonal-button-with-icon-pressed-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_spacing-leading: var(--md-tonal-button-spacing-leading, 24px);--_spacing-trailing: var(--md-tonal-button-spacing-trailing, 24px);--_with-icon-spacing-leading: var(--md-tonal-button-with-icon-spacing-leading, 16px);--_with-icon-spacing-trailing: var(--md-tonal-button-with-icon-spacing-trailing, 24px);--_with-trailing-icon-spacing-leading: var(--md-tonal-button-with-trailing-icon-spacing-leading, 24px);--_with-trailing-icon-spacing-trailing: var(--md-tonal-button-with-trailing-icon-spacing-trailing, 16px)}/*# sourceMappingURL=tonal-styles.css.map */\n`;\n//# sourceMappingURL=tonal-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdElevation } from '../elevation/elevation.js';\nimport {styles as sharedElevationStyles} from '@material/web/button/lib/shared-elevation-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/button/lib/shared-styles.css.js';\nimport {TonalButton} from '@material/web/button/lib/tonal-button.js';\nimport {styles as tonalStyles} from '@material/web/button/lib/tonal-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-tonal-button': MdTonalButton;\n  }\n}\n\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment.\n *\n * @description\n * __Emphasis:__ Medium emphasis – For important actions that don’t distract\n * from other onscreen elements.\n *\n * __Rationale:__ Filled tonal buttons have a lighter background color and\n * darker label color, making them less visually prominent than a regular,\n * filled button. They’re still used for final or unblocking actions in a flow,\n * but do so with less emphasis.\n *\n * __Example usages:__\n * - Save\n * - Confirm\n * - Done\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdTonalButton extends ScopedElementsMixin(TonalButton) {\n  static override styles = [sharedStyles, sharedElevationStyles, tonalStyles];      \n  static get scopedElements() {\n    return {\n      'md-elevation': MdElevation,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport '../../elevation/elevation.js';\nimport { html } from 'lit';\nimport { LinkButton } from './link-button.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class TonalLinkButton extends LinkButton {\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-button--tonal': true,\n        };\n    }\n    /** @soyTemplate */\n    renderElevation() {\n        return html `<md-elevation shadow></md-elevation>`;\n    }\n}\n//# sourceMappingURL=tonal-link-button.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdElevation } from '../elevation/elevation.js';\nimport {styles as sharedElevationStyles} from '@material/web/button/lib/shared-elevation-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/button/lib/shared-styles.css.js';\nimport {TonalLinkButton} from '@material/web/button/lib/tonal-link-button.js';\nimport {styles as tonalStyles} from '@material/web/button/lib/tonal-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-tonal-link-button': MdTonalLinkButton;\n  }\n}\n\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment. This is a linkable variant.\n *\n * @description\n * __Emphasis:__ Medium emphasis – For important actions that don’t distract\n * from other onscreen elements.\n *\n * __Rationale:__ Filled tonal buttons have a lighter background color and\n * darker label color, making them less visually prominent than a regular,\n * filled button. They’re still used for final or unblocking actions in a flow,\n * but do so with less emphasis.\n *\n * __Example usages:__\n * - Save\n * - Confirm\n * - Done\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdTonalLinkButton extends ScopedElementsMixin(TonalLinkButton) {\n  static override styles = [sharedStyles, sharedElevationStyles, tonalStyles];      \n  static get scopedElements() {\n    return {\n      'md-elevation': MdElevation,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\nimport { html, LitElement, nothing } from 'lit';\nimport { property, query, queryAsync, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { when } from 'lit/directives/when.js';\nimport { dispatchActivationClick, isActivationClick, redispatchEvent } from '../../controller/events.js';\nimport { FormController, getFormValue } from '../../controller/form-controller.js';\nimport { stringConverter } from '../../controller/string-converter.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\nimport { pointerPress, shouldShowStrongFocus } from '../../focus/strong-focus.js';\nimport { ripple } from '../../ripple/directive.js';\n/**\n * A checkbox component.\n */\nexport class Checkbox extends LitElement {\n    /**\n     * The associated form element with which this element's value will submit.\n     */\n    get form() {\n        return this.closest('form');\n    }\n    constructor() {\n        super();\n        /**\n         * Whether or not the checkbox is selected.\n         */\n        this.checked = false;\n        /**\n         * Whether or not the checkbox is disabled.\n         */\n        this.disabled = false;\n        /**\n         * Whether or not the checkbox is invalid.\n         */\n        this.error = false;\n        /**\n         * Whether or not the checkbox is indeterminate.\n         *\n         * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#indeterminate_state_checkboxes\n         */\n        this.indeterminate = false;\n        /**\n         * The value of the checkbox that is submitted with a form when selected.\n         *\n         * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#value\n         */\n        this.value = 'on';\n        /**\n         * The HTML name to use in form submission.\n         */\n        this.name = '';\n        this.prevChecked = false;\n        this.prevDisabled = false;\n        this.prevIndeterminate = false;\n        this.showFocusRing = false;\n        this.showRipple = false;\n        this.getRipple = () => {\n            this.showRipple = true;\n            return this.ripple;\n        };\n        this.renderRipple = () => {\n            return html `<md-ripple ?disabled=${this.disabled} unbounded></md-ripple>`;\n        };\n        this.addController(new FormController(this));\n        this.addEventListener('click', (event) => {\n            if (!isActivationClick(event)) {\n                return;\n            }\n            this.focus();\n            dispatchActivationClick(this.input);\n        });\n    }\n    focus() {\n        this.input?.focus();\n    }\n    [getFormValue]() {\n        return this.checked ? this.value : null;\n    }\n    update(changed) {\n        if (changed.has('checked') || changed.has('disabled') ||\n            changed.has('indeterminate')) {\n            this.prevChecked = changed.get('checked') ?? this.checked;\n            this.prevDisabled = changed.get('disabled') ?? this.disabled;\n            this.prevIndeterminate =\n                changed.get('indeterminate') ?? this.indeterminate;\n        }\n        super.update(changed);\n    }\n    render() {\n        const prevNone = !this.prevChecked && !this.prevIndeterminate;\n        const prevChecked = this.prevChecked && !this.prevIndeterminate;\n        const prevIndeterminate = this.prevIndeterminate;\n        const isChecked = this.checked && !this.indeterminate;\n        const isIndeterminate = this.indeterminate;\n        const containerClasses = classMap({\n            'selected': isChecked || isIndeterminate,\n            'unselected': !isChecked && !isIndeterminate,\n            'checked': isChecked,\n            'indeterminate': isIndeterminate,\n            'error': this.error && !this.disabled,\n            'prev-unselected': prevNone,\n            'prev-checked': prevChecked,\n            'prev-indeterminate': prevIndeterminate,\n            'prev-disabled': this.prevDisabled,\n        });\n        return html `\n      <div class=\"container ${containerClasses}\">\n        <div class=\"outline\"></div>\n        <div class=\"background\"></div>\n        <md-focus-ring .visible=${this.showFocusRing}></md-focus-ring>\n        ${when(this.showRipple, this.renderRipple)}\n        <svg class=\"icon\" viewBox=\"0 0 18 18\">\n          <rect class=\"mark short\" />\n          <rect class=\"mark long\" />\n        </svg>\n      </div>\n      <input type=\"checkbox\"\n        aria-checked=${isIndeterminate ? 'mixed' : nothing}\n        aria-label=${this.ariaLabel || nothing}\n        ?disabled=${this.disabled}\n        .indeterminate=${this.indeterminate}\n        .checked=${this.checked}\n        @blur=${this.handleBlur}\n        @change=${this.handleChange}\n        @focus=${this.handleFocus}\n        @pointerdown=${this.handlePointerDown}\n        ${ripple(this.getRipple)}\n      >\n     `;\n    }\n    handleBlur() {\n        this.showFocusRing = false;\n    }\n    handleChange(event) {\n        const target = event.target;\n        this.checked = target.checked;\n        this.indeterminate = target.indeterminate;\n        redispatchEvent(this, event);\n    }\n    handleFocus() {\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handlePointerDown() {\n        pointerPress();\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n}\n/**\n * @nocollapse\n */\nCheckbox.formAssociated = true;\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Checkbox.prototype, \"checked\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Checkbox.prototype, \"disabled\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Checkbox.prototype, \"error\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Checkbox.prototype, \"indeterminate\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], Checkbox.prototype, \"value\", void 0);\n__decorate([\n    property({ type: String, reflect: true, converter: stringConverter }),\n    __metadata(\"design:type\", Object)\n], Checkbox.prototype, \"name\", void 0);\n__decorate([\n    ariaProperty // tslint:disable-line:no-new-decorators\n    ,\n    property({ type: String, attribute: 'data-aria-label', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], Checkbox.prototype, \"ariaLabel\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Checkbox.prototype, \"prevChecked\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Checkbox.prototype, \"prevDisabled\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Checkbox.prototype, \"prevIndeterminate\", void 0);\n__decorate([\n    queryAsync('md-ripple'),\n    __metadata(\"design:type\", Promise)\n], Checkbox.prototype, \"ripple\", void 0);\n__decorate([\n    query('input'),\n    __metadata(\"design:type\", HTMLInputElement)\n], Checkbox.prototype, \"input\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Checkbox.prototype, \"showFocusRing\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Checkbox.prototype, \"showRipple\", void 0);\n//# sourceMappingURL=checkbox.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape: var(--md-checkbox-container-shape, 2px);--_container-size: var(--md-checkbox-container-size, 18px);--_error-focus-state-layer-color: var(--md-checkbox-error-focus-state-layer-color, var(--md-sys-color-error, #b3261e));--_error-focus-state-layer-opacity: var(--md-checkbox-error-focus-state-layer-opacity, 0.12);--_error-hover-state-layer-color: var(--md-checkbox-error-hover-state-layer-color, var(--md-sys-color-error, #b3261e));--_error-hover-state-layer-opacity: var(--md-checkbox-error-hover-state-layer-opacity, 0.08);--_error-pressed-state-layer-color: var(--md-checkbox-error-pressed-state-layer-color, var(--md-sys-color-error, #b3261e));--_error-pressed-state-layer-opacity: var(--md-checkbox-error-pressed-state-layer-opacity, 0.12);--_icon-size: var(--md-checkbox-icon-size, 18px);--_selected-container-color: var(--md-checkbox-selected-container-color, var(--md-sys-color-primary, #6750a4));--_selected-disabled-container-color: var(--md-checkbox-selected-disabled-container-color, var(--md-sys-color-on-surface, #1c1b1f));--_selected-disabled-container-opacity: var(--md-checkbox-selected-disabled-container-opacity, 0.38);--_selected-disabled-icon-color: var(--md-checkbox-selected-disabled-icon-color, var(--md-sys-color-surface, #fffbfe));--_selected-error-container-color: var(--md-checkbox-selected-error-container-color, var(--md-sys-color-error, #b3261e));--_selected-error-focus-container-color: var(--md-checkbox-selected-error-focus-container-color, var(--md-sys-color-error, #b3261e));--_selected-error-focus-icon-color: var(--md-checkbox-selected-error-focus-icon-color, var(--md-sys-color-on-error, #fff));--_selected-error-hover-container-color: var(--md-checkbox-selected-error-hover-container-color, var(--md-sys-color-error, #b3261e));--_selected-error-hover-icon-color: var(--md-checkbox-selected-error-hover-icon-color, var(--md-sys-color-on-error, #fff));--_selected-error-icon-color: var(--md-checkbox-selected-error-icon-color, var(--md-sys-color-on-error, #fff));--_selected-error-pressed-container-color: var(--md-checkbox-selected-error-pressed-container-color, var(--md-sys-color-error, #b3261e));--_selected-error-pressed-icon-color: var(--md-checkbox-selected-error-pressed-icon-color, var(--md-sys-color-on-error, #fff));--_selected-focus-container-color: var(--md-checkbox-selected-focus-container-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-icon-color: var(--md-checkbox-selected-focus-icon-color, var(--md-sys-color-on-primary, #fff));--_selected-focus-state-layer-color: var(--md-checkbox-selected-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-opacity: var(--md-checkbox-selected-focus-state-layer-opacity, 0.12);--_selected-hover-container-color: var(--md-checkbox-selected-hover-container-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-icon-color: var(--md-checkbox-selected-hover-icon-color, var(--md-sys-color-on-primary, #fff));--_selected-hover-state-layer-color: var(--md-checkbox-selected-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-opacity: var(--md-checkbox-selected-hover-state-layer-opacity, 0.08);--_selected-icon-color: var(--md-checkbox-selected-icon-color, var(--md-sys-color-on-primary, #fff));--_selected-pressed-container-color: var(--md-checkbox-selected-pressed-container-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-icon-color: var(--md-checkbox-selected-pressed-icon-color, var(--md-sys-color-on-primary, #fff));--_selected-pressed-state-layer-color: var(--md-checkbox-selected-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_selected-pressed-state-layer-opacity: var(--md-checkbox-selected-pressed-state-layer-opacity, 0.12);--_state-layer-shape: var(--md-checkbox-state-layer-shape, 9999px);--_state-layer-size: var(--md-checkbox-state-layer-size, 40px);--_unselected-disabled-container-opacity: var(--md-checkbox-unselected-disabled-container-opacity, 0.38);--_unselected-disabled-outline-color: var(--md-checkbox-unselected-disabled-outline-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-disabled-outline-width: var(--md-checkbox-unselected-disabled-outline-width, 2px);--_unselected-error-focus-outline-color: var(--md-checkbox-unselected-error-focus-outline-color, var(--md-sys-color-error, #b3261e));--_unselected-error-hover-outline-color: var(--md-checkbox-unselected-error-hover-outline-color, var(--md-sys-color-error, #b3261e));--_unselected-error-outline-color: var(--md-checkbox-unselected-error-outline-color, var(--md-sys-color-error, #b3261e));--_unselected-error-pressed-outline-color: var(--md-checkbox-unselected-error-pressed-outline-color, var(--md-sys-color-error, #b3261e));--_unselected-focus-outline-color: var(--md-checkbox-unselected-focus-outline-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-outline-width: var(--md-checkbox-unselected-focus-outline-width, 2px);--_unselected-focus-state-layer-color: var(--md-checkbox-unselected-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-opacity: var(--md-checkbox-unselected-focus-state-layer-opacity, 0.12);--_unselected-hover-outline-color: var(--md-checkbox-unselected-hover-outline-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-outline-width: var(--md-checkbox-unselected-hover-outline-width, 2px);--_unselected-hover-state-layer-color: var(--md-checkbox-unselected-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-opacity: var(--md-checkbox-unselected-hover-state-layer-opacity, 0.08);--_unselected-outline-color: var(--md-checkbox-unselected-outline-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-outline-width: var(--md-checkbox-unselected-outline-width, 2px);--_unselected-pressed-outline-color: var(--md-checkbox-unselected-pressed-outline-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-outline-width: var(--md-checkbox-unselected-pressed-outline-width, 2px);--_unselected-pressed-state-layer-color: var(--md-checkbox-unselected-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_unselected-pressed-state-layer-opacity: var(--md-checkbox-unselected-pressed-state-layer-opacity, 0.12);border-radius:var(--_container-shape);display:inline-flex;height:48px;position:relative;vertical-align:top;width:48px;-webkit-tap-highlight-color:rgba(0,0,0,0)}input{appearance:none;inset:0;margin:0;outline:none;position:absolute;opacity:0;block-size:100%;inline-size:100%}.container{border-radius:inherit;height:100%;position:relative;width:100%}.outline,.background,md-ripple,.icon{inset:0;margin:auto;position:absolute}.outline,.background{border-radius:inherit;height:var(--_container-size);width:var(--_container-size)}.outline{border-color:var(--_unselected-outline-color);border-style:solid;border-width:var(--_unselected-outline-width);box-sizing:border-box}.background{background-color:var(--_selected-container-color)}.background,.icon{opacity:0;transition-duration:150ms,50ms;transition-property:transform,opacity;transition-timing-function:cubic-bezier(0.3, 0, 0.8, 0.15),linear;transform:scale(0.6)}.selected .background,.selected .icon{opacity:1;transition-duration:350ms,50ms;transition-timing-function:cubic-bezier(0.05, 0.7, 0.1, 1),linear;transform:scale(1)}md-focus-ring{--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, 9999px);--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, 9999px);--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, 9999px);--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, 9999px);--md-focus-ring-offset-vertical:-2px;--md-focus-ring-offset-horizontal:-2px}md-ripple{height:var(--_state-layer-size);width:var(--_state-layer-size);--md-ripple-focus-color:var(--_unselected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_unselected-focus-state-layer-opacity);--md-ripple-hover-color:var(--_unselected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_unselected-hover-state-layer-opacity);--md-ripple-pressed-color:var(--_unselected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_unselected-pressed-state-layer-opacity);--md-ripple-shape:var(--_state-layer-shape)}.selected md-ripple{--md-ripple-focus-color:var(--_selected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_selected-focus-state-layer-opacity);--md-ripple-hover-color:var(--_selected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_selected-hover-state-layer-opacity);--md-ripple-pressed-color:var(--_selected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_selected-pressed-state-layer-opacity)}.error md-ripple{--md-ripple-focus-color:var(--_error-focus-state-layer-color);--md-ripple-focus-opacity:var(--_error-focus-state-layer-opacity);--md-ripple-hover-color:var(--_error-hover-state-layer-color);--md-ripple-hover-opacity:var(--_error-hover-state-layer-opacity);--md-ripple-pressed-color:var(--_error-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_error-pressed-state-layer-opacity)}.icon{fill:var(--_selected-icon-color);height:var(--_icon-size);width:var(--_icon-size)}.mark.short{height:2px;transition-property:transform,height;width:2px}.mark.long{height:2px;transition-property:transform,width;width:10px}.mark{animation-duration:150ms;animation-timing-function:cubic-bezier(0.3, 0, 0.8, 0.15);transition-duration:150ms;transition-timing-function:cubic-bezier(0.3, 0, 0.8, 0.15)}.selected .mark{animation-duration:350ms;animation-timing-function:cubic-bezier(0.05, 0.7, 0.1, 1);transition-duration:350ms;transition-timing-function:cubic-bezier(0.05, 0.7, 0.1, 1)}.checked .mark,.prev-checked.unselected .mark{transform:scaleY(-1) translate(7px, -14px) rotate(45deg)}.checked .mark.short,.prev-checked.unselected .mark.short{height:5.6568542495px}.checked .mark.long,.prev-checked.unselected .mark.long{width:11.313708499px}.indeterminate .mark,.prev-indeterminate.unselected .mark{transform:scaleY(-1) translate(4px, -10px) rotate(0deg)}.prev-unselected .mark{transition-property:none}.prev-unselected.checked .mark.long{animation-name:prev-unselected-to-checked}@keyframes prev-unselected-to-checked{from{width:0}}.error .outline{border-color:var(--_unselected-error-outline-color)}.error .background{background:var(--_selected-error-container-color)}.error .icon{fill:var(--_selected-error-icon-color)}:host(:hover) .outline{border-color:var(--_unselected-hover-outline-color);border-width:var(--_unselected-hover-outline-width)}:host(:hover) .background{background:var(--_selected-hover-container-color)}:host(:hover) .icon{fill:var(--_selected-hover-icon-color)}:host(:hover) .error .outline{border-color:var(--_unselected-error-hover-outline-color)}:host(:hover) .error .background{background:var(--_selected-error-hover-container-color)}:host(:hover) .error .icon{fill:var(--_selected-error-hover-icon-color)}:host(:focus-within) .outline{border-color:var(--_unselected-focus-outline-color);border-width:var(--_unselected-focus-outline-width)}:host(:focus-within) .background{background:var(--_selected-focus-container-color)}:host(:focus-within) .icon{fill:var(--_selected-focus-icon-color)}:host(:focus-within) .error .outline{border-color:var(--_unselected-error-focus-outline-color)}:host(:focus-within) .error .background{background:var(--_selected-error-focus-container-color)}:host(:focus-within) .error .icon{fill:var(--_selected-error-focus-icon-color)}:host(:active) .outline{border-color:var(--_unselected-pressed-outline-color);border-width:var(--_unselected-pressed-outline-width)}:host(:active) .background{background:var(--_selected-pressed-container-color)}:host(:active) .icon{fill:var(--_selected-pressed-icon-color)}:host(:active) .error .outline{border-color:var(--_unselected-error-pressed-outline-color)}:host(:active) .error .background{background:var(--_selected-error-pressed-container-color)}:host(:active) .error .icon{fill:var(--_selected-error-pressed-icon-color)}:host([disabled]) .background,:host([disabled]) .icon,:host([disabled]) .mark,.prev-disabled .background,.prev-disabled .icon,.prev-disabled .mark{animation-duration:0s;transition-duration:0s}:host([disabled]) .outline{border-color:var(--_unselected-disabled-outline-color);border-width:var(--_unselected-disabled-outline-width);opacity:var(--_unselected-disabled-container-opacity)}:host([disabled]) .selected .outline{visibility:hidden}:host([disabled]) .selected .background{background:var(--_selected-disabled-container-color);opacity:var(--_selected-disabled-container-opacity)}:host([disabled]) .icon{fill:var(--_selected-disabled-icon-color)}/*# sourceMappingURL=checkbox-styles.css.map */\n`;\n//# sourceMappingURL=checkbox-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `@media(forced-colors: active){:host{--md-checkbox-selected-container-color:CanvasText;--md-checkbox-selected-disabled-container-color:GrayText;--md-checkbox-selected-disabled-container-opacity:1;--md-checkbox-selected-disabled-icon-color:Canvas;--md-checkbox-selected-error-container-color:CanvasText;--md-checkbox-selected-error-focus-container-color:CanvasText;--md-checkbox-selected-error-focus-icon-color:Canvas;--md-checkbox-selected-error-hover-container-color:CanvasText;--md-checkbox-selected-error-hover-icon-color:Canvas;--md-checkbox-selected-error-icon-color:Canvas;--md-checkbox-selected-error-pressed-container-color:CanvasText;--md-checkbox-selected-error-pressed-icon-color:Canvas;--md-checkbox-selected-focus-container-color:CanvasText;--md-checkbox-selected-focus-icon-color:Canvas;--md-checkbox-selected-hover-container-color:CanvasText;--md-checkbox-selected-hover-icon-color:Canvas;--md-checkbox-selected-icon-color:Canvas;--md-checkbox-selected-pressed-container-color:CanvasText;--md-checkbox-selected-pressed-icon-color:Canvas;--md-checkbox-unselected-disabled-container-opacity:1;--md-checkbox-unselected-disabled-outline-color:GrayText;--md-checkbox-unselected-error-focus-outline-color:CanvasText;--md-checkbox-unselected-error-hover-outline-color:CanvasText;--md-checkbox-unselected-error-outline-color:CanvasText;--md-checkbox-unselected-error-pressed-outline-color:CanvasText;--md-checkbox-unselected-focus-outline-color:CanvasText;--md-checkbox-unselected-hover-outline-color:CanvasText;--md-checkbox-unselected-outline-color:CanvasText;--md-checkbox-unselected-pressed-outline-color:CanvasText}}/*# sourceMappingURL=forced-colors-styles.css.map */\n`;\n//# sourceMappingURL=forced-colors-styles.css.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport {Checkbox} from '@material/web/checkbox/lib/checkbox.js';\nimport {styles} from '@material/web/checkbox/lib/checkbox-styles.css.js';\nimport {styles as forcedColorsStyles} from '@material/web/checkbox/lib/forced-colors-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-checkbox': MdCheckbox;\n  }\n}\n\n/**\n * @summary Checkboxes allow users to select one or more items from a set.\n * Checkboxes can turn an option on or off.\n *\n * @description\n * Use checkboxes to:\n * - Select one or more options from a list\n * - Present a list containing sub-selections\n * - Turn an item on or off in a desktop environment\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdCheckbox extends ScopedElementsMixin(Checkbox) {\n  static override styles = [styles, forcedColorsStyles];\n  static get scopedElements() {\n    return {\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport '../../elevation/elevation.js';\nimport { html, LitElement } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { createThrottle, msFromTimeCSSValue } from '../../motion/animation.js';\n// This is required for decorators.\n// tslint:disable:no-new-decorators\n/**\n * Default close action.\n */\nexport const CLOSE_ACTION = 'close';\nconst OPENING_TRANSITION_PROP = '--_opening-transition-duration';\nconst CLOSING_TRANSITION_PROP = '--_closing-transition-duration';\n/**\n * A dialog component.\n */\nexport class Dialog extends LitElement {\n    constructor() {\n        super(...arguments);\n        /**\n         * Opens the dialog when set to `true` and closes it when set to `false`.\n         */\n        this.open = false;\n        /**\n         * Setting fullscreen displays the dialog fullscreen on small screens.\n         * This can be customized via the `fullscreenBreakpoint` property.\n         * When showing fullscreen, the header will take up less vertical space, and\n         * the dialog will have a `showing-fullscreen`attribute, allowing content to\n         * be styled in this state.\n         *\n         * Dialogs can be sized by setting:\n         *\n         * * --md-dialog-container-min-block-size\n         * * --md-dialog-container-max-block-size\n         * * --md-dialog-container-min-inline-size\n         * * --md-dialog-container-max-inline-size\n         *\n         * These are typically configured via media queries and are independent of the\n         * fullscreen setting.\n         */\n        this.fullscreen = false;\n        /**\n         * A media query string specifying the breakpoint at which the dialog\n         * should be shown fullscreen. Note, this only applies when the `fullscreen`\n         * property is set.\n         *\n         * By default, the dialog is shown fullscreen on screens less than 600px wide\n         * or 400px tall.\n         */\n        this.fullscreenBreakpoint = '(max-width: 600px), (max-height: 400px)';\n        /**\n         * Hides the dialog footer, making any content slotted into the footer\n         * inaccessible.\n         */\n        this.footerHidden = false;\n        /**\n         * Renders footer content in a vertically stacked alignment rather than the\n         * normal horizontal alignment.\n         */\n        this.stacked = false;\n        /**\n         * When the dialog is closed it disptaches `closing` and `closed` events.\n         * These events have an action property which has a default value of\n         * the value of this property. Specific actions have explicit values but when\n         * a value is not specified, the default is used. For example, clicking the\n         * scrim, pressing escape, or clicking a button with an action attribute set\n         * produce an explicit action.\n         *\n         * Defaults to `close`.\n         */\n        this.defaultAction = CLOSE_ACTION;\n        /**\n         * The name of an attribute which can be placed on any element slotted into\n         * the dialog. If an element has an action attribute set, clicking it will\n         * close the dialog and the `closing` and `closed` events dispatched will\n         * have their action property set the the value of this attribute on the\n         * clicked element.The default valus is `dialogAction`. For example,\n         *\n         *   <md-dialog>\n         *    Content\n         *     <md-filled-button slot=\"footer\"dialogAction=\"buy\">\n         *       Buy\n         *     </md-filled-button>\n         *   </md-dialog>\n         */\n        this.actionAttribute = 'dialogAction';\n        /**\n         * When the dialog is opened, it will focus the first element which has\n         * an attribute name matching this property. The default value is\n         * `dialogFocus`. For example:\n         *\n         *  <md-dialog>\n         *    <md-filled-text-field\n         *      label=\"Enter some text\"\n         *      dialogFocus\n         *    >\n         *    </md-filled-text-field>\n         *  </md-dialog>\n         */\n        this.focusAttribute = 'dialogFocus';\n        /**\n         * Clicking on the scrim surrounding the dialog closes the dialog.\n         * The `closing` and `closed` events this produces have an `action` property\n         * which is the value of this property and defaults to `close`.\n         */\n        this.scrimClickAction = CLOSE_ACTION;\n        /**\n         * Pressing the `escape` key while the dialog is open closes the dialog.\n         * The `closing` and `closed` events this produces have an `action` property\n         * which is the value of this property and defaults to `close`.\n         */\n        this.escapeKeyAction = CLOSE_ACTION;\n        /**\n         * When opened, the dialog is displayed modeless or non-modal. This\n         * allows users to interact with content outside the dialog without\n         * closing the dialog and does not display the scrim around the dialog.\n         */\n        this.modeless = false;\n        /**\n         * Set to make the dialog position draggable.\n         */\n        this.draggable = false;\n        this.throttle = createThrottle();\n        /**\n         * Private properties that reflect for styling manually in `updated`.\n         */\n        this.showingFullscreen = false;\n        this.showingOpen = false;\n        this.opening = false;\n        this.closing = false;\n        /**\n         * Transition kind. Supported options include: grow, shrink, grow-down,\n         * grow-up, grow-left, and grow-right.\n         *\n         * Defaults to grow-down.\n         */\n        this.transition = 'grow-down';\n        this.dragging = false;\n        this.dragMargin = 8;\n        this.fullscreenQueryListener = undefined;\n    }\n    static setDocumentScrollingDisabled(disabled = false) {\n        let { preventedScrollingCount, scrollbarTester } = Dialog;\n        Dialog.preventedScrollingCount = preventedScrollingCount =\n            Math.max(preventedScrollingCount + (Number(disabled) || -1), 0);\n        const shouldPrevent = Boolean(preventedScrollingCount);\n        const { style } = document.body;\n        if (shouldPrevent && style.overflow === 'hidden') {\n            return;\n        }\n        if (scrollbarTester === undefined) {\n            Dialog.scrollbarTester = scrollbarTester = document.createElement('div');\n            scrollbarTester.style.cssText =\n                `position: absolute; height: 0; width: 100%; visibility: hidden; pointer-events: none;`;\n        }\n        // Appends an element to see if its offsetWidth changes when overflow is\n        // altered. If it does, then add end inline padding to restore the width to\n        // avoid a visible layout shift.\n        document.body.append(scrollbarTester);\n        const { offsetWidth } = scrollbarTester;\n        style.overflow = shouldPrevent ? 'hidden' : '';\n        const scrollbarWidth = scrollbarTester.offsetWidth - offsetWidth;\n        scrollbarTester.remove();\n        style.paddingInlineEnd = shouldPrevent ? `${scrollbarWidth}px` : '';\n    }\n    /**\n     * Opens and shows the dialog. This is equivalent to setting the `open`\n     * property to true.\n     */\n    show() {\n        this.open = true;\n    }\n    /**\n     * Closes the dialog. This is equivalent to setting the `open`\n     * property to false.\n     */\n    close(action = '') {\n        this.currentAction = action;\n        this.open = false;\n    }\n    /**\n     * Opens and shows the dialog if it is closed; otherwise closes it.\n     */\n    toggleShow() {\n        if (this.open) {\n            this.close(this.currentAction);\n        }\n        else {\n            this.show();\n        }\n    }\n    getContentScrollInfo() {\n        if (!this.hasUpdated) {\n            return { isScrollable: false, isAtScrollTop: true, isAtScrollBottom: true };\n        }\n        const { scrollTop, scrollHeight, offsetHeight, clientHeight } = this.contentElement;\n        return {\n            isScrollable: scrollHeight > offsetHeight,\n            isAtScrollTop: scrollTop === 0,\n            isAtScrollBottom: Math.abs(Math.round(scrollHeight - scrollTop) - clientHeight) <= 2\n        };\n    }\n    render() {\n        const { isScrollable, isAtScrollTop, isAtScrollBottom } = this.getContentScrollInfo();\n        return html `\n    <dialog\n      @close=${this.handleDialogDismiss}\n      @cancel=${this.handleDialogDismiss}\n      @click=${this.handleDialogClick}\n      class=\"dialog ${classMap({\n            'stacked': this.stacked,\n            'scrollable': isScrollable,\n            'scroll-divider-header': !isAtScrollTop,\n            'scroll-divider-footer': !isAtScrollBottom,\n            'footerHidden': this.footerHidden\n        })}\"\n      aria-labelledby=\"header\"\n      aria-describedby=\"content\"\n    >\n      <div class=\"container ${classMap({\n            'dragging': this.dragging\n        })}\"\n        @pointermove=${this.handlePointerMove}\n        @pointerup=${this.handleDragEnd}\n      >\n        <header class=\"header\">\n          <slot name=\"header\">\n            <slot name=\"headline-prefix\"></slot>\n            <slot name=\"headline\"></slot>\n            <slot name=\"headline-suffix\"></slot>\n          </slot>\n        </header>\n        <section class=\"content\" @scroll=${this.handleContentScroll}>\n          <slot></slot>\n        </section>\n        <footer class=\"footer\">\n          <slot name=\"footer\"></slot>\n        </footer>\n        <md-elevation surface></md-elevation>\n      </div>\n    </dialog>`;\n    }\n    willUpdate(changed) {\n        if (changed.has('open')) {\n            this.opening = this.open;\n            // only closing if was opened previously...\n            this.closing = !this.open && changed.get('open');\n        }\n        if (changed.has('fullscreen') || changed.has('fullscreenBreakpoint')) {\n            this.updateFullscreen();\n        }\n    }\n    firstUpdated() {\n        // Update when content size changes to show/hide scroll dividers.\n        new ResizeObserver(() => {\n            if (this.showingOpen) {\n                this.requestUpdate();\n            }\n        }).observe(this.contentElement);\n    }\n    updated(changed) {\n        if (changed.get('draggable') && !this.draggable) {\n            this.style.removeProperty('--_container-drag-inline-start');\n            this.style.removeProperty('--_container-drag-block-start');\n        }\n        // Reflect internal state to facilitate styling.\n        this.reflectStateProp(changed, 'opening', this.opening);\n        this.reflectStateProp(changed, 'closing', this.closing);\n        this.reflectStateProp(changed, 'showingFullscreen', this.showingFullscreen, 'showing-fullscreen');\n        this.reflectStateProp(changed, 'showingOpen', this.showingOpen, 'showing-open');\n        if (!changed.has('open')) {\n            return;\n        }\n        // prevent body scrolling early only when opening to avoid layout\n        // shift when closing.\n        if (!this.modeless && this.open) {\n            Dialog.setDocumentScrollingDisabled(this.open);\n        }\n        if (this.open) {\n            this.contentElement.scrollTop = 0;\n            if (this.modeless) {\n                this.dialogElement.show();\n            }\n            else {\n                // Note, native focus handling fails when focused element is in an\n                // overflow: auto container.\n                this.dialogElement.showModal();\n            }\n        }\n        // Avoids dispatching initial state.\n        const shouldDispatchAction = changed.get('open') !== undefined;\n        this.performTransition(shouldDispatchAction);\n    }\n    /**\n     * Internal state is reflected here as attributes to effect styling. This\n     * could be done via internal classes, but it's published on the host\n     * to facilitate the (currently undocumented) possibility of customizing\n     * styling of user content based on these states.\n     * Note, in the future this could be done with `:state(...)` when browser\n     * support improves.\n     */\n    reflectStateProp(changed, key, value, attribute) {\n        attribute ?? (attribute = key);\n        if (!changed.has(key)) {\n            return;\n        }\n        if (value) {\n            this.setAttribute(attribute, '');\n        }\n        else {\n            this.removeAttribute(attribute);\n        }\n    }\n    async performTransition(shouldDispatchAction) {\n        // TODO: pause here only to avoid a double update warning.\n        await this.updateComplete;\n        this.showingOpen = this.open;\n        if (shouldDispatchAction) {\n            this.dispatchActionEvent(this.open ? 'opening' : 'closing');\n        }\n        // Compute desired transition duration.\n        const duration = msFromTimeCSSValue(getComputedStyle(this).getPropertyValue(this.open ? OPENING_TRANSITION_PROP : CLOSING_TRANSITION_PROP));\n        let promise = this.updateComplete;\n        if (duration > 0) {\n            promise = new Promise((r) => {\n                setTimeout(r, duration);\n            });\n        }\n        await promise;\n        this.opening = false;\n        this.closing = false;\n        if (!this.open && this.dialogElement.open) {\n            // Closing the dialog triggers an asynchronous `close` event.\n            // It's important to wait for this event to fire since it changes the\n            // state of `open` to false.\n            // Without waiting, this element's `closed` event can be called before\n            // the dialog's `close` event, which is problematic since the user\n            // can set `open` in the `closed` event.\n            // The timing of the event appears to vary via browser and does *not*\n            // seem to resolve by \"task\" timing; therefore an explicit promise is\n            // used.\n            const closedPromise = new Promise(resolve => {\n                this.dialogClosedResolver = resolve;\n            });\n            this.dialogElement.close(this.currentAction || this.defaultAction);\n            await closedPromise;\n            // enable scrolling late to avoid layout shift when closing\n            if (!this.modeless) {\n                Dialog.setDocumentScrollingDisabled(this.open);\n            }\n        }\n        // Focus initial element.\n        if (this.open) {\n            this.focus();\n        }\n        if (shouldDispatchAction) {\n            this.dispatchActionEvent(this.open ? 'opened' : 'closed');\n        }\n        this.currentAction = undefined;\n    }\n    dispatchActionEvent(type) {\n        const detail = { action: this.open ? 'none' : this.currentAction };\n        this.dispatchEvent(new CustomEvent(type, { detail, bubbles: true }));\n    }\n    updateFullscreen() {\n        if (this.fullscreenQuery !== undefined) {\n            this.fullscreenQuery.removeEventListener('change', this.fullscreenQueryListener);\n            this.fullscreenQuery = this.fullscreenQueryListener = undefined;\n        }\n        if (!this.fullscreen) {\n            this.showingFullscreen = false;\n            return;\n        }\n        this.fullscreenQuery = window.matchMedia(this.fullscreenBreakpoint);\n        this.fullscreenQuery.addEventListener('change', (this.fullscreenQueryListener = (event) => {\n            this.showingFullscreen = event.matches;\n        }));\n        this.showingFullscreen = this.fullscreenQuery.matches;\n    }\n    // handles native close/cancel events and we just ensure\n    // internal state is in sync.\n    handleDialogDismiss(e) {\n        if (e.type === 'cancel') {\n            this.currentAction = this.escapeKeyAction;\n        }\n        this.dialogClosedResolver?.();\n        this.dialogClosedResolver = undefined;\n        this.open = false;\n        this.opening = false;\n        this.closing = false;\n    }\n    handleDialogClick(e) {\n        if (!this.open) {\n            return;\n        }\n        this.currentAction =\n            e.target.getAttribute(this.actionAttribute) ??\n                (!this.modeless && !e.composedPath().includes(this.containerElement) ?\n                    this.scrimClickAction :\n                    '');\n        if (this.currentAction !== '') {\n            this.close(this.currentAction);\n        }\n    }\n    /* This allows the dividers to dynamically show based on scrolling. */\n    handleContentScroll() {\n        this.throttle('scroll', () => {\n            this.requestUpdate();\n        });\n    }\n    getFocusElement() {\n        const selector = `[${this.focusAttribute}]`;\n        const slotted = [this.footerSlot, this.contentSlot].flatMap(slot => slot.assignedElements({ flatten: true }));\n        for (const el of slotted) {\n            const focusEl = el.matches(selector) ? el : el.querySelector(selector);\n            if (focusEl) {\n                return focusEl;\n            }\n        }\n        return null;\n    }\n    focus() {\n        this.getFocusElement()?.focus();\n    }\n    blur() {\n        this.getFocusElement()?.blur();\n    }\n    canStartDrag(e) {\n        if (this.draggable === false || e.defaultPrevented || !(e.buttons & 1) ||\n            !e.composedPath().includes(this.headerElement)) {\n            return false;\n        }\n        return true;\n    }\n    handlePointerMove(e) {\n        if (!this.dragging && !this.canStartDrag(e)) {\n            return;\n        }\n        const { top, left, height, width } = this.containerElement.getBoundingClientRect();\n        if (!this.dragging) {\n            this.containerElement.setPointerCapture(e.pointerId);\n            this.dragging = true;\n            const { x, y } = e;\n            this.dragInfo = [x, y, top, left];\n        }\n        const [sx, sy, st, sl] = this.dragInfo ?? [0, 0, 0, 0];\n        const dx = e.x - sx;\n        const dy = e.y - sy;\n        const ml = window.innerWidth - width - this.dragMargin;\n        const mt = window.innerHeight - height - this.dragMargin;\n        const l = Math.max(this.dragMargin, Math.min(ml, dx + sl));\n        const t = Math.max(this.dragMargin, Math.min(mt, dy + st));\n        this.style.setProperty('--_container-drag-inline-start', `${l}px`);\n        this.style.setProperty('--_container-drag-block-start', `${t}px`);\n    }\n    handleDragEnd(e) {\n        if (!this.dragging) {\n            return;\n        }\n        this.containerElement.releasePointerCapture(e.pointerId);\n        this.dragging = false;\n        this.dragInfo = undefined;\n    }\n}\nDialog.preventedScrollingCount = 0;\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"open\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"fullscreen\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"fullscreenBreakpoint\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"footerHidden\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"stacked\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"defaultAction\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"actionAttribute\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"focusAttribute\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"scrimClickAction\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"escapeKeyAction\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"modeless\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"draggable\", void 0);\n__decorate([\n    query('.dialog', true),\n    __metadata(\"design:type\", HTMLDialogElement)\n], Dialog.prototype, \"dialogElement\", void 0);\n__decorate([\n    query('slot[name=footer]', true),\n    __metadata(\"design:type\", HTMLSlotElement)\n], Dialog.prototype, \"footerSlot\", void 0);\n__decorate([\n    query('slot:not([name])', true),\n    __metadata(\"design:type\", HTMLSlotElement)\n], Dialog.prototype, \"contentSlot\", void 0);\n__decorate([\n    query(`.content`, true),\n    __metadata(\"design:type\", HTMLDivElement)\n], Dialog.prototype, \"contentElement\", void 0);\n__decorate([\n    query(`.container`, true),\n    __metadata(\"design:type\", HTMLDivElement)\n], Dialog.prototype, \"containerElement\", void 0);\n__decorate([\n    query(`.header`, true),\n    __metadata(\"design:type\", HTMLDivElement)\n], Dialog.prototype, \"headerElement\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"showingFullscreen\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"showingOpen\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"opening\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"closing\", void 0);\n__decorate([\n    property({ reflect: true }),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"transition\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Dialog.prototype, \"dragging\", void 0);\n//# sourceMappingURL=dialog.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-color: var(--md-dialog-container-color, var(--md-sys-color-surface, #fffbfe));--_container-elevation: var(--md-dialog-container-elevation, 6);--_container-shape: var(--md-dialog-container-shape, 28px);--_container-surface-tint-layer-color: var(--md-dialog-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--_headline-color: var(--md-dialog-headline-color, var(--md-sys-color-on-surface, #1c1b1f));--_headline-type: var(--md-dialog-headline-type, 400 1.5rem / 2rem Roboto);--_supporting-text-color: var(--md-dialog-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_supporting-text-type: var(--md-dialog-supporting-text-type, 400 0.875rem / 1.25rem Roboto);--_with-icon-icon-color: var(--md-dialog-with-icon-icon-color, var(--md-sys-color-secondary, #625b71));--_with-icon-icon-size: var(--md-dialog-with-icon-icon-size, 24px);--_container-max-inline-size: var(--md-dialog-container-max-inline-size, min(560px, 100% - 48px));--_container-min-inline-size: var(--md-dialog-container-min-inline-size, 280px);--_container-max-block-size: var(--md-dialog-container-max-block-size, min(560px, 100% - 48px));--_container-min-block-size: var(--md-dialog-container-min-block-size, 140px);--_container-inset-inline-start: var(--md-dialog-container-inset-inline-start, auto);--_container-inset-inline-end: var(--md-dialog-container-inset-inline-end, auto);--_container-inset-block-start: var(--md-dialog-container-inset-block-start, auto);--_container-inset-block-end: var(--md-dialog-container-inset-block-end, auto);--_opening-transition-duration: var(--md-dialog-opening-transition-duration, 400ms);--_opening-transition-easing: var(--md-dialog-opening-transition-easing, cubic-bezier(0.05, 0.7, 0.1, 1));--_closing-transition-duration: var(--md-dialog-closing-transition-duration, 200ms);--_closing-transition-easing: var(--md-dialog-closing-transition-easing, cubic-bezier(0.3, 0, 0.8, 0.15));--_scrim-color: var(--md-dialog-scrim-color, rgba(0, 0, 0, 0.32));--_container-block-padding: var(--md-dialog-container-block-padding, 24px);--_container-inline-padding: var(--md-dialog-container-inline-padding, 24px);--_header-spacing: var(--md-dialog-header-spacing, 16px);--_action-spacing: var(--md-dialog-action-spacing, 8px);--_content-block-start-spacing: var(--md-dialog-content-block-start-spacing, 16px);--_content-block-end-spacing: var(--md-dialog-content-block-end-spacing, 24px);--_with-divider-divider-height: var(--md-dialog-with-divider-divider-height, 1px);--_with-divider-divider-color: var(--md-dialog-with-divider-divider-color, var(--md-sys-color-outline, #79747e));--_fullscreen-header-block-size: var(--md-dialog-fullscreen-header-block-size, 56px);--_fullscreen-footer-block-size: var(--md-dialog-fullscreen-footer-block-size, 56px);--_fullscreen-container-block-padding: var(--md-dialog-fullscreen-container-block-padding, 8px);--_container-drag-inline-start: initial;--_container-drag-block-start: initial}@media(prefers-reduced-motion: reduce){:host{--_opening-transition-duration: 0;--_closing-transition-duration: 0}}.dialog{position:fixed;align-items:center;justify-content:center;box-sizing:border-box;inset:0;block-size:100vh;inline-size:100vw;max-block-size:100vh;max-inline-size:100vw;border:none;background:rgba(0,0,0,0);padding:0;margin:0;overflow:clip}.dialog:not(:modal){z-index:10000;pointer-events:none}.dialog[open]{display:flex}.dialog::backdrop{background:none}.dialog::before{content:\"\";position:absolute;z-index:-1;inset:0;block-size:100vh;inline-size:100vw;pointer-events:none}:host([modeless]) .dialog:before{display:none}.container{position:absolute;inset-inline-start:var(--_container-drag-inline-start, var(--_container-inset-inline-start));inset-inline-end:var(--_container-inset-inline-end);inset-block-start:var(--_container-drag-block-start, var(--_container-inset-block-start));inset-block-end:var(--_container-inset-block-end);background-color:var(--_container-color);border-radius:var(--_container-shape);display:flex;flex-direction:column;box-sizing:border-box;pointer-events:auto;min-block-size:var(--_container-min-block-size);max-block-size:var(--_container-max-block-size);min-inline-size:var(--_container-min-inline-size);max-inline-size:var(--_container-max-inline-size);padding-block-start:var(--_container-block-padding);padding-block-end:var(--_container-block-padding)}md-elevation{position:absolute;inset:0;pointer-events:none;border-radius:inherit;--md-elevation-level: var(--_container-elevation);--md-elevation-surface-tine-color: var( --_container-surface-tint-layer-color )}.container>*{box-sizing:border-box;padding-inline-start:var(--_container-inline-padding);padding-inline-end:var(--_container-inline-padding)}.header{display:flex;flex-direction:column;align-items:center;gap:var(--_header-spacing);-webkit-font-smoothing:antialiased;color:var(--_headline-color);font:var(--_headline-type)}.content{flex:1;overflow:auto;margin-block-start:var(--_content-block-start-spacing);margin-block-end:var(--_content-block-end-spacing);-webkit-font-smoothing:antialiased;color:var(--_supporting-text-color);font:var(--_supporting-text-type)}.footer{display:flex;position:relative;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;gap:var(--_action-spacing)}.footerHidden{--_content-block-end-spacing: 0px}.footerHidden .footer{display:none}.stacked .footer{flex-direction:column;align-items:flex-end}.scrollable .content{border-block-start:var(--_with-divider-divider-height) solid rgba(0,0,0,0);border-block-end:var(--_with-divider-divider-height) solid rgba(0,0,0,0)}.scroll-divider-header .content{border-block-start-color:var(--_with-divider-divider-color)}.scroll-divider-footer:not(.footerHidden) .content{border-block-end-color:var(--_with-divider-divider-color)}.dragging{user-select:none;cursor:move;touch-action:none}.container{will-change:transform,opacity;transition-property:transform;overflow:hidden}.container>*{transition-timing-function:inherit;transition-duration:inherit;transition-property:opacity,transform;will-change:transform,opacity;opacity:0}:host([transition][showing-open]) .container>*{opacity:1;transform:none}:host([transition][showing-open]) .container{opacity:1;transform:none}.dialog::before{transition:background-color linear;background-color:rgba(0,0,0,0)}:host([showing-open]) .dialog::before{background-color:var(--_scrim-color)}:host([opening]) .dialog::before{transition-duration:calc(var(--_opening-transition-duration)/2)}:host([closing]) .dialog::before{transition-duration:calc(var(--_closing-transition-duration)/2)}:host([opening]) .container{transition-duration:var(--_opening-transition-duration);transition-timing-function:var(--_opening-transition-easing)}:host([closing]) .container{transition-duration:var(--_closing-transition-duration);transition-timing-function:var(--_closing-transition-easing)}:host([trasition][closing]) .container>*{transform:none;opacity:0}:host([transition=grow-down]){--_opening-transform: scale(1, 0.1) translateY(-20%);--_closing-transform: scale(1, 0.9) translateY(-10%);--_origin: top;--_opening-content-transform: scale(1, 2);--_origin-footer: bottom}:host([transition=grow-up]){--_opening-transform: scale(1, 0.1) translateY(20%);--_closing-transform: scale(1, 0.9) translateY(10%);--_origin: bottom;--_opening-content-transform: scale(1, 2);--_origin-footer: bottom}:host([transition=grow-left]){--_opening-transform: scale(0.1, 1) translateX(20%);--_closing-transform: scale(0.9, 1) translateX(10%);--_origin: right;--_opening-content-transform: none;--_origin-footer: none}:host([transition=grow-right]){--_opening-transform: scale(0.1, 1) translateX(-20%);--_closing-transform: scale(0.9, 1) translateX(-10%);--_origin: left;--_opening-content-transform: none;--_origin-footer: none}:host([transition^=grow-]) .container{transform-origin:var(--_origin);transform:var(--_opening-transform)}:host([transition^=grow-]) .container>*{transform-origin:var(--_origin);transform:var(--_opening-content-transform)}:host([transition^=grow-]) .footer{transform-origin:var(--_origin-footer)}:host([transition^=grow-][closing]){transform:var(--_closing-transform)}:host([transition=shrink]) .container{transform:scale(1.2)}:host([transition=grow]) .container{transform:scale(0.8)}:host([transition=shrink][closing]) .container,:host([transition=grow][closing]) .container{transition-duration:0;transform:none}:host([showing-fullscreen]){--_container-max-block-size: none;--_container-max-inline-size: none}:host([showing-fullscreen]) .container{block-size:100vh;inline-size:100vw;border-radius:0px;padding-block-start:0;padding-block-end:0}:host([showing-fullscreen]) .header{justify-content:space-between;flex-direction:row;max-block-size:var(--_fullscreen-header-block-size);padding-block-start:var(--_fullscreen-container-block-padding);padding-inline:4px;--_header-spacing: 4px}:host([showing-fullscreen]) .content{margin-block-start:0;margin-block-end:0}:host([showing-fullscreen]) .footer{max-block-size:var(--_fullscreen-footer-block-size);padding-block-end:var(--_fullscreen-container-block-padding)}:host([showing-fullscreen]) .scroll-divider-footer .content{border-block-end-color:rgba(0,0,0,0)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.container{outline:windowtext solid 2px}}[name=headline-prefix]::slotted(*),[name=headline-suffix]::slotted(*){color:var(--_with-icon-icon-color);font-size:var(--_with-icon-icon-size)}[name=header]::slotted(*){flex:1;align-self:stretch;display:flex;align-items:center}:host([showing-fullscreen]) [name=headline]::slotted(*){flex:1}/*# sourceMappingURL=dialog-styles.css.map */\n`;\n//# sourceMappingURL=dialog-styles.css.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdElevation } from '../elevation/elevation.js';\n\nimport { Dialog } from '@material/web/dialog/lib/dialog.js';\nimport { styles } from '@material/web/dialog/lib/dialog-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-dialog': MdDialog;\n  }\n}\n\n/**\n * @summary Dialogs can require an action, communicate information, or help\n * users accomplish a task. There are two types of dialogs: basic and\n * full-screen.\n *\n * @description\n * A dialog is a modal window that appears in front of app content to provide\n * critical information or ask for a decision. Dialogs disable all app\n * functionality when they appear, and remain on screen until confirmed,\n * dismissed, or a required action has been taken.\n *\n * Dialogs are purposefully interruptive, so they should be used sparingly.\n * A less disruptive alternative is to use a menu, which provides options\n * without interrupting a user’s experience.\n *\n * On mobile devices only, complex dialogs should be displayed fullscreen.\n *\n * __Example usages:__\n * - Common use cases for basic dialogs include alerts, quick selection, and\n * confirmation.\n * - More complex dialogs may contain actions that require a series of tasks\n * to complete. One example is creating a calendar entry with the event title,\n * date, location, and time.\n */\nexport class MdDialog extends ScopedElementsMixin(Dialog) {\n  static override styles = [styles];\n\n  static get scopedElements() {\n    return {\n      'md-elevation': MdElevation,\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n/**\n * A divider component.\n */\nexport class Divider extends LitElement {\n    constructor() {\n        super(...arguments);\n        /**\n         * Indents the divider with equal padding on both sides.\n         */\n        this.inset = false;\n        /**\n         * Indents the divider with padding on the leading side.\n         */\n        this.insetStart = false;\n        /**\n         * Indents the divider with padding on the trailing side.\n         */\n        this.insetEnd = false;\n    }\n}\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Divider.prototype, \"inset\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true, attribute: 'inset-start' }),\n    __metadata(\"design:type\", Object)\n], Divider.prototype, \"insetStart\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true, attribute: 'inset-end' }),\n    __metadata(\"design:type\", Object)\n], Divider.prototype, \"insetEnd\", void 0);\n//# sourceMappingURL=divider.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_color: var(--md-divider-color, var(--md-sys-color-outline-variant, #cac4d0));--_thickness: var(--md-divider-thickness, 1px);box-sizing:border-box;color:var(--_color);display:flex;height:var(--_thickness);width:100%}:host([inset]),:host([inset-start]){padding-inline-start:16px}:host([inset]),:host([inset-end]){padding-inline-end:16px}:host::before{background:currentColor;content:\"\";height:100%;width:100%}@media(forced-colors: active){:host::before{background:CanvasText}}/*# sourceMappingURL=divider-styles.css.map */\n`;\n//# sourceMappingURL=divider-styles.css.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {Divider} from '@material/web/divider/lib/divider.js';\nimport {styles} from '@material/web/divider/lib/divider-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-divider': MdDivider;\n  }\n}\n\n/**\n * @summary A divider is a thin line that groups content in lists and\n * containers.\n *\n * @description Dividers can reinforce tapability, such as when used to separate\n * list items or define tappable regions in an accordion.\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdDivider extends Divider {\n  static override styles = [styles];\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { html, LitElement } from 'lit';\n/** @soyCompatible */\nexport class Icon extends LitElement {\n    /** @soyTemplate */\n    render() {\n        return html `<span><slot></slot></span>`;\n    }\n}\n//# sourceMappingURL=icon.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_color: var(--md-icon-color, inherit);--_font: var(--md-icon-font, \"Material Icons\");--_font-variation-settings: var(--md-icon-font-variation-settings, inherit);--_size: var(--md-icon-size, 24px);--_weight: var(--md-icon-weight, 400);display:inline-flex;color:var(--_color);font-family:var(--_font);font-weight:var(--_weight);font-style:normal;font-size:var(--_size);font-variation-settings:var(--_font-varation-settings);line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}span ::slotted(svg){fill:currentColor}span ::slotted(*){height:var(--_size);width:var(--_size)}/*# sourceMappingURL=icon-styles.css.map */\n`;\n//# sourceMappingURL=icon-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport {Icon} from '@material/web/icon/lib/icon.js';\nimport {styles} from '@material/web/icon/lib/icon-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-icon': MdIcon;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdIcon extends Icon {\n  static override styles = [styles];\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport '../../elevation/elevation.js';\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\nimport { html, LitElement } from 'lit';\nimport { property, queryAsync, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { when } from 'lit/directives/when.js';\nimport { pointerPress, shouldShowStrongFocus } from '../../focus/strong-focus.js';\nimport { ripple } from '../../ripple/directive.js';\n/**\n * @soyCompatible\n */\nexport class FabShared extends LitElement {\n    constructor() {\n        super(...arguments);\n        this.disabled = false;\n        this.icon = '';\n        this.label = '';\n        this.lowered = false;\n        this.reducedTouchTarget = false;\n        this.showFocusRing = false;\n        this.showRipple = false;\n        this.renderRipple = () => {\n            return html `<md-ripple class=\"md3-fab__ripple\" ?disabled=\"${this.disabled}\"></md-ripple>`;\n        };\n    }\n    /**\n     * @soyTemplate\n     * @soyClasses fabClasses: .md3-fab\n     */\n    render() {\n        const ariaLabel = this.label ? this.label : this.icon;\n        const getRipple = () => {\n            this.showRipple = true;\n            return this.ripple;\n        };\n        return html `\n      <button\n        class=\"md3-fab md3-surface ${classMap(this.getRenderClasses())}\"\n        ?disabled=\"${this.disabled}\"\n        aria-label=\"${ariaLabel}\"\n        @focus=\"${this.handleFocus}\"\n        @blur=\"${this.handleBlur}\"\n        @pointerdown=\"${this.handlePointerDown}\"\n        ${ripple(getRipple)}>\n        ${this.renderElevation()}\n        ${this.renderFocusRing()}\n        ${when(this.showRipple, this.renderRipple)}\n        <span class=\"md3-fab__icon\">\n          <slot name=\"icon\">${this.renderIcon(this.icon)}</slot>\n        </span>\n        ${this.renderLabel()}\n        ${this.renderTouchTarget()}\n      </button>`;\n    }\n    /** @soyTemplate */\n    getRenderClasses() {\n        return { 'md3-fab--lowered': this.lowered };\n    }\n    /** @soyTemplate */\n    renderTouchTarget() {\n        return this.reducedTouchTarget ? html `` :\n            html `<div class=\"md3-fab__touch\"></div>`;\n    }\n    /** @soyTemplate */\n    renderLabel() {\n        return '';\n    }\n    /** @soyTemplate */\n    renderElevation() {\n        return html `<md-elevation shadow surface></md-elevation>`;\n    }\n    /** @soyTemplate */\n    renderFocusRing() {\n        return html `<md-focus-ring .visible=\"${this.showFocusRing}\"></md-focus-ring>`;\n    }\n    handlePointerDown(e) {\n        pointerPress();\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handleFocus() {\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handleBlur() {\n        this.showFocusRing = false;\n    }\n}\nFabShared.shadowRootOptions = { mode: 'open', delegatesFocus: true };\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], FabShared.prototype, \"disabled\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], FabShared.prototype, \"icon\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], FabShared.prototype, \"label\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], FabShared.prototype, \"lowered\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], FabShared.prototype, \"reducedTouchTarget\", void 0);\n__decorate([\n    queryAsync('md-ripple'),\n    __metadata(\"design:type\", Promise)\n], FabShared.prototype, \"ripple\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], FabShared.prototype, \"showFocusRing\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], FabShared.prototype, \"showRipple\", void 0);\n//# sourceMappingURL=fab-shared.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { FabShared } from './fab-shared.js';\n/**\n * @soyCompatible\n */\nexport class Fab extends FabShared {\n    /** @soyTemplate */\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-fab--regular': true,\n        };\n    }\n    /** @soyTemplate */\n    renderIcon(icon) {\n        return '';\n    }\n}\n//# sourceMappingURL=fab.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{display:inline-flex;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);vertical-align:top}:host([disabled]){cursor:default;pointer-events:none}.md3-fab{display:inline-flex;border:none;outline:none;user-select:none;-webkit-appearance:none;vertical-align:middle;text-decoration:none;align-items:center;justify-content:center;position:relative;z-index:0;background-color:var(--_container-color);--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, var(--_container-shape-start-start));--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, var(--_container-shape-start-end));--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, var(--_container-shape-end-end));--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, var(--_container-shape-end-start));--md-ripple-hover-color:var(--_hover-state-layer-color);--md-ripple-focus-color:var(--_focus-state-layer-color);--md-ripple-pressed-color:var(--_pressed-state-layer-color);--md-ripple-hover-opacity:var(--_hover-state-layer-opacity);--md-ripple-focus-opacity:var(--_focus-state-layer-opacity);--md-ripple-pressed-opacity:var(--_pressed-state-layer-opacity);--md-elevation-duration:280ms;--md-elevation-level:var(--_container-elevation);--md-elevation-shadow-color:var(--_container-shadow-color);--md-elevation-surface-tint:var(--_container-surface-tint-layer-color)}.md3-fab.md3-fab--lowered{--md-elevation-level:var(--_lowered-container-elevation)}.md3-fab:focus{--md-elevation-level:var(--_focus-container-elevation)}.md3-fab:focus.md3-fab--lowered{--md-elevation-level:var(--_lowered-focus-container-elevation)}.md3-fab:hover{cursor:pointer;--md-elevation-level:var(--_hover-container-elevation)}.md3-fab:hover.md3-fab--lowered{--md-elevation-level:var(--_lowered-hover-container-elevation)}.md3-fab:active{outline:none;--md-elevation-level:var(--_pressed-container-elevation)}.md3-fab:active.md3-fab--lowered{--md-elevation-level:var(--_lowered-pressed-container-elevation)}md-elevation{inset:0;position:absolute;z-index:-1}.md3-fab__ripple{overflow:hidden;z-index:-1}.md3-fab,.md3-fab__ripple{border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-start-radius:var(--_container-shape-end-start);border-end-end-radius:var(--_container-shape-end-end)}.md3-fab__icon{display:inline-flex}.md3-fab__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.md3-fab__icon ::slotted(*),.md3-fab__icon{color:var(--_icon-color);font-size:var(--_icon-size);height:var(--_icon-size);width:var(--_icon-size)}.md3-fab:hover .md3-fab__icon ::slotted(*),.md3-fab:hover .md3-fab__icon{color:var(--_hover-icon-color)}.md3-fab:focus .md3-fab__icon ::slotted(*),.md3-fab:focus .md3-fab__icon{color:var(--_focus-icon-color)}.md3-fab:active .md3-fab__icon ::slotted(*),.md3-fab:active .md3-fab__icon{color:var(--_pressed-icon-color)}@media(forced-colors: active){.md3-fab{--md-focus-ring-offset-vertical:3px;--md-focus-ring-offset-horizontal:3px;border:1px solid ButtonText}}/*# sourceMappingURL=fab-shared-styles.css.map */\n`;\n//# sourceMappingURL=fab-shared-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-fab-container-shape-start-start, var(--md-fab-container-shape, 16px));--_container-shape-start-end: var(--md-fab-container-shape-start-end, var(--md-fab-container-shape, 16px));--_container-shape-end-end: var(--md-fab-container-shape-end-end, var(--md-fab-container-shape, 16px));--_container-shape-end-start: var(--md-fab-container-shape-end-start, var(--md-fab-container-shape, 16px));--_container-color: var(--md-fab-container-color, var(--md-sys-color-surface, #fffbfe));--_container-elevation: var(--md-fab-container-elevation, 3);--_container-height: var(--md-fab-container-height, 56px);--_container-shadow-color: var(--md-fab-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-surface-tint-layer-color: var(--md-fab-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--_container-width: var(--md-fab-container-width, 56px);--_focus-container-elevation: var(--md-fab-focus-container-elevation, 3);--_focus-icon-color: var(--md-fab-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-color: var(--md-fab-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-opacity: var(--md-fab-focus-state-layer-opacity, 0.12);--_hover-container-elevation: var(--md-fab-hover-container-elevation, 4);--_hover-icon-color: var(--md-fab-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-color: var(--md-fab-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-opacity: var(--md-fab-hover-state-layer-opacity, 0.08);--_icon-color: var(--md-fab-icon-color, var(--md-sys-color-primary, #6750a4));--_icon-size: var(--md-fab-icon-size, 24px);--_lowered-container-elevation: var(--md-fab-lowered-container-elevation, 1);--_lowered-focus-container-elevation: var(--md-fab-lowered-focus-container-elevation, 1);--_lowered-hover-container-elevation: var(--md-fab-lowered-hover-container-elevation, 2);--_lowered-pressed-container-elevation: var(--md-fab-lowered-pressed-container-elevation, 1);--_pressed-container-elevation: var(--md-fab-pressed-container-elevation, 3);--_pressed-icon-color: var(--md-fab-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-color: var(--md-fab-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--md-fab-pressed-state-layer-opacity, 0.12)}.md3-fab{width:var(--_container-width);height:var(--_container-height)}.md3-fab--regular{padding:0}/*# sourceMappingURL=fab-styles.css.map */\n`;\n//# sourceMappingURL=fab-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdIcon } from '../icon/icon.js';\n\nimport { html, TemplateResult } from 'lit';\n\nimport { Fab } from '@material/web/fab/lib/fab.js';\nimport { styles as sharedStyles } from '@material/web/fab/lib/fab-shared-styles.css.js';\nimport { styles as fabStyles } from '@material/web/fab/lib/fab-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { MdElevation } from '../elevation/elevation.js';\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-fab': MdFab;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\n\nexport class MdFab extends ScopedElementsMixin(Fab) {\n  static override styles = [sharedStyles, fabStyles];\n\n  /** @soyTemplate */\n  protected override renderIcon(icon: string): TemplateResult | string {\n    return icon ? html`<md-icon class=\"md3-fab__icon\">${icon}</md-icon>` : '';\n  }\n\n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-elevation': MdElevation,\n      'md-focus-ring': MdFocusRing,\n      'md-ripple': MdRipple,\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { html } from 'lit';\nimport { FabShared } from './fab-shared.js';\n/**\n * @soyCompatible\n */\nexport class FabExtended extends FabShared {\n    /** @soyTemplate */\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-fab--extended': true,\n        };\n    }\n    /** @soyTemplate */\n    renderIcon(icon) {\n        return '';\n    }\n    /** @soyTemplate */\n    renderLabel() {\n        return html `<span class=\"md3-fab__label\">${this.label}</span>`;\n    }\n}\n//# sourceMappingURL=fab-extended.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-fab-extended-container-shape-start-start, var(--md-fab-extended-container-shape, 16px));--_container-shape-start-end: var(--md-fab-extended-container-shape-start-end, var(--md-fab-extended-container-shape, 16px));--_container-shape-end-end: var(--md-fab-extended-container-shape-end-end, var(--md-fab-extended-container-shape, 16px));--_container-shape-end-start: var(--md-fab-extended-container-shape-end-start, var(--md-fab-extended-container-shape, 16px));--_container-color: var(--md-fab-extended-container-color, var(--md-sys-color-surface, #fffbfe));--_container-elevation: var(--md-fab-extended-container-elevation, 3);--_container-height: var(--md-fab-extended-container-height, 56px);--_container-shadow-color: var(--md-fab-extended-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-surface-tint-layer-color: var(--md-fab-extended-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--_focus-container-elevation: var(--md-fab-extended-focus-container-elevation, 3);--_focus-icon-color: var(--md-fab-extended-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_focus-label-text-color: var(--md-fab-extended-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-color: var(--md-fab-extended-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-opacity: var(--md-fab-extended-focus-state-layer-opacity, 0.12);--_hover-container-elevation: var(--md-fab-extended-hover-container-elevation, 4);--_hover-icon-color: var(--md-fab-extended-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_hover-label-text-color: var(--md-fab-extended-hover-label-text-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-color: var(--md-fab-extended-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-opacity: var(--md-fab-extended-hover-state-layer-opacity, 0.08);--_icon-color: var(--md-fab-extended-icon-color, var(--md-sys-color-primary, #6750a4));--_icon-size: var(--md-fab-extended-icon-size, 24px);--_label-text-color: var(--md-fab-extended-label-text-color, var(--md-sys-color-primary, #6750a4));--_label-text-type: var(--md-fab-extended-label-text-type, 500 0.875rem / 1.25rem Roboto);--_lowered-container-elevation: var(--md-fab-extended-lowered-container-elevation, 1);--_lowered-focus-container-elevation: var(--md-fab-extended-lowered-focus-container-elevation, 1);--_lowered-hover-container-elevation: var(--md-fab-extended-lowered-hover-container-elevation, 2);--_lowered-pressed-container-elevation: var(--md-fab-extended-lowered-pressed-container-elevation, 1);--_pressed-container-elevation: var(--md-fab-extended-pressed-container-elevation, 3);--_pressed-icon-color: var(--md-fab-extended-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_pressed-label-text-color: var(--md-fab-extended-pressed-label-text-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-color: var(--md-fab-extended-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--md-fab-extended-pressed-state-layer-opacity, 0.12)}.md3-fab--extended{box-sizing:border-box;padding-inline-start:16px;padding-inline-end:20px;height:var(--_container-height);font:var(--_label-text-type)}.md3-fab__label{padding-inline-start:12px;color:var(--_label-text-color)}.md3-fab:hover .md3-fab__label{color:var(--_hover-label-text-color)}.md3-fab:focus .md3-fab__label{color:var(--_focus-label-text-color)}.md3-fab:active .md3-fab__label{color:var(--_pressed-label-text-color)}@media(forced-colors: active){.md3-fab--extended{padding-inline-start:15px;padding-inline-end:19px}}/*# sourceMappingURL=fab-extended-styles.css.map */\n`;\n//# sourceMappingURL=fab-extended-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdIcon } from '../icon/icon.js';\n\nimport { html, TemplateResult } from 'lit';\n\nimport { FabExtended } from '@material/web/fab/lib/fab-extended.js';\nimport { styles as extendedStyles } from '@material/web/fab/lib/fab-extended-styles.css.js';\nimport { styles as sharedStyles } from '@material/web/fab/lib/fab-shared-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { MdElevation } from '../elevation/elevation.js';\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-fab-extended': MdFabExtended;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdFabExtended extends ScopedElementsMixin(FabExtended) {\n  static override styles = [sharedStyles, extendedStyles];\n\n  /** @soyTemplate */\n  protected override renderIcon(icon: string): TemplateResult | string {\n    return icon ? html`<md-icon class=\"md3-fab__icon\">${icon}</md-icon>` : '';\n  }\n\n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing,\n      'md-elevation': MdElevation,\n    };\n  }\n}\n","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-filled-icon-button-container-shape-start-start, var(--md-filled-icon-button-container-shape, 9999px));--_container-shape-start-end: var(--md-filled-icon-button-container-shape-start-end, var(--md-filled-icon-button-container-shape, 9999px));--_container-shape-end-end: var(--md-filled-icon-button-container-shape-end-end, var(--md-filled-icon-button-container-shape, 9999px));--_container-shape-end-start: var(--md-filled-icon-button-container-shape-end-start, var(--md-filled-icon-button-container-shape, 9999px));--_container-color: var(--md-filled-icon-button-container-color, var(--md-sys-color-primary, #6750a4));--_container-size: var(--md-filled-icon-button-container-size, 40px);--_disabled-container-color: var(--md-filled-icon-button-disabled-container-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.12));--_disabled-icon-color: var(--md-filled-icon-button-disabled-icon-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_focus-icon-color: var(--md-filled-icon-button-focus-icon-color, var(--md-sys-color-on-primary, #fff));--_focus-state-layer-color: var(--md-filled-icon-button-focus-state-layer-color, var(--md-sys-color-on-primary, #fff));--_focus-state-layer-opacity: var(--md-filled-icon-button-focus-state-layer-opacity, 0.12);--_hover-icon-color: var(--md-filled-icon-button-hover-icon-color, var(--md-sys-color-on-primary, #fff));--_hover-state-layer-color: var(--md-filled-icon-button-hover-state-layer-color, var(--md-sys-color-on-primary, #fff));--_hover-state-layer-opacity: var(--md-filled-icon-button-hover-state-layer-opacity, 0.08);--_icon-color: var(--md-filled-icon-button-icon-color, var(--md-sys-color-on-primary, #fff));--_icon-size: var(--md-filled-icon-button-icon-size, 24px);--_pressed-icon-color: var(--md-filled-icon-button-pressed-icon-color, var(--md-sys-color-on-primary, #fff));--_pressed-state-layer-color: var(--md-filled-icon-button-pressed-state-layer-color, var(--md-sys-color-on-primary, #fff));--_pressed-state-layer-opacity: var(--md-filled-icon-button-pressed-state-layer-opacity, 0.12);--_selected-container-color: var(--md-filled-icon-button-selected-container-color, var(--md-sys-color-primary, #6750a4));--_toggle-selected-focus-icon-color: var(--md-filled-icon-button-toggle-selected-focus-icon-color, var(--md-sys-color-on-primary, #fff));--_toggle-selected-focus-state-layer-color: var(--md-filled-icon-button-toggle-selected-focus-state-layer-color, var(--md-sys-color-on-primary, #fff));--_toggle-selected-hover-icon-color: var(--md-filled-icon-button-toggle-selected-hover-icon-color, var(--md-sys-color-on-primary, #fff));--_toggle-selected-hover-state-layer-color: var(--md-filled-icon-button-toggle-selected-hover-state-layer-color, var(--md-sys-color-on-primary, #fff));--_toggle-selected-icon-color: var(--md-filled-icon-button-toggle-selected-icon-color, var(--md-sys-color-on-primary, #fff));--_toggle-selected-pressed-icon-color: var(--md-filled-icon-button-toggle-selected-pressed-icon-color, var(--md-sys-color-on-primary, #fff));--_toggle-selected-pressed-state-layer-color: var(--md-filled-icon-button-toggle-selected-pressed-state-layer-color, var(--md-sys-color-on-primary, #fff));--_toggle-unselected-focus-icon-color: var(--md-filled-icon-button-toggle-unselected-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_toggle-unselected-focus-state-layer-color: var(--md-filled-icon-button-toggle-unselected-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_toggle-unselected-hover-icon-color: var(--md-filled-icon-button-toggle-unselected-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_toggle-unselected-hover-state-layer-color: var(--md-filled-icon-button-toggle-unselected-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_toggle-unselected-icon-color: var(--md-filled-icon-button-toggle-unselected-icon-color, var(--md-sys-color-primary, #6750a4));--_toggle-unselected-pressed-icon-color: var(--md-filled-icon-button-toggle-unselected-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_toggle-unselected-pressed-state-layer-color: var(--md-filled-icon-button-toggle-unselected-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_unselected-container-color: var(--md-filled-icon-button-unselected-container-color, var(--md-sys-color-surface-variant, #e7e0ec));--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, var(--_container-shape-start-start));--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, var(--_container-shape-start-end));--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, var(--_container-shape-end-end));--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, var(--_container-shape-end-start)))))}.md3-icon-button{background-color:var(--_container-color);color:var(--_icon-color);--md-ripple-focus-color:var(--_focus-state-layer-color);--md-ripple-focus-opacity:var(--_focus-state-layer-opacity);--md-ripple-hover-color:var(--_hover-state-layer-color);--md-ripple-hover-opacity:var(--_hover-state-layer-opacity);--md-ripple-pressed-color:var(--_pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_pressed-state-layer-opacity)}.md3-icon-button:hover{color:var(--_hover-icon-color)}.md3-icon-button:focus{color:var(--_focus-icon-color)}.md3-icon-button:active{color:var(--_pressed-icon-color)}.md3-icon-button:disabled{background-color:var(--_disabled-container-color);color:var(--_disabled-icon-color)}.md3-icon-button--toggle-filled{--md-ripple-focus-color:var(--_toggle-unselected-focus-state-layer-color);--md-ripple-hover-color:var(--_toggle-unselected-hover-state-layer-color);--md-ripple-pressed-color:var(--_toggle-unselected-pressed-state-layer-color)}.md3-icon-button--toggle-filled:not(:disabled){background-color:var(--_unselected-container-color);color:var(--_toggle-unselected-icon-color)}.md3-icon-button--toggle-filled:not(:disabled):hover{color:var(--_toggle-unselected-hover-icon-color)}.md3-icon-button--toggle-filled:not(:disabled):focus{color:var(--_toggle-unselected-focus-icon-color)}.md3-icon-button--toggle-filled:not(:disabled):active{color:var(--_toggle-unselected-pressed-icon-color)}.md3-icon-button--selected{--md-ripple-focus-color:var(--_toggle-selected-focus-state-layer-color);--md-ripple-hover-color:var(--_toggle-selected-hover-state-layer-color);--md-ripple-pressed-color:var(--_toggle-selected-pressed-state-layer-color)}.md3-icon-button--selected:not(:disabled){background-color:var(--_selected-container-color);color:var(--_toggle-selected-icon-color)}.md3-icon-button--selected:not(:disabled):hover{color:var(--_toggle-selected-hover-icon-color)}.md3-icon-button--selected:not(:disabled):focus{color:var(--_toggle-selected-focus-icon-color)}.md3-icon-button--selected:not(:disabled):active{color:var(--_toggle-selected-pressed-icon-color)}/*# sourceMappingURL=filled-styles.css.map */\n`;\n//# sourceMappingURL=filled-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Icon } from './lib/icon.js';\nimport { styles } from './lib/icon-styles.css.js';\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nlet MdIcon = class MdIcon extends Icon {\n};\nMdIcon.styles = [styles];\nMdIcon = __decorate([\n    customElement('md-icon')\n], MdIcon);\nexport { MdIcon };\n//# sourceMappingURL=icon.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\n// This is required for @ariaProperty\n// tslint:disable:no-new-decorators\nimport '../../focus/focus-ring.js';\nimport '../../icon/icon.js';\nimport '../../ripple/ripple.js';\nimport { html, LitElement } from 'lit';\nimport { property, query, queryAsync, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { when } from 'lit/directives/when.js';\nimport { isRtl } from '../../controller/is-rtl.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\nimport { pointerPress, shouldShowStrongFocus } from '../../focus/strong-focus.js';\nimport { ripple } from '../../ripple/directive.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class IconButton extends LitElement {\n    constructor() {\n        super(...arguments);\n        /**\n         * Disables the icon button and makes it non-interactive.\n         */\n        this.disabled = false;\n        /**\n         * Flips the icon if it is in an RTL context at startup.\n         */\n        this.flipIconInRtl = false;\n        this.flipIcon = isRtl(this, this.flipIconInRtl);\n        this.showFocusRing = false;\n        this.showRipple = false;\n        this.getRipple = () => {\n            this.showRipple = true;\n            return this.ripple;\n        };\n        this.renderRipple = () => {\n            return html `<md-ripple ?disabled=\"${this.disabled}\"></md-ripple>`;\n        };\n    }\n    render() {\n        return html `<button\n        class=\"md3-icon-button ${classMap(this.getRenderClasses())}\"\n        aria-label=\"${ifDefined(this.ariaLabel)}\"\n        aria-haspopup=\"${ifDefined(this.ariaHasPopup)}\"\n        ?disabled=\"${this.disabled}\"\n        @focus=\"${this.handleFocus}\"\n        @blur=\"${this.handleBlur}\"\n        @pointerdown=\"${this.handlePointerDown}\"\n        ${ripple(this.getRipple)}>\n        ${this.renderFocusRing()}\n        ${when(this.showRipple, this.renderRipple)}\n        ${this.renderIcon()}\n        ${this.renderTouchTarget()}\n  </button>`;\n    }\n    getRenderClasses() {\n        return {\n            'md3-icon-button--flip-icon': this.flipIcon,\n        };\n    }\n    renderIcon() {\n        // Note, it's important not to render the icon property as a slot fallback\n        // to avoid any whitespace from overridding it.\n        return html `<md-icon class=\"md3-icon-button__icon\"><slot></slot></md-icon>`;\n    }\n    renderTouchTarget() {\n        return html `<span class=\"md3-icon-button__touch\"></span>`;\n    }\n    renderFocusRing() {\n        return html `<md-focus-ring .visible=\"${this.showFocusRing}\"></md-focus-ring>`;\n    }\n    connectedCallback() {\n        this.flipIcon = isRtl(this, this.flipIconInRtl);\n        super.connectedCallback();\n    }\n    handlePointerDown() {\n        pointerPress();\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handleFocus() {\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handleBlur() {\n        this.showFocusRing = false;\n    }\n}\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], IconButton.prototype, \"disabled\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], IconButton.prototype, \"flipIconInRtl\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Boolean)\n], IconButton.prototype, \"flipIcon\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-label' }),\n    __metadata(\"design:type\", String)\n], IconButton.prototype, \"ariaLabel\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-haspopup' }),\n    __metadata(\"design:type\", String)\n], IconButton.prototype, \"ariaHasPopup\", void 0);\n__decorate([\n    query('button'),\n    __metadata(\"design:type\", HTMLElement)\n], IconButton.prototype, \"buttonElement\", void 0);\n__decorate([\n    queryAsync('md-ripple'),\n    __metadata(\"design:type\", Promise)\n], IconButton.prototype, \"ripple\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], IconButton.prototype, \"showFocusRing\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], IconButton.prototype, \"showRipple\", void 0);\n//# sourceMappingURL=icon-button.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{display:inline-flex;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);height:max(48px,var(--_container-size));width:max(48px,var(--_container-size));align-items:center;justify-content:center}:host([disabled]){pointer-events:none}.md3-icon-button{align-items:center;border:none;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;outline:none;position:relative;text-decoration:none;user-select:none;z-index:0;height:var(--_container-size);width:var(--_container-size);border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-start-radius:var(--_container-shape-end-start);border-end-end-radius:var(--_container-shape-end-end)}.md3-icon-button__icon{--md-icon-size:var(--_icon-size);--md-icon-weight:inherit}md-ripple{z-index:-1;border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-start-radius:var(--_container-shape-end-start);border-end-end-radius:var(--_container-shape-end-end)}.md3-icon-button--flip-icon .md3-icon-button__icon{transform:scaleX(-1)}.md3-icon-button__icon{display:inline-flex}.md3-icon-button__link{height:100%;outline:none;position:absolute;width:100%}.md3-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}/*# sourceMappingURL=shared-styles.css.map */\n`;\n//# sourceMappingURL=shared-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdIcon } from '../icon/icon.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {styles} from '@material/web/iconbutton/lib/filled-styles.css.js';\nimport {IconButton} from '@material/web/iconbutton/lib/icon-button.js';\nimport {styles as sharedStyles} from '@material/web/iconbutton/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-filled-icon-button': MdFilledIconButton;\n  }\n}\n\n/**\n * @summary Icon buttons help people take supplementary actions with a single\n * tap.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence.\n *\n * __Rationale:__ The most compact and unobtrusive type of button, icon buttons\n * are used for optional supplementary actions such as \"Bookmark\" or \"Star.\"\n *\n * __Example usages:__\n * - Add to Favorites\n * - Print\n */\nexport class MdFilledIconButton extends ScopedElementsMixin(IconButton) {\n  static override styles = [sharedStyles, styles];\n\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-icon-button--filled': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\n// Required for @ariaProperty\n// tslint:disable:no-new-decorators\nimport '../../focus/focus-ring.js';\nimport '../../icon/icon.js';\nimport '../../ripple/ripple.js';\nimport { html, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { when } from 'lit/directives/when.js';\nimport { ripple } from '../../ripple/directive.js';\nimport { IconButton } from './icon-button.js';\n/**\n * @fires change {Event}\n * Dispatched whenever `selected` is changed via user click\n *\n * @fires input {InputEvent}\n * Dispatched whenever `selected` is changed via user click\n */\nexport class IconButtonToggle extends IconButton {\n    constructor() {\n        super(...arguments);\n        /**\n         * Sets the selected state. When false, displays the default icon. When true,\n         * displays the `selectedIcon`, or the default icon If no `selectedIcon` is\n         * provided.\n         */\n        this.selected = false;\n    }\n    render() {\n        const hasToggledAriaLabel = this.ariaLabel && this.ariaLabelSelected;\n        const ariaPressedValue = hasToggledAriaLabel ? nothing : this.selected;\n        const ariaLabelValue = (hasToggledAriaLabel && this.selected) ?\n            this.ariaLabelSelected :\n            this.ariaLabel;\n        return html `<button\n          class=\"md3-icon-button ${classMap(this.getRenderClasses())}\"\n          aria-pressed=\"${ariaPressedValue}\"\n          aria-label=\"${ariaLabelValue || nothing}\"\n          ?disabled=\"${this.disabled}\"\n          @focus=\"${this.handleFocus}\"\n          @blur=\"${this.handleBlur}\"\n          @pointerdown=\"${this.handlePointerDown}\"\n          @click=\"${this.handleClick}\"\n          ${ripple(this.getRipple)}>\n        ${this.renderFocusRing()}\n        ${when(this.showRipple, this.renderRipple)}\n        ${this.renderTouchTarget()}\n        ${!this.selected ? this.renderIcon() : nothing}\n        ${this.selected ? this.renderSelectedIcon() : nothing}\n      </button>`;\n    }\n    renderSelectedIcon() {\n        // Use default slot as fallback to not require specifying multiple icons\n        return html `<md-icon class=\"md3-icon-button__icon md3-icon-button__icon--selected\"><slot name=\"selectedIcon\"><slot></slot></slot></md-icon>`;\n    }\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-icon-button--selected': this.selected,\n        };\n    }\n    handleClick() {\n        if (this.disabled) {\n            return;\n        }\n        this.selected = !this.selected;\n        this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));\n        // Bubbles but does not compose to mimic native browser <input> & <select>\n        // Additionally, native change event is not an InputEvent.\n        this.dispatchEvent(new Event('change', { bubbles: true }));\n    }\n}\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", String)\n], IconButtonToggle.prototype, \"ariaLabelSelected\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], IconButtonToggle.prototype, \"selected\", void 0);\n//# sourceMappingURL=icon-button-toggle.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdIcon } from '../icon/icon.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {styles} from '@material/web/iconbutton/lib/filled-styles.css.js';\nimport {IconButtonToggle} from '@material/web/iconbutton/lib/icon-button-toggle.js';\nimport {styles as sharedStyles} from '@material/web/iconbutton/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-filled-icon-button-toggle': MdFilledIconButtonToggle;\n  }\n}\n\n/**\n * @summary Icon buttons help people take supplementary actions with a single\n * tap. This variant can toggle between icons.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence.\n *\n * __Rationale:__ The most compact and unobtrusive type of button, icon buttons\n * are used for optional supplementary actions such as \"Bookmark\" or \"Star.\"\n *\n * __Example usages:__\n * - Add to Favorites\n * - Print\n */\nexport class MdFilledIconButtonToggle extends ScopedElementsMixin(IconButtonToggle) {\n  static override styles = [sharedStyles, styles];\n\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-icon-button--filled': true,\n      'md3-icon-button--toggle-filled': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { when } from 'lit/directives/when.js';\nimport { ripple } from '../../ripple/directive.js';\nimport { IconButton } from './icon-button.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class LinkIconButton extends IconButton {\n    constructor() {\n        super(...arguments);\n        /**\n         * Sets the underlying `HTMLAnchorElement`'s `href` resource attribute.\n         */\n        this.linkHref = '';\n        /**\n         * Link buttons cannot be disabled.\n         */\n        this.disabled = false;\n    }\n    willUpdate() {\n        this.disabled = false;\n    }\n    render() {\n        return html `<div\n        class=\"md3-icon-button ${classMap(this.getRenderClasses())}\"\n        @focus=\"${this.handleFocus}\"\n        @blur=\"${this.handleBlur}\"\n        @pointerdown=\"${this.handlePointerDown}\"\n        ${ripple(this.getRipple)}>\n        ${this.renderFocusRing()}\n        ${when(this.showRipple, this.renderRipple)}\n        ${this.renderIcon()}\n        ${this.renderTouchTarget()}\n      <a class=\"md3-icon-button__link\" href=\"${this.linkHref}\"\n          target=\"${ifDefined(this.linkTarget)}\"\n          aria-label=\"${ifDefined(this.ariaLabel)}\"\n          @focus=\"${this.handleFocus}\"\n          @blur=\"${this.handleBlur}\">\n      </a>\n    </div>`;\n    }\n}\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], LinkIconButton.prototype, \"linkHref\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", String)\n], LinkIconButton.prototype, \"linkTarget\", void 0);\n//# sourceMappingURL=link-icon-button.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdIcon } from '../icon/icon.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {styles} from '@material/web/iconbutton/lib/filled-styles.css.js';\nimport {LinkIconButton} from '@material/web/iconbutton/lib/link-icon-button.js';\nimport {styles as sharedStyles} from '@material/web/iconbutton/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-filled-link-icon-button': MdFilledLinkIconButton;\n  }\n}\n\n/**\n * @summary Icon buttons help people take supplementary actions with a single\n * tap. This is a linkable variant.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence.\n *\n * __Rationale:__ The most compact and unobtrusive type of button, icon buttons\n * are used for optional supplementary actions such as \"Bookmark\" or \"Star.\"\n *\n * __Example usages:__\n * - Add to Favorites\n * - Print\n */\nexport class MdFilledLinkIconButton extends ScopedElementsMixin(LinkIconButton) {\n  static override styles = [sharedStyles, styles];\n\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-icon-button--filled': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-filled-tonal-icon-button-container-shape-start-start, var(--md-filled-tonal-icon-button-container-shape, 9999px));--_container-shape-start-end: var(--md-filled-tonal-icon-button-container-shape-start-end, var(--md-filled-tonal-icon-button-container-shape, 9999px));--_container-shape-end-end: var(--md-filled-tonal-icon-button-container-shape-end-end, var(--md-filled-tonal-icon-button-container-shape, 9999px));--_container-shape-end-start: var(--md-filled-tonal-icon-button-container-shape-end-start, var(--md-filled-tonal-icon-button-container-shape, 9999px));--_container-color: var(--md-filled-tonal-icon-button-container-color, var(--md-sys-color-secondary-container, #e8def8));--_container-size: var(--md-filled-tonal-icon-button-container-size, 40px);--_disabled-container-color: var(--md-filled-tonal-icon-button-disabled-container-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.12));--_disabled-icon-color: var(--md-filled-tonal-icon-button-disabled-icon-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_focus-icon-color: var(--md-filled-tonal-icon-button-focus-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_focus-state-layer-color: var(--md-filled-tonal-icon-button-focus-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_focus-state-layer-opacity: var(--md-filled-tonal-icon-button-focus-state-layer-opacity, 0.12);--_hover-icon-color: var(--md-filled-tonal-icon-button-hover-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_hover-state-layer-color: var(--md-filled-tonal-icon-button-hover-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_hover-state-layer-opacity: var(--md-filled-tonal-icon-button-hover-state-layer-opacity, 0.08);--_icon-color: var(--md-filled-tonal-icon-button-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_icon-size: var(--md-filled-tonal-icon-button-icon-size, 24px);--_pressed-icon-color: var(--md-filled-tonal-icon-button-pressed-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_pressed-state-layer-color: var(--md-filled-tonal-icon-button-pressed-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_pressed-state-layer-opacity: var(--md-filled-tonal-icon-button-pressed-state-layer-opacity, 0.12);--_selected-container-color: var(--md-filled-tonal-icon-button-selected-container-color, var(--md-sys-color-secondary-container, #e8def8));--_toggle-selected-focus-icon-color: var(--md-filled-tonal-icon-button-toggle-selected-focus-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_toggle-selected-focus-state-layer-color: var(--md-filled-tonal-icon-button-toggle-selected-focus-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_toggle-selected-hover-icon-color: var(--md-filled-tonal-icon-button-toggle-selected-hover-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_toggle-selected-hover-state-layer-color: var(--md-filled-tonal-icon-button-toggle-selected-hover-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_toggle-selected-icon-color: var(--md-filled-tonal-icon-button-toggle-selected-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_toggle-selected-pressed-icon-color: var(--md-filled-tonal-icon-button-toggle-selected-pressed-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_toggle-selected-pressed-state-layer-color: var(--md-filled-tonal-icon-button-toggle-selected-pressed-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_toggle-unselected-focus-icon-color: var(--md-filled-tonal-icon-button-toggle-unselected-focus-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_toggle-unselected-focus-state-layer-color: var(--md-filled-tonal-icon-button-toggle-unselected-focus-state-layer-color, var(--md-sys-color-on-surface-variant, #49454f));--_toggle-unselected-hover-icon-color: var(--md-filled-tonal-icon-button-toggle-unselected-hover-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_toggle-unselected-hover-state-layer-color: var(--md-filled-tonal-icon-button-toggle-unselected-hover-state-layer-color, var(--md-sys-color-on-surface-variant, #49454f));--_toggle-unselected-icon-color: var(--md-filled-tonal-icon-button-toggle-unselected-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_toggle-unselected-pressed-icon-color: var(--md-filled-tonal-icon-button-toggle-unselected-pressed-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_toggle-unselected-pressed-state-layer-color: var(--md-filled-tonal-icon-button-toggle-unselected-pressed-state-layer-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-container-color: var(--md-filled-tonal-icon-button-unselected-container-color, var(--md-sys-color-surface-variant, #e7e0ec));--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, var(--_container-shape-start-start));--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, var(--_container-shape-start-end));--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, var(--_container-shape-end-end));--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, var(--_container-shape-end-start)))))}.md3-icon-button{background-color:var(--_container-color);color:var(--_icon-color);--md-ripple-focus-color:var(--_focus-state-layer-color);--md-ripple-focus-opacity:var(--_focus-state-layer-opacity);--md-ripple-hover-color:var(--_hover-state-layer-color);--md-ripple-hover-opacity:var(--_hover-state-layer-opacity);--md-ripple-pressed-color:var(--_pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_pressed-state-layer-opacity)}.md3-icon-button:hover{color:var(--_hover-icon-color)}.md3-icon-button:focus{color:var(--_focus-icon-color)}.md3-icon-button:active{color:var(--_pressed-icon-color)}.md3-icon-button:disabled{background-color:var(--_disabled-container-color);color:var(--_disabled-icon-color)}.md3-icon-button--toggle-filled-tonal{--md-ripple-focus-color:var(--_toggle-unselected-focus-state-layer-color);--md-ripple-hover-color:var(--_toggle-unselected-hover-state-layer-color);--md-ripple-pressed-color:var(--_toggle-unselected-pressed-state-layer-color)}.md3-icon-button--toggle-filled-tonal:not(:disabled){background-color:var(--_unselected-container-color);color:var(--_toggle-unselected-icon-color)}.md3-icon-button--toggle-filled-tonal:not(:disabled):hover{color:var(--_toggle-unselected-hover-icon-color)}.md3-icon-button--toggle-filled-tonal:not(:disabled):focus{color:var(--_toggle-unselected-focus-icon-color)}.md3-icon-button--toggle-filled-tonal:not(:disabled):active{color:var(--_toggle-unselected-pressed-icon-color)}.md3-icon-button--selected{--md-ripple-focus-color:var(--_toggle-selected-focus-state-layer-color);--md-ripple-hover-color:var(--_toggle-selected-hover-state-layer-color);--md-ripple-pressed-color:var(--_toggle-selected-pressed-state-layer-color)}.md3-icon-button--selected:not(:disabled){background-color:var(--_selected-container-color);color:var(--_toggle-selected-icon-color)}.md3-icon-button--selected:not(:disabled):hover{color:var(--_toggle-selected-hover-icon-color)}.md3-icon-button--selected:not(:disabled):focus{color:var(--_toggle-selected-focus-icon-color)}.md3-icon-button--selected:not(:disabled):active{color:var(--_toggle-selected-pressed-icon-color)}/*# sourceMappingURL=filled-tonal-styles.css.map */\n`;\n//# sourceMappingURL=filled-tonal-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdIcon } from '../icon/icon.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {styles} from '@material/web/iconbutton/lib/filled-tonal-styles.css.js';\nimport {IconButton} from '@material/web/iconbutton/lib/icon-button.js';\nimport {styles as sharedStyles} from '@material/web/iconbutton/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-filled-tonal-icon-button': MdFilledTonalIconButton;\n  }\n}\n\n/**\n * @summary Icon buttons help people take supplementary actions with a single\n * tap.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence.\n *\n * __Rationale:__ The most compact and unobtrusive type of button, icon buttons\n * are used for optional supplementary actions such as \"Bookmark\" or \"Star.\"\n *\n * __Example usages:__\n * - Add to Favorites\n * - Print\n */\n\nexport class MdFilledTonalIconButton extends ScopedElementsMixin(IconButton) {\n  static override styles = [sharedStyles, styles];\n\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-icon-button--filled-tonal': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdIcon } from '../icon/icon.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {styles} from '@material/web/iconbutton/lib/filled-tonal-styles.css.js';\nimport {IconButtonToggle} from '@material/web/iconbutton/lib/icon-button-toggle.js';\nimport {styles as sharedStyles} from '@material/web/iconbutton/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-filled-tonal-icon-button-toggle': MdFilledTonalIconButtonToggle;\n  }\n}\n\n/**\n * @summary Icon buttons help people take supplementary actions with a single\n * tap. This variant can toggle between icons.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence.\n *\n * __Rationale:__ The most compact and unobtrusive type of button, icon buttons\n * are used for optional supplementary actions such as \"Bookmark\" or \"Star.\"\n *\n * __Example usages:__\n * - Add to Favorites\n * - Print\n */\nexport class MdFilledTonalIconButtonToggle extends ScopedElementsMixin(IconButtonToggle) {\n  static override styles = [sharedStyles, styles];\n\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-icon-button--filled-tonal': true,\n      'md3-icon-button--toggle-filled-tonal': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdIcon } from '../icon/icon.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {styles} from '@material/web/iconbutton/lib/filled-tonal-styles.css.js';\nimport {LinkIconButton} from '@material/web/iconbutton/lib/link-icon-button.js';\nimport {styles as sharedStyles} from '@material/web/iconbutton/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-filled-tonal-link-icon-button': MdFilledTonalLinkIconButton;\n  }\n}\n\n/**\n * @summary Icon buttons help people take supplementary actions with a single\n * tap. This is a linkable variant.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence.\n *\n * __Rationale:__ The most compact and unobtrusive type of button, icon buttons\n * are used for optional supplementary actions such as \"Bookmark\" or \"Star.\"\n *\n * __Example usages:__\n * - Add to Favorites\n * - Print\n */\nexport class MdFilledTonalLinkIconButton extends ScopedElementsMixin(LinkIconButton) {\n  static override styles = [sharedStyles, styles];\n\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-icon-button--filled-tonal': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-outlined-icon-button-container-shape-start-start, var(--md-outlined-icon-button-container-shape, 9999px));--_container-shape-start-end: var(--md-outlined-icon-button-container-shape-start-end, var(--md-outlined-icon-button-container-shape, 9999px));--_container-shape-end-end: var(--md-outlined-icon-button-container-shape-end-end, var(--md-outlined-icon-button-container-shape, 9999px));--_container-shape-end-start: var(--md-outlined-icon-button-container-shape-end-start, var(--md-outlined-icon-button-container-shape, 9999px));--_container-size: var(--md-outlined-icon-button-container-size, 40px);--_disabled-icon-color: var(--md-outlined-icon-button-disabled-icon-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_disabled-selected-container-color: var(--md-outlined-icon-button-disabled-selected-container-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.12));--_disabled-unselected-outline-color: var(--md-outlined-icon-button-disabled-unselected-outline-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-unselected-outline-opacity: var(--md-outlined-icon-button-disabled-unselected-outline-opacity, 0.12);--_focus-state-layer-opacity: var(--md-outlined-icon-button-focus-state-layer-opacity, 0.08);--_hover-state-layer-opacity: var(--md-outlined-icon-button-hover-state-layer-opacity, 0.08);--_icon-size: var(--md-outlined-icon-button-icon-size, 24px);--_pressed-state-layer-opacity: var(--md-outlined-icon-button-pressed-state-layer-opacity, 0.12);--_selected-container-color: var(--md-outlined-icon-button-selected-container-color, var(--md-sys-color-inverse-surface, #313033));--_selected-focus-icon-color: var(--md-outlined-icon-button-selected-focus-icon-color, var(--md-sys-color-inverse-on-surface, #f4eff4));--_selected-focus-state-layer-color: var(--md-outlined-icon-button-selected-focus-state-layer-color, var(--md-sys-color-inverse-on-surface, #f4eff4));--_selected-hover-icon-color: var(--md-outlined-icon-button-selected-hover-icon-color, var(--md-sys-color-inverse-on-surface, #f4eff4));--_selected-hover-state-layer-color: var(--md-outlined-icon-button-selected-hover-state-layer-color, var(--md-sys-color-inverse-on-surface, #f4eff4));--_selected-icon-color: var(--md-outlined-icon-button-selected-icon-color, var(--md-sys-color-inverse-on-surface, #f4eff4));--_selected-pressed-icon-color: var(--md-outlined-icon-button-selected-pressed-icon-color, var(--md-sys-color-inverse-on-surface, #f4eff4));--_selected-pressed-state-layer-color: var(--md-outlined-icon-button-selected-pressed-state-layer-color, var(--md-sys-color-inverse-on-surface, #f4eff4));--_unselected-focus-icon-color: var(--md-outlined-icon-button-unselected-focus-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-focus-state-layer-color: var(--md-outlined-icon-button-unselected-focus-state-layer-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-hover-icon-color: var(--md-outlined-icon-button-unselected-hover-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-hover-state-layer-color: var(--md-outlined-icon-button-unselected-hover-state-layer-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-icon-color: var(--md-outlined-icon-button-unselected-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-outline-color: var(--md-outlined-icon-button-unselected-outline-color, var(--md-sys-color-outline, #79747e));--_unselected-outline-width: var(--md-outlined-icon-button-unselected-outline-width, 1px);--_unselected-pressed-icon-color: var(--md-outlined-icon-button-unselected-pressed-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-state-layer-color: var(--md-outlined-icon-button-unselected-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, var(--_container-shape-start-start));--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, var(--_container-shape-start-end));--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, var(--_container-shape-end-end));--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, var(--_container-shape-end-start)))))}.md3-icon-button--outlined{background-color:rgba(0,0,0,0);color:var(--_unselected-icon-color);--md-ripple-focus-color:var(--_unselected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_focus-state-layer-opacity);--md-ripple-hover-color:var(--_unselected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_hover-state-layer-opacity);--md-ripple-pressed-color:var(--_unselected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_pressed-state-layer-opacity)}.md3-icon-button--outlined::before{border-color:var(--_unselected-outline-color);border-width:var(--_unselected-outline-width)}.md3-icon-button--outlined:hover{color:var(--_unselected-hover-icon-color)}.md3-icon-button--outlined:focus{color:var(--_unselected-focus-icon-color)}.md3-icon-button--outlined:active{color:var(--_unselected-pressed-icon-color)}.md3-icon-button--outlined:disabled{color:var(--_disabled-icon-color)}.md3-icon-button--outlined:disabled::before{border-color:var(--_disabled-unselected-outline-color);opacity:var(--_disabled-unselected-outline-opacity)}.md3-icon-button--outlined::before{block-size:100%;border-style:solid;border-radius:inherit;box-sizing:border-box;content:\"\";inline-size:100%;inset:0;pointer-events:none;position:absolute}.md3-icon-button--outlined.md3-icon-button--selected::before{border-width:0}.md3-icon-button--selected{--md-ripple-focus-color:var(--_selected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_focus-state-layer-opacity);--md-ripple-hover-color:var(--_selected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_hover-state-layer-opacity);--md-ripple-pressed-color:var(--_selected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_pressed-state-layer-opacity)}.md3-icon-button--selected:not(:disabled){background-color:var(--_selected-container-color);color:var(--_selected-icon-color)}.md3-icon-button--selected:not(:disabled):hover{color:var(--_selected-hover-icon-color)}.md3-icon-button--selected:not(:disabled):focus{color:var(--_selected-focus-icon-color)}.md3-icon-button--selected:not(:disabled):active{color:var(--_selected-pressed-icon-color)}.md3-icon-button--selected:disabled{background-color:var(--_disabled-selected-container-color)}@media(forced-colors: active){.md3-icon-button--selected::before{border-color:var(--_unselected-outline-color);border-width:var(--_unselected-outline-width)}.md3-icon-button--selected:disabled::before{border-color:var(--_disabled-unselected-outline-color);opacity:var(--_disabled-unselected-outline-opacity)}}/*# sourceMappingURL=outlined-styles.css.map */\n`;\n//# sourceMappingURL=outlined-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdIcon } from '../icon/icon.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {IconButton} from '@material/web/iconbutton/lib/icon-button.js';\nimport {styles} from '@material/web/iconbutton/lib/outlined-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/iconbutton/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-outlined-icon-button': MdOutlinedIconButton;\n  }\n}\n\n/**\n * @summary Icon buttons help people take supplementary actions with a single\n * tap.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence.\n *\n * __Rationale:__ The most compact and unobtrusive type of button, icon buttons\n * are used for optional supplementary actions such as \"Bookmark\" or \"Star.\"\n *\n * __Example usages:__\n * - Add to Favorites\n * - Print\n */\nexport class MdOutlinedIconButton extends ScopedElementsMixin(IconButton) {\n  static override styles = [sharedStyles, styles];\n\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-icon-button--outlined': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdIcon } from '../icon/icon.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {IconButtonToggle} from '@material/web/iconbutton/lib/icon-button-toggle.js';\nimport {styles} from '@material/web/iconbutton/lib/outlined-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/iconbutton/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-outlined-icon-button-toggle': MdOutlinedIconButtonToggle;\n  }\n}\n\n/**\n * @summary Icon buttons help people take supplementary actions with a single\n * tap. This variant can toggle between icons.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence.\n *\n * __Rationale:__ The most compact and unobtrusive type of button, icon buttons\n * are used for optional supplementary actions such as \"Bookmark\" or \"Star.\"\n *\n * __Example usages:__\n * - Add to Favorites\n * - Print\n */\nexport class MdOutlinedIconButtonToggle extends ScopedElementsMixin(IconButtonToggle) {\n  static override styles = [sharedStyles, styles];\n\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-icon-button--outlined': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdIcon } from '../icon/icon.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {LinkIconButton} from '@material/web/iconbutton/lib/link-icon-button.js';\nimport {styles} from '@material/web/iconbutton/lib/outlined-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/iconbutton/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-outlined-link-icon-button': MdOutlinedLinkIconButton;\n  }\n}\n\n/**\n * @summary Icon buttons help people take supplementary actions with a single\n * tap. This is a linkable variant.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence.\n *\n * __Rationale:__ The most compact and unobtrusive type of button, icon buttons\n * are used for optional supplementary actions such as \"Bookmark\" or \"Star.\"\n *\n * __Example usages:__\n * - Add to Favorites\n * - Print\n */\nexport class MdOutlinedLinkIconButton extends ScopedElementsMixin(LinkIconButton) {\n  static override styles = [sharedStyles, styles];\n\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-icon-button--outlined': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_state-layer-shape-start-start: var(--md-icon-button-state-layer-shape-start-start, var(--md-icon-button-state-layer-shape, 9999px));--_state-layer-shape-start-end: var(--md-icon-button-state-layer-shape-start-end, var(--md-icon-button-state-layer-shape, 9999px));--_state-layer-shape-end-end: var(--md-icon-button-state-layer-shape-end-end, var(--md-icon-button-state-layer-shape, 9999px));--_state-layer-shape-end-start: var(--md-icon-button-state-layer-shape-end-start, var(--md-icon-button-state-layer-shape, 9999px));--_disabled-icon-color: var(--md-icon-button-disabled-icon-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_icon-size: var(--md-icon-button-icon-size, 24px);--_selected-focus-icon-color: var(--md-icon-button-selected-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-color: var(--md-icon-button-selected-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-opacity: var(--md-icon-button-selected-focus-state-layer-opacity, 0.12);--_selected-hover-icon-color: var(--md-icon-button-selected-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-color: var(--md-icon-button-selected-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-opacity: var(--md-icon-button-selected-hover-state-layer-opacity, 0.08);--_selected-icon-color: var(--md-icon-button-selected-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-icon-color: var(--md-icon-button-selected-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-state-layer-color: var(--md-icon-button-selected-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-state-layer-opacity: var(--md-icon-button-selected-pressed-state-layer-opacity, 0.12);--_state-layer-size: var(--md-icon-button-state-layer-size, 40px);--_unselected-focus-icon-color: var(--md-icon-button-unselected-focus-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-focus-state-layer-color: var(--md-icon-button-unselected-focus-state-layer-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-focus-state-layer-opacity: var(--md-icon-button-unselected-focus-state-layer-opacity, 0.12);--_unselected-hover-icon-color: var(--md-icon-button-unselected-hover-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-hover-state-layer-color: var(--md-icon-button-unselected-hover-state-layer-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-hover-state-layer-opacity: var(--md-icon-button-unselected-hover-state-layer-opacity, 0.08);--_unselected-icon-color: var(--md-icon-button-unselected-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-pressed-icon-color: var(--md-icon-button-unselected-pressed-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-pressed-state-layer-color: var(--md-icon-button-unselected-pressed-state-layer-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-pressed-state-layer-opacity: var(--md-icon-button-unselected-pressed-state-layer-opacity, 0.12);height:max(48px,var(--_state-layer-size));width:max(48px,var(--_state-layer-size));--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, var(--_state-layer-shape-start-start));--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, var(--_state-layer-shape-start-end));--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, var(--_state-layer-shape-end-end));--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, var(--_state-layer-shape-end-start)))))}.md3-icon-button--standard{background-color:rgba(0,0,0,0);color:var(--_unselected-icon-color);height:var(--_state-layer-size);width:var(--_state-layer-size);--md-ripple-focus-color:var(--_unselected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_unselected-focus-state-layer-opacity);--md-ripple-hover-color:var(--_unselected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_unselected-hover-state-layer-opacity);--md-ripple-pressed-color:var(--_unselected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_unselected-pressed-state-layer-opacity);--md-ripple-shape:var(--_state-layer-shape-start-start)}.md3-icon-button--standard:hover{color:var(--_unselected-hover-icon-color)}.md3-icon-button--standard:focus{color:var(--_unselected-focus-icon-color)}.md3-icon-button--standard:active{color:var(--_unselected-pressed-icon-color)}.md3-icon-button--standard:disabled{color:var(--_disabled-icon-color)}.md3-icon-button--selected{--md-ripple-focus-color:var(--_selected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_selected-focus-state-layer-opacity);--md-ripple-hover-color:var(--_selected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_selected-hover-state-layer-opacity);--md-ripple-pressed-color:var(--_selected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_selected-pressed-state-layer-opacity)}.md3-icon-button--selected:not(:disabled){color:var(--_selected-icon-color)}.md3-icon-button--selected:not(:disabled):hover{color:var(--_selected-hover-icon-color)}.md3-icon-button--selected:not(:disabled):focus{color:var(--_selected-focus-icon-color)}.md3-icon-button--selected:not(:disabled):active{color:var(--_selected-pressed-icon-color)}/*# sourceMappingURL=standard-styles.css.map */\n`;\n//# sourceMappingURL=standard-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdIcon } from '../icon/icon.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {IconButton} from '@material/web/iconbutton/lib/icon-button.js';\nimport {styles as sharedStyles} from '@material/web/iconbutton/lib/shared-styles.css.js';\nimport {styles} from '@material/web/iconbutton/lib/standard-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-standard-icon-button': MdStandardIconButton;\n  }\n}\n\n/**\n * @summary Icon buttons help people take supplementary actions with a single\n * tap.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence.\n *\n * __Rationale:__ The most compact and unobtrusive type of button, icon buttons\n * are used for optional supplementary actions such as \"Bookmark\" or \"Star.\"\n *\n * __Example usages:__\n * - Add to Favorites\n * - Print\n */\nexport class MdStandardIconButton extends ScopedElementsMixin(IconButton) {\n  static override styles = [sharedStyles, styles];\n\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-icon-button--standard': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdIcon } from '../icon/icon.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {IconButtonToggle} from '@material/web/iconbutton/lib/icon-button-toggle.js';\nimport {styles as sharedStyles} from '@material/web/iconbutton/lib/shared-styles.css.js';\nimport {styles} from '@material/web/iconbutton/lib/standard-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-standard-icon-button-toggle': MdStandardIconButtonToggle;\n  }\n}\n\n/**\n * @summary Icon buttons help people take supplementary actions with a single\n * tap. This variant can toggle between icons.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence.\n *\n * __Rationale:__ The most compact and unobtrusive type of button, icon buttons\n * are used for optional supplementary actions such as \"Bookmark\" or \"Star.\"\n *\n * __Example usages:__\n * - Add to Favorites\n * - Print\n */\nexport class MdStandardIconButtonToggle extends ScopedElementsMixin(IconButtonToggle) {\n  static override styles = [sharedStyles, styles];\n\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-icon-button--standard': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { MdIcon } from '../icon/icon.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {LinkIconButton} from '@material/web/iconbutton/lib/link-icon-button.js';\nimport {styles as sharedStyles} from '@material/web/iconbutton/lib/shared-styles.css.js';\nimport {styles} from '@material/web/iconbutton/lib/standard-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-standard-link-icon-button': MdStandardLinkIconButton;\n  }\n}\n\n/**\n * @summary Icon buttons help people take supplementary actions with a single\n * tap. This is a linkable variant.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence.\n *\n * __Rationale:__ The most compact and unobtrusive type of button, icon buttons\n * are used for optional supplementary actions such as \"Bookmark\" or \"Star.\"\n *\n * __Example usages:__\n * - Add to Favorites\n * - Print\n */\nexport class MdStandardLinkIconButton extends ScopedElementsMixin(LinkIconButton) {\n  static override styles = [sharedStyles, styles];\n\n  protected override getRenderClasses(): ClassInfo {\n    return {\n      ...super.getRenderClasses(),\n      'md3-icon-button--standard': true,\n    };\n  }\n  \n  static get scopedElements() {\n    return {\n      'md-icon': MdIcon,\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport {List} from '@material/web/list/lib/list.js';\nimport {styles} from '@material/web/list/lib/list-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-list': MdList;\n  }\n}\n\n/**\n * @summary Lists are continuous, vertical indexes of text or images.\n *\n * @description\n * Lists consist of one or more list items, and can contain actions represented\n * by icons and text. List items come in three sizes: one-line, two-line, and\n * three-line.\n *\n * __Takeaways:__\n *\n * - Lists should be sorted in logical ways that make content easy to scan, such\n *   as alphabetical, numerical, chronological, or by user preference.\n * - Lists present content in a way that makes it easy to identify a specific\n *   item in a collection and act on it.\n * - Lists should present icons, text, and actions in a consistent format.\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdList extends List {\n  static override styles = [styles];\n}\n","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_list-item-container-color: var(--md-list-list-item-container-color, var(--md-sys-color-surface, #fffbfe));--_list-item-container-elevation: var(--md-list-list-item-container-elevation, 0);--_list-item-container-shape: var(--md-list-list-item-container-shape, 0px);--_list-item-disabled-label-text-color: var(--md-list-list-item-disabled-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-disabled-label-text-opacity: var(--md-list-list-item-disabled-label-text-opacity, 0.3);--_list-item-disabled-leading-icon-color: var(--md-list-list-item-disabled-leading-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-disabled-leading-icon-opacity: var(--md-list-list-item-disabled-leading-icon-opacity, 0.38);--_list-item-disabled-state-layer-color: var(--md-list-list-item-disabled-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-disabled-state-layer-opacity: var(--md-list-list-item-disabled-state-layer-opacity, 0.12);--_list-item-disabled-trailing-icon-color: var(--md-list-list-item-disabled-trailing-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-disabled-trailing-icon-opacity: var(--md-list-list-item-disabled-trailing-icon-opacity, 0.38);--_list-item-dragged-container-elevation: var(--md-list-list-item-dragged-container-elevation, 8);--_list-item-dragged-label-text-color: var(--md-list-list-item-dragged-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-dragged-leading-icon-icon-color: var(--md-list-list-item-dragged-leading-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-dragged-state-layer-color: var(--md-list-list-item-dragged-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-dragged-state-layer-opacity: var(--md-list-list-item-dragged-state-layer-opacity, 0.12);--_list-item-dragged-trailing-icon-icon-color: var(--md-list-list-item-dragged-trailing-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-focus-label-text-color: var(--md-list-list-item-focus-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-focus-leading-icon-icon-color: var(--md-list-list-item-focus-leading-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-focus-state-layer-color: var(--md-list-list-item-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-focus-state-layer-opacity: var(--md-list-list-item-focus-state-layer-opacity, 0.12);--_list-item-focus-trailing-icon-icon-color: var(--md-list-list-item-focus-trailing-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-hover-label-text-color: var(--md-list-list-item-hover-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-hover-leading-icon-icon-color: var(--md-list-list-item-hover-leading-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-hover-state-layer-color: var(--md-list-list-item-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-hover-state-layer-opacity: var(--md-list-list-item-hover-state-layer-opacity, 0.08);--_list-item-hover-trailing-icon-icon-color: var(--md-list-list-item-hover-trailing-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-label-text-color: var(--md-list-list-item-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-label-text-type: var(--md-list-list-item-label-text-type, 400 1rem / 1.5rem Roboto);--_list-item-large-leading-video-height: var(--md-list-list-item-large-leading-video-height, 69px);--_list-item-leading-avatar-label-color: var(--md-list-list-item-leading-avatar-label-color, var(--md-sys-color-on-primary-container, #21005d));--_list-item-leading-avatar-label-font: var(--md-list-list-item-leading-avatar-label-font, Roboto);--_list-item-leading-avatar-label-line-height: var(--md-list-list-item-leading-avatar-label-line-height, 1.5rem);--_list-item-leading-avatar-label-size: var(--md-list-list-item-leading-avatar-label-size, 1rem);--_list-item-leading-avatar-label-tracking: var(--md-list-list-item-leading-avatar-label-tracking, 0.009rem);--_list-item-leading-avatar-label-type: var(--md-list-list-item-leading-avatar-label-type, 500 1rem / 1.5rem Roboto);--_list-item-leading-avatar-label-weight: var(--md-list-list-item-leading-avatar-label-weight, 500);--_list-item-leading-avatar-color: var(--md-list-list-item-leading-avatar-color, var(--md-sys-color-primary-container, #eaddff));--_list-item-leading-avatar-shape: var(--md-list-list-item-leading-avatar-shape, 9999px);--_list-item-leading-avatar-size: var(--md-list-list-item-leading-avatar-size, 40px);--_list-item-leading-icon-color: var(--md-list-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-leading-icon-size: var(--md-list-list-item-leading-icon-size, 18px);--_list-item-leading-image-height: var(--md-list-list-item-leading-image-height, 56px);--_list-item-leading-image-shape: var(--md-list-list-item-leading-image-shape, 0px);--_list-item-leading-image-width: var(--md-list-list-item-leading-image-width, 56px);--_list-item-leading-video-shape: var(--md-list-list-item-leading-video-shape, 0px);--_list-item-leading-video-width: var(--md-list-list-item-leading-video-width, 100px);--_list-item-one-line-container-height: var(--md-list-list-item-one-line-container-height, 56px);--_list-item-overline-color: var(--md-list-list-item-overline-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-overline-font: var(--md-list-list-item-overline-font, Roboto);--_list-item-overline-line-height: var(--md-list-list-item-overline-line-height, 1rem);--_list-item-overline-size: var(--md-list-list-item-overline-size, 0.688rem);--_list-item-overline-tracking: var(--md-list-list-item-overline-tracking, 0.031rem);--_list-item-overline-type: var(--md-list-list-item-overline-type, 500 0.688rem / 1rem Roboto);--_list-item-overline-weight: var(--md-list-list-item-overline-weight, 500);--_list-item-pressed-label-text-color: var(--md-list-list-item-pressed-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-pressed-leading-icon-icon-color: var(--md-list-list-item-pressed-leading-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-pressed-state-layer-color: var(--md-list-list-item-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-pressed-state-layer-opacity: var(--md-list-list-item-pressed-state-layer-opacity, 0.12);--_list-item-pressed-trailing-icon-icon-color: var(--md-list-list-item-pressed-trailing-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-selected-trailing-icon-color: var(--md-list-list-item-selected-trailing-icon-color, var(--md-sys-color-primary, #6750a4));--_list-item-small-leading-video-height: var(--md-list-list-item-small-leading-video-height, 56px);--_list-item-supporting-text-color: var(--md-list-list-item-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-supporting-text-type: var(--md-list-list-item-supporting-text-type, 400 0.875rem / 1.25rem Roboto);--_list-item-three-line-container-height: var(--md-list-list-item-three-line-container-height, 88px);--_list-item-trailing-icon-color: var(--md-list-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-trailing-icon-size: var(--md-list-list-item-trailing-icon-size, 24px);--_list-item-trailing-supporting-text-color: var(--md-list-list-item-trailing-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-trailing-supporting-text-type: var(--md-list-list-item-trailing-supporting-text-type, 500 0.688rem / 1rem Roboto);--_list-item-two-line-container-height: var(--md-list-list-item-two-line-container-height, 72px);--_list-item-unselected-trailing-icon-color: var(--md-list-list-item-unselected-trailing-icon-color, var(--md-sys-color-on-surface, #1c1b1f))}/*# sourceMappingURL=list-item-private-styles.css.map */\n`;\n//# sourceMappingURL=list-item-private-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\n\nimport { ListItemEl } from '@material/web/list/lib/listitem/list-item.js';\nimport { styles as privateProps } from '@material/web/list/lib/listitem/list-item-private-styles.css.js';\nimport { styles } from '@material/web/list/lib/listitem/list-item-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-list-item': MdListItem;\n  }\n}\n\n/**\n * @summary\n * Lists are continuous, vertical indexes of text or images. Items are placed\n * inside the list.\n *\n * @description\n * Lists consist of one or more list items, and can contain actions represented\n * by icons and text. List items come in three sizes: one-line, two-line, and\n * three-line.\n *\n * __Takeaways:__\n *\n * - Lists should be sorted in logical ways that make content easy to scan, such\n *   as alphabetical, numerical, chronological, or by user preference.\n * - Lists present content in a way that makes it easy to identify a specific\n *   item in a collection and act on it.\n * - Lists should present icons, text, and actions in a consistent format.\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdListItem extends ScopedElementsMixin(ListItemEl) {\n  static override styles = [privateProps, styles];\n  static get scopedElements() {\n    return {\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing,\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class ListItemAvatar extends LitElement {\n    constructor() {\n        super(...arguments);\n        /**\n         * The image `src` for the avatar\n         */\n        this.avatar = '';\n        /**\n         * The image `alt`.\n         */\n        this.altText = '';\n        /**\n         * The image `loading` attribute.\n         */\n        this.loading = 'eager';\n    }\n    render() {\n        return html `\n       <img\n          src=\"${this.avatar}\"\n          alt=\"${this.altText || nothing}\"\n          loading=\"${this.loading}\"\n        class=\"md3-list-item__avatar\" />\n     `;\n    }\n}\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], ListItemAvatar.prototype, \"avatar\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], ListItemAvatar.prototype, \"altText\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", String)\n], ListItemAvatar.prototype, \"loading\", void 0);\n//# sourceMappingURL=list-item-avatar.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_list-item-leading-avatar-color: var(--md-list-list-item-leading-avatar-color, var(--md-sys-color-primary-container, #eaddff));--_list-item-leading-avatar-shape: var(--md-list-list-item-leading-avatar-shape, 9999px);--_list-item-leading-avatar-size: var(--md-list-list-item-leading-avatar-size, 40px)}.md3-list-item__avatar{border-radius:var(--_list-item-leading-avatar-shape);display:inline-flex;height:var(--_list-item-leading-avatar-size);margin-inline-start:16px;width:var(--_list-item-leading-avatar-size)}/*# sourceMappingURL=list-item-avatar-styles.css.map */\n`;\n//# sourceMappingURL=list-item-avatar-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {customElement} from 'lit/decorators.js';\n\nimport {ListItemAvatar} from '@material/web/list/lib/avatar/list-item-avatar.js';\nimport {styles} from '@material/web/list/lib/avatar/list-item-avatar-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-list-item-avatar': MdListItemAvatar;\n  }\n}\n\n/**\n * @summary An image avatar that is expected to be slotted into a list item.\n *\n * @final\n * @suppress {visibility}\n */\n\nexport class MdListItemAvatar extends ListItemAvatar {\n  static override styles = [styles];\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { html, LitElement } from 'lit';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class ListItemIcon extends LitElement {\n    render() {\n        return html `\n      <span class=\"md3-list-item__icon\"><slot></slot></span>\n    `;\n    }\n}\n//# sourceMappingURL=list-item-icon.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_list-item-icon-color: var(--md-list-item-icon-list-item-icon-color, #000);--_list-item-icon-size: var(--md-list-item-icon-list-item-icon-size, 0);--_list-item-icon-opacity: var(--md-list-item-icon-list-item-icon-opacity, 1);display:inline-flex}.md3-list-item__icon{color:var(--_list-item-icon-color);opacity:var(--_list-item-icon-opacity);font-family:\"Material Icons\";font-weight:normal;font-style:normal;font-size:var(--_list-item-icon-size);line-height:1;letter-spacing:normal;text-transform:none;display:inline-flex;white-space:nowrap;word-wrap:normal;direction:ltr;height:100%;width:100%;padding-inline-start:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}/*# sourceMappingURL=list-item-icon-styles.css.map */\n`;\n//# sourceMappingURL=list-item-icon-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {customElement} from 'lit/decorators.js';\n\nimport {ListItemIcon} from '@material/web/list/lib/icon/list-item-icon.js';\nimport {styles} from '@material/web/list/lib/icon/list-item-icon-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-list-item-icon': MdListItemIcon;\n  }\n}\n\n/**\n * @summary A material icon that is expected to be slotted into a list item.\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdListItemIcon extends ListItemIcon {\n  static override styles = [styles];\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class ListItemImage extends LitElement {\n    constructor() {\n        super(...arguments);\n        /**\n         * The image `src`.\n         */\n        this.image = '';\n        /**\n         * The image `alt`.\n         */\n        this.altText = '';\n        /**\n         * The image `loading` attribute.\n         */\n        this.loading = 'eager';\n    }\n    render() {\n        return html `\n      <img\n          src=\"${this.image}\"\n          alt=\"${this.altText || nothing}\"\n          loading=${this.loading}\n          class=\"md3-list-item__image\" />\n      `;\n    }\n}\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], ListItemImage.prototype, \"image\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", Object)\n], ListItemImage.prototype, \"altText\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", String)\n], ListItemImage.prototype, \"loading\", void 0);\n//# sourceMappingURL=list-item-image.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_list-item-leading-image-height: var(--md-list-item-image-list-item-leading-image-height, 56px);--_list-item-leading-image-width: var(--md-list-item-image-list-item-leading-image-width, 56px);--_list-item-leading-image-shape: var(--md-list-item-image-list-item-leading-image-shape, 0px)}.md3-list-item__image{display:inline-flex;margin-block-end:8px;margin-block-start:8px;margin-inline-start:16px;height:var(--_list-item-leading-image-height);width:var(--_list-item-leading-image-width);border-radius:var(--_list-item-leading-image-shape)}/*# sourceMappingURL=list-item-image-styles.css.map */\n`;\n//# sourceMappingURL=list-item-image-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {customElement} from 'lit/decorators.js';\n\nimport {ListItemImage} from '@material/web/list/lib/image/list-item-image.js';\nimport {styles} from '@material/web/list/lib/image/list-item-image-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-list-item-image': MdListItemImage;\n  }\n}\n\n/**\n * @summary An image that is expected to be slotted into a list item.\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdListItemImage extends ListItemImage {\n  static override styles = [styles];\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\n/**\n * @fires loadeddata {Event} Dispatched whenever the native HTMLVideoElement\n * fires the loadeddate event.\n */\nexport class ListItemVideo extends LitElement {\n    constructor() {\n        super(...arguments);\n        /**\n         * Displays the video in a taller format\n         */\n        this.large = false;\n        /**\n         * The underlying `<video>`'s `autoplay` property.\n         */\n        this.autoplay = false;\n        /**\n         * The underlying `<video>`'s `muted` property.\n         */\n        this.muted = false;\n        /**\n         * The underlying `<video>`'s `loop` property.\n         */\n        this.loop = false;\n        /**\n         * The underlying `<video>`'s `controls` property.\n         */\n        this.controls = false;\n        /**\n         * The underlying `<video>`'s `playsinline` property.\n         */\n        this.playsinline = false;\n        /**\n         * The underlying `<video>`'s `preload` property.\n         */\n        this.preload = '';\n        /**\n         * The underlying `<video>`'s `poster` property.\n         */\n        this.poster = '';\n        /**\n         * The `src` of the video.\n         */\n        this.video = '';\n        /**\n         * The `alt` attribute if the video.\n         */\n        this.altText = '';\n    }\n    render() {\n        return html `\n        <video\n            @loadeddata=${() => this.dispatchEvent(new Event('loadeddata'))}\n            .src=\"${this.video || nothing}\"\n            .poster=\"${this.poster || nothing}\"\n            alt=\"${this.altText || nothing}\"\n            .autoplay=${this.autoplay}\n            .muted=${this.muted}\n            .loop=${this.loop}\n            .playsinline=${this.playsinline}\n            .controls=${this.controls}\n            class=\"md3-list-item__video ${this.large ? 'large' : ''}\">\n          <slot></slot>\n        </video>\n      `;\n    }\n}\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], ListItemVideo.prototype, \"large\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], ListItemVideo.prototype, \"autoplay\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], ListItemVideo.prototype, \"muted\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], ListItemVideo.prototype, \"loop\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], ListItemVideo.prototype, \"controls\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], ListItemVideo.prototype, \"playsinline\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", String)\n], ListItemVideo.prototype, \"preload\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], ListItemVideo.prototype, \"poster\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], ListItemVideo.prototype, \"video\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], ListItemVideo.prototype, \"altText\", void 0);\n//# sourceMappingURL=list-item-video.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_list-item-small-leading-video-height: var(--md-list-item-video-list-item-small-leading-video-height, 56px);--_list-item-large-leading-video-height: var(--md-list-item-video-list-item-large-leading-video-height, 69px);--_list-item-leading-video-width: var(--md-list-item-video-list-item-leading-video-width, 100px);--_list-item-leading-video-shape: var(--md-list-item-video-list-item-leading-video-shape, 0px);display:inline-flex}.md3-list-item__video{display:inline-flex;margin-block-end:12px;margin-block-start:12px;object-fit:cover;height:var(--_list-item-small-leading-video-height);width:var(--_list-item-leading-video-width);border-radius:var(--_list-item-leading-video-shape)}.md3-list-item__video.large{height:var(--_list-item-large-leading-video-height)}/*# sourceMappingURL=list-item-video-styles.css.map */\n`;\n//# sourceMappingURL=list-item-video-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport {ListItemVideo} from '@material/web/list/lib/video/list-item-video.js';\nimport {styles} from '@material/web/list/lib/video/list-item-video-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-list-item-video': MdListItemVideo;\n  }\n}\n\n/**\n * @summary A video that is expected to be slotted into a list item.\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdListItemVideo extends ListItemVideo {\n  static override styles = [styles];\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ripple } from '../../../ripple/directive.js';\nimport { ListItemEl } from '../listitem/list-item.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class ListItemLink extends ListItemEl {\n    renderListItem(content) {\n        return html `\n      <a\n          tabindex=${this.disabled ? -1 : this.itemTabIndex}\n          role=${this.role}\n          aria-selected=${this.ariaSelected || nothing}\n          aria-checked=${this.ariaChecked || nothing}\n          class=\"list-item ${classMap(this.getRenderClasses())}\"\n          href=${this.href}\n          target=${this.target || nothing}\n          @pointerdown=${this.onPointerdown}\n          @focus=${this.onFocus}\n          @blur=${this.onBlur}\n          @click=${this.onClick}\n          @pointerenter=${this.onPointerenter}\n          @pointerleave=${this.onPointerleave}\n          @keydown=${this.onKeydown}\n          ${ripple(this.getRipple)}>${content}</a>`;\n    }\n}\n__decorate([\n    property(),\n    __metadata(\"design:type\", String)\n], ListItemLink.prototype, \"href\", void 0);\n__decorate([\n    property(),\n    __metadata(\"design:type\", String)\n], ListItemLink.prototype, \"target\", void 0);\n//# sourceMappingURL=list-item-link.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\n//import {styles as privateProps} from '@material/web/list/lib/listitem/list-item-private-styles.css.js';\nimport {styles} from '@material/web/list/lib/listitem/list-item-styles.css.js';\nimport {ListItemLink} from '@material/web/list/lib/listitemlink/list-item-link.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-list-item-link': MdListItemLink;\n  }\n}\n\n/**\n * @summary\n * Lists are continuous, vertical indexes of text or images. Items are placed\n * inside the list. This is a linkable variant.\n *\n * @description\n * Lists consist of one or more list items, and can contain actions represented\n * by icons and text. List items come in three sizes: one-line, two-line, and\n * three-line.\n *\n * __Takeaways:__\n *\n * - Lists should be sorted in logical ways that make content easy to scan, such\n *   as alphabetical, numerical, chronological, or by user preference.\n * - Lists present content in a way that makes it easy to identify a specific\n *   item in a collection and act on it.\n * - Lists should present icons, text, and actions in a consistent format.\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdListItemLink extends ListItemLink {\n  static override styles = [\n    // privateProps, \n    styles\n  ];\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { List } from './lib/list.js';\nimport { styles } from './lib/list-styles.css.js';\n/**\n * @summary Lists are continuous, vertical indexes of text or images.\n *\n * @description\n * Lists consist of one or more list items, and can contain actions represented\n * by icons and text. List items come in three sizes: one-line, two-line, and\n * three-line.\n *\n * __Takeaways:__\n *\n * - Lists should be sorted in logical ways that make content easy to scan, such\n *   as alphabetical, numerical, chronological, or by user preference.\n * - Lists present content in a way that makes it easy to identify a specific\n *   item in a collection and act on it.\n * - Lists should present icons, text, and actions in a consistent format.\n *\n * @final\n * @suppress {visibility}\n */\nlet MdList = class MdList extends List {\n};\nMdList.styles = [styles];\nMdList = __decorate([\n    customElement('md-list')\n], MdList);\nexport { MdList };\n//# sourceMappingURL=list.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Given a surface, an anchor, corners, and some options, this surface will\n * calculate the position of a surface to align the two given corners and keep\n * the surface inside the window viewport. It also provides a StyleInfo map that\n * can be applied to the surface to handle visiblility and position.\n */\nexport class SurfacePositionController {\n    /**\n     * @param host The host to connect the controller to.\n     * @param getProperties A function that returns the properties for the\n     * controller.\n     */\n    constructor(host, getProperties) {\n        this.host = host;\n        this.getProperties = getProperties;\n        // The current styles to apply to the surface.\n        this.surfaceStylesInternal = {\n            'display': 'none',\n        };\n        // Previous values stored for change detection. Open change detection is\n        // calculated separately so initialize it here.\n        this.lastValues = { isOpen: false };\n        this.host.addController(this);\n    }\n    /**\n     * The StyleInfo map to apply to the surface via Lit's stylemap\n     */\n    get surfaceStyles() {\n        return this.surfaceStylesInternal;\n    }\n    /**\n     * Calculates the surface's new position required so that the surface's\n     * `surfaceCorner` aligns to the anchor's `anchorCorner` while keeping the\n     * surface inside the window viewport. This positioning also respects RTL by\n     * checking `getComputedStyle()` on the surface element.\n     */\n    async position() {\n        const { surfaceEl, anchorEl, anchorCorner: anchorCornerRaw, surfaceCorner: surfaceCornerRaw, isTopLayer: topLayerRaw, xOffset, yOffset, } = this.getProperties();\n        const anchorCorner = anchorCornerRaw.toUpperCase().trim();\n        const surfaceCorner = surfaceCornerRaw.toUpperCase().trim();\n        if (!surfaceEl || !anchorEl) {\n            return;\n        }\n        // Paint the surface transparently so that we can get the position and the\n        // rect info of the surface.\n        this.surfaceStylesInternal = {\n            'display': 'block',\n            'opacity': '0',\n        };\n        // Wait for it to be visible.\n        this.host.requestUpdate();\n        await this.host.updateComplete;\n        const surfaceRect = surfaceEl.getBoundingClientRect();\n        const anchorRect = anchorEl.getBoundingClientRect();\n        const [surfaceBlock, surfaceInline] = surfaceCorner.split('_');\n        const [anchorBlock, anchorInline] = anchorCorner.split('_');\n        // We use number booleans to multiply values rather than `if` / ternary\n        // statements because it _heavily_ cuts down on nesting and readability\n        const isTopLayer = topLayerRaw ? 1 : 0;\n        // LTR depends on the direction of the SURFACE not the anchor.\n        const isLTR = getComputedStyle(surfaceEl).direction === 'ltr' ? 1 : 0;\n        const isRTL = isLTR ? 0 : 1;\n        const isSurfaceInlineStart = surfaceInline === 'START' ? 1 : 0;\n        const isSurfaceInlineEnd = surfaceInline === 'END' ? 1 : 0;\n        const isSurfaceBlockStart = surfaceBlock === 'START' ? 1 : 0;\n        const isSurfaceBlockEnd = surfaceBlock === 'END' ? 1 : 0;\n        const isOneInlineEnd = anchorInline !== surfaceInline ? 1 : 0;\n        const isOneBlockEnd = anchorBlock !== surfaceBlock ? 1 : 0;\n        /*\n         * A diagram that helps describe some of the variables used in the following\n         * calculations.\n         *\n         * ┌───── inline/blockTopLayerOffset\n         * │       │\n         * │     ┌─▼───┐                  Window\n         * │    ┌┼─────┴────────────────────────┐\n         * │    ││                              │\n         * └──► ││  ┌──inline/blockAnchorOffset │\n         *      ││  │     │                     │\n         *      └┤  │  ┌──▼───┐                 │\n         *       │  │ ┌┼──────┤                 │\n         *       │  └─►│Anchor│                 │\n         *       │    └┴──────┘                 │\n         *       │                              │\n         *       │     ┌────────────────────────┼────┐\n         *       │     │ Surface                │    │\n         *       │     │                        │    │\n         *       │     │                        │    │\n         *       │     │                        │    │\n         *       │     │                        │    │\n         *       │     │                        │    │\n         *       └─────┼────────────────────────┘    ├┐\n         *             │ inline/blockOOBCorrection   ││\n         *             │                         │   ││\n         *             │                         ├──►││\n         *             │                         │   ││\n         *             └────────────────────────┐▼───┼┘\n         *                                      └────┘\n         */\n        // Whether or not to apply the width of the anchor\n        const inlineAnchorOffset = isOneInlineEnd * anchorRect.width + xOffset;\n        // The inline position of the anchor relative to window in LTR\n        const inlineTopLayerOffsetLTR = isSurfaceInlineStart * anchorRect.left +\n            isSurfaceInlineEnd * (window.innerWidth - anchorRect.right);\n        // The inline position of the anchor relative to window in RTL\n        const inlineTopLayerOffsetRTL = isSurfaceInlineStart * (window.innerWidth - anchorRect.right) +\n            isSurfaceInlineEnd * anchorRect.left;\n        // The inline position of the anchor relative to window\n        const inlineTopLayerOffset = isLTR * inlineTopLayerOffsetLTR + isRTL * inlineTopLayerOffsetRTL;\n        // If the surface's inline would be out of bounds of the window, move it\n        // back in\n        const inlineOutOfBoundsCorrection = Math.min(0, window.innerWidth - inlineTopLayerOffset - inlineAnchorOffset -\n            surfaceRect.width);\n        // The inline logical value of the surface\n        const inline = isTopLayer * inlineTopLayerOffset + inlineAnchorOffset +\n            inlineOutOfBoundsCorrection;\n        // Whether or not to apply the height of the anchor\n        const blockAnchorOffset = isOneBlockEnd * anchorRect.height + yOffset;\n        // The absolute block position of the anchor relative to window\n        const blockTopLayerOffset = isSurfaceBlockStart * anchorRect.top +\n            isSurfaceBlockEnd * (window.innerHeight - anchorRect.bottom);\n        // If the surface's block would be out of bounds of the window, move it back\n        // in\n        const blockOutOfBoundsCorrection = Math.min(0, window.innerHeight - blockTopLayerOffset - blockAnchorOffset -\n            surfaceRect.height);\n        // The block logical value of the surface\n        const block = isTopLayer * blockTopLayerOffset + blockAnchorOffset +\n            blockOutOfBoundsCorrection;\n        const surfaceBlockProperty = surfaceBlock === 'START' ? 'inset-block-start' : 'inset-block-end';\n        const surfaceInlineProperty = surfaceInline === 'START' ? 'inset-inline-start' : 'inset-inline-end';\n        this.surfaceStylesInternal = {\n            'display': 'block',\n            'opacity': '1',\n            [surfaceBlockProperty]: `${block}px`,\n            [surfaceInlineProperty]: `${inline}px`,\n        };\n        this.host.requestUpdate();\n    }\n    hostUpdate() {\n        this.onUpdate();\n    }\n    hostUpdated() {\n        this.onUpdate();\n    }\n    /**\n     * Checks whether the properties passed into the controller have changed since\n     * the last positioning. If so, it will reposition if the surface is open or\n     * close it if the surface should close.\n     */\n    async onUpdate() {\n        const props = this.getProperties();\n        let hasChanged = false;\n        for (const [key, value] of Object.entries(props)) {\n            // tslint:disable-next-line\n            hasChanged = hasChanged || (value !== this.lastValues[key]);\n            if (hasChanged)\n                break;\n        }\n        const openChanged = this.lastValues.isOpen !== props.isOpen;\n        const hasAnchor = !!props.anchorEl;\n        const hasSurface = !!props.surfaceEl;\n        if (hasChanged && hasAnchor && hasSurface) {\n            // Only update isOpen, because if it's closed, we do not want to waste\n            // time on a useless reposition calculation. So save the other \"dirty\"\n            // values until next time it opens.\n            this.lastValues.isOpen = props.isOpen;\n            if (props.isOpen) {\n                // We are going to do a reposition, so save the prop values for future\n                // dirty checking.\n                this.lastValues = props;\n                await this.position();\n                props.onOpen();\n            }\n            else if (openChanged) {\n                await props.beforeClose();\n                this.close();\n                props.onClose();\n            }\n        }\n    }\n    /**\n     * Hides the surface.\n     */\n    close() {\n        this.surfaceStylesInternal = {\n            'display': 'none',\n        };\n        this.host.requestUpdate();\n    }\n}\n//# sourceMappingURL=surfacePositionController.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Indicies to access the TypeaheadRecord tuple\nconst TYPEAHEAD_INDEX = 0;\nconst TYPEAHEAD_ITEM = 1;\nconst TYPEAHEAD_TEXT = 2;\n/**\n * This controller listens to `keydown` events and searches the header text of\n * an array of `MenuItem`s with the corresponding entered keys within the buffer\n * time and activates the item.\n *\n * @example\n * ```ts\n * const typeaheadController = new TypeaheadController(() => ({\n *   typeaheadBufferTime: 50,\n *   getItems: () => Array.from(document.querySelectorAll('md-menu-item'))\n * }));\n * html`\n *   <div\n *       @keydown=${typeaheadController.onKeydown}\n *       tabindex=\"0\"\n *       class=\"activeItemText\">\n *     <!-- focusable element that will receive keydown events -->\n *     Apple\n *   </div>\n *   <div>\n *     <md-menu-item active header=\"Apple\"></md-menu-item>\n *     <md-menu-item header=\"Apricot\"></md-menu-item>\n *     <md-menu-item header=\"Banana\"></md-menu-item>\n *     <md-menu-item header=\"Olive\"></md-menu-item>\n *     <md-menu-item header=\"Orange\"></md-menu-item>\n *   </div>\n * `;\n * ```\n */\nexport class TypeaheadController {\n    /**\n     * @param getProperties A function that returns the options of the typeahead\n     * controller:\n     *\n     * {\n     *   getItems: A function that returns an array of menu items to be searched.\n     *   typeaheadBufferTime: The maximum time between each keystroke to keep the\n     *       current type buffer alive.\n     * }\n     */\n    constructor(getProperties) {\n        this.getProperties = getProperties;\n        /**\n         * Array of tuples that helps with indexing.\n         */\n        this.typeaheadRecords = [];\n        /**\n         * Currently-typed text since last buffer timeout\n         */\n        this.typaheadBuffer = '';\n        /**\n         * The timeout id from the current buffer's setTimeout\n         */\n        this.cancelTypeaheadTimeout = 0;\n        /**\n         * If we are currently \"typing\"\n         */\n        this.isTypingAhead = false;\n        /**\n         * The record of the last active item.\n         */\n        this.lastActiveRecord = null;\n        /**\n         * Apply this listener to the element that will receive `keydown` events that\n         * should trigger this controller.\n         *\n         * @param e The native browser `KeyboardEvent` from the `keydown` event.\n         */\n        this.onKeydown = (e) => {\n            if (this.isTypingAhead) {\n                this.typeahead(e);\n            }\n            else {\n                this.beginTypeahead(e);\n            }\n        };\n        /**\n         * Ends the current typeahead and clears the buffer.\n         */\n        this.endTypeahead = () => {\n            this.isTypingAhead = false;\n            this.typaheadBuffer = '';\n            this.typeaheadRecords = [];\n        };\n    }\n    get items() {\n        return this.getProperties().getItems();\n    }\n    /**\n     * Sets up typingahead\n     */\n    beginTypeahead(e) {\n        // We don't want to typeahead if the _beginning_ of the typeahead is a menu\n        // navigation, or a selection. We will handle \"Space\" only if it's in the\n        // middle of a typeahead\n        if (e.code === 'Space' || e.code === 'Enter' ||\n            e.code.startsWith('Arrow') || e.code === 'Escape') {\n            if (this.lastActiveRecord) {\n                this.lastActiveRecord[TYPEAHEAD_ITEM].active = false;\n            }\n            return;\n        }\n        this.isTypingAhead = true;\n        // Generates the record array data structure which is the index, the element\n        // and a normalized header.\n        this.typeaheadRecords = this.items.map((el, index) => [index, el, el.headline.trim().toLowerCase()]);\n        this.lastActiveRecord =\n            this.typeaheadRecords.find(record => record[TYPEAHEAD_ITEM].active) ??\n                null;\n        if (this.lastActiveRecord) {\n            this.lastActiveRecord[TYPEAHEAD_ITEM].active = false;\n        }\n        this.typeahead(e);\n    }\n    /**\n     * Performs the typeahead. Based on the normalized items and the current text\n     * buffer, finds the _next_ item with matching text and activates it.\n     *\n     * @example\n     *\n     * items: Apple, Banana, Olive, Orange, Cucumber\n     * buffer: ''\n     * user types: o\n     *\n     * activates Olive\n     *\n     * @example\n     *\n     * items: Apple, Banana, Olive (active), Orange, Cucumber\n     * buffer: 'o'\n     * user types: l\n     *\n     * activates Olive\n     *\n     * @example\n     *\n     * items: Apple, Banana, Olive (active), Orange, Cucumber\n     * buffer: ''\n     * user types: o\n     *\n     * activates Orange\n     *\n     * @example\n     *\n     * items: Apple, Banana, Olive, Orange (active), Cucumber\n     * buffer: ''\n     * user types: o\n     *\n     * activates Olive\n     */\n    typeahead(e) {\n        clearTimeout(this.cancelTypeaheadTimeout);\n        // Stop typingahead if one of the navigation or selection keys (except for\n        // Space) are pressed\n        if (e.code === 'Enter' || e.code.startsWith('Arrow') ||\n            e.code === 'Escape') {\n            this.endTypeahead();\n            if (this.lastActiveRecord) {\n                this.lastActiveRecord[TYPEAHEAD_ITEM].active = false;\n            }\n            return;\n        }\n        // If Space is pressed, prevent it from selecting and closing the menu\n        if (e.code === 'Space') {\n            e.stopPropagation();\n        }\n        // Start up a new keystroke buffer timeout\n        this.cancelTypeaheadTimeout =\n            setTimeout(this.endTypeahead, this.getProperties().typeaheadBufferTime);\n        this.typaheadBuffer += e.key.toLowerCase();\n        const lastActiveIndex = this.lastActiveRecord ? this.lastActiveRecord[TYPEAHEAD_INDEX] : -1;\n        const numRecords = this.typeaheadRecords.length;\n        /**\n         * Sorting function that will resort the items starting with the given index\n         *\n         * @example\n         *\n         * this.typeaheadRecords =\n         * 0: [0, <reference>, 'apple']\n         * 1: [1, <reference>, 'apricot']\n         * 2: [2, <reference>, 'banana']\n         * 3: [3, <reference>, 'olive'] <-- lastActiveIndex\n         * 4: [4, <reference>, 'orange']\n         * 5: [5, <reference>, 'strawberry']\n         *\n         * this.typeaheadRecords.sort((a,b) => rebaseIndexOnActive(a)\n         *                                       - rebaseIndexOnActive(b)) ===\n         * 0: [3, <reference>, 'olive'] <-- lastActiveIndex\n         * 1: [4, <reference>, 'orange']\n         * 2: [5, <reference>, 'strawberry']\n         * 3: [0, <reference>, 'apple']\n         * 4: [1, <reference>, 'apricot']\n         * 5: [2, <reference>, 'banana']\n         */\n        const rebaseIndexOnActive = (record) => {\n            return (record[TYPEAHEAD_INDEX] + numRecords - lastActiveIndex) %\n                numRecords;\n        };\n        // records filtered and sorted / rebased around the last active index\n        const matchingRecords = this.typeaheadRecords\n            .filter(record => !record[TYPEAHEAD_ITEM].disabled &&\n            record[TYPEAHEAD_TEXT].startsWith(this.typaheadBuffer))\n            .sort((a, b) => rebaseIndexOnActive(a) - rebaseIndexOnActive(b));\n        // Just leave if there's nothing that matches. Native select will just\n        // choose the first thing that starts with the next letter in the alphabet\n        // but that's out of scope and hard to localize\n        if (matchingRecords.length === 0) {\n            clearTimeout(this.cancelTypeaheadTimeout);\n            if (this.lastActiveRecord) {\n                this.lastActiveRecord[TYPEAHEAD_ITEM].active = false;\n            }\n            this.endTypeahead();\n            return;\n        }\n        const isNewQuery = this.typaheadBuffer.length === 1;\n        let nextRecord;\n        // This is likely the case that someone is trying to \"tab\" through different\n        // entries that start with the same letter\n        if (this.lastActiveRecord === matchingRecords[0] && isNewQuery) {\n            nextRecord = matchingRecords[1] ?? matchingRecords[0];\n        }\n        else {\n            nextRecord = matchingRecords[0];\n        }\n        if (this.lastActiveRecord) {\n            this.lastActiveRecord[TYPEAHEAD_ITEM].active = false;\n        }\n        this.lastActiveRecord = nextRecord;\n        nextRecord[TYPEAHEAD_ITEM].active = true;\n        return;\n    }\n}\n//# sourceMappingURL=typeaheadController.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\n// Required for @ariaProperty\n// tslint:disable:no-new-decorators\nimport '../../list/list.js';\nimport '../../focus/focus-ring.js';\nimport '../../elevation/elevation.js';\nimport { html, LitElement } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\nimport { MdFocusRing } from '../../focus/focus-ring.js';\nimport { pointerPress, shouldShowStrongFocus } from '../../focus/strong-focus.js';\nimport { List } from '../../list/lib/list.js';\nimport { createAnimationSignal, EASING } from '../../motion/animation.js';\nimport { SurfacePositionController } from './surfacePositionController.js';\nimport { TypeaheadController } from './typeaheadController.js';\n/**\n * Gets the currently focused element on the page.\n *\n * @param activeDoc The document or shadowroot from which to start the search.\n *    Defaults to `window.document`\n * @return Returns the currently deeply focused element or `null` if none.\n */\nfunction getFocusedElement(activeDoc = document) {\n    const activeEl = activeDoc.activeElement;\n    if (!activeEl) {\n        return null;\n    }\n    if (activeEl.shadowRoot) {\n        return getFocusedElement(activeEl.shadowRoot) ?? activeEl;\n    }\n    return activeEl;\n}\n/**\n * @fires opening Fired before the opening animation begins (not fired on quick)\n * @fires opened Fired once the menu is open, after any animations\n * @fires closing Fired before the closing animation begins (not fired on quick)\n * @fires closed Fired once the menu is closed, after any animations\n */\nexport class Menu extends LitElement {\n    constructor() {\n        super(...arguments);\n        /**\n         * The element in which the menu should align to.\n         */\n        this.anchor = null;\n        /**\n         * Makes the element use `position:fixed` instead of `position:absolute`. In\n         * most cases, the menu should position itself above most other\n         * `position:absolute` or `position:fixed` elements when placed inside of\n         * them. e.g. using a menu inside of an `md-dialog`.\n         *\n         * __NOTE__: Fixed menus will not scroll with the page and will be fixed to\n         * the window instead.\n         */\n        this.fixed = false;\n        /**\n         * Skips the opening and closing animations.\n         */\n        this.quick = false;\n        /**\n         * Displays overflow content like a submenu.\n         *\n         * __NOTE__: This may cause adverse effects if you set\n         * `md-menu {max-height:...}`\n         * and have items overflowing items in the \"y\" direction.\n         */\n        this.hasOverflow = false;\n        /**\n         * Opens the menu and makes it visible. Alternative to the `.show()` and\n         * `.close()` methods\n         */\n        this.open = false;\n        /**\n         * Offsets the menu's inline alignment from the anchor by the given number in\n         * pixels. This value is direction aware and will follow the LTR / RTL\n         * direction.\n         *\n         * e.g. LTR: positive -> right, negative -> left\n         *      RTL: positive -> left, negative -> right\n         */\n        this.xOffset = 0;\n        /**\n         * Offsets the menu's block alignment from the anchor by the given number in\n         * pixels.\n         *\n         * e.g. positive -> down, negative -> up\n         */\n        this.yOffset = 0;\n        /**\n         * The tabindex of the underlying list element.\n         */\n        this.listTabIndex = 0;\n        /**\n         * The max time between the keystrokes of the typeahead menu behavior before\n         * it clears the typeahead buffer.\n         */\n        this.typeaheadBufferTime = 200;\n        /**\n         * The corner of the anchor which to align the menu in the standard logical\n         * property style of <block>_<inline>.\n         */\n        this.anchorCorner = 'END_START';\n        /**\n         * The corner of the menu which to align the anchor in the standard logical\n         * property style of <block>_<inline>.\n         */\n        this.menuCorner = 'START_START';\n        /**\n         * Keeps the user clicks outside the menu\n         */\n        this.stayOpenOnOutsideClick = false;\n        /**\n         * After closing, does not restore focus to the last focused element before\n         * the menu was opened.\n         */\n        this.skipRestoreFocus = false;\n        /**\n         * The element that should be focused by default once opened.\n         */\n        this.defaultFocus = 'LIST_ROOT';\n        this.openCloseAnimationSignal = createAnimationSignal();\n        /**\n         * The element that was focused before the menu opened.\n         */\n        this.lastFocusedElement = null;\n        /**\n         * Handles typeahead navigation through the menu.\n         */\n        this.typeaheadController = new TypeaheadController(() => {\n            return {\n                getItems: () => this.items,\n                typeaheadBufferTime: this.typeaheadBufferTime,\n            };\n        });\n        /**\n         * Handles positioning the surface and aligning it to the anchor.\n         */\n        this.menuPositionController = new SurfacePositionController(this, () => {\n            return {\n                anchorCorner: this.anchorCorner,\n                surfaceCorner: this.menuCorner,\n                surfaceEl: this.surfaceEl,\n                anchorEl: this.anchor,\n                isTopLayer: this.fixed,\n                isOpen: this.open,\n                xOffset: this.xOffset,\n                yOffset: this.yOffset,\n                onOpen: this.onOpened,\n                beforeClose: this.beforeClose,\n                onClose: this.onClosed,\n            };\n        });\n        /**\n         * Saves the last focused element focuses the new element based on\n         * `defaultFocus`, and animates open.\n         */\n        this.onOpened = () => {\n            this.lastFocusedElement = getFocusedElement();\n            if (!this.listElement)\n                return;\n            const items = this.listElement.items;\n            const activeItemRecord = List.getActiveItem(items);\n            if (activeItemRecord && this.defaultFocus !== 'NONE') {\n                activeItemRecord.item.active = false;\n            }\n            switch (this.defaultFocus) {\n                case 'FIRST_ITEM':\n                    const first = List.getFirstActivatableItem(items);\n                    if (first) {\n                        first.active = true;\n                    }\n                    break;\n                case 'LAST_ITEM':\n                    const last = List.getLastActivatableItem(items);\n                    if (last) {\n                        last.active = true;\n                    }\n                    break;\n                case 'LIST_ROOT':\n                    this.listElement?.focus();\n                    break;\n                default:\n                case 'NONE':\n                    // Do nothing.\n                    break;\n            }\n            if (this.quick) {\n                this.dispatchEvent(new Event('opened'));\n            }\n            else {\n                this.animateOpen();\n            }\n        };\n        /**\n         * Animates closed.\n         */\n        this.beforeClose = async () => {\n            this.open = false;\n            if (!this.quick) {\n                await this.animateClose();\n            }\n        };\n        /**\n         * Focuses the last focused element.\n         */\n        this.onClosed = () => {\n            if (this.quick) {\n                this.dispatchEvent(new Event('closed'));\n            }\n            if (!this.skipRestoreFocus) {\n                this.lastFocusedElement?.focus?.();\n            }\n        };\n        this.onWindowClick = (e) => {\n            if (!this.stayOpenOnOutsideClick && !e.composedPath().includes(this)) {\n                this.open = false;\n            }\n        };\n    }\n    /**\n     * Whether the menu is animating upwards or downwards when opening. This is\n     * helpful for calculating some animation calculations.\n     */\n    get openDirection() {\n        const menuCornerBlock = this.menuCorner.split('_')[0];\n        return menuCornerBlock === 'START' ? 'DOWN' : 'UP';\n    }\n    /**\n     * The menu items associated with this menu. The items must be `MenuItem`s and\n     * have both the `md-menu-item` and `md-list-item` attributes.\n     */\n    get items() {\n        const listElement = this.listElement;\n        if (listElement) {\n            return listElement.items.filter(el => el.hasAttribute('md-menu-item'));\n        }\n        return [];\n    }\n    render() {\n        return this.renderSurface();\n    }\n    /**\n     * Renders the positionable surface element and its contents.\n     */\n    renderSurface() {\n        return html `\n       <div\n           class=\"menu ${classMap(this.getSurfaceClasses())}\"\n           style=${styleMap(this.menuPositionController.surfaceStyles)}>\n        ${this.renderList()} \n        ${this.renderElevation()}\n        ${this.renderFocusRing()}\n       </div>\n     `;\n    }\n    /**\n     * Renders the List element and its items\n     */\n    renderList() {\n        return html `\n       <md-list\n           .ariaLabel=${this.ariaLabel}\n           role=\"menu\"\n           listTabIndex=${this.listTabIndex}\n           @focus=${this.onListFocus}\n           @blur=${this.onListBlur}\n           @click=${this.onListClick}\n           @keydown=${this.typeaheadController.onKeydown}>\n         ${this.renderMenuItems()}\n       </md-list>`;\n    }\n    /**\n     * Renders the menu items' slot\n     */\n    renderMenuItems() {\n        return html `<slot\n        @close-menu=${this.onCloseMenu}\n        @deactivate-items=${this.onDeactivateItems}></slot>`;\n    }\n    /**\n     * Renders the elevation component.\n     */\n    renderElevation() {\n        return html `<md-elevation shadow surface></md-elevation>`;\n    }\n    /**\n     * Renders the focus ring component.\n     */\n    renderFocusRing() {\n        return html `<md-focus-ring></md-focus-ring>`;\n    }\n    getSurfaceClasses() {\n        return {\n            open: this.open,\n            fixed: this.fixed,\n            'has-overflow': this.hasOverflow,\n        };\n    }\n    onListFocus() {\n        this.focusRing.visible = shouldShowStrongFocus();\n    }\n    onListClick() {\n        pointerPress();\n        this.focusRing.visible = shouldShowStrongFocus();\n    }\n    onListBlur() {\n        this.focusRing.visible = false;\n    }\n    /**\n     * Performs the opening animation:\n     *\n     * https://direct.googleplex.com/#/spec/295000003+271060003\n     */\n    animateOpen() {\n        const surfaceEl = this.surfaceEl;\n        const slotEl = this.slotEl;\n        if (!surfaceEl || !slotEl)\n            return;\n        const openDirection = this.openDirection;\n        this.dispatchEvent(new Event('opening'));\n        // needs to be imperative because we don't want to mix animation and Lit\n        // render timing\n        surfaceEl.classList.toggle('animating', true);\n        const signal = this.openCloseAnimationSignal.start();\n        const height = surfaceEl.offsetHeight;\n        const openingUpwards = openDirection === 'UP';\n        const children = this.items;\n        const FULL_DURATION = 500;\n        const SURFACE_OPACITY_DURATION = 50;\n        const ITEM_OPACITY_DURATION = 250;\n        // We want to fit every child fade-in animation within the full duration of\n        // the animation.\n        const DELAY_BETWEEN_ITEMS = (FULL_DURATION - ITEM_OPACITY_DURATION) / children.length;\n        const surfaceHeightAnimation = surfaceEl.animate([{ height: '0px' }, { height: `${height}px` }], {\n            duration: FULL_DURATION,\n            easing: EASING.EMPHASIZED,\n        });\n        // When we are opening upwards, we want to make sure the last item is always\n        // in view, so we need to translate it upwards the opposite direction of the\n        // height animation\n        const upPositionCorrectionAnimation = slotEl.animate([\n            { transform: openingUpwards ? `translateY(-${height}px)` : '' },\n            { transform: '' }\n        ], { duration: FULL_DURATION, easing: EASING.EMPHASIZED });\n        const surfaceOpacityAnimation = surfaceEl.animate([{ opacity: 0 }, { opacity: 1 }], SURFACE_OPACITY_DURATION);\n        const childrenAnimations = [];\n        for (let i = 0; i < children.length; i++) {\n            // If we are animating upwards, then reverse the children list.\n            const directionalIndex = openingUpwards ? children.length - 1 - i : i;\n            const child = children[directionalIndex];\n            const animation = child.animate([{ opacity: 0 }, { opacity: 1 }], {\n                duration: ITEM_OPACITY_DURATION,\n                delay: DELAY_BETWEEN_ITEMS * i,\n            });\n            // Make them all initially hidden and then clean up at the end of each\n            // animation.\n            child.classList.toggle('hidden', true);\n            animation.addEventListener('finish', () => {\n                child.classList.toggle('hidden', false);\n            });\n            childrenAnimations.push([child, animation]);\n        }\n        signal.addEventListener('abort', () => {\n            surfaceHeightAnimation.cancel();\n            upPositionCorrectionAnimation.cancel();\n            surfaceOpacityAnimation.cancel();\n            childrenAnimations.forEach(([child, animation]) => {\n                child.classList.toggle('hidden', false);\n                animation.cancel();\n            });\n        });\n        surfaceHeightAnimation.addEventListener('finish', () => {\n            surfaceEl.classList.toggle('animating', false);\n            this.openCloseAnimationSignal.finish();\n            this.dispatchEvent(new Event('opened'));\n        });\n    }\n    /**\n     * Performs the closing animation:\n     *\n     * https://direct.googleplex.com/#/spec/295000003+271060003\n     */\n    animateClose() {\n        let resolve;\n        let reject;\n        // This promise blocks the surface position controller from setting\n        // display: none on the surface which will interfere with this animation.\n        const animationEnded = new Promise((res, rej) => {\n            resolve = res;\n            reject = rej;\n        });\n        const surfaceEl = this.surfaceEl;\n        const slotEl = this.slotEl;\n        if (!surfaceEl || !slotEl) {\n            reject();\n            return animationEnded;\n        }\n        const openDirection = this.openDirection;\n        const closingDownwards = openDirection === 'UP';\n        this.dispatchEvent(new Event('closing'));\n        // needs to be imperative because we don't want to mix animation and Lit\n        // render timing\n        surfaceEl.classList.toggle('animating', true);\n        const signal = this.openCloseAnimationSignal.start();\n        const height = surfaceEl.offsetHeight;\n        const children = this.items;\n        const FULL_DURATION = 150;\n        const SURFACE_OPACITY_DURATION = 50;\n        // The surface fades away at the very end\n        const SURFACE_OPACITY_DELAY = FULL_DURATION - SURFACE_OPACITY_DURATION;\n        const ITEM_OPACITY_DURATION = 50;\n        const ITEM_OPACITY_INITIAL_DELAY = 50;\n        const END_HEIGHT_PRECENTAGE = .35;\n        // We want to fit every child fade-out animation within the full duration of\n        // the animation.\n        const DELAY_BETWEEN_ITEMS = (FULL_DURATION - ITEM_OPACITY_INITIAL_DELAY - ITEM_OPACITY_DURATION) /\n            children.length;\n        // The mock has the animation shrink to 35%\n        const surfaceHeightAnimation = surfaceEl.animate([\n            { height: `${height}px` },\n            { height: `${height * END_HEIGHT_PRECENTAGE}px` }\n        ], {\n            duration: FULL_DURATION,\n            easing: EASING.EMPHASIZED_ACCELERATE,\n        });\n        // When we are closing downwards, we want to make sure the last item is\n        // always in view, so we need to translate it upwards the opposite direction\n        // of the height animation\n        const downPositionCorrectionAnimation = slotEl.animate([\n            { transform: '' }, {\n                transform: closingDownwards ?\n                    `translateY(-${height * (1 - END_HEIGHT_PRECENTAGE)}px)` :\n                    ''\n            }\n        ], { duration: FULL_DURATION, easing: EASING.EMPHASIZED_ACCELERATE });\n        const surfaceOpacityAnimation = surfaceEl.animate([{ opacity: 1 }, { opacity: 0 }], { duration: SURFACE_OPACITY_DURATION, delay: SURFACE_OPACITY_DELAY });\n        const childrenAnimations = [];\n        for (let i = 0; i < children.length; i++) {\n            // If the animation is closing upwards, then reverse the list of\n            // children so that we animate in the opposite direction.\n            const directionalIndex = closingDownwards ? i : children.length - 1 - i;\n            const child = children[directionalIndex];\n            const animation = child.animate([{ opacity: 1 }, { opacity: 0 }], {\n                duration: ITEM_OPACITY_DURATION,\n                delay: ITEM_OPACITY_INITIAL_DELAY + DELAY_BETWEEN_ITEMS * i,\n            });\n            // Make sure the items stay hidden at the end of each child animation.\n            // We clean this up at the end of the overall animation.\n            animation.addEventListener('finish', () => {\n                child.classList.toggle('hidden', true);\n            });\n            childrenAnimations.push([child, animation]);\n        }\n        signal.addEventListener('abort', () => {\n            surfaceHeightAnimation.cancel();\n            downPositionCorrectionAnimation.cancel();\n            surfaceOpacityAnimation.cancel();\n            childrenAnimations.forEach(([child, animation]) => {\n                animation.cancel();\n                child.classList.toggle('hidden', false);\n            });\n            reject();\n        });\n        surfaceHeightAnimation.addEventListener('finish', () => {\n            surfaceEl.classList.toggle('animating', false);\n            childrenAnimations.forEach(([child]) => {\n                child.classList.toggle('hidden', false);\n            });\n            this.openCloseAnimationSignal.finish();\n            this.dispatchEvent(new Event('closed'));\n            resolve(true);\n        });\n        return animationEnded;\n    }\n    connectedCallback() {\n        super.connectedCallback();\n        if (window && window.addEventListener) {\n            window.addEventListener('click', this.onWindowClick, { capture: true });\n        }\n    }\n    disconnectedCallback() {\n        super.disconnectedCallback();\n        if (window && window.removeEventListener) {\n            window.removeEventListener('click', this.onWindowClick);\n        }\n    }\n    onCloseMenu(e) {\n        this.close();\n    }\n    onDeactivateItems(e) {\n        e.stopPropagation();\n        const items = this.items;\n        for (const item of items) {\n            item.active = false;\n        }\n    }\n    focus() {\n        this.listElement?.focus();\n    }\n    close() {\n        this.open = false;\n        this.items.forEach(item => {\n            item.close?.();\n        });\n    }\n    show() {\n        this.open = true;\n    }\n}\n__decorate([\n    query('md-list'),\n    __metadata(\"design:type\", List)\n], Menu.prototype, \"listElement\", void 0);\n__decorate([\n    query('.menu'),\n    __metadata(\"design:type\", HTMLElement)\n], Menu.prototype, \"surfaceEl\", void 0);\n__decorate([\n    query('slot'),\n    __metadata(\"design:type\", HTMLSlotElement)\n], Menu.prototype, \"slotEl\", void 0);\n__decorate([\n    query('md-focus-ring'),\n    __metadata(\"design:type\", MdFocusRing)\n], Menu.prototype, \"focusRing\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-label', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], Menu.prototype, \"ariaLabel\", void 0);\n__decorate([\n    property({ attribute: false }),\n    __metadata(\"design:type\", HTMLElement)\n], Menu.prototype, \"anchor\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Menu.prototype, \"fixed\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Menu.prototype, \"quick\", void 0);\n__decorate([\n    property({ type: Boolean, attribute: 'has-overflow' }),\n    __metadata(\"design:type\", Object)\n], Menu.prototype, \"hasOverflow\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Menu.prototype, \"open\", void 0);\n__decorate([\n    property({ type: Number, attribute: 'x-offset' }),\n    __metadata(\"design:type\", Object)\n], Menu.prototype, \"xOffset\", void 0);\n__decorate([\n    property({ type: Number, attribute: 'y-offset' }),\n    __metadata(\"design:type\", Object)\n], Menu.prototype, \"yOffset\", void 0);\n__decorate([\n    property({ type: Number, attribute: 'list-tab-index' }),\n    __metadata(\"design:type\", Object)\n], Menu.prototype, \"listTabIndex\", void 0);\n__decorate([\n    property({ type: Number, attribute: 'typeahead-delay' }),\n    __metadata(\"design:type\", Object)\n], Menu.prototype, \"typeaheadBufferTime\", void 0);\n__decorate([\n    property({ type: String, attribute: 'anchor-corner' }),\n    __metadata(\"design:type\", String)\n], Menu.prototype, \"anchorCorner\", void 0);\n__decorate([\n    property({ type: String, attribute: 'menu-corner' }),\n    __metadata(\"design:type\", String)\n], Menu.prototype, \"menuCorner\", void 0);\n__decorate([\n    property({ type: Boolean, attribute: 'stay-open-on-outside-click' }),\n    __metadata(\"design:type\", Object)\n], Menu.prototype, \"stayOpenOnOutsideClick\", void 0);\n__decorate([\n    property({ type: Boolean, attribute: 'skip-restore-focus' }),\n    __metadata(\"design:type\", Object)\n], Menu.prototype, \"skipRestoreFocus\", void 0);\n__decorate([\n    property({ type: String, attribute: 'default-focus' }),\n    __metadata(\"design:type\", String)\n], Menu.prototype, \"defaultFocus\", void 0);\n//# sourceMappingURL=menu.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_cascading-menu-indicator-icon-color: var(--md-menu-cascading-menu-indicator-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_cascading-menu-indicator-icon-size: var(--md-menu-cascading-menu-indicator-icon-size, 24px);--_container-color: var(--md-menu-container-color, var(--md-sys-color-surface, #fffbfe));--_container-elevation: var(--md-menu-container-elevation, 3);--_container-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-menu-container-shape, 4px);--_container-surface-tint-layer-color: var(--md-menu-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--_list-item-container-height: var(--md-menu-list-item-container-height, 48px);--_list-item-disabled-label-text-color: var(--md-menu-list-item-disabled-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-disabled-label-text-opacity: var(--md-menu-list-item-disabled-label-text-opacity, 0.38);--_list-item-focus-label-text-color: var(--md-menu-list-item-focus-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-focus-state-layer-color: var(--md-menu-list-item-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-focus-state-layer-opacity: var(--md-menu-list-item-focus-state-layer-opacity, 0.12);--_list-item-hover-label-text-color: var(--md-menu-list-item-hover-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-hover-state-layer-color: var(--md-menu-list-item-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-hover-state-layer-opacity: var(--md-menu-list-item-hover-state-layer-opacity, 0.08);--_list-item-label-text-color: var(--md-menu-list-item-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-label-text-font: var(--md-menu-list-item-label-text-font, Roboto);--_list-item-label-text-line-height: var(--md-menu-list-item-label-text-line-height, 1.25rem);--_list-item-label-text-size: var(--md-menu-list-item-label-text-size, 0.875rem);--_list-item-label-text-tracking: var(--md-menu-list-item-label-text-tracking, 0.006rem);--_list-item-label-text-type: var(--md-menu-list-item-label-text-type, 500 0.875rem / 1.25rem Roboto);--_list-item-label-text-weight: var(--md-menu-list-item-label-text-weight, 500);--_list-item-pressed-label-text-color: var(--md-menu-list-item-pressed-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-pressed-state-layer-color: var(--md-menu-list-item-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-pressed-state-layer-opacity: var(--md-menu-list-item-pressed-state-layer-opacity, 0.12);--_list-item-selected-container-color: var(--md-menu-list-item-selected-container-color, var(--md-sys-color-surface-variant, #e7e0ec));--_list-item-with-leading-icon-disabled-leading-icon-color: var(--md-menu-list-item-with-leading-icon-disabled-leading-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-with-leading-icon-disabled-leading-icon-opacity: var(--md-menu-list-item-with-leading-icon-disabled-leading-icon-opacity, 0.38);--_list-item-with-leading-icon-focus-icon-color: var(--md-menu-list-item-with-leading-icon-focus-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-with-leading-icon-hover-icon-color: var(--md-menu-list-item-with-leading-icon-hover-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-with-leading-icon-leading-icon-color: var(--md-menu-list-item-with-leading-icon-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-with-leading-icon-leading-icon-size: var(--md-menu-list-item-with-leading-icon-leading-icon-size, 24px);--_list-item-with-leading-icon-pressed-icon-color: var(--md-menu-list-item-with-leading-icon-pressed-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-with-trailing-icon-disabled-trailing-icon-color: var(--md-menu-list-item-with-trailing-icon-disabled-trailing-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-with-trailing-icon-disabled-trailing-icon-opacity: var(--md-menu-list-item-with-trailing-icon-disabled-trailing-icon-opacity, 0.38);--_list-item-with-trailing-icon-focus-icon-color: var(--md-menu-list-item-with-trailing-icon-focus-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-with-trailing-icon-hover-icon-color: var(--md-menu-list-item-with-trailing-icon-hover-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-with-trailing-icon-pressed-icon-color: var(--md-menu-list-item-with-trailing-icon-pressed-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-with-trailing-icon-trailing-icon-color: var(--md-menu-list-item-with-trailing-icon-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-with-trailing-icon-trailing-icon-size: var(--md-menu-list-item-with-trailing-icon-trailing-icon-size, 24px);--md-elevation-level:var(--_container-elevation);--md-elevation-shadow-color:var(--_container-shadow-color);--md-elevation-surface-tint:var(--_container-surface-tint-layer-color);--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, var(--_container-shape))}.menu{border-radius:var(--_container-shape);display:none;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit}.menu.fixed{position:fixed}.menu md-list{height:inherit;max-height:inherit;display:block;overflow:auto}.menu.has-overflow md-list{overflow:visible}.menu.animating md-list{pointer-events:none;overflow:hidden}.menu.animating ::slotted(.hidden){opacity:0}.menu slot{display:block;height:inherit;max-height:inherit}md-elevation{position:absolute;inset:0;pointer-events:none}/*# sourceMappingURL=menu-styles.css.map */\n`;\n//# sourceMappingURL=menu-styles.css.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * The event that closes any parent menus. It is recommended to subclass and\n * dispatch this event rather than creating your own `close-menu` event.\n */\nexport class CloseMenuEvent extends Event {\n    constructor(initiator, reason) {\n        super('close-menu', { bubbles: true, composed: true });\n        this.initiator = initiator;\n        this.reason = reason;\n        this.itemPath = [initiator];\n    }\n}\n/**\n * The default close menu event used by md-menu. To create your own `close-menu`\n * event, you should subclass the `CloseMenuEvent` instead.\n */\n// tslint:disable-next-line\nexport const DefaultCloseMenuEvent = (CloseMenuEvent);\n/**\n * The event that requests the parent md-menu to deactivate all other items.\n */\nexport class DeactivateItemsEvent extends Event {\n    constructor() {\n        super('deactivate-items', { bubbles: true, composed: true });\n    }\n}\n/**\n * Keys that are used to navigate menus.\n */\nexport const NAVIGABLE_KEY = {\n    UP: 'ArrowUp',\n    DOWN: 'ArrowDown',\n    RIGHT: 'ArrowRight',\n    LEFT: 'ArrowLeft',\n};\n/**\n * Keys that are used for selection in menus.\n */\nexport const SELECTION_KEY = {\n    SPACE: 'Space',\n    ENTER: 'Enter',\n};\n/**\n * Default close `Reason` kind values.\n */\nexport const CLOSE_REASON = {\n    CLICK_SELECTION: 'CLICK_SELECTION',\n    KEYDOWN: 'KEYDOWN',\n};\n/**\n * Keys that can close menus.\n */\nexport const KEYDOWN_CLOSE_KEYS = {\n    ESCAPE: 'Escape',\n    SPACE: SELECTION_KEY.SPACE,\n    ENTER: SELECTION_KEY.ENTER,\n};\n/**\n * Determines whether the given key code is a key code that should close the\n * menu.\n *\n * @param code The KeyboardEvent code to check.\n * @return Whether or not the key code is in the predetermined list to close the\n * menu.\n */\nexport function isClosableKey(code) {\n    return Object.values(KEYDOWN_CLOSE_KEYS).some(value => (value === code));\n}\n/**\n * Determines whether the given key code is a key code that should select a menu\n * item.\n *\n * @param code They KeyboardEvent code to check.\n * @return Whether or not the key code is in the predetermined list to select a\n * menu item.\n */\nexport function isSelectableKey(code) {\n    return Object.values(SELECTION_KEY).some(value => (value === code));\n}\n//# sourceMappingURL=shared.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdList } from '../list/list.js';\nimport { MdElevation } from '../elevation/elevation.js';\n\nimport { Menu } from '@material/web/menu/lib/menu.js';\nimport { styles } from '@material/web/menu/lib/menu-styles.css.js';\n\nexport { ListItem } from '@material/web/list/lib/listitem/list-item.js';\nexport { Corner, DefaultFocusState } from '@material/web/menu/lib/menu.js';\nexport {\n  CloseMenuEvent,\n  DeactivateItemsEvent,\n  MenuItem,\n} from '@material/web/menu/lib/shared.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-menu': MdMenu;\n  }\n}\n\n/**\n * @summary Menus display a list of choices on a temporary surface.\n *\n * @description\n * Menus appear when users interact with a button, action, or other control.\n *\n * They can be opened from a variety of elements, most commonly icon buttons,\n * buttons, and text fields.\n *\n * md-menu listens for the `close-menu` and `deselect-items` events.\n *\n * - `close-menu` closes the menu when dispatched from a child element.\n * - `deselect-items` deselects all of its immediate menu-item children.\n *\n * @example\n * ```html\n * <div style=\"position:relative;\">\n *   <button\n *       class=\"anchor\"\n *       ${ref(anchorRef)}\n *       @click=${() => this.menuRef.value.show()}>\n *     Click to open menu\n *   </button>\n *   <!--\n *     `has-overflow` is required when using a submenu which overflows the\n *     menu's contents\n *   -->\n *   <md-menu has-overflow ${ref(menuRef)} ${(el) => el.anchor =\n * anchorRef.value}> <md-menu-item header=\"This is a header\"></md-menu-item>\n *     <md-sub-menu-item header=\"this is a submenu item\">\n *       <md-menu slot=\"submenu\">\n *         <md-menu-item\n *           header=\"This is an item inside a submenu\"></md-menu-item>\n *       </md-menu>\n *     </md-sub-menu>\n *   </md-menu>\n * </div>\n * ```\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdMenu extends ScopedElementsMixin(Menu) {\n  static override styles = [styles];\n\n  static get scopedElements() {\n    return {\n      'md-elevation': MdElevation,\n      'md-list': MdList,\n      'md-focus-ring': MdFocusRing,\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { property } from 'lit/decorators.js';\nimport { ListItemEl } from '../../../list/lib/listitem/list-item.js';\nimport { CLOSE_REASON, DefaultCloseMenuEvent, isClosableKey } from '../shared.js';\n/**\n * @fires close-menu {CloseMenuEvent}\n */\nexport class MenuItemEl extends ListItemEl {\n    constructor() {\n        super(...arguments);\n        this.role = 'menuitem';\n        /**\n         * READONLY: self-identifies as a menu item and sets its identifying attribute\n         */\n        this.isMenuItem = true;\n        /**\n         * Keeps the menu open if clicked or keyboard selected.\n         */\n        this.keepOpen = false;\n        /**\n         * Used for overriding e.g. sub-menu-item.\n         */\n        this.keepOpenOnClick = false;\n    }\n    onClick() {\n        if (this.keepOpen || this.keepOpenOnClick)\n            return;\n        this.dispatchEvent(new DefaultCloseMenuEvent(this, { kind: CLOSE_REASON.CLICK_SELECTION }));\n    }\n    onKeydown(e) {\n        if (this.keepOpen)\n            return;\n        const keyCode = e.code;\n        if (isClosableKey(keyCode)) {\n            e.preventDefault();\n            this.dispatchEvent(new DefaultCloseMenuEvent(this, { kind: CLOSE_REASON.KEYDOWN, key: keyCode }));\n        }\n    }\n}\n__decorate([\n    property({ type: Boolean, attribute: 'md-menu-item', reflect: true }),\n    __metadata(\"design:type\", Object)\n], MenuItemEl.prototype, \"isMenuItem\", void 0);\n__decorate([\n    property({ type: Boolean, attribute: 'keep-open' }),\n    __metadata(\"design:type\", Object)\n], MenuItemEl.prototype, \"keepOpen\", void 0);\n//# sourceMappingURL=menu-item.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_list-item-container-height: var(--md-menu-list-item-container-height, 48px);--_list-item-disabled-label-text-color: var(--md-menu-list-item-disabled-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-disabled-label-text-opacity: var(--md-menu-list-item-disabled-label-text-opacity, 0.38);--_list-item-focus-label-text-color: var(--md-menu-list-item-focus-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-focus-state-layer-color: var(--md-menu-list-item-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-focus-state-layer-opacity: var(--md-menu-list-item-focus-state-layer-opacity, 0.12);--_list-item-hover-label-text-color: var(--md-menu-list-item-hover-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-hover-state-layer-color: var(--md-menu-list-item-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-hover-state-layer-opacity: var(--md-menu-list-item-hover-state-layer-opacity, 0.08);--_list-item-label-text-color: var(--md-menu-list-item-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-label-text-type: var(--md-menu-list-item-label-text-type, 500 0.875rem / 1.25rem Roboto);--_list-item-pressed-label-text-color: var(--md-menu-list-item-pressed-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-pressed-state-layer-color: var(--md-menu-list-item-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-pressed-state-layer-opacity: var(--md-menu-list-item-pressed-state-layer-opacity, 0.12);--_list-item-selected-container-color: var(--md-menu-list-item-selected-container-color, var(--md-sys-color-surface-variant, #e7e0ec));--_list-item-disabled-leading-icon-color: var(--md-menu-list-item-disabled-leading-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-disabled-leading-icon-opacity: var(--md-menu-list-item-disabled-leading-icon-opacity, 0.38);--_list-item-focus-leading-icon-icon-color: var(--md-menu-list-item-focus-leading-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-hover-leading-icon-icon-color: var(--md-menu-list-item-hover-leading-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-leading-icon-color: var(--md-menu-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-leading-icon-size: var(--md-menu-list-item-leading-icon-size, 24px);--_list-item-pressed-leading-icon-icon-color: var(--md-menu-list-item-pressed-leading-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-disabled-trailing-icon-color: var(--md-menu-list-item-disabled-trailing-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_list-item-disabled-trailing-icon-opacity: var(--md-menu-list-item-disabled-trailing-icon-opacity, 0.38);--_list-item-focus-trailing-icon-icon-color: var(--md-menu-list-item-focus-trailing-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-hover-trailing-icon-icon-color: var(--md-menu-list-item-hover-trailing-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-pressed-trailing-icon-icon-color: var(--md-menu-list-item-pressed-trailing-icon-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-trailing-icon-color: var(--md-menu-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_list-item-trailing-icon-size: var(--md-menu-list-item-trailing-icon-size, 24px);--_list-item-one-line-container-height: var(--md-menu-list-item-one-line-container-height, 48px)}/*# sourceMappingURL=menu-item-private-styles.css.map */\n`;\n//# sourceMappingURL=menu-item-private-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host([active]) .list-item{background-color:var(--_list-item-selected-container-color)}.list-item:has(.submenu:hover){--md-ripple-hover-opacity:0}/*# sourceMappingURL=menu-item-styles.css.map */\n`;\n//# sourceMappingURL=menu-item-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { styles as listItemStyles } from '@material/web/list/lib/listitem/list-item-styles.css.js';\n\nimport { MenuItemEl } from '@material/web/menu/lib/menuitem/menu-item.js';\nimport { styles as privateProps } from '@material/web/menu/lib/menuitem/menu-item-private-styles.css.js';\nimport { styles } from '@material/web/menu/lib/menuitem/menu-item-styles.css.js';\n\nexport { ListItem } from '@material/web/list/lib/listitem/list-item.js';\nexport {\n  CloseMenuEvent,\n  DeactivateItemsEvent,\n  MenuItem,\n} from '@material/web/menu/lib/shared.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-menu-item': MdMenuItem;\n  }\n}\n\n/**\n * @summary Menus display a list of choices on a temporary surface.\n *\n * @description\n * Menu items are the selectable choices within the menu. Menu items must\n * implement the `MenuItem` interface and also have the `md-menu-item`\n * attribute. Additionally menu items are list items so they must also have the\n * `md-list-item` attribute.\n *\n * Menu items can control a menu by selectively firing the `close-menu` and\n * `deselect-items` events.\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdMenuItem extends MenuItemEl {\n  static override styles = [privateProps, listItemStyles, styles];\n}\n","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { property } from 'lit/decorators.js';\nimport { ListItemLink } from '../../../list/lib/listitemlink/list-item-link.js';\nimport { CLOSE_REASON, DefaultCloseMenuEvent, isClosableKey, SELECTION_KEY } from '../shared.js';\n/**\n * @fires close-menu {CloseMenuEvent}\n */\nexport class MenuItemLink extends ListItemLink {\n    constructor() {\n        super(...arguments);\n        this.role = 'menuitem';\n        /**\n         * READONLY: self-identifies as a menu item and sets its identifying attribute\n         */\n        this.isMenuItem = true;\n        /**\n         * Keeps the menu open if clicked or keyboard selected.\n         */\n        this.keepOpen = false;\n        this.keepOpenOnClick = false;\n    }\n    onClick() {\n        if (this.keepOpen || this.keepOpenOnClick)\n            return;\n        this.dispatchEvent(new DefaultCloseMenuEvent(this, { kind: CLOSE_REASON.CLICK_SELECTION }));\n    }\n    onKeydown(e) {\n        if (this.keepOpen)\n            return;\n        const keyCode = e.code;\n        // Do not preventDefault on enter or else it will prevent from opening links\n        if (isClosableKey(keyCode) && keyCode !== SELECTION_KEY.ENTER) {\n            e.preventDefault();\n            this.dispatchEvent(new DefaultCloseMenuEvent(this, { kind: CLOSE_REASON.KEYDOWN, key: keyCode }));\n        }\n    }\n}\n__decorate([\n    property({ type: Boolean, attribute: 'md-menu-item', reflect: true }),\n    __metadata(\"design:type\", Object)\n], MenuItemLink.prototype, \"isMenuItem\", void 0);\n__decorate([\n    property({ type: Boolean, attribute: 'keep-open' }),\n    __metadata(\"design:type\", Object)\n], MenuItemLink.prototype, \"keepOpen\", void 0);\n//# sourceMappingURL=menu-item-link.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport {styles as listItemStyles} from '@material/web/list/lib/listitem/list-item-styles.css.js';\n\nimport {styles as privateProps} from '@material/web/menu/lib/menuitem/menu-item-private-styles.css.js';\nimport {styles} from '@material/web/menu/lib/menuitem/menu-item-styles.css.js';\nimport {MenuItemLink} from '@material/web/menu/lib/menuitemlink/menu-item-link.js';\n\nexport {ListItem} from '@material/web/list/lib/listitem/list-item.js';\nexport {CloseMenuEvent, DeactivateItemsEvent, MenuItem} from '@material/web/menu/lib/shared.js';\n\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-menu-item-link': MdMenuItemLink;\n  }\n}\n\n/**\n * @summary Menus display a list of choices on a temporary surface.\n *\n * @description\n * Menu items are the selectable choices within the menu. Menu items must\n * implement the `MenuItem` interface and also have the `md-menu-item`\n * attribute. Additionally menu items are list items so they must also have the\n * `md-list-item` attribute.\n *\n * Menu items can control a menu by selectively firing the `close-menu` and\n * `deselect-items` events.\n *\n * This is a linkable variant.\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdMenuItemLink extends MenuItemLink {\n  static override styles = [privateProps, listItemStyles, styles];\n}\n","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\nimport { List } from '../../../list/lib/list.js';\nimport { MenuItemEl } from '../menuitem/menu-item.js';\nimport { CLOSE_REASON, DeactivateItemsEvent, KEYDOWN_CLOSE_KEYS, NAVIGABLE_KEY, SELECTION_KEY } from '../shared.js';\nfunction stopPropagation(e) {\n    e.stopPropagation();\n}\n/**\n * @fires deactivate-items {DeactivateItemsEvent} Requests the parent menu to\n *     deselect other items when a submenu opens\n */\nexport class SubMenuItem extends MenuItemEl {\n    constructor() {\n        super(...arguments);\n        this.role = 'menuitem';\n        /**\n         * The anchorCorner to set on the submenu.\n         */\n        this.anchorCorner = 'START_END';\n        /**\n         * The menuCorner to set on the submenu.\n         */\n        this.menuCorner = 'START_START';\n        /**\n         * The delay between pointerenter and submenu opening.\n         */\n        this.hoverOpenDelay = 400;\n        /**\n         * The delay between ponterleave and the submenu closing.\n         */\n        this.hoverCloseDelay = 400;\n        this.keepOpenOnClick = true;\n        this.previousOpenTimeout = 0;\n        this.previousCloseTimeout = 0;\n        this.submenuOpen = false;\n        /**\n         * Starts the default 400ms countdown to open the submenu.\n         */\n        this.onPointerenter = () => {\n            clearTimeout(this.previousOpenTimeout);\n            clearTimeout(this.previousCloseTimeout);\n            if (this.submenuEl?.open)\n                return;\n            // Open synchronously if delay is 0. (screenshot tests infra\n            // would never resolve otherwise)\n            if (!this.hoverOpenDelay) {\n                this.show();\n            }\n            else {\n                this.previousOpenTimeout = setTimeout(() => {\n                    this.show();\n                }, this.hoverOpenDelay);\n            }\n        };\n        /**\n         * Starts the default 400ms countdown to close the submenu.\n         */\n        this.onPointerleave = () => {\n            clearTimeout(this.previousCloseTimeout);\n            clearTimeout(this.previousOpenTimeout);\n            // Close synchronously if delay is 0. (screenshot tests infra\n            // would never resolve otherwise)\n            if (!this.hoverCloseDelay) {\n                this.close();\n            }\n            else {\n                this.previousCloseTimeout = setTimeout(() => {\n                    this.close();\n                }, this.hoverCloseDelay);\n            }\n        };\n    }\n    get submenuEl() {\n        return this.menus[0];\n    }\n    onClick() {\n        this.show();\n    }\n    /**\n     * On item keydown handles opening the submenu.\n     */\n    onKeydown(e) {\n        const shouldOpenSubmenu = this.isSubmenuOpenKey(e.code);\n        if (e.code === SELECTION_KEY.SPACE) {\n            // prevent space from scrolling. Only open the submenu.\n            e.preventDefault();\n        }\n        if (!shouldOpenSubmenu) {\n            super.onKeydown(e);\n            return;\n        }\n        const submenu = this.submenuEl;\n        if (!submenu)\n            return;\n        const submenuItems = submenu.items;\n        const firstActivatableItem = List.getFirstActivatableItem(submenuItems);\n        if (firstActivatableItem) {\n            this.show(() => {\n                firstActivatableItem.active = true;\n            });\n            return;\n        }\n    }\n    /**\n     * Render the submenu at the end\n     */\n    renderEnd() {\n        return html `${super.renderEnd()}${this.renderSubMenu()}`;\n    }\n    /**\n     * Renders the slot for the submenu.\n     */\n    renderSubMenu() {\n        return html `<span class=\"submenu\"><slot\n        name=\"submenu\"\n        @pointerdown=${stopPropagation}\n        @click=${stopPropagation}\n        @keydown=${this.onSubMenuKeydown}\n        @close-menu=${this.onCloseSubmenu}\n    ></slot></span>`;\n    }\n    onCloseSubmenu(e) {\n        e.itemPath.push(this);\n        // Escape should only close one menu not all of the menus unlike space or\n        // click selection which should close all menus.\n        if (e.reason.kind === CLOSE_REASON.KEYDOWN &&\n            e.reason.key === KEYDOWN_CLOSE_KEYS.ESCAPE) {\n            e.stopPropagation();\n            this.active = true;\n            // It might already be active so manually focus\n            this.listItemRoot.focus();\n            return;\n        }\n        this.active = false;\n    }\n    async onSubMenuKeydown(e) {\n        // Stop propagation so that we don't accidentally close every parent menu.\n        // Additionally, we want to isolate things like the typeahead keydowns\n        // from bubbling up to the parent menu and confounding things.\n        e.stopPropagation();\n        const shouldClose = this.isSubmenuCloseKey(e.code);\n        if (!shouldClose)\n            return;\n        this.close(() => {\n            List.deactivateActiveItem(this.submenuEl.items);\n            this.listItemRoot.focus();\n            this.active = true;\n        });\n    }\n    /**\n     * Shows the submenu.\n     *\n     * @param onOpened A function to call after the menu is opened.\n     */\n    show(onOpened = () => { }) {\n        const menu = this.submenuEl;\n        if (!menu)\n            return;\n        menu.quick = true;\n        // Submenus are in overflow when not fixed. Can remove once we have native\n        // popup support\n        menu.hasOverflow = true;\n        menu.anchorCorner = this.anchorCorner;\n        menu.menuCorner = this.menuCorner;\n        menu.anchor = this;\n        // We manually set focus with `active` on keyboard navigation. And we\n        // want to focus the root on hover, so the user can pick up navigation with\n        // keyboard after hover.\n        menu.defaultFocus = 'LIST_ROOT';\n        menu.skipRestoreFocus = true;\n        // Menu could already be opened because of mouse interaction\n        const menuAlreadyOpen = menu.open;\n        menu.show();\n        // Deactivate other items. This can be the case if the user has tabbed\n        // around the menu and then mouses over an md-sub-menu.\n        this.dispatchEvent(new DeactivateItemsEvent());\n        this.active = true;\n        // This is the case of mouse hovering when already opened via keyboard or\n        // vice versa\n        if (menuAlreadyOpen) {\n            onOpened();\n        }\n        else {\n            menu.addEventListener('opened', onOpened, { once: true });\n        }\n    }\n    /**\n     * Closes the submenu.\n     *\n     * @param onClosed A function to call after the menu is closed.\n     */\n    close(onClosed = () => { }) {\n        const menu = this.submenuEl;\n        if (!menu || !menu.open)\n            return;\n        menu.quick = true;\n        menu.close();\n        this.active = false;\n        menu.addEventListener('closed', onClosed, { once: true });\n    }\n    /**\n     * Determines whether the given KeyboardEvent code is one that should open\n     * the submenu. This is RTL-aware. By default, left, right, space, or enter.\n     *\n     * @param code The native KeyboardEvent code.\n     * @return Whether or not the key code should open the submenu.\n     */\n    isSubmenuOpenKey(code) {\n        const isRtl = getComputedStyle(this).direction === 'rtl';\n        const arrowEnterKey = isRtl ? NAVIGABLE_KEY.LEFT : NAVIGABLE_KEY.RIGHT;\n        switch (code) {\n            case arrowEnterKey:\n            case SELECTION_KEY.SPACE:\n            case SELECTION_KEY.ENTER:\n                return true;\n            default:\n                return false;\n        }\n    }\n    /**\n     * Determines whether the given KeyboardEvent code is one that should close\n     * the submenu. This is RTL-aware. By default right, left, or escape.\n     *\n     * @param code The native KeyboardEvent code.\n     * @return Whether or not the key code should close the submenu.\n     */\n    isSubmenuCloseKey(code) {\n        const isRtl = getComputedStyle(this).direction === 'rtl';\n        const arrowEnterKey = isRtl ? NAVIGABLE_KEY.RIGHT : NAVIGABLE_KEY.LEFT;\n        switch (code) {\n            case arrowEnterKey:\n            case KEYDOWN_CLOSE_KEYS.ESCAPE:\n                return true;\n            default:\n                return false;\n        }\n    }\n}\n__decorate([\n    property({ attribute: 'anchor-corner' }),\n    __metadata(\"design:type\", String)\n], SubMenuItem.prototype, \"anchorCorner\", void 0);\n__decorate([\n    property({ attribute: 'menu-corner' }),\n    __metadata(\"design:type\", String)\n], SubMenuItem.prototype, \"menuCorner\", void 0);\n__decorate([\n    property({ type: Number, attribute: 'hover-open-delay' }),\n    __metadata(\"design:type\", Object)\n], SubMenuItem.prototype, \"hoverOpenDelay\", void 0);\n__decorate([\n    property({ type: Number, attribute: 'hover-close-delay' }),\n    __metadata(\"design:type\", Object)\n], SubMenuItem.prototype, \"hoverCloseDelay\", void 0);\n__decorate([\n    queryAssignedElements({ slot: 'submenu' }),\n    __metadata(\"design:type\", Array)\n], SubMenuItem.prototype, \"menus\", void 0);\n//# sourceMappingURL=sub-menu-item.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {customElement} from 'lit/decorators.js';\n\nimport {styles as listItemStyles} from '@material/web/list/lib/listitem/list-item-styles.css.js';\n\nimport {styles as privateProps} from '@material/web/menu/lib/menuitem/menu-item-private-styles.css.js';\nimport {styles} from '@material/web/menu/lib/menuitem/menu-item-styles.css.js';\nimport {SubMenuItem} from '@material/web/menu/lib/submenuitem/sub-menu-item.js';\n\nexport {ListItem} from '@material/web/list/lib/listitem/list-item.js';\nexport {CloseMenuEvent, DeactivateItemsEvent, MenuItem} from '@material/web/menu/lib/shared.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-sub-menu-item': MdSubMenuItem;\n  }\n}\n\n/**\n * @summary Menus display a list of choices on a temporary surface.\n *\n * @description\n * Menu items are the selectable choices within the menu. Menu items must\n * implement the `MenuItem` interface and also have the `md-menu-item`\n * attribute. Additionally menu items are list items so they must also have the\n * `md-list-item` attribute.\n *\n * Menu items can control a menu by selectively firing the `close-menu` and\n * `deselect-items` events.\n *\n * This menu item will open a sub-menu that is slotted in the `submenu` slot.\n * Additionally, the containing menu must either have `has-overflow` or `fixed`\n * set to `true` in order to display the containing menu properly.\n *\n * @example\n * ```html\n * <div style=\"position:relative;\">\n *   <button\n *       class=\"anchor\"\n *       ${ref(anchorRef)}\n *       @click=${() => this.menuRef.value.show()}>\n *     Click to open menu\n *   </button>\n *   <!--\n *     `has-overflow` is required when using a submenu which overflows the\n *     menu's contents\n *   -->\n *   <md-menu has-overflow ${ref(menuRef)} ${(el) => el.anchor =\n * anchorRef.value}> <md-menu-item header=\"This is a header\"></md-menu-item>\n *     <md-sub-menu-item header=\"this is a submenu item\">\n *       <md-menu slot=\"submenu\">\n *         <md-menu-item\n *           header=\"This is an item inside a submenu\"></md-menu-item>\n *       </md-menu>\n *     </md-sub-menu>\n *   </md-menu>\n * </div>\n * ```\n *\n * @final\n * @suppress {visibility}\n */\n\nexport class MdSubMenuItem extends SubMenuItem {\n  static override styles = [privateProps, listItemStyles, styles];\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdElevation } from '../elevation/elevation.js';\n\nimport { MenuSurface } from '@material/web/menusurface/lib/menu-surface.js';\nimport { styles } from '@material/web/menusurface/lib/menu-surface-styles.css.js';\n\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-menu-surface': MdMenuSurface;\n  }\n}\n\nexport class MdMenuSurface extends ScopedElementsMixin(MenuSurface) {\n  static override styles = [styles];\n\n  static get scopedElements() {\n    return {\n      'md-elevation': MdElevation,\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport '../../elevation/elevation.js';\nimport { html, LitElement } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { isRtl } from '../../controller/is-rtl.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\n/** @soyCompatible */\nexport class NavigationBar extends LitElement {\n    constructor() {\n        super(...arguments);\n        this.activeIndex = 0;\n        this.hideInactiveLabels = false;\n        this.tabs = [];\n    }\n    /** @soyTemplate */\n    render() {\n        return html `<div class=\"md3-navigation-bar\"\n            role=\"tablist\"\n            aria-label=\"${ifDefined(this.ariaLabel || undefined)}\"\n            @keydown=\"${this.handleKeydown}\"\n            @navigation-tab-interaction=\"${this.handleNavigationTabInteraction}\"\n            @navigation-tab-rendered=${this.handleNavigationTabConnected}\n          ><md-elevation shadow surface\n          ></md-elevation><div class=\"md3-navigation-bar__tabs-slot-container\"\n        ><slot></slot></div></div>`;\n    }\n    updated(changedProperties) {\n        if (changedProperties.has('activeIndex')) {\n            this.onActiveIndexChange(this.activeIndex);\n            this.dispatchEvent(new CustomEvent('navigation-bar-activated', {\n                detail: { tab: this.tabs[this.activeIndex], activeIndex: this.activeIndex },\n                bubbles: true,\n                composed: true\n            }));\n        }\n        if (changedProperties.has('hideInactiveLabels')) {\n            this.onHideInactiveLabelsChange(this.hideInactiveLabels);\n        }\n        if (changedProperties.has('tabs')) {\n            this.onHideInactiveLabelsChange(this.hideInactiveLabels);\n            this.onActiveIndexChange(this.activeIndex);\n        }\n    }\n    firstUpdated(changedProperties) {\n        super.firstUpdated(changedProperties);\n        this.layout();\n    }\n    layout() {\n        if (!this.tabsElement)\n            return;\n        const navTabs = [];\n        for (const node of this.tabsElement) {\n            navTabs.push(node);\n        }\n        this.tabs = navTabs;\n    }\n    handleNavigationTabConnected(event) {\n        const target = event.target;\n        if (this.tabs.indexOf(target) === -1) {\n            this.layout();\n        }\n    }\n    handleNavigationTabInteraction(event) {\n        this.activeIndex = this.tabs.indexOf(event.detail.state);\n    }\n    handleKeydown(event) {\n        const key = event.key;\n        const focusedTabIndex = this.tabs.findIndex((tab) => {\n            return tab.matches(':focus-within');\n        });\n        const isRTL = isRtl(this);\n        const maxIndex = this.tabs.length - 1;\n        if (key === 'Enter' || key === ' ') {\n            this.activeIndex = focusedTabIndex;\n            return;\n        }\n        if (key === 'Home') {\n            this.tabs[0].focus();\n            return;\n        }\n        if (key === 'End') {\n            this.tabs[maxIndex].focus();\n            return;\n        }\n        const toNextTab = (key === 'ArrowRight' && !isRTL) || (key === 'ArrowLeft' && isRTL);\n        if (toNextTab && focusedTabIndex === maxIndex) {\n            this.tabs[0].focus();\n            return;\n        }\n        if (toNextTab) {\n            this.tabs[focusedTabIndex + 1].focus();\n            return;\n        }\n        const toPreviousTab = (key === 'ArrowLeft' && !isRTL) || (key === 'ArrowRight' && isRTL);\n        if (toPreviousTab && focusedTabIndex === 0) {\n            this.tabs[maxIndex].focus();\n            return;\n        }\n        if (toPreviousTab) {\n            this.tabs[focusedTabIndex - 1].focus();\n            return;\n        }\n    }\n    onActiveIndexChange(value) {\n        if (!this.tabs[value]) {\n            throw new Error('NavigationBar: activeIndex is out of bounds.');\n        }\n        for (let i = 0; i < this.tabs.length; i++) {\n            this.tabs[i].active = i === value;\n        }\n    }\n    onHideInactiveLabelsChange(value) {\n        for (const tab of this.tabs) {\n            tab.hideInactiveLabel = value;\n        }\n    }\n}\n__decorate([\n    property({ type: Number }),\n    __metadata(\"design:type\", Object)\n], NavigationBar.prototype, \"activeIndex\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], NavigationBar.prototype, \"hideInactiveLabels\", void 0);\n__decorate([\n    queryAssignedElements({ flatten: true }),\n    __metadata(\"design:type\", Array)\n], NavigationBar.prototype, \"tabsElement\", void 0);\n__decorate([\n    ariaProperty,\n    property({ attribute: 'data-aria-label', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], NavigationBar.prototype, \"ariaLabel\", void 0);\n//# sourceMappingURL=navigation-bar.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_active-indicator-color: var(--md-navigation-bar-active-indicator-color, var(--md-sys-color-secondary-container, #e8def8));--_active-indicator-height: var(--md-navigation-bar-active-indicator-height, 32px);--_active-indicator-shape: var(--md-navigation-bar-active-indicator-shape, 9999px);--_active-indicator-width: var(--md-navigation-bar-active-indicator-width, 64px);--_active-focus-icon-color: var(--md-navigation-bar-active-focus-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_active-focus-label-text-color: var(--md-navigation-bar-active-focus-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_active-focus-state-layer-color: var(--md-navigation-bar-active-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_active-hover-icon-color: var(--md-navigation-bar-active-hover-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_active-hover-label-text-color: var(--md-navigation-bar-active-hover-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_active-hover-state-layer-color: var(--md-navigation-bar-active-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_active-icon-color: var(--md-navigation-bar-active-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_active-label-text-color: var(--md-navigation-bar-active-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_active-label-text-weight: var(--md-navigation-bar-active-label-text-weight, 700);--_active-pressed-icon-color: var(--md-navigation-bar-active-pressed-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_active-pressed-label-text-color: var(--md-navigation-bar-active-pressed-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_active-pressed-state-layer-color: var(--md-navigation-bar-active-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_container-color: var(--md-navigation-bar-container-color, var(--md-sys-color-surface, #fffbfe));--_container-elevation: var(--md-navigation-bar-container-elevation, 2);--_container-height: var(--md-navigation-bar-container-height, 80px);--_container-shape: var(--md-navigation-bar-container-shape, 0px);--_container-surface-tint-layer-color: var(--md-navigation-bar-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-opacity: var(--md-navigation-bar-focus-state-layer-opacity, 0.12);--_hover-state-layer-opacity: var(--md-navigation-bar-hover-state-layer-opacity, 0.08);--_icon-size: var(--md-navigation-bar-icon-size, 24px);--_inactive-focus-icon-color: var(--md-navigation-bar-inactive-focus-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-focus-label-text-color: var(--md-navigation-bar-inactive-focus-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-focus-state-layer-color: var(--md-navigation-bar-inactive-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-hover-icon-color: var(--md-navigation-bar-inactive-hover-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-hover-label-text-color: var(--md-navigation-bar-inactive-hover-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-hover-state-layer-color: var(--md-navigation-bar-inactive-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-icon-color: var(--md-navigation-bar-inactive-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_inactive-label-text-color: var(--md-navigation-bar-inactive-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_inactive-pressed-icon-color: var(--md-navigation-bar-inactive-pressed-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-pressed-label-text-color: var(--md-navigation-bar-inactive-pressed-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-pressed-state-layer-color: var(--md-navigation-bar-inactive-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_label-text-font: var(--md-navigation-bar-label-text-font, Roboto);--_label-text-line-height: var(--md-navigation-bar-label-text-line-height, 1rem);--_label-text-size: var(--md-navigation-bar-label-text-size, 0.75rem);--_label-text-tracking: var(--md-navigation-bar-label-text-tracking, 0.031rem);--_label-text-type: var(--md-navigation-bar-label-text-type, 500 0.75rem / 1rem Roboto);--_label-text-weight: var(--md-navigation-bar-label-text-weight, 500);--_pressed-state-layer-opacity: var(--md-navigation-bar-pressed-state-layer-opacity, 0.12);--md-elevation-duration:280ms;--md-elevation-level:var(--_container-elevation);--md-elevation-shadow-color:var(--_container-shadow-color);--md-elevation-surface-tint:var(--_container-surface-tint-layer-color);width:100%}.md3-navigation-bar{display:flex;position:relative;width:100%;background-color:var(--_container-color);border-radius:var(--_container-shape);height:var(--_container-height)}.md3-navigation-bar .md3-navigation-bar__tabs-slot-container{display:inherit;width:inherit}md-elevation{inset:0;position:absolute;z-index:0}/*# sourceMappingURL=navigation-bar-styles.css.map */\n`;\n//# sourceMappingURL=navigation-bar-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {MdElevation} from '../elevation/elevation.js';\n\nimport {NavigationBar} from '@material/web/navigationbar/lib/navigation-bar.js';\nimport {styles} from '@material/web/navigationbar/lib/navigation-bar-styles.css.js';\n\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-navigation-bar': MdNavigationBar;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdNavigationBar extends ScopedElementsMixin(NavigationBar) {\n  static override styles = [styles];\n  \n  static get scopedElements() {\n    return {\n      'md-elevation': MdElevation\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport '../../elevation/elevation.js';\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\n/** @soyCompatible */\nexport class NavigationDrawer extends LitElement {\n    constructor() {\n        super(...arguments);\n        // tslint:disable-next-line:no-new-decorators\n        this.ariaModal = 'false';\n        this.opened = false;\n        this.pivot = 'end';\n    }\n    /** @soyTemplate */\n    render() {\n        const ariaExpanded = this.opened ? 'true' : 'false';\n        const ariaHidden = !this.opened ? 'true' : 'false';\n        return html `\n      <div\n        aria-describedby=\"${ifDefined(this.ariaDescribedBy)}\"\n        aria-expanded=\"${ariaExpanded}\"\n        aria-hidden=\"${ariaHidden}\"\n        aria-label=\"${ifDefined(this.ariaLabel)}\"\n        aria-labelledby=\"${ifDefined(this.ariaLabelledBy)}\"\n        aria-modal=\"${this.ariaModal}\"\n        class=\"md3-navigation-drawer ${this.getRenderClasses()}\"\n        role=\"dialog\">\n        <md-elevation shadow surface></md-elevation>\n        <div class=\"md3-navigation-drawer__slot-content\">\n          <slot></slot>\n        </div>\n      </div>\n    `;\n    }\n    /** @soyTemplate classMap */\n    getRenderClasses() {\n        return classMap({\n            'md3-navigation-drawer--opened': this.opened,\n            'md3-navigation-drawer--pivot-at-start': this.pivot === 'start',\n        });\n    }\n    updated(changedProperties) {\n        if (changedProperties.has('opened')) {\n            setTimeout(() => {\n                this.dispatchEvent(new CustomEvent('navigation-drawer-changed', { detail: { opened: this.opened }, bubbles: true, composed: true }));\n            }, 250);\n        }\n    }\n}\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-describedby', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], NavigationDrawer.prototype, \"ariaDescribedBy\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-label', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], NavigationDrawer.prototype, \"ariaLabel\", void 0);\n__decorate([\n    ariaProperty,\n    property({ attribute: 'data-aria-modal', type: String, noAccessor: true }),\n    __metadata(\"design:type\", String)\n], NavigationDrawer.prototype, \"ariaModal\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-labelledby', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], NavigationDrawer.prototype, \"ariaLabelledBy\", void 0);\n__decorate([\n    property({ type: Boolean }) // tslint:disable-next-line:no-new-decorators\n    ,\n    __metadata(\"design:type\", Object)\n], NavigationDrawer.prototype, \"opened\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", String)\n], NavigationDrawer.prototype, \"pivot\", void 0);\n//# sourceMappingURL=navigation-drawer.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-navigation-drawer-container-shape-start-start, var(--md-navigation-drawer-container-shape, 0));--_container-shape-start-end: var(--md-navigation-drawer-container-shape-start-end, var(--md-navigation-drawer-container-shape, 16px));--_container-shape-end-end: var(--md-navigation-drawer-container-shape-end-end, var(--md-navigation-drawer-container-shape, 16px));--_container-shape-end-start: var(--md-navigation-drawer-container-shape-end-start, var(--md-navigation-drawer-container-shape, 0));--_container-color: var(--md-navigation-drawer-container-color, #fff);--_container-height: var(--md-navigation-drawer-container-height, 100%);--_container-surface-tint-layer-color: ;--_container-width: var(--md-navigation-drawer-container-width, 360px);--_divider-color: var(--md-navigation-drawer-divider-color, #000);--_modal-container-elevation: var(--md-navigation-drawer-modal-container-elevation, 1);--_standard-container-elevation: var(--md-navigation-drawer-standard-container-elevation, 0);--md-elevation-level:var(--_standard-container-elevation);--md-elevation-shadow-color:var(--_divider-color);--md-elevation-surface-tint:var(--_container-surface-tint-layer-color)}:host{display:flex}.md3-navigation-drawer{inline-size:0;box-sizing:border-box;display:flex;justify-content:flex-end;overflow:hidden;overflow-y:auto;visibility:hidden;transition:inline-size .25s cubic-bezier(0.4, 0, 0.2, 1) 0s,visibility 0s cubic-bezier(0.4, 0, 0.2, 1) .25s}md-elevation{inset:0;position:absolute;width:inherit;z-index:0}.md3-navigation-drawer--opened{visibility:visible;transition:inline-size .25s cubic-bezier(0.4, 0, 0.2, 1) 0s,visibility 0s cubic-bezier(0.4, 0, 0.2, 1) 0s}.md3-navigation-drawer--pivot-at-start{justify-content:flex-start}.md3-navigation-drawer__slot-content{display:flex;flex-direction:column;position:relative}/*# sourceMappingURL=navigation-drawer-styles.css.map */\n`;\n//# sourceMappingURL=navigation-drawer-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `.md3-navigation-drawer-modal{background-color:var(--_container-color);border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-end-radius:var(--_container-shape-end-end);border-end-start-radius:var(--_container-shape-end-start);height:var(--_container-height)}.md3-navigation-drawer-modal.md3-navigation-drawer-modal--opened{inline-size:var(--_container-width)}.md3-navigation-drawer-modal .md3-navigation-drawer-modal__slot-content{min-inline-size:var(--_container-width);max-inline-size:var(--_container-width)}/*# sourceMappingURL=shared-styles.css.map */\n`;\n//# sourceMappingURL=shared-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {MdElevation} from '../elevation/elevation.js';\n\nimport {NavigationDrawer} from '@material/web/navigationdrawer/lib/navigation-drawer.js';\nimport {styles} from '@material/web/navigationdrawer/lib/navigation-drawer-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/navigationdrawer/lib/shared-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-navigation-drawer': MdNavigationDrawer;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdNavigationDrawer extends ScopedElementsMixin(NavigationDrawer) {\n  static override readonly styles = [sharedStyles, styles];\n  \n  static get scopedElements() {\n    return {\n      'md-elevation': MdElevation\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\n/** @soyCompatible */\nexport class NavigationDrawerModal extends LitElement {\n    constructor() {\n        super(...arguments);\n        // tslint:disable-next-line:no-new-decorators\n        this.ariaModal = 'false';\n        this.opened = false;\n        this.pivot = 'end';\n    }\n    /** @soyTemplate */\n    render() {\n        const ariaExpanded = this.opened ? 'true' : 'false';\n        const ariaHidden = !this.opened ? 'true' : 'false';\n        return html `\n      <div\n        class=\"md3-navigation-drawer-modal__scrim ${this.getScrimClasses()}\"\n        @click=\"${this.handleScrimClick}\">\n      </div>\n      <div\n        aria-describedby=\"${ifDefined(this.ariaDescribedBy)}\"\n        aria-expanded=\"${ariaExpanded}\"\n        aria-hidden=\"${ariaHidden}\"\n        aria-label=\"${ifDefined(this.ariaLabel)}\"\n        aria-labelledby=\"${ifDefined(this.ariaLabelledBy)}\"\n        aria-modal=\"${this.ariaModal}\"\n        class=\"md3-navigation-drawer-modal ${this.getRenderClasses()}\"\n        @keydown=\"${this.handleKeyDown}\"\n        role=\"dialog\"><div class=\"md3-elevation-overlay\"\n        ></div>\n        <div class=\"md3-navigation-drawer-modal__slot-content\">\n          <slot></slot>\n        </div>\n      </div>\n    `;\n    }\n    /** @soyTemplate classMap */\n    getScrimClasses() {\n        return classMap({\n            'md3-navigation-drawer-modal--scrim-visible': this.opened,\n        });\n    }\n    /** @soyTemplate classMap */\n    getRenderClasses() {\n        return classMap({\n            'md3-navigation-drawer-modal--opened': this.opened,\n            'md3-navigation-drawer-modal--pivot-at-start': this.pivot === 'start',\n        });\n    }\n    updated(changedProperties) {\n        if (changedProperties.has('opened')) {\n            setTimeout(() => {\n                this.dispatchEvent(new CustomEvent('navigation-drawer-changed', { detail: { opened: this.opened }, bubbles: true, composed: true }));\n            }, 250);\n        }\n    }\n    handleKeyDown(e) {\n        if (e.code === 'Escape') {\n            this.opened = false;\n        }\n    }\n    handleScrimClick() {\n        this.opened = !this.opened;\n    }\n}\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-describedby', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], NavigationDrawerModal.prototype, \"ariaDescribedBy\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-label', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], NavigationDrawerModal.prototype, \"ariaLabel\", void 0);\n__decorate([\n    ariaProperty,\n    property({ attribute: 'data-aria-modal', type: String, noAccessor: true }),\n    __metadata(\"design:type\", String)\n], NavigationDrawerModal.prototype, \"ariaModal\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-labelledby', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], NavigationDrawerModal.prototype, \"ariaLabelledBy\", void 0);\n__decorate([\n    property({ type: Boolean }) // tslint:disable-next-line:no-new-decorators\n    ,\n    __metadata(\"design:type\", Object)\n], NavigationDrawerModal.prototype, \"opened\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", String)\n], NavigationDrawerModal.prototype, \"pivot\", void 0);\n//# sourceMappingURL=navigation-drawer-modal.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-shape-start-start: var(--md-navigation-drawer-modal-container-shape-start-start, var(--md-navigation-drawer-modal-container-shape, 0));--_container-shape-start-end: var(--md-navigation-drawer-modal-container-shape-start-end, var(--md-navigation-drawer-modal-container-shape, 16px));--_container-shape-end-end: var(--md-navigation-drawer-modal-container-shape-end-end, var(--md-navigation-drawer-modal-container-shape, 16px));--_container-shape-end-start: var(--md-navigation-drawer-modal-container-shape-end-start, var(--md-navigation-drawer-modal-container-shape, 0));--_container-color: var(--md-navigation-drawer-modal-container-color, #fff);--_container-height: var(--md-navigation-drawer-modal-container-height, 100%);--_container-surface-tint-layer-color: ;--_container-width: var(--md-navigation-drawer-modal-container-width, 360px);--_divider-color: var(--md-navigation-drawer-modal-divider-color, #000);--_modal-container-elevation: var(--md-navigation-drawer-modal-modal-container-elevation, 1);--_scrim-color: ;--_scrim-opacity: var(--md-navigation-drawer-modal-scrim-opacity, 0.04);--_standard-container-elevation: var(--md-navigation-drawer-modal-standard-container-elevation, 0);--md-elevation-level:var(--_modal-container-elevation)}.md3-navigation-drawer-modal{bottom:0;box-sizing:border-box;display:flex;justify-content:flex-end;overflow:hidden;position:absolute;top:0;inline-size:0;transition:inline-size .25s cubic-bezier(0.4, 0, 0.2, 1) 0s,visibility 0s cubic-bezier(0.4, 0, 0.2, 1) .25s}.md3-navigation-drawer-modal--opened{transition:inline-size .25s cubic-bezier(0.4, 0, 0.2, 1) 0s,visibility 0s cubic-bezier(0.4, 0, 0.2, 1) 0s}.md3-navigation-drawer-modal--pivot-at-start{justify-content:flex-start}.md3-navigation-drawer-modal__slot-content{display:flex;flex-direction:column;position:relative}.md3-navigation-drawer-modal__scrim{inset:0;opacity:0;position:absolute;visibility:hidden;background-color:var(--_scrim-color);transition:opacity .25s cubic-bezier(0.4, 0, 0.2, 1) 0s,visibility 0s cubic-bezier(0.4, 0, 0.2, 1) .25s}.md3-navigation-drawer-modal--scrim-visible{visibility:visible;opacity:var(--_scrim-opacity);transition:opacity .25s cubic-bezier(0.4, 0, 0.2, 1) 0s,visibility 0s cubic-bezier(0.4, 0, 0.2, 1) 0s}/*# sourceMappingURL=navigation-drawer-modal-styles.css.map */\n`;\n//# sourceMappingURL=navigation-drawer-modal-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {NavigationDrawerModal} from '@material/web/navigationdrawer/lib/navigation-drawer-modal.js';\nimport {styles} from '@material/web/navigationdrawer/lib/navigation-drawer-modal-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/navigationdrawer/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-navigation-drawer-modal': MdNavigationDrawerModal;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdNavigationDrawerModal extends NavigationDrawerModal {\n  static override readonly styles = [sharedStyles, styles];\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Badge } from './lib/badge.js';\nimport { styles } from './lib/badge-styles.css.js';\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nlet MdBadge = class MdBadge extends Badge {\n};\nMdBadge.styles = [styles];\nMdBadge = __decorate([\n    customElement('md-badge')\n], MdBadge);\nexport { MdBadge };\n//# sourceMappingURL=badge.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Enumeration to keep track of the lifecycle of a touch event.\n */\n// State transition diagram:\n//     +-----------------------------+\n//     |                             v\n//     |    +------+------ WAITING_FOR_MOUSE_CLICK<----+\n//     |    |      |                ^                  |\n//     |    V      |                |                  |\n// => INACTIVE -> TOUCH_DELAY -> RELEASING          HOLDING\n//                 |                                   ^\n//                 |                                   |\n//                 +-----------------------------------+\nvar Phase;\n(function (Phase) {\n    // Initial state of the control, no touch in progress.\n    // Transitions:\n    //     on touch down: transition to TOUCH_DELAY.\n    //     on mouse down: transition to WAITING_FOR_MOUSE_CLICK.\n    Phase[\"INACTIVE\"] = \"INACTIVE\";\n    // Touch down has been received, waiting to determine if it's a swipe.\n    // Transitions:\n    //     on touch up: beginPress(); transition to RELEASING.\n    //     on cancel: transition to INACTIVE.\n    //     after TOUCH_DELAY_MS: beginPress(); transition to HOLDING.\n    Phase[\"TOUCH_DELAY\"] = \"TOUCH_DELAY\";\n    // A touch has been deemed to be a press\n    // Transitions:\n    //     on pointerup: endPress(); transition to WAITING_FOR_MOUSE_CLICK.\n    Phase[\"HOLDING\"] = \"HOLDING\";\n    // The user has released the mouse / touch, but we want to delay calling\n    // endPress for a little bit to avoid double clicks.\n    // Transitions:\n    //    mouse sequence after debounceDelay: endPress(); transition to INACTIVE\n    //    when in touch sequence: transitions directly to WAITING_FOR_MOUSE_CLICK\n    Phase[\"RELEASING\"] = \"RELEASING\";\n    // The user has touched, but we want to delay endPress until synthetic mouse\n    // click event occurs. Stay in this state for a fixed amount of time before\n    // giving up and transitioning into rest state.\n    // Transitions:\n    //     on click: endPress(); transition to INACTIVE.\n    //     after WAIT_FOR_MOUSE_CLICK_MS: transition to INACTIVE.\n    Phase[\"WAITING_FOR_MOUSE_CLICK\"] = \"WAITING_FOR_MOUSE_CLICK\";\n})(Phase || (Phase = {}));\n/**\n * Delay time from touchstart to when element#beginPress is invoked.\n */\nexport const TOUCH_DELAY_MS = 150;\n/**\n * Delay time from beginning to wait for synthetic mouse events till giving up.\n */\nexport const WAIT_FOR_MOUSE_CLICK_MS = 500;\n/**\n * ActionController normalizes user interaction on components and distills it\n * into calling `beginPress` and `endPress` on the component.\n *\n * `beginPress` is a good hook to affect visuals for pressed state, including\n * ripple.\n *\n * `endPress` is a good hook for firing events based on user interaction, and\n * cleaning up the pressed visual state.\n *\n * A component using an ActionController need only implement the ActionElement\n * interface and add the ActionController's event listeners to understand user\n * interaction.\n */\nexport class ActionController {\n    constructor(element) {\n        this.element = element;\n        this.phase = Phase.INACTIVE;\n        this.touchTimer = null;\n        this.clickTimer = null;\n        this.lastPositionEvent = null;\n        this.pressed = false;\n        this.checkBoundsAfterContextMenu = false;\n        // event listeners\n        /**\n         * Pointer down event handler.\n         */\n        this.pointerDown = (e) => {\n            if (!this.shouldRespondToEvent(e) || this.phase !== Phase.INACTIVE) {\n                return;\n            }\n            if (this.isTouch(e)) {\n                // after a longpress contextmenu event, an extra `pointerdown` can be\n                // dispatched to the pressed element. Check that the down is within\n                // bounds of the element in this case.\n                if (this.checkBoundsAfterContextMenu && !this.inBounds(e)) {\n                    return;\n                }\n                this.checkBoundsAfterContextMenu = false;\n                this.lastPositionEvent = e;\n                this.setPhase(Phase.TOUCH_DELAY);\n                this.touchTimer = setTimeout(() => {\n                    this.touchDelayFinished();\n                }, TOUCH_DELAY_MS);\n            }\n            else {\n                const leftButtonPressed = e.button === 0;\n                if (!leftButtonPressed ||\n                    (this.ignoreClicksWithModifiers && this.eventHasModifiers(e))) {\n                    return;\n                }\n                this.setPhase(Phase.WAITING_FOR_MOUSE_CLICK);\n                this.beginPress(e);\n            }\n        };\n        /**\n         * Pointer up event handler.\n         */\n        this.pointerUp = (e) => {\n            if (!this.isTouch(e) || !this.shouldRespondToEvent(e)) {\n                return;\n            }\n            if (this.phase === Phase.HOLDING) {\n                this.waitForClick();\n            }\n            else if (this.phase === Phase.TOUCH_DELAY) {\n                this.setPhase(Phase.RELEASING);\n                this.beginPress();\n                this.waitForClick();\n            }\n        };\n        /**\n         * Click event handler.\n         */\n        this.click = (e) => {\n            if (this.disabled ||\n                (this.ignoreClicksWithModifiers && this.eventHasModifiers(e))) {\n                return;\n            }\n            if (this.phase === Phase.WAITING_FOR_MOUSE_CLICK) {\n                this.endPress();\n                this.setPhase(Phase.INACTIVE);\n                return;\n            }\n            // keyboard synthesized click event\n            if (this.phase === Phase.INACTIVE && !this.pressed) {\n                this.press();\n            }\n        };\n        /**\n         * Pointer leave event handler.\n         */\n        this.pointerLeave = (e) => {\n            // cancel a held press that moves outside the element\n            if (this.shouldRespondToEvent(e) && !this.isTouch(e) && this.pressed) {\n                this.cancelPress();\n            }\n        };\n        /**\n         * Pointer cancel event handler.\n         */\n        this.pointerCancel = (e) => {\n            if (this.shouldRespondToEvent(e)) {\n                this.cancelPress();\n            }\n        };\n        /**\n         * Contextmenu event handler.\n         */\n        this.contextMenu = () => {\n            if (!this.disabled) {\n                this.checkBoundsAfterContextMenu = true;\n                this.cancelPress();\n            }\n        };\n        this.element.addController(this);\n    }\n    get disabled() {\n        return this.element.disabled;\n    }\n    get ignoreClicksWithModifiers() {\n        return this.element.ignoreClicksWithModifiers ?? false;\n    }\n    setPhase(newPhase) {\n        this.phase = newPhase;\n    }\n    /**\n     * Calls beginPress and then endPress. Allows us to programmatically click\n     * on the element.\n     */\n    press() {\n        this.beginPress(/* positionEvent= */ null);\n        this.setPhase(Phase.INACTIVE);\n        this.endPress();\n    }\n    /**\n     * Call `beginPress` on element with triggering event, if applicable.\n     */\n    beginPress(positionEvent = this.lastPositionEvent) {\n        this.pressed = true;\n        this.element.beginPress({ positionEvent });\n    }\n    /**\n     * Call `endPress` on element, and clean up timers.\n     */\n    endPress() {\n        this.pressed = false;\n        this.element.endPress({ cancelled: false });\n        this.cleanup();\n    }\n    cleanup() {\n        if (this.touchTimer) {\n            clearTimeout(this.touchTimer);\n        }\n        this.touchTimer = null;\n        if (this.clickTimer) {\n            clearTimeout(this.clickTimer);\n        }\n        this.clickTimer = null;\n        this.lastPositionEvent = null;\n    }\n    /**\n     * Call `endPress` with cancelled state on element, and cleanup timers.\n     */\n    cancelPress() {\n        this.pressed = false;\n        this.cleanup();\n        if (this.phase === Phase.TOUCH_DELAY) {\n            this.setPhase(Phase.INACTIVE);\n        }\n        else if (this.phase !== Phase.INACTIVE) {\n            this.setPhase(Phase.INACTIVE);\n            this.element.endPress({ cancelled: true });\n        }\n    }\n    isTouch(e) {\n        return e.pointerType === 'touch';\n    }\n    touchDelayFinished() {\n        if (this.phase !== Phase.TOUCH_DELAY) {\n            return;\n        }\n        this.setPhase(Phase.HOLDING);\n        this.beginPress();\n    }\n    waitForClick() {\n        this.setPhase(Phase.WAITING_FOR_MOUSE_CLICK);\n        this.clickTimer = setTimeout(() => {\n            // If a click event does not occur, clean up the interaction state.\n            if (this.phase === Phase.WAITING_FOR_MOUSE_CLICK) {\n                this.cancelPress();\n            }\n        }, WAIT_FOR_MOUSE_CLICK_MS);\n    }\n    /**\n     * Check if event should trigger actions on the element.\n     */\n    shouldRespondToEvent(e) {\n        return !this.disabled && e.isPrimary;\n    }\n    /**\n     * Check if the event is within the bounds of the element.\n     *\n     * This is only needed for the \"stuck\" contextmenu longpress on Chrome.\n     */\n    inBounds(ev) {\n        const { top, left, bottom, right } = this.element.getBoundingClientRect();\n        const { x, y } = ev;\n        return x >= left && x <= right && y >= top && y <= bottom;\n    }\n    eventHasModifiers(e) {\n        return e.altKey || e.ctrlKey || e.shiftKey || e.metaKey;\n    }\n    /**\n     * Cancel interactions if the element is removed from the DOM.\n     */\n    hostDisconnected() {\n        this.cancelPress();\n    }\n    /**\n     * If the element becomes disabled, cancel interactions.\n     */\n    hostUpdated() {\n        if (this.disabled) {\n            this.cancelPress();\n        }\n    }\n}\n//# sourceMappingURL=action-controller.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { LitElement } from 'lit';\nimport { ActionController } from '../controller/action-controller.js';\n/**\n * @soyCompatible\n *\n * ActionElement is a base class that provides a handy starting point for using\n * ActionController. Subclasses should add the event handlers on the interactive\n * node in the template, and override `beginPress` and `endPress` to handle\n * pressed state, ripple interaction, and any other \"press\" interaction.\n */\nexport class ActionElement extends LitElement {\n    constructor() {\n        super(...arguments);\n        this.actionController = new ActionController(this);\n    }\n    /**\n     * Hook method called when we've confirmed that the gesture is intended to be\n     * a press. Subclasses should change the visual state of the control to\n     * 'active' at this point, and possibly fire an event. Subclasses should\n     * override this method if more needs to be done.\n     *\n     * @param options `positionEvent` is the Event that is considered the\n     * beginning of the press. Null if this was a keyboard interaction.\n     */\n    beginPress(options) { }\n    /**\n     * Hook method called when the control goes from a pressed to unpressed\n     * state.\n     *\n     * @param options If `cancelled` is true, means the user canceled the action.\n     *    Subclasses which trigger events on endPress() should check the value\n     *    of this flag, and modify their behavior accordingly.\n     */\n    endPress({ cancelled, actionData }) {\n        if (!cancelled) {\n            this.dispatchEvent(new CustomEvent('action', {\n                detail: actionData,\n                bubbles: true,\n                composed: true,\n            }));\n        }\n    }\n    /**\n     * Hook method for the ActionController.\n     * Subclasses should add this method as an event handler on the interactive\n     * template element with `@pointerdown=\"${this.handlePointerDown}\"`\n     */\n    handlePointerDown(e) {\n        this.actionController.pointerDown(e);\n    }\n    /**\n     * Hook method for the ActionController.\n     * Subclasses should add this method as an event handler on the interactive\n     * template element with `@pointerup=\"${this.handlePointerUp}\"`\n     */\n    handlePointerUp(e) {\n        this.actionController.pointerUp(e);\n    }\n    /**\n     * Hook method for the ActionController.\n     * Subclasses should add this method as an event handler on the interactive\n     * template element with `@pointercancel=\"${this.handlePointerCancel}\"`\n     */\n    handlePointerCancel(e) {\n        this.actionController.pointerCancel(e);\n    }\n    /**\n     * Hook method for the ActionController.\n     * Subclasses should add this method as an event handler on the interactive\n     * template element with `@pointerleave=\"${this.handlePointerleave}\"`\n     */\n    handlePointerLeave(e) {\n        this.actionController.pointerLeave(e);\n    }\n    /**\n     * Hook method for the ActionController.\n     * Subclasses should add this method as an event handler on the interactive\n     * template element with `@click=\"${this.handleClick}\"`\n     */\n    handleClick(e) {\n        this.actionController.click(e);\n    }\n    /**\n     * Hook method for the ActionController.\n     * Subclasses should add this method as an event handler on the interactive\n     * template element with `@contextmenu=\"${this.handleContextMenu}\"`\n     */\n    handleContextMenu() {\n        this.actionController.contextMenu();\n    }\n}\n//# sourceMappingURL=action-element.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport '../../badge/badge.js';\nimport '../../focus/focus-ring.js';\nimport { html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { ActionElement } from '../../actionelement/action-element.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\nimport { pointerPress, shouldShowStrongFocus } from '../../focus/strong-focus.js';\nimport { MdRipple } from '../../ripple/ripple.js';\n/** @soyCompatible */\nexport class NavigationTab extends ActionElement {\n    constructor() {\n        super(...arguments);\n        this.disabled = false;\n        this.active = false;\n        this.hideInactiveLabel = false;\n        this.badgeValue = '';\n        this.showBadge = false;\n        this.showFocusRing = false;\n    }\n    /** @soyTemplate */\n    render() {\n        return html `\n      <button\n        class=\"md3-navigation-tab ${classMap(this.getRenderClasses())}\"\n        role=\"tab\"\n        aria-selected=\"${this.active}\"\n        aria-label=\"${ifDefined(this.ariaLabel)}\"\n        tabindex=\"${this.active ? 0 : -1}\"\n        @focus=\"${this.handleFocus}\"\n        @blur=\"${this.handleBlur}\"\n        @pointerdown=\"${this.handlePointerDown}\"\n        @pointerup=\"${this.handlePointerUp}\"\n        @pointercancel=\"${this.handlePointerCancel}\"\n        @pointerleave=\"${this.handlePointerLeave}\"\n        @pointerenter=\"${this.handlePointerEnter}\"\n        @click=\"${this.handleClick}\"\n        @contextmenu=\"${this.handleContextMenu}\"\n      >${this.renderFocusRing()}${this.renderRipple()}\n        <span aria-hidden=\"true\" class=\"md3-navigation-tab__icon-content\"\n          ><span class=\"md3-navigation-tab__active-indicator\"\n            ></span><span class=\"md3-navigation-tab__icon\"\n          ><slot name=\"inactiveIcon\"></slot\n        ></span>\n        <span class=\"md3-navigation-tab__icon md3-navigation-tab__icon--active\"\n          ><slot name=\"activeIcon\"></slot\n        ></span>${this.renderBadge()}</span\n        >${this.renderLabel()}\n      </button>`;\n    }\n    /** @soyTemplate */\n    getRenderClasses() {\n        return {\n            'md3-navigation-tab--hide-inactive-label': this.hideInactiveLabel,\n            'md3-navigation-tab--active': this.active,\n        };\n    }\n    /** @soyTemplate */\n    renderFocusRing() {\n        return html `<md-focus-ring .visible=\"${this.showFocusRing}\"></md-focus-ring>`;\n    }\n    /** @soyTemplate */\n    renderRipple() {\n        return html `<md-ripple class=\"md3-navigation-tab__ripple\"></md-ripple>`;\n    }\n    /** @soyTemplate */\n    renderBadge() {\n        return this.showBadge ?\n            html `<md-badge .value=\"${this.badgeValue}\"></md-badge>` :\n            '';\n    }\n    /** @soyTemplate */\n    renderLabel() {\n        const ariaHidden = this.ariaLabel ? 'true' : 'false';\n        return !this.label ?\n            '' :\n            html `\n        <span aria-hidden=\"${ariaHidden}\" class=\"md3-navigation-tab__label-text\">${this.label}</span>`;\n    }\n    firstUpdated(changedProperties) {\n        super.firstUpdated(changedProperties);\n        const event = new Event('navigation-tab-rendered', { bubbles: true, composed: true });\n        this.dispatchEvent(event);\n    }\n    focus() {\n        const buttonElement = this.buttonElement;\n        if (buttonElement) {\n            buttonElement.focus();\n        }\n    }\n    blur() {\n        const buttonElement = this.buttonElement;\n        if (buttonElement) {\n            buttonElement.blur();\n        }\n    }\n    beginPress({ positionEvent }) {\n        // TODO(b/269772145): connect to ripple\n    }\n    endPress(options) {\n        // TODO(b/269772145): connect to ripple\n        super.endPress(options);\n        if (!options.cancelled) {\n            this.dispatchEvent(new CustomEvent('navigation-tab-interaction', { detail: { state: this }, bubbles: true, composed: true }));\n        }\n    }\n    handlePointerDown(e) {\n        super.handlePointerDown(e);\n        pointerPress();\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handlePointerUp(e) {\n        super.handlePointerUp(e);\n    }\n    handlePointerEnter(e) {\n        this.ripple.handlePointerenter(e);\n    }\n    handlePointerLeave(e) {\n        super.handlePointerLeave(e);\n        this.ripple.handlePointerleave(e);\n    }\n    handleFocus() {\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handleBlur() {\n        this.showFocusRing = false;\n    }\n}\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], NavigationTab.prototype, \"active\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], NavigationTab.prototype, \"hideInactiveLabel\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", String)\n], NavigationTab.prototype, \"label\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], NavigationTab.prototype, \"badgeValue\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], NavigationTab.prototype, \"showBadge\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], NavigationTab.prototype, \"showFocusRing\", void 0);\n__decorate([\n    ariaProperty // tslint:disable-line:no-new-decorators\n    ,\n    property({ type: String, attribute: 'data-aria-label', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], NavigationTab.prototype, \"ariaLabel\", void 0);\n__decorate([\n    query('button'),\n    __metadata(\"design:type\", HTMLElement)\n], NavigationTab.prototype, \"buttonElement\", void 0);\n__decorate([\n    query('md-ripple'),\n    __metadata(\"design:type\", MdRipple)\n], NavigationTab.prototype, \"ripple\", void 0);\n//# sourceMappingURL=navigation-tab.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_active-indicator-color: var(--md-navigation-bar-active-indicator-color, var(--md-sys-color-secondary-container, #e8def8));--_active-indicator-height: var(--md-navigation-bar-active-indicator-height, 32px);--_active-indicator-shape: var(--md-navigation-bar-active-indicator-shape, 9999px);--_active-indicator-width: var(--md-navigation-bar-active-indicator-width, 64px);--_active-focus-icon-color: var(--md-navigation-bar-active-focus-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_active-focus-label-text-color: var(--md-navigation-bar-active-focus-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_active-focus-state-layer-color: var(--md-navigation-bar-active-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_active-hover-icon-color: var(--md-navigation-bar-active-hover-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_active-hover-label-text-color: var(--md-navigation-bar-active-hover-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_active-hover-state-layer-color: var(--md-navigation-bar-active-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_active-icon-color: var(--md-navigation-bar-active-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_active-label-text-color: var(--md-navigation-bar-active-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_active-label-text-weight: var(--md-navigation-bar-active-label-text-weight, 700);--_active-pressed-icon-color: var(--md-navigation-bar-active-pressed-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_active-pressed-label-text-color: var(--md-navigation-bar-active-pressed-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_active-pressed-state-layer-color: var(--md-navigation-bar-active-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_container-color: var(--md-navigation-bar-container-color, var(--md-sys-color-surface, #fffbfe));--_container-elevation: var(--md-navigation-bar-container-elevation, 3);--_container-height: var(--md-navigation-bar-container-height, 80px);--_container-shape: var(--md-navigation-bar-container-shape, 0px);--_container-surface-tint-layer-color: var(--md-navigation-bar-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-opacity: var(--md-navigation-bar-focus-state-layer-opacity, 0.12);--_hover-state-layer-opacity: var(--md-navigation-bar-hover-state-layer-opacity, 0.08);--_icon-size: var(--md-navigation-bar-icon-size, 24px);--_inactive-focus-icon-color: var(--md-navigation-bar-inactive-focus-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-focus-label-text-color: var(--md-navigation-bar-inactive-focus-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-focus-state-layer-color: var(--md-navigation-bar-inactive-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-hover-icon-color: var(--md-navigation-bar-inactive-hover-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-hover-label-text-color: var(--md-navigation-bar-inactive-hover-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-hover-state-layer-color: var(--md-navigation-bar-inactive-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-icon-color: var(--md-navigation-bar-inactive-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_inactive-label-text-color: var(--md-navigation-bar-inactive-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_inactive-pressed-icon-color: var(--md-navigation-bar-inactive-pressed-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-pressed-label-text-color: var(--md-navigation-bar-inactive-pressed-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_inactive-pressed-state-layer-color: var(--md-navigation-bar-inactive-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_label-text-type: var(--md-navigation-bar-label-text-type, 500 0.75rem / 1rem Roboto);--_pressed-state-layer-opacity: var(--md-navigation-bar-pressed-state-layer-opacity, 0.12);--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, 8px);--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, 8px);--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, 8px);--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, 8px);--md-focus-ring-offset-vertical:-2px;--md-focus-ring-offset-horizontal:-2px;display:flex;flex-grow:1}.md3-navigation-tab{align-items:center;appearance:none;background:none;border:none;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;min-height:48px;min-width:48px;outline:none;padding:8px 0px 12px;position:relative;text-align:center;width:100%;font:var(--_label-text-type)}.md3-navigation-tab::-moz-focus-inner{border:0;padding:0}.md3-navigation-tab__icon-content{align-items:center;box-sizing:border-box;display:flex;justify-content:center;position:relative;z-index:1}.md3-navigation-tab__label-text{height:16px;margin-top:4px;opacity:1;transition:opacity 100ms cubic-bezier(0.4, 0, 0.2, 1),height 100ms cubic-bezier(0.4, 0, 0.2, 1);z-index:1}.md3-navigation-tab--hide-inactive-label:not(.md3-navigation-tab--active) .md3-navigation-tab__label-text{height:0;opacity:0}.md3-navigation-tab__active-indicator{display:flex;justify-content:center;opacity:0;position:absolute;transition:width 100ms cubic-bezier(0.4, 0, 0.2, 1),opacity 100ms cubic-bezier(0.4, 0, 0.2, 1);width:32px;background-color:var(--_active-indicator-color);border-radius:var(--_active-indicator-shape)}.md3-navigation-tab--active .md3-navigation-tab__active-indicator{opacity:1}.md3-navigation-tab__active-indicator,.md3-navigation-tab__icon-content{height:var(--_active-indicator-height)}.md3-navigation-tab--active .md3-navigation-tab__active-indicator,.md3-navigation-tab__icon-content{width:var(--_active-indicator-width)}.md3-navigation-tab__icon{fill:currentColor;align-self:center;display:inline-block;position:relative;width:var(--_icon-size);height:var(--_icon-size);font-size:var(--_icon-size)}.md3-navigation-tab__icon.md3-navigation-tab__icon--active{display:none}.md3-navigation-tab--active .md3-navigation-tab__icon{display:none}.md3-navigation-tab--active .md3-navigation-tab__icon.md3-navigation-tab__icon--active{display:inline-block}.md3-navigation-tab__ripple{z-index:0}.md3-navigation-tab--active{--md-ripple-hover-color:var(--_active-hover-state-layer-color);--md-ripple-focus-color:var(--_active-focus-state-layer-color);--md-ripple-pressed-color:var(--_active-pressed-state-layer-color);--md-ripple-hover-opacity:var(--_hover-state-layer-opacity);--md-ripple-focus-opacity:var(--_focus-state-layer-opacity);--md-ripple-pressed-opacity:var(--_pressed-state-layer-opacity)}.md3-navigation-tab--active .md3-navigation-tab__icon{color:var(--_active-icon-color)}.md3-navigation-tab--active .md3-navigation-tab__label-text{color:var(--_active-label-text-color)}.md3-navigation-tab--active:hover .md3-navigation-tab__icon{color:var(--_active-hover-icon-color)}.md3-navigation-tab--active:hover .md3-navigation-tab__label-text{color:var(--_active-hover-label-text-color)}.md3-navigation-tab--active:focus .md3-navigation-tab__icon{color:var(--_active-focus-icon-color)}.md3-navigation-tab--active:focus .md3-navigation-tab__label-text{color:var(--_active-focus-label-text-color)}.md3-navigation-tab--active:active .md3-navigation-tab__icon{color:var(--_active-pressed-icon-color)}.md3-navigation-tab--active:active .md3-navigation-tab__label-text{color:var(--_active-pressed-label-text-color)}.md3-navigation-tab:not(.md3-navigation-tab--active){--md-ripple-hover-color:var(--_inactive-hover-state-layer-color);--md-ripple-focus-color:var(--_inactive-focus-state-layer-color);--md-ripple-pressed-color:var(--_inactive-pressed-state-layer-color);--md-ripple-hover-opacity:var(--_hover-state-layer-opacity);--md-ripple-focus-opacity:var(--_focus-state-layer-opacity);--md-ripple-pressed-opacity:var(--_pressed-state-layer-opacity)}.md3-navigation-tab:not(.md3-navigation-tab--active) .md3-navigation-tab__icon{color:var(--_inactive-icon-color)}.md3-navigation-tab:not(.md3-navigation-tab--active) .md3-navigation-tab__label-text{color:var(--_inactive-label-text-color)}.md3-navigation-tab:not(.md3-navigation-tab--active):hover .md3-navigation-tab__icon{color:var(--_inactive-hover-icon-color)}.md3-navigation-tab:not(.md3-navigation-tab--active):hover .md3-navigation-tab__label-text{color:var(--_inactive-hover-label-text-color)}.md3-navigation-tab:not(.md3-navigation-tab--active):focus .md3-navigation-tab__icon{color:var(--_inactive-focus-icon-color)}.md3-navigation-tab:not(.md3-navigation-tab--active):focus .md3-navigation-tab__label-text{color:var(--_inactive-focus-label-text-color)}.md3-navigation-tab:not(.md3-navigation-tab--active):active .md3-navigation-tab__icon{color:var(--_inactive-pressed-icon-color)}.md3-navigation-tab:not(.md3-navigation-tab--active):active .md3-navigation-tab__label-text{color:var(--_inactive-pressed-label-text-color)}/*# sourceMappingURL=navigation-tab-styles.css.map */\n`;\n//# sourceMappingURL=navigation-tab-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdBadge } from '../badge/badge.js';\nimport { MdFocusRing } from '../focus/focus-ring.js';\n\nimport {NavigationTab} from '@material/web/navigationtab/lib/navigation-tab.js';\nimport {styles} from '@material/web/navigationtab/lib/navigation-tab-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-navigation-tab': MdNavigationTab;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdNavigationTab extends ScopedElementsMixin(NavigationTab) {\n  static override styles = [styles];\n  \n  \n  static get scopedElements() {\n    return {\n      'md-badge': MdBadge,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `@media(forced-colors: active){:host{--md-radio-disabled-selected-icon-color:GrayText;--md-radio-disabled-selected-icon-opacity:1;--md-radio-disabled-unselected-icon-color:GrayText;--md-radio-disabled-unselected-icon-opacity:1;--md-radio-selected-icon-color:CanvasText;--md-radio-selected-hover-icon-color:CanvasText;--md-radio-selected-focus-icon-color:CanvasText;--md-radio-selected-pressed-icon-color:CanvasText;--md-radio-unselected-icon-color:CanvasText;--md-radio-unselected-hover-icon-color:CanvasText;--md-radio-unselected-focus-icon-color:CanvasText;--md-radio-unselected-pressed-icon-color:CanvasText}}/*# sourceMappingURL=forced-colors-styles.css.map */\n`;\n//# sourceMappingURL=forced-colors-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * A `ReactiveController` that provides root node-scoped single selection for\n * elements, similar to native `<input type=\"radio\">` selection.\n *\n * To use, elements should add the controller and call\n * `selectionController.handleCheckedChange()` in a getter/setter. This must\n * be synchronous to match native behavior.\n *\n * @example\n * const CHECKED = Symbol('checked');\n *\n * class MyToggle extends LitElement {\n *   get checked() { return this[CHECKED]; }\n *   set checked(checked: boolean) {\n *     const oldValue = this.checked;\n *     if (oldValue === checked) {\n *       return;\n *     }\n *\n *     this[CHECKED] = checked;\n *     this.selectionController.handleCheckedChange();\n *     this.requestUpdate('checked', oldValue);\n *   }\n *\n *   [CHECKED] = false;\n *\n *   private selectionController = new SingleSelectionController(this);\n *\n *   constructor() {\n *     super();\n *     this.addController(this.selectionController);\n *   }\n * }\n */\nexport class SingleSelectionController {\n    constructor(host) {\n        this.host = host;\n        this.focused = false;\n        this.root = null;\n        this.handleFocusIn = () => {\n            this.focused = true;\n            this.updateTabIndices();\n        };\n        this.handleFocusOut = () => {\n            this.focused = false;\n            this.updateTabIndices();\n        };\n        /**\n         * Handles arrow key events from the host. Using the arrow keys will\n         * select and check the next or previous sibling with the host's\n         * `name` attribute.\n         */\n        this.handleKeyDown = (event) => {\n            const isDown = event.key === 'ArrowDown';\n            const isUp = event.key === 'ArrowUp';\n            const isLeft = event.key === 'ArrowLeft';\n            const isRight = event.key === 'ArrowRight';\n            // Ignore non-arrow keys\n            if (!isLeft && !isRight && !isDown && !isUp) {\n                return;\n            }\n            // Don't try to select another sibling if there aren't any.\n            const siblings = this.getNamedSiblings();\n            if (!siblings.length) {\n                return;\n            }\n            // Prevent default interactions on the element for arrow keys,\n            // since this controller will introduce new behavior.\n            event.preventDefault();\n            // Check if moving forwards or backwards\n            const isRtl = getComputedStyle(this.host).direction === 'rtl';\n            const forwards = isRtl ? isLeft || isDown : isRight || isDown;\n            const hostIndex = siblings.indexOf(this.host);\n            let nextIndex = forwards ? hostIndex + 1 : hostIndex - 1;\n            // Search for the next sibling that is not disabled to select.\n            // If we return to the host index, there is nothing to select.\n            while (nextIndex !== hostIndex) {\n                if (nextIndex >= siblings.length) {\n                    // Return to start if moving past the last item.\n                    nextIndex = 0;\n                }\n                else if (nextIndex < 0) {\n                    // Go to end if moving before the first item.\n                    nextIndex = siblings.length - 1;\n                }\n                // Check if the next sibling is disabled. If so,\n                // move the index and continue searching.\n                const nextSibling = siblings[nextIndex];\n                if (nextSibling.hasAttribute('disabled')) {\n                    if (forwards) {\n                        nextIndex++;\n                    }\n                    else {\n                        nextIndex--;\n                    }\n                    continue;\n                }\n                // Uncheck and remove focusability from other siblings.\n                for (const sibling of siblings) {\n                    if (sibling !== nextSibling) {\n                        sibling.checked = false;\n                        sibling.tabIndex = -1;\n                    }\n                }\n                // The next sibling should be checked and focused.\n                nextSibling.checked = true;\n                nextSibling.removeAttribute('tabindex');\n                nextSibling.focus();\n                break;\n            }\n        };\n    }\n    hostConnected() {\n        this.root = this.host.getRootNode();\n        this.host.addEventListener('keydown', this.handleKeyDown);\n        this.host.addEventListener('focusin', this.handleFocusIn);\n        this.host.addEventListener('focusout', this.handleFocusOut);\n        if (this.host.checked) {\n            // Uncheck other siblings when attached if already checked. This mimics\n            // native <input type=\"radio\"> behavior.\n            this.uncheckSiblings();\n        }\n        // Update for the newly added host.\n        this.updateTabIndices();\n    }\n    hostDisconnected() {\n        this.host.removeEventListener('keydown', this.handleKeyDown);\n        this.host.removeEventListener('focusin', this.handleFocusIn);\n        this.host.removeEventListener('focusout', this.handleFocusOut);\n        // Update for siblings that are still connected.\n        this.updateTabIndices();\n        this.root = null;\n    }\n    /**\n     * Should be called whenever the host's `checked` property changes\n     * synchronously.\n     */\n    handleCheckedChange() {\n        if (!this.host.checked) {\n            return;\n        }\n        this.uncheckSiblings();\n        this.updateTabIndices();\n    }\n    uncheckSiblings() {\n        for (const sibling of this.getNamedSiblings()) {\n            if (sibling !== this.host) {\n                sibling.checked = false;\n            }\n        }\n    }\n    /**\n     * Updates the `tabindex` of the host and its siblings.\n     */\n    updateTabIndices() {\n        // There are three tabindex states for a group of elements:\n        // 1. If any are checked, that element is focusable.\n        const siblings = this.getNamedSiblings();\n        const checkedSibling = siblings.find(sibling => sibling.checked);\n        // 2. If an element is focused, the others are no longer focusable.\n        if (checkedSibling || this.focused) {\n            const focusable = checkedSibling || this.host;\n            focusable.removeAttribute('tabindex');\n            for (const sibling of siblings) {\n                if (sibling !== focusable) {\n                    sibling.tabIndex = -1;\n                }\n            }\n            return;\n        }\n        // 3. If none are checked or focused, all are focusable.\n        for (const sibling of siblings) {\n            sibling.removeAttribute('tabindex');\n        }\n    }\n    /**\n     * Retrieves all siblings in the host element's root with the same `name`\n     * attribute.\n     */\n    getNamedSiblings() {\n        const name = this.host.getAttribute('name');\n        if (!name || !this.root) {\n            return [];\n        }\n        return Array.from(this.root.querySelectorAll(`[name=\"${name}\"]`));\n    }\n}\n//# sourceMappingURL=single-selection-controller.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nvar _a;\nimport { __decorate, __metadata } from \"tslib\";\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\nimport { html, LitElement, nothing } from 'lit';\nimport { property, query, queryAsync, state } from 'lit/decorators.js';\nimport { when } from 'lit/directives/when.js';\nimport { dispatchActivationClick, isActivationClick, redispatchEvent } from '../../controller/events.js';\nimport { FormController, getFormValue } from '../../controller/form-controller.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\nimport { pointerPress, shouldShowStrongFocus } from '../../focus/strong-focus.js';\nimport { ripple } from '../../ripple/directive.js';\nimport { SingleSelectionController } from './single-selection-controller.js';\nconst CHECKED = Symbol('checked');\n/**\n * A radio component.\n */\nexport class Radio extends LitElement {\n    /**\n     * Whether or not the radio is selected.\n     */\n    get checked() {\n        return this[CHECKED];\n    }\n    set checked(checked) {\n        const wasChecked = this.checked;\n        if (wasChecked === checked) {\n            return;\n        }\n        this[CHECKED] = checked;\n        this.requestUpdate('checked', wasChecked);\n        this.selectionController.handleCheckedChange();\n    }\n    /**\n     * The associated form element with which this element's value will submit.\n     */\n    get form() {\n        return this.closest('form');\n    }\n    constructor() {\n        super();\n        this[_a] = false;\n        /**\n         * Whether or not the radio is disabled.\n         */\n        this.disabled = false;\n        /**\n         * The element value to use in form submission when checked.\n         */\n        this.value = 'on';\n        /**\n         * The HTML name to use in form submission.\n         */\n        this.name = '';\n        this.selectionController = new SingleSelectionController(this);\n        this.showFocusRing = false;\n        this.showRipple = false;\n        this.getRipple = () => {\n            this.showRipple = true;\n            return this.ripple;\n        };\n        this.renderRipple = () => {\n            return html `<md-ripple unbounded ?disabled=${this.disabled}></md-ripple>`;\n        };\n        this.addController(new FormController(this));\n        this.addController(this.selectionController);\n        this.addEventListener('click', (event) => {\n            if (!isActivationClick(event)) {\n                return;\n            }\n            this.focus();\n            dispatchActivationClick(this.input);\n        });\n    }\n    [(_a = CHECKED, getFormValue)]() {\n        return this.checked ? this.value : null;\n    }\n    focus() {\n        this.input?.focus();\n    }\n    render() {\n        return html `\n      ${when(this.showRipple, this.renderRipple)}\n      ${this.renderFocusRing()}\n      <svg class=\"icon\" viewBox=\"0 0 20 20\">\n        <mask id=\"cutout\">\n          <rect width=\"100%\" height=\"100%\" fill=\"white\" />\n          <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"black\" />\n        </mask>\n        <circle class=\"outer circle\" cx=\"10\" cy=\"10\" r=\"10\" mask=\"url(#cutout)\" />\n        <circle class=\"inner circle\" cx=\"10\" cy=\"10\" r=\"5\" />\n      </svg>\n      <input\n        type=\"radio\"\n        name=${this.name}\n        aria-label=${this.ariaLabel || nothing}\n        .checked=${this.checked}\n        .value=${this.value}\n        ?disabled=${this.disabled}\n        @change=${this.handleChange}\n        @focus=${this.handleFocus}\n        @blur=${this.handleBlur}\n        @pointerdown=${this.handlePointerDown}\n        ${ripple(this.getRipple)}\n      >\n    `;\n    }\n    handleBlur() {\n        this.showFocusRing = false;\n    }\n    handleFocus() {\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handleChange(event) {\n        if (this.disabled) {\n            return;\n        }\n        // Per spec, the change event on a radio input always represents checked.\n        this.checked = true;\n        redispatchEvent(this, event);\n    }\n    handlePointerDown() {\n        pointerPress();\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    renderFocusRing() {\n        return html `<md-focus-ring .visible=${this.showFocusRing}></md-focus-ring>`;\n    }\n}\nRadio.shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true };\n/**\n * @nocollapse\n */\nRadio.formAssociated = true;\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Boolean),\n    __metadata(\"design:paramtypes\", [Boolean])\n], Radio.prototype, \"checked\", null);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Radio.prototype, \"disabled\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], Radio.prototype, \"value\", void 0);\n__decorate([\n    property({ type: String, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Radio.prototype, \"name\", void 0);\n__decorate([\n    ariaProperty // tslint:disable-line:no-new-decorators\n    ,\n    property({ attribute: 'data-aria-label', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], Radio.prototype, \"ariaLabel\", void 0);\n__decorate([\n    query('input'),\n    __metadata(\"design:type\", HTMLInputElement)\n], Radio.prototype, \"input\", void 0);\n__decorate([\n    queryAsync('md-ripple'),\n    __metadata(\"design:type\", Promise)\n], Radio.prototype, \"ripple\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Radio.prototype, \"showFocusRing\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Radio.prototype, \"showRipple\", void 0);\n//# sourceMappingURL=radio.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_disabled-selected-icon-color: var(--md-radio-disabled-selected-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-selected-icon-opacity: var(--md-radio-disabled-selected-icon-opacity, 0.38);--_disabled-unselected-icon-color: var(--md-radio-disabled-unselected-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-unselected-icon-opacity: var(--md-radio-disabled-unselected-icon-opacity, 0.38);--_icon-size: var(--md-radio-icon-size, 20px);--_selected-focus-icon-color: var(--md-radio-selected-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-color: var(--md-radio-selected-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-opacity: var(--md-radio-selected-focus-state-layer-opacity, 0.12);--_selected-hover-icon-color: var(--md-radio-selected-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-color: var(--md-radio-selected-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-opacity: var(--md-radio-selected-hover-state-layer-opacity, 0.08);--_selected-icon-color: var(--md-radio-selected-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-icon-color: var(--md-radio-selected-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-state-layer-color: var(--md-radio-selected-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_selected-pressed-state-layer-opacity: var(--md-radio-selected-pressed-state-layer-opacity, 0.12);--_state-layer-size: var(--md-radio-state-layer-size, 40px);--_unselected-focus-icon-color: var(--md-radio-unselected-focus-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-color: var(--md-radio-unselected-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-opacity: var(--md-radio-unselected-focus-state-layer-opacity, 0.12);--_unselected-hover-icon-color: var(--md-radio-unselected-hover-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-color: var(--md-radio-unselected-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-opacity: var(--md-radio-unselected-hover-state-layer-opacity, 0.08);--_unselected-icon-color: var(--md-radio-unselected-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-pressed-icon-color: var(--md-radio-unselected-pressed-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-state-layer-color: var(--md-radio-unselected-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_unselected-pressed-state-layer-opacity: var(--md-radio-unselected-pressed-state-layer-opacity, 0.12);--md-ripple-focus-color:var(--_unselected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_unselected-focus-state-layer-opacity);--md-ripple-hover-color:var(--_unselected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_unselected-hover-state-layer-opacity);--md-ripple-pressed-color:var(--_unselected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_unselected-pressed-state-layer-opacity);--md-focus-ring-offset-vertical:-2px;--md-focus-ring-offset-horizontal:-2px;display:inline-flex;height:48px;position:relative;vertical-align:top;width:48px;-webkit-tap-highlight-color:rgba(0,0,0,0)}:host([checked]){--md-ripple-focus-color:var(--_selected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_selected-focus-state-layer-opacity);--md-ripple-hover-color:var(--_selected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_selected-hover-state-layer-opacity);--md-ripple-pressed-color:var(--_selected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_selected-pressed-state-layer-opacity)}input,md-ripple,.icon{inset:0;margin:auto;position:absolute}input{appearance:none;outline:none}md-ripple{height:var(--_state-layer-size);width:var(--_state-layer-size)}.icon{fill:var(--_unselected-icon-color);height:var(--_icon-size);width:var(--_icon-size)}.outer.circle{transition:fill 50ms linear}.inner.circle{opacity:0;transform-origin:center;transition:opacity 50ms linear}:host([checked]) .icon{fill:var(--_selected-icon-color)}:host([checked]) .inner.circle{animation:inner-circle-grow 300ms cubic-bezier(0.05, 0.7, 0.1, 1);opacity:1}@keyframes inner-circle-grow{from{transform:scale(0)}to{transform:scale(1)}}:host([disabled]) .circle{animation-duration:0s;transition-duration:0s}:host(:hover) .icon{fill:var(--_unselected-hover-icon-color)}:host(:focus-within) .icon{fill:var(--_unselected-focus-icon-color)}:host(:active) .icon{fill:var(--_unselected-pressed-icon-color)}:host([disabled]) .icon{fill:var(--_disabled-unselected-icon-color);opacity:var(--_disabled-unselected-icon-opacity)}:host([checked]:hover) .icon{fill:var(--_selected-hover-icon-color)}:host([checked]:focus-within) .icon{fill:var(--_selected-focus-icon-color)}:host([checked]:active) .icon{fill:var(--_selected-pressed-icon-color)}:host([checked][disabled]) .icon{fill:var(--_disabled-selected-icon-color);opacity:var(--_disabled-selected-icon-opacity)}/*# sourceMappingURL=radio-styles.css.map */\n`;\n//# sourceMappingURL=radio-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport {styles as forcedColorsStyles} from '@material/web/radio/lib/forced-colors-styles.css.js';\nimport {Radio} from '@material/web/radio/lib/radio.js';\nimport {styles} from '@material/web/radio/lib/radio-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-radio': MdRadio;\n  }\n}\n\n/**\n * @summary Radio buttons allow users to select one option from a set.\n *\n * @description\n * Radio buttons are the recommended way to allow users to make a single\n * selection from a list of options.\n *\n * Only one radio button can be selected at a time.\n *\n * Use radio buttons to:\n * - Select a single option from a set\n * - Expose all available options\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdRadio extends ScopedElementsMixin(Radio) {\n  static override styles = [styles, forcedColorsStyles];\n  \n  static get scopedElements() {\n    return {\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport '../../focus/focus-ring.js';\nimport { html } from 'lit';\nimport { property, query, queryAssignedElements, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { ActionElement } from '../../actionelement/action-element.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\nimport { pointerPress, shouldShowStrongFocus } from '../../focus/strong-focus.js';\nimport { MdRipple } from '../../ripple/ripple.js';\n/**\n * SegmentedButton is a web component implementation of the Material Design\n * segmented button component. It is intended **only** for use as a child of a\n * `SementedButtonSet` component. It is **not** intended for use in any other\n * context.\n * @soyCompatible\n */\nexport class SegmentedButton extends ActionElement {\n    constructor() {\n        super(...arguments);\n        this.disabled = false;\n        this.selected = false;\n        this.label = '';\n        this.noCheckmark = false;\n        this.hasIcon = false;\n        this.animState = '';\n        this.showFocusRing = false;\n    }\n    update(props) {\n        this.animState = this.nextAnimationState(props);\n        super.update(props);\n        // NOTE: This needs to be set *after* calling super.update() to ensure the\n        // appropriate CSS classes are applied.\n        this.hasIcon = this.iconElement.length > 0;\n    }\n    nextAnimationState(changedProps) {\n        const prevSelected = changedProps.get('selected');\n        // Early exit for first update.\n        if (prevSelected === undefined)\n            return '';\n        const nextSelected = this.selected;\n        const nextHasCheckmark = !this.noCheckmark;\n        if (!prevSelected && nextSelected && nextHasCheckmark) {\n            return 'selecting';\n        }\n        if (prevSelected && !nextSelected && nextHasCheckmark) {\n            return 'deselecting';\n        }\n        return '';\n    }\n    beginPress({ positionEvent }) {\n        // TODO(b/261201805): connect to ripple\n    }\n    endPress(options) {\n        // TODO(b/261201805): connect to ripple\n        super.endPress(options);\n        if (!options.cancelled) {\n            const event = new Event('segmented-button-interaction', { bubbles: true, composed: true });\n            this.dispatchEvent(event);\n        }\n    }\n    handlePointerDown(e) {\n        super.handlePointerDown(e);\n        pointerPress();\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handlePointerUp(e) {\n        super.handlePointerUp(e);\n    }\n    handlePointerEnter(e) {\n        this.ripple.handlePointerenter(e);\n    }\n    handlePointerLeave(e) {\n        super.handlePointerLeave(e);\n        this.ripple.handlePointerleave(e);\n    }\n    handleFocus() {\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handleBlur() {\n        this.showFocusRing = false;\n    }\n    /** @soyTemplate */\n    render() {\n        return html `\n      <button\n        tabindex=\"${this.disabled ? '-1' : '0'}\"\n        aria-label=\"${ifDefined(this.ariaLabel)}\"\n        aria-pressed=${this.selected}\n        ?disabled=${this.disabled}\n        @focus=\"${this.handleFocus}\"\n        @blur=\"${this.handleBlur}\"\n        @pointerdown=\"${this.handlePointerDown}\"\n        @pointerup=\"${this.handlePointerUp}\"\n        @pointercancel=\"${this.handlePointerCancel}\"\n        @pointerleave=\"${this.handlePointerLeave}\"\n        @pointerenter=\"${this.handlePointerEnter}\"\n        @click=\"${this.handleClick}\"\n        @contextmenu=\"${this.handleContextMenu}\"\n        class=\"md3-segmented-button ${classMap(this.getRenderClasses())}\">\n        ${this.renderFocusRing()}\n        ${this.renderRipple()}\n        ${this.renderOutline()}\n        ${this.renderLeading()}\n        ${this.renderLabel()}\n        ${this.renderTouchTarget()}\n      </button>\n    `;\n    }\n    /** @soyTemplate */\n    getRenderClasses() {\n        return {\n            'md3-segmented-button--selected': this.selected,\n            'md3-segmented-button--unselected': !this.selected,\n            'md3-segmented-button--with-label': this.label !== '',\n            'md3-segmented-button--without-label': this.label === '',\n            'md3-segmented-button--with-icon': this.hasIcon,\n            'md3-segmented-button--with-checkmark': !this.noCheckmark,\n            'md3-segmented-button--without-checkmark': this.noCheckmark,\n            'md3-segmented-button--selecting': this.animState === 'selecting',\n            'md3-segmented-button--deselecting': this.animState === 'deselecting',\n        };\n    }\n    /** @soyTemplate */\n    renderFocusRing() {\n        return html `<md-focus-ring .visible=\"${this.showFocusRing}\" class=\"md3-segmented-button__focus-ring\"></md-focus-ring>`;\n    }\n    /** @soyTemplate */\n    renderRipple() {\n        return html `<md-ripple ?disabled=\"${this.disabled}\" class=\"md3-segmented-button__ripple\"> </md-ripple>`;\n    }\n    /** @soyTemplate */\n    renderOutline() {\n        return html ``;\n    }\n    /** @soyTemplate */\n    renderLeading() {\n        return this.label === '' ? this.renderLeadingWithoutLabel() :\n            this.renderLeadingWithLabel();\n    }\n    /** @soyTemplate */\n    renderLeadingWithoutLabel() {\n        return html `\n      <span class=\"md3-segmented-button__leading\" aria-hidden=\"true\">\n        <span class=\"md3-segmented-button__graphic\">\n          <svg class=\"md3-segmented-button__checkmark\" viewBox=\"0 0 24 24\">\n            <path class=\"md3-segmented-button__checkmark-path\" fill=\"none\" d=\"M1.73,12.91 8.1,19.28 22.79,4.59\"></path>\n          </svg>\n        </span>\n        <span class=\"md3-segmented-button__icon\" aria-hidden=\"true\">\n          <slot name=\"icon\"></slot>\n        </span>\n      </span>\n    `;\n    }\n    /** @soyTemplate */\n    renderLeadingWithLabel() {\n        return html `\n      <span class=\"md3-segmented-button__leading\" aria-hidden=\"true\">\n        <span class=\"md3-segmented-button__graphic\">\n          <svg class=\"md3-segmented-button__checkmark\" viewBox=\"0 0 24 24\">\n            <path class=\"md3-segmented-button__checkmark-path\" fill=\"none\" d=\"M1.73,12.91 8.1,19.28 22.79,4.59\"></path>\n          </svg>\n          <span class=\"md3-segmented-button__icon\" aria-hidden=\"true\">\n            <slot name=\"icon\"></slot>\n          </span>\n        </span>\n      </span>\n    `;\n    }\n    /** @soyTemplate */\n    renderLabel() {\n        return html `\n      <span class=\"md3-segmented-button__label-text\">${this.label}</span>\n    `;\n    }\n    /** @soyTemplate */\n    renderTouchTarget() {\n        return html `<span class=\"md3-segmented-button__touch\"></span>`;\n    }\n}\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], SegmentedButton.prototype, \"disabled\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], SegmentedButton.prototype, \"selected\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], SegmentedButton.prototype, \"label\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], SegmentedButton.prototype, \"noCheckmark\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], SegmentedButton.prototype, \"hasIcon\", void 0);\n__decorate([\n    ariaProperty // tslint:disable-line:no-new-decorators\n    ,\n    property({ type: String, attribute: 'aria-label' }),\n    __metadata(\"design:type\", String)\n], SegmentedButton.prototype, \"ariaLabel\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", String)\n], SegmentedButton.prototype, \"animState\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], SegmentedButton.prototype, \"showFocusRing\", void 0);\n__decorate([\n    queryAssignedElements({ slot: 'icon', flatten: true }),\n    __metadata(\"design:type\", Array)\n], SegmentedButton.prototype, \"iconElement\", void 0);\n__decorate([\n    query('md-ripple'),\n    __metadata(\"design:type\", MdRipple)\n], SegmentedButton.prototype, \"ripple\", void 0);\n//# sourceMappingURL=segmented-button.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { html } from 'lit';\nimport { SegmentedButton } from './segmented-button.js';\n/** @soyCompatible */\nexport class OutlinedSegmentedButton extends SegmentedButton {\n    /** @soyTemplate */\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-segmented-button--outlined': true,\n        };\n    }\n    /** @soyTemplate */\n    renderOutline() {\n        return html `<span class=\"md3-segmented-button__outline\"></span>`;\n    }\n}\n//# sourceMappingURL=outlined-segmented-button.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-height: var(--md-segmented-button-container-height, 40px);--_disabled-icon-color: var(--md-segmented-button-disabled-icon-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_disabled-label-text-color: var(--md-segmented-button-disabled-label-text-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_disabled-outline-color: var(--md-segmented-button-disabled-outline-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.12));--_focus-state-layer-opacity: var(--md-segmented-button-focus-state-layer-opacity, 0.12);--_hover-state-layer-opacity: var(--md-segmented-button-hover-state-layer-opacity, 0.08);--_label-text-type: var(--md-segmented-button-label-text-type, 500 0.875rem / 1.25rem Roboto);--_outline-color: var(--md-segmented-button-outline-color, var(--md-sys-color-outline, #79747e));--_outline-width: var(--md-segmented-button-outline-width, 1px);--_pressed-state-layer-opacity: var(--md-segmented-button-pressed-state-layer-opacity, 0.12);--_selected-container-color: var(--md-segmented-button-selected-container-color, var(--md-sys-color-secondary-container, #e8def8));--_selected-focus-icon-color: var(--md-segmented-button-selected-focus-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-focus-label-text-color: var(--md-segmented-button-selected-focus-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-focus-state-layer-color: var(--md-segmented-button-selected-focus-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-hover-icon-color: var(--md-segmented-button-selected-hover-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-hover-label-text-color: var(--md-segmented-button-selected-hover-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-hover-state-layer-color: var(--md-segmented-button-selected-hover-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-label-text-color: var(--md-segmented-button-selected-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-pressed-icon-color: var(--md-segmented-button-selected-pressed-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-pressed-label-text-color: var(--md-segmented-button-selected-pressed-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-pressed-state-layer-color: var(--md-segmented-button-selected-pressed-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-with-icon-icon-color: var(--md-segmented-button-selected-with-icon-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_shape: var(--md-segmented-button-shape, 9999px);--_unselected-focus-icon-color: var(--md-segmented-button-unselected-focus-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-label-text-color: var(--md-segmented-button-unselected-focus-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-color: var(--md-segmented-button-unselected-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-icon-color: var(--md-segmented-button-unselected-hover-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-label-text-color: var(--md-segmented-button-unselected-hover-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-color: var(--md-segmented-button-unselected-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-label-text-color: var(--md-segmented-button-unselected-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-icon-color: var(--md-segmented-button-unselected-pressed-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-label-text-color: var(--md-segmented-button-unselected-pressed-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-state-layer-color: var(--md-segmented-button-unselected-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-with-icon-icon-color: var(--md-segmented-button-unselected-with-icon-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_with-icon-icon-size: var(--md-segmented-button-with-icon-icon-size, 18px);--_spacing-leading: var(--md-segmented-button-spacing-leading, 12px);--_spacing-trailing: var(--md-segmented-button-spacing-trailing, 12px)}.md3-segmented-button__outline{border-radius:inherit;border-style:solid;border-width:1px;inset:0px -0.5px;pointer-events:none;position:absolute}/*# sourceMappingURL=outlined-styles.css.map */\n`;\n//# sourceMappingURL=outlined-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `@keyframes md3-segmented-button-checkmark-selection-draw-in{from{stroke-dashoffset:29.7833385}to{stroke-dashoffset:0}}@keyframes md3-segmented-button-simple-fade-out{from{opacity:1}to{opacity:0}}@keyframes md3-segmented-button-simple-fade-in{from{opacity:0}to{opacity:1}}:host{display:inline-flex;outline:none}.md3-segmented-button{align-items:center;background:rgba(0,0,0,0);border:none;border-radius:inherit;display:flex;flex:1;justify-content:center;outline:none;position:relative;vertical-align:middle;padding-inline-start:var(--_spacing-leading);padding-inline-end:var(--_spacing-trailing)}.md3-segmented-button .md3-segmented-button__outline{border-color:var(--_outline-color)}.md3-segmented-button:disabled .md3-segmented-button__outline{border-color:var(--_disabled-outline-color)}.md3-segmented-button .md3-segmented-button__graphic,.md3-segmented-button .md3-segmented-button__checkmark,.md3-segmented-button .md3-segmented-button__icon,.md3-segmented-button .md3-segmented-button__icon ::slotted([slot=icon]){height:var(--_with-icon-icon-size);width:var(--_with-icon-icon-size);font-size:var(--_with-icon-icon-size)}.md3-segmented-button.md3-segmented-button--with-icon.md3-segmented-button--with-label .md3-segmented-button__graphic,.md3-segmented-button.md3-segmented-button--selected.md3-segmented-button--with-label.md3-segmented-button--with-checkmark .md3-segmented-button__graphic,.md3-segmented-button.md3-segmented-button--selected.md3-segmented-button--without-label.md3-segmented-button--with-checkmark .md3-segmented-button__graphic{width:calc(var(--_with-icon-icon-size) + 8px)}.md3-segmented-button .md3-segmented-button__label-text{font:var(--_label-text-type)}.md3-segmented-button.md3-segmented-button--selected:enabled .md3-segmented-button__label-text{color:var(--_selected-label-text-color)}.md3-segmented-button.md3-segmented-button--selected:enabled:hover .md3-segmented-button__label-text{color:var(--_selected-hover-label-text-color)}.md3-segmented-button.md3-segmented-button--selected:enabled:focus .md3-segmented-button__label-text{color:var(--_selected-focus-label-text-color)}.md3-segmented-button.md3-segmented-button--selected:enabled:active .md3-segmented-button__label-text{color:var(--_selected-pressed-label-text-color)}.md3-segmented-button.md3-segmented-button--unselected:enabled .md3-segmented-button__label-text{color:var(--_unselected-label-text-color)}.md3-segmented-button.md3-segmented-button--unselected:enabled:hover .md3-segmented-button__label-text{color:var(--_unselected-hover-label-text-color)}.md3-segmented-button.md3-segmented-button--unselected:enabled:focus .md3-segmented-button__label-text{color:var(--_unselected-focus-label-text-color)}.md3-segmented-button.md3-segmented-button--unselected:enabled:active .md3-segmented-button__label-text{color:var(--_unselected-pressed-label-text-color)}.md3-segmented-button:disabled .md3-segmented-button__label-text{color:var(--_disabled-label-text-color)}.md3-segmented-button--unselected{--md-ripple-hover-color:var(--_unselected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_hover-state-layer-opacity);--md-ripple-focus-color:var(--_unselected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_focus-state-layer-opacity);--md-ripple-pressed-color:var(--_unselected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_pressed-state-layer-opacity)}.md3-segmented-button--unselected .md3-segmented-button__icon{color:var(--_unselected-with-icon-icon-color)}.md3-segmented-button--unselected:hover .md3-segmented-button__icon{color:var(--_unselected-hover-icon-color)}.md3-segmented-button--unselected:focus .md3-segmented-button__icon{color:var(--_unselected-focus-icon-color)}.md3-segmented-button--unselected:active .md3-segmented-button__icon{color:var(--_unselected-pressed-icon-color)}.md3-segmented-button--unselected:disabled .md3-segmented-button__icon{color:var(--_disabled-icon-color)}.md3-segmented-button--selected{background-color:var(--_selected-container-color);--md-ripple-hover-color:var(--_selected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_hover-state-layer-opacity);--md-ripple-focus-color:var(--_selected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_focus-state-layer-opacity);--md-ripple-pressed-color:var(--_selected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_pressed-state-layer-opacity)}.md3-segmented-button--selected .md3-segmented-button__icon{color:var(--_selected-with-icon-icon-color)}.md3-segmented-button--selected .md3-segmented-button__checkmark-path{stroke:var(--_selected-with-icon-icon-color)}.md3-segmented-button--selected:hover .md3-segmented-button__checkmark-path{stroke:var(--_selected-hover-icon-color)}.md3-segmented-button--selected:focus .md3-segmented-button__checkmark-path{stroke:var(--_selected-focus-icon-color)}.md3-segmented-button--selected:active .md3-segmented-button__checkmark-path{stroke:var(--_selected-pressed-icon-color)}.md3-segmented-button--selected:disabled .md3-segmented-button__checkmark-path{stroke:var(--_disabled-icon-color)}.md3-segmented-button:enabled{cursor:pointer}.md3-segmented-button__focus-ring{z-index:1}.md3-segmented-button__ripple{border-radius:inherit;z-index:0}.md3-segmented-button__touch{position:absolute;top:50%;height:48px;left:50%;width:100%;transform:translate(-50%, -50%)}.md3-segmented-button__leading,.md3-segmented-button__graphic{display:inline-flex;justify-content:flex-start;align-items:center}.md3-segmented-button__graphic{position:relative;overflow:hidden}.md3-segmented-button__graphic{transition:width 150ms cubic-bezier(0.4, 0, 0.2, 1)}.md3-segmented-button--unselected.md3-segmented-button--with-label .md3-segmented-button__graphic,.md3-segmented-button--unselected.md3-segmented-button--without-label .md3-segmented-button__graphic,.md3-segmented-button--selected.md3-segmented-button--without-checkmark .md3-segmented-button__graphic{width:0}.md3-segmented-button--unselected .md3-segmented-button__checkmark{opacity:0}.md3-segmented-button--selected.md3-segmented-button--with-label .md3-segmented-button__icon{opacity:0}.md3-segmented-button--with-label .md3-segmented-button__checkmark{display:inline-flex;position:absolute}.md3-segmented-button__checkmark-path{stroke-width:2px;stroke-dasharray:29.7833385}.md3-segmented-button--selecting .md3-segmented-button__checkmark-path{stroke-dashoffset:29.7833385;animation:md3-segmented-button-checkmark-selection-draw-in;animation-duration:150ms;animation-delay:50ms;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.md3-segmented-button--selecting.md3-segmented-button--with-label .md3-segmented-button__icon{animation:md3-segmented-button-simple-fade-out;animation-duration:75ms;animation-timing-function:linear;animation-fill-mode:forwards}.md3-segmented-button--deselecting .md3-segmented-button__checkmark{animation:md3-segmented-button-simple-fade-out;animation-duration:50ms;animation-timing-function:linear;animation-fill-mode:forwards}.md3-segmented-button--deselecting.md3-segmented-button--with-label .md3-segmented-button__icon{opacity:0;animation:md3-segmented-button-simple-fade-in;animation-delay:50ms;animation-duration:150ms;animation-timing-function:linear;animation-fill-mode:forwards}/*# sourceMappingURL=shared-styles.css.map */\n`;\n//# sourceMappingURL=shared-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\n\nimport {OutlinedSegmentedButton} from '@material/web/segmentedbutton/lib/outlined-segmented-button.js';\nimport {styles as outlinedStyles} from '@material/web/segmentedbutton/lib/outlined-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/segmentedbutton/lib/shared-styles.css.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-outlined-segmented-button': MdOutlinedSegmentedButton;\n  }\n}\n\n/**\n * MdOutlinedSegmentedButton is the custom element for the Material\n * Design outlined segmented button component.\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdOutlinedSegmentedButton extends ScopedElementsMixin(OutlinedSegmentedButton) {\n  static override styles = [sharedStyles, outlinedStyles];\n  static get scopedElements() {\n    return {\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport { html, LitElement } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\n/**\n * SegmentedButtonSet is the parent component for two or more\n * `SegmentedButton` components. **Only** `SegmentedButton` components may be\n * used as children.\n * @soyCompatible\n */\nexport class SegmentedButtonSet extends LitElement {\n    constructor() {\n        super(...arguments);\n        this.multiselect = false;\n    }\n    getButtonDisabled(index) {\n        if (this.indexOutOfBounds(index))\n            return false;\n        return this.buttons[index].disabled;\n    }\n    setButtonDisabled(index, disabled) {\n        if (this.indexOutOfBounds(index))\n            return;\n        this.buttons[index].disabled = disabled;\n    }\n    getButtonSelected(index) {\n        if (this.indexOutOfBounds(index))\n            return false;\n        return this.buttons[index].selected;\n    }\n    setButtonSelected(index, selected) {\n        // Ignore out-of-index values.\n        if (this.indexOutOfBounds(index))\n            return;\n        // Ignore disabled buttons.\n        if (this.getButtonDisabled(index))\n            return;\n        if (this.multiselect) {\n            this.buttons[index].selected = selected;\n            this.emitSelectionEvent(index);\n            return;\n        }\n        // Single-select segmented buttons are not unselectable.\n        if (!selected)\n            return;\n        this.buttons[index].selected = true;\n        this.emitSelectionEvent(index);\n        // Deselect all other buttons for single-select.\n        for (let i = 0; i < this.buttons.length; i++) {\n            if (i === index)\n                continue;\n            this.buttons[i].selected = false;\n        }\n    }\n    handleSegmentedButtonInteraction(e) {\n        const index = this.buttons.indexOf(e.target);\n        this.toggleSelection(index);\n    }\n    toggleSelection(index) {\n        if (this.indexOutOfBounds(index))\n            return;\n        this.setButtonSelected(index, !this.buttons[index].selected);\n    }\n    indexOutOfBounds(index) {\n        return index < 0 || index >= this.buttons.length;\n    }\n    emitSelectionEvent(index) {\n        this.dispatchEvent(new CustomEvent('segmented-button-set-selection', {\n            detail: {\n                button: this.buttons[index],\n                selected: this.buttons[index].selected,\n                index,\n            },\n            bubbles: true,\n            composed: true\n        }));\n    }\n    /** @soyTemplate */\n    render() {\n        return html `\n     <span\n       role=\"group\"\n       @segmented-button-interaction=\"${this.handleSegmentedButtonInteraction}\"\n       aria-label=\"${ifDefined(this.ariaLabel)}\"\n       class=\"md3-segmented-button-set ${classMap(this.getRenderClasses())}\">\n       <slot></slot>\n     </span>\n     `;\n    }\n    /** @soyTemplate */\n    getRenderClasses() {\n        return {};\n    }\n}\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], SegmentedButtonSet.prototype, \"multiselect\", void 0);\n__decorate([\n    ariaProperty // tslint:disable-line:no-new-decorators\n    ,\n    property({ type: String, attribute: 'aria-label' }),\n    __metadata(\"design:type\", String)\n], SegmentedButtonSet.prototype, \"ariaLabel\", void 0);\n__decorate([\n    queryAssignedElements({ flatten: true }),\n    __metadata(\"design:type\", Array)\n], SegmentedButtonSet.prototype, \"buttons\", void 0);\n//# sourceMappingURL=segmented-button-set.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { SegmentedButtonSet } from './segmented-button-set.js';\n/** @soyCompatible */\nexport class OutlinedSegmentedButtonSet extends SegmentedButtonSet {\n    /** @soyTemplate */\n    getRenderClasses() {\n        return {\n            ...super.getRenderClasses(),\n            'md3-segmented-button-set--outlined': true,\n        };\n    }\n}\n//# sourceMappingURL=outlined-segmented-button-set.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_shape-start-start: var(--md-segmented-button-shape-start-start, var(--md-segmented-button-shape, 9999px));--_shape-start-end: var(--md-segmented-button-shape-start-end, var(--md-segmented-button-shape, 9999px));--_shape-end-end: var(--md-segmented-button-shape-end-end, var(--md-segmented-button-shape, 9999px));--_shape-end-start: var(--md-segmented-button-shape-end-start, var(--md-segmented-button-shape, 9999px));--_container-height: var(--md-segmented-button-container-height, 40px);--_disabled-icon-color: var(--md-segmented-button-disabled-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-icon-opacity: var(--md-segmented-button-disabled-icon-opacity, 0.38);--_disabled-label-text-color: var(--md-segmented-button-disabled-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-label-text-opacity: var(--md-segmented-button-disabled-label-text-opacity, 0.38);--_disabled-outline-color: var(--md-segmented-button-disabled-outline-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-outline-opacity: var(--md-segmented-button-disabled-outline-opacity, 0.12);--_focus-state-layer-opacity: var(--md-segmented-button-focus-state-layer-opacity, 0.12);--_hover-state-layer-opacity: var(--md-segmented-button-hover-state-layer-opacity, 0.08);--_label-text-font: var(--md-segmented-button-label-text-font, Roboto);--_label-text-line-height: var(--md-segmented-button-label-text-line-height, 1.25rem);--_label-text-size: var(--md-segmented-button-label-text-size, 0.875rem);--_label-text-tracking: var(--md-segmented-button-label-text-tracking, 0.006rem);--_label-text-type: var(--md-segmented-button-label-text-type, 500 0.875rem / 1.25rem Roboto);--_label-text-weight: var(--md-segmented-button-label-text-weight, 500);--_outline-color: var(--md-segmented-button-outline-color, var(--md-sys-color-outline, #79747e));--_outline-width: var(--md-segmented-button-outline-width, 1px);--_pressed-state-layer-opacity: var(--md-segmented-button-pressed-state-layer-opacity, 0.12);--_selected-container-color: var(--md-segmented-button-selected-container-color, var(--md-sys-color-secondary-container, #e8def8));--_selected-focus-icon-color: var(--md-segmented-button-selected-focus-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-focus-label-text-color: var(--md-segmented-button-selected-focus-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-focus-state-layer-color: var(--md-segmented-button-selected-focus-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-hover-icon-color: var(--md-segmented-button-selected-hover-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-hover-label-text-color: var(--md-segmented-button-selected-hover-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-hover-state-layer-color: var(--md-segmented-button-selected-hover-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-label-text-color: var(--md-segmented-button-selected-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-pressed-icon-color: var(--md-segmented-button-selected-pressed-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-pressed-label-text-color: var(--md-segmented-button-selected-pressed-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-pressed-state-layer-color: var(--md-segmented-button-selected-pressed-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-with-icon-icon-color: var(--md-segmented-button-selected-with-icon-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_unselected-focus-icon-color: var(--md-segmented-button-unselected-focus-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-label-text-color: var(--md-segmented-button-unselected-focus-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-color: var(--md-segmented-button-unselected-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-icon-color: var(--md-segmented-button-unselected-hover-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-label-text-color: var(--md-segmented-button-unselected-hover-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-color: var(--md-segmented-button-unselected-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-label-text-color: var(--md-segmented-button-unselected-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-icon-color: var(--md-segmented-button-unselected-pressed-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-label-text-color: var(--md-segmented-button-unselected-pressed-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-state-layer-color: var(--md-segmented-button-unselected-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-with-icon-icon-color: var(--md-segmented-button-unselected-with-icon-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_with-icon-icon-size: var(--md-segmented-button-with-icon-icon-size, 18px)}/*# sourceMappingURL=outlined-styles.css.map */\n`;\n//# sourceMappingURL=outlined-styles.css.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{display:flex;outline:none}.md3-segmented-button-set{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;grid-auto-rows:auto;width:100%;height:var(--_container-height)}.md3-segmented-button-set ::slotted(:first-child){border-start-start-radius:var(--_shape-start-start);border-end-start-radius:var(--_shape-end-start)}.md3-segmented-button-set ::slotted(:last-child){border-start-end-radius:var(--_shape-start-end);border-end-end-radius:var(--_shape-end-end)}/*# sourceMappingURL=shared-styles.css.map */\n`;\n//# sourceMappingURL=shared-styles.css.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\n\nimport {OutlinedSegmentedButtonSet} from '@material/web/segmentedbuttonset/lib/outlined-segmented-button-set.js';\nimport {styles as outlinedStyles} from '@material/web/segmentedbuttonset/lib/outlined-styles.css.js';\nimport {styles as sharedStyles} from '@material/web/segmentedbuttonset/lib/shared-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-outlined-segmented-button-set': MdOutlinedSegmentedButtonSet;\n  }\n}\n\n/**\n * MdOutlinedSegmentedButtonSet is the custom element for the Material\n * Design outlined segmented button set component.\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdOutlinedSegmentedButtonSet extends OutlinedSegmentedButtonSet {\n  static override styles = [sharedStyles, outlinedStyles];\n}\n","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `@media(forced-colors: active){:host{--md-slider-active-track-color:CanvasText;--md-slider-disabled-active-track-color:GrayText;--md-slider-disabled-active-track-opacity:1;--md-slider-disabled-handle-color:GrayText;--md-slider-disabled-inactive-track-color:GrayText;--md-slider-disabled-inactive-track-opacity:1;--md-slider-focus-handle-color:CanvasText;--md-slider-handle-color:CanvasText;--md-slider-handle-shadow-color:Canvas;--md-slider-hover-handle-color:CanvasText;--md-slider-hover-state-layer-color:Canvas;--md-slider-hover-state-layer-opacity:1;--md-slider-inactive-track-color:Canvas;--md-slider-label-container-color:Canvas;--md-slider-label-label-text-color:CanvasText;--md-slider-pressed-handle-color:CanvasText;--md-slider-pressed-state-layer-color:Canvas;--md-slider-pressed-state-layer-opacity:1;--md-slider-with-overlap-handle-outline-color:CanvasText;--md-slider-with-tick-marks-active-container-color:Canvas;--md-slider-with-tick-marks-disabled-container-color:GrayText;--md-slider-with-tick-marks-inactive-container-color:CanvasText}.label,.label::before{--labelOutlineWidth: var(--_with-overlap-handle-outline-width);--labelOutlineColor: var(--_with-overlap-handle-outline-color)}:host(:not([disabled])) .track::before{border:1px solid var(--_active-track-color)}}/*# sourceMappingURL=forced-colors-styles.css.map */\n`;\n//# sourceMappingURL=forced-colors-styles.css.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\nimport '../../elevation/elevation.js';\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\nimport { html, LitElement, nothing } from 'lit';\nimport { property, query, queryAsync, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { when } from 'lit/directives/when.js';\nimport { dispatchActivationClick, isActivationClick, redispatchEvent } from '../../controller/events.js';\nimport { FormController, getFormValue } from '../../controller/form-controller.js';\nimport { stringConverter } from '../../controller/string-converter.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\nimport { pointerPress, shouldShowStrongFocus } from '../../focus/strong-focus.js';\nimport { ripple } from '../../ripple/directive.js';\n// This is required for decorators.\n// tslint:disable:no-new-decorators\n// Disable warning for classMap with destructuring\n// tslint:disable:quoted-properties-on-dictionary\nfunction inBounds({ x, y }, element) {\n    if (!element) {\n        return false;\n    }\n    const { top, left, bottom, right } = element.getBoundingClientRect();\n    return x >= left && x <= right && y >= top && y <= bottom;\n}\n// parse values like: foo or foo,bar\nfunction tupleConverter(attr) {\n    const [, v, e] = attr?.match(/\\s*\\[?\\s*([^,]+)(?:(?:\\s*$)|(?:\\s*,\\s*(.*)\\s*))/) ?? [];\n    return e !== undefined ? [v, e] : v;\n}\nfunction toNumber(value) {\n    return Number(value) || 0;\n}\nfunction tupleAsString(value) {\n    return Array.isArray(value) ? value.join() : String(value ?? '');\n}\nfunction valueConverter(attr) {\n    const value = tupleConverter(attr);\n    return Array.isArray(value) ? value.map(i => toNumber(i)) : toNumber(value);\n}\nfunction clamp(value, min, max) {\n    return Math.max(min, Math.min(max, value));\n}\nfunction isOverlapping(elA, elB) {\n    if (!(elA && elB)) {\n        return false;\n    }\n    const a = elA.getBoundingClientRect();\n    const b = elB.getBoundingClientRect();\n    return !(a.top > b.bottom || a.right < b.left || a.bottom < b.top ||\n        a.left > b.right);\n}\n/**\n * Slider component.\n */\nexport class Slider extends LitElement {\n    /**\n     * The associated form element with which this element's value will submit.\n     */\n    get form() {\n        return this.closest('form');\n    }\n    /**\n     * Read only computed value representing the fraction between 0 and 1\n     * respresenting the value's position between min and max. This is a\n     * single fraction or a tuple if the value specifies start and end values.\n     */\n    get valueAsFraction() {\n        const { lowerFraction, upperFraction } = this.getMetrics();\n        return this.allowRange ? [lowerFraction, upperFraction] : upperFraction;\n    }\n    getMetrics() {\n        const step = Math.max(this.step, 1);\n        const range = Math.max(this.max - this.min, step);\n        const lower = Math.min(this.valueA, this.valueB);\n        const upper = Math.max(this.valueA, this.valueB);\n        const lowerFraction = (lower - this.min) / range;\n        const upperFraction = (upper - this.min) / range;\n        return {\n            step,\n            range,\n            lower,\n            upper,\n            lowerFraction,\n            upperFraction,\n        };\n    }\n    constructor() {\n        super();\n        /**\n         * Whether or not the slider is disabled.\n         */\n        this.disabled = false;\n        /**\n         * The slider minimum value\n         */\n        this.min = 0;\n        /**\n         * The slider maximum value\n         */\n        this.max = 10;\n        /**\n         * The slider value, can be a single number, or an array tuple indicating\n         * a start and end value.\n         */\n        this.value = 0;\n        /**\n         * The step between values.\n         */\n        this.step = 1;\n        /**\n         * Whether or not to show tick marks.\n         */\n        this.withTickMarks = false;\n        /**\n         * Whether or not to show a value label when activated.\n         */\n        this.withLabel = false;\n        /**\n         * The HTML name to use in form submission.\n         */\n        this.name = '';\n        this.valueA = 0;\n        this.valueB = 0;\n        this.focusRingAShowing = false;\n        this.focusRingBShowing = false;\n        // allows for lazy rendering of the focus ring by latchin to true when the\n        // focus ring should be rendered.\n        this.focusRingARequested = false;\n        this.focusRingBRequested = false;\n        this.rippleAShowing = false;\n        this.rippleBShowing = false;\n        // handle hover/pressed states are set manually since the handle\n        // does not receive pointer events so that the native inputs are\n        // interaction targets.\n        this.handleAHover = false;\n        this.handleBHover = false;\n        this.handleAPressed = false;\n        this.handleBPressed = false;\n        this.onTopId = 'b';\n        this.handlesOverlapping = false;\n        this.isInteracting = false;\n        // If range should be allowed (detected via value format).\n        this.allowRange = false;\n        this.renderRipple = (id) => html `<md-ripple class=${id} ?disabled=${this.disabled} unbounded></md-ripple>`;\n        this.getRippleA = () => {\n            if (!this.handleAHover) {\n                return null;\n            }\n            this.rippleAShowing = true;\n            return this.rippleA;\n        };\n        this.getRippleB = () => {\n            if (!this.handleBHover) {\n                return null;\n            }\n            this.rippleBShowing = true;\n            return this.rippleB;\n        };\n        this.addController(new FormController(this));\n        this.addEventListener('click', (event) => {\n            if (!isActivationClick(event)) {\n                return;\n            }\n            this.focus();\n            dispatchActivationClick(this.inputB);\n        });\n    }\n    focus() {\n        this.inputB?.focus();\n    }\n    get valueAsString() {\n        return tupleAsString(this.value);\n    }\n    // value coerced to a string\n    [getFormValue]() {\n        return this.valueAsString;\n    }\n    // indicates input values are crossed over each other from initial rendering.\n    isFlipped() {\n        return this.valueA > this.valueB;\n    }\n    willUpdate(changed) {\n        if (changed.has('value') || changed.has('min') || changed.has('max') ||\n            changed.has('step')) {\n            this.allowRange = Array.isArray(this.value);\n            const step = Math.max(this.step, 1);\n            let lower = this.allowRange ? this.value[0] : this.min;\n            lower = clamp(lower - (lower % step), this.min, this.max);\n            let upper = this.allowRange ? this.value[1] :\n                this.value;\n            upper = clamp(upper - (upper % step), this.min, this.max);\n            const isFlipped = this.isFlipped() && this.allowRange;\n            this.valueA = isFlipped ? upper : lower;\n            this.valueB = isFlipped ? lower : upper;\n        }\n        // manually handle ripple hover state since the handle is pointer events\n        // none.\n        if (changed.get('handleAHover') !== undefined) {\n            this.rippleAShowing = true;\n            this.toggleRippleHover(this.rippleA, this.handleAHover);\n        }\n        else if (changed.get('handleBHover') !== undefined) {\n            this.rippleBShowing = true;\n            this.toggleRippleHover(this.rippleB, this.handleBHover);\n        }\n        // facilitates lazy rendering of the focus ring.\n        this.focusRingARequested || (this.focusRingARequested = this.focusRingAShowing);\n        this.focusRingBRequested || (this.focusRingBRequested = this.focusRingBShowing);\n    }\n    async updated(changed) {\n        if (changed.has('value') || changed.has('valueA') ||\n            changed.has('valueB')) {\n            await this.updateComplete;\n            this.handlesOverlapping = isOverlapping(this.handleA, this.handleB);\n        }\n    }\n    render() {\n        const { step, range, lowerFraction, upperFraction } = this.getMetrics();\n        const isFlipped = this.isFlipped();\n        const containerStyles = {\n            // for clipping inputs and active track.\n            '--lowerFraction': String(lowerFraction),\n            '--upperFraction': String(upperFraction),\n            // for generating tick marks\n            '--tickCount': String(range / step)\n        };\n        const containerClasses = {\n            interacting: this.isInteracting,\n            ranged: this.allowRange\n        };\n        // optional label values to show in place of the value.\n        const labelA = String(this.valueLabel?.[isFlipped ? 1 : 0] ?? this.valueA);\n        const labelB = String((this.allowRange ? this.valueLabel?.[isFlipped ? 0 : 1] :\n            this.valueLabel) ??\n            this.valueB);\n        const inputAProps = {\n            id: 'a',\n            lesser: !isFlipped,\n            value: this.valueA,\n            label: labelA,\n            getRipple: this.getRippleA\n        };\n        const inputBProps = {\n            id: 'b',\n            lesser: isFlipped,\n            value: this.valueB,\n            label: labelB,\n            getRipple: this.getRippleB\n        };\n        const handleAProps = {\n            id: 'a',\n            lesser: !isFlipped,\n            showRipple: this.rippleAShowing,\n            focusRequested: this.focusRingARequested,\n            showFocus: this.focusRingAShowing,\n            hover: this.handleAHover,\n            pressed: this.handleAPressed,\n            label: labelA\n        };\n        const handleBProps = {\n            id: 'b',\n            lesser: isFlipped,\n            showRipple: this.rippleBShowing,\n            focusRequested: this.focusRingBRequested,\n            showFocus: this.focusRingBShowing,\n            hover: this.handleBHover,\n            pressed: this.handleBPressed,\n            label: labelB\n        };\n        const handleContainerClasses = {\n            hover: this.handleAHover || this.handleBHover\n        };\n        return html `\n    <div\n      class=\"container ${classMap(containerClasses)}\"\n      style=${styleMap(containerStyles)}\n    >\n      ${when(this.allowRange, () => this.renderInput(inputAProps))}\n      ${this.renderInput(inputBProps)}\n      ${this.renderTrack()}\n      <div class=\"handleContainerPadded\">\n        <div class=\"handleContainerBlock\">\n          <div class=\"handleContainer ${classMap(handleContainerClasses)}\">\n            ${when(this.allowRange, () => this.renderHandle(handleAProps))}\n            ${this.renderHandle(handleBProps)}\n          </div>\n        </div>\n      </div>\n    </div>`;\n    }\n    renderTrack() {\n        const trackClasses = { 'tickMarks': this.withTickMarks };\n        return html `\n    <slot name=\"track\">\n      <div class=\"track ${classMap(trackClasses)}\"></div>\n    </slot>`;\n    }\n    renderFocusRing(visible) {\n        return html `<md-focus-ring .visible=${visible}></md-focus-ring>`;\n    }\n    renderLabel(value) {\n        return html `<div class=\"label\">\n        <span class=\"labelContent\" part=\"label\">${value}</span>\n      </div>`;\n    }\n    renderHandle({ id, lesser, showRipple, focusRequested, showFocus, hover, pressed, label }) {\n        const onTop = !this.disabled && id === this.onTopId;\n        const isOverlapping = !this.disabled && this.handlesOverlapping;\n        return html `<div class=\"handle ${classMap({\n            [id]: true,\n            lesser,\n            hover,\n            pressed,\n            onTop,\n            isOverlapping\n        })}\">\n      <slot name=\"handle${this.allowRange ? (lesser ? 'Lesser' : 'Greater') : ''}\">\n        <div class=\"handleNub\"><md-elevation shadow></md-elevation></div>\n        ${when(this.withLabel, () => this.renderLabel(label))}\n\n      </slot>\n      ${when(showRipple, () => this.renderRipple(id))}\n      ${when(focusRequested, () => this.renderFocusRing(showFocus))}\n    </div>`;\n    }\n    renderInput({ id, lesser, value, label, getRipple }) {\n        // when ranged, ensure announcement includes value info.\n        const ariaLabelDescriptor = this.allowRange ? ` - ${lesser ? `start` : `end`} handle` : '';\n        return html `<input type=\"range\"\n      class=\"${classMap({\n            lesser,\n            [id]: true\n        })}\"\n      @focus=${this.handleFocus}\n      @blur=${this.handleBlur}\n      @pointerdown=${this.handleDown}\n      @pointerup=${this.handleUp}\n      @pointerenter=${this.handleEnter}\n      @pointermove=${this.handleMove}\n      @pointerleave=${this.handleLeave}\n      @input=${this.handleInput}\n      @change=${this.handleChange}\n      .disabled=${this.disabled}\n      .min=${String(this.min)}\n      .max=${String(this.max)}\n      .step=${String(this.step)}\n      .value=${String(value)}\n      .tabIndex=${lesser ? 1 : 0}\n      aria-label=${`${this.ariaLabel}${ariaLabelDescriptor}` || nothing}\n      aria-valuetext=${label}\n      ${ripple(getRipple)}>`;\n    }\n    async toggleRippleHover(ripple, hovering) {\n        const rippleEl = await ripple;\n        if (!rippleEl) {\n            return;\n        }\n        // TODO(b/269799771): improve slider ripple connection\n        if (hovering) {\n            rippleEl.handlePointerenter(new PointerEvent('pointerenter', { isPrimary: true, pointerId: 1 }));\n        }\n        else {\n            rippleEl.handlePointerleave(new PointerEvent('pointerleave', { isPrimary: true, pointerId: 1 }));\n        }\n    }\n    isEventOnA({ target }) {\n        return target === this.inputA;\n    }\n    updateFocusVisible(e) {\n        const isA = this.isEventOnA(e);\n        const showFocus = shouldShowStrongFocus();\n        this.focusRingAShowing = showFocus && isA;\n        this.focusRingBShowing = showFocus && !isA;\n    }\n    handleFocus(e) {\n        this.updateFocusVisible(e);\n        this.updateOnTop(e);\n    }\n    handleBlur(e) {\n        this.focusRingAShowing = false;\n        this.focusRingBShowing = false;\n    }\n    handleDown(e) {\n        pointerPress();\n        this.isInteracting = true;\n        const isA = this.isEventOnA(e);\n        const isPrimaryButton = Boolean(e.buttons & 1);\n        // Since handle moves to pointer on down and there may not be a move,\n        // it needs to be considered hovered..\n        this.handleAHover = !this.disabled && isA && Boolean(this.handleA);\n        this.handleAPressed = isPrimaryButton && this.handleAHover;\n        this.handleBHover = !this.disabled && !isA && Boolean(this.handleB);\n        this.handleBPressed = isPrimaryButton && this.handleBHover;\n        this.updateFocusVisible(e);\n    }\n    handleUp(e) {\n        this.handleAPressed = this.handleBPressed = false;\n        // used to remove animations after interactions...\n        this.renderRoot.addEventListener('transitionend', () => {\n            this.isInteracting = false;\n        }, { once: true });\n    }\n    /**\n     * The move handler tracks handle hovering to facilitate proper ripple\n     * behavior on the slider handle. This is needed because user interaction with\n     * the native input is leveraged to position the handle. Because the separate\n     * displayed handle element has pointer events disabled (to allow interaction\n     * with the input) and the input's handle is a pseudo-element, neither can be\n     * the ripple's interactive element. Therefore the input is the ripple's\n     * interactive element and has a `ripple` directive; however the ripple\n     * is gated on the handle being hovered. In addition, because the ripple\n     * hover state is being specially handled, it must be triggered independent\n     * of the directive. This is done based on the hover state when the\n     * slider is updated.\n     */\n    handleMove(e) {\n        this.handleAHover = !this.disabled && inBounds(e, this.handleA);\n        this.handleBHover = !this.disabled && inBounds(e, this.handleB);\n    }\n    handleEnter(e) {\n        this.handleMove(e);\n    }\n    handleLeave() {\n        this.handleAHover = false;\n        this.handleBHover = false;\n    }\n    updateOnTop(e) {\n        this.onTopId = e.target.classList.contains('a') ? 'a' : 'b';\n    }\n    handleInput(e) {\n        if (this.inputA) {\n            this.valueA = this.inputA.valueAsNumber ?? 0;\n        }\n        this.valueB = this.inputB.valueAsNumber;\n        this.updateOnTop(e);\n        //  update value only on interaction\n        const lower = Math.min(this.valueA, this.valueB);\n        const upper = Math.max(this.valueA, this.valueB);\n        this.value = this.allowRange ? [lower, upper] : this.valueB;\n    }\n    handleChange(event) {\n        redispatchEvent(this, event);\n    }\n}\nSlider.shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true };\n/**\n * @nocollapse\n */\nSlider.formAssociated = true;\n__decorate([\n    ariaProperty // tslint:disable-line:no-new-decorators\n    ,\n    property({ type: String, attribute: 'data-aria-label', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], Slider.prototype, \"ariaLabel\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"disabled\", void 0);\n__decorate([\n    property({ type: Number }),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"min\", void 0);\n__decorate([\n    property({ type: Number }),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"max\", void 0);\n__decorate([\n    property({ converter: valueConverter }),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"value\", void 0);\n__decorate([\n    property({ type: String, converter: tupleConverter }),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"valueLabel\", void 0);\n__decorate([\n    property({ type: Number }),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"step\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"withTickMarks\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"withLabel\", void 0);\n__decorate([\n    property({ type: String, reflect: true, converter: stringConverter }),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"name\", void 0);\n__decorate([\n    query('input.a'),\n    __metadata(\"design:type\", HTMLInputElement)\n], Slider.prototype, \"inputA\", void 0);\n__decorate([\n    query('.handle.a'),\n    __metadata(\"design:type\", HTMLDivElement)\n], Slider.prototype, \"handleA\", void 0);\n__decorate([\n    queryAsync('md-ripple.a'),\n    __metadata(\"design:type\", Promise)\n], Slider.prototype, \"rippleA\", void 0);\n__decorate([\n    query('input.b'),\n    __metadata(\"design:type\", HTMLInputElement)\n], Slider.prototype, \"inputB\", void 0);\n__decorate([\n    query('.handle.b'),\n    __metadata(\"design:type\", HTMLDivElement)\n], Slider.prototype, \"handleB\", void 0);\n__decorate([\n    queryAsync('md-ripple.b'),\n    __metadata(\"design:type\", Promise)\n], Slider.prototype, \"rippleB\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"valueA\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"valueB\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"focusRingAShowing\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"focusRingBShowing\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"rippleAShowing\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"rippleBShowing\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"handleAHover\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"handleBHover\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"handleAPressed\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"handleBPressed\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"onTopId\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"handlesOverlapping\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Slider.prototype, \"isInteracting\", void 0);\n//# sourceMappingURL=slider.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{display:inline-flex;vertical-align:middle;--_active-track-color: var(--md-slider-active-track-color, var(--md-sys-color-primary, #6750a4));--_active-track-height: var(--md-slider-active-track-height, 4px);--_active-track-shape: var(--md-slider-active-track-shape, 9999px);--_disabled-active-track-color: var(--md-slider-disabled-active-track-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-active-track-opacity: var(--md-slider-disabled-active-track-opacity, 0.38);--_disabled-handle-color: var(--md-slider-disabled-handle-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-handle-elevation: var(--md-slider-disabled-handle-elevation, 0);--_disabled-inactive-track-color: var(--md-slider-disabled-inactive-track-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-inactive-track-opacity: var(--md-slider-disabled-inactive-track-opacity, 0.12);--_focus-handle-color: var(--md-slider-focus-handle-color, var(--md-sys-color-primary, #6750a4));--_handle-color: var(--md-slider-handle-color, var(--md-sys-color-primary, #6750a4));--_handle-elevation: var(--md-slider-handle-elevation, 1);--_handle-height: var(--md-slider-handle-height, 20px);--_handle-shadow-color: var(--md-slider-handle-shadow-color, var(--md-sys-color-shadow, #000));--_handle-shape: var(--md-slider-handle-shape, 9999px);--_handle-width: var(--md-slider-handle-width, 20px);--_hover-handle-color: var(--md-slider-hover-handle-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-color: var(--md-slider-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-opacity: var(--md-slider-hover-state-layer-opacity, 0.08);--_inactive-track-color: var(--md-slider-inactive-track-color, var(--md-sys-color-surface-variant, #e7e0ec));--_inactive-track-height: var(--md-slider-inactive-track-height, 4px);--_inactive-track-shape: var(--md-slider-inactive-track-shape, 9999px);--_label-container-color: var(--md-slider-label-container-color, var(--md-sys-color-primary, #6750a4));--_label-container-height: var(--md-slider-label-container-height, 28px);--_label-label-text-color: var(--md-slider-label-label-text-color, var(--md-sys-color-on-primary, #fff));--_label-label-text-type: var(--md-slider-label-label-text-type, 500 0.75rem / 1rem Roboto);--_pressed-handle-color: var(--md-slider-pressed-handle-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-color: var(--md-slider-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--md-slider-pressed-state-layer-opacity, 0.12);--_state-layer-size: var(--md-slider-state-layer-size, 40px);--_with-overlap-handle-outline-color: var(--md-slider-with-overlap-handle-outline-color, var(--md-sys-color-on-primary, #fff));--_with-overlap-handle-outline-width: var(--md-slider-with-overlap-handle-outline-width, 1px);--_with-tick-marks-active-container-color: var(--md-slider-with-tick-marks-active-container-color, var(--md-sys-color-on-primary, #fff));--_with-tick-marks-container-size: var(--md-slider-with-tick-marks-container-size, 2px);--_with-tick-marks-disabled-container-color: var(--md-slider-with-tick-marks-disabled-container-color, var(--md-sys-color-on-surface, #1c1b1f));--_with-tick-marks-inactive-container-color: var(--md-slider-with-tick-marks-inactive-container-color, var(--md-sys-color-on-surface-variant, #49454f));--_container-min-inline-size: var(--md-slider-container-min-inline-size, 200px);--_label-container-shape: var(--md-slider-label-container-shape, 9999px);--_handle-motion-duration: var(--md-slider-handle-motion-duration, 50ms);--_label-motion-duration: var(--md-slider-label-motion-duration, 100ms);--_label-motion-easing: var(--md-slider-label-motion-easing, cubic-bezier(0.2, 0, 0, 1));min-inline-size:var(--_container-min-inline-size);--md-elevation-duration:280ms;--md-elevation-level:var(--_handle-elevation);--md-elevation-shadow-color:var(--_handle-shadow-color)}@media(prefers-reduced-motion){:host{--_handle-motion-duration: 0;--_label-motion-duration: 0}}:host([disabled]){opacity:var(--_disabled-active-track-opacity);--md-elevation-level:var(--_disabled-handle-elevation)}.container{flex:1;display:flex;align-items:center;position:relative;block-size:var(--_state-layer-size);pointer-events:none}.track{position:absolute;inset:0;display:flex;align-items:center}.track::before,.track::after{position:absolute;content:\"\";--track-padding: calc( (var(--_state-layer-size) / 2) - var(--_with-tick-marks-container-size) );inset-inline-start:var(--track-padding);inset-inline-end:var(--track-padding);--tickWidth: calc( (100% - var(--_with-tick-marks-container-size) * 2) / var(--tickCount) );background-image:radial-gradient(circle at var(--_with-tick-marks-container-size) center, var(--tickColor) 0, var(--tickColor) calc(var(--_with-tick-marks-container-size) / 2), transparent calc(var(--_with-tick-marks-container-size) / 2));background-color:var(--trackColor);background-size:var(--tickWidth) 100%}.track::before{block-size:var(--_inactive-track-height);border-radius:var(--_inactive-track-shape);--trackColor: var(--_inactive-track-color);--tickColor: var(--_inactive-track-color)}.track.tickMarks::before{--tickColor: var(--_with-tick-marks-inactive-container-color)}:host([disabled]) .track::before{--trackColor: var(--_disabled-inactive-track-color);--tickColor: var(--_disabled-inactive-track-color);opacity:calc(1/var(--_disabled-active-track-opacity)*var(--_disabled-inactive-track-opacity))}.track::after{transition-property:none;transition-duration:var(--_handle-motion-duration);transition-timing-function:linear;block-size:var(--_active-track-height);border-radius:var(--_active-track-shape);--trackColor: var(--_active-track-color);--tickColor: var(--_active-track-color);--activeTrackMaxClip: calc( 100% - var(--_with-tick-marks-container-size) * 2 );--lowerFractionNotZero: min(var(--lowerFraction) * 1e9, 1);--activeTrackStartOffset: calc( var(--_with-tick-marks-container-size) * var(--lowerFractionNotZero) );--activeTrackStartClip: calc( var(--activeTrackStartOffset) + var(--activeTrackMaxClip) * var(--lowerFraction) );--upperFractionNotOne: min((1 - var(--upperFraction)) * 1e9, 1);--activeTrackEndOffset: calc( var(--_with-tick-marks-container-size) * var(--upperFractionNotOne) );--activeTrackEndClip: calc( var(--activeTrackEndOffset) + var(--activeTrackMaxClip) * (1 - var(--upperFraction)) );clip-path:inset(0 var(--activeTrackEndClip) 0 var(--activeTrackStartClip))}.interacting .track::after{transition-property:clip-path}:host-context([dir=rtl]) .track::after{clip-path:inset(0 var(--activeTrackStartClip) 0 var(--activeTrackEndClip))}:host([dir=rtl]) .track::after{clip-path:inset(0 var(--activeTrackStartClip) 0 var(--activeTrackEndClip))}.track:dir(rtl)::after{clip-path:inset(0 var(--activeTrackStartClip) 0 var(--activeTrackEndClip))}.track.tickMarks::after{--tickColor: var(--_with-tick-marks-active-container-color)}:host([disabled]) .track::after{--trackColor: var(--_disabled-active-track-color);--tickColor: var(--_disabled-active-track-color)}:host([disabled]) .track.tickMarks::before,:host([disabled]) .track.tickMarks::after{--tickColor: var(--_with-tick-marks-disabled-container-color)}.handleContainerPadded{position:relative;block-size:100%;inline-size:100%;padding-inline:calc(var(--_state-layer-size)/2)}.handleContainerBlock{position:relative;block-size:100%;inline-size:100%}.handleContainer{position:absolute;inset-block-start:0;inset-block-end:0;inset-inline-start:calc(100%*var(--lowerFraction));inline-size:calc(100%*(var(--upperFraction) - var(--lowerFraction)));transition-property:none;transition-duration:var(--_handle-motion-duration);transition-timing-function:linear}.interacting .handleContainer{transition-property:inset-inline-start,inline-size}.handle{position:absolute;block-size:var(--_state-layer-size);inline-size:var(--_state-layer-size);border-radius:var(--_handle-shape);display:grid;place-items:center}.handleNub{position:absolute;height:var(--_handle-height);width:var(--_handle-width);border-radius:var(--_handle-shape);background:var(--_handle-color)}:host([disabled]) .handleNub{background:var(--_disabled-handle-color)}.input.b:focus~.handleContainer .handle.b>slot>.handleNub,.input.a:focus~.handleContainer .handle.a>slot>.handleNub{background:var(--_focus-handle-color)}.container>.handleContainer .handle.hover>slot>.handleNub{background:var(--_hover-handle-color)}.container>.handleContainer .handle.pressed>slot>.handleNub{background:var(--_pressed-handle-color)}.onTop.isOverlapping{--labelOutlineWidth: var(--_with-overlap-handle-outline-width);--labelOutlineColor: var(--_with-overlap-handle-outline-color)}.handleNub,.label,.label::before{border:var(--labelOutlineColor, transparent) solid var(--labelOutlineWidth, 0)}.handle.lesser{inset-inline-start:calc(0px - var(--_state-layer-size)/2)}.handle:not(.lesser){inset-inline-end:calc(0px - var(--_state-layer-size)/2)}.label{position:absolute;box-sizing:border-box;display:grid;padding:4px;place-items:center;border-radius:var(--_label-container-shape);color:var(--_label-label-text-color);font:var(--_label-label-text-type);inset-block-end:100%;min-inline-size:var(--_label-container-height);min-block-size:var(--_label-container-height);background:var(--_label-container-color);transition-property:transform;transition-duration:var(--_label-motion-duration);transition-timing-function:var(--_label-motion-easing);transform-origin:center bottom;transform:scale(0)}:host(:focus-within) .label,.handleContainer.hover .label{transform:scale(1)}.label::before,.label::after{position:absolute;display:block;content:\"\";background:inherit}.label::before{--triangleSize: calc(var(--_label-container-height) / 2);--triangleOffset: calc(var(--_label-container-height) / -10);inline-size:var(--triangleSize);block-size:var(--triangleSize);bottom:var(--triangleOffset);transform:rotate(45deg)}.label::after{inset:0px;border-radius:inherit}.labelContent{z-index:1}input[type=range]{opacity:0;-webkit-tap-highlight-color:rgba(0,0,0,0);position:absolute;box-sizing:border-box;height:100%;width:100%;margin:0;background:rgba(0,0,0,0);cursor:pointer;pointer-events:auto;appearance:none}input[type=range]:focus{outline:none}::-webkit-slider-runnable-track{-webkit-appearance:none}::-moz-range-track{appearance:none}::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;block-size:var(--_state-layer-size);inline-size:var(--_state-layer-size);opacity:0;z-index:2}::-moz-range-thumb{appearance:none;block-size:var(--_state-layer-size);inline-size:var(--_state-layer-size);opacity:0;z-index:2}.ranged input{--valueFromStart: calc( var(--_state-layer-size) / 2 + (100% - var(--_state-layer-size)) * ( var(--lowerFraction) + ((var(--upperFraction) - var(--lowerFraction)) / 2) ) );--valueFromEnd: calc(100% - var(--valueFromStart));clip-path:inset(0 var(--leftClip, 0) 0 var(--rightClip, 0))}.ranged input.lesser{--leftClip: var(--valueFromEnd);--rightClip: 0}.ranged input:not(.lesser){--leftClip: 0;--rightClip: var(--valueFromStart)}.ranged input.lesser:dir(rtl){--leftClip: 0;--rightClip: var(--valueFromEnd)}:host-context([dir=rtl]) .ranged input.lesser{--leftClip: 0;--rightClip: var(--valueFromEnd)}:host([dir=rtl]) .ranged input.lesser{--leftClip: 0;--rightClip: var(--valueFromEnd)}.ranged input:not(.lesser):dir(rtl){--leftClip: var(--valueFromStart);--rightClip: 0}:host-context([dir=rtl]) .ranged input:not(.lesser){--leftClip: var(--valueFromStart);--rightClip: 0}:host([dir=rtl]) .ranged input:not(.lesser){--leftClip: var(--valueFromStart);--rightClip: 0}.onTop{z-index:1}md-focus-ring{--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, 9999px);--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, 9999px);--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, 9999px);--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, 9999px);--md-focus-ring-offset-vertical:-2px;--md-focus-ring-offset-horizontal:-2px}.handle{--md-ripple-hover-color:var(--_hover-state-layer-color);--md-ripple-hover-opacity:var(--_hover-state-layer-opacity);--md-ripple-pressed-color:var(--_pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_pressed-state-layer-opacity)}md-ripple{height:var(--_state-layer-size);width:var(--_state-layer-size)}md-elevation{position:absolute;inset:0}/*# sourceMappingURL=slider-styles.css.map */\n`;\n//# sourceMappingURL=slider-styles.css.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdElevation } from '../elevation/elevation.js';\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport {ScopedElementsMixin} from '@open-wc/scoped-elements';\n\nimport {styles as forcedColorsStyles} from '@material/web/slider/lib/forced-colors-styles.css.js';\nimport {Slider} from '@material/web/slider/lib/slider.js';\nimport {styles} from '@material/web/slider/lib/slider-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-slider': MdSlider;\n  }\n}\n\n/**\n * @summary Sliders allow users to view and select a value (or range) along\n * a track.\n *\n * @description\n * Changes made with sliders are immediate, allowing the user to make slider\n * adjustments while determining a selection. Sliders shouldn’t be used to\n * adjust settings with any delay in providing user feedback. Sliders reflect\n * the current state of the settings they control.\n *\n * __Example usages:__\n * - Sliders are ideal for adjusting settings such as volume and brightness, or\n * for applying image filters.\n */\nexport class MdSlider extends ScopedElementsMixin(Slider) {\n  static override styles = [styles, forcedColorsStyles];\n  \n  static get scopedElements() {\n    return {\n      'md-elevation': MdElevation,\n      'md-focus-ring': MdFocusRing,\n      'md-ripple': MdRipple\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate, __metadata } from \"tslib\";\n// tslint:disable:no-new-decorators\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\nimport { html, LitElement } from 'lit';\nimport { eventOptions, property, query, queryAsync, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { when } from 'lit/directives/when.js';\nimport { dispatchActivationClick, isActivationClick } from '../../controller/events.js';\nimport { FormController, getFormValue } from '../../controller/form-controller.js';\nimport { ariaProperty } from '../../decorators/aria-property.js';\nimport { pointerPress as focusRingPointerPress, shouldShowStrongFocus } from '../../focus/strong-focus.js';\nimport { ripple } from '../../ripple/directive.js';\n/**\n * @fires input {InputEvent} Fired whenever `selected` changes due to user\n * interaction (bubbles and composed).\n * @fires change {Event} Fired whenever `selected` changes due to user\n * interaction (bubbles).\n */\nexport class Switch extends LitElement {\n    /**\n     * The associated form element with which this element's value will submit.\n     */\n    get form() {\n        return this.closest('form');\n    }\n    [getFormValue]() {\n        return this.selected ? this.value : null;\n    }\n    constructor() {\n        super();\n        /**\n         * Disables the switch and makes it non-interactive.\n         */\n        this.disabled = false;\n        /**\n         * Puts the switch in the selected state and sets the form submission value to\n         * the `value` property.\n         */\n        this.selected = false;\n        /**\n         * Shows both the selected and deselected icons.\n         */\n        this.icons = false;\n        /**\n         * Shows only the selected icon, and not the deselected icon. If `true`,\n         * overrides the behavior of the `icons` property.\n         */\n        this.showOnlySelectedIcon = false;\n        this.ariaLabelledBy = '';\n        this.showFocusRing = false;\n        this.showRipple = false;\n        /**\n         * The HTML name to use in form submission.\n         */\n        this.name = '';\n        /**\n         * The value associated with this switch on form submission. `null` is\n         * submitted when `selected` is `false`.\n         */\n        this.value = 'on';\n        this.renderRipple = () => {\n            return html `\n      <span class=\"md3-switch__ripple\">\n        <md-ripple\n          ?disabled=\"${this.disabled}\"\n          unbounded>\n        </md-ripple>\n      </span>\n    `;\n        };\n        this.getRipple = () => {\n            this.showRipple = true;\n            return this.ripple;\n        };\n        this.renderFocusRing = () => {\n            return html `<md-focus-ring visible></md-focus-ring>`;\n        };\n        this.addController(new FormController(this));\n        this.addEventListener('click', (event) => {\n            if (!isActivationClick(event)) {\n                return;\n            }\n            this.button?.focus();\n            if (this.button != null) {\n                // this triggers the click behavior, and the ripple\n                dispatchActivationClick(this.button);\n            }\n        });\n    }\n    render() {\n        const ariaLabelValue = this.ariaLabel ? this.ariaLabel : undefined;\n        const ariaLabelledByValue = this.ariaLabelledBy ? this.ariaLabelledBy : undefined;\n        // NOTE: buttons must use only [phrasing\n        // content](https://html.spec.whatwg.org/multipage/dom.html#phrasing-content)\n        // children, which includes custom elements, but not `div`s\n        return html `\n      <button\n        type=\"button\"\n        class=\"md3-switch ${classMap(this.getRenderClasses())}\"\n        role=\"switch\"\n        aria-checked=\"${this.selected}\"\n        aria-label=\"${ifDefined(ariaLabelValue)}\"\n        aria-labelledby=\"${ifDefined(ariaLabelledByValue)}\"\n        ?disabled=${this.disabled}\n        @click=${this.handleClick}\n        @focus=\"${this.handleFocus}\"\n        @blur=\"${this.handleBlur}\"\n        @pointerdown=${this.handlePointerDown}\n        ${ripple(this.getRipple)}\n      >\n        ${when(this.showFocusRing, this.renderFocusRing)}\n        <span class=\"md3-switch__track\">\n          ${this.renderHandle()}\n        </span>\n      </button>\n    `;\n    }\n    getRenderClasses() {\n        return {\n            'md3-switch--selected': this.selected,\n            'md3-switch--unselected': !this.selected,\n        };\n    }\n    renderHandle() {\n        /** @classMap */\n        const classes = {\n            'md3-switch__handle--big': this.icons && !this.showOnlySelectedIcon,\n        };\n        return html `\n      <span class=\"md3-switch__handle-container\">\n        ${when(this.showRipple, this.renderRipple)}\n        <span class=\"md3-switch__handle ${classMap(classes)}\">\n          ${this.shouldShowIcons() ? this.renderIcons() : html ``}\n        </span>\n        ${this.renderTouchTarget()}\n      </span>\n    `;\n    }\n    renderIcons() {\n        return html `\n      <div class=\"md3-switch__icons\">\n        ${this.renderOnIcon()}\n        ${this.showOnlySelectedIcon ? html `` : this.renderOffIcon()}\n      </div>\n    `;\n    }\n    /**\n     * https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Acheck%3AFILL%400%3Bwght%40500%3BGRAD%400%3Bopsz%4024\n     */\n    renderOnIcon() {\n        return html `\n      <svg class=\"md3-switch__icon md3-switch__icon--on\" viewBox=\"0 0 24 24\">\n        <path d=\"M9.55 18.2 3.65 12.3 5.275 10.675 9.55 14.95 18.725 5.775 20.35 7.4Z\"/>\n      </svg>\n    `;\n    }\n    /**\n     * https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Aclose%3AFILL%400%3Bwght%40500%3BGRAD%400%3Bopsz%4024\n     */\n    renderOffIcon() {\n        return html `\n      <svg class=\"md3-switch__icon md3-switch__icon--off\" viewBox=\"0 0 24 24\">\n        <path d=\"M6.4 19.2 4.8 17.6 10.4 12 4.8 6.4 6.4 4.8 12 10.4 17.6 4.8 19.2 6.4 13.6 12 19.2 17.6 17.6 19.2 12 13.6Z\"/>\n      </svg>\n    `;\n    }\n    renderTouchTarget() {\n        return html `<span class=\"md3-switch__touch\"></span>`;\n    }\n    shouldShowIcons() {\n        return this.icons || this.showOnlySelectedIcon;\n    }\n    handleClick() {\n        if (this.disabled) {\n            return;\n        }\n        this.selected = !this.selected;\n        this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));\n        // Bubbles but does not compose to mimic native browser <input> & <select>\n        // Additionally, native change event is not an InputEvent.\n        this.dispatchEvent(new Event('change', { bubbles: true }));\n    }\n    handleFocus() {\n        this.showFocusRing = shouldShowStrongFocus();\n    }\n    handleBlur() {\n        this.showFocusRing = false;\n    }\n    handlePointerDown() {\n        focusRingPointerPress();\n        this.showFocusRing = false;\n    }\n}\nSwitch.shadowRootOptions = { mode: 'open', delegatesFocus: true };\n/**\n * @nocollapse\n */\nSwitch.formAssociated = true;\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Switch.prototype, \"disabled\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Switch.prototype, \"selected\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Switch.prototype, \"icons\", void 0);\n__decorate([\n    property({ type: Boolean }),\n    __metadata(\"design:type\", Object)\n], Switch.prototype, \"showOnlySelectedIcon\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-label', noAccessor: true }),\n    __metadata(\"design:type\", String)\n], Switch.prototype, \"ariaLabel\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'data-aria-labelledby', noAccessor: true }),\n    __metadata(\"design:type\", Object)\n], Switch.prototype, \"ariaLabelledBy\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Switch.prototype, \"showFocusRing\", void 0);\n__decorate([\n    state(),\n    __metadata(\"design:type\", Object)\n], Switch.prototype, \"showRipple\", void 0);\n__decorate([\n    queryAsync('md-ripple'),\n    __metadata(\"design:type\", Promise)\n], Switch.prototype, \"ripple\", void 0);\n__decorate([\n    query('button'),\n    __metadata(\"design:type\", HTMLButtonElement)\n], Switch.prototype, \"button\", void 0);\n__decorate([\n    property({ type: String, reflect: true }),\n    __metadata(\"design:type\", Object)\n], Switch.prototype, \"name\", void 0);\n__decorate([\n    property({ type: String }),\n    __metadata(\"design:type\", Object)\n], Switch.prototype, \"value\", void 0);\n__decorate([\n    eventOptions({ passive: true }),\n    __metadata(\"design:type\", Function),\n    __metadata(\"design:paramtypes\", []),\n    __metadata(\"design:returntype\", void 0)\n], Switch.prototype, \"handlePointerDown\", null);\n//# sourceMappingURL=switch.js.map","/**\n  * @license\n  * Copyright 2022 Google LLC\n  * SPDX-License-Identifier: Apache-2.0\n  */\nimport { css } from 'lit';\nexport const styles = css `:host{--_handle-shape-start-start: var(--md-switch-handle-shape-start-start, var(--md-switch-handle-shape, 9999px));--_handle-shape-start-end: var(--md-switch-handle-shape-start-end, var(--md-switch-handle-shape, 9999px));--_handle-shape-end-end: var(--md-switch-handle-shape-end-end, var(--md-switch-handle-shape, 9999px));--_handle-shape-end-start: var(--md-switch-handle-shape-end-start, var(--md-switch-handle-shape, 9999px));--_track-shape-start-start: var(--md-switch-track-shape-start-start, var(--md-switch-track-shape, 9999px));--_track-shape-start-end: var(--md-switch-track-shape-start-end, var(--md-switch-track-shape, 9999px));--_track-shape-end-end: var(--md-switch-track-shape-end-end, var(--md-switch-track-shape, 9999px));--_track-shape-end-start: var(--md-switch-track-shape-end-start, var(--md-switch-track-shape, 9999px));--_disabled-selected-handle-color: var(--md-switch-disabled-selected-handle-color, rgb(var(--md-sys-color-surface-rgb, 255, 251, 254), 1));--_disabled-selected-icon-color: var(--md-switch-disabled-selected-icon-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_disabled-selected-track-color: var(--md-switch-disabled-selected-track-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.12));--_disabled-unselected-handle-color: var(--md-switch-disabled-unselected-handle-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.38));--_disabled-unselected-icon-color: var(--md-switch-disabled-unselected-icon-color, rgb(var(--md-sys-color-surface-variant-rgb, 231, 224, 236), 0.38));--_disabled-unselected-track-color: var(--md-switch-disabled-unselected-track-color, rgb(var(--md-sys-color-surface-variant-rgb, 231, 224, 236), 0.12));--_disabled-unselected-track-outline-color: var(--md-switch-disabled-unselected-track-outline-color, rgb(var(--md-sys-color-on-surface-rgb, 28, 27, 31), 0.12));--_pressed-handle-height: var(--md-switch-pressed-handle-height, 28px);--_pressed-handle-width: var(--md-switch-pressed-handle-width, 28px);--_selected-focus-handle-color: var(--md-switch-selected-focus-handle-color, var(--md-sys-color-primary-container, #eaddff));--_selected-focus-icon-color: var(--md-switch-selected-focus-icon-color, var(--md-sys-color-on-primary-container, #21005d));--_selected-focus-state-layer-color: var(--md-switch-selected-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-opacity: var(--md-switch-selected-focus-state-layer-opacity, 0.12);--_selected-focus-track-color: var(--md-switch-selected-focus-track-color, var(--md-sys-color-primary, #6750a4));--_selected-handle-color: var(--md-switch-selected-handle-color, var(--md-sys-color-on-primary, #fff));--_selected-handle-height: var(--md-switch-selected-handle-height, 24px);--_selected-handle-width: var(--md-switch-selected-handle-width, 24px);--_selected-hover-handle-color: var(--md-switch-selected-hover-handle-color, var(--md-sys-color-primary-container, #eaddff));--_selected-hover-icon-color: var(--md-switch-selected-hover-icon-color, var(--md-sys-color-on-primary-container, #21005d));--_selected-hover-state-layer-color: var(--md-switch-selected-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-opacity: var(--md-switch-selected-hover-state-layer-opacity, 0.08);--_selected-hover-track-color: var(--md-switch-selected-hover-track-color, var(--md-sys-color-primary, #6750a4));--_selected-icon-color: var(--md-switch-selected-icon-color, var(--md-sys-color-on-primary-container, #21005d));--_selected-icon-size: var(--md-switch-selected-icon-size, 16px);--_selected-pressed-handle-color: var(--md-switch-selected-pressed-handle-color, var(--md-sys-color-primary-container, #eaddff));--_selected-pressed-icon-color: var(--md-switch-selected-pressed-icon-color, var(--md-sys-color-on-primary-container, #21005d));--_selected-pressed-state-layer-color: var(--md-switch-selected-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-state-layer-opacity: var(--md-switch-selected-pressed-state-layer-opacity, 0.12);--_selected-pressed-track-color: var(--md-switch-selected-pressed-track-color, var(--md-sys-color-primary, #6750a4));--_selected-track-color: var(--md-switch-selected-track-color, var(--md-sys-color-primary, #6750a4));--_state-layer-shape: var(--md-switch-state-layer-shape, 9999px);--_state-layer-size: var(--md-switch-state-layer-size, 40px);--_track-height: var(--md-switch-track-height, 32px);--_track-outline-width: var(--md-switch-track-outline-width, 2px);--_track-width: var(--md-switch-track-width, 52px);--_unselected-focus-handle-color: var(--md-switch-unselected-focus-handle-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-focus-icon-color: var(--md-switch-unselected-focus-icon-color, var(--md-sys-color-surface-variant, #e7e0ec));--_unselected-focus-state-layer-color: var(--md-switch-unselected-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-opacity: var(--md-switch-unselected-focus-state-layer-opacity, 0.12);--_unselected-focus-track-color: var(--md-switch-unselected-focus-track-color, var(--md-sys-color-surface-variant, #e7e0ec));--_unselected-focus-track-outline-color: var(--md-switch-unselected-focus-track-outline-color, var(--md-sys-color-outline, #79747e));--_unselected-handle-color: var(--md-switch-unselected-handle-color, var(--md-sys-color-outline, #79747e));--_unselected-handle-height: var(--md-switch-unselected-handle-height, 16px);--_unselected-handle-width: var(--md-switch-unselected-handle-width, 16px);--_unselected-hover-handle-color: var(--md-switch-unselected-hover-handle-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-hover-icon-color: var(--md-switch-unselected-hover-icon-color, var(--md-sys-color-surface-variant, #e7e0ec));--_unselected-hover-state-layer-color: var(--md-switch-unselected-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-opacity: var(--md-switch-unselected-hover-state-layer-opacity, 0.08);--_unselected-hover-track-color: var(--md-switch-unselected-hover-track-color, var(--md-sys-color-surface-variant, #e7e0ec));--_unselected-hover-track-outline-color: var(--md-switch-unselected-hover-track-outline-color, var(--md-sys-color-outline, #79747e));--_unselected-icon-color: var(--md-switch-unselected-icon-color, var(--md-sys-color-surface-variant, #e7e0ec));--_unselected-icon-size: var(--md-switch-unselected-icon-size, 16px);--_unselected-pressed-handle-color: var(--md-switch-unselected-pressed-handle-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-pressed-icon-color: var(--md-switch-unselected-pressed-icon-color, var(--md-sys-color-surface-variant, #e7e0ec));--_unselected-pressed-state-layer-color: var(--md-switch-unselected-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-state-layer-opacity: var(--md-switch-unselected-pressed-state-layer-opacity, 0.12);--_unselected-pressed-track-color: var(--md-switch-unselected-pressed-track-color, var(--md-sys-color-surface-variant, #e7e0ec));--_unselected-pressed-track-outline-color: var(--md-switch-unselected-pressed-track-outline-color, var(--md-sys-color-outline, #79747e));--_unselected-track-color: var(--md-switch-unselected-track-color, var(--md-sys-color-surface-variant, #e7e0ec));--_unselected-track-outline-color: var(--md-switch-unselected-track-outline-color, var(--md-sys-color-outline, #79747e));--_with-icon-handle-height: var(--md-switch-with-icon-handle-height, 24px);--_with-icon-handle-width: var(--md-switch-with-icon-handle-width, 24px);display:inline-flex;outline:none;vertical-align:top;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media screen and (forced-colors: active){:host{--md-switch-disabled-selected-icon-color:GrayText;--md-switch-disabled-selected-track-color:GrayText;--md-switch-disabled-unselected-handle-color:GrayText;--md-switch-disabled-unselected-icon-color:Canvas;--md-switch-selected-focus-track-color:ButtonText;--md-switch-selected-hover-track-color:ButtonText;--md-switch-selected-icon-color:ButtonText;--md-switch-selected-pressed-track-color:ButtonText;--md-switch-selected-track-color:ButtonText;--md-switch-unselected-focus-handle-color:ButtonText;--md-switch-unselected-handle-color:ButtonText;--md-switch-unselected-hover-handle-color:ButtonText;--md-switch-unselected-icon-color:Canvas;--md-switch-unselected-pressed-handle-color:ButtonText}}md-focus-ring{--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, var(--_track-shape-start-start));--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, var(--_track-shape-start-end));--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, var(--_track-shape-end-start));--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, var(--_track-shape-end-end)))))}.md3-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;padding:0;position:relative;width:var(--_track-width);height:var(--_track-height);border-start-start-radius:var(--_track-shape-start-start);border-start-end-radius:var(--_track-shape-start-end);border-end-end-radius:var(--_track-shape-end-end);border-end-start-radius:var(--_track-shape-end-start)}.md3-switch__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.md3-switch:disabled{cursor:default;pointer-events:none}.md3-switch:disabled .md3-switch__track{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.md3-switch:disabled .md3-switch__track::before{background-clip:content-box}.md3-switch--selected:disabled .md3-switch__track{background-clip:border-box}.md3-switch__track{position:absolute;width:100%;height:100%;box-sizing:border-box;border-radius:inherit;display:flex;justify-content:center;align-items:center;transition:background-color 67ms linear;background-color:var(--_selected-track-color)}.md3-switch:disabled .md3-switch__track{transition:none}.md3-switch--selected:hover .md3-switch__track{background-color:var(--_selected-hover-track-color)}.md3-switch--selected:focus-visible .md3-switch__track{background-color:var(--_selected-focus-track-color)}.md3-switch--selected:active .md3-switch__track{background-color:var(--_selected-pressed-track-color)}.md3-switch--selected:disabled .md3-switch__track{background-color:var(--_disabled-selected-track-color)}.md3-switch__track::before{content:\"\";display:flex;position:absolute;height:100%;width:100%;border-radius:inherit;box-sizing:border-box;border-style:solid;transition-property:opacity,background-color;transition-timing-function:linear;transition-duration:67ms;border-width:var(--_track-outline-width);background-color:var(--_unselected-track-color);border-color:var(--_unselected-track-outline-color)}.md3-switch:disabled .md3-switch__track::before{transition:none}.md3-switch--selected .md3-switch__track::before{opacity:0}.md3-switch--unselected:hover .md3-switch__track::before{background-color:var(--_unselected-hover-track-color);border-color:var(--_unselected-hover-track-outline-color)}.md3-switch--unselected:focus-visible .md3-switch__track::before{background-color:var(--_unselected-focus-track-color);border-color:var(--_unselected-focus-track-outline-color)}.md3-switch--unselected:active .md3-switch__track::before{background-color:var(--_unselected-pressed-track-color);border-color:var(--_unselected-pressed-track-outline-color)}.md3-switch--unselected:disabled .md3-switch__track::before{background-color:var(--_disabled-unselected-track-color);border-color:var(--_disabled-unselected-track-outline-color)}.md3-switch__handle-container{position:relative;transition:margin 300ms cubic-bezier(0.175, 0.885, 0.32, 1.275);display:flex}.md3-switch--selected .md3-switch__handle-container{margin-inline-start:calc(var(--_track-width) - var(--_track-height))}.md3-switch--unselected .md3-switch__handle-container{margin-inline-end:calc(var(--_track-width) - var(--_track-height))}.md3-switch:disabled .md3-switch__handle-container{transition:none}.md3-switch__handle{border-start-start-radius:var(--_handle-shape-start-start);border-start-end-radius:var(--_handle-shape-start-end);border-end-end-radius:var(--_handle-shape-end-end);border-end-start-radius:var(--_handle-shape-end-start);height:var(--_unselected-handle-height);width:var(--_unselected-handle-width);background-color:var(--_selected-handle-color);transform-origin:center;transition-property:height,width,background-color;transition-duration:250ms,250ms,67ms;transition-timing-function:cubic-bezier(0.2, 0, 0, 1),cubic-bezier(0.2, 0, 0, 1),linear;z-index:0}.md3-switch__handle::before{content:\"\";display:flex;position:absolute;height:100%;width:100%;border-radius:inherit;box-sizing:border-box;transition:opacity 67ms linear}.md3-switch--selected .md3-switch__handle::before{opacity:0}.md3-switch:disabled .md3-switch__handle::before{transition:none}.md3-switch:disabled .md3-switch__handle{transition:none}.md3-switch--selected .md3-switch__handle,.md3-switch--unselected .md3-switch__handle.md3-switch__handle--big{height:var(--_selected-handle-height);width:var(--_selected-handle-width)}.md3-switch--selected:enabled:active .md3-switch__handle,.md3-switch--unselected:enabled:active .md3-switch__handle{height:var(--_pressed-handle-height);width:var(--_pressed-handle-width);transition-timing-function:linear;transition-duration:100ms}.md3-switch--selected:hover .md3-switch__handle{background-color:var(--_selected-hover-handle-color)}.md3-switch--selected:focus-visible .md3-switch__handle{background-color:var(--_selected-focus-handle-color)}.md3-switch--selected:active .md3-switch__handle{background-color:var(--_selected-pressed-handle-color)}.md3-switch--selected:disabled .md3-switch__handle{background-color:var(--_disabled-selected-handle-color)}.md3-switch__handle::before{background-color:var(--_unselected-handle-color)}.md3-switch--unselected:hover .md3-switch__handle::before{background-color:var(--_unselected-hover-handle-color)}.md3-switch--unselected:focus-visible .md3-switch__handle::before{background-color:var(--_unselected-focus-handle-color)}.md3-switch--unselected:active .md3-switch__handle::before{background-color:var(--_unselected-pressed-handle-color)}.md3-switch--unselected:disabled .md3-switch__handle::before{background-color:var(--_disabled-unselected-handle-color)}.md3-switch__ripple{position:absolute;display:inline-flex;top:50%;left:50%;transform:translate(-50%, -50%);height:var(--_state-layer-size);width:var(--_state-layer-size)}.md3-switch--selected .md3-switch__ripple{--md-ripple-hover-color:var(--_selected-hover-state-layer-color);--md-ripple-focus-color:var(--_selected-focus-state-layer-color);--md-ripple-pressed-color:var(--_selected-pressed-state-layer-color);--md-ripple-hover-opacity:var(--_selected-hover-state-layer-opacity);--md-ripple-focus-opacity:var(--_selected-focus-state-layer-opacity);--md-ripple-pressed-opacity:var(--_selected-pressed-state-layer-opacity)}.md3-switch--unselected .md3-switch__ripple{--md-ripple-hover-color:var(--_unselected-hover-state-layer-color);--md-ripple-focus-color:var(--_unselected-focus-state-layer-color);--md-ripple-pressed-color:var(--_unselected-pressed-state-layer-color);--md-ripple-hover-opacity:var(--_unselected-hover-state-layer-opacity);--md-ripple-focus-opacity:var(--_unselected-focus-state-layer-opacity);--md-ripple-pressed-opacity:var(--_unselected-pressed-state-layer-opacity)}.md3-switch__icons{position:relative;height:100%;width:100%}.md3-switch__icon{position:absolute;inset:0;margin:auto;transition:fill 67ms linear,opacity 33ms linear,transform 167ms cubic-bezier(0.2, 0, 0, 1);opacity:0}.md3-switch:disabled .md3-switch__icon{transition:none}.md3-switch--selected .md3-switch__icon--on,.md3-switch--unselected .md3-switch__icon--off{opacity:1}.md3-switch--unselected .md3-switch__handle:not(.md3-switch__handle--big) .md3-switch__icon--on{transform:rotate(-45deg)}.md3-switch--selected .md3-switch__icon{width:var(--_selected-icon-size);height:var(--_selected-icon-size);fill:var(--_selected-icon-color)}.md3-switch--unselected .md3-switch__icon{width:var(--_unselected-icon-size);height:var(--_unselected-icon-size);fill:var(--_unselected-icon-color)}.md3-switch--selected:disabled .md3-switch__icon{fill:var(--_disabled-selected-icon-color)}.md3-switch--unselected:disabled .md3-switch__icon{fill:var(--_disabled-unselected-icon-color)}/*# sourceMappingURL=switch-styles.css.map */\n`;\n//# sourceMappingURL=switch-styles.css.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdFocusRing } from '../focus/focus-ring.js';\nimport { MdRipple } from '../ripple/ripple.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\n\n\nimport {Switch} from '@material/web/switch/lib/switch.js';\nimport {styles} from '@material/web/switch/lib/switch-styles.css.js';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-switch': MdSwitch;\n  }\n}\n\n/**\n * @summary Switches toggle the state of a single item on or off.\n *\n * @description\n * There's one type of switch in Material. Use this selection control when the\n * user needs to toggle a single item on or off.\n *\n * @final\n * @suppress {visibility}\n */\nexport class MdSwitch extends ScopedElementsMixin(Switch) {\n  static override styles = [styles];\n  static get scopedElements() {\n    return {\n      'md-ripple': MdRipple,\n      'md-focus-ring': MdFocusRing\n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { FilledField } from './lib/filled-field.js';\nimport { styles as filledStyles } from './lib/filled-styles.css.js';\nimport { styles as sharedStyles } from './lib/shared-styles.css.js';\n/**\n * TODO(b/228525797): add docs\n * @final\n * @suppress {visibility}\n */\nlet MdFilledField = class MdFilledField extends FilledField {\n};\nMdFilledField.styles = [sharedStyles, filledStyles];\nMdFilledField = __decorate([\n    customElement('md-filled-field')\n], MdFilledField);\nexport { MdFilledField };\n//# sourceMappingURL=filled-field.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport '../../field/filled-field.js';\nimport { literal } from 'lit/static-html.js';\nimport { TextField } from './text-field.js';\n/**\n * A filled text field component.\n */\nexport class FilledTextField extends TextField {\n    constructor() {\n        super(...arguments);\n        this.fieldTag = literal `md-filled-field`;\n    }\n}\n//# sourceMappingURL=filled-text-field.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdFilledField } from '@material/web/field/filled-field.js';\n\nimport {customElement} from 'lit/decorators.js';\nimport {literal} from 'lit/static-html.js';\n\n// TODO(b/236285090): update with HCM best practices\nimport {styles as filledForcedColorsStyles} from '@material/web/textfield/lib/filled-forced-colors-styles.css.js';\nimport {styles as filledStyles} from '@material/web/textfield/lib/filled-styles.css.js';\nimport {FilledTextField} from '@material/web/textfield/lib/filled-text-field.js';\nimport {styles as sharedStyles} from '@material/web/textfield/lib/shared-styles.css.js';\n\nexport {TextFieldType} from '@material/web/textfield/lib/text-field.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-filled-text-field': MdFilledTextField;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdFilledTextField extends ScopedElementsMixin(FilledTextField) {\n  static override styles =\n      [sharedStyles, filledStyles, filledForcedColorsStyles];\n\n  protected override readonly fieldTag = literal`md-filled-field`;\n\n  static get scopedElements() {\n    return {\n      'md-filled-field': MdFilledField \n    };\n  }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { OutlinedField } from './lib/outlined-field.js';\nimport { styles as outlinedStyles } from './lib/outlined-styles.css.js';\nimport { styles as sharedStyles } from './lib/shared-styles.css.js';\n/**\n * TODO(b/228525797): add docs\n * @final\n * @suppress {visibility}\n */\nlet MdOutlinedField = class MdOutlinedField extends OutlinedField {\n};\nMdOutlinedField.styles = [sharedStyles, outlinedStyles];\nMdOutlinedField = __decorate([\n    customElement('md-outlined-field')\n], MdOutlinedField);\nexport { MdOutlinedField };\n//# sourceMappingURL=outlined-field.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport '../../field/outlined-field.js';\nimport { literal } from 'lit/static-html.js';\nimport { TextField } from './text-field.js';\n/**\n * An outlined text field component\n */\nexport class OutlinedTextField extends TextField {\n    constructor() {\n        super(...arguments);\n        this.fieldTag = literal `md-outlined-field`;\n    }\n}\n//# sourceMappingURL=outlined-text-field.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MdOutlinedField } from '../field/outlined-field.js';\n\nimport {customElement} from 'lit/decorators.js';\nimport {literal} from 'lit/static-html.js';\n\n// TODO(b/236285090): update with HCM best practices\nimport {styles as outlinedForcedColorsStyles} from '@material/web/textfield/lib/outlined-forced-colors-styles.css.js';\nimport {styles as outlinedStyles} from '@material/web/textfield/lib/outlined-styles.css.js';\nimport {OutlinedTextField} from '@material/web/textfield/lib/outlined-text-field.js';\nimport {styles as sharedStyles} from '@material/web/textfield/lib/shared-styles.css.js';\n\nexport {TextFieldType} from '@material/web/textfield/lib/text-field.js';\n\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'md-outlined-text-field': MdOutlinedTextField;\n  }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\nexport class MdOutlinedTextField extends ScopedElementsMixin(OutlinedTextField) {\n  static override styles =\n      [sharedStyles, outlinedStyles, outlinedForcedColorsStyles];\n\n  protected override readonly fieldTag = literal`md-outlined-field`;\n\n  static get scopedElements() {\n    return {\n      'md-outlined-field': MdOutlinedField \n    };\n  }\n}\n","var class2type = {};\nvar hasOwn = class2type.hasOwnProperty;\nvar toString = class2type.toString;\nvar fnToString = hasOwn.toString;\nvar ObjectFunctionString = fnToString.call(Object);\nvar fnIsPlainObject = function (obj) {\n  var proto, Ctor;\n  if (!obj || toString.call(obj) !== \"[object Object]\") {\n    return false;\n  }\n  proto = Object.getPrototypeOf(obj);\n  if (!proto) {\n    return true;\n  }\n  Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n  return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n};\nexport default fnIsPlainObject;\n","import isPlainObject from './isPlainObject.js';\nvar oToken = Object.create(null);\nvar fnMerge = function () {\n    var src, copyIsArray, copy, name, options, clone, target = arguments[2] || {}, i = 3, length = arguments.length, deep = arguments[0] || false, skipToken = arguments[1] ? undefined : oToken;\n    if (typeof target !== 'object' && typeof target !== 'function') {\n        target = {};\n    }\n    for (; i < length; i++) {\n        if ((options = arguments[i]) != null) {\n            for (name in options) {\n                src = target[name];\n                copy = options[name];\n                if (name === '__proto__' || target === copy) {\n                    continue;\n                }\n                if (deep && copy && (isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n                    if (copyIsArray) {\n                        copyIsArray = false;\n                        clone = src && Array.isArray(src) ? src : [];\n                    } else {\n                        clone = src && isPlainObject(src) ? src : {};\n                    }\n                    target[name] = fnMerge(deep, arguments[1], clone, copy);\n                } else if (copy !== skipToken) {\n                    target[name] = copy;\n                }\n            }\n        }\n    }\n    return target;\n};\nexport default fnMerge;","import _merge from './_merge.js';\nvar fnMerge = function () {\n    var args = [\n        true,\n        false\n    ];\n    args.push.apply(args, arguments);\n    return _merge.apply(null, args);\n};\nexport default fnMerge;","class EventProvider {\n\tconstructor() {\n\t\tthis._eventRegistry = {};\n\t}\n\n\tattachEvent(eventName, fnFunction) {\n\t\tconst eventRegistry = this._eventRegistry;\n\t\tlet eventListeners = eventRegistry[eventName];\n\n\t\tif (!Array.isArray(eventListeners)) {\n\t\t\teventRegistry[eventName] = [];\n\t\t\teventListeners = eventRegistry[eventName];\n\t\t}\n\n\t\teventListeners.push({\n\t\t\t\"function\": fnFunction,\n\t\t});\n\t}\n\n\tdetachEvent(eventName, fnFunction) {\n\t\tconst eventRegistry = this._eventRegistry;\n\t\tlet eventListeners = eventRegistry[eventName];\n\n\t\tif (!eventListeners) {\n\t\t\treturn;\n\t\t}\n\n\t\teventListeners = eventListeners.filter(event => {\n\t\t\treturn event[\"function\"] !== fnFunction; // eslint-disable-line\n\t\t});\n\n\t\tif (eventListeners.length === 0) {\n\t\t\tdelete eventRegistry[eventName];\n\t\t}\n\t}\n\n\t/**\n\t * Fires an event and returns the results of all event listeners as an array.\n\t *\n\t * @param eventName the event to fire\n\t * @param data optional data to pass to each event listener\n\t * @returns {Array} an array with the results of all event listeners\n\t */\n\tfireEvent(eventName, data) {\n\t\tconst eventRegistry = this._eventRegistry;\n\t\tconst eventListeners = eventRegistry[eventName];\n\n\t\tif (!eventListeners) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn eventListeners.map(event => {\n\t\t\treturn event[\"function\"].call(this, data); // eslint-disable-line\n\t\t});\n\t}\n\n\t/**\n\t * Fires an event and returns a promise that will resolve once all listeners have resolved.\n\t *\n\t * @param eventName the event to fire\n\t * @param data optional data to pass to each event listener\n\t * @returns {Promise} a promise that will resolve when all listeners have resolved\n\t */\n\tfireEventAsync(eventName, data) {\n\t\treturn Promise.all(this.fireEvent(eventName, data));\n\t}\n\n\tisHandlerAttached(eventName, fnFunction) {\n\t\tconst eventRegistry = this._eventRegistry;\n\t\tconst eventListeners = eventRegistry[eventName];\n\n\t\tif (!eventListeners) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (let i = 0; i < eventListeners.length; i++) {\n\t\t\tconst event = eventListeners[i];\n\t\t\tif (event[\"function\"] === fnFunction) { // eslint-disable-line\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\thasListeners(eventName) {\n\t\treturn !!this._eventRegistry[eventName];\n\t}\n}\n\nexport default EventProvider;\n","const whenDOMReady = () => {\n\treturn new Promise(resolve => {\n\t\tif (document.body) {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tdocument.addEventListener(\"DOMContentLoaded\", () => {\n\t\t\t\tresolve();\n\t\t\t});\n\t\t}\n\t});\n};\n\nexport default whenDOMReady;\n","/**\n * Creates a <style> tag in the <head> tag\n * @param cssText - the CSS\n * @param attributes - optional attributes to add to the tag\n * @returns {HTMLElement}\n */\nconst createStyleInHead = (cssText, attributes = {}) => {\n\tconst style = document.createElement(\"style\");\n\tstyle.type = \"text/css\";\n\n\tObject.entries(attributes).forEach(pair => style.setAttribute(...pair));\n\n\tstyle.textContent = cssText;\n\tdocument.head.appendChild(style);\n\treturn style;\n};\n\nexport default createStyleInHead;\n","const features = new Map();\n\nconst registerFeature = (name, feature) => {\n\tfeatures.set(name, feature);\n};\n\nconst getFeature = name => {\n\treturn features.get(name);\n};\n\nexport { registerFeature, getFeature };\n","/**\n * CSS font face used for the texts provided by SAP.\n */\nimport createStyleInHead from \"./util/createStyleInHead.js\";\nimport { getFeature } from \"./FeaturesRegistry.js\";\n\n/* CDN Locations */\nconst font72RegularWoff = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff?ui5-webcomponents`;\nconst font72RegularWoff2 = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents`;\n\nconst font72RegularFullWoff = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff?ui5-webcomponents`;\nconst font72RegularFullWoff2 = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents`;\n\nconst font72BoldWoff = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff?ui5-webcomponents`;\nconst font72BoldWoff2 = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents`;\n\nconst font72BoldFullWoff = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff?ui5-webcomponents`;\nconst font72BoldFullWoff2 = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents`;\n\nconst fontFaceCSS = `\n\t@font-face {\n\t\tfont-family: \"72\";\n\t\tfont-style: normal;\n\t\tfont-weight: 400;\n\t\tsrc: local(\"72\"),\n\t\t\turl(${font72RegularWoff2}) format(\"woff2\"),\n\t\t\turl(${font72RegularWoff}) format(\"woff\");\n\t}\n\t\n\t@font-face {\n\t\tfont-family: \"72full\";\n\t\tfont-style: normal;\n\t\tfont-weight: 400;\n\t\tsrc: local('72-full'),\n\t\t\turl(${font72RegularFullWoff2}) format(\"woff2\"),\n\t\t\turl(${font72RegularFullWoff}) format(\"woff\");\n\t\t\n\t}\n\t\n\t@font-face {\n\t\tfont-family: \"72\";\n\t\tfont-style: normal;\n\t\tfont-weight: 700;\n\t\tsrc: local('72-Bold'),\n\t\t\turl(${font72BoldWoff2}) format(\"woff2\"),\n\t\t\turl(${font72BoldWoff}) format(\"woff\");\n\t}\n\t\n\t@font-face {\n\t\tfont-family: \"72full\";\n\t\tfont-style: normal;\n\t\tfont-weight: 700;\n\t\tsrc: local('72-Bold-full'),\n\t\t\turl(${font72BoldFullWoff2}) format(\"woff2\"),\n\t\t\turl(${font72BoldFullWoff}) format(\"woff\");\n\t}\n`;\n\n/**\n * Some diacritics are supported by the 72 font:\n *  * Grave\n *  * Acute\n *  * Circumflex\n *  * Tilde\n *\n * However, the following diacritics and the combination of multiple diacritics (including the supported ones) are not supported:\n *  * Breve\n *  * Horn\n *  * Dot below\n *  * Hook above\n *\n *\n * Override for the characters that aren't covered by the '72' font to other system fonts\n *\n * U+0102-0103: A and a with Breve\n * U+01A0-01A1: O and o with Horn\n * U+01AF-01B0: U and u with Horn\n * U+1EA0-1EB7: A and a with diacritics that are not supported by the font and combination of multiple diacritics\n * U+1EB8-1EC7: E and e with diacritics that are not supported by the font and combination of multiple diacritics\n * U+1EC8-1ECB: I and i with diacritics that are not supported by the font and combination of multiple diacritics\n * U+1ECC-1EE3: O and o with diacritics that are not supported by the font and combination of multiple diacritics\n * U+1EE4-1EF1: U and u with diacritics that are not supported by the font and combination of multiple diacritics\n * U+1EF4-1EF7: Y and y with diacritics that are not supported by the font and combination of multiple diacritics\n *\n */\nconst overrideFontFaceCSS = `\n\t@font-face {\n\t\tfont-family: '72override';\n\t\tunicode-range: U+0102-0103, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EB7, U+1EB8-1EC7, U+1EC8-1ECB, U+1ECC-1EE3, U+1EE4-1EF1, U+1EF4-1EF7;\n\t\tsrc: local('Arial'), local('Helvetica'), local('sans-serif');\n\t}\n`;\n\nconst insertFontFace = () => {\n\tconst OpenUI5Support = getFeature(\"OpenUI5Support\");\n\n\t// Only set the main font if there is no OpenUI5 support, or there is, but OpenUI5 is not loaded\n\tif (!OpenUI5Support || !OpenUI5Support.isLoaded()) {\n\t\tinsertMainFontFace();\n\t}\n\n\t// Always set the override font - OpenUI5 in CSS Vars mode does not set it, unlike the main font\n\tinsertOverrideFontFace();\n};\n\nconst insertMainFontFace = () => {\n\tif (!document.querySelector(`head>style[data-ui5-font-face]`)) {\n\t\tcreateStyleInHead(fontFaceCSS, { \"data-ui5-font-face\": \"\" });\n\t}\n};\n\nconst insertOverrideFontFace = () => {\n\tif (!document.querySelector(`head>style[data-ui5-font-face-override]`)) {\n\t\tcreateStyleInHead(overrideFontFaceCSS, { \"data-ui5-font-face-override\": \"\" });\n\t}\n};\n\nexport default insertFontFace;\n","import createStyleInHead from \"./util/createStyleInHead.js\";\n\nconst systemCSSVars = `\n\t:root {\n\t\t--_ui5_content_density:cozy;\n\t}\n\t\n\t[data-ui5-compact-size],\n\t.ui5-content-density-compact,\n\t.sapUiSizeCompact {\n\t\t--_ui5_content_density:compact;\n\t}\n\t\n\t[dir=\"rtl\"] {\n\t\t--_ui5_dir:rtl;\n\t}\n\t\n\t[dir=\"ltr\"] {\n\t\t--_ui5_dir:ltr;\n\t}\n`;\n\nconst insertSystemCSSVars = () => {\n\tif (document.querySelector(`head>style[data-ui5-system-css-vars]`)) {\n\t\treturn;\n\t}\n\n\tcreateStyleInHead(systemCSSVars, { \"data-ui5-system-css-vars\": \"\" });\n};\n\nexport default insertSystemCSSVars;\n","const assetParameters = {\"themes\":{\"default\":\"sap_fiori_3\",\"all\":[\"sap_fiori_3\",\"sap_fiori_3_dark\",\"sap_belize\",\"sap_belize_hcb\",\"sap_belize_hcw\",\"sap_fiori_3_hcb\",\"sap_fiori_3_hcw\"]},\"languages\":{\"default\":\"en\",\"all\":[\"ar\",\"bg\",\"ca\",\"cs\",\"cy\",\"da\",\"de\",\"el\",\"en\",\"en_GB\",\"en_US_sappsd\",\"en_US_saprigi\",\"en_US_saptrc\",\"es\",\"es_MX\",\"et\",\"fi\",\"fr\",\"fr_CA\",\"hi\",\"hr\",\"hu\",\"in\",\"it\",\"iw\",\"ja\",\"kk\",\"ko\",\"lt\",\"lv\",\"ms\",\"nl\",\"no\",\"pl\",\"pt_PT\",\"pt\",\"ro\",\"ru\",\"sh\",\"sk\",\"sl\",\"sv\",\"th\",\"tr\",\"uk\",\"vi\",\"zh_CN\",\"zh_TW\"]},\"locales\":{\"default\":\"en\",\"all\":[\"ar\",\"ar_EG\",\"ar_SA\",\"bg\",\"ca\",\"cs\",\"da\",\"de\",\"de_AT\",\"de_CH\",\"el\",\"el_CY\",\"en\",\"en_AU\",\"en_GB\",\"en_HK\",\"en_IE\",\"en_IN\",\"en_NZ\",\"en_PG\",\"en_SG\",\"en_ZA\",\"es\",\"es_AR\",\"es_BO\",\"es_CL\",\"es_CO\",\"es_MX\",\"es_PE\",\"es_UY\",\"es_VE\",\"et\",\"fa\",\"fi\",\"fr\",\"fr_BE\",\"fr_CA\",\"fr_CH\",\"fr_LU\",\"he\",\"hi\",\"hr\",\"hu\",\"id\",\"it\",\"it_CH\",\"ja\",\"kk\",\"ko\",\"lt\",\"lv\",\"ms\",\"nb\",\"nl\",\"nl_BE\",\"pl\",\"pt\",\"pt_PT\",\"ro\",\"ru\",\"ru_UA\",\"sk\",\"sl\",\"sr\",\"sv\",\"th\",\"tr\",\"uk\",\"vi\",\"zh_CN\",\"zh_HK\",\"zh_SG\",\"zh_TW\"]}};\n\nconst DEFAULT_THEME = assetParameters.themes.default;\nconst DEFAULT_LANGUAGE = assetParameters.languages.default;\nconst DEFAULT_LOCALE = assetParameters.locales.default;\nconst SUPPORTED_LOCALES = assetParameters.locales.all;\n\nexport {\n\tDEFAULT_THEME,\n\tDEFAULT_LANGUAGE,\n\tDEFAULT_LOCALE,\n\tSUPPORTED_LOCALES,\n};","import merge from \"./thirdparty/merge.js\";\nimport { getFeature } from \"./FeaturesRegistry.js\";\nimport { DEFAULT_THEME } from \"./generated/AssetParameters.js\";\n\nlet initialized = false;\n\nlet initialConfig = {\n\tanimationMode: \"full\",\n\ttheme: DEFAULT_THEME,\n\trtl: null,\n\tlanguage: null,\n\tcalendarType: null,\n\tnoConflict: false, // no URL\n\tformatSettings: {},\n\tfetchDefaultLanguage: false,\n\tassetsPath: \"\",\n};\n\n/* General settings */\nconst getAnimationMode = () => {\n\tinitConfiguration();\n\treturn initialConfig.animationMode;\n};\n\nconst getTheme = () => {\n\tinitConfiguration();\n\treturn initialConfig.theme;\n};\n\nconst getRTL = () => {\n\tinitConfiguration();\n\treturn initialConfig.rtl;\n};\n\nconst getLanguage = () => {\n\tinitConfiguration();\n\treturn initialConfig.language;\n};\n\n/**\n * Returns if the default language, that is inlined at build time,\n * should be fetched over the network instead.\n * @returns {Boolean}\n */\nconst getFetchDefaultLanguage = () => {\n\tinitConfiguration();\n\treturn initialConfig.fetchDefaultLanguage;\n};\n\nconst getNoConflict = () => {\n\tinitConfiguration();\n\treturn initialConfig.noConflict;\n};\n\nconst getCalendarType = () => {\n\tinitConfiguration();\n\treturn initialConfig.calendarType;\n};\n\nconst getFormatSettings = () => {\n\tinitConfiguration();\n\treturn initialConfig.formatSettings;\n};\n\nconst getAssetsPath = () => {\n\tinitConfiguration();\n\treturn initialConfig.assetsPath;\n};\n\nconst booleanMapping = new Map();\nbooleanMapping.set(\"true\", true);\nbooleanMapping.set(\"false\", false);\n\nconst parseConfigurationScript = () => {\n\tconst configScript = document.querySelector(\"[data-ui5-config]\") || document.querySelector(\"[data-id='sap-ui-config']\"); // for backward compatibility\n\n\tlet configJSON;\n\n\tif (configScript) {\n\t\ttry {\n\t\t\tconfigJSON = JSON.parse(configScript.innerHTML);\n\t\t} catch (err) {\n\t\t\tconsole.warn(\"Incorrect data-sap-ui-config format. Please use JSON\"); /* eslint-disable-line */\n\t\t}\n\n\t\tif (configJSON) {\n\t\t\tinitialConfig = merge(initialConfig, configJSON);\n\t\t}\n\t}\n};\n\nconst parseURLParameters = () => {\n\tconst params = new URLSearchParams(window.location.search);\n\n\t// Process \"sap-*\" params first\n\tparams.forEach((value, key) => {\n\t\tconst parts = key.split(\"sap-\").length;\n\t\tif (parts === 0 || parts === key.split(\"sap-ui-\").length) {\n\t\t\treturn;\n\t\t}\n\n\t\tapplyURLParam(key, value, \"sap\");\n\t});\n\n\t// Process \"sap-ui-*\" params\n\tparams.forEach((value, key) => {\n\t\tif (!key.startsWith(\"sap-ui\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tapplyURLParam(key, value, \"sap-ui\");\n\t});\n};\n\nconst applyURLParam = (key, value, paramType) => {\n\tconst lowerCaseValue = value.toLowerCase();\n\tconst param = key.split(`${paramType}-`)[1];\n\n\tif (booleanMapping.has(value)) {\n\t\tvalue = booleanMapping.get(lowerCaseValue);\n\t}\n\tinitialConfig[param] = value;\n};\n\nconst applyOpenUI5Configuration = () => {\n\tconst OpenUI5Support = getFeature(\"OpenUI5Support\");\n\tif (!OpenUI5Support || !OpenUI5Support.isLoaded()) {\n\t\treturn;\n\t}\n\n\tconst OpenUI5Config = OpenUI5Support.getConfigurationSettingsObject();\n\tinitialConfig = merge(initialConfig, OpenUI5Config);\n};\n\nconst initConfiguration = () => {\n\tif (initialized) {\n\t\treturn;\n\t}\n\n\t// 1. Lowest priority - configuration script\n\tparseConfigurationScript();\n\n\t// 2. URL parameters overwrite configuration script parameters\n\tparseURLParameters();\n\n\t// 3. If OpenUI5 is detected, it has the highest priority\n\tapplyOpenUI5Configuration();\n\n\tinitialized = true;\n};\n\nexport {\n\tgetAnimationMode,\n\tgetTheme,\n\tgetRTL,\n\tgetLanguage,\n\tgetFetchDefaultLanguage,\n\tgetNoConflict,\n\tgetCalendarType,\n\tgetFormatSettings,\n\tgetAssetsPath,\n};\n","import { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\n\nconst themeStyles = new Map();\nconst loaders = new Map();\nconst registeredPackages = new Set();\nconst registeredThemes = new Set();\n\n/**\n * Used to provide CSS Vars for a specific theme for a specific package.\n * The CSS Vars can be passed directly as a string (containing them), as an object with a \"_\" property(containing them in the \"_\" property), or as a URL.\n * This URL must point to a JSON file, containing a \"_\" property.\n *\n * Example usage:\n *  1) Pass the CSS Vars as a string directly.\n *  registerThemeProperties(\"my-package\", \"my_theme\", \":root{--var1: red;}\");\n *\n * @public\n * @param packageName - the NPM package for which CSS Vars are registered\n * @param themeName - the theme which the CSS Vars implement\n * @param style - the style content directly\n * @deprecated\n */\nconst registerThemeProperties = (_packageName, _themeName, _style) => {\n\tthrow new Error(\"`registerThemeProperties` has been depracated. Use `registerThemePropertiesLoader` instead.\");\n};\n\nconst registerThemePropertiesLoader = (packageName, themeName, loader) => {\n\tloaders.set(`${packageName}/${themeName}`, loader);\n\tregisteredPackages.add(packageName);\n\tregisteredThemes.add(themeName);\n};\n\nconst getThemeProperties = async (packageName, themeName) => {\n\tconst style = themeStyles.get(`${packageName}_${themeName}`);\n\tif (style !== undefined) { // it's valid for style to be an empty string\n\t\treturn style;\n\t}\n\n\tif (!registeredThemes.has(themeName)) {\n\t\tconst regThemesStr = [...registeredThemes.values()].join(\", \");\n\t\tconsole.warn(`You have requested a non-registered theme - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */\n\t\treturn themeStyles.get(`${packageName}_${DEFAULT_THEME}`);\n\t}\n\n\tconst loader = loaders.get(`${packageName}/${themeName}`);\n\tif (!loader) {\n\t\t// no themes for package\n\t\tconsole.error(`Theme [${themeName}] not registered for package [${packageName}]`); /* eslint-disable-line */\n\t\treturn;\n\t}\n\tlet data;\n\ttry {\n\t\tdata = await loader(themeName);\n\t} catch (e) {\n\t\tconsole.error(packageName, e.message); /* eslint-disable-line */\n\t\treturn;\n\t}\n\tconst themeProps = data._ || data;\n\n\tthemeStyles.set(`${packageName}_${themeName}`, themeProps);\n\treturn themeProps;\n};\n\nconst getRegisteredPackages = () => {\n\treturn registeredPackages;\n};\n\nconst isThemeRegistered = theme => {\n\treturn registeredThemes.has(theme);\n};\n\nexport {\n\tregisterThemePropertiesLoader,\n\tregisterThemeProperties,\n\tgetThemeProperties,\n\tgetRegisteredPackages,\n\tisThemeRegistered,\n};\n","import createStyleInHead from \"../util/createStyleInHead.js\";\n\n/**\n * Creates/updates a style element holding all CSS Custom Properties\n * @param cssText\n * @param packageName\n */\nconst createThemePropertiesStyleTag = (cssText, packageName) => {\n\tconst styleElement = document.head.querySelector(`style[data-ui5-theme-properties=\"${packageName}\"]`);\n\tif (styleElement) {\n\t\tstyleElement.textContent = cssText || \"\";\t// in case of undefined\n\t} else {\n\t\tconst attributes = {\n\t\t\t\"data-ui5-theme-properties\": packageName,\n\t\t};\n\t\tcreateStyleInHead(cssText, attributes);\n\t}\n};\n\nexport default createThemePropertiesStyleTag;\n","const getThemeMetadata = () => {\n\t// Check if the class was already applied, most commonly to the link/style tag with the CSS Variables\n\tlet el = document.querySelector(\".sapThemeMetaData-Base-baseLib\");\n\tif (el) {\n\t\treturn getComputedStyle(el).backgroundImage;\n\t}\n\n\tel = document.createElement(\"span\");\n\tel.style.display = \"none\";\n\tel.classList.add(\"sapThemeMetaData-Base-baseLib\");\n\tdocument.body.appendChild(el);\n\tconst metadata = getComputedStyle(el).backgroundImage;\n\tdocument.body.removeChild(el);\n\n\treturn metadata;\n};\n\nconst parseThemeMetadata = metadataString => {\n\tconst params = /\\([\"']?data:text\\/plain;utf-8,(.*?)['\"]?\\)$/i.exec(metadataString);\n\tif (params && params.length >= 2) {\n\t\tlet paramsString = params[1];\n\t\tparamsString = paramsString.replace(/\\\\\"/g, `\"`);\n\t\tif (paramsString.charAt(0) !== \"{\" && paramsString.charAt(paramsString.length - 1) !== \"}\") {\n\t\t\ttry {\n\t\t\t\tparamsString = decodeURIComponent(paramsString);\n\t\t\t} catch (ex) {\n\t\t\t\tconsole.warn(\"Malformed theme metadata string, unable to decodeURIComponent\"); // eslint-disable-line\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\treturn JSON.parse(paramsString);\n\t\t} catch (ex) {\n\t\t\tconsole.warn(\"Malformed theme metadata string, unable to parse JSON\"); // eslint-disable-line\n\t\t}\n\t}\n};\n\nconst processThemeMetadata = metadata => {\n\tlet themeName;\n\tlet baseThemeName;\n\n\ttry {\n\t\tthemeName = metadata.Path.match(/\\.([^.]+)\\.css_variables$/)[1];\n\t\tbaseThemeName = metadata.Extends[0];\n\t} catch (ex) {\n\t\tconsole.warn(\"Malformed theme metadata Object\", metadata); // eslint-disable-line\n\t\treturn;\n\t}\n\n\treturn {\n\t\tthemeName,\n\t\tbaseThemeName,\n\t};\n};\n\nconst getThemeDesignerTheme = () => {\n\tconst metadataString = getThemeMetadata();\n\tif (!metadataString || metadataString === \"none\") {\n\t\treturn;\n\t}\n\n\tconst metadata = parseThemeMetadata(metadataString);\n\treturn processThemeMetadata(metadata);\n};\n\nexport default getThemeDesignerTheme;\n","import EventProvider from \"../EventProvider.js\";\n\nconst eventProvider = new EventProvider();\nconst THEME_LOADED = \"themeLoaded\";\n\nconst attachThemeLoaded = listener => {\n\teventProvider.attachEvent(THEME_LOADED, listener);\n};\n\nconst detachThemeLoaded = listener => {\n\teventProvider.detachEvent(THEME_LOADED, listener);\n};\n\nconst fireThemeLoaded = theme => {\n\treturn eventProvider.fireEvent(THEME_LOADED, theme);\n};\n\nexport {\n\tattachThemeLoaded,\n\tdetachThemeLoaded,\n\tfireThemeLoaded,\n};\n","import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from \"../asset-registries/Themes.js\";\nimport createThemePropertiesStyleTag from \"./createThemePropertiesStyleTag.js\";\nimport getThemeDesignerTheme from \"./getThemeDesignerTheme.js\";\nimport { fireThemeLoaded } from \"./ThemeLoaded.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\n\nconst BASE_THEME_PACKAGE = \"@ui5/webcomponents-theme-base\";\n\nconst isThemeBaseRegistered = () => {\n\tconst registeredPackages = getRegisteredPackages();\n\treturn registeredPackages.has(BASE_THEME_PACKAGE);\n};\n\nconst loadThemeBase = async theme => {\n\tif (!isThemeBaseRegistered()) {\n\t\treturn;\n\t}\n\n\tconst cssText = await getThemeProperties(BASE_THEME_PACKAGE, theme);\n\tcreateThemePropertiesStyleTag(cssText, BASE_THEME_PACKAGE);\n};\n\nconst deleteThemeBase = () => {\n\tconst styleElement = document.head.querySelector(`style[data-ui5-theme-properties=\"${BASE_THEME_PACKAGE}\"]`);\n\tif (styleElement) {\n\t\tstyleElement.parentElement.removeChild(styleElement);\n\t}\n};\n\nconst loadComponentPackages = async theme => {\n\tconst registeredPackages = getRegisteredPackages();\n\tregisteredPackages.forEach(async packageName => {\n\t\tif (packageName === BASE_THEME_PACKAGE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cssText = await getThemeProperties(packageName, theme);\n\t\tcreateThemePropertiesStyleTag(cssText, packageName);\n\t});\n};\n\nconst detectExternalTheme = () => {\n\t// If theme designer theme is detected, use this\n\tconst extTheme = getThemeDesignerTheme();\n\tif (extTheme) {\n\t\treturn extTheme;\n\t}\n\n\t// If OpenUI5Support is enabled, try to find out if it loaded variables\n\tconst OpenUI5Support = getFeature(\"OpenUI5Support\");\n\tif (OpenUI5Support) {\n\t\tconst varsLoaded = OpenUI5Support.cssVariablesLoaded();\n\t\tif (varsLoaded) {\n\t\t\treturn {\n\t\t\t\tthemeName: OpenUI5Support.getConfigurationSettingsObject().theme, // just themeName, baseThemeName is only relevant for custom themes\n\t\t\t};\n\t\t}\n\t}\n};\n\nconst applyTheme = async theme => {\n\tconst extTheme = detectExternalTheme();\n\n\t// Only load theme_base properties if there is no externally loaded theme, or there is, but it is not being loaded\n\tif (!extTheme || theme !== extTheme.themeName) {\n\t\tawait loadThemeBase(theme);\n\t} else {\n\t\tdeleteThemeBase();\n\t}\n\n\t// Always load component packages properties. For non-registered themes, try with the base theme, if any\n\tconst packagesTheme = isThemeRegistered(theme) ? theme : extTheme && extTheme.baseThemeName;\n\tawait loadComponentPackages(packagesTheme);\n\n\tfireThemeLoaded(theme);\n};\n\nexport default applyTheme;\n","import { getTheme as getConfiguredTheme } from \"../InitialConfiguration.js\";\nimport applyTheme from \"../theming/applyTheme.js\";\n\nlet theme;\n\nconst getTheme = () => {\n\tif (theme === undefined) {\n\t\ttheme = getConfiguredTheme();\n\t}\n\n\treturn theme;\n};\n\nconst setTheme = async newTheme => {\n\tif (theme === newTheme) {\n\t\treturn;\n\t}\n\n\ttheme = newTheme;\n\n\t// Update CSS Custom Properties\n\tawait applyTheme(theme);\n};\n\nexport {\n\tgetTheme,\n\tsetTheme,\n};\n","import EventProvider from \"./EventProvider.js\";\nimport whenDOMReady from \"./util/whenDOMReady.js\";\nimport insertFontFace from \"./FontFace.js\";\nimport insertSystemCSSVars from \"./SystemCSSVars.js\";\nimport { getTheme } from \"./config/Theme.js\";\nimport applyTheme from \"./theming/applyTheme.js\";\nimport { getFeature } from \"./FeaturesRegistry.js\";\n\nlet booted = false;\nconst eventProvider = new EventProvider();\n\n/**\n * Attach a callback that will be executed on boot\n * @public\n * @param listener\n */\nconst attachBoot = listener => {\n\teventProvider.attachEvent(\"boot\", listener);\n};\n\nconst boot = async () => {\n\tif (booted) {\n\t\treturn;\n\t}\n\n\tconst OpenUI5Support = getFeature(\"OpenUI5Support\");\n\tif (OpenUI5Support) {\n\t\tawait OpenUI5Support.init();\n\t}\n\n\tawait whenDOMReady();\n\tawait applyTheme(getTheme());\n\tOpenUI5Support && OpenUI5Support.attachListeners();\n\tinsertFontFace();\n\tinsertSystemCSSVars();\n\tawait eventProvider.fireEventAsync(\"boot\");\n\tbooted = true;\n};\n\nexport {\n\tboot,\n\tattachBoot,\n};\n","/**\n * Base class for all data types.\n *\n * @class\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.base.types.DataType\n * @public\n */\nclass DataType {\n\tstatic isValid(value) {\n\t}\n\n\tstatic generateTypeAccessors(types) {\n\t\tObject.keys(types).forEach(type => {\n\t\t\tObject.defineProperty(this, type, {\n\t\t\t\tget() {\n\t\t\t\t\treturn types[type];\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport default DataType;\n","const isDescendantOf = (klass, baseKlass, inclusive = false) => {\n\tif (typeof klass !== \"function\" || typeof baseKlass !== \"function\") {\n\t\treturn false;\n\t}\n\tif (inclusive && klass === baseKlass) {\n\t\treturn true;\n\t}\n\tlet parent = klass;\n\tdo {\n\t\tparent = Object.getPrototypeOf(parent);\n\t} while (parent !== null && parent !== baseKlass);\n\treturn parent === baseKlass;\n};\n\nexport default isDescendantOf;\n","const kebabToCamelMap = new Map();\nconst camelToKebabMap = new Map();\n\nconst kebabToCamelCase = string => {\n\tif (!kebabToCamelMap.has(string)) {\n\t\tconst result = toCamelCase(string.split(\"-\"));\n\t\tkebabToCamelMap.set(string, result);\n\t}\n\treturn kebabToCamelMap.get(string);\n};\n\nconst camelToKebabCase = string => {\n\tif (!camelToKebabMap.has(string)) {\n\t\tconst result = string.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\t\tcamelToKebabMap.set(string, result);\n\t}\n\treturn camelToKebabMap.get(string);\n};\n\nconst toCamelCase = parts => {\n\treturn parts.map((string, index) => {\n\t\treturn index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n\t}).join(\"\");\n};\n\nexport { kebabToCamelCase, camelToKebabCase };\n","/**\n * Determines the slot to which a node should be assigned\n * @param node Text node or HTML element\n * @returns {string}\n */\nconst getSlotName = node => {\n\t// Text nodes can only go to the default slot\n\tif (!(node instanceof HTMLElement)) {\n\t\treturn \"default\";\n\t}\n\n\t// Discover the slot based on the real slot name (f.e. footer => footer, or content-32 => content)\n\tconst slot = node.getAttribute(\"slot\");\n\tif (slot) {\n\t\tconst match = slot.match(/^(.+?)-\\d+$/);\n\t\treturn match ? match[1] : slot;\n\t}\n\n\t// Use default slot as a fallback\n\treturn \"default\";\n};\n\nconst isSlot = el => el && el instanceof HTMLElement && el.localName === \"slot\";\n\nconst getSlottedElements = el => {\n\tif (isSlot(el)) {\n\t\treturn el.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);\n\t}\n\n\treturn [el];\n};\n\nconst getSlottedElementsList = elList => {\n\tconst reducer = (acc, curr) => acc.concat(getSlottedElements(curr));\n\treturn elList.reduce(reducer, []);\n};\n\nexport {\n\tgetSlotName,\n\tisSlot,\n\tgetSlottedElements,\n\tgetSlottedElementsList,\n};\n","let suf;\nlet rulesObj = {\n\tinclude: [/^ui5-/],\n\texclude: [],\n};\nconst tagsCache = new Map(); // true/false means the tag should/should not be cached, undefined means not known yet.\n\n/**\n * Sets the suffix to be used for custom elements scoping, f.e. pass \"demo\" to get tags such as \"ui5-button-demo\".\n * Note: by default all tags starting with \"ui5-\" will be scoped, unless you change this by calling \"setCustomElementsScopingRules\"\n *\n * @public\n * @param suffix The scoping suffix\n */\nconst setCustomElementsScopingSuffix = suffix => {\n\tif (!suffix.match(/^[a-zA-Z0-9_-]+$/)) {\n\t\tthrow new Error(\"Only alphanumeric characters and dashes allowed for the scoping suffix\");\n\t}\n\n\tsuf = suffix;\n};\n\n/**\n * Returns the currently set scoping suffix, or undefined if not set.\n *\n * @public\n * @returns {String|undefined}\n */\nconst getCustomElementsScopingSuffix = () => {\n\treturn suf;\n};\n\n/**\n * Sets the rules, governing which custom element tags to scope and which not, f.e.\n * setCustomElementsScopingRules({include: [/^ui5-/]}, exclude: [/^ui5-mylib-/, /^ui5-carousel$/]);\n * will scope all elements starting with \"ui5-\" but not the ones starting with \"ui5-mylib-\" and not \"ui5-carousel\".\n *\n * @public\n * @param rules Object with \"include\" and \"exclude\" properties, both arrays of regular expressions. Note that \"include\"\n * rules are applied first and \"exclude\" rules second.\n */\nconst setCustomElementsScopingRules = rules => {\n\tif (!rules || !rules.include) {\n\t\tthrow new Error(`\"rules\" must be an object with at least an \"include\" property`);\n\t}\n\n\tif (!Array.isArray(rules.include) || rules.include.some(rule => !(rule instanceof RegExp))) {\n\t\tthrow new Error(`\"rules.include\" must be an array of regular expressions`);\n\t}\n\n\tif (rules.exclude && (!Array.isArray(rules.exclude) || rules.exclude.some(rule => !(rule instanceof RegExp)))) {\n\t\tthrow new Error(`\"rules.exclude\" must be an array of regular expressions`);\n\t}\n\n\trules.exclude = rules.exclude || [];\n\trulesObj = rules;\n\ttagsCache.clear(); // reset the cache upon setting new rules\n};\n\n/**\n * Returns the rules, governing which custom element tags to scope and which not. By default, all elements\n * starting with \"ui5-\" are scoped. The default rules are: {include: [/^ui5-/]}.\n *\n * @public\n * @returns {Object}\n */\nconst getCustomElementsScopingRules = () => {\n\treturn rulesObj;\n};\n\n/**\n * Determines whether custom elements with the given tag should be scoped or not.\n * The tag is first matched against the \"include\" rules and then against the \"exclude\" rules and the\n * result is cached until new rules are set.\n *\n * @public\n * @param tag\n */\nconst shouldScopeCustomElement = tag => {\n\tif (!tagsCache.has(tag)) {\n\t\tconst result = rulesObj.include.some(rule => tag.match(rule)) && !rulesObj.exclude.some(rule => tag.match(rule));\n\t\ttagsCache.set(tag, result);\n\t}\n\n\treturn tagsCache.get(tag);\n};\n\n/**\n * Returns the currently set scoping suffix, if any and if the tag should be scoped, or undefined otherwise.\n *\n * @public\n * @param tag\n * @returns {String}\n */\nconst getEffectiveScopingSuffixForTag = tag => {\n\tif (shouldScopeCustomElement(tag)) {\n\t\treturn getCustomElementsScopingSuffix();\n\t}\n};\n\nexport {\n\tsetCustomElementsScopingSuffix,\n\tgetCustomElementsScopingSuffix,\n\tsetCustomElementsScopingRules,\n\tgetCustomElementsScopingRules,\n\tshouldScopeCustomElement,\n\tgetEffectiveScopingSuffixForTag,\n};\n","import DataType from \"./types/DataType.js\";\nimport isDescendantOf from \"./util/isDescendantOf.js\";\nimport { camelToKebabCase } from \"./util/StringHelper.js\";\nimport { getSlottedElements } from \"./util/SlotsHelper.js\";\nimport { getEffectiveScopingSuffixForTag } from \"./CustomElementsScope.js\";\n\n/**\n *\n * @class\n * @public\n */\nclass UI5ElementMetadata {\n\tconstructor(metadata) {\n\t\tthis.metadata = metadata;\n\t}\n\n\tgetInitialState() {\n\t\tif (Object.prototype.hasOwnProperty.call(this, \"_initialState\")) {\n\t\t\treturn this._initialState;\n\t\t}\n\n\t\tconst initialState = {};\n\t\tconst slotsAreManaged = this.slotsAreManaged();\n\n\t\t// Initialize properties\n\t\tconst props = this.getProperties();\n\t\tfor (const propName in props) { // eslint-disable-line\n\t\t\tconst propType = props[propName].type;\n\t\t\tconst propDefaultValue = props[propName].defaultValue;\n\n\t\t\tif (propType === Boolean) {\n\t\t\t\tinitialState[propName] = false;\n\n\t\t\t\tif (propDefaultValue !== undefined) {\n\t\t\t\t\tconsole.warn(\"The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default\"); // eslint-disable-line\n\t\t\t\t}\n\t\t\t} else if (props[propName].multiple) {\n\t\t\t\tinitialState[propName] = [];\n\t\t\t} else if (propType === Object) {\n\t\t\t\tinitialState[propName] = \"defaultValue\" in props[propName] ? props[propName].defaultValue : {};\n\t\t\t} else if (propType === String) {\n\t\t\t\tinitialState[propName] = \"defaultValue\" in props[propName] ? props[propName].defaultValue : \"\";\n\t\t\t} else {\n\t\t\t\tinitialState[propName] = propDefaultValue;\n\t\t\t}\n\t\t}\n\n\t\t// Initialize slots\n\t\tif (slotsAreManaged) {\n\t\t\tconst slots = this.getSlots();\n\t\t\tfor (const [slotName, slotData] of Object.entries(slots)) { // eslint-disable-line\n\t\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\t\tinitialState[propertyName] = [];\n\t\t\t}\n\t\t}\n\n\t\tthis._initialState = initialState;\n\t\treturn initialState;\n\t}\n\n\t/**\n\t * Only intended for use by UI5Element.js\n\t * @protected\n\t */\n\tstatic validatePropertyValue(value, propData) {\n\t\tconst isMultiple = propData.multiple;\n\t\tif (isMultiple) {\n\t\t\treturn value.map(propValue => validateSingleProperty(propValue, propData));\n\t\t}\n\t\treturn validateSingleProperty(value, propData);\n\t}\n\n\t/**\n\t * Only intended for use by UI5Element.js\n\t * @protected\n\t */\n\tstatic validateSlotValue(value, slotData) {\n\t\treturn validateSingleSlot(value, slotData);\n\t}\n\n\t/**\n\t * Returns the tag of the UI5 Element without the scope\n\t * @public\n\t */\n\tgetPureTag() {\n\t\treturn this.metadata.tag;\n\t}\n\n\t/**\n\t * Returns the tag of the UI5 Element\n\t * @public\n\t */\n\tgetTag() {\n\t\tconst pureTag = this.metadata.tag;\n\t\tconst suffix = getEffectiveScopingSuffixForTag(pureTag);\n\t\tif (!suffix) {\n\t\t\treturn pureTag;\n\t\t}\n\n\t\treturn `${pureTag}-${suffix}`;\n\t}\n\n\t/**\n\t * Used to get the tag we need to register for backwards compatibility\n\t * @public\n\t */\n\tgetAltTag() {\n\t\tconst pureAltTag = this.metadata.altTag;\n\t\tif (!pureAltTag) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst suffix = getEffectiveScopingSuffixForTag(pureAltTag);\n\t\tif (!suffix) {\n\t\t\treturn pureAltTag;\n\t\t}\n\n\t\treturn `${pureAltTag}-${suffix}`;\n\t}\n\n\t/**\n\t * Determines whether a property should have an attribute counterpart\n\t * @public\n\t * @param propName\n\t * @returns {boolean}\n\t */\n\thasAttribute(propName) {\n\t\tconst propData = this.getProperties()[propName];\n\t\treturn propData.type !== Object && !propData.noAttribute;\n\t}\n\n\t/**\n\t * Returns an array with the properties of the UI5 Element (in camelCase)\n\t * @public\n\t * @returns {string[]}\n\t */\n\tgetPropertiesList() {\n\t\treturn Object.keys(this.getProperties());\n\t}\n\n\t/**\n\t * Returns an array with the attributes of the UI5 Element (in kebab-case)\n\t * @public\n\t * @returns {string[]}\n\t */\n\tgetAttributesList() {\n\t\treturn this.getPropertiesList().filter(this.hasAttribute, this).map(camelToKebabCase);\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of slots and their metadata definitions\n\t * @public\n\t */\n\tgetSlots() {\n\t\treturn this.metadata.slots || {};\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has a default slot of type Node, therefore can slot text\n\t * @returns {boolean}\n\t */\n\tcanSlotText() {\n\t\tconst defaultSlot = this.getSlots().default;\n\t\treturn defaultSlot && defaultSlot.type === Node;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element supports any slots\n\t * @public\n\t */\n\thasSlots() {\n\t\treturn !!Object.entries(this.getSlots()).length;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element supports any slots with \"individualSlots: true\"\n\t * @public\n\t */\n\thasIndividualSlots() {\n\t\treturn this.slotsAreManaged() && Object.entries(this.getSlots()).some(([_slotName, slotData]) => slotData.individualSlots);\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element needs to invalidate if children are added/removed/changed\n\t * @public\n\t */\n\tslotsAreManaged() {\n\t\treturn !!this.metadata.managedSlots;\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of properties and their metadata definitions\n\t * @public\n\t */\n\tgetProperties() {\n\t\treturn this.metadata.properties || {};\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of events and their metadata definitions\n\t * @public\n\t */\n\tgetEvents() {\n\t\treturn this.metadata.events || {};\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has any translatable texts (needs to be invalidated upon language change)\n\t * @returns {boolean}\n\t */\n\tisLanguageAware() {\n\t\treturn !!this.metadata.languageAware;\n\t}\n\n\t/**\n\t * Matches a changed entity (property/slot) with the given name against the \"invalidateOnChildChange\" configuration\n\t * and determines whether this should cause and invalidation\n\t *\n\t * @param slotName the name of the slot in which a child was changed\n\t * @param type the type of change in the child: \"property\" or \"slot\"\n\t * @param name the name of the property/slot that changed\n\t * @returns {boolean}\n\t */\n\tshouldInvalidateOnChildChange(slotName, type, name) {\n\t\tconst config = this.getSlots()[slotName].invalidateOnChildChange;\n\n\t\t// invalidateOnChildChange was not set in the slot metadata - by default child changes do not affect the component\n\t\tif (config === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// The simple format was used: invalidateOnChildChange: true/false;\n\t\tif (typeof config === \"boolean\") {\n\t\t\treturn config;\n\t\t}\n\n\t\t// The complex format was used: invalidateOnChildChange: { properties, slots }\n\t\tif (typeof config === \"object\") {\n\t\t\t// A property was changed\n\t\t\tif (type === \"property\") {\n\t\t\t\t// The config object does not have a properties field\n\t\t\t\tif (config.properties === undefined) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the short format: properties: true/false\n\t\t\t\tif (typeof config.properties === \"boolean\") {\n\t\t\t\t\treturn config.properties;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the complex format: properties: [...]\n\t\t\t\tif (Array.isArray(config.properties)) {\n\t\t\t\t\treturn config.properties.includes(name);\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(\"Wrong format for invalidateOnChildChange.properties: boolean or array is expected\");\n\t\t\t}\n\n\t\t\t// A slot was changed\n\t\t\tif (type === \"slot\") {\n\t\t\t\t// The config object does not have a slots field\n\t\t\t\tif (config.slots === undefined) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the short format: slots: true/false\n\t\t\t\tif (typeof config.slots === \"boolean\") {\n\t\t\t\t\treturn config.slots;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the complex format: slots: [...]\n\t\t\t\tif (Array.isArray(config.slots)) {\n\t\t\t\t\treturn config.slots.includes(name);\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(\"Wrong format for invalidateOnChildChange.slots: boolean or array is expected\");\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(\"Wrong format for invalidateOnChildChange: boolean or object is expected\");\n\t}\n}\n\nconst validateSingleProperty = (value, propData) => {\n\tconst propertyType = propData.type;\n\n\tif (propertyType === Boolean) {\n\t\treturn typeof value === \"boolean\" ? value : false;\n\t}\n\tif (propertyType === String) {\n\t\treturn (typeof value === \"string\" || typeof value === \"undefined\" || value === null) ? value : value.toString();\n\t}\n\tif (propertyType === Object) {\n\t\treturn typeof value === \"object\" ? value : propData.defaultValue;\n\t}\n\tif (isDescendantOf(propertyType, DataType)) {\n\t\treturn propertyType.isValid(value) ? value : propData.defaultValue;\n\t}\n};\n\nconst validateSingleSlot = (value, slotData) => {\n\tvalue && getSlottedElements(value).forEach(el => {\n\t\tif (!(el instanceof slotData.type)) {\n\t\t\tthrow new Error(`${el} is not of type ${slotData.type}`);\n\t\t}\n\t});\n\n\treturn value;\n};\n\nexport default UI5ElementMetadata;\n","const getSingletonElementInstance = (tag, parentElement = document.body) => {\n\tlet el = document.querySelector(tag);\n\n\tif (el) {\n\t\treturn el;\n\t}\n\n\tel = document.createElement(tag);\n\n\treturn parentElement.insertBefore(el, parentElement.firstChild);\n};\n\nexport default getSingletonElementInstance;\n","if (!customElements.get(\"ui5-static-area\")) {\n\tcustomElements.define(\"ui5-static-area\", class extends HTMLElement {});\n}\n","import { getCustomElementsScopingSuffix, shouldScopeCustomElement } from \"../CustomElementsScope.js\";\n\n/**\n * Runs a component's template with the component's current state, while also scoping HTML\n *\n * @param template - the template to execute\n * @param component - the component\n * @public\n * @returns {*}\n */\nconst executeTemplate = (template, component) => {\n\tconst tagsToScope = component.constructor.getUniqueDependencies().map(dep => dep.getMetadata().getPureTag()).filter(shouldScopeCustomElement);\n\tconst scope = getCustomElementsScopingSuffix();\n\treturn template(component, tagsToScope, scope);\n};\n\nexport default executeTemplate;\n","const MAX_PROCESS_COUNT = 10;\n\nclass RenderQueue {\n\tconstructor() {\n\t\tthis.list = []; // Used to store the web components in order\n\t\tthis.lookup = new Set(); // Used for faster search\n\t}\n\n\tadd(webComponent) {\n\t\tif (this.lookup.has(webComponent)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.list.push(webComponent);\n\t\tthis.lookup.add(webComponent);\n\t}\n\n\tremove(webComponent) {\n\t\tif (!this.lookup.has(webComponent)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.list = this.list.filter(item => item !== webComponent);\n\t\tthis.lookup.delete(webComponent);\n\t}\n\n\tshift() {\n\t\tconst webComponent = this.list.shift();\n\t\tif (webComponent) {\n\t\t\tthis.lookup.delete(webComponent);\n\t\t\treturn webComponent;\n\t\t}\n\t}\n\n\tisEmpty() {\n\t\treturn this.list.length === 0;\n\t}\n\n\tisAdded(webComponent) {\n\t\treturn this.lookup.has(webComponent);\n\t}\n\n\t/**\n\t * Processes the whole queue by executing the callback on each component,\n\t * while also imposing restrictions on how many times a component may be processed.\n\t *\n\t * @param callback - function with one argument (the web component to be processed)\n\t */\n\tprocess(callback) {\n\t\tlet webComponent;\n\t\tconst stats = new Map();\n\n\t\twebComponent = this.shift();\n\t\twhile (webComponent) {\n\t\t\tconst timesProcessed = stats.get(webComponent) || 0;\n\t\t\tif (timesProcessed > MAX_PROCESS_COUNT) {\n\t\t\t\tthrow new Error(`Web component processed too many times this task, max allowed is: ${MAX_PROCESS_COUNT}`);\n\t\t\t}\n\t\t\tcallback(webComponent);\n\t\t\tstats.set(webComponent, timesProcessed + 1);\n\t\t\twebComponent = this.shift();\n\t\t}\n\t}\n}\n\nexport default RenderQueue;\n","// This is needed as IE11 doesn't have Set.prototype.keys/values/entries, so [...mySet.values()] is not an option\nconst setToArray = s => {\n\tconst arr = [];\n\ts.forEach(item => {\n\t\tarr.push(item);\n\t});\n\treturn arr;\n};\n\nexport default setToArray;\n","import setToArray from \"./util/setToArray.js\";\n\nconst Definitions = new Set();\nconst Failures = new Set();\nlet failureTimeout;\n\nconst registerTag = tag => {\n\tDefinitions.add(tag);\n};\n\nconst isTagRegistered = tag => {\n\treturn Definitions.has(tag);\n};\n\nconst getAllRegisteredTags = () => {\n\treturn setToArray(Definitions);\n};\n\nconst recordTagRegistrationFailure = tag => {\n\tFailures.add(tag);\n\tif (!failureTimeout) {\n\t\tfailureTimeout = setTimeout(() => {\n\t\t\tdisplayFailedRegistrations();\n\t\t\tfailureTimeout = undefined;\n\t\t}, 1000);\n\t}\n};\n\nconst displayFailedRegistrations = () => {\n\tconsole.warn(`The following tags have already been defined by a different UI5 Web Components version: ${setToArray(Failures).join(\", \")}`); // eslint-disable-line\n\tFailures.clear();\n};\n\nexport {\n\tregisterTag,\n\tisTagRegistered,\n\tgetAllRegisteredTags,\n\trecordTagRegistrationFailure,\n};\n","const rtlAwareSet = new Set();\n\nconst markAsRtlAware = klass => {\n\trtlAwareSet.add(klass);\n};\n\nconst isRtlAware = klass => {\n\treturn rtlAwareSet.has(klass);\n};\n\nexport {\n\tmarkAsRtlAware,\n\tisRtlAware,\n};\n","import EventProvider from \"./EventProvider.js\";\nimport RenderQueue from \"./RenderQueue.js\";\nimport { getAllRegisteredTags } from \"./CustomElementsRegistry.js\";\nimport { isRtlAware } from \"./locale/RTLAwareRegistry.js\";\n\nconst registeredElements = new Set();\nconst eventProvider = new EventProvider();\n\nconst invalidatedWebComponents = new RenderQueue(); // Queue for invalidated web components\n\nlet renderTaskPromise,\n\trenderTaskPromiseResolve;\n\nlet mutationObserverTimer;\n\nlet queuePromise;\n\n/**\n * Schedules a render task (if not already scheduled) to render the component\n *\n * @param webComponent\n * @returns {Promise}\n */\nconst renderDeferred = async webComponent => {\n\t// Enqueue the web component\n\tinvalidatedWebComponents.add(webComponent);\n\n\t// Schedule a rendering task\n\tawait scheduleRenderTask();\n};\n\n/**\n * Renders a component synchronously and adds it to the registry of rendered components\n *\n * @param webComponent\n */\nconst renderImmediately = webComponent => {\n\teventProvider.fireEvent(\"beforeComponentRender\", webComponent);\n\tregisteredElements.add(webComponent);\n\twebComponent._render();\n};\n\n/**\n * Cancels the rendering of a component, if awaiting to be rendered, and removes it from the registry of rendered components\n *\n * @param webComponent\n */\nconst cancelRender = webComponent => {\n\tinvalidatedWebComponents.remove(webComponent);\n\tregisteredElements.delete(webComponent);\n};\n\n/**\n * Schedules a rendering task, if not scheduled already\n */\nconst scheduleRenderTask = async () => {\n\tif (!queuePromise) {\n\t\tqueuePromise = new Promise(resolve => {\n\t\t\twindow.requestAnimationFrame(() => {\n\t\t\t\t// Render all components in the queue\n\n\t\t\t\t// console.log(`--------------------RENDER TASK START------------------------------`); // eslint-disable-line\n\t\t\t\tinvalidatedWebComponents.process(renderImmediately);\n\t\t\t\t// console.log(`--------------------RENDER TASK END------------------------------`); // eslint-disable-line\n\n\t\t\t\t// Resolve the promise so that callers of renderDeferred can continue\n\t\t\t\tqueuePromise = null;\n\t\t\t\tresolve();\n\n\t\t\t\t// Wait for Mutation observer before the render task is considered finished\n\t\t\t\tif (!mutationObserverTimer) {\n\t\t\t\t\tmutationObserverTimer = setTimeout(() => {\n\t\t\t\t\t\tmutationObserverTimer = undefined;\n\t\t\t\t\t\tif (invalidatedWebComponents.isEmpty()) {\n\t\t\t\t\t\t\t_resolveTaskPromise();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 200);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tawait queuePromise;\n};\n\n/**\n * return a promise that will be resolved once all invalidated web components are rendered\n */\nconst whenDOMUpdated = () => {\n\tif (renderTaskPromise) {\n\t\treturn renderTaskPromise;\n\t}\n\n\trenderTaskPromise = new Promise(resolve => {\n\t\trenderTaskPromiseResolve = resolve;\n\t\twindow.requestAnimationFrame(() => {\n\t\t\tif (invalidatedWebComponents.isEmpty()) {\n\t\t\t\trenderTaskPromise = undefined;\n\t\t\t\tresolve();\n\t\t\t}\n\t\t});\n\t});\n\n\treturn renderTaskPromise;\n};\n\nconst whenAllCustomElementsAreDefined = () => {\n\tconst definedPromises = getAllRegisteredTags().map(tag => customElements.whenDefined(tag));\n\treturn Promise.all(definedPromises);\n};\n\nconst renderFinished = async () => {\n\tawait whenAllCustomElementsAreDefined();\n\tawait whenDOMUpdated();\n};\n\nconst _resolveTaskPromise = () => {\n\tif (!invalidatedWebComponents.isEmpty()) {\n\t\t// More updates are pending. Resolve will be called again\n\t\treturn;\n\t}\n\n\tif (renderTaskPromiseResolve) {\n\t\trenderTaskPromiseResolve();\n\t\trenderTaskPromiseResolve = undefined;\n\t\trenderTaskPromise = undefined;\n\t}\n};\n\n/**\n * Re-renders all UI5 Elements on the page, with the option to specify filters to rerender only some components.\n *\n * Usage:\n * reRenderAllUI5Elements() -> re-renders all components\n * reRenderAllUI5Elements({tag: \"ui5-button\"}) -> re-renders only instances of ui5-button\n * reRenderAllUI5Elements({rtlAware: true}) -> re-renders only rtlAware components\n * reRenderAllUI5Elements({languageAware: true}) -> re-renders only languageAware components\n * reRenderAllUI5Elements({rtlAware: true, languageAware: true}) -> re-renders components that are rtlAware or languageAware\n * etc...\n *\n * @public\n * @param {Object|undefined} filters - Object with keys that can be \"rtlAware\" or \"languageAware\"\n * @returns {Promise<void>}\n */\nconst reRenderAllUI5Elements = async filters => {\n\tregisteredElements.forEach(element => {\n\t\tconst tag = element.constructor.getMetadata().getTag();\n\t\tconst rtlAware = isRtlAware(element.constructor);\n\t\tconst languageAware = element.constructor.getMetadata().isLanguageAware();\n\t\tif (!filters || (filters.tag === tag) || (filters.rtlAware && rtlAware) || (filters.languageAware && languageAware)) {\n\t\t\trenderDeferred(element);\n\t\t}\n\t});\n\tawait renderFinished();\n};\n\nconst attachBeforeComponentRender = listener => {\n\teventProvider.attachEvent(\"beforeComponentRender\", listener);\n};\n\nconst detachBeforeComponentRender = listener => {\n\teventProvider.detachEvent(\"beforeComponentRender\", listener);\n};\n\nexport {\n\trenderDeferred,\n\trenderImmediately,\n\tcancelRender,\n\trenderFinished,\n\treRenderAllUI5Elements,\n\tattachBeforeComponentRender,\n\tdetachBeforeComponentRender,\n};\n","import { reRenderAllUI5Elements } from \"../Render.js\";\nimport EventProvider from \"../EventProvider.js\";\n\nconst eventProvider = new EventProvider();\nconst CUSTOM_CSS_CHANGE = \"CustomCSSChange\";\n\nconst attachCustomCSSChange = listener => {\n\teventProvider.attachEvent(CUSTOM_CSS_CHANGE, listener);\n};\n\nconst detachCustomCSSChange = listener => {\n\teventProvider.detachEvent(CUSTOM_CSS_CHANGE, listener);\n};\n\nconst fireCustomCSSChange = tag => {\n\treturn eventProvider.fireEvent(CUSTOM_CSS_CHANGE, tag);\n};\n\nconst customCSSFor = {};\n\nconst addCustomCSS = (tag, css) => {\n\tif (!customCSSFor[tag]) {\n\t\tcustomCSSFor[tag] = [];\n\t}\n\tcustomCSSFor[tag].push(css);\n\tfireCustomCSSChange(tag);\n\n\treturn reRenderAllUI5Elements({ tag });\n};\n\nconst getCustomCSS = tag => {\n\treturn customCSSFor[tag] ? customCSSFor[tag].join(\"\") : \"\";\n};\n\nexport {\n\taddCustomCSS,\n\tgetCustomCSS,\n\tattachCustomCSSChange,\n\tdetachCustomCSSChange,\n};\n","const getStylesString = styles => {\n\tif (Array.isArray(styles)) {\n\t\treturn flatten(styles.filter(style => !!style)).join(\" \");\n\t}\n\n\treturn styles;\n};\n\nconst flatten = arr => {\n\treturn arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatten(val) : val), []);\n};\n\nexport default getStylesString;\n","import { getCustomCSS, attachCustomCSSChange } from \"./CustomStyle.js\";\nimport getStylesString from \"./getStylesString.js\";\n\nconst effectiveStyleMap = new Map();\n\nattachCustomCSSChange(tag => {\n\teffectiveStyleMap.delete(`${tag}_normal`); // there is custom CSS only for the component itself, not for its static area part\n});\n\nconst getEffectiveStyle = (ElementClass, forStaticArea = false) => {\n\tconst tag = ElementClass.getMetadata().getTag();\n\tconst key = `${tag}_${forStaticArea ? \"static\" : \"normal\"}`;\n\n\tif (!effectiveStyleMap.has(key)) {\n\t\tlet effectiveStyle;\n\n\t\tif (forStaticArea) {\n\t\t\teffectiveStyle = getStylesString(ElementClass.staticAreaStyles);\n\t\t} else {\n\t\t\tconst customStyle = getCustomCSS(tag) || \"\";\n\t\t\tconst builtInStyles = getStylesString(ElementClass.styles);\n\t\t\teffectiveStyle = `${builtInStyles} ${customStyle}`;\n\t\t}\n\t\teffectiveStyleMap.set(key, effectiveStyle);\n\t}\n\n\treturn effectiveStyleMap.get(key);\n};\n\nexport default getEffectiveStyle;\n","import getEffectiveStyle from \"./getEffectiveStyle.js\";\nimport { attachCustomCSSChange } from \"./CustomStyle.js\";\n\nconst constructableStyleMap = new Map();\n\nattachCustomCSSChange(tag => {\n\tconstructableStyleMap.delete(`${tag}_normal`); // there is custom CSS only for the component itself, not for its static area part\n});\n\n/**\n * Returns (and caches) a constructable style sheet for a web component class\n * Note: Chrome\n * @param ElementClass\n * @returns {*}\n */\nconst getConstructableStyle = (ElementClass, forStaticArea = false) => {\n\tconst tag = ElementClass.getMetadata().getTag();\n\tconst key = `${tag}_${forStaticArea ? \"static\" : \"normal\"}`;\n\n\tif (!constructableStyleMap.has(key)) {\n\t\tconst styleContent = getEffectiveStyle(ElementClass, forStaticArea);\n\t\tconst style = new CSSStyleSheet();\n\t\tstyle.replaceSync(styleContent);\n\t\tconstructableStyleMap.set(key, [style]);\n\t}\n\n\treturn constructableStyleMap.get(key);\n};\n\nexport default getConstructableStyle;\n","const isLegacyBrowser = () => !!window.ShadyDOM;\n\nexport default isLegacyBrowser;\n","import executeTemplate from \"./renderer/executeTemplate.js\";\nimport getConstructableStyle from \"./theming/getConstructableStyle.js\";\nimport getEffectiveStyle from \"./theming/getEffectiveStyle.js\";\nimport isLegacyBrowser from \"./isLegacyBrowser.js\";\n\n/**\n * Updates the shadow root of a UI5Element or its static area item\n * @param element\n * @param forStaticArea\n */\nconst updateShadowRoot = (element, forStaticArea = false) => {\n\tlet styleToPrepend;\n\tconst template = forStaticArea ? \"staticAreaTemplate\" : \"template\";\n\tconst shadowRoot = forStaticArea ? element.staticAreaItem.shadowRoot : element.shadowRoot;\n\tconst renderResult = executeTemplate(element.constructor[template], element);\n\n\tif (document.adoptedStyleSheets) { // Chrome\n\t\tshadowRoot.adoptedStyleSheets = getConstructableStyle(element.constructor, forStaticArea);\n\t} else if (!isLegacyBrowser()) { // FF, Safari\n\t\tstyleToPrepend = getEffectiveStyle(element.constructor, forStaticArea);\n\t}\n\n\telement.constructor.render(renderResult, shadowRoot, styleToPrepend, { host: element });\n};\n\nexport default updateShadowRoot;\n","const GLOBAL_CONTENT_DENSITY_CSS_VAR = \"--_ui5_content_density\";\n\nconst getEffectiveContentDensity = el => getComputedStyle(el).getPropertyValue(GLOBAL_CONTENT_DENSITY_CSS_VAR);\n\nexport default getEffectiveContentDensity;\n","import \"./StaticArea.js\";\nimport updateShadowRoot from \"./updateShadowRoot.js\";\nimport { renderFinished } from \"./Render.js\";\nimport getEffectiveContentDensity from \"./util/getEffectiveContentDensity.js\";\nimport { getEffectiveScopingSuffixForTag } from \"./CustomElementsScope.js\";\n\n/**\n *\n * @class\n * @author SAP SE\n * @private\n */\nclass StaticAreaItem extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t\tthis._rendered = false;\n\t\tthis.attachShadow({ mode: \"open\" });\n\t}\n\n\t/**\n\t * @protected\n\t * @param ownerElement The UI5Element instance that owns this static area item\n\t */\n\tsetOwnerElement(ownerElement) {\n\t\tthis.ownerElement = ownerElement;\n\t\tthis.classList.add(this.ownerElement._id); // used for getting the popover in the tests\n\t}\n\n\t/**\n\t * Updates the shadow root of the static area item with the latest state, if rendered\n\t * @protected\n\t */\n\tupdate() {\n\t\tif (this._rendered) {\n\t\t\tthis._updateContentDensity();\n\t\t\tupdateShadowRoot(this.ownerElement, true);\n\t\t}\n\t}\n\n\t/**\n\t * Sets the correct content density based on the owner element's state\n\t * @private\n\t */\n\t_updateContentDensity() {\n\t\tif (getEffectiveContentDensity(this.ownerElement) === \"compact\") {\n\t\t\tthis.classList.add(\"sapUiSizeCompact\");\n\t\t\tthis.classList.add(\"ui5-content-density-compact\");\n\t\t} else {\n\t\t\tthis.classList.remove(\"sapUiSizeCompact\");\n\t\t\tthis.classList.remove(\"ui5-content-density-compact\");\n\t\t}\n\t}\n\n\t/**\n\t * @protected\n\t * Returns reference to the DOM element where the current fragment is added.\n\t */\n\tasync getDomRef() {\n\t\tthis._updateContentDensity();\n\t\tif (!this._rendered) {\n\t\t\tthis._rendered = true;\n\t\t\tupdateShadowRoot(this.ownerElement, true);\n\t\t}\n\t\tawait renderFinished(); // Wait for the content of the ui5-static-area-item to be rendered\n\t\treturn this.shadowRoot;\n\t}\n\n\t/**\n\t * @protected\n\t * @param refName\n\t * @returns {Element}\n\t */\n\tgetStableDomRef(refName) {\n\t\treturn this.shadowRoot.querySelector(`[data-ui5-stable=${refName}]`);\n\t}\n\n\tstatic getTag() {\n\t\tconst pureTag = \"ui5-static-area-item\";\n\t\tconst suffix = getEffectiveScopingSuffixForTag(pureTag);\n\t\tif (!suffix) {\n\t\t\treturn pureTag;\n\t\t}\n\n\t\treturn `${pureTag}-${suffix}`;\n\t}\n\n\tstatic createInstance() {\n\t\tif (!customElements.get(StaticAreaItem.getTag())) {\n\t\t\tcustomElements.define(StaticAreaItem.getTag(), StaticAreaItem);\n\t\t}\n\n\t\treturn document.createElement(this.getTag());\n\t}\n}\n\nexport default StaticAreaItem;\n","const observers = new WeakMap(); // We want just one observer per node, store them here -> DOM nodes are keys\n\n/**\n * Default implementation with MutationObserver for browsers with native support\n */\nlet _createObserver = (node, callback, options) => {\n\tconst observer = new MutationObserver(callback);\n\tobserver.observe(node, options);\n\treturn observer;\n};\n\n/**\n * Default implementation with MutationObserver for browsers with native support\n */\nlet _destroyObserver = observer => {\n\tobserver.disconnect();\n};\n\n/**\n * Allows to create an alternative DOM observer implementation\n * @param createFn\n */\nconst setCreateObserverCallback = createFn => {\n\tif (typeof createFn === \"function\") {\n\t\t_createObserver = createFn;\n\t}\n};\n\n/**\n * Allows to create an alternative DOM observer implementation\n * @param destroyFn\n */\nconst setDestroyObserverCallback = destroyFn => {\n\tif (typeof destroyFn === \"function\") {\n\t\t_destroyObserver = destroyFn;\n\t}\n};\n\n/**\n * @param node\n * @param callback\n * @param options\n */\nconst observeDOMNode = (node, callback, options) => {\n\tconst observer = _createObserver(node, callback, options);\n\tobservers.set(node, observer);\n};\n\n/**\n * @param node\n */\nconst unobserveDOMNode = node => {\n\tconst observer = observers.get(node);\n\tif (observer) {\n\t\t_destroyObserver(observer);\n\t\tobservers.delete(node);\n\t}\n};\n\nexport {\n\tsetCreateObserverCallback,\n\tsetDestroyObserverCallback,\n\tobserveDOMNode,\n\tunobserveDOMNode,\n};\n","import { getNoConflict as getConfiguredNoConflict } from \"../InitialConfiguration.js\";\n\n// Fire these events even with noConflict: true\nconst excludeList = [\n\t\"value-changed\",\n];\n\nconst shouldFireOriginalEvent = eventName => {\n\treturn excludeList.includes(eventName);\n};\n\nlet noConflict;\n\nconst shouldNotFireOriginalEvent = eventName => {\n\tconst nc = getNoConflict();\n\treturn !(nc.events && nc.events.includes && nc.events.includes(eventName));\n};\n\nconst getNoConflict = () => {\n\tif (noConflict === undefined) {\n\t\tnoConflict = getConfiguredNoConflict();\n\t}\n\n\treturn noConflict;\n};\n\nconst skipOriginalEvent = eventName => {\n\tconst nc = getNoConflict();\n\n\t// Always fire these events\n\tif (shouldFireOriginalEvent(eventName)) {\n\t\treturn false;\n\t}\n\n\t// Read from the configuration\n\tif (nc === true) {\n\t\treturn true;\n\t}\n\n\treturn !shouldNotFireOriginalEvent(eventName);\n};\n\nconst setNoConflict = noConflictData => {\n\tnoConflict = noConflictData;\n};\n\nexport {\n\tgetNoConflict,\n\tsetNoConflict,\n\tskipOriginalEvent,\n};\n","import EventProvider from \"../EventProvider.js\";\n\nconst eventProvider = new EventProvider();\nconst LANG_CHANGE = \"languageChange\";\n\nconst attachLanguageChange = listener => {\n\teventProvider.attachEvent(LANG_CHANGE, listener);\n};\n\nconst detachLanguageChange = listener => {\n\teventProvider.detachEvent(LANG_CHANGE, listener);\n};\n\nconst fireLanguageChange = lang => {\n\treturn eventProvider.fireEventAsync(LANG_CHANGE, lang);\n};\n\nexport {\n\tattachLanguageChange,\n\tdetachLanguageChange,\n\tfireLanguageChange,\n};\n","import {\n\tgetLanguage as getConfiguredLanguage,\n\tgetFetchDefaultLanguage as getConfiguredFetchDefaultLanguage,\n} from \"../InitialConfiguration.js\";\nimport { fireLanguageChange } from \"../locale/languageChange.js\";\nimport { reRenderAllUI5Elements } from \"../Render.js\";\n\nlet language;\nlet fetchDefaultLanguage;\n\n/**\n * Returns the currently configured language, or the browser language as a fallback\n * @returns {String}\n */\nconst getLanguage = () => {\n\tif (language === undefined) {\n\t\tlanguage = getConfiguredLanguage();\n\t}\n\treturn language;\n};\n\n/**\n * Changes the current language, re-fetches all message bundles, updates all language-aware components\n * and returns a promise that resolves when all rendering is done\n *\n * @param newLanguage\n * @returns {Promise<void>}\n */\nconst setLanguage = async newLanguage => {\n\tif (language === newLanguage) {\n\t\treturn;\n\t}\n\n\tlanguage = newLanguage;\n\n\tawait fireLanguageChange(newLanguage);\n\tawait reRenderAllUI5Elements({ languageAware: true });\n};\n\n/**\n * Defines if the default language, that is inlined, should be\n * fetched over the network instead of using the inlined one.\n * <b>Note:</b> By default the language will not be fetched.\n *\n * @param {Boolean} fetchDefaultLanguage\n */\nconst setFetchDefaultLanguage = fetchDefaultLang => {\n\tfetchDefaultLanguage = fetchDefaultLang;\n};\n\n/**\n * Returns if the default language, that is inlined, should be fetched over the network.\n * @returns {Boolean}\n */\nconst getFetchDefaultLanguage = () => {\n\tif (fetchDefaultLanguage === undefined) {\n\t\tsetFetchDefaultLanguage(getConfiguredFetchDefaultLanguage());\n\t}\n\n\treturn fetchDefaultLanguage;\n};\n\nexport {\n\tgetLanguage,\n\tsetLanguage,\n\tsetFetchDefaultLanguage,\n\tgetFetchDefaultLanguage,\n};\n","export default value => {\n\tconst m = /\\$([-a-z0-9A-Z._]+)(?::([^$]*))?\\$/.exec(value);\n\treturn m && m[2] ? m[2].split(/,/) : null;\n};\n","import { DEFAULT_LANGUAGE } from \"../generated/AssetParameters.js\";\n\nexport default () => {\n\tconst browserLanguages = navigator.languages;\n\n\tconst navigatorLanguage = () => {\n\t\treturn navigator.language;\n\t};\n\n\tconst rawLocale = (browserLanguages && browserLanguages[0]) || navigatorLanguage() || navigator.userLanguage || navigator.browserLanguage;\n\n\treturn rawLocale || DEFAULT_LANGUAGE;\n};\n","import { getRTL as getConfiguredRTL } from \"../InitialConfiguration.js\";\nimport { getLanguage } from \"./Language.js\";\nimport getDesigntimePropertyAsArray from \"../util/getDesigntimePropertyAsArray.js\";\nimport detectNavigatorLanguage from \"../util/detectNavigatorLanguage.js\";\n\nconst M_ISO639_OLD_TO_NEW = {\n\t\"iw\": \"he\",\n\t\"ji\": \"yi\",\n\t\"in\": \"id\",\n\t\"sh\": \"sr\",\n};\n\nconst A_RTL_LOCALES = getDesigntimePropertyAsArray(\"$cldr-rtl-locales:ar,fa,he$\") || [];\n\nconst impliesRTL = language => {\n\tlanguage = (language && M_ISO639_OLD_TO_NEW[language]) || language;\n\n\treturn A_RTL_LOCALES.indexOf(language) >= 0;\n};\n\nconst getRTL = () => {\n\tconst configurationRTL = getConfiguredRTL();\n\n\tif (configurationRTL !== null) {\n\t\treturn !!configurationRTL;\n\t}\n\n\treturn impliesRTL(getLanguage() || detectNavigatorLanguage());\n};\n\nexport { getRTL }; // eslint-disable-line\n","import { getRTL } from \"../config/RTL.js\";\n\nconst GLOBAL_DIR_CSS_VAR = \"--_ui5_dir\";\n\nconst getEffectiveDir = element => {\n\tconst doc = window.document;\n\tconst dirValues = [\"ltr\", \"rtl\"]; // exclude \"auto\" and \"\" from all calculations\n\tconst locallyAppliedDir = getComputedStyle(element).getPropertyValue(GLOBAL_DIR_CSS_VAR);\n\n\t// In that order, inspect the CSS Var (for modern browsers), the element itself, html and body (for IE fallback)\n\tif (dirValues.includes(locallyAppliedDir)) {\n\t\treturn locallyAppliedDir;\n\t}\n\tif (dirValues.includes(element.dir)) {\n\t\treturn element.dir;\n\t}\n\tif (dirValues.includes(doc.documentElement.dir)) {\n\t\treturn doc.documentElement.dir;\n\t}\n\tif (dirValues.includes(doc.body.dir)) {\n\t\treturn doc.body.dir;\n\t}\n\n\t// Finally, check the configuration for explicitly set RTL or language-implied RTL\n\treturn getRTL() ? \"rtl\" : undefined;\n};\n\nexport default getEffectiveDir;\n","import DataType from \"./DataType.js\";\n\nclass Integer extends DataType {\n\tstatic isValid(value) {\n\t\treturn Number.isInteger(value);\n\t}\n}\n\nexport default Integer;\n","import DataType from \"./DataType.js\";\n\nclass Float extends DataType {\n\tstatic isValid(value) {\n\t\t// Assuming that integers are floats as well!\n\t\treturn Number(value) === value;\n\t}\n}\n\nexport default Float;\n","// Note: disabled is present in IE so we explicitly allow it here.\n// Others, such as title/hidden, we explicitly override, so valid too\nconst allowList = [\n\t\"disabled\",\n\t\"title\",\n\t\"hidden\",\n\t\"role\",\n\t\"draggable\",\n];\n\n/**\n * Checks whether a property name is valid (does not collide with existing DOM API properties)\n *\n * @param name\n * @returns {boolean}\n */\nconst isValidPropertyName = name => {\n\tif (allowList.includes(name) || name.startsWith(\"aria\")) {\n\t\treturn true;\n\t}\n\tconst classes = [\n\t\tHTMLElement,\n\t\tElement,\n\t\tNode,\n\t];\n\treturn !classes.some(klass => klass.prototype.hasOwnProperty(name)); // eslint-disable-line\n};\n\nexport default isValidPropertyName;\n","const arraysAreEqual = (arr1, arr2) => {\n\tif (arr1.length !== arr2.length) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < arr1.length; i++) {\n\t\tif (arr1[i] !== arr2[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n};\n\nexport default arraysAreEqual;\n","import merge from \"./thirdparty/merge.js\";\nimport { boot } from \"./Boot.js\";\nimport UI5ElementMetadata from \"./UI5ElementMetadata.js\";\nimport EventProvider from \"./EventProvider.js\";\nimport getSingletonElementInstance from \"./util/getSingletonElementInstance.js\";\nimport StaticAreaItem from \"./StaticAreaItem.js\";\nimport updateShadowRoot from \"./updateShadowRoot.js\";\nimport { renderDeferred, renderImmediately, cancelRender } from \"./Render.js\";\nimport { registerTag, isTagRegistered, recordTagRegistrationFailure } from \"./CustomElementsRegistry.js\";\nimport { observeDOMNode, unobserveDOMNode } from \"./DOMObserver.js\";\nimport { skipOriginalEvent } from \"./config/NoConflict.js\";\nimport getEffectiveDir from \"./locale/getEffectiveDir.js\";\nimport Integer from \"./types/Integer.js\";\nimport Float from \"./types/Float.js\";\nimport { kebabToCamelCase, camelToKebabCase } from \"./util/StringHelper.js\";\nimport isValidPropertyName from \"./util/isValidPropertyName.js\";\nimport { isSlot, getSlotName, getSlottedElementsList } from \"./util/SlotsHelper.js\";\nimport arraysAreEqual from \"./util/arraysAreEqual.js\";\nimport getClassCopy from \"./util/getClassCopy.js\";\nimport { markAsRtlAware } from \"./locale/RTLAwareRegistry.js\";\nimport isLegacyBrowser from \"./isLegacyBrowser.js\";\n\nlet autoId = 0;\n\nconst elementTimeouts = new Map();\nconst uniqueDependenciesCache = new Map();\n\n/**\n * Triggers re-rendering of a UI5Element instance due to state change.\n *\n * @param  changeInfo An object with information about the change that caused invalidation.\n * @private\n */\nfunction _invalidate(changeInfo) {\n\t// Invalidation should be suppressed: 1) before the component is rendered for the first time 2) and during the execution of onBeforeRendering\n\t// This is necessary not only as an optimization, but also to avoid infinite loops on invalidation between children and parents (when invalidateOnChildChange is used)\n\tif (this._suppressInvalidation) {\n\t\treturn;\n\t}\n\n\t// Call the onInvalidation hook\n\tthis.onInvalidation(changeInfo);\n\n\tthis._changedState.push(changeInfo);\n\trenderDeferred(this);\n\tthis._eventProvider.fireEvent(\"change\", { ...changeInfo, target: this });\n}\n\n/**\n * Base class for all UI5 Web Components\n *\n * @class\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.base.UI5Element\n * @extends HTMLElement\n * @public\n */\nclass UI5Element extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._changedState = []; // Filled on each invalidation, cleared on re-render (used for debugging)\n\t\tthis._suppressInvalidation = true; // A flag telling whether all invalidations should be ignored. Initialized with \"true\" because a UI5Element can not be invalidated until it is rendered for the first time\n\t\tthis._inDOM = false; // A flag telling whether the UI5Element is currently in the DOM tree of the document or not\n\t\tthis._fullyConnected = false; // A flag telling whether the UI5Element's onEnterDOM hook was called (since it's possible to have the element removed from DOM before that)\n\t\tthis._childChangeListeners = new Map(); // used to store lazy listeners per slot for the child change event of every child inside that slot\n\t\tthis._slotChangeListeners = new Map(); // used to store lazy listeners per slot for the slotchange event of all slot children inside that slot\n\t\tthis._eventProvider = new EventProvider(); // used by parent components for listening to changes to child components\n\t\tlet deferredResolve;\n\t\tthis._domRefReadyPromise = new Promise(resolve => {\n\t\t\tdeferredResolve = resolve;\n\t\t});\n\t\tthis._domRefReadyPromise._deferredResolve = deferredResolve;\n\n\t\tthis._initializeState();\n\t\tthis._upgradeAllProperties();\n\n\t\tif (this.constructor._needsShadowDOM()) {\n\t\t\tthis.attachShadow({ mode: \"open\" });\n\t\t}\n\t}\n\n\t/**\n\t * Returns a unique ID for this UI5 Element\n\t *\n\t * @deprecated - This property is not guaranteed in future releases\n\t * @protected\n\t */\n\tget _id() {\n\t\tif (!this.__id) {\n\t\t\tthis.__id = `ui5wc_${++autoId}`;\n\t\t}\n\n\t\treturn this.__id;\n\t}\n\n\t/**\n\t * Do not call this method from derivatives of UI5Element, use \"onEnterDOM\" only\n\t * @private\n\t */\n\tasync connectedCallback() {\n\t\tthis.setAttribute(this.constructor.getMetadata().getPureTag(), \"\");\n\n\t\tconst needsShadowDOM = this.constructor._needsShadowDOM();\n\t\tconst slotsAreManaged = this.constructor.getMetadata().slotsAreManaged();\n\n\t\tthis._inDOM = true;\n\n\t\tif (slotsAreManaged) {\n\t\t\t// always register the observer before yielding control to the main thread (await)\n\t\t\tthis._startObservingDOMChildren();\n\t\t\tawait this._processChildren();\n\t\t}\n\n\t\tif (needsShadowDOM && !this.shadowRoot) { // Workaround for Firefox74 bug\n\t\t\tawait Promise.resolve();\n\t\t}\n\n\t\tif (!this._inDOM) { // Component removed from DOM while _processChildren was running\n\t\t\treturn;\n\t\t}\n\n\t\trenderImmediately(this);\n\t\tthis._domRefReadyPromise._deferredResolve();\n\t\tthis._fullyConnected = true;\n\t\tif (typeof this.onEnterDOM === \"function\") {\n\t\t\tthis.onEnterDOM();\n\t\t}\n\t}\n\n\t/**\n\t * Do not call this method from derivatives of UI5Element, use \"onExitDOM\" only\n\t * @private\n\t */\n\tdisconnectedCallback() {\n\t\tconst needsShadowDOM = this.constructor._needsShadowDOM();\n\t\tconst slotsAreManaged = this.constructor.getMetadata().slotsAreManaged();\n\n\t\tthis._inDOM = false;\n\n\t\tif (slotsAreManaged) {\n\t\t\tthis._stopObservingDOMChildren();\n\t\t}\n\n\t\tif (needsShadowDOM) {\n\t\t\tif (this._fullyConnected) {\n\t\t\t\tif (typeof this.onExitDOM === \"function\") {\n\t\t\t\t\tthis.onExitDOM();\n\t\t\t\t}\n\t\t\t\tthis._fullyConnected = false;\n\t\t\t}\n\t\t}\n\n\t\tif (this.staticAreaItem && this.staticAreaItem.parentElement) {\n\t\t\tthis.staticAreaItem.parentElement.removeChild(this.staticAreaItem);\n\t\t}\n\n\t\tcancelRender(this);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_startObservingDOMChildren() {\n\t\tconst shouldObserveChildren = this.constructor.getMetadata().hasSlots();\n\t\tif (!shouldObserveChildren) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst canSlotText = this.constructor.getMetadata().canSlotText();\n\t\tconst mutationObserverOptions = {\n\t\t\tchildList: true,\n\t\t\tsubtree: canSlotText,\n\t\t\tcharacterData: canSlotText,\n\t\t};\n\t\tobserveDOMNode(this, this._processChildren.bind(this), mutationObserverOptions);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_stopObservingDOMChildren() {\n\t\tunobserveDOMNode(this);\n\t}\n\n\t/**\n\t * Note: this method is also manually called by \"compatibility/patchNodeValue.js\"\n\t * @private\n\t */\n\tasync _processChildren() {\n\t\tconst hasSlots = this.constructor.getMetadata().hasSlots();\n\t\tif (hasSlots) {\n\t\t\tawait this._updateSlots();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tasync _updateSlots() {\n\t\tconst slotsMap = this.constructor.getMetadata().getSlots();\n\t\tconst canSlotText = this.constructor.getMetadata().canSlotText();\n\t\tconst domChildren = Array.from(canSlotText ? this.childNodes : this.children);\n\n\t\tconst slotsCachedContentMap = new Map(); // Store here the content of each slot before the mutation occurred\n\t\tconst propertyNameToSlotMap = new Map(); // Used for reverse lookup to determine to which slot the property name corresponds\n\n\t\t// Init the _state object based on the supported slots and store the previous values\n\t\tfor (const [slotName, slotData] of Object.entries(slotsMap)) { // eslint-disable-line\n\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\tpropertyNameToSlotMap.set(propertyName, slotName);\n\t\t\tslotsCachedContentMap.set(propertyName, [...this._state[propertyName]]);\n\t\t\tthis._clearSlot(slotName, slotData);\n\t\t}\n\n\t\tconst autoIncrementMap = new Map();\n\t\tconst slottedChildrenMap = new Map();\n\n\t\tconst allChildrenUpgraded = domChildren.map(async (child, idx) => {\n\t\t\t// Determine the type of the child (mainly by the slot attribute)\n\t\t\tconst slotName = getSlotName(child);\n\t\t\tconst slotData = slotsMap[slotName];\n\n\t\t\t// Check if the slotName is supported\n\t\t\tif (slotData === undefined) {\n\t\t\t\tconst validValues = Object.keys(slotsMap).join(\", \");\n\t\t\t\tconsole.warn(`Unknown slotName: ${slotName}, ignoring`, child, `Valid values are: ${validValues}`); // eslint-disable-line\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For children that need individual slots, calculate them\n\t\t\tif (slotData.individualSlots) {\n\t\t\t\tconst nextIndex = (autoIncrementMap.get(slotName) || 0) + 1;\n\t\t\t\tautoIncrementMap.set(slotName, nextIndex);\n\t\t\t\tchild._individualSlot = `${slotName}-${nextIndex}`;\n\t\t\t}\n\n\t\t\t// Await for not-yet-defined custom elements\n\t\t\tif (child instanceof HTMLElement) {\n\t\t\t\tconst localName = child.localName;\n\t\t\t\tconst isCustomElement = localName.includes(\"-\");\n\t\t\t\tif (isCustomElement) {\n\t\t\t\t\tconst isDefined = window.customElements.get(localName);\n\t\t\t\t\tif (!isDefined) {\n\t\t\t\t\t\tconst whenDefinedPromise = window.customElements.whenDefined(localName); // Class registered, but instances not upgraded yet\n\t\t\t\t\t\tlet timeoutPromise = elementTimeouts.get(localName);\n\t\t\t\t\t\tif (!timeoutPromise) {\n\t\t\t\t\t\t\ttimeoutPromise = new Promise(resolve => setTimeout(resolve, 1000));\n\t\t\t\t\t\t\telementTimeouts.set(localName, timeoutPromise);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tawait Promise.race([whenDefinedPromise, timeoutPromise]);\n\t\t\t\t\t}\n\t\t\t\t\twindow.customElements.upgrade(child);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchild = this.constructor.getMetadata().constructor.validateSlotValue(child, slotData);\n\n\t\t\t// Listen for any invalidation on the child if invalidateOnChildChange is true or an object (ignore when false or not set)\n\t\t\tif (child.isUI5Element && slotData.invalidateOnChildChange) {\n\t\t\t\tchild._attachChange(this._getChildChangeListener(slotName));\n\t\t\t}\n\n\t\t\t// Listen for the slotchange event if the child is a slot itself\n\t\t\tif (isSlot(child)) {\n\t\t\t\tthis._attachSlotChange(child, slotName);\n\t\t\t}\n\n\t\t\tconst propertyName = slotData.propertyName || slotName;\n\n\t\t\tif (slottedChildrenMap.has(propertyName)) {\n\t\t\t\tslottedChildrenMap.get(propertyName).push({ child, idx });\n\t\t\t} else {\n\t\t\t\tslottedChildrenMap.set(propertyName, [{ child, idx }]);\n\t\t\t}\n\t\t});\n\n\t\tawait Promise.all(allChildrenUpgraded);\n\n\t\t// Distribute the child in the _state object, keeping the Light DOM order,\n\t\t// not the order elements are defined.\n\t\tslottedChildrenMap.forEach((children, propertyName) => {\n\t\t\tthis._state[propertyName] = children.sort((a, b) => a.idx - b.idx).map(_ => _.child);\n\t\t});\n\n\t\t// Compare the content of each slot with the cached values and invalidate for the ones that changed\n\t\tlet invalidated = false;\n\t\tfor (const [slotName, slotData] of Object.entries(slotsMap)) { // eslint-disable-line\n\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\tif (!arraysAreEqual(slotsCachedContentMap.get(propertyName), this._state[propertyName])) {\n\t\t\t\t_invalidate.call(this, {\n\t\t\t\t\ttype: \"slot\",\n\t\t\t\t\tname: propertyNameToSlotMap.get(propertyName),\n\t\t\t\t\treason: \"children\",\n\t\t\t\t});\n\t\t\t\tinvalidated = true;\n\t\t\t}\n\t\t}\n\n\t\t// If none of the slots had an invalidation due to changes to immediate children,\n\t\t// the change is considered to be text content of the default slot\n\t\tif (!invalidated) {\n\t\t\t_invalidate.call(this, {\n\t\t\t\ttype: \"slot\",\n\t\t\t\tname: \"default\",\n\t\t\t\treason: \"textcontent\",\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Removes all children from the slot and detaches listeners, if any\n\t * @private\n\t */\n\t_clearSlot(slotName, slotData) {\n\t\tconst propertyName = slotData.propertyName || slotName;\n\t\tconst children = this._state[propertyName];\n\n\t\tchildren.forEach(child => {\n\t\t\tif (child && child.isUI5Element) {\n\t\t\t\tchild._detachChange(this._getChildChangeListener(slotName));\n\t\t\t}\n\n\t\t\tif (isSlot(child)) {\n\t\t\t\tthis._detachSlotChange(child, slotName);\n\t\t\t}\n\t\t});\n\n\t\tthis._state[propertyName] = [];\n\t}\n\n\t/**\n\t * Attach a callback that will be executed whenever the component is invalidated\n\t *\n\t * @param callback\n\t * @protected\n\t */\n\t_attachChange(callback) {\n\t\tthis._eventProvider.attachEvent(\"change\", callback);\n\t}\n\n\t/**\n\t * Detach the callback that is executed whenever the component is invalidated\n\t *\n\t * @param callback\n\t * @protected\n\t */\n\t_detachChange(callback) {\n\t\tthis._eventProvider.detachEvent(\"change\", callback);\n\t}\n\n\t/**\n\t * Callback that is executed whenever a monitored child changes its state\n\t *\n\t * @param slotName the slot in which a child was invalidated\n\t * @param childChangeInfo the changeInfo object for the child in the given slot\n\t * @private\n\t */\n\t_onChildChange(slotName, childChangeInfo) {\n\t\tif (!this.constructor.getMetadata().shouldInvalidateOnChildChange(slotName, childChangeInfo.type, childChangeInfo.name)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The component should be invalidated as this type of change on the child is listened for\n\t\t// However, no matter what changed on the child (property/slot), the invalidation is registered as \"type=slot\" for the component itself\n\t\t_invalidate.call(this, {\n\t\t\ttype: \"slot\",\n\t\t\tname: slotName,\n\t\t\treason: \"childchange\",\n\t\t\tchild: childChangeInfo.target,\n\t\t});\n\t}\n\n\t/**\n\t * Do not override this method in derivatives of UI5Element\n\t * @private\n\t */\n\tattributeChangedCallback(name, oldValue, newValue) {\n\t\tconst properties = this.constructor.getMetadata().getProperties();\n\t\tconst realName = name.replace(/^ui5-/, \"\");\n\t\tconst nameInCamelCase = kebabToCamelCase(realName);\n\t\tif (properties.hasOwnProperty(nameInCamelCase)) { // eslint-disable-line\n\t\t\tconst propertyTypeClass = properties[nameInCamelCase].type;\n\t\t\tif (propertyTypeClass === Boolean) {\n\t\t\t\tnewValue = newValue !== null;\n\t\t\t}\n\t\t\tif (propertyTypeClass === Integer) {\n\t\t\t\tnewValue = parseInt(newValue);\n\t\t\t}\n\t\t\tif (propertyTypeClass === Float) {\n\t\t\t\tnewValue = parseFloat(newValue);\n\t\t\t}\n\t\t\tthis[nameInCamelCase] = newValue;\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_updateAttribute(name, newValue) {\n\t\tif (!this.constructor.getMetadata().hasAttribute(name)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof newValue === \"object\") {\n\t\t\treturn;\n\t\t}\n\n\t\tconst attrName = camelToKebabCase(name);\n\t\tconst attrValue = this.getAttribute(attrName);\n\t\tif (typeof newValue === \"boolean\") {\n\t\t\tif (newValue === true && attrValue === null) {\n\t\t\t\tthis.setAttribute(attrName, \"\");\n\t\t\t} else if (newValue === false && attrValue !== null) {\n\t\t\t\tthis.removeAttribute(attrName);\n\t\t\t}\n\t\t} else if (attrValue !== newValue) {\n\t\t\tthis.setAttribute(attrName, newValue);\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_upgradeProperty(prop) {\n\t\tif (this.hasOwnProperty(prop)) { // eslint-disable-line\n\t\t\tconst value = this[prop];\n\t\t\tdelete this[prop];\n\t\t\tthis[prop] = value;\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_upgradeAllProperties() {\n\t\tconst allProps = this.constructor.getMetadata().getPropertiesList();\n\t\tallProps.forEach(this._upgradeProperty, this);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_initializeState() {\n\t\tthis._state = { ...this.constructor.getMetadata().getInitialState() };\n\t}\n\n\t/**\n\t * Returns a singleton event listener for the \"change\" event of a child in a given slot\n\t *\n\t * @param slotName the name of the slot, where the child is\n\t * @returns {any}\n\t * @private\n\t */\n\t_getChildChangeListener(slotName) {\n\t\tif (!this._childChangeListeners.has(slotName)) {\n\t\t\tthis._childChangeListeners.set(slotName, this._onChildChange.bind(this, slotName));\n\t\t}\n\t\treturn this._childChangeListeners.get(slotName);\n\t}\n\n\t/**\n\t * Returns a singleton slotchange event listener that invalidates the component due to changes in the given slot\n\t *\n\t * @param slotName the name of the slot, where the slot element (whose slotchange event we're listening to) is\n\t * @returns {any}\n\t * @private\n\t */\n\t_getSlotChangeListener(slotName) {\n\t\tif (!this._slotChangeListeners.has(slotName)) {\n\t\t\tthis._slotChangeListeners.set(slotName, this._onSlotChange.bind(this, slotName));\n\t\t}\n\t\treturn this._slotChangeListeners.get(slotName);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_attachSlotChange(child, slotName) {\n\t\tchild.addEventListener(\"slotchange\", this._getSlotChangeListener(slotName));\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_detachSlotChange(child, slotName) {\n\t\tchild.removeEventListener(\"slotchange\", this._getSlotChangeListener(slotName));\n\t}\n\n\t/**\n\t * Whenever a slot element is slotted inside a UI5 Web Component, its slotchange event invalidates the component\n\t *\n\t * @param slotName the name of the slot, where the slot element (whose slotchange event we're listening to) is\n\t * @private\n\t */\n\t_onSlotChange(slotName) {\n\t\t_invalidate.call(this, {\n\t\t\ttype: \"slot\",\n\t\t\tname: slotName,\n\t\t\treason: \"slotchange\",\n\t\t});\n\t}\n\n\t/**\n\t * A callback that is executed each time an already rendered component is invalidated (scheduled for re-rendering)\n\t *\n\t * @param  changeInfo An object with information about the change that caused invalidation.\n\t * The object can have the following properties:\n\t *  - type: (property|slot) tells what caused the invalidation\n\t *   1) property: a property value was changed either directly or as a result of changing the corresponding attribute\n\t *   2) slot: a slotted node(nodes) changed in one of several ways (see \"reason\")\n\t *\n\t *  - name: the name of the property or slot that caused the invalidation\n\t *\n\t *  - reason: (children|textcontent|childchange|slotchange) relevant only for type=\"slot\" only and tells exactly what changed in the slot\n\t *   1) children: immediate children (HTML elements or text nodes) were added, removed or reordered in the slot\n\t *   2) textcontent: text nodes in the slot changed value (or nested text nodes were added or changed value). Can only trigger for slots of \"type: Node\"\n\t *   3) slotchange: a slot element, slotted inside that slot had its \"slotchange\" event listener called. This practically means that transitively slotted children changed.\n\t *      Can only trigger if the child of a slot is a slot element itself.\n\t *   4) childchange: indicates that a UI5Element child in that slot was invalidated and in turn invalidated the component.\n\t *      Can only trigger for slots with \"invalidateOnChildChange\" metadata descriptor\n\t *\n\t *  - newValue: the new value of the property (for type=\"property\" only)\n\t *\n\t *  - oldValue: the old value of the property (for type=\"property\" only)\n\t *\n\t *  - child the child that was changed (for type=\"slot\" and reason=\"childchange\" only)\n\t *\n\t * @public\n\t */\n\tonInvalidation(changeInfo) {}\n\n\t/**\n\t * Do not call this method directly, only intended to be called by js\n\t * @protected\n\t */\n\t_render() {\n\t\tconst hasIndividualSlots = this.constructor.getMetadata().hasIndividualSlots();\n\n\t\t// suppress invalidation to prevent state changes scheduling another rendering\n\t\tthis._suppressInvalidation = true;\n\n\t\tif (typeof this.onBeforeRendering === \"function\") {\n\t\t\tthis.onBeforeRendering();\n\t\t}\n\n\t\t// Intended for framework usage only. Currently ItemNavigation updates tab indexes after the component has updated its state but before the template is rendered\n\t\tif (this._onComponentStateFinalized) {\n\t\t\tthis._onComponentStateFinalized();\n\t\t}\n\n\t\t// resume normal invalidation handling\n\t\tthis._suppressInvalidation = false;\n\n\t\t// Update the shadow root with the render result\n\t\t/*\n\t\tif (this._changedState.length) {\n\t\t\tlet element = this.localName;\n\t\t\tif (this.id) {\n\t\t\t\telement = `${element}#${this.id}`;\n\t\t\t}\n\t\t\tconsole.log(\"Re-rendering:\", element, this._changedState.map(x => { // eslint-disable-line\n\t\t\t\tlet res = `${x.type}`;\n\t\t\t\tif (x.reason) {\n\t\t\t\t\tres = `${res}(${x.reason})`;\n\t\t\t\t}\n\t\t\t\tres = `${res}: ${x.name}`;\n\t\t\t\tif (x.type === \"property\") {\n\t\t\t\t\tres = `${res} ${x.oldValue} => ${x.newValue}`;\n\t\t\t\t}\n\n\t\t\t\treturn res;\n\t\t\t}));\n\t\t}\n\t\t*/\n\t\tthis._changedState = [];\n\n\t\t// Update shadow root and static area item\n\t\tif (this.constructor._needsShadowDOM()) {\n\t\t\tupdateShadowRoot(this);\n\t\t}\n\t\tif (this.staticAreaItem) {\n\t\t\tthis.staticAreaItem.update();\n\t\t}\n\n\t\t// Safari requires that children get the slot attribute only after the slot tags have been rendered in the shadow DOM\n\t\tif (hasIndividualSlots) {\n\t\t\tthis._assignIndividualSlotsToChildren();\n\t\t}\n\n\t\t// Call the onAfterRendering hook\n\t\tif (typeof this.onAfterRendering === \"function\") {\n\t\t\tthis.onAfterRendering();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_assignIndividualSlotsToChildren() {\n\t\tconst domChildren = Array.from(this.children);\n\n\t\tdomChildren.forEach(child => {\n\t\t\tif (child._individualSlot) {\n\t\t\t\tchild.setAttribute(\"slot\", child._individualSlot);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_waitForDomRef() {\n\t\treturn this._domRefReadyPromise;\n\t}\n\n\t/**\n\t * Returns the DOM Element inside the Shadow Root that corresponds to the opening tag in the UI5 Web Component's template\n\t * Use this method instead of \"this.shadowRoot\" to read the Shadow DOM, if ever necessary\n\t * @public\n\t */\n\tgetDomRef() {\n\t\tif (!this.shadowRoot || this.shadowRoot.children.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._assertShadowRootStructure();\n\n\t\treturn this.shadowRoot.children.length === 1\n\t\t\t? this.shadowRoot.children[0] : this.shadowRoot.children[1];\n\t}\n\n\t_assertShadowRootStructure() {\n\t\tconst expectedChildrenCount = document.adoptedStyleSheets || isLegacyBrowser() ? 1 : 2;\n\t\tif (this.shadowRoot.children.length !== expectedChildrenCount) {\n\t\t\tconsole.warn(`The shadow DOM for ${this.constructor.getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`); // eslint-disable-line\n\t\t}\n\t}\n\n\t/**\n\t * Returns the DOM Element marked with \"data-sap-focus-ref\" inside the template.\n\t * This is the element that will receive the focus by default.\n\t * @public\n\t */\n\tgetFocusDomRef() {\n\t\tconst domRef = this.getDomRef();\n\t\tif (domRef) {\n\t\t\tconst focusRef = domRef.querySelector(\"[data-sap-focus-ref]\");\n\t\t\treturn focusRef || domRef;\n\t\t}\n\t}\n\n\t/**\n\t * Waits for dom ref and then returns the DOM Element marked with \"data-sap-focus-ref\" inside the template.\n\t * This is the element that will receive the focus by default.\n\t * @public\n\t */\n\tasync getFocusDomRefAsync() {\n\t\tawait this._waitForDomRef();\n\t\treturn this.getFocusDomRef();\n\t}\n\n\t/**\n\t * Use this method in order to get a reference to an element in the shadow root of the web component or the static area item of the component\n\t * @public\n\t * @method\n\t * @param {String} refName Defines the name of the stable DOM ref\n\t */\n\tgetStableDomRef(refName) {\n\t\tconst staticAreaResult = this.staticAreaItem && this.staticAreaItem.getStableDomRef(refName);\n\t\treturn staticAreaResult || this.getDomRef().querySelector(`[data-ui5-stable=${refName}]`);\n\t}\n\n\t/**\n\t * Set the focus to the element, returned by \"getFocusDomRef()\" (marked by \"data-sap-focus-ref\")\n\t * @public\n\t */\n\tasync focus() {\n\t\tawait this._waitForDomRef();\n\n\t\tconst focusDomRef = this.getFocusDomRef();\n\n\t\tif (focusDomRef && typeof focusDomRef.focus === \"function\") {\n\t\t\tfocusDomRef.focus();\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @public\n\t * @param name - name of the event\n\t * @param data - additional data for the event\n\t * @param cancelable - true, if the user can call preventDefault on the event object\n\t * @param bubbles - true, if the event bubbles\n\t * @returns {boolean} false, if the event was cancelled (preventDefault called), true otherwise\n\t */\n\tfireEvent(name, data, cancelable = false, bubbles = true) {\n\t\tconst eventResult = this._fireEvent(name, data, cancelable, bubbles);\n\t\tconst camelCaseEventName = kebabToCamelCase(name);\n\n\t\tif (camelCaseEventName !== name) {\n\t\t\treturn eventResult && this._fireEvent(camelCaseEventName, data, cancelable);\n\t\t}\n\n\t\treturn eventResult;\n\t}\n\n\t_fireEvent(name, data, cancelable = false, bubbles = true) {\n\t\tconst noConflictEvent = new CustomEvent(`ui5-${name}`, {\n\t\t\tdetail: data,\n\t\t\tcomposed: false,\n\t\t\tbubbles,\n\t\t\tcancelable,\n\t\t});\n\n\t\t// This will be false if the no-conflict event is prevented\n\t\tconst noConflictEventResult = this.dispatchEvent(noConflictEvent);\n\n\t\tif (skipOriginalEvent(name)) {\n\t\t\treturn noConflictEventResult;\n\t\t}\n\n\t\tconst normalEvent = new CustomEvent(name, {\n\t\t\tdetail: data,\n\t\t\tcomposed: false,\n\t\t\tbubbles,\n\t\t\tcancelable,\n\t\t});\n\n\t\t// This will be false if the normal event is prevented\n\t\tconst normalEventResult = this.dispatchEvent(normalEvent);\n\n\t\t// Return false if any of the two events was prevented (its result was false).\n\t\treturn normalEventResult && noConflictEventResult;\n\t}\n\n\t/**\n\t * Returns the actual children, associated with a slot.\n\t * Useful when there are transitive slots in nested component scenarios and you don't want to get a list of the slots, but rather of their content.\n\t * @public\n\t */\n\tgetSlottedNodes(slotName) {\n\t\treturn getSlottedElementsList(this[slotName]);\n\t}\n\n\t/**\n\t * Determines whether the component should be rendered in RTL mode or not.\n\t * Returns: \"rtl\", \"ltr\" or undefined\n\t *\n\t * @public\n\t * @returns {String|undefined}\n\t */\n\tget effectiveDir() {\n\t\tmarkAsRtlAware(this.constructor); // if a UI5 Element calls this method, it's considered to be rtl-aware\n\t\treturn getEffectiveDir(this);\n\t}\n\n\t/**\n\t * Used to duck-type UI5 elements without using instanceof\n\t * @returns {boolean}\n\t * @public\n\t */\n\tget isUI5Element() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Do not override this method in derivatives of UI5Element, use metadata properties instead\n\t * @private\n\t */\n\tstatic get observedAttributes() {\n\t\treturn this.getMetadata().getAttributesList();\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic _needsShadowDOM() {\n\t\treturn !!this.template;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic _needsStaticArea() {\n\t\treturn !!this.staticAreaTemplate;\n\t}\n\n\t/**\n\t * @public\n\t */\n\tgetStaticAreaItemDomRef() {\n\t\tif (!this.constructor._needsStaticArea()) {\n\t\t\tthrow new Error(\"This component does not use the static area\");\n\t\t}\n\n\t\tif (!this.staticAreaItem) {\n\t\t\tthis.staticAreaItem = StaticAreaItem.createInstance();\n\t\t\tthis.staticAreaItem.setOwnerElement(this);\n\t\t}\n\t\tif (!this.staticAreaItem.parentElement) {\n\t\t\tgetSingletonElementInstance(\"ui5-static-area\").appendChild(this.staticAreaItem);\n\t\t}\n\n\t\treturn this.staticAreaItem.getDomRef();\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic _generateAccessors() {\n\t\tconst proto = this.prototype;\n\t\tconst slotsAreManaged = this.getMetadata().slotsAreManaged();\n\n\t\t// Properties\n\t\tconst properties = this.getMetadata().getProperties();\n\t\tfor (const [prop, propData] of Object.entries(properties)) { // eslint-disable-line\n\t\t\tif (!isValidPropertyName(prop)) {\n\t\t\t\tconsole.warn(`\"${prop}\" is not a valid property name. Use a name that does not collide with DOM APIs`); /* eslint-disable-line */\n\t\t\t}\n\n\t\t\tif (propData.type === Boolean && propData.defaultValue) {\n\t\t\t\tthrow new Error(`Cannot set a default value for property \"${prop}\". All booleans are false by default.`);\n\t\t\t}\n\n\t\t\tif (propData.type === Array) {\n\t\t\t\tthrow new Error(`Wrong type for property \"${prop}\". Properties cannot be of type Array - use \"multiple: true\" and set \"type\" to the single value type, such as \"String\", \"Object\", etc...`);\n\t\t\t}\n\n\t\t\tif (propData.type === Object && propData.defaultValue) {\n\t\t\t\tthrow new Error(`Cannot set a default value for property \"${prop}\". All properties of type \"Object\" are empty objects by default.`);\n\t\t\t}\n\n\t\t\tif (propData.multiple && propData.defaultValue) {\n\t\t\t\tthrow new Error(`Cannot set a default value for property \"${prop}\". All multiple properties are empty arrays by default.`);\n\t\t\t}\n\n\t\t\tObject.defineProperty(proto, prop, {\n\t\t\t\tget() {\n\t\t\t\t\tif (this._state[prop] !== undefined) {\n\t\t\t\t\t\treturn this._state[prop];\n\t\t\t\t\t}\n\n\t\t\t\t\tconst propDefaultValue = propData.defaultValue;\n\n\t\t\t\t\tif (propData.type === Boolean) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else if (propData.type === String) {  // eslint-disable-line\n\t\t\t\t\t\treturn propDefaultValue;\n\t\t\t\t\t} else if (propData.multiple) { // eslint-disable-line\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn propDefaultValue;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tset(value) {\n\t\t\t\t\tlet isDifferent;\n\t\t\t\t\tvalue = this.constructor.getMetadata().constructor.validatePropertyValue(value, propData);\n\n\t\t\t\t\tconst oldState = this._state[prop];\n\t\t\t\t\tif (propData.multiple && propData.compareValues) {\n\t\t\t\t\t\tisDifferent = !arraysAreEqual(oldState, value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisDifferent = oldState !== value;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (isDifferent) {\n\t\t\t\t\t\tthis._state[prop] = value;\n\t\t\t\t\t\t_invalidate.call(this, {\n\t\t\t\t\t\t\ttype: \"property\",\n\t\t\t\t\t\t\tname: prop,\n\t\t\t\t\t\t\tnewValue: value,\n\t\t\t\t\t\t\toldValue: oldState,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis._updateAttribute(prop, value);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\t// Slots\n\t\tif (slotsAreManaged) {\n\t\t\tconst slots = this.getMetadata().getSlots();\n\t\t\tfor (const [slotName, slotData] of Object.entries(slots)) { // eslint-disable-line\n\t\t\t\tif (!isValidPropertyName(slotName)) {\n\t\t\t\t\tconsole.warn(`\"${slotName}\" is not a valid property name. Use a name that does not collide with DOM APIs`); /* eslint-disable-line */\n\t\t\t\t}\n\n\t\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\t\tObject.defineProperty(proto, propertyName, {\n\t\t\t\t\tget() {\n\t\t\t\t\t\tif (this._state[propertyName] !== undefined) {\n\t\t\t\t\t\t\treturn this._state[propertyName];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t},\n\t\t\t\t\tset() {\n\t\t\t\t\t\tthrow new Error(\"Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)\");\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the metadata object for this UI5 Web Component Class\n\t * @protected\n\t */\n\tstatic get metadata() {\n\t\treturn {};\n\t}\n\n\t/**\n\t * Returns the CSS for this UI5 Web Component Class\n\t * @protected\n\t */\n\tstatic get styles() {\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * Returns the Static Area CSS for this UI5 Web Component Class\n\t * @protected\n\t */\n\tstatic get staticAreaStyles() {\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * Returns an array with the dependencies for this UI5 Web Component, which could be:\n\t *  - composed components (used in its shadow root or static area item)\n\t *  - slotted components that the component may need to communicate with\n\t *\n\t * @protected\n\t */\n\tstatic get dependencies() {\n\t\treturn [];\n\t}\n\n\t/**\n\t * Returns a list of the unique dependencies for this UI5 Web Component\n\t *\n\t * @public\n\t */\n\tstatic getUniqueDependencies() {\n\t\tif (!uniqueDependenciesCache.has(this)) {\n\t\t\tconst filtered = this.dependencies.filter((dep, index, deps) => deps.indexOf(dep) === index);\n\t\t\tuniqueDependenciesCache.set(this, filtered);\n\t\t}\n\n\t\treturn uniqueDependenciesCache.get(this);\n\t}\n\n\t/**\n\t * Returns a promise that resolves whenever all dependencies for this UI5 Web Component have resolved\n\t *\n\t * @returns {Promise<any[]>}\n\t */\n\tstatic whenDependenciesDefined() {\n\t\treturn Promise.all(this.getUniqueDependencies().map(dep => dep.define()));\n\t}\n\n\t/**\n\t * Hook that will be called upon custom element definition\n\t *\n\t * @protected\n\t * @returns {Promise<void>}\n\t */\n\tstatic async onDefine() {\n\t\treturn Promise.resolve();\n\t}\n\n\t/**\n\t * Registers a UI5 Web Component in the browser window object\n\t * @public\n\t * @returns {Promise<UI5Element>}\n\t */\n\tstatic async define() {\n\t\tawait boot();\n\n\t\tawait Promise.all([\n\t\t\tthis.whenDependenciesDefined(),\n\t\t\tthis.onDefine(),\n\t\t]);\n\n\t\tconst tag = this.getMetadata().getTag();\n\t\tconst altTag = this.getMetadata().getAltTag();\n\n\t\tconst definedLocally = isTagRegistered(tag);\n\t\tconst definedGlobally = customElements.get(tag);\n\n\t\tif (definedGlobally && !definedLocally) {\n\t\t\trecordTagRegistrationFailure(tag);\n\t\t} else if (!definedGlobally) {\n\t\t\tthis._generateAccessors();\n\t\t\tregisterTag(tag);\n\t\t\twindow.customElements.define(tag, this);\n\n\t\t\tif (altTag && !customElements.get(altTag)) {\n\t\t\t\tregisterTag(altTag);\n\t\t\t\twindow.customElements.define(altTag, getClassCopy(this, () => {\n\t\t\t\t\tconsole.log(`The ${altTag} tag is deprecated and will be removed in the next release, please use ${tag} instead.`); // eslint-disable-line\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns an instance of UI5ElementMetadata.js representing this UI5 Web Component's full metadata (its and its parents')\n\t * Note: not to be confused with the \"get metadata()\" method, which returns an object for this class's metadata only\n\t * @public\n\t * @returns {UI5ElementMetadata}\n\t */\n\tstatic getMetadata() {\n\t\tif (this.hasOwnProperty(\"_metadata\")) { // eslint-disable-line\n\t\t\treturn this._metadata;\n\t\t}\n\n\t\tconst metadataObjects = [this.metadata];\n\t\tlet klass = this; // eslint-disable-line\n\t\twhile (klass !== UI5Element) {\n\t\t\tklass = Object.getPrototypeOf(klass);\n\t\t\tmetadataObjects.unshift(klass.metadata);\n\t\t}\n\t\tconst mergedMetadata = merge({}, ...metadataObjects);\n\n\t\tthis._metadata = new UI5ElementMetadata(mergedMetadata);\n\t\treturn this._metadata;\n\t}\n}\n\nexport default UI5Element;\n","import { render } from \"lit-html\";\nimport {\n\thtml,\n\tsvg,\n\tunsafeStatic,\n} from \"lit-html/static.js\";\n\nconst litRender = (templateResult, domNode, styles, { host } = {}) => {\n\tif (styles) {\n\t\ttemplateResult = html`<style>${styles}</style>${templateResult}`;\n\t}\n\trender(templateResult, domNode, { host });\n};\n\nconst scopeTag = (tag, tags, suffix) => {\n\tconst resultTag = suffix && (tags || []).includes(tag) ? `${tag}-${suffix}` : tag;\n\treturn unsafeStatic(resultTag);\n};\n\nexport {\n\thtml,\n\tsvg,\n\tunsafeStatic,\n};\nexport { scopeTag };\nexport { repeat } from \"lit-html/directives/repeat.js\";\nexport { classMap } from \"lit-html/directives/class-map.js\";\nexport { styleMap } from \"lit-html/directives/style-map.js\";\nexport { unsafeHTML } from \"lit-html/directives/unsafe-html.js\";\n\nexport default litRender;\n","const rLocale = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;\n\nclass Locale {\n\tconstructor(sLocaleId) {\n\t\tconst aResult = rLocale.exec(sLocaleId.replace(/_/g, \"-\"));\n\t\tif (aResult === null) {\n\t\t\tthrow new Error(`The given language ${sLocaleId} does not adhere to BCP-47.`);\n\t\t}\n\t\tthis.sLocaleId = sLocaleId;\n\t\tthis.sLanguage = aResult[1] || null;\n\t\tthis.sScript = aResult[2] || null;\n\t\tthis.sRegion = aResult[3] || null;\n\t\tthis.sVariant = (aResult[4] && aResult[4].slice(1)) || null;\n\t\tthis.sExtension = (aResult[5] && aResult[5].slice(1)) || null;\n\t\tthis.sPrivateUse = aResult[6] || null;\n\t\tif (this.sLanguage) {\n\t\t\tthis.sLanguage = this.sLanguage.toLowerCase();\n\t\t}\n\t\tif (this.sScript) {\n\t\t\tthis.sScript = this.sScript.toLowerCase().replace(/^[a-z]/, s => {\n\t\t\t\treturn s.toUpperCase();\n\t\t\t});\n\t\t}\n\t\tif (this.sRegion) {\n\t\t\tthis.sRegion = this.sRegion.toUpperCase();\n\t\t}\n\t}\n\n\tgetLanguage() {\n\t\treturn this.sLanguage;\n\t}\n\n\tgetScript() {\n\t\treturn this.sScript;\n\t}\n\n\tgetRegion() {\n\t\treturn this.sRegion;\n\t}\n\n\tgetVariant() {\n\t\treturn this.sVariant;\n\t}\n\n\tgetVariantSubtags() {\n\t\treturn this.sVariant ? this.sVariant.split(\"-\") : [];\n\t}\n\n\tgetExtension() {\n\t\treturn this.sExtension;\n\t}\n\n\tgetExtensionSubtags() {\n\t\treturn this.sExtension ? this.sExtension.slice(2).split(\"-\") : [];\n\t}\n\n\tgetPrivateUse() {\n\t\treturn this.sPrivateUse;\n\t}\n\n\tgetPrivateUseSubtags() {\n\t\treturn this.sPrivateUse ? this.sPrivateUse.slice(2).split(\"-\") : [];\n\t}\n\n\thasPrivateUseSubtag(sSubtag) {\n\t\treturn this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;\n\t}\n\n\ttoString() {\n\t\tconst r = [this.sLanguage];\n\n\t\tif (this.sScript) {\n\t\t\tr.push(this.sScript);\n\t\t}\n\t\tif (this.sRegion) {\n\t\t\tr.push(this.sRegion);\n\t\t}\n\t\tif (this.sVariant) {\n\t\t\tr.push(this.sVariant);\n\t\t}\n\t\tif (this.sExtension) {\n\t\t\tr.push(this.sExtension);\n\t\t}\n\t\tif (this.sPrivateUse) {\n\t\t\tr.push(this.sPrivateUse);\n\t\t}\n\t\treturn r.join(\"-\");\n\t}\n}\n\nexport default Locale;\n","import detectNavigatorLanguage from \"../util/detectNavigatorLanguage.js\";\nimport { getLanguage as getConfigLanguage } from \"../config/Language.js\";\nimport Locale from \"./Locale.js\";\n\nconst cache = new Map();\n\nconst getLocaleInstance = lang => {\n\tif (!cache.has(lang)) {\n\t\tcache.set(lang, new Locale(lang));\n\t}\n\n\treturn cache.get(lang);\n};\n\nconst convertToLocaleOrNull = lang => {\n\ttry {\n\t\tif (lang && typeof lang === \"string\") {\n\t\t\treturn getLocaleInstance(lang);\n\t\t}\n\t} catch (e) {\n\t\t// ignore\n\t}\n};\n\n/**\n * Returns the locale based on the parameter or configured language Configuration#getLanguage\n * If no language has been configured - a new locale based on browser language is returned\n */\nconst getLocale = lang => {\n\tif (lang) {\n\t\treturn convertToLocaleOrNull(lang);\n\t}\n\n\tif (getConfigLanguage()) {\n\t\treturn getLocaleInstance(getConfigLanguage());\n\t}\n\n\treturn convertToLocaleOrNull(detectNavigatorLanguage());\n};\n\nexport default getLocale;\n","import { DEFAULT_LOCALE } from \"../generated/AssetParameters.js\";\n\nconst localeRegEX = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;\nconst SAPSupportabilityLocales = /(?:^|-)(saptrc|sappsd)(?:-|$)/i;\n\n/* Map for old language names for a few ISO639 codes. */\nconst M_ISO639_NEW_TO_OLD = {\n\t\"he\": \"iw\",\n\t\"yi\": \"ji\",\n\t\"id\": \"in\",\n\t\"sr\": \"sh\",\n};\n\n/**\n * Normalizes the given locale in BCP-47 syntax.\n * @param {string} locale locale to normalize\n * @returns {string} Normalized locale, \"undefined\" if the locale can't be normalized or the default locale, if no locale provided.\n */\nconst normalizeLocale = locale => {\n\tlet m;\n\n\tif (!locale) {\n\t\treturn DEFAULT_LOCALE;\n\t}\n\n\tif (typeof locale === \"string\" && (m = localeRegEX.exec(locale.replace(/_/g, \"-\")))) {/* eslint-disable-line */\n\t\tlet language = m[1].toLowerCase();\n\t\tlet region = m[3] ? m[3].toUpperCase() : undefined;\n\t\tconst script = m[2] ? m[2].toLowerCase() : undefined;\n\t\tconst variants = m[4] ? m[4].slice(1) : undefined;\n\t\tconst isPrivate = m[6];\n\n\t\tlanguage = M_ISO639_NEW_TO_OLD[language] || language;\n\n\t\t// recognize and convert special SAP supportability locales (overwrites m[]!)\n\t\tif ((isPrivate && (m = SAPSupportabilityLocales.exec(isPrivate))) /* eslint-disable-line */ ||\n\t\t\t(variants && (m = SAPSupportabilityLocales.exec(variants)))) {/* eslint-disable-line */\n\t\t\treturn `en_US_${m[1].toLowerCase()}`; // for now enforce en_US (agreed with SAP SLS)\n\t\t}\n\n\t\t// Chinese: when no region but a script is specified, use default region for each script\n\t\tif (language === \"zh\" && !region) {\n\t\t\tif (script === \"hans\") {\n\t\t\t\tregion = \"CN\";\n\t\t\t} else if (script === \"hant\") {\n\t\t\t\tregion = \"TW\";\n\t\t\t}\n\t\t}\n\n\t\treturn language + (region ? \"_\" + region + (variants ? \"_\" + variants.replace(\"-\", \"_\") : \"\") : \"\"); /* eslint-disable-line */\n\t}\n};\n\nexport default normalizeLocale;\n","import { DEFAULT_LOCALE } from \"../generated/AssetParameters.js\";\n\n/**\n * Calculates the next fallback locale for the given locale.\n *\n * @param {string} locale Locale string in Java format (underscores) or null\n * @returns {string} Next fallback Locale or \"en\" if no fallbacks found.\n */\nconst nextFallbackLocale = locale => {\n\tif (!locale) {\n\t\treturn DEFAULT_LOCALE;\n\t}\n\n\tif (locale === \"zh_HK\") {\n\t\treturn \"zh_TW\";\n\t}\n\n\t// if there are multiple segments (separated by underscores), remove the last one\n\tconst p = locale.lastIndexOf(\"_\");\n\tif (p >= 0) {\n\t\treturn locale.slice(0, p);\n\t}\n\n\t// for any language but the default, fallback to the default first before falling back to the 'raw' language (empty string)\n\treturn locale !== DEFAULT_LOCALE ? DEFAULT_LOCALE : \"\";\n};\n\nexport default nextFallbackLocale;\n","import getLocale from \"../locale/getLocale.js\";\nimport { attachLanguageChange } from \"../locale/languageChange.js\";\nimport normalizeLocale from \"../locale/normalizeLocale.js\";\nimport nextFallbackLocale from \"../locale/nextFallbackLocale.js\";\nimport { DEFAULT_LANGUAGE } from \"../generated/AssetParameters.js\";\nimport { getFetchDefaultLanguage } from \"../config/Language.js\";\n\n// contains package names for which the warning has been shown\nconst warningShown = new Set();\nconst reportedErrors = new Set();\n\nconst bundleData = new Map();\nconst bundlePromises = new Map();\nconst loaders = new Map();\n\n/**\n *\n * @param {string} packageName for which package this loader can fetch data\n * @param {function} loader async function that will be passed a localeId and should return a JSON object\n * @param {Array} localeIds Array of locale IDs that this loader can handle\n */\nconst registerI18nLoader = (packageName, localeId, loader) => {\n\t// register loader by key\n\tconst bundleKey = `${packageName}/${localeId}`;\n\tloaders.set(bundleKey, loader);\n};\n\nconst _setI18nBundleData = (packageName, data) => {\n\tbundleData.set(packageName, data);\n};\n\nconst getI18nBundleData = packageName => {\n\treturn bundleData.get(packageName);\n};\n\n/**\n * @public\n * @deprecated\n */\nconst registerI18nBundle = (_packageName, _bundle) => {\n\tthrow new Error(\"This method has been removed. Use `registerI18nLoader` instead.\");\n};\n\nconst _hasLoader = (packageName, localeId) => {\n\tconst bundleKey = `${packageName}/${localeId}`;\n\treturn loaders.has(bundleKey);\n};\n\n// load bundle over the network once\nconst _loadMessageBundleOnce = (packageName, localeId) => {\n\tconst bundleKey = `${packageName}/${localeId}`;\n\tconst loadMessageBundle = loaders.get(bundleKey);\n\n\tif (!bundlePromises.get(bundleKey)) {\n\t\tbundlePromises.set(bundleKey, loadMessageBundle(localeId));\n\t}\n\n\treturn bundlePromises.get(bundleKey);\n};\n\nconst _showAssetsWarningOnce = packageName => {\n\tif (!warningShown.has(packageName)) {\n\t\tconsole.warn(`[${packageName}]: Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */\n\t\t` Add \\`import \"${packageName}/dist/Assets.js\"\\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section \"Assets\" in the documentation for more information.`); /* eslint-disable-line */\n\t\twarningShown.add(packageName);\n\t}\n};\n\n/**\n * This method preforms the asynchronous task of fetching the actual text resources. It will fetch\n * each text resource over the network once (even for multiple calls to the same method).\n * It should be fully finished before the i18nBundle class is created in the webcomponents.\n * This method uses the bundle URLs that are populated by the <code>registerI18nBundle</code> method.\n * To simplify the usage, the synchronization of both methods happens internally for the same <code>bundleId</code>\n * @param {packageName} packageName the NPM package name\n * @public\n */\nconst fetchI18nBundle = async packageName => {\n\tconst language = getLocale().getLanguage();\n\tconst region = getLocale().getRegion();\n\tlet localeId = normalizeLocale(language + (region ? `-${region}` : ``));\n\n\twhile (localeId !== DEFAULT_LANGUAGE && !_hasLoader(packageName, localeId)) {\n\t\tlocaleId = nextFallbackLocale(localeId);\n\t}\n\n\t// use default language unless configured to always fetch it from the network\n\tconst fetchDefaultLanguage = getFetchDefaultLanguage();\n\tif (localeId === DEFAULT_LANGUAGE && !fetchDefaultLanguage) {\n\t\t_setI18nBundleData(packageName, null); // reset for the default language (if data was set for a previous language)\n\t\treturn;\n\t}\n\n\tif (!_hasLoader(packageName, localeId)) {\n\t\t_showAssetsWarningOnce(packageName);\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst data = await _loadMessageBundleOnce(packageName, localeId);\n\t\t_setI18nBundleData(packageName, data);\n\t} catch (e) {\n\t\tif (!reportedErrors.has(e.message)) {\n\t\t\treportedErrors.add(e.message);\n\t\t\tconsole.error(e.message); /* eslint-disable-line */\n\t\t}\n\t}\n};\n\n// When the language changes dynamically (the user calls setLanguage), re-fetch all previously fetched bundles\nattachLanguageChange(() => {\n\tconst allPackages = [...bundleData.keys()];\n\treturn Promise.all(allPackages.map(fetchI18nBundle));\n});\n\nexport {\n\tregisterI18nLoader,\n\tfetchI18nBundle,\n\tregisterI18nBundle,\n\tgetI18nBundleData,\n};\n","const messageFormatRegEX = /('')|'([^']+(?:''[^']*)*)(?:'|$)|\\{([0-9]+(?:\\s*,[^{}]*)?)\\}|[{}]/g;\n\nconst formatMessage = (text, values) => {\n\tvalues = values || [];\n\n\treturn text.replace(messageFormatRegEX, ($0, $1, $2, $3, offset) => {\n\t\tif ($1) {\n\t\t\treturn '\\''; /* eslint-disable-line */\n\t\t}\n\n\t\tif ($2) {\n\t\t\treturn $2.replace(/''/g, '\\''); /* eslint-disable-line */\n\t\t}\n\n\t\tif ($3) {\n\t\t\treturn String(values[parseInt($3)]);\n\t\t}\n\n\t\tthrow new Error(`[i18n]: pattern syntax error at pos ${offset}`);\n\t});\n};\n\nexport default formatMessage;\n","import { registerI18nLoader, fetchI18nBundle, getI18nBundleData } from \"./asset-registries/i18n.js\";\nimport formatMessage from \"./util/formatMessage.js\";\n\nconst I18nBundleInstances = new Map();\n\n/**\n * @class\n * @public\n */\nclass I18nBundle {\n\tconstructor(packageName) {\n\t\tthis.packageName = packageName;\n\t}\n\n\t/**\n\t * Returns a text in the currently loaded language\n\t *\n\t * @param {Object|String} textObj key/defaultText pair or just the key\n\t * @param params Values for the placeholders\n\t * @returns {*}\n\t */\n\tgetText(textObj, ...params) {\n\t\tif (typeof textObj === \"string\") {\n\t\t\ttextObj = { key: textObj, defaultText: textObj };\n\t\t}\n\n\t\tif (!textObj || !textObj.key) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst bundle = getI18nBundleData(this.packageName);\n\t\tif (bundle && !bundle[textObj.key]) {\n\t\t\tconsole.warn(`Key ${textObj.key} not found in the i18n bundle, the default text will be used`); // eslint-disable-line\n\t\t}\n\t\tconst messageText = bundle && bundle[textObj.key] ? bundle[textObj.key] : (textObj.defaultText || textObj.key);\n\n\t\treturn formatMessage(messageText, params);\n\t}\n}\n\nconst getI18nBundle = packageName => {\n\tif (I18nBundleInstances.has(packageName)) {\n\t\treturn I18nBundleInstances.get(packageName);\n\t}\n\n\tconst i18nBundle = new I18nBundle(packageName);\n\tI18nBundleInstances.set(packageName, i18nBundle);\n\treturn i18nBundle;\n};\n\nexport {\n\tregisterI18nLoader,\n\tfetchI18nBundle,\n\tgetI18nBundle,\n};\n","\n/* eslint no-unused-vars: 0 */\nimport { ifDefined } from \"lit-html/directives/if-defined.js\";\nimport { html, svg, repeat, classMap, styleMap, unsafeHTML, scopeTag } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\n\nconst main = (context, tags, suffix) => {\n\tconst block0 = (context) => { return html`<div class=\"${classMap(context.classes)}\" dir=\"${ifDefined(context.effectiveDir)}\" role=\"region\" aria-labelledby=\"${ifDefined(context.ariaLabelledByCard)}\">${ context.hasHeader ? block1(context) : undefined }<div role=\"group\" aria-label=\"${ifDefined(context.ariaCardContentLabel)}\"><slot></slot></div><span id=\"${ifDefined(context._id)}-desc\" class=\"ui5-hidden-text\">${ifDefined(context.ariaCardRoleDescription)}</span></div>`; };\nconst block1 = (context) => { return html`<div class=\"ui5-card-header-root\"><slot name=\"header\"></slot></div>`; };\n\n\n\treturn block0(context);\n};\n\nexport default main;","import getSingletonElementInstance from \"./util/getSingletonElementInstance.js\";\n\nconst getSharedResourcesInstance = () => getSingletonElementInstance(\"ui5-shared-resources\", document.head);\n\n/**\n * Use this method to initialize/get resources that you would like to be shared among UI5 Web Components runtime instances.\n * The data will be accessed via a singleton \"ui5-shared-resources\" HTML element in the \"head\" element of the page.\n *\n * @public\n * @param namespace Unique ID of the resource, may contain \".\" to denote hierarchy\n * @param initialValue Object or primitive that will be used as an initial value if the resource does not exist\n * @returns {*}\n */\nconst getSharedResource = (namespace, initialValue) => {\n\tconst parts = namespace.split(\".\");\n\tlet current = getSharedResourcesInstance();\n\n\tfor (let i = 0; i < parts.length; i++) {\n\t\tconst part = parts[i];\n\t\tconst lastPart = i === parts.length - 1;\n\t\tif (!Object.prototype.hasOwnProperty.call(current, part)) {\n\t\t\tcurrent[part] = lastPart ? initialValue : {};\n\t\t}\n\t\tcurrent = current[part];\n\t}\n\n\treturn current;\n};\n\nexport default getSharedResource;\n","import getSharedResource from \"../getSharedResource.js\";\n\nconst loaders = new Map();\nconst registry = getSharedResource(\"SVGIcons.registry\", new Map());\nconst iconCollectionPromises = getSharedResource(\"SVGIcons.promises\", new Map());\n\nconst ICON_NOT_FOUND = \"ICON_NOT_FOUND\";\nconst DEFAULT_COLLECTION = \"SAP-icons\";\n\n/**\n * @deprecated\n */\nconst registerIconBundle = async (collectionName, bundleData) => {\n\tthrow new Error(\"This method has been removed. Use `registerIconLoader` instead.\");\n};\n\nconst registerIconLoader = async (collectionName, loader) => {\n\tloaders.set(collectionName, loader);\n};\n\nconst _loadIconCollectionOnce = async collectionName => {\n\tif (!iconCollectionPromises.has(collectionName)) {\n\t\tif (!loaders.has(collectionName)) {\n\t\t\tthrow new Error(`No loader registered for the ${collectionName} icons collection. Probably you forgot to import the \"AllIcons.js\" module for the respective package.`);\n\t\t}\n\t\tconst loadIcons = loaders.get(collectionName);\n\t\ticonCollectionPromises.set(collectionName, loadIcons(collectionName));\n\t}\n\n\treturn iconCollectionPromises.get(collectionName);\n};\n\nconst _fillRegistry = bundleData => {\n\tObject.keys(bundleData.data).forEach(iconName => {\n\t\tconst iconData = bundleData.data[iconName];\n\n\t\tregisterIcon(iconName, {\n\t\t\tpathData: iconData.path,\n\t\t\tltr: iconData.ltr,\n\t\t\taccData: iconData.acc,\n\t\t\tcollection: bundleData.collection,\n\t\t\tpackageName: bundleData.packageName,\n\t\t });\n\t});\n};\n\n// set\nconst registerIcon = (name, { pathData, ltr, accData, collection, packageName } = {}) => { // eslint-disable-line\n\tif (!collection) {\n\t\tcollection = DEFAULT_COLLECTION;\n\t}\n\n\tconst key = `${collection}/${name}`;\n\tregistry.set(key, {\n\t\tpathData,\n\t\tltr,\n\t\taccData,\n\t\tpackageName,\n\t});\n};\n\nconst _parseName = name => {\n\t// silently support ui5-compatible URIs\n\tif (name.startsWith(\"sap-icon://\")) {\n\t\tname = name.replace(\"sap-icon://\", \"\");\n\t}\n\n\tlet collection;\n\t[name, collection] = name.split(\"/\").reverse();\n\tcollection = collection || DEFAULT_COLLECTION;\n\t// hardcoded alias in case icon explorer is used, resolve `SAP-icons-TNT` to `tnt`\n\t// aliases can be made a feature in the future if more collections need it or more aliases are needed.\n\tif (collection === \"SAP-icons-TNT\") {\n\t\tcollection = \"tnt\";\n\t}\n\tconst registryKey = `${collection}/${name}`;\n\treturn { name, collection, registryKey };\n};\n\nconst getIconDataSync = nameProp => {\n\tconst { registryKey } = _parseName(nameProp);\n\treturn registry.get(registryKey);\n};\n\nconst getIconData = async nameProp => {\n\tconst { collection, registryKey } = _parseName(nameProp);\n\n\tlet iconData = ICON_NOT_FOUND;\n\ttry {\n\t\ticonData = await _loadIconCollectionOnce(collection);\n\t} catch (e) {\n\t\tconsole.error(e.message); /* eslint-disable-line */\n\t}\n\n\tif (iconData === ICON_NOT_FOUND) {\n\t\treturn iconData;\n\t}\n\n\tif (!registry.has(registryKey)) {\n\t\t// not filled by another await. many getters will await on the same loader, but fill only once\n\t\t_fillRegistry(iconData);\n\t}\n\treturn registry.get(registryKey);\n};\n\n// test page usage only\nconst _getRegisteredNames = async () => {\n\t// fetch one icon of each collection to trigger the bundle load\n\tawait getIconData(\"edit\");\n\tawait getIconData(\"tnt/arrow\");\n\treturn Array.from(registry.keys());\n};\n\nexport {\n\tregisterIconBundle,\n\tregisterIconLoader,\n\tgetIconData,\n\tgetIconDataSync,\n\tregisterIcon,\n\t_getRegisteredNames,\n};\n","const KeyCodes = {\n\tBACKSPACE: 8,\n\tTAB: 9,\n\tENTER: 13,\n\tSHIFT: 16,\n\tCONTROL: 17,\n\tALT: 18,\n\tBREAK: 19,\n\tCAPS_LOCK: 20,\n\tESCAPE: 27,\n\tSPACE: 32,\n\tPAGE_UP: 33,\n\tPAGE_DOWN: 34,\n\tEND: 35,\n\tHOME: 36,\n\tARROW_LEFT: 37,\n\tARROW_UP: 38,\n\tARROW_RIGHT: 39,\n\tARROW_DOWN: 40,\n\tPRINT: 44,\n\tINSERT: 45,\n\tDELETE: 46,\n\tDIGIT_0: 48,\n\tDIGIT_1: 49,\n\tDIGIT_2: 50,\n\tDIGIT_3: 51,\n\tDIGIT_4: 52,\n\tDIGIT_5: 53,\n\tDIGIT_6: 54,\n\tDIGIT_7: 55,\n\tDIGIT_8: 56,\n\tDIGIT_9: 57,\n\tA: 65,\n\tB: 66,\n\tC: 67,\n\tD: 68,\n\tE: 69,\n\tF: 70,\n\tG: 71,\n\tH: 72,\n\tI: 73,\n\tJ: 74,\n\tK: 75,\n\tL: 76,\n\tM: 77,\n\tN: 78,\n\tO: 79,\n\tP: 80,\n\tQ: 81,\n\tR: 82,\n\tS: 83,\n\tT: 84,\n\tU: 85,\n\tV: 86,\n\tW: 87,\n\tX: 88,\n\tY: 89,\n\tZ: 90,\n\tWINDOWS: 91,\n\tCONTEXT_MENU: 93,\n\tTURN_OFF: 94,\n\tSLEEP: 95,\n\tNUMPAD_0: 96,\n\tNUMPAD_1: 97,\n\tNUMPAD_2: 98,\n\tNUMPAD_3: 99,\n\tNUMPAD_4: 100,\n\tNUMPAD_5: 101,\n\tNUMPAD_6: 102,\n\tNUMPAD_7: 103,\n\tNUMPAD_8: 104,\n\tNUMPAD_9: 105,\n\tNUMPAD_ASTERISK: 106,\n\tNUMPAD_PLUS: 107,\n\tNUMPAD_MINUS: 109,\n\tNUMPAD_COMMA: 110,\n\tNUMPAD_SLASH: 111,\n\tF1: 112,\n\tF2: 113,\n\tF3: 114,\n\tF4: 115,\n\tF5: 116,\n\tF6: 117,\n\tF7: 118,\n\tF8: 119,\n\tF9: 120,\n\tF10: 121,\n\tF11: 122,\n\tF12: 123,\n\tNUM_LOCK: 144,\n\tSCROLL_LOCK: 145,\n\tOPEN_BRACKET: 186,\n\tPLUS: 187,\n\tCOMMA: 188,\n\tSLASH: 189,\n\tDOT: 190,\n\tPIPE: 191,\n\tSEMICOLON: 192,\n\tMINUS: 219,\n\tGREAT_ACCENT: 220,\n\tEQUALS: 221,\n\tSINGLE_QUOTE: 222,\n\tBACKSLASH: 226,\n};\n\nconst isEnter = event => (event.key ? event.key === \"Enter\" : event.keyCode === KeyCodes.ENTER) && !hasModifierKeys(event);\n\nconst isEnterShift = event => (event.key ? event.key === \"Enter\" : event.keyCode === KeyCodes.ENTER) && checkModifierKeys(event, false, false, true);\n\nconst isSpace = event => (event.key ? (event.key === \"Spacebar\" || event.key === \" \") : event.keyCode === KeyCodes.SPACE) && !hasModifierKeys(event);\n\nconst isSpaceShift = event => (event.key ? (event.key === \"Spacebar\" || event.key === \" \") : event.keyCode === KeyCodes.SPACE) && checkModifierKeys(event, false, false, true);\n\nconst isLeft = event => (event.key ? (event.key === \"ArrowLeft\" || event.key === \"Left\") : event.keyCode === KeyCodes.ARROW_LEFT) && !hasModifierKeys(event);\n\nconst isRight = event => (event.key ? (event.key === \"ArrowRight\" || event.key === \"Right\") : event.keyCode === KeyCodes.ARROW_RIGHT) && !hasModifierKeys(event);\n\nconst isUp = event => (event.key ? (event.key === \"ArrowUp\" || event.key === \"Up\") : event.keyCode === KeyCodes.ARROW_UP) && !hasModifierKeys(event);\n\nconst isDown = event => (event.key ? (event.key === \"ArrowDown\" || event.key === \"Down\") : event.keyCode === KeyCodes.ARROW_DOWN) && !hasModifierKeys(event);\n\nconst isLeftCtrl = event => (event.key ? (event.key === \"ArrowLeft\" || event.key === \"Left\") : event.keyCode === KeyCodes.ARROW_LEFT) && checkModifierKeys(event, true, false, false);\n\nconst isRightCtrl = event => (event.key ? (event.key === \"ArrowRight\" || event.key === \"Right\") : event.keyCode === KeyCodes.ARROW_RIGHT) && checkModifierKeys(event, true, false, false);\n\nconst isUpCtrl = event => (event.key ? (event.key === \"ArrowUp\" || event.key === \"Up\") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, true, false, false);\n\nconst isDownCtrl = event => (event.key ? (event.key === \"ArrowDown\" || event.key === \"Down\") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, false, false);\n\nconst isUpShift = event => (event.key ? (event.key === \"ArrowUp\" || event.key === \"Up\") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, false, false, true);\n\nconst isDownShift = event => (event.key ? (event.key === \"ArrowDown\" || event.key === \"Down\") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, false, false, true);\n\nconst isLeftShift = event => (event.key ? (event.key === \"ArrowLeft\" || event.key === \"Left\") : event.keyCode === KeyCodes.ARROW_LEFT) && checkModifierKeys(event, false, false, true);\n\nconst isRightShift = event => (event.key ? (event.key === \"ArrowRight\" || event.key === \"Right\") : event.keyCode === KeyCodes.ARROW_RIGHT) && checkModifierKeys(event, false, false, true);\n\nconst isUpShiftCtrl = event => (event.key ? (event.key === \"ArrowUp\" || event.key === \"Up\") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, true, false, true);\n\nconst isDownShiftCtrl = event => (event.key ? (event.key === \"ArrowDown\" || event.key === \"Down\") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, false, true);\n\nconst isHome = event => (event.key ? event.key === \"Home\" : event.keyCode === KeyCodes.HOME) && !hasModifierKeys(event);\n\nconst isEnd = event => (event.key ? event.key === \"End\" : event.keyCode === KeyCodes.END) && !hasModifierKeys(event);\n\nconst isHomeCtrl = event => (event.key ? event.key === \"Home\" : event.keyCode === KeyCodes.HOME) && checkModifierKeys(event, true, false, false);\n\nconst isEndCtrl = event => (event.key ? event.key === \"End\" : event.keyCode === KeyCodes.END) && checkModifierKeys(event, true, false, false);\n\nconst isEscape = event => (event.key ? event.key === \"Escape\" || event.key === \"Esc\" : event.keyCode === KeyCodes.ESCAPE) && !hasModifierKeys(event);\n\nconst isTabNext = event => (event.key ? event.key === \"Tab\" : event.keyCode === KeyCodes.TAB) && !hasModifierKeys(event);\n\nconst isTabPrevious = event => (event.key ? event.key === \"Tab\" : event.keyCode === KeyCodes.TAB) && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ false, /* Shift */ true);\n\nconst isBackSpace = event => (event.key ? event.key === \"Backspace\" : event.keyCode === KeyCodes.BACKSPACE) && !hasModifierKeys(event);\n\nconst isDelete = event => (event.key ? event.key === \"Delete\" : event.keyCode === KeyCodes.DELETE) && !hasModifierKeys(event);\n\nconst isPageUp = event => (event.key ? event.key === \"PageUp\" : event.keyCode === KeyCodes.PAGE_UP) && !hasModifierKeys(event);\n\nconst isPageDown = event => (event.key ? event.key === \"PageDown\" : event.keyCode === KeyCodes.PAGE_DOWN) && !hasModifierKeys(event);\n\nconst isPageUpShift = event => (event.key ? event.key === \"PageUp\" : event.keyCode === KeyCodes.PAGE_UP) && checkModifierKeys(event, false, false, true);\n\nconst isPageDownShift = event => (event.key ? event.key === \"PageDown\" : event.keyCode === KeyCodes.PAGE_DOWN) && checkModifierKeys(event, false, false, true);\n\nconst isPageUpShiftCtrl = event => (event.key ? event.key === \"PageUp\" : event.keyCode === KeyCodes.PAGE_UP) && checkModifierKeys(event, true, false, true);\n\nconst isPageDownShiftCtrl = event => (event.key ? event.key === \"PageDown\" : event.keyCode === KeyCodes.PAGE_DOWN) && checkModifierKeys(event, true, false, true);\n\nconst isPlus = event => (event.key ? event.key === \"+\" : event.keyCode === KeyCodes.PLUS) || (event.keyCode === KeyCodes.NUMPAD_PLUS && !hasModifierKeys(event));\n\nconst isMinus = event => (event.key ? event.key === \"-\" : event.keyCode === KeyCodes.MINUS) || (event.keyCode === KeyCodes.NUMPAD_MINUS && !hasModifierKeys(event));\n\nconst isShow = event => {\n\tif (event.key) {\n\t\treturn isF4(event) || isShowByArrows(event);\n\t}\n\n\treturn (event.keyCode === KeyCodes.F4 && !hasModifierKeys(event)) || (event.keyCode === KeyCodes.ARROW_DOWN && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ true, /* Shift */ false));\n};\n\nconst isF4 = event => {\n\treturn event.key === \"F4\" && !hasModifierKeys(event);\n};\n\nconst isF4Shift = event => (event.key ? event.key === \"F4\" : event.keyCode === KeyCodes.F4) && checkModifierKeys(event, false, false, true);\n\nconst isShowByArrows = event => {\n\treturn ((event.key === \"ArrowDown\" || event.key === \"Down\") || (event.key === \"ArrowUp\" || event.key === \"Up\")) && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ true, /* Shift */ false);\n};\n\nconst hasModifierKeys = event => event.shiftKey || event.altKey || getCtrlKey(event);\n\nconst getCtrlKey = event => !!(event.metaKey || event.ctrlKey); // double negation doesn't have effect on boolean but ensures null and undefined are equivalent to false.\n\nconst checkModifierKeys = (event, bCtrlKey, bAltKey, bShiftKey) => event.shiftKey === bShiftKey && event.altKey === bAltKey && getCtrlKey(event) === bCtrlKey;\n\nexport {\n\tisEnter,\n\tisEnterShift,\n\tisSpace,\n\tisSpaceShift,\n\tisLeft,\n\tisRight,\n\tisUp,\n\tisDown,\n\tisLeftCtrl,\n\tisRightCtrl,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisUpShift,\n\tisDownShift,\n\tisLeftShift,\n\tisRightShift,\n\tisUpShiftCtrl,\n\tisDownShiftCtrl,\n\tisHome,\n\tisEnd,\n\tisPlus,\n\tisMinus,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisEscape,\n\tisTabNext,\n\tisTabPrevious,\n\tisBackSpace,\n\tisDelete,\n\tisShow,\n\tisF4,\n\tisF4Shift,\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisPageUpShiftCtrl,\n\tisPageDownShiftCtrl,\n};\n","\n/* eslint no-unused-vars: 0 */\nimport { ifDefined } from \"lit-html/directives/if-defined.js\";\nimport { html, svg, repeat, classMap, styleMap, unsafeHTML, scopeTag } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\n\nconst main = (context, tags, suffix) => {\n\tconst block0 = (context) => { return html`<svg class=\"ui5-icon-root\" tabindex=\"${ifDefined(context.tabIndex)}\" dir=\"${ifDefined(context._dir)}\" viewBox=\"0 0 512 512\" role=\"${ifDefined(context.effectiveAccessibleRole)}\" focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\" aria-label=\"${ifDefined(context.effectiveAccessibleName)}\" aria-hidden=${ifDefined(context.effectiveAriaHidden)} xmlns=\"http://www.w3.org/2000/svg\" @focusin=${context._onfocusin} @focusout=${context._onfocusout} @keydown=${context._onkeydown} @keyup=${context._onkeyup} @click=${context._onclick}>${blockSVG1(context)}</svg>`; };\nconst block1 = (context) => { return svg`<title id=\"${ifDefined(context._id)}-tooltip\">${ifDefined(context.effectiveAccessibleName)}</title>`; };\n\nconst blockSVG1 = (context) => {return svg`${ context.hasIconTooltip ? block1(context) : undefined }<g role=\"presentation\"><path d=\"${ifDefined(context.pathData)}\"/></g>`};\n\n\treturn block0(context);\n};\n\nexport default main;","export default \":root{--sapBrandColor:#0a6ed1;--sapHighlightColor:#0854a0;--sapBaseColor:#fff;--sapShellColor:#354a5f;--sapBackgroundColor:#f7f7f7;--sapFontFamily:\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontLightFamily:\\\"72-Light\\\",\\\"72-Lightfull\\\",\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontBoldFamily:\\\"72-Bold\\\",\\\"72-Boldfull\\\",\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontHeaderFamily:\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontSize:.875rem;--sapFontSmallSize:.75rem;--sapFontLargeSize:1rem;--sapFontHeader1Size:2.25rem;--sapFontHeader2Size:1.5rem;--sapFontHeader3Size:1.25rem;--sapFontHeader4Size:1.125rem;--sapFontHeader5Size:1rem;--sapFontHeader6Size:.875rem;--sapTextColor:#32363a;--sapLinkColor:#0a6ed1;--sapLink_Hover_Color:#0854a0;--sapLink_Active_Color:#0a6ed1;--sapLink_Visited_Color:#0a6ed1;--sapLink_InvertedColor:#d3e8fd;--sapLink_SubtleColor:#074888;--sapCompanyLogo:none;--sapBackgroundImage:none;--sapBackgroundImageOpacity:1.0;--sapBackgroundImageRepeat:false;--sapSelectedColor:#0854a0;--sapActiveColor:#0854a0;--sapHighlightTextColor:#fff;--sapTitleColor:#32363a;--sapNegativeColor:#b00;--sapCriticalColor:#df6e0c;--sapPositiveColor:#107e3e;--sapInformativeColor:#0a6ed1;--sapNeutralColor:#6a6d70;--sapNegativeElementColor:#b00;--sapCriticalElementColor:#df6e0c;--sapPositiveElementColor:#107e3e;--sapInformativeElementColor:#0a6ed1;--sapNeutralElementColor:#6a6d70;--sapNegativeTextColor:#b00;--sapPositiveTextColor:#107e3e;--sapCriticalTextColor:#df6e0c;--sapInformativeTextColor:#0a6ed1;--sapNeutralTextColor:#6a6d70;--sapNeutralBorderColor:#6a6d70;--sapErrorColor:#b00;--sapErrorBorderColor:#b00;--sapWarningColor:#df6e0c;--sapWarningBorderColor:#df6e0c;--sapSuccessColor:#107e3e;--sapSuccessBorderColor:#107e3e;--sapInformationColor:#0a6ed1;--sapInformationBorderColor:#0a6ed1;--sapErrorBackground:#ffebeb;--sapWarningBackground:#fef7f1;--sapSuccessBackground:#f1fdf6;--sapInformationBackground:#f5faff;--sapNeutralBackground:#f4f4f4;--sapIndicationColor_1:#800;--sapIndicationColor_1_Hover_Background:#6f0000;--sapIndicationColor_1_Active_Background:#500;--sapIndicationColor_1_TextColor:#fff;--sapIndicationColor_2:#b00;--sapIndicationColor_2_Hover_Background:#a20000;--sapIndicationColor_2_Active_Background:#800;--sapIndicationColor_2_TextColor:#fff;--sapIndicationColor_3:#df6e0c;--sapIndicationColor_3_Hover_Background:#d0670b;--sapIndicationColor_3_Active_Background:#c2600a;--sapIndicationColor_3_TextColor:#fff;--sapIndicationColor_4:#107e3e;--sapIndicationColor_4_Hover_Background:#0d6733;--sapIndicationColor_4_Active_Background:#0a5128;--sapIndicationColor_4_TextColor:#fff;--sapIndicationColor_5:#0a6ed1;--sapIndicationColor_5_Hover_Background:#0961b9;--sapIndicationColor_5_Active_Background:#0854a0;--sapIndicationColor_5_TextColor:#fff;--sapIndicationColor_6:#0f828f;--sapIndicationColor_6_Hover_Background:#0d6d78;--sapIndicationColor_6_Active_Background:#0a5861;--sapIndicationColor_6_TextColor:#fff;--sapIndicationColor_7:#925ace;--sapIndicationColor_7_Hover_Background:#8546c8;--sapIndicationColor_7_Active_Background:#7838bd;--sapIndicationColor_7_TextColor:#fff;--sapIndicationColor_8:#c0399f;--sapIndicationColor_8_Hover_Background:#ac338f;--sapIndicationColor_8_Active_Background:#992d7e;--sapIndicationColor_8_TextColor:#fff;--sapElement_LineHeight:2.75rem;--sapElement_Height:2.25rem;--sapElement_BorderWidth:.0625rem;--sapElement_BorderCornerRadius:.25rem;--sapElement_Compact_LineHeight:2rem;--sapElement_Compact_Height:1.625rem;--sapElement_Condensed_LineHeight:1.5rem;--sapElement_Condensed_Height:1.375rem;--sapContent_LineHeight:1.4;--sapContent_IconHeight:1rem;--sapContent_IconColor:#0854a0;--sapContent_ContrastIconColor:#fff;--sapContent_NonInteractiveIconColor:#6a6d70;--sapContent_MarkerIconColor:#286eb4;--sapContent_MarkerTextColor:#0e7581;--sapContent_ImagePlaceholderBackground:#ccc;--sapContent_ImagePlaceholderForegroundColor:#fff;--sapContent_RatedColor:#d08014;--sapContent_UnratedColor:#89919a;--sapContent_FocusColor:#000;--sapContent_FocusStyle:dotted;--sapContent_FocusWidth:.0625rem;--sapContent_ContrastFocusColor:#fff;--sapContent_ShadowColor:#000;--sapContent_ContrastShadowColor:#fff;--sapContent_Shadow0:0 0 0 0.0625rem rgba(0,0,0,0.1),0 0.125rem 0.5rem 0 rgba(0,0,0,0.1);--sapContent_Shadow1:0 0 0 0.0625rem rgba(0,0,0,0.42),0 0.125rem 0.5rem 0 rgba(0,0,0,0.3);--sapContent_Shadow2:0 0 0 0.0625rem rgba(0,0,0,0.42),0 0.625rem 1.875rem 0 rgba(0,0,0,0.3);--sapContent_Shadow3:0 0 0 0.0625rem rgba(0,0,0,0.42),0 1.25rem 5rem 0 rgba(0,0,0,0.3);--sapContent_TextShadow:0 0 0.125rem #fff;--sapContent_ContrastTextShadow:0 0 0.0625rem rgba(0,0,0,0.7);--sapContent_HeaderShadow:0 0 0.25rem 0 rgba(0,0,0,0.15),inset 0 -0.0625rem 0 0 #d9d9d9;--sapContent_SearchHighlightColor:#d4f7db;--sapContent_HelpColor:#3f8600;--sapContent_LabelColor:#6a6d70;--sapContent_MonospaceFontFamily:\\\"72Mono\\\",\\\"72Monofull\\\",lucida console,monospace;--sapContent_MonospaceBoldFontFamily:\\\"72Mono-Bold\\\",\\\"72Mono-Boldfull\\\",lucida console,monospace;--sapContent_IconFontFamily:\\\"SAP-icons\\\";--sapContent_DisabledTextColor:rgba(50,54,58,0.6);--sapContent_DisabledOpacity:0.4;--sapContent_ContrastTextThreshold:0.65;--sapContent_ContrastTextColor:#fff;--sapContent_ForegroundColor:#efefef;--sapContent_ForegroundBorderColor:#89919a;--sapContent_ForegroundTextColor:#32363a;--sapContent_BadgeBackground:#d04343;--sapContent_BadgeTextColor:#fff;--sapContent_Placeholderloading_Background:#ccc;--sapContent_Placeholderloading_Gradient:linear-gradient(90deg,#ccc 0%,#ccc 20%,#999 50%,#ccc 80%,#ccc);--sapContent_DragAndDropActiveColor:#0854a0;--sapContent_Selected_Background:#0854a0;--sapContent_Selected_TextColor:#fff;--sapContent_Selected_Hover_Background:#095caf;--sapContent_Selected_ForegroundColor:#0854a0;--sapContent_Illustrative_Color1:#0a6ed1;--sapContent_Illustrative_Color2:#72b5f8;--sapContent_Illustrative_Color3:#ffba10;--sapContent_Illustrative_Color4:#4a5055;--sapContent_Illustrative_Color5:#9da4aa;--sapContent_Illustrative_Color6:#c6cace;--sapContent_Illustrative_Color7:#e7e9ea;--sapContent_Illustrative_Color8:#fff;--sapShell_Background:#edeff0;--sapShell_BackgroundImage:linear-gradient(180deg,#dfe3e4,#f3f4f5);--sapShell_BackgroundGradient:linear-gradient(180deg,#dfe3e4,#f3f4f5);--sapShell_BackgroundImageOpacity:1.0;--sapShell_BackgroundImageRepeat:false;--sapShell_BorderColor:#354a5f;--sapShell_TextColor:#fff;--sapShell_InteractiveTextColor:#d1e8ff;--sapShell_InteractiveBorderColor:#7996b4;--sapShell_GroupTitleTextColor:#32363a;--sapShell_GroupTitleTextShadow:0 0 0.125rem #fff;--sapShell_Hover_Background:#283848;--sapShell_Active_Background:#23303e;--sapShell_Active_TextColor:#fff;--sapShell_Selected_Background:#23303e;--sapShell_Selected_TextColor:#fff;--sapShell_Selected_Hover_Background:#23303e;--sapShell_Favicon:none;--sapShell_Navigation_Background:#354a5f;--sapShell_Navigation_SelectedColor:#d1e8ff;--sapShell_Navigation_Selected_TextColor:#d1e8ff;--sapShell_Navigation_TextColor:#fff;--sapShell_Navigation_Hover_Background:#283848;--sapShell_Navigation_Active_Background:#23303e;--sapShell_Navigation_Active_TextColor:#fff;--sapShell_Shadow:0 0 0.25rem 0 rgba(0,0,0,0.4),inset 0 -0.0625rem 0 0 rgba(0,0,0,0.2);--sapShell_NegativeColor:#f88;--sapShell_CriticalColor:#f8b67d;--sapShell_PositiveColor:#abe2c2;--sapShell_InformativeColor:#b1d6fb;--sapShell_NeutralColor:#d4d6d7;--sapButton_BorderWidth:.0625rem;--sapButton_BorderCornerRadius:.25rem;--sapButton_Background:#fff;--sapButton_BorderColor:#0854a0;--sapButton_TextColor:#0854a0;--sapButton_Hover_Background:#ebf5fe;--sapButton_Hover_BorderColor:#0854a0;--sapButton_Hover_TextColor:#0854a0;--sapButton_IconColor:#0854a0;--sapButton_Active_Background:#0854a0;--sapButton_Active_BorderColor:#0854a0;--sapButton_Active_TextColor:#fff;--sapButton_Emphasized_Background:#0a6ed1;--sapButton_Emphasized_BorderColor:#0a6ed1;--sapButton_Emphasized_TextColor:#fff;--sapButton_Emphasized_Hover_Background:#085caf;--sapButton_Emphasized_Hover_BorderColor:#085caf;--sapButton_Emphasized_Hover_TextColor:#fff;--sapButton_Emphasized_Active_Background:#0854a0;--sapButton_Emphasized_Active_BorderColor:#0854a0;--sapButton_Emphasized_Active_TextColor:#fff;--sapButton_Emphasized_TextShadow:transparent;--sapButton_Reject_Background:#fff;--sapButton_Reject_BorderColor:#b00;--sapButton_Reject_Hover_Background:#ffebeb;--sapButton_Reject_Hover_BorderColor:#b00;--sapButton_Reject_Hover_TextColor:#b00;--sapButton_Reject_Active_Background:#a20000;--sapButton_Reject_Active_BorderColor:#a20000;--sapButton_Reject_Active_TextColor:#fff;--sapButton_Reject_TextColor:#b00;--sapButton_Reject_Selected_Background:#a20000;--sapButton_Reject_Selected_BorderColor:#a20000;--sapButton_Reject_Selected_TextColor:#fff;--sapButton_Reject_Selected_Hover_Background:#b00;--sapButton_Reject_Selected_Hover_BorderColor:#b00;--sapButton_Accept_Background:#fff;--sapButton_Accept_BorderColor:#107e3e;--sapButton_Accept_Hover_Background:#f1fdf6;--sapButton_Accept_Hover_BorderColor:#107e3e;--sapButton_Accept_Hover_TextColor:#107e3e;--sapButton_Accept_Active_Background:#0d6733;--sapButton_Accept_Active_BorderColor:#0d6733;--sapButton_Accept_Active_TextColor:#fff;--sapButton_Accept_TextColor:#107e3e;--sapButton_Accept_Selected_Background:#0d6733;--sapButton_Accept_Selected_BorderColor:#0d6733;--sapButton_Accept_Selected_TextColor:#fff;--sapButton_Accept_Selected_Hover_Background:#107e3e;--sapButton_Accept_Selected_Hover_BorderColor:#107e3e;--sapButton_Lite_Background:transparent;--sapButton_Lite_BorderColor:transparent;--sapButton_Lite_TextColor:#0854a0;--sapButton_Lite_Hover_Background:#ebf5fe;--sapButton_Lite_Hover_BorderColor:#0854a0;--sapButton_Lite_Hover_TextColor:#0854a0;--sapButton_Lite_Active_Background:#0854a0;--sapButton_Lite_Active_BorderColor:#0854a0;--sapButton_Selected_Background:#0854a0;--sapButton_Selected_BorderColor:#0854a0;--sapButton_Selected_TextColor:#fff;--sapButton_Selected_Hover_Background:#095caf;--sapButton_Selected_Hover_BorderColor:#095caf;--sapButton_Attention_Background:#fff;--sapButton_Attention_BorderColor:#df6e0c;--sapButton_Attention_TextColor:#32363a;--sapButton_Attention_Hover_Background:#fef7f1;--sapButton_Attention_Hover_BorderColor:#df6e0c;--sapButton_Attention_Hover_TextColor:#32363a;--sapButton_Attention_Active_Background:#f3801c;--sapButton_Attention_Active_BorderColor:#f3801c;--sapButton_Attention_Active_TextColor:#fff;--sapButton_Attention_Selected_Background:#f3801c;--sapButton_Attention_Selected_BorderColor:#f3801c;--sapButton_Attention_Selected_TextColor:#fff;--sapButton_Attention_Selected_Hover_Background:#f48e34;--sapButton_Attention_Selected_Hover_BorderColor:#f48e34;--sapButton_Negative_Background:#b00;--sapButton_Negative_BorderColor:#b00;--sapButton_Negative_TextColor:#fff;--sapButton_Negative_Hover_Background:#970000;--sapButton_Negative_Hover_BorderColor:#970000;--sapButton_Negative_Hover_TextColor:#fff;--sapButton_Negative_Active_Background:#800;--sapButton_Negative_Active_BorderColor:#800;--sapButton_Negative_Active_TextColor:#fff;--sapButton_Critical_Background:#df6e0c;--sapButton_Critical_BorderColor:#df6e0c;--sapButton_Critical_TextColor:#fff;--sapButton_Critical_Hover_Background:#f3801c;--sapButton_Critical_Hover_BorderColor:#f3801c;--sapButton_Critical_Hover_TextColor:#fff;--sapButton_Critical_Active_Background:#f5933e;--sapButton_Critical_Active_BorderColor:#f5933e;--sapButton_Critical_Active_TextColor:#fff;--sapButton_Success_Background:#107e3e;--sapButton_Success_BorderColor:#107e3e;--sapButton_Success_TextColor:#fff;--sapButton_Success_Hover_Background:#0c5e2e;--sapButton_Success_Hover_BorderColor:#0c5e2e;--sapButton_Success_Hover_TextColor:#fff;--sapButton_Success_Active_Background:#0a5128;--sapButton_Success_Active_BorderColor:#0a5128;--sapButton_Success_Active_TextColor:#fff;--sapButton_Information_Background:#0a6ed1;--sapButton_Information_BorderColor:#0a6ed1;--sapButton_Information_TextColor:#fff;--sapButton_Information_Hover_Background:#0961b9;--sapButton_Information_Hover_BorderColor:#0961b9;--sapButton_Information_Hover_TextColor:#fff;--sapButton_Information_Active_Background:#0854a0;--sapButton_Information_Active_BorderColor:#0854a0;--sapButton_Neutral_Background:#6a6d70;--sapButton_Neutral_BorderColor:#6a6d70;--sapButton_Neutral_TextColor:#fff;--sapButton_Neutral_Hover_Background:#595b5e;--sapButton_Neutral_Hover_BorderColor:#595b5e;--sapButton_Neutral_Hover_TextColor:#fff;--sapButton_Neutral_Active_Background:#515456;--sapButton_Neutral_Active_BorderColor:#515456;--sapButton_Neutral_Active_TextColor:#fff;--sapButton_Track_Selected_Background:#ebf5fe;--sapButton_Track_Selected_TextColor:#32363a;--sapButton_Track_Background:#ededed;--sapButton_Track_TextColor:#32363a;--sapButton_TokenBackground:#fafafa;--sapButton_TokenBorderColor:#c2c2c2;--sapField_Background:#fff;--sapField_TextColor:#32363a;--sapField_PlaceholderTextColor:#74777a;--sapField_BorderColor:#89919a;--sapField_HelpBackground:#fff;--sapField_BorderWidth:.0625rem;--sapField_BorderCornerRadius:.125rem;--sapField_Hover_Background:#fff;--sapField_Hover_BorderColor:#0854a0;--sapField_Hover_HelpBackground:#ebf5fe;--sapField_Active_BorderColor:#0854a0;--sapField_Focus_Background:#fff;--sapField_Focus_BorderColor:#89919a;--sapField_Focus_HelpBackground:#fff;--sapField_ReadOnly_Background:hsla(0,0%,94.9%,0.5);--sapField_ReadOnly_BorderColor:#89919a;--sapField_ReadOnly_HelpBackground:hsla(0,0%,94.9%,0.5);--sapField_RequiredColor:#ce3b3b;--sapField_InvalidColor:#b00;--sapField_InvalidBackground:#fff;--sapField_InvalidBorderWidth:.125rem;--sapField_InvalidBorderStyle:solid;--sapField_WarningColor:#df6e0c;--sapField_WarningBackground:#fff;--sapField_WarningBorderWidth:.125rem;--sapField_WarningBorderStyle:solid;--sapField_SuccessColor:#107e3e;--sapField_SuccessBackground:#fff;--sapField_SuccessBorderWidth:.0625rem;--sapField_SuccessBorderStyle:solid;--sapField_InformationColor:#0a6ed1;--sapField_InformationBackground:#fff;--sapField_InformationBorderWidth:.125rem;--sapField_InformationBorderStyle:solid;--sapGroup_TitleBackground:transparent;--sapGroup_TitleBorderColor:#d9d9d9;--sapGroup_TitleTextColor:#32363a;--sapGroup_ContentBackground:#fff;--sapGroup_ContentBorderColor:#d9d9d9;--sapGroup_BorderWidth:.0625rem;--sapGroup_BorderCornerRadius:0;--sapGroup_FooterBackground:transparent;--sapToolbar_Background:transparent;--sapToolbar_SeparatorColor:#d9d9d9;--sapList_HeaderBackground:#f2f2f2;--sapList_HeaderBorderColor:#e4e4e4;--sapList_HeaderTextColor:#32363a;--sapList_BorderColor:#e4e4e4;--sapList_TextColor:#32363a;--sapList_Active_TextColor:#fff;--sapList_BorderWidth:.0625rem;--sapList_SelectionBackgroundColor:#e5f0fa;--sapList_SelectionBorderColor:#0854a0;--sapList_Hover_SelectionBackground:#d8e9f8;--sapList_Background:#fff;--sapList_Hover_Background:#f5f5f5;--sapList_AlternatingBackground:#f2f2f2;--sapList_GroupHeaderBackground:#fff;--sapList_GroupHeaderBorderColor:#d8d8d8;--sapList_GroupHeaderTextColor:#32363a;--sapList_FooterBackground:#fafafa;--sapList_FooterTextColor:#32363a;--sapList_TableGroupHeaderBackground:#efefef;--sapList_TableGroupHeaderBorderColor:#d8d8d8;--sapList_TableGroupHeaderTextColor:#32363a;--sapList_TableFooterBorder:#d8d8d8;--sapList_TableFixedBorderColor:#8b8b8b;--sapList_Active_Background:#0854a0;--sapScrollBar_FaceColor:#949494;--sapScrollBar_TrackColor:#fff;--sapScrollBar_BorderColor:#949494;--sapScrollBar_SymbolColor:#0854a0;--sapScrollBar_Dimension:.75rem;--sapScrollBar_Hover_FaceColor:#8c8c8c;--sapPageHeader_Background:#fff;--sapPageHeader_BorderColor:#d9d9d9;--sapPageHeader_TextColor:#32363a;--sapPageFooter_Background:#fff;--sapPageFooter_BorderColor:#d9d9d9;--sapPageFooter_TextColor:#32363a;--sapInfobar_Background:#0f828f;--sapInfobar_Hover_Background:#0e7581;--sapInfobar_Active_Background:#0a545c;--sapInfobar_NonInteractive_Background:#e6e6e6;--sapInfobar_TextColor:#fff;--sapObjectHeader_Background:#fff;--sapObjectHeader_BorderColor:#d9d9d9;--sapObjectHeader_Hover_Background:#f5f5f5;--sapBlockLayer_Background:#000;--sapTile_Background:#fff;--sapTile_Hover_Background:#f5f5f5;--sapTile_Active_Background:#f5f5f5;--sapTile_BorderColor:transparent;--sapTile_TitleTextColor:#32363a;--sapTile_TextColor:#6a6d70;--sapTile_IconColor:#5a7da0;--sapTile_SeparatorColor:#ccc;--sapTile_Interactive_BorderColor:#b3b3b3;--sapTile_OverlayBackground:rgba(0,0,0,0.8);--sapTile_OverlayForegroundColor:#fff;--sapAccentColor1:#d08014;--sapAccentColor2:#d04343;--sapAccentColor3:#db1f77;--sapAccentColor4:#c0399f;--sapAccentColor5:#6367de;--sapAccentColor6:#286eb4;--sapAccentColor7:#0f828f;--sapAccentColor8:#7ca10c;--sapAccentColor9:#925ace;--sapAccentColor10:#647987;--sapLegend_WorkingBackground:#fafafa;--sapLegend_NonWorkingBackground:#dedede;--sapLegend_CurrentDateTime:#c0399f;--sapLegendColor1:#d58215;--sapLegendColor2:#dc5b5b;--sapLegendColor3:#db1f77;--sapLegendColor4:#9b3b3b;--sapLegendColor5:#cf5db3;--sapLegendColor6:#286eb4;--sapLegendColor7:#1193a2;--sapLegendColor8:#8b9668;--sapLegendColor9:#647987;--sapLegendColor10:#892971;--sapLegendColor11:#725a3a;--sapLegendColor12:#bb2f2f;--sapLegendColor13:#bc1b66;--sapLegendColor14:#8b714f;--sapLegendColor15:#606190;--sapLegendColor16:#597da1;--sapLegendColor17:#49797e;--sapLegendColor18:#687a33;--sapLegendColor19:#295989;--sapLegendColor20:#5154bd;--sapLegendBackgroundColor1:#fdf3e7;--sapLegendBackgroundColor2:#faeaea;--sapLegendBackgroundColor3:#fce9f2;--sapLegendBackgroundColor4:#f8ecec;--sapLegendBackgroundColor5:#f9ebf5;--sapLegendBackgroundColor6:#ebf3fa;--sapLegendBackgroundColor7:#e8fbfd;--sapLegendBackgroundColor8:#f3f4ef;--sapLegendBackgroundColor9:#f1f3f4;--sapLegendBackgroundColor10:#f9ebf6;--sapLegendBackgroundColor11:#f6f2ed;--sapLegendBackgroundColor12:#faeaea;--sapLegendBackgroundColor13:#fce9f2;--sapLegendBackgroundColor14:#f5f2ee;--sapLegendBackgroundColor15:#f0f0f5;--sapLegendBackgroundColor16:#eff2f6;--sapLegendBackgroundColor17:#eff5f6;--sapLegendBackgroundColor18:#f5f7ed;--sapLegendBackgroundColor19:#ebf2f9;--sapLegendBackgroundColor20:#ecedf8;--sapChart_OrderedColor_1:#5899da;--sapChart_OrderedColor_2:#e8743b;--sapChart_OrderedColor_3:#19a979;--sapChart_OrderedColor_4:#ed4a7b;--sapChart_OrderedColor_5:#945ecf;--sapChart_OrderedColor_6:#13a4b4;--sapChart_OrderedColor_7:#525df4;--sapChart_OrderedColor_8:#bf399e;--sapChart_OrderedColor_9:#6c8893;--sapChart_OrderedColor_10:#ee6868;--sapChart_OrderedColor_11:#2f6497;--sapChart_Bad:#dc0d0e;--sapChart_Critical:#de890d;--sapChart_Good:#3fa45b;--sapChart_Neutral:#848f94;--sapChart_Sequence_1:#5899da;--sapChart_Sequence_2:#e8743b;--sapChart_Sequence_3:#19a979;--sapChart_Sequence_4:#ed4a7b;--sapChart_Sequence_5:#945ecf;--sapChart_Sequence_6:#13a4b4;--sapChart_Sequence_7:#525df4;--sapChart_Sequence_8:#bf399e;--sapChart_Sequence_9:#6c8893;--sapChart_Sequence_10:#ee6868;--sapChart_Sequence_11:#2f6497;--sapChart_Sequence_Neutral:#848f94;}\";","export default \":root{--_ui5_calendar_height:24.5rem;--_ui5_calendar_width:20.5rem;--_ui5_calendar_padding:0.75rem;--_ui5_calendar_header_height:3rem;--_ui5_calendar_header_arrow_button_width:2.5rem;--_ui5_calendar_header_padding:0.25rem 0;--_ui5_checkbox_root_side_padding:.6875rem;--_ui5_checkbox_icon_size:1rem;--_ui5_checkbox_partially_icon_size:.75rem;--_ui5_custom_list_item_height:3rem;--_ui5_custom_list_item_rb_min_width:2.75rem;--_ui5_day_picker_item_width:2.25rem;--_ui5_day_picker_item_height:2.875rem;--_ui5_day_picker_empty_height:3rem;--_ui5_datetime_picker_width:40.0625rem;--_ui5_datetime_picker_height:25rem;--_ui5_datetime_timeview_phonemode_width:19.5rem;--_ui5_datetime_timeview_padding:1rem;--_ui5_dialog_content_min_height:2.75rem;--_ui5_input_inner_padding:0 0.625rem;--_ui5_input_inner_padding_with_icon:0 0.25rem 0 0.625rem;--_ui5_input_value_state_icon_padding:var(--_ui5-input-icon-padding);--_ui5_list_no_data_height:3rem;--_ui5_list_item_cb_margin_right:0;--_ui5_list_item_title_size:var(--sapFontLargeSize);--_ui5_list_item_img_size:3rem;--_ui5_list_item_img_margin:0.5rem 0.75rem 0.5rem 0rem;--_ui5_list_item_base_height:2.75rem;--_ui5_list_item_icon_size:1.125rem;--_ui5_group_header_list_item_height:2.75rem;--_ui5_list_busy_row_height:3rem;--_ui5_month_picker_item_height:3rem;--_ui5_popup_default_header_height:2.75rem;--_ui5_year_picker_item_height:3rem;--_ui5_tokenizer_root_padding:0.1875rem;--_ui5_token_height:1.625rem;--_ui5_token_icon_padding:0.25rem 0.5rem;--_ui5_token_wrapper_right_padding:0.3125rem;--_ui5_tl_bubble_padding:1rem;--_ui5_tl_indicator_before_bottom:-1.625rem;--_ui5_tl_padding:1rem 1rem 1rem .5rem;--_ui5_tl_li_margin_bottom:1.625rem;--_ui5_switch_text_on_left:calc(-100% + 1.9125rem);--_ui5_switch_slide_transform:translateX(100%) translateX(-1.875rem);--_ui5_switch_rtl_transform:translateX(1.875rem) translateX(-100%);--_ui5_switch_text_right:calc(-100% + 1.9125rem);--_ui5_tc_item_text:3rem;--_ui5_tc_item_text_text_only:3rem;--_ui5_tc_item_text_line_height:normal;--_ui5_tc_item_icon_size:1.5rem;--_ui5_tc_item_add_text_margin_top:0.625rem;--_ui5_textarea_padding:0.5625rem 0.6875rem;--_ui5_radio_button_height:2.75rem;--_ui5_radio_button_label_side_padding:.875rem;--_ui5_radio_button_focus_dist:.5rem;--_ui5_radio_button_inner_size:2.75rem;--_ui5_radio_button_svg_size:1.375rem;--_ui5_radio_button_label_width:calc(100% - 2.75rem);--_ui5_radio_button_rtl_focus_right:0.5rem;--_ui5-responsive_popover_header_height:2.75rem;--_ui5_shellbar_logo_outline_offset:-0.0625rem;--ui5_side_navigation_item_height:2.75rem;--_ui5_load_more_text_height:2.75rem;--_ui5_load_more_text_font_size:var(--sapFontMediumSize);--_ui5_load_more_desc_padding:0.375rem 2rem 0.875rem 2rem;--_ui5-tree-indent-step:1.5rem;--_ui5-tree-toggle-box-width:2.75rem;--_ui5-tree-toggle-box-height:2.25rem;--_ui5-tree-toggle-icon-size:1.0625rem;--_ui5_segmented_btn_border_radius:0.375rem}.sapUiSizeCompact,.ui5-content-density-compact,:root,[data-ui5-compact-size]{--_ui5_datetime_timeview_width:17rem;--_ui5_list_item_selection_btn_margin_top:calc(var(--_ui5_checkbox_wrapper_padding)*-1);--_ui5_token_icon_size:.75rem;--_ui5_token_wrapper_left_padding:0}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_button_base_height:1.625rem;--_ui5_button_base_padding:0.4375rem;--_ui5_button_base_min_width:2rem;--_ui5_button_icon_font_size:1rem;--_ui5_calendar_height:18rem;--_ui5_calendar_width:17.75rem;--_ui5_calendar_padding:0.5rem;--_ui5_calendar_header_height:2rem;--_ui5_calendar_header_arrow_button_width:2rem;--_ui5_calendar_header_padding:0;--_ui5_checkbox_root_side_padding:var(--_ui5_checkbox_wrapped_focus_padding);--_ui5_checkbox_wrapped_content_margin_top:var(--_ui5_checkbox_compact_wrapped_label_margin_top);--_ui5_checkbox_wrapped_focus_left_top_bottom_position:var(--_ui5_checkbox_compact_focus_position);--_ui5_checkbox_width_height:var(--_ui5_checkbox_compact_width_height);--_ui5_checkbox_wrapper_padding:var(--_ui5_checkbox_compact_wrapper_padding);--_ui5_checkbox_focus_position:var(--_ui5_checkbox_compact_focus_position);--_ui5_checkbox_inner_width_height:var(--_ui5_checkbox_compact_inner_size);--_ui5_checkbox_icon_size:.75rem;--_ui5_checkbox_partially_icon_size:.5rem;--_ui5_color-palette-item-height:1.25rem;--_ui5_color-palette-item-focus-height:1rem;--_ui5_color-palette-item-container-sides-padding:0.1875rem;--_ui5_color-palette-item-container-rows-padding:0.8125rem;--_ui5_color-palette-item-hover-height:1.65rem;--_ui5_color-palette-item-hover-margin:0.3125rem;--_ui5_color-palette-row-width:12rem;--_ui5_color-palette-row-height:7.5rem;--_ui5_custom_list_item_height:2rem;--_ui5_custom_list_item_rb_min_width:2rem;--_ui5_daypicker_weeknumbers_container_padding_top:2rem;--_ui5_day_picker_item_width:2rem;--_ui5_day_picker_item_height:2rem;--_ui5_day_picker_empty_height:2.125rem;--_ui5_datetime_picker_height:17rem;--_ui5_datetime_picker_width:34.0625rem;--_ui5_datetime_timeview_phonemode_width:18.5rem;--_ui5_datetime_timeview_padding:0.5rem;--_ui5_dialog_content_min_height:2.5rem;--_ui5_input_height:var(--_ui5_input_compact_height);--_ui5_input_inner_padding:0 0.5rem;--_ui5_input_icon_min_width:var(--_ui5_input_compact_min_width);--_ui5_input_icon_padding:.25rem .5rem;--_ui5_input_value_state_icon_padding:.1875rem .5rem;--_ui5_popup_default_header_height:2.5rem;--_ui5_textarea_padding:.1875rem .5rem;--_ui5_list_no_data_height:2rem;--_ui5_list_item_cb_margin_right:.5rem;--_ui5_list_item_title_size:var(--sapFontSize);--_ui5_list_item_img_margin:0.55rem 0.75rem 0.5rem 0rem;--_ui5_list_item_base_height:2rem;--_ui5_list_item_icon_size:1rem;--_ui5_list_busy_row_height:2rem;--_ui5_month_picker_item_height:2rem;--_ui5_panel_header_height:2rem;--_ui5_year_picker_item_height:2rem;--_ui5_tokenizer_root_padding:0.125rem;--_ui5_token_height:1.125rem;--_ui5_token_icon_padding:0.1rem 0.25rem;--_ui5_token_wrapper_right_padding:0.25rem;--_ui5_tl_bubble_padding:.5rem;--_ui5_tl_indicator_before_bottom:-.5rem;--_ui5_tl_padding:.5rem;--_ui5_tl_li_margin_bottom:.5rem;--_ui5_wheelslider_item_width:64px;--_ui5_wheelslider_item_height:32px;--_ui5_wheelslider_height:224px;--_ui5_wheelslider_selection_frame_margin_top:calc(var(--_ui5_wheelslider_item_height)*2);--_ui5_wheelslider_arrows_visibility:visible;--_ui5_wheelslider_mobile_selection_frame_margin_top:128px;--_ui5_switch_height:var(--_ui5_switch_compact_height);--_ui5_switch_width:var(--_ui5_switch_compact_width);--_ui5_switch_handle_height:var(--_ui5_switch_handle_compact_height);--_ui5_switch_handle_width:var(--_ui5_switch_handle_compact_width);--_ui5_switch_text_on_left:calc(-100% + 1.5625rem);--_ui5_switch_slide_transform:translateX(100%) translateX(-1.5rem);--_ui5_switch_no_label_width:var(--_ui5_switch_compact_no_label_width);--_ui5_switch_track_no_label_height:var(--_ui5_switch_track_compact_no_label_height);--_ui5_switch_rtl_transform:translateX(-100%) translateX(1.5rem);--_ui5_switch_text_right:calc(-100% + 1.5625rem);--_ui5_tc_item_text:2rem;--_ui5_tc_item_text_line_height:1.325rem;--_ui5_tc_item_icon_size:1rem;--_ui5_tc_item_add_text_margin_top:0.3125rem;--_ui5_tc_header_height:var(--_ui5_tc_header_height_compact);--_ui5_radio_button_min_width:var(--_ui5_radio_button_min_width_compact);--_ui5_radio_button_height:2rem;--_ui5_radio_button_label_side_padding:.5rem;--_ui5_radio_button_focus_dist:.375rem;--_ui5_radio_button_inner_size:2rem;--_ui5_radio_button_svg_size:1rem;--_ui5_radio_button_label_width:calc(100% - 2rem + 1px);--_ui5_radio_button_rtl_focus_right:0.375rem;--_ui5-responsive_popover_header_height:2.5rem;--ui5_side_navigation_item_height:2rem;--_ui5_slider_handle_height:1.25rem;--_ui5_slider_handle_width:1.25rem;--_ui5_slider_handle_top:-0.6425rem;--_ui5_slider_handle_margin_left:-0.7825rem;--_ui5_slider_tooltip_height:1rem;--_ui5_slider_tooltip_padding:0.25rem;--_ui5_slider_tooltip_bottom:1.825rem;--_ui5_slider_progress_outline_offset:-0.625rem;--_ui5_slider_outer_height:1.3125rem;--_ui5_load_more_text_height:2.625rem;--_ui5_load_more_text_font_size:var(--sapFontSize);--_ui5_load_more_desc_padding:0 2rem 0.875rem 2rem;--_ui5-tree-indent-step:0.5rem;--_ui5-tree-toggle-box-width:2rem;--_ui5-tree-toggle-box-height:1.5rem;--_ui5-tree-toggle-icon-size:0.8125rem}:root{--ui5-avatar-initials-color:var(--sapContent_ImagePlaceholderForegroundColor);--ui5-avatar-initials-border:none;--ui5-avatar-accent1:var(--sapAccentColor1);--ui5-avatar-accent2:var(--sapAccentColor2);--ui5-avatar-accent3:var(--sapAccentColor3);--ui5-avatar-accent4:var(--sapAccentColor4);--ui5-avatar-accent5:var(--sapAccentColor5);--ui5-avatar-accent6:var(--sapAccentColor6);--ui5-avatar-accent7:var(--sapAccentColor7);--ui5-avatar-accent8:var(--sapAccentColor8);--ui5-avatar-accent9:var(--sapAccentColor9);--ui5-avatar-accent10:var(--sapAccentColor10);--ui5-avatar-placeholder:var(--sapContent_ImagePlaceholderBackground);--_ui5_avatar_outline:1px dotted var(--sapContent_FocusColor);--_ui5_avatar_focus_offset:1px;--_ui5_avatar_focus_width:1px;--_ui5_avatar_focus_color:var(--sapContent_FocusColor);--ui5-badge-font-size:0.75em;--ui5-badge-color-scheme-1-background:var(--sapLegendBackgroundColor1);--ui5-badge-color-scheme-1-border:var(--sapAccentColor1);--ui5-badge-color-scheme-1-color:var(--sapAccentColor1);--ui5-badge-color-scheme-2-background:var(--sapLegendBackgroundColor2);--ui5-badge-color-scheme-2-border:var(--sapAccentColor2);--ui5-badge-color-scheme-2-color:var(--sapAccentColor2);--ui5-badge-color-scheme-3-background:var(--sapLegendBackgroundColor3);--ui5-badge-color-scheme-3-border:var(--sapAccentColor3);--ui5-badge-color-scheme-3-color:var(--sapAccentColor3);--ui5-badge-color-scheme-4-background:var(--sapLegendBackgroundColor5);--ui5-badge-color-scheme-4-border:var(--sapAccentColor4);--ui5-badge-color-scheme-4-color:var(--sapAccentColor4);--ui5-badge-color-scheme-5-background:var(--sapLegendBackgroundColor20);--ui5-badge-color-scheme-5-border:var(--sapAccentColor5);--ui5-badge-color-scheme-5-color:var(--sapAccentColor5);--ui5-badge-color-scheme-6-background:var(--sapLegendBackgroundColor6);--ui5-badge-color-scheme-6-border:var(--sapAccentColor6);--ui5-badge-color-scheme-6-color:var(--sapAccentColor6);--ui5-badge-color-scheme-7-background:var(--sapLegendBackgroundColor7);--ui5-badge-color-scheme-7-border:var(--sapAccentColor7);--ui5-badge-color-scheme-7-color:var(--sapAccentColor7);--ui5-badge-color-scheme-8-background:var(--sapLegendBackgroundColor8);--ui5-badge-color-scheme-8-border:var(--sapAccentColor8);--ui5-badge-color-scheme-8-color:var(--sapAccentColor8);--ui5-badge-color-scheme-9-background:var(--sapLegendBackgroundColor10);--ui5-badge-color-scheme-9-border:var(--sapAccentColor10);--ui5-badge-color-scheme-9-color:var(--sapAccentColor10);--ui5-badge-color-scheme-10-background:var(--sapLegendBackgroundColor9);--ui5-badge-color-scheme-10-border:var(--sapAccentColor9);--ui5-badge-color-scheme-10-color:var(--sapAccentColor9);--_ui5_button_base_min_width:2.5rem;--_ui5_button_base_min_compact_width:2rem;--_ui5_button_base_height:2.5rem;--_ui5_button_compact_height:1.625rem;--_ui5_button_border_radius:var(--sapButton_BorderCornerRadius);--_ui5_button_base_padding:0.6875rem;--_ui5_button_compact_padding:0.4375rem;--_ui5_button_base_icon_margin:0.563rem;--_ui5_button_icon_font_size:1.375rem;--_ui5_button_outline:1px dotted var(--sapContent_FocusColor);--_ui5_button_outline_offset:-0.1875rem;--_ui5_button_emphasized_font_weight:normal;--_ui5_button_text_shadow:var(--sapContent_TextShadow);--_ui5_button_focus_offset:1px;--_ui5_button_focus_width:1px;--_ui5_button_focus_color:var(--sapContent_FocusColor);--_ui5_button_positive_border_focus_hover_color:var(--sapContent_FocusColor);--_ui5_button_positive_focus_border_color:var(--sapButton_Accept_BorderColor);--_ui5_button_negative_focus_border_color:var(--sapButton_Reject_BorderColor);--_ui5_button_emphasized_focused_border_color:var(--sapButton_Emphasized_BorderColor);--_ui5_button_base_min_width:2.25rem;--_ui5_button_base_height:2.25rem;--_ui5_button_base_padding:0.5625rem;--_ui5_button_base_icon_only_padding:0.5625rem;--_ui5_button_base_icon_margin:0.375rem;--_ui5_button_icon_font_size:1rem;--_ui5_button_emphasized_font_weight:bold;--_ui5_button_text_shadow:none;--_ui5_card_box_shadow:var(--sapContent_Shadow0);--_ui5_card_border_color:var(--sapTile_BorderColor);--_ui5_card_content_padding:1rem;--_ui5_card_header_hover_bg:var(--sapList_Hover_Background);--_ui5_card_header_active_bg:var(--_ui5_card_header_hover_bg);--_ui5_card_header_border_color:var(--sapTile_SeparatorColor);--_ui5_card_header_focus_border:1px dotted var(--sapContent_FocusColor);--ui5_carousel_button_size:2.5rem;--ui5_carousel_height:0.25rem;--ui5_carousel_width:0.25rem;--ui5_carousel_margin:0 0.375rem;--ui5_carousel_border:1px solid var(--sapContent_ForegroundBorderColor);--ui5_carousel_dot_border:none;--ui5_carousel_dot_background:var(--sapContent_NonInteractiveIconColor);--_ui5_checkbox_wrapper_padding:.8125rem;--_ui5_checkbox_width_height:3rem;--_ui5_checkbox_hover_background:var(--sapField_Hover_Background);--_ui5_checkbox_inner_width_height:1.375rem;--_ui5_checkbox_inner_border:solid .125rem var(--sapField_BorderColor);--_ui5_checkbox_inner_border_radius:0;--_ui5_checkbox_inner_error_border:0.125rem solid var(--sapField_InvalidColor);--_ui5_checkbox_inner_warning_border:0.125rem solid var(--sapField_WarningColor);--_ui5_checkbox_inner_information_border:0.125rem solid var(--sapField_InformationColor);--_ui5_checkbox_inner_success_border:var(--sapField_BorderWidth) solid var(--sapField_SuccessColor);--_ui5_checkbox_inner_readonly_border:0.125rem solid var(--sapField_ReadOnly_BorderColor);--_ui5_checkbox_checkmark_warning_color:var(--sapField_TextColor);--_ui5_checkbox_checkmark_color:var(--sapSelectedColor);--_ui5_checkbox_wrapped_focus_padding:.375rem;--_ui5_checkbox_wrapped_content_margin_top:.125rem;--_ui5_checkbox_wrapped_focus_left_top_bottom_position:.5625rem;--_ui5_checkbox_focus_position:.6875rem;--_ui5_checkbox_focus_outline:1px dotted var(--sapContent_FocusColor);--_ui5_checkbox_compact_wrapper_padding:.5rem;--_ui5_checkbox_compact_width_height:2rem;--_ui5_checkbox_compact_inner_size:1rem;--_ui5_checkbox_compact_focus_position:.375rem;--_ui5_checkbox_compact_wrapped_label_margin_top:-1px;--_ui5_checkbox_wrapper_padding:.6875rem;--_ui5_checkbox_width_height:2.75rem;--_ui5_checkbox_inner_border:.0625rem solid var(--sapField_BorderColor);--_ui5_checkbox_focus_position:0.5625rem;--_ui5_checkbox_inner_border_radius:.125rem;--_ui5_checkbox_wrapped_content_margin_top:0;--_ui5_checkbox_wrapped_focus_padding:.5rem;--_ui5_checkbox_inner_readonly_border:1px solid var(--sapField_ReadOnly_BorderColor);--_ui5_checkbox_compact_wrapped_label_margin_top:-0.125rem;--_ui5_color-palette-item-height:1.75rem;--_ui5_color-palette-item-container-sides-padding:0.3125rem;--_ui5_color-palette-item-container-rows-padding:0.6875rem;--_ui5_color-palette-item-focus-height:1.5rem;--_ui5_color-palette-item-container-padding:var(--_ui5_color-palette-item-container-sides-padding) var(--_ui5_color-palette-item-container-rows-padding);--_ui5_color-palette-item-hover-height:2.25rem;--_ui5_color-palette-item-margin:calc(var(--_ui5_color-palette-item-hover-height) - var(--_ui5_color-palette-item-height));--_ui5_color-palette-item-hover-margin:calc(var(--_ui5_color-palette-item-margin)/2);--_ui5_color-palette-row-width:14.5rem;--_ui5_color-palette-row-height:9.5rem;--_ui5_datepicker_icon_border:none;--_ui5_daypicker_item_margin:2px;--_ui5_daypicker_item_border:none;--_ui5_daypicker_item_selected_border_color:var(--sapList_Background);--_ui5_daypicker_item_outline_width:1px;--_ui5_daypicker_item_outline_offset:1px;--_ui5_daypicker_daynames_container_height:2rem;--_ui5_daypicker_weeknumbers_container_padding_top:2rem;--_ui5_daypicker_item_selected_hover_background_color:var(--sapContent_Selected_Background);--_ui5_daypicker_item_othermonth_background_color:var(--sapList_Background);--_ui5_daypicker_item_othermonth_color:var(--sapContent_LabelColor);--_ui5_daypicker_item_othermonth_hover_color:var(--sapContent_LabelColor);--_ui5_daypicker_item_border_radius:0;--_ui5_daypicker_item_now_inner_border_radius:0;--_ui5_daypicker_dayname_color:var(--sapContent_LabelColor);--_ui5_daypicker_weekname_color:var(--sapContent_LabelColor);--_ui5_daypicker_item_now_selected_focus_after_width:calc(100% - 0.125rem);--_ui5_daypicker_item_now_selected_focus_after_height:calc(100% - 0.125rem);--_ui5_daypicker_item_selected_hover_background_color:var(--sapActiveColor_Lighten3);--_ui5_daypicker_item_border_radius:0.25rem;--_ui5_daypicker_item_now_inner_border_radius:0.125rem;--_ui5_dialog_resize_handle_color:var(--sapButton_Lite_TextColor);--_ui5_dialog_header_focus_width:0.0625rem;--_ui5_dialog_header_focus_offset:-0.1875rem;--ui5-group-header-listitem-background-color:var(--sapList_GroupHeaderBackground);--_ui5_input_width:13.125rem;--_ui5_input_height:2.5rem;--_ui5_input_compact_height:1.625rem;--_ui5_input_state_border_width:0.125rem;--_ui5-input-information_border_width:0.125rem;--_ui5_input_error_font_weight:normal;--_ui5_input_focus_border_width:1px;--_ui5_input_error_warning_border_style:solid;--_ui5_input_error_warning_font_style:inherit;--_ui5_input_disabled_color:var(--sapContent_DisabledTextColor);--_ui5_input_disabled_font_weight:normal;--_ui5_input_disabled_border_color:var(--sapField_BorderColor);--_ui5_input_disabled_background:var(--sapField_Background);--_ui5_input_icon_padding:0.625rem .6875rem;--_ui5_input_disabled_opacity:0.5;--_ui5_input_icon_min_width:2.375rem;--_ui5_input_compact_min_width:2rem;--_ui5_input_height:2.25rem;--_ui5_input_disabled_opacity:0.4;--_ui5_input_icon_padding:.5625rem .6875rem;--_ui5_link_opacity:0.5;--_ui5_link_opacity:0.4;--_ui5_link_text_decoration:none;--_ui5_link_hover_text_decoration:underline;--ui5_list_footer_text_color:var(--sapPageFooter_TextColor);--ui5_list_footer_text_color:var(--sapTextColor);--ui5-listitem-background-color:var(--sapList_Background);--ui5-listitem-border-bottom:1px solid var(--sapList_BorderColor);--ui5-listitem-selected-border-bottom:1px solid var(--sapList_SelectionBorderColor);--_ui5_listitembase_focus_width:1px;--_ui5-listitembase_disabled_opacity:0.5;--_ui5_product_switch_item_border:none;--_ui5_monthpicker_item_border_radius:0;--_ui5_monthpicker_item_border:none;--_ui5_monthpicker_item_margin:1px;--_ui5_monthpicker_item_focus_after_width:calc(100% - 0.375rem);--_ui5_monthpicker_item_focus_after_height:calc(100% - 0.375rem);--_ui5_monthpicker_item_focus_after_border:1px dotted var(--sapContent_FocusColor);--_ui5_monthpicker_item_focus_after_offset:2px;--_ui5_monthpicker_item_border_radius:0.25rem;--_ui5_messagestrip_icon_width:2.5rem;--_ui5_messagestrip_border_radius:0.1875rem;--_ui5_messagestrip_button_border_width:0;--_ui5_messagestrip_button_border_style:none;--_ui5_messagestrip_button_border_color:transparent;--_ui5_messagestrip_button_border_radius:0;--_ui5_messagestrip_padding:0.4375rem 2.5rem 0.4375rem 2.5rem;--_ui5_messagestrip_padding_no_icon:0.4375rem 2.5rem 0.4375rem 1rem;--_ui5_messagestrip_button_height:1.625rem;--_ui5_messagestrip_border_width:1px;--_ui5_messagestrip_close_button_border:none;--_ui5_messagestrip_close_button_size:1.625rem;--_ui5_messagestrip_icon_top:0.4375rem;--_ui5_messagestrip_focus_width:1px;--_ui5_messagestrip_focus_offset:-2px;--_ui5_panel_focus_border:1px dotted var(--sapContent_FocusColor);--_ui5_panel_header_height:3rem;--_ui5_panel_button_root_width:3rem;--_ui5_panel_header_height:2.75rem;--_ui5_panel_button_root_width:2.75rem;--_ui5_popup_content_padding:.4375em;--_ui5_progress_indicator_value_state_none:var(--sapNeutralElementColor);--_ui5_progress_indicator_value_state_error:var(--sapNegativeElementColor);--_ui5_progress_indicator_value_state_warning:var(--sapCriticalElementColor);--_ui5_progress_indicator_value_state_success:var(--sapPositiveElementColor);--_ui5_progress_indicator_value_state_information:var(--sapInformativeElementColor);--_ui5_progress_indicator_color:var(--sapTextColor);--_ui5_progress_indicator_bar_color:var(--sapContent_ContrastTextColor);--_ui5_progress_indicator_border:0.0625rem solid var(--sapField_BorderColor);--_ui5_progress_indicator_bar_border_max:none;--_ui5_progress_indicator_icon_visibility:none;--_ui5_radio_button_min_width:2.75rem;--_ui5_radio_button_min_width_compact:2rem;--_ui5_radio_button_hover_fill:var(--sapField_Hover_Background);--_ui5_radio_button_border_width:1px;--_ui5_radio_button_checked_fill:var(--sapSelectedColor);--_ui5_radio_button_checked_error_fill:var(--sapField_InvalidColor);--_ui5_radio_button_checked_warning_fill:var(--sapField_TextColor);--_ui5_radio_button_warning_error_border_dash:0;--_ui5_select_disabled_background:var(--sapField_Background);--_ui5_select_disabled_border_color:var(--sapField_BorderColor);--_ui5_select_state_error_warning_border_style:solid;--_ui5_select_state_error_warning_border_width:0.125rem;--_ui5_select_hover_icon_left_border:1px solid transparent;--_ui5_select_rtl_hover_icon_left_border:none;--_ui5_select_rtl_hover_icon_right_border:none;--_ui5_select_focus_width:1px;--_ui5_switch_height:2.75rem;--_ui5_switch_width:3.875rem;--_ui5_switch_no_label_width:3.25rem;--_ui5_switch_outline:1px;--_ui5_switch_compact_height:2rem;--_ui5_switch_compact_width:3.5rem;--_ui5_switch_compact_no_label_width:2.5rem;--_ui5_switch_track_height:1.375rem;--_ui5_switch_track_no_label_height:1.25rem;--_ui5_switch_track_compact_no_label_height:1rem;--_ui5_switch_track_hover_border_color:var(--_ui5_switch_track_checked_border_color);--_ui5_switch_track_hover_background_color:var(--sapButton_Track_Background);--_ui5_switch_track_hover_checked_background_color:var(--sapButton_Track_Selected_Background);--_ui5_switch_track_border_radius:0.75rem;--_ui5_switch_track_disabled_checked_bg:var(--_ui5_switch_track_checked_bg);--_ui5_switch_track_disabled_border_color:var(--sapContent_ForegroundBorderColor);--_ui5_switch_track_disabled_semantic_checked_bg:var(--sapSuccessBackground);--_ui5_switch_track_disabled_semantic_checked_border_color:var(--sapSuccessBorderColor);--_ui5_switch_track_disabled_semantic_bg:var(--sapErrorBackground);--_ui5_switch_track_disabled_semantic_border_color:var(--sapErrorBorderColor);--_ui5_switch_handle_width:2rem;--_ui5_switch_handle_height:2rem;--_ui5_switch_handle_border_width:1px;--_ui5_switch_handle_border_radius:1rem;--_ui5_switch_handle_bg:var(--sapButton_TokenBackground);--_ui5_switch_handle_checked_bg:var(--sapButton_Selected_Background);--_ui5_switch_handle_checked_border_color:var(--sapButton_Selected_BorderColor);--_ui5_switch_handle_semantic_hover_bg:var(--sapErrorBackground);--_ui5_switch_handle_semantic_checked_hover_bg:var(--sapSuccessBackground);--_ui5_switch_handle_semantic_hover_border_color:var(--sapErrorBorderColor);--_ui5_switch_handle_semantic_checked_hover_border_color:var(--sapSuccessBorderColor);--_ui5_switch_handle_compact_width:1.625rem;--_ui5_switch_handle_compact_height:1.625rem;--_ui5_switch_handle_disabled_bg:var(--_ui5_switch_handle_bg);--_ui5_switch_handle_disabled_checked_bg:var(--_ui5_switch_handle_checked_bg);--_ui5_switch_handle_disabled_border_color:var(--sapContent_ForegroundBorderColor);--_ui5_switch_handle_disabled_semantic_checked_bg:var(--sapButton_Background);--_ui5_switch_handle_disabled_semantic_checked_border_color:var(--sapSuccessBorderColor);--_ui5_switch_handle_disabled_semantic_border_color:var(--sapErrorBorderColor);--_ui5_switch_text_on_semantic_color:var(--sapPositiveElementColor);--_ui5_switch_text_off_semantic_color:var(--sapNegativeElementColor);--_ui5_switch_text_disabled_color:var(--sapTextColor);--_ui5_tc_header_height:4.6875rem;--_ui5_tc_header_height_compact:3.6875rem;--_ui5_tc_header_height_text_only:3rem;--_ui5_tc_header_height_text_only_compact:2rem;--_ui5_tc_header_box_shadow:inset 0 -0.25rem 0 -0.125rem var(--sapObjectHeader_BorderColor);--_ui5_tc_header_border_bottom:0.125rem solid var(--sapObjectHeader_Background);--_ui5_tc_headerItem_color:var(--sapGroup_TitleTextColor);--_ui5_tc_headeritem_text_selected_color:var(--sapSelectedColor);--_ui5_tc_headerItem_neutral_color:var(--sapNeutralColor);--_ui5_tc_headerItem_positive_color:var(--sapPositiveColor);--_ui5_tc_headerItem_negative_color:var(--sapNegativeColor);--_ui5_tc_headerItem_critical_color:var(--sapCriticalColor);--_ui5_tc_headerItem_neutral_border_color:var(--_ui5_tc_headerItem_neutral_color);--_ui5_tc_headerItem_positive_border_color:var(--_ui5_tc_headerItem_positive_color);--_ui5_tc_headerItem_negative_border_color:var(--_ui5_tc_headerItem_negative_color);--_ui5_tc_headerItem_critical_border_color:var(--_ui5_tc_headerItem_critical_color);--_ui5_tc_headerItem_neutral_selected_border_color:var(--_ui5_tc_headerItem_neutral_color);--_ui5_tc_headerItem_positive_selected_border_color:var(--_ui5_tc_headerItem_positive_color);--_ui5_tc_headerItem_negative_selected_border_color:var(--_ui5_tc_headerItem_negative_color);--_ui5_tc_headerItem_critical_selected_border_color:var(--_ui5_tc_headerItem_critical_color);--_ui5_tc_headerItemContent_border_bottom:0.125rem solid var(--sapSelectedColor);--_ui5_tc_headerItem_focus_border:1px dotted var(--sapContent_FocusColor);--_ui5_tc_headerItemSemanticIcon_display:none;--_ui5_tc_overflowItem_neutral_color:var(--sapNeutralColor);--_ui5_tc_overflowItem_positive_color:var(--sapPositiveColor);--_ui5_tc_overflowItem_negative_color:var(--sapNegativeColor);--_ui5_tc_overflowItem_critical_color:var(--sapCriticalColor);--_ui5_tc_headerItemIcon_border:1px solid var(--sapHighlightColor);--_ui5_tc_headerItemIcon_color:var(--sapHighlightColor);--_ui5_tc_headerItemIcon_selected_background:var(--sapHighlightColor);--_ui5_tc_headerItemIcon_selected_color:var(--sapGroup_ContentBackground);--_ui5_tc_headerItemIcon_positive_selected_background:var(--sapPositiveColor);--_ui5_tc_headerItemIcon_negative_selected_background:var(--sapNegativeColor);--_ui5_tc_headerItemIcon_critical_selected_background:var(--sapCriticalColor);--_ui5_tc_headerItemIcon_neutral_selected_background:var(--sapNeutralColor);--_ui5_tc_headerItemIcon_semantic_selected_color:var(--sapGroup_ContentBackground);--_ui5_tc_content_border_bottom:0.125rem solid var(--sapObjectHeader_BorderColor);--_ui5_tc_header_box_shadow:var(--sapContent_HeaderShadow);--_ui5_tc_header_border_bottom:0.0625rem solid var(--sapObjectHeader_Background);--_ui5_tc_headerItem_color:var(--sapContent_LabelColor);--_ui5_tc_headerItemContent_border_bottom:0.188rem solid var(--sapSelectedColor);--_ui5_tc_overflowItem_default_color:var(--sapHighlightColor);--_ui5_tc_overflowItem_current_color:CurrentColor;--_ui5_tc_content_border_bottom:0.0625rem solid var(--sapObjectHeader_BorderColor);--_ui5_textarea_focus_after_width:1px;--_ui5_textarea_warning_border_style:solid;--_ui5_textarea_state_border_width:0.125rem;--_ui5_time_picker_border:0.0625rem solid transparent;--_ui5_toast_vertical_offset:3rem;--_ui5_toast_horizontal_offset:2rem;--_ui5_toast_background:var(--sapList_Background);--_ui5_toast_shadow:var(--sapContent_Shadow2);--_ui5_wheelslider_item_text_size:var(--sapFontSize);--_ui5_wheelslider_selected_item_hover_background_color:var(--sapList_BorderColor);--_ui5_wheelslider_label_text_size:var(--sapFontSmallSize);--_ui5_wheelslider_selection_frame_margin_top:calc(var(--_ui5_wheelslider_item_height)*2);--_ui5_wheelslider_mobile_selection_frame_margin_top:calc(var(--_ui5_wheelslider_item_height)*4);--_ui5_wheelslider_label_text_color:var(--sapContent_LabelColor);--_ui5_wheelslider_height:240px;--_ui5_wheelslider_mobile_height:432px;--_ui5_wheelslider_item_width:48px;--_ui5_wheelslider_item_height:46px;--_ui5_wheelslider_arrows_visibility:hidden;--_ui5_wheelslider_item_background_color:var(--sapLegend_WorkingBackground);--_ui5_wheelslider_item_text_color:var(--sapTextColor);--_ui_wheelslider_item_hover_color:var(--sapButton_Emphasized_Hover_BorderColor);--_ui5_wheelslider_item_border_color:var(--sapList_Background);--_ui5_wheelslider_item_hovered_border_color:var(--sapList_Background);--_ui5_wheelslider_collapsed_item_text_color:var(--_ui5_wheelslider_item_border_color);--_ui5_wheelslider_selected_item_background_color:var(--sapContent_Selected_Background);--_ui5_wheelslider_selected_item_hover_background_color:var(--sapButton_Emphasized_Hover_BorderColor);--_ui5_wheelslider_active_item_background_color:var(--sapContent_Selected_Background);--_ui5_wheelslider_active_item_text_color:var(--sapContent_Selected_TextColor);--_ui5_wheelslider_selection_frame_color:var(--sapList_SelectionBorderColor);--_ui_wheelslider_item_border_radius:var(--_ui5_button_border_radius);--_ui5_toggle_button_pressed_focussed:var(--sapButton_Selected_BorderColor);--_ui5_toggle_button_pressed_focussed_hovered:var(--sapButton_Selected_BorderColor);--_ui5_yearpicker_item_selected_focus:var(--sapContent_Selected_Background);--_ui5_yearpicker_item_border:none;--_ui5_yearpicker_item_border_radius:0;--_ui5_yearpicker_item_margin:1px;--_ui5_yearpicker_item_focus_after_width:calc(100% - 0.375rem);--_ui5_yearpicker_item_focus_after_height:calc(100% - 0.375rem);--_ui5_yearpicker_item_focus_after_border:1px dotted var(--sapContent_FocusColor);--_ui5_yearpicker_item_focus_after_offset:2px;--_ui5_yearpicker_item_border_radius:0.25rem;--_ui5_calendar_header_arrow_button_border:none;--_ui5_calendar_header_arrow_button_border_radius:0.25rem;--_ui5_calendar_header_middle_button_width:6.25rem;--_ui5_calendar_header_middle_button_flex:1 1 auto;--_ui5_calendar_header_middle_button_focus_border_radius:0.25rem;--_ui5_calendar_header_middle_button_focus_border:none;--_ui5_calendar_header_middle_button_focus_after_display:block;--_ui5_calendar_header_middle_button_focus_after_width:calc(100% - 0.25rem);--_ui5_calendar_header_middle_button_focus_after_height:calc(100% - 0.25rem);--_ui5_calendar_header_middle_button_focus_after_top_offset:1px;--_ui5_calendar_header_middle_button_focus_after_left_offset:1px;--_ui5_calendar_header_middle_button_focus_after_width:calc(100% - 0.375rem);--_ui5_calendar_header_middle_button_focus_after_height:calc(100% - 0.375rem);--_ui5_calendar_header_middle_button_focus_after_top_offset:0.125rem;--_ui5_calendar_header_middle_button_focus_after_left_offset:0.125rem;--ui5_table_header_row_outline_width:1px;--ui5_table_multiselect_column_width:2.75rem;--ui5_table_row_outline_width:1px;--_ui5_load_more_padding:0;--_ui5_load_more_border:1px top solid transparent;--_ui5_load_more_border_radius:none;--_ui5_load_more_outline_width:1px;--ui5_title_level_1Size:1.625rem;--ui5_title_level_2Size:1.375rem;--ui5_title_level_3Size:1.250rem;--ui5_title_level_4Size:1.125rem;--ui5_title_level_5Size:1rem;--ui5_title_level_6Size:0.875rem;--_ui5_token_background:var(--sapButton_Background);--_ui5_token_border_radius:0.125rem;--_ui5_token_text_color:var(--sapButton_TextColor);--_ui5_token_background:var(--sapButton_TokenBackground);--_ui5_token_border_radius:0.25rem;--_ui5_token_focus_outline_width:0.0625rem;--_ui5_token_text_color:var(--sapTextColor);--_ui5_token_icon_color:var(--sapContent_IconColor);--_ui5_value_state_message_border:none;--_ui5-multi_combobox_token_margin_top:3px;--_ui5-multi_combobox_token_margin_top:1px;--_ui5_slider_progress_container_background:var(--sapField_BorderColor);--_ui5_slider_progress_border:none;--_ui5_slider_inner_height:0.25rem;--_ui5_slider_outer_height:1.6875rem;--_ui5_slider_progress_border_radius:0.25rem;--_ui5_slider_progress_background:var(--sapActiveColor);--_ui5_slider_handle_height:1.625rem;--_ui5_slider_handle_width:1.625rem;--_ui5_slider_handle_border:solid 0.125rem var(--sapField_BorderColor);--_ui5_slider_handle_background:var(--sapButton_Background);--_ui5_range_slider_handle_background:hsla(0,0%,100%,0.25);--_ui5_slider_handle_top:-0.825rem;--_ui5_slider_handle_margin_left:-0.9725rem;--_ui5_slider_handle_hover_background:var(--sapButton_Hover_Background);--_ui5_slider_handle_hover_border:var(--sapButton_Hover_BorderColor);--_ui5_slider_handle_outline:1px dotted var(--sapContent_FocusColor);--_ui5_slider_handle_outline_offset:0.075rem;--_ui5_range_slider_handle_hover_background:hsla(0,0%,100%,0.25);--_ui5_slider_progress_outline:0.0625rem dotted var(--sapContent_FocusColor);--_ui5_slider_progress_outline_offset:-0.8125rem;--_ui5_slider_tickmark_color:#89919a;--_ui5_slider_tickmark_top:-0.375rem;--_ui5_slider_disabled_opacity:0.4;--_ui5_slider_tooltip_fontsize:var(--sapFontSmallSize);--_ui5_slider_tooltip_color:var(--sapContent_LabelColor);--_ui5_slider_tooltip_background:var(--sapField_Background);--_ui5_slider_tooltip_border_radius:var(--sapElement_BorderCornerRadius);--_ui5_slider_tooltip_border_color:var(--sapField_BorderColor);--_ui5_slider_tooltip_padding:0.4125rem;--_ui5_slider_tooltip_height:1rem;--_ui5_slider_tooltip_box_shadow:none;--_ui5_slider_tooltip_min_width:2rem;--_ui5_slider_tooltip_bottom:2rem;--_ui5_slider_label_fontsize:var(--sapFontSmallSize);--_ui5_slider_label_color:var(--sapContent_LabelColor);--_ui5_slider_inner_min_width:4rem}\";","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default \":host([hidden]){display:none}:host([invalid]){display:none}:host(:not([hidden]).ui5_hovered){opacity:.7}:host{display:inline-block;width:1rem;height:1rem;color:var(--sapContent_NonInteractiveIconColor);fill:currentColor;outline:none}:host([interactive][focused]) .ui5-icon-root{outline:1px dotted var(--sapContent_FocusColor)}.ui5-icon-root{display:flex;outline:none;vertical-align:top}:host(:not([dir=ltr])) .ui5-icon-root[dir=rtl]{transform:scaleX(-1);transform-origin:center}\";","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getIconData, getIconDataSync } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\nimport createStyleInHead from \"@ui5/webcomponents-base/dist/util/createStyleInHead.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundleData, fetchI18nBundle } from \"@ui5/webcomponents-base/dist/asset-registries/i18n.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport isLegacyBrowser from \"@ui5/webcomponents-base/dist/isLegacyBrowser.js\";\nimport IconTemplate from \"./generated/templates/IconTemplate.lit.js\";\n\n// Styles\nimport iconCss from \"./generated/themes/Icon.css.js\";\n\nconst ICON_NOT_FOUND = \"ICON_NOT_FOUND\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-icon\",\n\tlanguageAware: true,\n\tproperties: /** @lends sap.ui.webcomponents.main.Icon.prototype */ {\n\t\t/**\n\t\t * Defines if the icon is interactive (focusable and pressable)\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.8\n\t\t */\n\t\tinteractive: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the unique identifier (icon name) of the component.\n\t\t * <br>\n\t\t *\n\t\t * To browse all available icons, see the\n\t\t * <ui5-link target=\"_blank\" href=\"https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html\" class=\"api-table-content-cell-link\">Icon Explorer</ui5-link>.\n\t\t * <br>\n\t\t *\n\t\t * Example:\n\t\t * <br>\n\t\t * <code>name='add'</code>, <code>name='delete'</code>, <code>name='employee'</code>.\n\t\t * <br><br>\n\t\t *\n\t\t * <b>Note:</b> To use the SAP Fiori Tools icons,\n\t\t * you need to set the <code>tnt</code> prefix in front of the icon's name.\n\t\t * <br>\n\t\t *\n\t\t * Example:\n\t\t * <br>\n\t\t * <code>name='tnt/antenna'</code>, <code>name='tnt/actor'</code>, <code>name='tnt/api'</code>.\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t*/\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the text alternative of the component.\n\t\t * If not provided a default text alternative will be set, if present.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Every icon should have a text alternative in order to\n\t\t * calculate its accessible name.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the component should have a tooltip.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tshowTooltip: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the accessibility role of the component.\n\t\t * @defaultvalue \"\"\n\t\t * @private\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\trole: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the aria hidden state of the component.\n\t\t * @private\n\t\t * @since 1.0.0-rc.15\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tpathData: {\n\t\t\ttype: String,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\taccData: {\n\t\t\ttype: Object,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t* @private\n\t\t*/\n\t\tinvalid: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\teffectiveAccessibleName: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: undefined,\n\t\t\tnoAttribute: true,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Icon.prototype */ {\n\t\t/**\n\t\t * Fired on mouseup, space and enter if icon is interactive\n\t\t * @private\n\t\t * @since 1.0.0-rc.8\n\t\t */\n\t\tclick: {},\n\t},\n};\n\n/**\n * @class\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-icon</code> component represents an SVG icon.\n * There are two main scenarios how the <code>ui5-icon</code> component is used:\n * as a purely decorative element; or as a visually appealing clickable area in the form of an icon button.\n * <br><br>\n * A large set of built-in icons is available\n * and they can be used by setting the <code>name</code> property on the <code>ui5-icon</code>.\n * But before using an icon, you need to import the desired icon.\n * <br>\n *\n * For the standard icon collection, you have to import an icon from the <code>@ui5/webcomponents-icons</code> package:\n * <br>\n * <code>import \"@ui5/webcomponents-icons/dist/employee.js\";</code>\n * <br>\n *\n * For the SAP Fiori Tools icon collection (supported since 1.0.0-rc.10), you have to import an icon from the <code>@ui5/webcomponents-icons-tnt</code> package:\n * <br>\n * <code>import \"@ui5/webcomponents-icons-tnt/dist/antenna.js\";</code>\n *\n * <br><br>\n * <h3>Keyboard Handling</h3>\n *\n * <ul>\n * <li>[SPACE, ENTER, RETURN] - Fires the <code>click</code> event if the <code>interactive</code> property is set to true.</li>\n * <li>[SHIFT] - If [SPACE] or [ENTER],[RETURN] is pressed, pressing [SHIFT] releases the ui5-icon without triggering the click event.</li>\n * </ul>\n * <br><br>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Icon.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Icon\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-icon\n * @implements sap.ui.webcomponents.main.IIcon\n * @public\n */\nclass Icon extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn IconTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn iconCss;\n\t}\n\n\tstatic async onDefine() {\n\t\tthis.createGlobalStyle(); // hide all icons until the first icon has rendered (and added the Icon.css)\n\t}\n\n\t_onfocusin(event) {\n\t\tif (this.interactive) {\n\t\t\tthis.focused = true;\n\t\t}\n\t}\n\n\t_onfocusout(event) {\n\t\tthis.focused = false;\n\t}\n\n\t_onkeydown(event) {\n\t\tif (!this.interactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\tthis.fireEvent(\"click\");\n\t\t}\n\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault(); // prevent scrolling\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\tif (this.interactive && isSpace(event)) {\n\t\t\tthis.fireEvent(\"click\");\n\t\t}\n\t}\n\n\t_onclick(event) {\n\t\tif (this.interactive) {\n\t\t\t// prevent the native event and fire custom event to ensure the noConfict \"ui5-click\" is fired\n\t\t\tevent.stopPropagation();\n\t\t\tthis.fireEvent(\"click\");\n\t\t}\n\t}\n\n\tget _dir() {\n\t\tif (!this.effectiveDir) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.ltr) {\n\t\t\treturn \"ltr\";\n\t\t}\n\n\t\treturn this.effectiveDir;\n\t}\n\n\tget effectiveAriaHidden() {\n\t\tif (this.ariaHidden === \"\") {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.ariaHidden;\n\t}\n\n\tget tabIndex() {\n\t\treturn this.interactive ? \"0\" : \"-1\";\n\t}\n\n\tget effectiveAccessibleRole() {\n\t\tif (this.role) {\n\t\t\treturn this.role;\n\t\t}\n\n\t\tif (this.interactive) {\n\t\t\treturn \"button\";\n\t\t}\n\n\t\treturn this.effectiveAccessibleName ? \"img\" : \"presentation\";\n\t}\n\n\tstatic createGlobalStyle() {\n\t\tif (isLegacyBrowser()) {\n\t\t\tconst styleElement = document.head.querySelector(`style[data-ui5-icon-global]`);\n\t\t\tif (!styleElement) {\n\t\t\t\tcreateStyleInHead(`ui5-icon { display: none !important; }`, { \"data-ui5-icon-global\": \"\" });\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic removeGlobalStyle() {\n\t\tif (isLegacyBrowser()) {\n\t\t\tconst styleElement = document.head.querySelector(`style[data-ui5-icon-global]`);\n\t\t\tif (styleElement) {\n\t\t\t\tdocument.head.removeChild(styleElement);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync onBeforeRendering() {\n\t\tconst name = this.name;\n\t\tif (!name) {\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(\"Icon name property is required\", this);\n\t\t}\n\t\tlet iconData = getIconDataSync(name);\n\t\tif (!iconData) {\n\t\t\ticonData = await getIconData(name);\n\t\t}\n\n\t\tif (iconData === ICON_NOT_FOUND) {\n\t\t\tthis.invalid = true;\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(`Required icon is not registered. You can either import the icon as a module in order to use it e.g. \"@ui5/webcomponents-icons/dist/${name.replace(\"sap-icon://\", \"\")}.js\", or setup a JSON build step and import \"@ui5/webcomponents-icons/dist/AllIcons.js\".`);\n\t\t}\n\n\t\tif (!iconData) {\n\t\t\tthis.invalid = true;\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(`Required icon is not registered. Invalid icon name: ${this.name}`);\n\t\t}\n\n\t\t// in case a new valid name is set, show the icon\n\t\tthis.invalid = false;\n\t\tthis.pathData = iconData.pathData;\n\t\tthis.accData = iconData.accData;\n\t\tthis.ltr = iconData.ltr;\n\t\tthis.packageName = iconData.packageName;\n\n\t\tif (this.accessibleName) {\n\t\t\tthis.effectiveAccessibleName = this.accessibleName;\n\t\t} else if (this.accData) {\n\t\t\tif (!getI18nBundleData(this.packageName)) {\n\t\t\t\tawait fetchI18nBundle(this.packageName);\n\t\t\t}\n\t\t\tconst i18nBundle = getI18nBundle(this.packageName);\n\t\t\tthis.effectiveAccessibleName = i18nBundle.getText(this.accData) || undefined;\n\t\t}\n\t}\n\n\tget hasIconTooltip() {\n\t\treturn this.showTooltip && this.effectiveAccessibleName;\n\t}\n\n\tasync onEnterDOM() {\n\t\tsetTimeout(() => {\n\t\t\tthis.constructor.removeGlobalStyle(); // remove the global style as Icon.css is already in place\n\t\t}, 0);\n\t}\n}\n\nIcon.define();\n\nexport default Icon;\n","const ARIA_LABEL_CARD_CONTENT = {key: \"ARIA_LABEL_CARD_CONTENT\", defaultText: \"Card Content\"};const ARIA_ROLEDESCRIPTION_CARD = {key: \"ARIA_ROLEDESCRIPTION_CARD\", defaultText: \"Card\"};const ARIA_ROLEDESCRIPTION_CARD_HEADER = {key: \"ARIA_ROLEDESCRIPTION_CARD_HEADER\", defaultText: \"Card Header\"};const ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER = {key: \"ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER\", defaultText: \"Interactive Card Header\"};const AVATAR_TOOLTIP = {key: \"AVATAR_TOOLTIP\", defaultText: \"Avatar\"};const AVATAR_GROUP_DISPLAYED_HIDDEN_LABEL = {key: \"AVATAR_GROUP_DISPLAYED_HIDDEN_LABEL\", defaultText: \"{0} displayed, {1} hidden.\"};const AVATAR_GROUP_SHOW_COMPLETE_LIST_LABEL = {key: \"AVATAR_GROUP_SHOW_COMPLETE_LIST_LABEL\", defaultText: \"Activate for complete list.\"};const AVATAR_GROUP_ARIA_LABEL_INDIVIDUAL = {key: \"AVATAR_GROUP_ARIA_LABEL_INDIVIDUAL\", defaultText: \"Individual avatars.\"};const AVATAR_GROUP_ARIA_LABEL_GROUP = {key: \"AVATAR_GROUP_ARIA_LABEL_GROUP\", defaultText: \"Conjoined avatars.\"};const AVATAR_GROUP_MOVE = {key: \"AVATAR_GROUP_MOVE\", defaultText: \"Press ARROW keys to move.\"};const BADGE_DESCRIPTION = {key: \"BADGE_DESCRIPTION\", defaultText: \"Badge\"};const BREADCRUMBS_ARIA_LABEL = {key: \"BREADCRUMBS_ARIA_LABEL\", defaultText: \"Breadcrumb Trail\"};const BREADCRUMBS_OVERFLOW_ARIA_LABEL = {key: \"BREADCRUMBS_OVERFLOW_ARIA_LABEL\", defaultText: \"More\"};const BREADCRUMBS_CANCEL_BUTTON = {key: \"BREADCRUMBS_CANCEL_BUTTON\", defaultText: \"Cancel\"};const BUSY_INDICATOR_TITLE = {key: \"BUSY_INDICATOR_TITLE\", defaultText: \"Please wait\"};const BUTTON_ARIA_TYPE_ACCEPT = {key: \"BUTTON_ARIA_TYPE_ACCEPT\", defaultText: \"Positive Action\"};const BUTTON_ARIA_TYPE_REJECT = {key: \"BUTTON_ARIA_TYPE_REJECT\", defaultText: \"Negative Action\"};const BUTTON_ARIA_TYPE_EMPHASIZED = {key: \"BUTTON_ARIA_TYPE_EMPHASIZED\", defaultText: \"Emphasized\"};const CAROUSEL_OF_TEXT = {key: \"CAROUSEL_OF_TEXT\", defaultText: \"of\"};const CAROUSEL_DOT_TEXT = {key: \"CAROUSEL_DOT_TEXT\", defaultText: \"Item {0} of {1} displayed\"};const CAROUSEL_PREVIOUS_ARROW_TEXT = {key: \"CAROUSEL_PREVIOUS_ARROW_TEXT\", defaultText: \"Previous Page\"};const CAROUSEL_NEXT_ARROW_TEXT = {key: \"CAROUSEL_NEXT_ARROW_TEXT\", defaultText: \"Next Page\"};const COLORPALETTE_CONTAINER_LABEL = {key: \"COLORPALETTE_CONTAINER_LABEL\", defaultText: \"Color Palette - Predefined Colors\"};const COLORPALETTE_COLOR_LABEL = {key: \"COLORPALETTE_COLOR_LABEL\", defaultText: \"Color\"};const COLOR_PALETTE_DIALOG_CANCEL_BUTTON = {key: \"COLOR_PALETTE_DIALOG_CANCEL_BUTTON\", defaultText: \"Cancel\"};const COLOR_PALETTE_DIALOG_OK_BUTTON = {key: \"COLOR_PALETTE_DIALOG_OK_BUTTON\", defaultText: \"OK\"};const COLOR_PALETTE_DIALOG_TITLE = {key: \"COLOR_PALETTE_DIALOG_TITLE\", defaultText: \"Change Color\"};const COLOR_PALETTE_MORE_COLORS_TEXT = {key: \"COLOR_PALETTE_MORE_COLORS_TEXT\", defaultText: \"More Colors...\"};const DATEPICKER_OPEN_ICON_TITLE = {key: \"DATEPICKER_OPEN_ICON_TITLE\", defaultText: \"Open Picker\"};const DATEPICKER_DATE_DESCRIPTION = {key: \"DATEPICKER_DATE_DESCRIPTION\", defaultText: \"Date Input\"};const DATETIME_DESCRIPTION = {key: \"DATETIME_DESCRIPTION\", defaultText: \"Date Time Input\"};const DATERANGE_DESCRIPTION = {key: \"DATERANGE_DESCRIPTION\", defaultText: \"Date Range Input\"};const DELETE = {key: \"DELETE\", defaultText: \"Delete\"};const FILEUPLOAD_BROWSE = {key: \"FILEUPLOAD_BROWSE\", defaultText: \"Browse...\"};const FILEUPLOADER_TITLE = {key: \"FILEUPLOADER_TITLE\", defaultText: \"Upload File\"};const GROUP_HEADER_TEXT = {key: \"GROUP_HEADER_TEXT\", defaultText: \"Group Header\"};const SELECT_OPTIONS = {key: \"SELECT_OPTIONS\", defaultText: \"Select Options\"};const INPUT_SUGGESTIONS = {key: \"INPUT_SUGGESTIONS\", defaultText: \"Suggestions Available\"};const INPUT_SUGGESTIONS_TITLE = {key: \"INPUT_SUGGESTIONS_TITLE\", defaultText: \"Select\"};const INPUT_SUGGESTIONS_ONE_HIT = {key: \"INPUT_SUGGESTIONS_ONE_HIT\", defaultText: \"1 result available\"};const INPUT_SUGGESTIONS_MORE_HITS = {key: \"INPUT_SUGGESTIONS_MORE_HITS\", defaultText: \"{0} results are available\"};const INPUT_SUGGESTIONS_NO_HIT = {key: \"INPUT_SUGGESTIONS_NO_HIT\", defaultText: \"No results\"};const LINK_SUBTLE = {key: \"LINK_SUBTLE\", defaultText: \"Subtle\"};const LINK_EMPHASIZED = {key: \"LINK_EMPHASIZED\", defaultText: \"Emphasized\"};const LIST_ITEM_POSITION = {key: \"LIST_ITEM_POSITION\", defaultText: \"List item {0} of {1}\"};const LIST_ITEM_SELECTED = {key: \"LIST_ITEM_SELECTED\", defaultText: \"Selected\"};const ARIA_LABEL_LIST_ITEM_CHECKBOX = {key: \"ARIA_LABEL_LIST_ITEM_CHECKBOX\", defaultText: \"Multiple Selection Mode\"};const MESSAGE_STRIP_CLOSE_BUTTON = {key: \"MESSAGE_STRIP_CLOSE_BUTTON\", defaultText: \"Message Strip Close\"};const MULTICOMBOBOX_DIALOG_OK_BUTTON = {key: \"MULTICOMBOBOX_DIALOG_OK_BUTTON\", defaultText: \"OK\"};const MULTIINPUT_ROLEDESCRIPTION_TEXT = {key: \"MULTIINPUT_ROLEDESCRIPTION_TEXT\", defaultText: \"Multi Value Input\"};const MULTIINPUT_SHOW_MORE_TOKENS = {key: \"MULTIINPUT_SHOW_MORE_TOKENS\", defaultText: \"{0} More\"};const PANEL_ICON = {key: \"PANEL_ICON\", defaultText: \"Expand/Collapse\"};const RANGE_SLIDER_ARIA_DESCRIPTION = {key: \"RANGE_SLIDER_ARIA_DESCRIPTION\", defaultText: \"Range\"};const RANGE_SLIDER_START_HANDLE_DESCRIPTION = {key: \"RANGE_SLIDER_START_HANDLE_DESCRIPTION\", defaultText: \"Left handle\"};const RANGE_SLIDER_END_HANDLE_DESCRIPTION = {key: \"RANGE_SLIDER_END_HANDLE_DESCRIPTION\", defaultText: \"Right handle\"};const RATING_INDICATOR_TOOLTIP_TEXT = {key: \"RATING_INDICATOR_TOOLTIP_TEXT\", defaultText: \"Rating\"};const RATING_INDICATOR_TEXT = {key: \"RATING_INDICATOR_TEXT\", defaultText: \"Rating Indicator\"};const RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON = {key: \"RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON\", defaultText: \"Decline\"};const SEGMENTEDBUTTON_ARIA_DESCRIPTION = {key: \"SEGMENTEDBUTTON_ARIA_DESCRIPTION\", defaultText: \"Segmented button group\"};const SEGMENTEDBUTTON_ARIA_DESCRIBEDBY = {key: \"SEGMENTEDBUTTON_ARIA_DESCRIBEDBY\", defaultText: \"Press SPACE or ENTER to select an item\"};const SEGMENTEDBUTTONITEM_ARIA_DESCRIPTION = {key: \"SEGMENTEDBUTTONITEM_ARIA_DESCRIPTION\", defaultText: \"Segmented button\"};const SLIDER_ARIA_DESCRIPTION = {key: \"SLIDER_ARIA_DESCRIPTION\", defaultText: \"Slider handle\"};const SWITCH_ON = {key: \"SWITCH_ON\", defaultText: \"On\"};const SWITCH_OFF = {key: \"SWITCH_OFF\", defaultText: \"Off\"};const LOAD_MORE_TEXT = {key: \"LOAD_MORE_TEXT\", defaultText: \"More\"};const TABLE_HEADER_ROW_TEXT = {key: \"TABLE_HEADER_ROW_TEXT\", defaultText: \"Header Row\"};const TABLE_ROW_POSITION = {key: \"TABLE_ROW_POSITION\", defaultText: \"{0} of {1}\"};const TABLE_GROUP_ROW_ARIA_LABEL = {key: \"TABLE_GROUP_ROW_ARIA_LABEL\", defaultText: \"Group Header Row\"};const ARIA_LABEL_ROW_SELECTION = {key: \"ARIA_LABEL_ROW_SELECTION\", defaultText: \"Item Selection\"};const ARIA_LABEL_SELECT_ALL_CHECKBOX = {key: \"ARIA_LABEL_SELECT_ALL_CHECKBOX\", defaultText: \"Select All Rows\"};const TABCONTAINER_NEXT_ICON_ACC_NAME = {key: \"TABCONTAINER_NEXT_ICON_ACC_NAME\", defaultText: \"Next\"};const TABCONTAINER_PREVIOUS_ICON_ACC_NAME = {key: \"TABCONTAINER_PREVIOUS_ICON_ACC_NAME\", defaultText: \"Previous\"};const TABCONTAINER_OVERFLOW_MENU_TITLE = {key: \"TABCONTAINER_OVERFLOW_MENU_TITLE\", defaultText: \"Overflow Menu\"};const TEXTAREA_CHARACTERS_LEFT = {key: \"TEXTAREA_CHARACTERS_LEFT\", defaultText: \"{0} characters remaining\"};const TEXTAREA_CHARACTERS_EXCEEDED = {key: \"TEXTAREA_CHARACTERS_EXCEEDED\", defaultText: \"{0} characters over limit\"};const TIMEPICKER_HOURS_LABEL = {key: \"TIMEPICKER_HOURS_LABEL\", defaultText: \"Hours\"};const TIMEPICKER_MINUTES_LABEL = {key: \"TIMEPICKER_MINUTES_LABEL\", defaultText: \"Minutes\"};const TIMEPICKER_SECONDS_LABEL = {key: \"TIMEPICKER_SECONDS_LABEL\", defaultText: \"Seconds\"};const TIMEPICKER_PERIODS_LABEL = {key: \"TIMEPICKER_PERIODS_LABEL\", defaultText: \"AM/PM\"};const TIMEPICKER_SUBMIT_BUTTON = {key: \"TIMEPICKER_SUBMIT_BUTTON\", defaultText: \"OK\"};const TIMEPICKER_CANCEL_BUTTON = {key: \"TIMEPICKER_CANCEL_BUTTON\", defaultText: \"Cancel\"};const TIMEPICKER_INPUT_DESCRIPTION = {key: \"TIMEPICKER_INPUT_DESCRIPTION\", defaultText: \"Time Input\"};const DURATION_INPUT_DESCRIPTION = {key: \"DURATION_INPUT_DESCRIPTION\", defaultText: \"Duration Input\"};const DATETIME_PICKER_DATE_BUTTON = {key: \"DATETIME_PICKER_DATE_BUTTON\", defaultText: \"Date\"};const DATETIME_PICKER_TIME_BUTTON = {key: \"DATETIME_PICKER_TIME_BUTTON\", defaultText: \"Time\"};const TOKEN_ARIA_DELETABLE = {key: \"TOKEN_ARIA_DELETABLE\", defaultText: \"Deletable\"};const TOKENIZER_ARIA_CONTAIN_TOKEN = {key: \"TOKENIZER_ARIA_CONTAIN_TOKEN\", defaultText: \"No Tokens\"};const TOKENIZER_ARIA_CONTAIN_ONE_TOKEN = {key: \"TOKENIZER_ARIA_CONTAIN_ONE_TOKEN\", defaultText: \"Contains 1 token\"};const TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS = {key: \"TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS\", defaultText: \"Contains {0} tokens\"};const TOKENIZER_ARIA_LABEL = {key: \"TOKENIZER_ARIA_LABEL\", defaultText: \"Tokenizer\"};const TOKENIZER_POPOVER_REMOVE = {key: \"TOKENIZER_POPOVER_REMOVE\", defaultText: \"Remove\"};const TREE_ITEM_ARIA_LABEL = {key: \"TREE_ITEM_ARIA_LABEL\", defaultText: \"Tree Item\"};const TREE_ITEM_EXPAND_NODE = {key: \"TREE_ITEM_EXPAND_NODE\", defaultText: \"Expand Node\"};const TREE_ITEM_COLLAPSE_NODE = {key: \"TREE_ITEM_COLLAPSE_NODE\", defaultText: \"Collapse Node\"};const VALUE_STATE_ERROR = {key: \"VALUE_STATE_ERROR\", defaultText: \"Invalid entry\"};const VALUE_STATE_WARNING = {key: \"VALUE_STATE_WARNING\", defaultText: \"Warning issued\"};const VALUE_STATE_INFORMATION = {key: \"VALUE_STATE_INFORMATION\", defaultText: \"Informative entry\"};const VALUE_STATE_SUCCESS = {key: \"VALUE_STATE_SUCCESS\", defaultText: \"Entry successfully validated\"};const CALENDAR_HEADER_NEXT_BUTTON = {key: \"CALENDAR_HEADER_NEXT_BUTTON\", defaultText: \"Next\"};const CALENDAR_HEADER_PREVIOUS_BUTTON = {key: \"CALENDAR_HEADER_PREVIOUS_BUTTON\", defaultText: \"Previous\"};const DAY_PICKER_WEEK_NUMBER_TEXT = {key: \"DAY_PICKER_WEEK_NUMBER_TEXT\", defaultText: \"Week Number\"};const DAY_PICKER_NON_WORKING_DAY = {key: \"DAY_PICKER_NON_WORKING_DAY\", defaultText: \"Non-Working Day\"};const DAY_PICKER_TODAY = {key: \"DAY_PICKER_TODAY\", defaultText: \"Today\"};const STEPINPUT_DEC_ICON_TITLE = {key: \"STEPINPUT_DEC_ICON_TITLE\", defaultText: \"Decrease\"};const STEPINPUT_INC_ICON_TITLE = {key: \"STEPINPUT_INC_ICON_TITLE\", defaultText: \"Increase\"};\nexport {ARIA_LABEL_CARD_CONTENT,ARIA_ROLEDESCRIPTION_CARD,ARIA_ROLEDESCRIPTION_CARD_HEADER,ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER,AVATAR_TOOLTIP,AVATAR_GROUP_DISPLAYED_HIDDEN_LABEL,AVATAR_GROUP_SHOW_COMPLETE_LIST_LABEL,AVATAR_GROUP_ARIA_LABEL_INDIVIDUAL,AVATAR_GROUP_ARIA_LABEL_GROUP,AVATAR_GROUP_MOVE,BADGE_DESCRIPTION,BREADCRUMBS_ARIA_LABEL,BREADCRUMBS_OVERFLOW_ARIA_LABEL,BREADCRUMBS_CANCEL_BUTTON,BUSY_INDICATOR_TITLE,BUTTON_ARIA_TYPE_ACCEPT,BUTTON_ARIA_TYPE_REJECT,BUTTON_ARIA_TYPE_EMPHASIZED,CAROUSEL_OF_TEXT,CAROUSEL_DOT_TEXT,CAROUSEL_PREVIOUS_ARROW_TEXT,CAROUSEL_NEXT_ARROW_TEXT,COLORPALETTE_CONTAINER_LABEL,COLORPALETTE_COLOR_LABEL,COLOR_PALETTE_DIALOG_CANCEL_BUTTON,COLOR_PALETTE_DIALOG_OK_BUTTON,COLOR_PALETTE_DIALOG_TITLE,COLOR_PALETTE_MORE_COLORS_TEXT,DATEPICKER_OPEN_ICON_TITLE,DATEPICKER_DATE_DESCRIPTION,DATETIME_DESCRIPTION,DATERANGE_DESCRIPTION,DELETE,FILEUPLOAD_BROWSE,FILEUPLOADER_TITLE,GROUP_HEADER_TEXT,SELECT_OPTIONS,INPUT_SUGGESTIONS,INPUT_SUGGESTIONS_TITLE,INPUT_SUGGESTIONS_ONE_HIT,INPUT_SUGGESTIONS_MORE_HITS,INPUT_SUGGESTIONS_NO_HIT,LINK_SUBTLE,LINK_EMPHASIZED,LIST_ITEM_POSITION,LIST_ITEM_SELECTED,ARIA_LABEL_LIST_ITEM_CHECKBOX,MESSAGE_STRIP_CLOSE_BUTTON,MULTICOMBOBOX_DIALOG_OK_BUTTON,MULTIINPUT_ROLEDESCRIPTION_TEXT,MULTIINPUT_SHOW_MORE_TOKENS,PANEL_ICON,RANGE_SLIDER_ARIA_DESCRIPTION,RANGE_SLIDER_START_HANDLE_DESCRIPTION,RANGE_SLIDER_END_HANDLE_DESCRIPTION,RATING_INDICATOR_TOOLTIP_TEXT,RATING_INDICATOR_TEXT,RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON,SEGMENTEDBUTTON_ARIA_DESCRIPTION,SEGMENTEDBUTTON_ARIA_DESCRIBEDBY,SEGMENTEDBUTTONITEM_ARIA_DESCRIPTION,SLIDER_ARIA_DESCRIPTION,SWITCH_ON,SWITCH_OFF,LOAD_MORE_TEXT,TABLE_HEADER_ROW_TEXT,TABLE_ROW_POSITION,TABLE_GROUP_ROW_ARIA_LABEL,ARIA_LABEL_ROW_SELECTION,ARIA_LABEL_SELECT_ALL_CHECKBOX,TABCONTAINER_NEXT_ICON_ACC_NAME,TABCONTAINER_PREVIOUS_ICON_ACC_NAME,TABCONTAINER_OVERFLOW_MENU_TITLE,TEXTAREA_CHARACTERS_LEFT,TEXTAREA_CHARACTERS_EXCEEDED,TIMEPICKER_HOURS_LABEL,TIMEPICKER_MINUTES_LABEL,TIMEPICKER_SECONDS_LABEL,TIMEPICKER_PERIODS_LABEL,TIMEPICKER_SUBMIT_BUTTON,TIMEPICKER_CANCEL_BUTTON,TIMEPICKER_INPUT_DESCRIPTION,DURATION_INPUT_DESCRIPTION,DATETIME_PICKER_DATE_BUTTON,DATETIME_PICKER_TIME_BUTTON,TOKEN_ARIA_DELETABLE,TOKENIZER_ARIA_CONTAIN_TOKEN,TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,TOKENIZER_ARIA_LABEL,TOKENIZER_POPOVER_REMOVE,TREE_ITEM_ARIA_LABEL,TREE_ITEM_EXPAND_NODE,TREE_ITEM_COLLAPSE_NODE,VALUE_STATE_ERROR,VALUE_STATE_WARNING,VALUE_STATE_INFORMATION,VALUE_STATE_SUCCESS,CALENDAR_HEADER_NEXT_BUTTON,CALENDAR_HEADER_PREVIOUS_BUTTON,DAY_PICKER_WEEK_NUMBER_TEXT,DAY_PICKER_NON_WORKING_DAY,DAY_PICKER_TODAY,STEPINPUT_DEC_ICON_TITLE,STEPINPUT_INC_ICON_TITLE};","import { registerThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemePropertiesLoader(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", () => defaultThemeBase);\nregisterThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_fiori_3\", () => defaultTheme);\nexport default \".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:-1000px;top:-1000px;pointer-events:none}:host(:not([hidden])){display:inline-block;width:100%}.ui5-card-root{width:100%;height:100%;color:var(--sapGroup_TitleTextColor);background:var(--sapTile_Background);box-shadow:var(--_ui5_card_box_shadow);border-radius:.25rem;border:1px solid var(--_ui5_card_border_color);overflow:hidden;font-family:\\\"72override\\\",var(--sapFontFamily);font-size:var(--sapFontSize);box-sizing:border-box}.ui5-card-root.ui5-card--nocontent{height:auto}.ui5-card-root.ui5-card--nocontent .ui5-card-header-root{border-bottom:none}.ui5-card-root .ui5-card-header-root{display:block;border-bottom:1px solid var(--_ui5_card_header_border_color)}\";","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { fetchI18nBundle, getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport CardTemplate from \"./generated/templates/CardTemplate.lit.js\";\nimport Icon from \"./Icon.js\";\n\nimport {\n\tARIA_ROLEDESCRIPTION_CARD,\n\tARIA_LABEL_CARD_CONTENT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport cardCss from \"./generated/themes/Card.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-card\",\n\tlanguageAware: true,\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.Card.prototype */ {\n\n\t\t/**\n\t\t * Defines the content of the component.\n\t\t * @type {HTMLElement[]}\n\t\t * @slot content\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\tpropertyName: \"content\",\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * Defines the header of the component.\n\t\t * <br><br>\n\t\t * <b>Note:</b> Use <code>ui5-card-header</code> for the intended design.\n\t\t * @type {HTMLElement[]}\n         * @since 1.0.0-rc.15\n\t\t * @slot content\n\t\t * @public\n\t\t */\n\t\theader: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tproperties: /** @lends sap.ui.webcomponents.main.Card.prototype */ {\n\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Card.prototype */ {\n\n\t},\n};\n\n/**\n * @class\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-card</code> is a component that represents information in the form of a\n * tile with separate header and content areas.\n * The content area of a <code>ui5-card</code> can be arbitrary HTML content.\n * The header can be used through slot <code>header</code>. For which there is a <code>ui5-card-header</code> component to achieve the card look and fill.\n *\n * Note: We recommend the usage of <code>ui5-card-header</code> for the header slot, so advantage can be taken for keyboard handling, styling and accessibility.\n *\n * <h3>CSS Shadow Parts</h3>\n *\n * <ui5-link target=\"_blank\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/::part\">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Card\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents/dist/CardHeader.js\";</code> (for <code>ui5-card-header</code>)\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Card\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-card\n * @public\n */\nclass Card extends UI5Element {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.i18nBundle = getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn CardTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn cardCss;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\t\"ui5-card-root\": true,\n\t\t\t\"ui5-card--nocontent\": !this.content.length,\n\t\t};\n\t}\n\n\tget hasHeader() {\n\t\treturn !!this.header.length;\n\t}\n\n\tget ariaCardRoleDescription() {\n\t\treturn this.i18nBundle.getText(ARIA_ROLEDESCRIPTION_CARD);\n\t}\n\n\tget ariaCardContentLabel() {\n\t\treturn this.i18nBundle.getText(ARIA_LABEL_CARD_CONTENT);\n\t}\n\n\tget ariaLabelledByCard() {\n\t\tlet labels;\n\t\tif (this.hasHeader) {\n\t\t\tlabels = this.header[0].hasAttribute(\"title-text\") ? `${this._id}--header-title ${this._id}-desc` : `${this._id}-desc`;\n\t\t} else {\n\t\t\tlabels = `${this._id}-desc`;\n\t\t}\n\t\treturn labels;\n\t}\n\n\tstatic get dependencies() {\n\t\treturn [Icon];\n\t}\n\n\tstatic async onDefine() {\n\t\tawait fetchI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nCard.define();\n\nexport default Card;\n","import CardBase from '@ui5/webcomponents/dist/Card.js';\nimport { css } from 'lit';\nimport cardCss from '@ui5/webcomponents/dist/generated/themes/Card.css.js';\n\nexport class Card extends CardBase {\n  static get styles() {\n    return [\n      cardCss,\n      css`\n        :host {\n          display: flex !important;\n        }\n        .ui5-card-root {\n          display: flex !important;\n          flex-direction: column;\n        }\n        .ui5-card-root > div {\n          flex-direction: column;\n          display: flex !important;\n          flex: 1;\n          height: 100%;\n        }\n      `,\n    ];\n  }\n}\n\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * TypeScript version of the decorator\n * @see https://www.typescriptlang.org/docs/handbook/decorators.html#property-decorators\n */\nfunction tsDecorator(prototype, name, descriptor) {\n    const constructor = prototype.constructor;\n    if (!descriptor) {\n        /**\n         * lit uses internal properties with two leading underscores to\n         * provide storage for accessors\n         */\n        const litInternalPropertyKey = `__${name}`;\n        descriptor =\n            constructor.getPropertyDescriptor(name, litInternalPropertyKey);\n        if (!descriptor) {\n            throw new Error('@ariaProperty must be used after a @property decorator');\n        }\n    }\n    // descriptor must exist at this point, reassign so typescript understands\n    const propDescriptor = descriptor;\n    let attribute = '';\n    if (!propDescriptor.set) {\n        throw new Error(`@ariaProperty requires a setter for ${name}`);\n    }\n    // TODO(b/202853219): Remove this check when internal tooling is\n    // compatible\n    // tslint:disable-next-line:no-any bail if applied to internal generated class\n    if (prototype.dispatchWizEvent) {\n        return descriptor;\n    }\n    const wrappedDescriptor = {\n        configurable: true,\n        enumerable: true,\n        set(value) {\n            if (attribute === '') {\n                const options = constructor.getPropertyOptions(name);\n                // if attribute is not a string, use `name` instead\n                attribute =\n                    typeof options.attribute === 'string' ? options.attribute : name;\n            }\n            if (this.hasAttribute(attribute)) {\n                this.removeAttribute(attribute);\n            }\n            propDescriptor.set.call(this, value);\n        }\n    };\n    if (propDescriptor.get) {\n        wrappedDescriptor.get = function () {\n            return propDescriptor.get.call(this);\n        };\n    }\n    return wrappedDescriptor;\n}\n/**\n * A property decorator proxies an aria attribute to an internal node\n *\n * This decorator is only intended for use with ARIA attributes, such as `role`\n * and `aria-label` due to screenreader needs.\n *\n * Upon first render, `@ariaProperty` will remove the attribute from the host\n * element to prevent screenreaders from reading the host instead of the\n * internal node.\n *\n * This decorator should only be used for non-Symbol public fields decorated\n * with `@property`, or on a setter with an optional getter.\n *\n * @example\n * ```ts\n * class MyElement {\n *   @ariaProperty\n *   @property({ type: String, attribute: 'aria-label' })\n *   ariaLabel!: string;\n * }\n * ```\n * @category Decorator\n * @ExportDecoratedItems\n */\nexport function ariaProperty(protoOrDescriptor, name, \n// tslint:disable-next-line:no-any any is required as a return type from decorators\ndescriptor) {\n    if (name !== undefined) {\n        return tsDecorator(protoOrDescriptor, name, descriptor);\n    }\n    else {\n        throw new Error('@ariaProperty only supports TypeScript Decorators');\n    }\n}\n//# sourceMappingURL=aria-property.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\n// Style preference for leading underscores.\n// tslint:disable:strip-private-property-underscore\nimport { ariaProperty } from '@material/mwc-base/aria-property.js';\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n/** @soyCompatible */\nexport class CircularProgressBase extends LitElement {\n    constructor() {\n        super(...arguments);\n        this.indeterminate = false;\n        this.progress = 0;\n        this.density = 0;\n        this.closed = false;\n    }\n    open() {\n        this.closed = false;\n    }\n    close() {\n        this.closed = true;\n    }\n    /**\n     * @soyTemplate\n     */\n    render() {\n        /** @classMap */\n        const classes = {\n            'mdc-circular-progress--closed': this.closed,\n            'mdc-circular-progress--indeterminate': this.indeterminate,\n        };\n        const containerSideLength = 48 + this.density * 4;\n        /** @styleMap */\n        const styles = {\n            'width': `${containerSideLength}px`,\n            'height': `${containerSideLength}px`,\n        };\n        return html `\n      <div\n        class=\"mdc-circular-progress ${classMap(classes)}\"\n        style=\"${styleMap(styles)}\"\n        role=\"progressbar\"\n        aria-label=\"${ifDefined(this.ariaLabel)}\"\n        aria-valuemin=\"0\"\n        aria-valuemax=\"1\"\n        aria-valuenow=\"${ifDefined(this.indeterminate ? undefined : this.progress)}\">\n        ${this.renderDeterminateContainer()}\n        ${this.renderIndeterminateContainer()}\n      </div>`;\n    }\n    /**\n     * @soyTemplate\n     */\n    renderDeterminateContainer() {\n        const sideLength = 48 + this.density * 4;\n        const center = sideLength / 2;\n        const circleRadius = this.density >= -3 ? 18 + this.density * 11 / 6 :\n            12.5 + (this.density + 3) * 5 / 4;\n        const circumference = 2 * 3.1415926 * circleRadius;\n        const determinateStrokeDashOffset = (1 - this.progress) * circumference;\n        const strokeWidth = this.density >= -3 ? 4 + this.density * (1 / 3) :\n            3 + (this.density + 3) * (1 / 6);\n        return html `\n      <div class=\"mdc-circular-progress__determinate-container\">\n        <svg class=\"mdc-circular-progress__determinate-circle-graphic\"\n             viewBox=\"0 0 ${sideLength} ${sideLength}\">\n          <circle class=\"mdc-circular-progress__determinate-track\"\n                  cx=\"${center}\" cy=\"${center}\" r=\"${circleRadius}\"\n                  stroke-width=\"${strokeWidth}\"></circle>\n          <circle class=\"mdc-circular-progress__determinate-circle\"\n                  cx=\"${center}\" cy=\"${center}\" r=\"${circleRadius}\"\n                  stroke-dasharray=\"${2 * 3.1415926 * circleRadius}\"\n                  stroke-dashoffset=\"${determinateStrokeDashOffset}\"\n                  stroke-width=\"${strokeWidth}\"></circle>\n        </svg>\n      </div>`;\n    }\n    /**\n     * @soyTemplate\n     */\n    renderIndeterminateContainer() {\n        return html `\n      <div class=\"mdc-circular-progress__indeterminate-container\">\n        <div class=\"mdc-circular-progress__spinner-layer\">\n          ${this.renderIndeterminateSpinnerLayer()}\n        </div>\n      </div>`;\n    }\n    /**\n     * @soyTemplate\n     */\n    renderIndeterminateSpinnerLayer() {\n        const sideLength = 48 + this.density * 4;\n        const center = sideLength / 2;\n        const circleRadius = this.density >= -3 ? 18 + this.density * 11 / 6 :\n            12.5 + (this.density + 3) * 5 / 4;\n        const circumference = 2 * 3.1415926 * circleRadius;\n        const halfCircumference = 0.5 * circumference;\n        const strokeWidth = this.density >= -3 ? 4 + this.density * (1 / 3) :\n            3 + (this.density + 3) * (1 / 6);\n        return html `\n        <div class=\"mdc-circular-progress__circle-clipper mdc-circular-progress__circle-left\">\n          <svg class=\"mdc-circular-progress__indeterminate-circle-graphic\"\n               viewBox=\"0 0 ${sideLength} ${sideLength}\">\n            <circle cx=\"${center}\" cy=\"${center}\" r=\"${circleRadius}\"\n                    stroke-dasharray=\"${circumference}\"\n                    stroke-dashoffset=\"${halfCircumference}\"\n                    stroke-width=\"${strokeWidth}\"></circle>\n          </svg>\n        </div>\n        <div class=\"mdc-circular-progress__gap-patch\">\n          <svg class=\"mdc-circular-progress__indeterminate-circle-graphic\"\n               viewBox=\"0 0 ${sideLength} ${sideLength}\">\n            <circle cx=\"${center}\" cy=\"${center}\" r=\"${circleRadius}\"\n                    stroke-dasharray=\"${circumference}\"\n                    stroke-dashoffset=\"${halfCircumference}\"\n                    stroke-width=\"${strokeWidth * 0.8}\"></circle>\n          </svg>\n        </div>\n        <div class=\"mdc-circular-progress__circle-clipper mdc-circular-progress__circle-right\">\n          <svg class=\"mdc-circular-progress__indeterminate-circle-graphic\"\n               viewBox=\"0 0 ${sideLength} ${sideLength}\">\n            <circle cx=\"${center}\" cy=\"${center}\" r=\"${circleRadius}\"\n                    stroke-dasharray=\"${circumference}\"\n                    stroke-dashoffset=\"${halfCircumference}\"\n                    stroke-width=\"${strokeWidth}\"></circle>\n          </svg>\n        </div>`;\n    }\n    update(changedProperties) {\n        super.update(changedProperties);\n        // Bound progress value in interval [0, 1].\n        if (changedProperties.has('progress')) {\n            if (this.progress > 1) {\n                this.progress = 1;\n            }\n            if (this.progress < 0) {\n                this.progress = 0;\n            }\n        }\n    }\n}\n__decorate([\n    property({ type: Boolean, reflect: true })\n], CircularProgressBase.prototype, \"indeterminate\", void 0);\n__decorate([\n    property({ type: Number, reflect: true })\n], CircularProgressBase.prototype, \"progress\", void 0);\n__decorate([\n    property({ type: Number, reflect: true })\n], CircularProgressBase.prototype, \"density\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true })\n], CircularProgressBase.prototype, \"closed\", void 0);\n__decorate([\n    ariaProperty,\n    property({ type: String, attribute: 'aria-label' })\n], CircularProgressBase.prototype, \"ariaLabel\", void 0);\n//# sourceMappingURL=mwc-circular-progress-base.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-LIcense-Identifier: Apache-2.0\n */\nimport { css } from 'lit';\nexport const styles = css `.mdc-circular-progress__determinate-circle,.mdc-circular-progress__indeterminate-circle-graphic{stroke:#6200ee;stroke:var(--mdc-theme-primary, #6200ee)}.mdc-circular-progress__determinate-track{stroke:transparent}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:transparent}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}:host{display:inline-flex}.mdc-circular-progress__determinate-track{stroke:transparent;stroke:var(--mdc-circular-progress-track-color, transparent)}`;\n//# sourceMappingURL=mwc-circular-progress.css.js.map","import { CircularProgressBase } from '@material/mwc-circular-progress/mwc-circular-progress-base';\nimport { styles } from '@material/mwc-circular-progress/mwc-circular-progress.css';\n\nexport class CircularProgress extends CircularProgressBase {\n  static styles = [styles];\n}\n\n","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Style preference for leading underscores.\n// tslint:disable:strip-private-property-underscore\n/**\n * Determines whether a node is an element.\n *\n * @param node Node to check\n */\nexport const isNodeElement = (node) => {\n    return node.nodeType === Node.ELEMENT_NODE;\n};\nexport function addHasRemoveClass(element) {\n    return {\n        addClass: (className) => {\n            element.classList.add(className);\n        },\n        removeClass: (className) => {\n            element.classList.remove(className);\n        },\n        hasClass: (className) => element.classList.contains(className),\n    };\n}\nlet supportsPassive = false;\nconst fn = () => { };\nconst optionsBlock = {\n    get passive() {\n        supportsPassive = true;\n        return false;\n    }\n};\ndocument.addEventListener('x', fn, optionsBlock);\ndocument.removeEventListener('x', fn);\n/**\n * Do event listeners suport the `passive` option?\n */\nexport const supportsPassiveEventListener = supportsPassive;\nexport const deepActiveElementPath = (doc = window.document) => {\n    let activeElement = doc.activeElement;\n    const path = [];\n    if (!activeElement) {\n        return path;\n    }\n    while (activeElement) {\n        path.push(activeElement);\n        if (activeElement.shadowRoot) {\n            activeElement = activeElement.shadowRoot.activeElement;\n        }\n        else {\n            break;\n        }\n    }\n    return path;\n};\nexport const doesElementContainFocus = (element) => {\n    const activePath = deepActiveElementPath();\n    if (!activePath.length) {\n        return false;\n    }\n    const deepActiveElement = activePath[activePath.length - 1];\n    const focusEv = new Event('check-if-focused', { bubbles: true, composed: true });\n    let composedPath = [];\n    const listener = (ev) => {\n        composedPath = ev.composedPath();\n    };\n    document.body.addEventListener('check-if-focused', listener);\n    deepActiveElement.dispatchEvent(focusEv);\n    document.body.removeEventListener('check-if-focused', listener);\n    return composedPath.indexOf(element) !== -1;\n};\n//# sourceMappingURL=utils.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { LitElement } from 'lit';\nexport { addHasRemoveClass } from './utils.js';\n/** @soyCompatible */\nexport class BaseElement extends LitElement {\n    click() {\n        if (this.mdcRoot) {\n            this.mdcRoot.focus();\n            this.mdcRoot.click();\n            return;\n        }\n        super.click();\n    }\n    /**\n     * Create and attach the MDC Foundation to the instance\n     */\n    createFoundation() {\n        if (this.mdcFoundation !== undefined) {\n            this.mdcFoundation.destroy();\n        }\n        if (this.mdcFoundationClass) {\n            this.mdcFoundation = new this.mdcFoundationClass(this.createAdapter());\n            this.mdcFoundation.init();\n        }\n    }\n    firstUpdated() {\n        this.createFoundation();\n    }\n}\n//# sourceMappingURL=base-element.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Specifies an observer callback that is run when the decorated property\n * changes. The observer receives the current and old value as arguments.\n */\nexport const observer = (observer) => \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n(proto, propName) => {\n    // if we haven't wrapped `updated` in this class, do so\n    if (!proto.constructor\n        ._observers) {\n        proto.constructor._observers = new Map();\n        const userUpdated = proto.updated;\n        proto.updated = function (changedProperties) {\n            userUpdated.call(this, changedProperties);\n            changedProperties.forEach((v, k) => {\n                const observers = this.constructor\n                    ._observers;\n                const observer = observers.get(k);\n                if (observer !== undefined) {\n                    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                    observer.call(this, this[k], v);\n                }\n            });\n        };\n        // clone any existing observers (superclasses)\n        // eslint-disable-next-line no-prototype-builtins\n    }\n    else if (!proto.constructor.hasOwnProperty('_observers')) {\n        const observers = proto.constructor._observers;\n        proto.constructor._observers = new Map();\n        observers.forEach(\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        (v, k) => proto.constructor._observers.set(k, v));\n    }\n    // set this method\n    proto.constructor._observers.set(propName, observer);\n};\n//# sourceMappingURL=observer.js.map","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar MDCFoundation = /** @class */ (function () {\n    function MDCFoundation(adapter) {\n        if (adapter === void 0) { adapter = {}; }\n        this.adapter = adapter;\n    }\n    Object.defineProperty(MDCFoundation, \"cssClasses\", {\n        get: function () {\n            // Classes extending MDCFoundation should implement this method to return an object which exports every\n            // CSS class the foundation class needs as a property. e.g. {ACTIVE: 'mdc-component--active'}\n            return {};\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MDCFoundation, \"strings\", {\n        get: function () {\n            // Classes extending MDCFoundation should implement this method to return an object which exports all\n            // semantic strings as constants. e.g. {ARIA_ROLE: 'tablist'}\n            return {};\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MDCFoundation, \"numbers\", {\n        get: function () {\n            // Classes extending MDCFoundation should implement this method to return an object which exports all\n            // of its semantic numbers as constants. e.g. {ANIMATION_DELAY_MS: 350}\n            return {};\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MDCFoundation, \"defaultAdapter\", {\n        get: function () {\n            // Classes extending MDCFoundation may choose to implement this getter in order to provide a convenient\n            // way of viewing the necessary methods of an adapter. In the future, this could also be used for adapter\n            // validation.\n            return {};\n        },\n        enumerable: false,\n        configurable: true\n    });\n    MDCFoundation.prototype.init = function () {\n        // Subclasses should override this method to perform initialization routines (registering events, etc.)\n    };\n    MDCFoundation.prototype.destroy = function () {\n        // Subclasses should override this method to perform de-initialization routines (de-registering events, etc.)\n    };\n    return MDCFoundation;\n}());\nexport { MDCFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCFoundation;\n//# sourceMappingURL=foundation.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar cssClasses = {\n    CLOSING: 'mdc-snackbar--closing',\n    OPEN: 'mdc-snackbar--open',\n    OPENING: 'mdc-snackbar--opening',\n};\nvar strings = {\n    ACTION_SELECTOR: '.mdc-snackbar__action',\n    ARIA_LIVE_LABEL_TEXT_ATTR: 'data-mdc-snackbar-label-text',\n    CLOSED_EVENT: 'MDCSnackbar:closed',\n    CLOSING_EVENT: 'MDCSnackbar:closing',\n    DISMISS_SELECTOR: '.mdc-snackbar__dismiss',\n    LABEL_SELECTOR: '.mdc-snackbar__label',\n    OPENED_EVENT: 'MDCSnackbar:opened',\n    OPENING_EVENT: 'MDCSnackbar:opening',\n    REASON_ACTION: 'action',\n    REASON_DISMISS: 'dismiss',\n    SURFACE_SELECTOR: '.mdc-snackbar__surface',\n};\nvar numbers = {\n    DEFAULT_AUTO_DISMISS_TIMEOUT_MS: 5000,\n    INDETERMINATE: -1,\n    MAX_AUTO_DISMISS_TIMEOUT_MS: 10000,\n    MIN_AUTO_DISMISS_TIMEOUT_MS: 4000,\n    // These variables need to be kept in sync with the values in _variables.scss.\n    SNACKBAR_ANIMATION_CLOSE_TIME_MS: 75,\n    SNACKBAR_ANIMATION_OPEN_TIME_MS: 150,\n    /**\n     * Number of milliseconds to wait between temporarily clearing the label text\n     * in the DOM and subsequently restoring it. This is necessary to force IE 11\n     * to pick up the `aria-live` content change and announce it to the user.\n     */\n    ARIA_LIVE_DELAY_MS: 1000,\n};\nexport { cssClasses, strings, numbers };\n//# sourceMappingURL=constants.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __assign, __extends } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, numbers, strings } from './constants';\nvar OPENING = cssClasses.OPENING, OPEN = cssClasses.OPEN, CLOSING = cssClasses.CLOSING;\nvar REASON_ACTION = strings.REASON_ACTION, REASON_DISMISS = strings.REASON_DISMISS;\nvar MDCSnackbarFoundation = /** @class */ (function (_super) {\n    __extends(MDCSnackbarFoundation, _super);\n    function MDCSnackbarFoundation(adapter) {\n        var _this = _super.call(this, __assign(__assign({}, MDCSnackbarFoundation.defaultAdapter), adapter)) || this;\n        _this.opened = false;\n        _this.animationFrame = 0;\n        _this.animationTimer = 0;\n        _this.autoDismissTimer = 0;\n        _this.autoDismissTimeoutMs = numbers.DEFAULT_AUTO_DISMISS_TIMEOUT_MS;\n        _this.closeOnEscape = true;\n        return _this;\n    }\n    Object.defineProperty(MDCSnackbarFoundation, \"cssClasses\", {\n        get: function () {\n            return cssClasses;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MDCSnackbarFoundation, \"strings\", {\n        get: function () {\n            return strings;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MDCSnackbarFoundation, \"numbers\", {\n        get: function () {\n            return numbers;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MDCSnackbarFoundation, \"defaultAdapter\", {\n        get: function () {\n            return {\n                addClass: function () { return undefined; },\n                announce: function () { return undefined; },\n                notifyClosed: function () { return undefined; },\n                notifyClosing: function () { return undefined; },\n                notifyOpened: function () { return undefined; },\n                notifyOpening: function () { return undefined; },\n                removeClass: function () { return undefined; },\n            };\n        },\n        enumerable: false,\n        configurable: true\n    });\n    MDCSnackbarFoundation.prototype.destroy = function () {\n        this.clearAutoDismissTimer();\n        cancelAnimationFrame(this.animationFrame);\n        this.animationFrame = 0;\n        clearTimeout(this.animationTimer);\n        this.animationTimer = 0;\n        this.adapter.removeClass(OPENING);\n        this.adapter.removeClass(OPEN);\n        this.adapter.removeClass(CLOSING);\n    };\n    MDCSnackbarFoundation.prototype.open = function () {\n        var _this = this;\n        this.clearAutoDismissTimer();\n        this.opened = true;\n        this.adapter.notifyOpening();\n        this.adapter.removeClass(CLOSING);\n        this.adapter.addClass(OPENING);\n        this.adapter.announce();\n        // Wait a frame once display is no longer \"none\", to establish basis for animation\n        this.runNextAnimationFrame(function () {\n            _this.adapter.addClass(OPEN);\n            _this.animationTimer = setTimeout(function () {\n                var timeoutMs = _this.getTimeoutMs();\n                _this.handleAnimationTimerEnd();\n                _this.adapter.notifyOpened();\n                if (timeoutMs !== numbers.INDETERMINATE) {\n                    _this.autoDismissTimer = setTimeout(function () {\n                        _this.close(REASON_DISMISS);\n                    }, timeoutMs);\n                }\n            }, numbers.SNACKBAR_ANIMATION_OPEN_TIME_MS);\n        });\n    };\n    /**\n     * @param reason Why the snackbar was closed. Value will be passed to CLOSING_EVENT and CLOSED_EVENT via the\n     *     `event.detail.reason` property. Standard values are REASON_ACTION and REASON_DISMISS, but custom\n     *     client-specific values may also be used if desired.\n     */\n    MDCSnackbarFoundation.prototype.close = function (reason) {\n        var _this = this;\n        if (reason === void 0) { reason = ''; }\n        if (!this.opened) {\n            // Avoid redundant close calls (and events), e.g. repeated interactions as the snackbar is animating closed\n            return;\n        }\n        cancelAnimationFrame(this.animationFrame);\n        this.animationFrame = 0;\n        this.clearAutoDismissTimer();\n        this.opened = false;\n        this.adapter.notifyClosing(reason);\n        this.adapter.addClass(cssClasses.CLOSING);\n        this.adapter.removeClass(cssClasses.OPEN);\n        this.adapter.removeClass(cssClasses.OPENING);\n        clearTimeout(this.animationTimer);\n        this.animationTimer = setTimeout(function () {\n            _this.handleAnimationTimerEnd();\n            _this.adapter.notifyClosed(reason);\n        }, numbers.SNACKBAR_ANIMATION_CLOSE_TIME_MS);\n    };\n    MDCSnackbarFoundation.prototype.isOpen = function () {\n        return this.opened;\n    };\n    MDCSnackbarFoundation.prototype.getTimeoutMs = function () {\n        return this.autoDismissTimeoutMs;\n    };\n    MDCSnackbarFoundation.prototype.setTimeoutMs = function (timeoutMs) {\n        // Use shorter variable names to make the code more readable\n        var minValue = numbers.MIN_AUTO_DISMISS_TIMEOUT_MS;\n        var maxValue = numbers.MAX_AUTO_DISMISS_TIMEOUT_MS;\n        var indeterminateValue = numbers.INDETERMINATE;\n        if (timeoutMs === numbers.INDETERMINATE || (timeoutMs <= maxValue && timeoutMs >= minValue)) {\n            this.autoDismissTimeoutMs = timeoutMs;\n        }\n        else {\n            throw new Error(\"\\n        timeoutMs must be an integer in the range \" + minValue + \"\\u2013\" + maxValue + \"\\n        (or \" + indeterminateValue + \" to disable), but got '\" + timeoutMs + \"'\");\n        }\n    };\n    MDCSnackbarFoundation.prototype.getCloseOnEscape = function () {\n        return this.closeOnEscape;\n    };\n    MDCSnackbarFoundation.prototype.setCloseOnEscape = function (closeOnEscape) {\n        this.closeOnEscape = closeOnEscape;\n    };\n    MDCSnackbarFoundation.prototype.handleKeyDown = function (evt) {\n        var isEscapeKey = evt.key === 'Escape' || evt.keyCode === 27;\n        if (isEscapeKey && this.getCloseOnEscape()) {\n            this.close(REASON_DISMISS);\n        }\n    };\n    MDCSnackbarFoundation.prototype.handleActionButtonClick = function (_evt) {\n        this.close(REASON_ACTION);\n    };\n    MDCSnackbarFoundation.prototype.handleActionIconClick = function (_evt) {\n        this.close(REASON_DISMISS);\n    };\n    MDCSnackbarFoundation.prototype.clearAutoDismissTimer = function () {\n        clearTimeout(this.autoDismissTimer);\n        this.autoDismissTimer = 0;\n    };\n    MDCSnackbarFoundation.prototype.handleAnimationTimerEnd = function () {\n        this.animationTimer = 0;\n        this.adapter.removeClass(cssClasses.OPENING);\n        this.adapter.removeClass(cssClasses.CLOSING);\n    };\n    /**\n     * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior.\n     */\n    MDCSnackbarFoundation.prototype.runNextAnimationFrame = function (callback) {\n        var _this = this;\n        cancelAnimationFrame(this.animationFrame);\n        this.animationFrame = requestAnimationFrame(function () {\n            _this.animationFrame = 0;\n            clearTimeout(_this.animationTimer);\n            _this.animationTimer = setTimeout(callback, 0);\n        });\n    };\n    return MDCSnackbarFoundation;\n}(MDCFoundation));\nexport { MDCSnackbarFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCSnackbarFoundation;\n//# sourceMappingURL=foundation.js.map","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Style preference for leading underscores.\n// tslint:disable:strip-private-property-underscore\nimport MDCSnackbarFoundation from '@material/snackbar/foundation.js';\nimport { html, render } from 'lit';\nimport { AsyncDirective } from 'lit/async-directive.js';\nimport { directive, PartType } from 'lit/directive.js';\nconst { ARIA_LIVE_DELAY_MS } = MDCSnackbarFoundation.numbers;\n/**\n * A lit directive implementation of @material/mdc-snackbar/util.ts#announce,\n * which does some tricks to ensure that snackbar labels will be handled\n * correctly by screen readers.\n *\n * The existing MDC announce util function is difficult to use directly here,\n * because Lit can crash when DOM that it is managing changes outside of its\n * purvue. In this case, we would render our labelText as the text content of\n * the label div, but the MDC announce function then clears that text content,\n * and resets it after a timeout (see below for why). We do the same thing here,\n * but in a way that fits into Lit's lifecycle.\n *\n * TODO(aomarks) Investigate whether this can be simplified; but to do that we\n * first need testing infrastructure to verify that it remains compatible with\n * screen readers. For example, can we just create an entirely new label node\n * every time we open or labelText changes? If not, and the async text/::before\n * swap is strictly required, can we at elast make this directive more generic\n * (e.g. so that we don't hard-code the name of the label class).\n */\nclass AccessibleSnackbarLabel extends AsyncDirective {\n    constructor(partInfo) {\n        super(partInfo);\n        this.labelEl = null;\n        this.timerId = null;\n        this.previousPart = null;\n        if (partInfo.type !== PartType.CHILD) {\n            throw new Error('AccessibleSnackbarLabel only supports child parts.');\n        }\n    }\n    update(part, [labelText, isOpen]) {\n        var _a;\n        if (!isOpen) {\n            // We never need to do anything if we're closed, even if the label also\n            // changed in this batch of changes. We'll fully reset the label text\n            // whenever we next open.\n            return;\n        }\n        if (this.labelEl === null) {\n            // Create the label element once, the first time we open.\n            const wrapperEl = document.createElement('div');\n            const labelTemplate = html `<div class=\"mdc-snackbar__label\" role=\"status\" aria-live=\"polite\"></div>`;\n            render(labelTemplate, wrapperEl);\n            const labelEl = wrapperEl.firstElementChild;\n            labelEl.textContent = labelText;\n            // endNode can't be a Document, so it must have a parent.\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            (_a = part.endNode) === null || _a === void 0 ? void 0 : _a.parentNode.insertBefore(labelEl, part.endNode);\n            this.labelEl = labelEl;\n            // No need to do anything more for ARIA the first time we open. We just\n            // created the element with the current label, so screen readers will\n            // detect it fine.\n            return labelEl;\n        }\n        const labelEl = this.labelEl;\n        // Temporarily disable `aria-live` to prevent JAWS+Firefox from announcing\n        // the message twice.\n        labelEl.setAttribute('aria-live', 'off');\n        // Temporarily clear `textContent` to force a DOM mutation event that will\n        // be detected by screen readers. `aria-live` elements are only announced\n        // when the element's `textContent` *changes*, so snackbars sent to the\n        // browser in the initial HTML response won't be read unless we clear the\n        // element's `textContent` first. Similarly, displaying the same snackbar\n        // message twice in a row doesn't trigger a DOM mutation event, so screen\n        // readers won't announce the second message unless we first clear\n        // `textContent`.\n        //\n        // We have to clear the label text two different ways to make it work in\n        // all browsers and screen readers:\n        //\n        //   1. `textContent = ''` is required for IE11 + JAWS\n        //   2. the lit render of `'&nbsp;'` is required for Chrome + JAWS and\n        //       NVDA\n        //\n        // All other browser/screen reader combinations support both methods.\n        //\n        // The wrapper `<span>` visually hides the space character so that it\n        // doesn't cause jank when added/removed. N.B.: Setting `position:\n        // absolute`, `opacity: 0`, or `height: 0` prevents Chrome from detecting\n        // the DOM change.\n        //\n        // This technique has been tested in:\n        //\n        //   * JAWS 2019:\n        //       - Chrome 70\n        //       - Firefox 60 (ESR)\n        //       - IE 11\n        //   * NVDA 2018:\n        //       - Chrome 70\n        //       - Firefox 60 (ESR)\n        //       - IE 11\n        //   * ChromeVox 53\n        labelEl.textContent = '';\n        // Updating an element using both Lit's `render` as well as setting its\n        // `textContent` can cause later renders to throw because setting\n        // `textContent` will remove Lit's part marker comments. This directive\n        // needs to set `labelEl`'s `textContent` to trigger the expected screen\n        // reader behavior, so it needs to avoid `render` for `labelEl` altogether.\n        const spaceSpan = document.createElement('span');\n        spaceSpan.style.display = 'inline-block';\n        spaceSpan.style.width = '0';\n        spaceSpan.style.height = '1px';\n        spaceSpan.textContent = '\\u00A0'; // U+00A0 is &nbsp;\n        labelEl.appendChild(spaceSpan);\n        // Prevent visual jank by temporarily displaying the label text in the\n        // ::before pseudo-element. CSS generated content is normally announced by\n        // screen readers (except in IE 11; see\n        // https://tink.uk/accessibility-support-for-css-generated-content/);\n        // however, `aria-live` is turned off, so this DOM update will be ignored\n        // by screen readers.\n        labelEl.setAttribute('data-mdc-snackbar-label-text', labelText);\n        if (this.timerId !== null) {\n            // We hadn't yet swapped the textContent back in since the last time we\n            // opened or changed the label. Cancel that task so we don't clobber the\n            // new label.\n            clearTimeout(this.timerId);\n        }\n        this.timerId = window.setTimeout(() => {\n            this.timerId = null;\n            // Allow screen readers to announce changes to the DOM again.\n            labelEl.setAttribute('aria-live', 'polite');\n            // Remove the message from the ::before pseudo-element.\n            labelEl.removeAttribute('data-mdc-snackbar-label-text');\n            // Restore the original label text, which will be announced by\n            // screen readers.\n            labelEl.textContent = labelText;\n            this.setValue(this.labelEl);\n        }, ARIA_LIVE_DELAY_MS);\n        return labelEl;\n    }\n    render(labelText, isOpen) {\n        if (!isOpen) {\n            return html ``;\n        }\n        return html `\n      <div class=\"mdc-snackbar__label\" role=\"status\" aria-live=\"polite\">${labelText}</div>`;\n    }\n}\nexport const accessibleSnackbarLabel = directive(AccessibleSnackbarLabel);\n//# sourceMappingURL=accessible-snackbar-label-directive.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\n// Style preference for leading underscores.\n// tslint:disable:strip-private-property-underscore\nimport { addHasRemoveClass, BaseElement } from '@material/mwc-base/base-element.js';\nimport { observer } from '@material/mwc-base/observer.js';\nimport MDCSnackbarFoundation from '@material/snackbar/foundation.js';\nimport { html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { accessibleSnackbarLabel } from './accessible-snackbar-label-directive.js';\nconst { OPENING_EVENT, OPENED_EVENT, CLOSING_EVENT, CLOSED_EVENT, } = MDCSnackbarFoundation.strings;\nexport class SnackbarBase extends BaseElement {\n    constructor() {\n        super(...arguments);\n        this.mdcFoundationClass = MDCSnackbarFoundation;\n        this.open = false;\n        this.timeoutMs = 5000;\n        this.closeOnEscape = false;\n        this.labelText = '';\n        this.stacked = false;\n        this.leading = false;\n        this.reason = '';\n    }\n    render() {\n        const classes = {\n            'mdc-snackbar--stacked': this.stacked,\n            'mdc-snackbar--leading': this.leading,\n        };\n        return html `\n      <div class=\"mdc-snackbar ${classMap(classes)}\" @keydown=\"${this._handleKeydown}\">\n        <div class=\"mdc-snackbar__surface\">\n          ${accessibleSnackbarLabel(this.labelText, this.open)}\n          <div class=\"mdc-snackbar__actions\">\n            <slot name=\"action\" @click=\"${this._handleActionClick}\"></slot>\n            <slot name=\"dismiss\" @click=\"${this._handleDismissClick}\"></slot>\n          </div>\n        </div>\n      </div>`;\n    }\n    createAdapter() {\n        return Object.assign(Object.assign({}, addHasRemoveClass(this.mdcRoot)), { announce: () => {\n                /* We handle announce ourselves with the accessible directive. */\n            }, notifyClosed: (reason) => {\n                this.dispatchEvent(new CustomEvent(CLOSED_EVENT, { bubbles: true, cancelable: true, detail: { reason: reason } }));\n            }, notifyClosing: (reason) => {\n                this.open = false;\n                this.dispatchEvent(new CustomEvent(CLOSING_EVENT, { bubbles: true, cancelable: true, detail: { reason: reason } }));\n            }, notifyOpened: () => {\n                this.dispatchEvent(new CustomEvent(OPENED_EVENT, { bubbles: true, cancelable: true }));\n            }, notifyOpening: () => {\n                this.open = true;\n                this.dispatchEvent(new CustomEvent(OPENING_EVENT, { bubbles: true, cancelable: true }));\n            } });\n    }\n    /** @export */\n    show() {\n        this.open = true;\n    }\n    /** @export */\n    close(reason = '') {\n        this.reason = reason;\n        this.open = false;\n    }\n    firstUpdated() {\n        super.firstUpdated();\n        if (this.open) {\n            this.mdcFoundation.open();\n        }\n    }\n    _handleKeydown(e) {\n        this.mdcFoundation.handleKeyDown(e);\n    }\n    _handleActionClick(e) {\n        this.mdcFoundation.handleActionButtonClick(e);\n    }\n    _handleDismissClick(e) {\n        this.mdcFoundation.handleActionIconClick(e);\n    }\n}\n__decorate([\n    query('.mdc-snackbar')\n], SnackbarBase.prototype, \"mdcRoot\", void 0);\n__decorate([\n    query('.mdc-snackbar__label')\n], SnackbarBase.prototype, \"labelElement\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true }),\n    observer(function (value) {\n        if (this.mdcFoundation) {\n            if (value) {\n                this.mdcFoundation.open();\n            }\n            else {\n                this.mdcFoundation.close(this.reason);\n                this.reason = '';\n            }\n        }\n    })\n], SnackbarBase.prototype, \"open\", void 0);\n__decorate([\n    observer(function (value) {\n        this.mdcFoundation.setTimeoutMs(value);\n    }),\n    property({ type: Number })\n], SnackbarBase.prototype, \"timeoutMs\", void 0);\n__decorate([\n    observer(function (value) {\n        this.mdcFoundation.setCloseOnEscape(value);\n    }),\n    property({ type: Boolean })\n], SnackbarBase.prototype, \"closeOnEscape\", void 0);\n__decorate([\n    property({ type: String })\n], SnackbarBase.prototype, \"labelText\", void 0);\n__decorate([\n    property({ type: Boolean })\n], SnackbarBase.prototype, \"stacked\", void 0);\n__decorate([\n    property({ type: Boolean })\n], SnackbarBase.prototype, \"leading\", void 0);\n//# sourceMappingURL=mwc-snackbar-base.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-LIcense-Identifier: Apache-2.0\n */\nimport { css } from 'lit';\nexport const styles = css `.mdc-snackbar{z-index:8;margin:8px;display:none;position:fixed;right:0;bottom:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-snackbar__surface{background-color:#333333}.mdc-snackbar__label{color:rgba(255, 255, 255, 0.87)}.mdc-snackbar__surface{min-width:344px}@media(max-width: 480px),(max-width: 344px){.mdc-snackbar__surface{min-width:100%}}.mdc-snackbar__surface{max-width:672px}.mdc-snackbar__surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2),0px 6px 10px 0px rgba(0, 0, 0, 0.14),0px 1px 18px 0px rgba(0,0,0,.12)}.mdc-snackbar__surface{border-radius:4px;border-radius:var(--mdc-shape-small, 4px)}.mdc-snackbar--opening,.mdc-snackbar--open,.mdc-snackbar--closing{display:flex}.mdc-snackbar--open .mdc-snackbar__label,.mdc-snackbar--open .mdc-snackbar__actions{visibility:visible}.mdc-snackbar--leading{justify-content:flex-start}.mdc-snackbar--stacked .mdc-snackbar__label{padding-left:16px;padding-right:8px;padding-bottom:12px}[dir=rtl] .mdc-snackbar--stacked .mdc-snackbar__label,.mdc-snackbar--stacked .mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar--stacked .mdc-snackbar__surface{flex-direction:column;align-items:flex-start}.mdc-snackbar--stacked .mdc-snackbar__actions{align-self:flex-end;margin-bottom:8px}.mdc-snackbar__surface{padding-left:0;padding-right:8px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;transform:scale(0.8);opacity:0}.mdc-snackbar__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid transparent;border-radius:inherit;content:\"\";pointer-events:none}@media screen and (forced-colors: active){.mdc-snackbar__surface::before{border-color:CanvasText}}[dir=rtl] .mdc-snackbar__surface,.mdc-snackbar__surface[dir=rtl]{padding-left:8px;padding-right:0}.mdc-snackbar--open .mdc-snackbar__surface{transform:scale(1);opacity:1;pointer-events:auto;transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-snackbar--closing .mdc-snackbar__surface{transform:scale(1);transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-snackbar__label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto, sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:0.875rem;font-size:var(--mdc-typography-body2-font-size, 0.875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:0.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, 0.0178571429em);text-decoration:inherit;text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform, inherit);padding-left:16px;padding-right:8px;width:100%;flex-grow:1;box-sizing:border-box;margin:0;visibility:hidden;padding-top:14px;padding-bottom:14px}[dir=rtl] .mdc-snackbar__label,.mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar__label::before{display:inline;content:attr(data-mdc-snackbar-label-text)}.mdc-snackbar__actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;visibility:hidden}.mdc-snackbar__action:not(:disabled){color:#bb86fc}.mdc-snackbar__action .mdc-button__ripple::before,.mdc-snackbar__action .mdc-button__ripple::after{background-color:#bb86fc;background-color:var(--mdc-ripple-color, #bb86fc)}.mdc-snackbar__action:hover .mdc-button__ripple::before,.mdc-snackbar__action.mdc-ripple-surface--hover .mdc-button__ripple::before{opacity:0.08;opacity:var(--mdc-ripple-hover-opacity, 0.08)}.mdc-snackbar__action.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-snackbar__action:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-ripple-focus-opacity, 0.24)}.mdc-snackbar__action:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{transition:opacity 150ms linear}.mdc-snackbar__action:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-ripple-press-opacity, 0.24)}.mdc-snackbar__action.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.mdc-snackbar__dismiss{color:rgba(255, 255, 255, 0.87)}.mdc-snackbar__dismiss .mdc-icon-button__ripple::before,.mdc-snackbar__dismiss .mdc-icon-button__ripple::after{background-color:rgba(255, 255, 255, 0.87);background-color:var(--mdc-ripple-color, rgba(255, 255, 255, 0.87))}.mdc-snackbar__dismiss:hover .mdc-icon-button__ripple::before,.mdc-snackbar__dismiss.mdc-ripple-surface--hover .mdc-icon-button__ripple::before{opacity:0.08;opacity:var(--mdc-ripple-hover-opacity, 0.08)}.mdc-snackbar__dismiss.mdc-ripple-upgraded--background-focused .mdc-icon-button__ripple::before,.mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):focus .mdc-icon-button__ripple::before{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-ripple-focus-opacity, 0.24)}.mdc-snackbar__dismiss:not(.mdc-ripple-upgraded) .mdc-icon-button__ripple::after{transition:opacity 150ms linear}.mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):active .mdc-icon-button__ripple::after{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-ripple-press-opacity, 0.24)}.mdc-snackbar__dismiss.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.mdc-snackbar__dismiss.mdc-snackbar__dismiss{width:36px;height:36px;padding:6px;font-size:18px}.mdc-snackbar__dismiss.mdc-snackbar__dismiss .mdc-icon-button__focus-ring{display:none}.mdc-snackbar__dismiss.mdc-snackbar__dismiss.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-snackbar__dismiss.mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block;max-height:36px;max-width:36px}@media screen and (forced-colors: active){.mdc-snackbar__dismiss.mdc-snackbar__dismiss.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-snackbar__dismiss.mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{pointer-events:none;border:2px solid transparent;border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}}@media screen and (forced-colors: active)and (forced-colors: active){.mdc-snackbar__dismiss.mdc-snackbar__dismiss.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-snackbar__dismiss.mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-snackbar__dismiss.mdc-snackbar__dismiss.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring::after,.mdc-snackbar__dismiss.mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring::after{content:\"\";border:2px solid transparent;border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}}@media screen and (forced-colors: active)and (forced-colors: active){.mdc-snackbar__dismiss.mdc-snackbar__dismiss.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring::after,.mdc-snackbar__dismiss.mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-snackbar__dismiss.mdc-snackbar__dismiss.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:36px;height:36px;margin-top:0px;margin-bottom:0px;margin-right:0px;margin-left:0px}.mdc-snackbar__dismiss.mdc-snackbar__dismiss.mdc-icon-button--reduced-size.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-snackbar__dismiss.mdc-snackbar__dismiss.mdc-icon-button--reduced-size:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{max-height:36px;max-width:36px}.mdc-snackbar__dismiss.mdc-snackbar__dismiss .mdc-icon-button__touch{position:absolute;top:50%;height:36px;left:50%;width:36px;transform:translate(-50%, -50%)}.mdc-snackbar__action+.mdc-snackbar__dismiss{margin-left:8px;margin-right:0}[dir=rtl] .mdc-snackbar__action+.mdc-snackbar__dismiss,.mdc-snackbar__action+.mdc-snackbar__dismiss[dir=rtl]{margin-left:0;margin-right:8px}slot[name=action]::slotted(mwc-button){--mdc-theme-primary: var( --mdc-snackbar-action-color, #bb86fc )}slot[name=dismiss]::slotted(mwc-icon-button){--mdc-icon-size: 18px;--mdc-icon-button-size: 36px;color:rgba(255, 255, 255, 0.87);margin-left:8px;margin-right:0}[dir=rtl] slot[name=dismiss]::slotted(mwc-icon-button),::slotted(mwc-icon-buttonslot[name=dismiss][dir=rtl]){margin-left:0;margin-right:8px}`;\n//# sourceMappingURL=mwc-snackbar.css.js.map","import { SnackbarBase } from '@material/mwc-snackbar/mwc-snackbar-base';\nimport { styles } from '@material/mwc-snackbar/mwc-snackbar.css';\n\nexport class Snackbar extends SnackbarBase {\n  static styles = [styles];\n}\n\n","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar cssClasses = {\n    FIXED_CLASS: 'mdc-top-app-bar--fixed',\n    FIXED_SCROLLED_CLASS: 'mdc-top-app-bar--fixed-scrolled',\n    SHORT_CLASS: 'mdc-top-app-bar--short',\n    SHORT_COLLAPSED_CLASS: 'mdc-top-app-bar--short-collapsed',\n    SHORT_HAS_ACTION_ITEM_CLASS: 'mdc-top-app-bar--short-has-action-item',\n};\nvar numbers = {\n    DEBOUNCE_THROTTLE_RESIZE_TIME_MS: 100,\n    MAX_TOP_APP_BAR_HEIGHT: 128,\n};\nvar strings = {\n    ACTION_ITEM_SELECTOR: '.mdc-top-app-bar__action-item',\n    NAVIGATION_EVENT: 'MDCTopAppBar:nav',\n    NAVIGATION_ICON_SELECTOR: '.mdc-top-app-bar__navigation-icon',\n    ROOT_SELECTOR: '.mdc-top-app-bar',\n    TITLE_SELECTOR: '.mdc-top-app-bar__title',\n};\nexport { cssClasses, numbers, strings };\n//# sourceMappingURL=constants.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __assign, __extends } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, numbers, strings } from './constants';\nvar MDCTopAppBarBaseFoundation = /** @class */ (function (_super) {\n    __extends(MDCTopAppBarBaseFoundation, _super);\n    /* istanbul ignore next: optional argument is not a branch statement */\n    function MDCTopAppBarBaseFoundation(adapter) {\n        return _super.call(this, __assign(__assign({}, MDCTopAppBarBaseFoundation.defaultAdapter), adapter)) || this;\n    }\n    Object.defineProperty(MDCTopAppBarBaseFoundation, \"strings\", {\n        get: function () {\n            return strings;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MDCTopAppBarBaseFoundation, \"cssClasses\", {\n        get: function () {\n            return cssClasses;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MDCTopAppBarBaseFoundation, \"numbers\", {\n        get: function () {\n            return numbers;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MDCTopAppBarBaseFoundation, \"defaultAdapter\", {\n        /**\n         * See {@link MDCTopAppBarAdapter} for typing information on parameters and return types.\n         */\n        get: function () {\n            // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n            return {\n                addClass: function () { return undefined; },\n                removeClass: function () { return undefined; },\n                hasClass: function () { return false; },\n                setStyle: function () { return undefined; },\n                getTopAppBarHeight: function () { return 0; },\n                notifyNavigationIconClicked: function () { return undefined; },\n                getViewportScrollY: function () { return 0; },\n                getTotalActionItems: function () { return 0; },\n            };\n            // tslint:enable:object-literal-sort-keys\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /** Other variants of TopAppBar foundation overrides this method */\n    MDCTopAppBarBaseFoundation.prototype.handleTargetScroll = function () { }; // tslint:disable-line:no-empty\n    /** Other variants of TopAppBar foundation overrides this method */\n    MDCTopAppBarBaseFoundation.prototype.handleWindowResize = function () { }; // tslint:disable-line:no-empty\n    MDCTopAppBarBaseFoundation.prototype.handleNavigationClick = function () {\n        this.adapter.notifyNavigationIconClicked();\n    };\n    return MDCTopAppBarBaseFoundation;\n}(MDCFoundation));\nexport { MDCTopAppBarBaseFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTopAppBarBaseFoundation;\n//# sourceMappingURL=foundation.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __extends } from \"tslib\";\nimport { numbers } from '../constants';\nimport { MDCTopAppBarBaseFoundation } from '../foundation';\nvar INITIAL_VALUE = 0;\nvar MDCTopAppBarFoundation = /** @class */ (function (_super) {\n    __extends(MDCTopAppBarFoundation, _super);\n    /* istanbul ignore next: optional argument is not a branch statement */\n    function MDCTopAppBarFoundation(adapter) {\n        var _this = _super.call(this, adapter) || this;\n        /**\n         * Indicates if the top app bar was docked in the previous scroll handler iteration.\n         */\n        _this.wasDocked = true;\n        /**\n         * Indicates if the top app bar is docked in the fully shown position.\n         */\n        _this.isDockedShowing = true;\n        /**\n         * Variable for current scroll position of the top app bar\n         */\n        _this.currentAppBarOffsetTop = 0;\n        /**\n         * Used to prevent the top app bar from being scrolled out of view during resize events\n         */\n        _this.isCurrentlyBeingResized = false;\n        /**\n         * The timeout that's used to throttle the resize events\n         */\n        _this.resizeThrottleId = INITIAL_VALUE;\n        /**\n         * The timeout that's used to debounce toggling the isCurrentlyBeingResized\n         * variable after a resize\n         */\n        _this.resizeDebounceId = INITIAL_VALUE;\n        _this.lastScrollPosition = _this.adapter.getViewportScrollY();\n        _this.topAppBarHeight = _this.adapter.getTopAppBarHeight();\n        return _this;\n    }\n    MDCTopAppBarFoundation.prototype.destroy = function () {\n        _super.prototype.destroy.call(this);\n        this.adapter.setStyle('top', '');\n    };\n    /**\n     * Scroll handler for the default scroll behavior of the top app bar.\n     */\n    MDCTopAppBarFoundation.prototype.handleTargetScroll = function () {\n        var currentScrollPosition = Math.max(this.adapter.getViewportScrollY(), 0);\n        var diff = currentScrollPosition - this.lastScrollPosition;\n        this.lastScrollPosition = currentScrollPosition;\n        // If the window is being resized the lastScrollPosition needs to be updated\n        // but the current scroll of the top app bar should stay in the same\n        // position.\n        if (!this.isCurrentlyBeingResized) {\n            this.currentAppBarOffsetTop -= diff;\n            if (this.currentAppBarOffsetTop > 0) {\n                this.currentAppBarOffsetTop = 0;\n            }\n            else if (Math.abs(this.currentAppBarOffsetTop) > this.topAppBarHeight) {\n                this.currentAppBarOffsetTop = -this.topAppBarHeight;\n            }\n            this.moveTopAppBar();\n        }\n    };\n    /**\n     * Top app bar resize handler that throttle/debounce functions that execute updates.\n     */\n    MDCTopAppBarFoundation.prototype.handleWindowResize = function () {\n        var _this = this;\n        // Throttle resize events 10 p/s\n        if (!this.resizeThrottleId) {\n            this.resizeThrottleId = setTimeout(function () {\n                _this.resizeThrottleId = INITIAL_VALUE;\n                _this.throttledResizeHandler();\n            }, numbers.DEBOUNCE_THROTTLE_RESIZE_TIME_MS);\n        }\n        this.isCurrentlyBeingResized = true;\n        if (this.resizeDebounceId) {\n            clearTimeout(this.resizeDebounceId);\n        }\n        this.resizeDebounceId = setTimeout(function () {\n            _this.handleTargetScroll();\n            _this.isCurrentlyBeingResized = false;\n            _this.resizeDebounceId = INITIAL_VALUE;\n        }, numbers.DEBOUNCE_THROTTLE_RESIZE_TIME_MS);\n    };\n    /**\n     * Function to determine if the DOM needs to update.\n     */\n    MDCTopAppBarFoundation.prototype.checkForUpdate = function () {\n        var offscreenBoundaryTop = -this.topAppBarHeight;\n        var hasAnyPixelsOffscreen = this.currentAppBarOffsetTop < 0;\n        var hasAnyPixelsOnscreen = this.currentAppBarOffsetTop > offscreenBoundaryTop;\n        var partiallyShowing = hasAnyPixelsOffscreen && hasAnyPixelsOnscreen;\n        // If it's partially showing, it can't be docked.\n        if (partiallyShowing) {\n            this.wasDocked = false;\n        }\n        else {\n            // Not previously docked and not partially showing, it's now docked.\n            if (!this.wasDocked) {\n                this.wasDocked = true;\n                return true;\n            }\n            else if (this.isDockedShowing !== hasAnyPixelsOnscreen) {\n                this.isDockedShowing = hasAnyPixelsOnscreen;\n                return true;\n            }\n        }\n        return partiallyShowing;\n    };\n    /**\n     * Function to move the top app bar if needed.\n     */\n    MDCTopAppBarFoundation.prototype.moveTopAppBar = function () {\n        if (this.checkForUpdate()) {\n            // Once the top app bar is fully hidden we use the max potential top app bar height as our offset\n            // so the top app bar doesn't show if the window resizes and the new height > the old height.\n            var offset = this.currentAppBarOffsetTop;\n            if (Math.abs(offset) >= this.topAppBarHeight) {\n                offset = -numbers.MAX_TOP_APP_BAR_HEIGHT;\n            }\n            this.adapter.setStyle('top', offset + 'px');\n        }\n    };\n    /**\n     * Throttled function that updates the top app bar scrolled values if the\n     * top app bar height changes.\n     */\n    MDCTopAppBarFoundation.prototype.throttledResizeHandler = function () {\n        var currentHeight = this.adapter.getTopAppBarHeight();\n        if (this.topAppBarHeight !== currentHeight) {\n            this.wasDocked = false;\n            // Since the top app bar has a different height depending on the screen width, this\n            // will ensure that the top app bar remains in the correct location if\n            // completely hidden and a resize makes the top app bar a different height.\n            this.currentAppBarOffsetTop -= this.topAppBarHeight - currentHeight;\n            this.topAppBarHeight = currentHeight;\n        }\n        this.handleTargetScroll();\n    };\n    return MDCTopAppBarFoundation;\n}(MDCTopAppBarBaseFoundation));\nexport { MDCTopAppBarFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTopAppBarFoundation;\n//# sourceMappingURL=foundation.js.map","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\n// Style preference for leading underscores.\n// tslint:disable:strip-private-property-underscore\nimport { addHasRemoveClass, BaseElement } from '@material/mwc-base/base-element.js';\nimport { supportsPassiveEventListener } from '@material/mwc-base/utils.js';\nimport { strings } from '@material/top-app-bar/constants.js';\nimport { html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nexport const passiveEventOptionsIfSupported = supportsPassiveEventListener ? { passive: true } : undefined;\nexport class TopAppBarBaseBase extends BaseElement {\n    constructor() {\n        super(...arguments);\n        this.centerTitle = false;\n        this.handleTargetScroll = () => {\n            this.mdcFoundation.handleTargetScroll();\n        };\n        this.handleNavigationClick = () => {\n            this.mdcFoundation.handleNavigationClick();\n        };\n    }\n    get scrollTarget() {\n        return this._scrollTarget || window;\n    }\n    set scrollTarget(value) {\n        this.unregisterScrollListener();\n        const old = this.scrollTarget;\n        this._scrollTarget = value;\n        this.updateRootPosition();\n        this.requestUpdate('scrollTarget', old);\n        this.registerScrollListener();\n    }\n    updateRootPosition() {\n        if (this.mdcRoot) {\n            const windowScroller = this.scrollTarget === window;\n            // we add support for top-app-bar's tied to an element scroller.\n            this.mdcRoot.style.position = windowScroller ? '' : 'absolute';\n        }\n    }\n    render() {\n        // clang-format off\n        let title = html `<span class=\"mdc-top-app-bar__title\"><slot name=\"title\"></slot></span>`;\n        if (this.centerTitle) {\n            title = html `<section class=\"mdc-top-app-bar__section mdc-top-app-bar__section--align-center\">${title}</section>`;\n        }\n        // clang-format on\n        return html `\n      <header class=\"mdc-top-app-bar ${classMap(this.barClasses())}\">\n      <div class=\"mdc-top-app-bar__row\">\n        <section class=\"mdc-top-app-bar__section mdc-top-app-bar__section--align-start\" id=\"navigation\">\n          <slot name=\"navigationIcon\"\n            @click=${this.handleNavigationClick}></slot>\n          ${this.centerTitle ? null : title}\n        </section>\n        ${this.centerTitle ? title : null}\n        <section class=\"mdc-top-app-bar__section mdc-top-app-bar__section--align-end\" id=\"actions\" role=\"toolbar\">\n          <slot name=\"actionItems\"></slot>\n        </section>\n      </div>\n    </header>\n    <div class=\"${classMap(this.contentClasses())}\">\n      <slot></slot>\n    </div>\n    `;\n    }\n    createAdapter() {\n        return Object.assign(Object.assign({}, addHasRemoveClass(this.mdcRoot)), { setStyle: (property, value) => this.mdcRoot.style.setProperty(property, value), getTopAppBarHeight: () => this.mdcRoot.clientHeight, notifyNavigationIconClicked: () => {\n                this.dispatchEvent(new Event(strings.NAVIGATION_EVENT, { bubbles: true, cancelable: true }));\n            }, getViewportScrollY: () => this.scrollTarget instanceof Window ?\n                this.scrollTarget.pageYOffset :\n                this.scrollTarget.scrollTop, getTotalActionItems: () => this._actionItemsSlot\n                .assignedNodes({ flatten: true })\n                .length });\n    }\n    registerListeners() {\n        this.registerScrollListener();\n    }\n    unregisterListeners() {\n        this.unregisterScrollListener();\n    }\n    registerScrollListener() {\n        this.scrollTarget.addEventListener('scroll', this.handleTargetScroll, passiveEventOptionsIfSupported);\n    }\n    unregisterScrollListener() {\n        this.scrollTarget.removeEventListener('scroll', this.handleTargetScroll);\n    }\n    firstUpdated() {\n        super.firstUpdated();\n        this.updateRootPosition();\n        this.registerListeners();\n    }\n    disconnectedCallback() {\n        super.disconnectedCallback();\n        this.unregisterListeners();\n    }\n}\n__decorate([\n    query('.mdc-top-app-bar')\n], TopAppBarBaseBase.prototype, \"mdcRoot\", void 0);\n__decorate([\n    query('slot[name=\"actionItems\"]')\n], TopAppBarBaseBase.prototype, \"_actionItemsSlot\", void 0);\n__decorate([\n    property({ type: Boolean })\n], TopAppBarBaseBase.prototype, \"centerTitle\", void 0);\n__decorate([\n    property({ type: Object })\n], TopAppBarBaseBase.prototype, \"scrollTarget\", null);\n//# sourceMappingURL=mwc-top-app-bar-base-base.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\n// Style preference for leading underscores.\n// tslint:disable:strip-private-property-underscore\nimport MDCTopAppBarFoundation from '@material/top-app-bar/standard/foundation.js';\nimport { property } from 'lit/decorators.js';\nimport { passiveEventOptionsIfSupported, TopAppBarBaseBase } from './mwc-top-app-bar-base-base.js';\nexport class TopAppBarBase extends TopAppBarBaseBase {\n    constructor() {\n        super(...arguments);\n        this.mdcFoundationClass = MDCTopAppBarFoundation;\n        this.prominent = false;\n        this.dense = false;\n        this.handleResize = () => {\n            this.mdcFoundation.handleWindowResize();\n        };\n    }\n    barClasses() {\n        return {\n            'mdc-top-app-bar--dense': this.dense,\n            'mdc-top-app-bar--prominent': this.prominent,\n            'center-title': this.centerTitle,\n        };\n    }\n    contentClasses() {\n        return {\n            'mdc-top-app-bar--fixed-adjust': !this.dense && !this.prominent,\n            'mdc-top-app-bar--dense-fixed-adjust': this.dense && !this.prominent,\n            'mdc-top-app-bar--prominent-fixed-adjust': !this.dense && this.prominent,\n            'mdc-top-app-bar--dense-prominent-fixed-adjust': this.dense && this.prominent,\n        };\n    }\n    registerListeners() {\n        super.registerListeners();\n        window.addEventListener('resize', this.handleResize, passiveEventOptionsIfSupported);\n    }\n    unregisterListeners() {\n        super.unregisterListeners();\n        window.removeEventListener('resize', this.handleResize);\n    }\n}\n__decorate([\n    property({ type: Boolean, reflect: true })\n], TopAppBarBase.prototype, \"prominent\", void 0);\n__decorate([\n    property({ type: Boolean, reflect: true })\n], TopAppBarBase.prototype, \"dense\", void 0);\n//# sourceMappingURL=mwc-top-app-bar-base.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-LIcense-Identifier: Apache-2.0\n */\nimport { css } from 'lit';\nexport const styles = css `.mdc-top-app-bar{background-color:#6200ee;background-color:var(--mdc-theme-primary, #6200ee);color:white;display:flex;position:fixed;flex-direction:column;justify-content:space-between;box-sizing:border-box;width:100%;z-index:4}.mdc-top-app-bar .mdc-top-app-bar__action-item,.mdc-top-app-bar .mdc-top-app-bar__navigation-icon{color:#fff;color:var(--mdc-theme-on-primary, #fff)}.mdc-top-app-bar .mdc-top-app-bar__action-item::before,.mdc-top-app-bar .mdc-top-app-bar__action-item::after,.mdc-top-app-bar .mdc-top-app-bar__navigation-icon::before,.mdc-top-app-bar .mdc-top-app-bar__navigation-icon::after{background-color:#fff;background-color:var(--mdc-ripple-color, var(--mdc-theme-on-primary, #fff))}.mdc-top-app-bar .mdc-top-app-bar__action-item:hover::before,.mdc-top-app-bar .mdc-top-app-bar__action-item.mdc-ripple-surface--hover::before,.mdc-top-app-bar .mdc-top-app-bar__navigation-icon:hover::before,.mdc-top-app-bar .mdc-top-app-bar__navigation-icon.mdc-ripple-surface--hover::before{opacity:0.08;opacity:var(--mdc-ripple-hover-opacity, 0.08)}.mdc-top-app-bar .mdc-top-app-bar__action-item.mdc-ripple-upgraded--background-focused::before,.mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded):focus::before,.mdc-top-app-bar .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--background-focused::before,.mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded):focus::before{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-ripple-focus-opacity, 0.24)}.mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded)::after,.mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded)::after{transition:opacity 150ms linear}.mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded):active::after,.mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded):active::after{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-ripple-press-opacity, 0.24)}.mdc-top-app-bar .mdc-top-app-bar__action-item.mdc-ripple-upgraded,.mdc-top-app-bar .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.mdc-top-app-bar__row{display:flex;position:relative;box-sizing:border-box;width:100%;height:64px}.mdc-top-app-bar__section{display:inline-flex;flex:1 1 auto;align-items:center;min-width:0;padding:8px 12px;z-index:1}.mdc-top-app-bar__section--align-start{justify-content:flex-start;order:-1}.mdc-top-app-bar__section--align-end{justify-content:flex-end;order:1}.mdc-top-app-bar__title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto, sans-serif;font-family:var(--mdc-typography-headline6-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1.25rem;font-size:var(--mdc-typography-headline6-font-size, 1.25rem);line-height:2rem;line-height:var(--mdc-typography-headline6-line-height, 2rem);font-weight:500;font-weight:var(--mdc-typography-headline6-font-weight, 500);letter-spacing:0.0125em;letter-spacing:var(--mdc-typography-headline6-letter-spacing, 0.0125em);text-decoration:inherit;text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-headline6-text-transform, inherit);padding-left:20px;padding-right:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;z-index:1}[dir=rtl] .mdc-top-app-bar__title,.mdc-top-app-bar__title[dir=rtl]{padding-left:0;padding-right:20px}.mdc-top-app-bar--short-collapsed{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:24px;border-bottom-left-radius:0}[dir=rtl] .mdc-top-app-bar--short-collapsed,.mdc-top-app-bar--short-collapsed[dir=rtl]{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:24px}.mdc-top-app-bar--short{top:0;right:auto;left:0;width:100%;transition:width 250ms cubic-bezier(0.4, 0, 0.2, 1)}[dir=rtl] .mdc-top-app-bar--short,.mdc-top-app-bar--short[dir=rtl]{right:0;left:auto}.mdc-top-app-bar--short .mdc-top-app-bar__row{height:56px}.mdc-top-app-bar--short .mdc-top-app-bar__section{padding:4px}.mdc-top-app-bar--short .mdc-top-app-bar__title{transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1);opacity:1}.mdc-top-app-bar--short-collapsed{box-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2),0px 4px 5px 0px rgba(0, 0, 0, 0.14),0px 1px 10px 0px rgba(0,0,0,.12);width:56px;transition:width 300ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-top-app-bar--short-collapsed .mdc-top-app-bar__title{display:none}.mdc-top-app-bar--short-collapsed .mdc-top-app-bar__action-item{transition:padding 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item{width:112px}.mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end{padding-left:0;padding-right:12px}[dir=rtl] .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end,.mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end[dir=rtl]{padding-left:12px;padding-right:0}.mdc-top-app-bar--dense .mdc-top-app-bar__row{height:48px}.mdc-top-app-bar--dense .mdc-top-app-bar__section{padding:0 4px}.mdc-top-app-bar--dense .mdc-top-app-bar__title{padding-left:12px;padding-right:0}[dir=rtl] .mdc-top-app-bar--dense .mdc-top-app-bar__title,.mdc-top-app-bar--dense .mdc-top-app-bar__title[dir=rtl]{padding-left:0;padding-right:12px}.mdc-top-app-bar--prominent .mdc-top-app-bar__row{height:128px}.mdc-top-app-bar--prominent .mdc-top-app-bar__title{align-self:flex-end;padding-bottom:2px}.mdc-top-app-bar--prominent .mdc-top-app-bar__action-item,.mdc-top-app-bar--prominent .mdc-top-app-bar__navigation-icon{align-self:flex-start}.mdc-top-app-bar--fixed{transition:box-shadow 200ms linear}.mdc-top-app-bar--fixed-scrolled{box-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2),0px 4px 5px 0px rgba(0, 0, 0, 0.14),0px 1px 10px 0px rgba(0,0,0,.12);transition:box-shadow 200ms linear}.mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__row{height:96px}.mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__section{padding:0 12px}.mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title{padding-left:20px;padding-right:0;padding-bottom:9px}[dir=rtl] .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title,.mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title[dir=rtl]{padding-left:0;padding-right:20px}.mdc-top-app-bar--fixed-adjust{padding-top:64px}.mdc-top-app-bar--dense-fixed-adjust{padding-top:48px}.mdc-top-app-bar--short-fixed-adjust{padding-top:56px}.mdc-top-app-bar--prominent-fixed-adjust{padding-top:128px}.mdc-top-app-bar--dense-prominent-fixed-adjust{padding-top:96px}@media(max-width: 599px){.mdc-top-app-bar__row{height:56px}.mdc-top-app-bar__section{padding:4px}.mdc-top-app-bar--short{transition:width 200ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-top-app-bar--short-collapsed{transition:width 250ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end{padding-left:0;padding-right:12px}[dir=rtl] .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end,.mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end[dir=rtl]{padding-left:12px;padding-right:0}.mdc-top-app-bar--prominent .mdc-top-app-bar__title{padding-bottom:6px}.mdc-top-app-bar--fixed-adjust{padding-top:56px}}:host{display:block}.mdc-top-app-bar{color:#fff;color:var(--mdc-theme-on-primary, #fff);width:100%;width:var(--mdc-top-app-bar-width, 100%)}.mdc-top-app-bar--prominent #navigation ::slotted(*),.mdc-top-app-bar--prominent #actions ::slotted(*){align-self:flex-start}#navigation ::slotted(*),#actions ::slotted(*){--mdc-icon-button-ripple-opacity: 0.24}.mdc-top-app-bar--short-collapsed #actions ::slotted(*){transition:padding 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-top-app-bar__section--align-center{justify-content:center}.mdc-top-app-bar__section--align-center .mdc-top-app-bar__title{padding-left:0;padding-right:0}.center-title .mdc-top-app-bar__section--align-start,.center-title .mdc-top-app-bar__section--align-end{flex-basis:0}.mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__section--align-center .mdc-top-app-bar__title{padding-left:0;padding-right:0}.mdc-top-app-bar--fixed-scrolled{box-shadow:var(--mdc-top-app-bar-fixed-box-shadow, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}`;\n//# sourceMappingURL=mwc-top-app-bar.css.js.map","import { TopAppBarBase } from '@material/mwc-top-app-bar/mwc-top-app-bar-base';\nimport { styles } from '@material/mwc-top-app-bar/mwc-top-app-bar.css';\n\nexport class TopAppBar extends TopAppBarBase {\n  static styles = [styles];\n}\n\n"]}