{"version":3,"file":"outline.js","sources":["../src/components/controllers/resize-controller.ts","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/lit-html/static.js","../node_modules/lit-html/directives/if-defined.js","../node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../node_modules/@lit/reactive-element/decorators/base.js","../node_modules/@lit/reactive-element/decorators/query.js","../node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../node_modules/@phase2/outline-core/src/outline-element/outline-element.base.css.lit.ts","../node_modules/@phase2/outline-core/src/outline-element/outline-element.ts","../node_modules/@phase2/outline-core/src/controllers/container-size-controller.ts","../node_modules/@phase2/outline-core/src/controllers/mobile-controller.ts","../node_modules/@phase2/outline-core/src/controllers/screen-size-controller.ts","../node_modules/lit-html/directive.js","../node_modules/lit-html/directives/class-map.js","../node_modules/@phase2/outline-core/src/controllers/slots-controller.ts","../node_modules/@adobe/css-tools/dist/index.mjs","../node_modules/@phase2/outline-core/src/internal/light-dom.mjs","../node_modules/@phase2/outline-core/src/controllers/light-dom-styles.ts","../node_modules/@phase2/outline-core/src/internal/event.ts","../node_modules/@phase2/outline-core/src/internal/watch.ts","../node_modules/@phase2/outline-core/index.ts","../src/components/outline-accordion-baseline/outline-accordion-baseline.css.lit.ts","../src/components/outline-accordion-baseline/outline-accordion-baseline.ts","../src/components/outline-anchor-block/outline-anchor-block.css.lit.ts","../src/components/outline-anchor-block/outline-anchor-block.ts","../src/components/outline-admin-links-baseline/outline-admin-links-baseline.css.lit.ts","../src/components/outline-admin-links-baseline/outline-admin-links-baseline.ts","../src/components/outline-bill-map/outline-bill-map.css.lit.ts","../src/components/outline-bill-map/outline-bill-map.ts","../node_modules/@phase2/outline-image/src/outline-image.css.lit.ts","../node_modules/@phase2/outline-image/src/outline-image.ts","../src/components/outline-block-image/outline-block-image.css.lit.ts","../src/components/outline-block-image/outline-block-image.ts","../src/components/outline-breadcrumbs/outline-breadcrumbs.css.lit.ts","../src/components/outline-inline-link/outline-inline-link.css.lit.ts","../src/components/outline-inline-link/outline-inline-link.ts","../src/components/outline-breadcrumbs/outline-breadcrumbs.ts","../src/components/outline-button-baseline/outline-button-baseline.css.lit.ts","../src/components/outline-button-baseline/outline-button-baseline.ts","../node_modules/@splidejs/splide/dist/js/splide.esm.js","../node_modules/lit-html/directives/unsafe-html.js","../node_modules/lit-html/directives/unsafe-svg.js","../src/components/outline-icon-baseline/libraries/library.system.ts","../src/components/outline-icon-baseline/library.ts","../node_modules/@phase2/outline-include/src/outline-include.css.lit.ts","../node_modules/@phase2/outline-include/src/request.ts","../node_modules/@phase2/outline-include/src/outline-include.ts","../src/components/outline-icon-baseline/request.ts","../src/components/outline-icon-baseline/outline-icon-baseline.css.lit.ts","../src/components/outline-icon-baseline/outline-icon-baseline.ts","../src/components/outline-card-slider/outline-card-slider.css.lit.ts","../src/components/outline-cta-card/outline-cta-card.css.lit.ts","../src/components/outline-cta-card/outline-cta-card.ts","../src/components/outline-card-slider/outline-card-slider.ts","../src/components/outline-column-baseline/outline-column-baseline.css.lit.ts","../src/components/outline-column-baseline/outline-column-baseline.ts","../src/components/outline-contact-card/outline-contact-card.css.lit.ts","../src/components/outline-contact-card/outline-contact-card.ts","../src/components/outline-container-baseline/outline-container-baseline.css.lit.ts","../src/components/outline-grid-baseline/outline-grid-baseline.css.lit.ts","../src/components/outline-grid-baseline/baseline-grid-light-dom.css.lit.ts","../src/components/outline-grid-baseline/outline-grid-baseline.ts","../src/components/outline-container-baseline/outline-container-baseline.ts","../src/components/outline-dropdown-baseline/outline-dropdown-baseline.css.lit.ts","../src/components/outline-dropdown-baseline/outline-dropdown-baseline.ts","../src/components/outline-emergency-alert/outline-emergency-alert.css.lit.ts","../src/components/outline-emergency-alert/outline-emergency-alert.ts","../src/components/outline-emergency-takeover/outline-emergency-takeover.css.lit.ts","../src/components/outline-emergency-takeover/outline-emergency-takeover.ts","../src/components/outline-event-card/outline-event-card.css.lit.ts","../src/assets/images/placeholder-image.png","../src/components/outline-event-card/outline-event-card.ts","../src/components/outline-featured-content/outline-featured-content.css.lit.ts","../src/components/outline-featured-content/outline-featured-content.ts","../src/components/outline-file-download/outline-file-download.css.lit.ts","../src/components/outline-file-download/outline-file-download.ts","../src/components/outline-file-download/outline-file-link.ts","../src/components/outline-footer/outline-footer.css.lit.ts","../src/components/outline-footer/outline-footer.ts","../src/components/outline-form-baseline/outline-form-baseline.css.lit.ts","../node_modules/@phase2/outline-icon/src/libraries/library.system.ts","../node_modules/@phase2/outline-icon/src/library.ts","../node_modules/@phase2/outline-icon/src/libraries/library.bootstrap.ts","../node_modules/@phase2/outline-icon/src/libraries/library.boxicons.ts","../node_modules/@phase2/outline-icon/src/libraries/library.lucide.ts","../node_modules/@phase2/outline-icon/src/libraries/library.heroicons.ts","../node_modules/@phase2/outline-icon/src/libraries/library.iconoir.ts","../node_modules/@phase2/outline-icon/src/libraries/library.ionicons.ts","../node_modules/@phase2/outline-icon/src/libraries/library.jam.ts","../node_modules/@phase2/outline-icon/src/libraries/library.fontawesome.ts","../node_modules/@phase2/outline-icon/src/libraries/library.material.ts","../node_modules/@phase2/outline-icon/src/libraries/library.remix.ts","../node_modules/@phase2/outline-icon/src/libraries/library.unicons.ts","../node_modules/@phase2/outline-icon/src/libraries/library.custom.ts","../node_modules/@phase2/outline-icon/src/request.ts","../node_modules/@phase2/outline-icon/src/outline-icon.css.lit.ts","../node_modules/@phase2/outline-icon/src/outline-icon.ts","../src/components/outline-form-baseline/outline-form-baseline.ts","../src/components/outline-global-header/outline-global-header.css.lit.ts","../src/components/outline-global-header/outline-global-header.ts","../src/components/outline-global-main-navigation/outline-global-main-navigation.css.lit.ts","../src/components/outline-global-main-navigation/outline-global-main-navigation.ts","../src/components/outline-global-menu-baseline/outline-global-menu-baseline.css.lit.ts","../src/components/outline-global-menu-baseline/outline-global-menu-baseline.ts","../src/components/outline-heading-baseline/outline-heading-baseline.css.lit.ts","../src/components/outline-heading-baseline/outline-heading-baseline.ts","../src/components/outline-hero/outline-hero.css.lit.ts","../src/components/outline-hero/outline-hero-light-dom.css.lit.ts","../src/components/outline-hero/outline-hero.ts","../node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js","../src/components/outline-iframe/outline-iframe.css.lit.ts","../src/components/outline-iframe/outline-iframe.ts","../src/components/outline-link-grid-block/outline-link-grid-block.css.lit.ts","../src/components/outline-link-grid-block/outline-link-grid-block.ts","../src/components/outline-media-gallery/outline-media-gallery.css.lit.ts","../src/components/outline-media-gallery/outline-media-gallery.ts","../src/components/outline-media-gallery-caption/outline-media-gallery-caption.css.lit.ts","../src/components/outline-media-gallery-caption/outline-media-gallery-caption.ts","../src/components/outline-news-card/outline-news-card.css.lit.ts","../src/components/outline-news-card/outline-news-card.ts","../src/components/outline-org-chart/outline-org-chart.css.lit.ts","../src/components/outline-org-chart/outline-org-chart.ts","../src/components/outline-pager/outline-pager.css.lit.ts","../src/components/outline-pager/outline-pager.ts","../src/components/outline-popover/outline-popover.css.lit.ts","../src/components/outline-popover/outline-popover.ts","../src/components/outline-profile-card/outline-profile-card.css.lit.ts","../src/components/outline-profile-card/outline-profile-card.ts","../src/components/outline-profile-page-wrapper/outline-profile-page-wrapper.css.lit.ts","../src/components/outline-profile-page-wrapper/outline-profile-page-wrapper.ts","../src/components/outline-quote/outline-quote.css.lit.ts","../src/components/outline-quote/outline-quote.ts","../src/components/outline-search/outline-search.css.lit.ts","../src/components/outline-search/outline-search.ts","../src/components/outline-sidebar-block/outline-sidebar-block.css.lit.ts","../src/components/outline-sidebar-block/outline-sidebar-block-light-dom.css.lit.ts","../src/components/outline-sidebar-block/outline-sidebar-block.ts","../src/components/outline-states-map/outline-states-map.css.lit.ts","../src/components/outline-states-map/outline-states-map.ts","../src/components/outline-styled-table/outline-styled-table.css.lit.ts","../src/components/outline-styled-table/outline-styled-table.ts","../src/components/outline-styled-text-baseline/outline-styled-text-baseline.css.lit.ts","../src/components/outline-styled-text-baseline/outline-styled-text-baseline.ts","../src/components/outline-tag/outline-tag.css.lit.ts","../src/components/outline-tag/outline-tag.ts","../src/components/outline-teaser-card/outline-teaser-card.css.lit.ts","../src/components/outline-teaser-card/outline-teaser-card.ts","../src/components/outline-utility-nav/outline-utility-nav.css.lit.ts","../src/components/outline-utility-nav/outline-utility-nav.ts","../src/components/outline-video-modal/outline-video-modal.css.lit.ts","../src/components/outline-video-modal/outline-video-modal.ts","../src/components/outline-video-player/outline-video-player.css.lit.ts","../src/components/outline-video-player/outline-video-player.ts","../src/components/outline-workday-block/outline-workday-block.css.lit.ts","../src/components/outline-workday-block/outline-workday-block.ts","../src/components/outline-accordion-baseline/outline-accordion-baseline-panel/outline-accordion-baseline-panel.css.lit.ts","../src/components/outline-accordion-baseline/outline-accordion-baseline-panel/outline-accordion-baseline-panel-light-dom.css.lit.ts","../src/components/outline-accordion-baseline/outline-accordion-baseline-panel/outline-accordion-baseline-panel.ts","../src/components/outline-org-chart/outline-org-chart-panel/outline-org-chart-panel.css.lit.ts","../src/components/outline-org-chart/outline-org-chart-panel/outline-org-chart-panel-content.ts","../src/components/outline-org-chart/outline-org-chart-panel/outline-org-chart-panel.ts","../src/components/sample/sample-component/sample-component.ts"],"sourcesContent":["import { ReactiveControllerHost, ReactiveController } from 'lit';\n\n/**\n * Debounces a function\n * @template T\n * @param {T} func - The function to debounce\n * @param {number} delay - The delay in milliseconds\n * @param {boolean} [immediate=false] - Whether to execute the function immediately\n * @returns {(...args: Parameters) => void} - The debounced function\n */\nexport const debounce = ) => void>(\n func: T,\n delay: number,\n immediate = false\n): ((...args: Parameters) => void) => {\n let timeoutId: ReturnType | undefined = undefined;\n\n return function debounced(...args: Parameters) {\n const executeFunc = () => func(...args);\n\n clearTimeout(timeoutId);\n\n if (immediate && timeoutId === undefined) {\n executeFunc();\n }\n\n timeoutId = setTimeout(executeFunc, delay);\n };\n};\n\nexport type breakpointsRangeType = {\n min: number;\n max: number;\n};\n\n/**\n * ResizeController class\n * @implements {ReactiveController}\n */\nexport class ResizeController implements ReactiveController {\n host: ReactiveControllerHost & HTMLElement;\n resizeObserver: ResizeObserver;\n elementToObserve: Element;\n options: {\n debounce: number;\n breakpoints: number[];\n elementToRerender: ReactiveControllerHost & HTMLElement;\n };\n currentComponentWidth: number;\n currentBreakpointRange: number;\n breakpointsRangeArray: breakpointsRangeType[] = [];\n\n /**\n * Create a constructor that takes a host and options\n * @param {ReactiveControllerHost & Element} host - The host element\n * @param {{debounce?: number; breakpoints?: number[]}} [options={}] - The options object\n */\n constructor(\n host: ReactiveControllerHost & HTMLElement,\n options: {\n debounce?: number;\n breakpoints?: number[];\n elementToRerender?: ReactiveControllerHost & HTMLElement;\n } = {}\n ) {\n const defaultOptions = {\n debounce: 200,\n breakpoints: [768],\n elementToRerender: host,\n };\n\n /**\n * Remove any undefined variables from options object\n */\n const filteredOptionsObject = Object.fromEntries(\n Object.entries(options).filter(([_, value]) => value !== undefined)\n );\n this.options = { ...defaultOptions, ...filteredOptionsObject };\n\n this.host = host;\n this.host.addController(this);\n\n this.initializeBreakpointsRangeType();\n }\n\n /**\n * Initialize the breakpoints range array\n *\n * The default breakpoints array ([768]) will create this breakpoints range array:\n * [{min: 0, max: 767}, {min: 768, max: 100000}]\n *\n * If custom breakpoints array is provided, (for example [768, 1200, 2000]) this breakpoints range array will be created:\n * [{min: 0, max: 767}, {min: 768, max: 1199}, {min: 1200, max: 1999}, {min: 2000, max: 100000}]\n *\n */\n initializeBreakpointsRangeType() {\n // This will allow create an additional breakpoint from the last custom breakpoint to 100000\n this.options.breakpoints?.push(100000);\n\n let minBreakpoint = 0;\n this.options.breakpoints?.forEach(breakpoint => {\n const newBreakpointRange = {\n min: minBreakpoint,\n max: breakpoint - 1,\n };\n minBreakpoint = breakpoint;\n this.breakpointsRangeArray.push(newBreakpointRange);\n });\n }\n\n /**\n * Called when the host element is connected to the DOM\n */\n hostConnected() {\n if (!this.host.style.display) {\n // adding `display: block` to :host of component\n this.host.style.setProperty(\n 'display',\n 'var(--style-added-by-resize-controller, block)'\n );\n }\n\n // Create a new ResizeObserver and pass in the function to be called when the element is resized\n this.resizeObserver = new ResizeObserver(\n (entries: ResizeObserverEntry[]) => {\n // Create a debounced version of the onElementResize function\n debounce(\n this.onElementResize.bind(this),\n this.options.debounce\n )(entries);\n }\n );\n\n // Get a reference to the element you want to observe\n this.elementToObserve = this.host;\n\n // Observe the element for size changes\n this.resizeObserver.observe(this.elementToObserve);\n }\n\n /**\n * Called when the host element is disconnected from the DOM\n */\n hostDisconnected() {\n this.resizeObserver.disconnect();\n }\n\n /**\n * Called when the element is resized\n * @param {ResizeObserverEntry[]} _entries - The ResizeObserverEntry array\n */\n onElementResize(_entries: ResizeObserverEntry[]) {\n this.currentComponentWidth = _entries[0].contentRect.width;\n\n // skip if width is not yet set\n if (this.currentComponentWidth) {\n this.calculateNewBreakpointRange();\n } else if (this.currentComponentWidth === 0) {\n // eslint-disable-next-line no-console\n console.warn(\n `resize-controller: No width detected in <${this.host.localName}>. Please confirm it has display: block`\n );\n }\n }\n\n /**\n * Calculate the new breakpoint based on the current width\n */\n calculateNewBreakpointRange() {\n let newBreakpointRange = this.currentBreakpointRange;\n\n this.breakpointsRangeArray.forEach((breakpoint, index) => {\n if (\n this.currentComponentWidth >= breakpoint.min &&\n this.currentComponentWidth <= breakpoint.max\n ) {\n newBreakpointRange = index;\n }\n });\n\n if (newBreakpointRange !== this.currentBreakpointRange) {\n this.currentBreakpointRange = newBreakpointRange;\n this.options.elementToRerender.requestUpdate();\n }\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a};class d extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(\"finalized\"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}d.finalized=!0,d.elementProperties=new Map,d.elementStyles=[],d.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:d}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.1\");export{d as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,d=()=>r.createComment(\"\"),u=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1),P=(t,i)=>{const s=t.length-1,l=[];let r,d=2===i?\"\":\"\",u=f;for(let i=0;i\"===c[0]?(u=null!=r?r:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,e=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,r=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";d+=u===f?s+h:v>=0?(l.push(e),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(l.push(void 0),i):w)}const c=d+(t[s]||\"\")+(2===i?\"\":\"\");if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return[void 0!==e?e.createHTML(c):c,l]};class V{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,u=0;const c=t.length-1,v=this.parts,[a,f]=P(t,i);if(this.el=V.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=N(this,t,i,0),n=!u(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new M(i.insertBefore(d(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{Z as _$LH,x as html,T as noChange,A as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.1\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import{html as t,svg as r}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=Symbol.for(\"\"),l=t=>{if((null==t?void 0:t.r)===e)return null==t?void 0:t._$litStatic$},o=t=>({_$litStatic$:t,r:e}),i=(t,...r)=>({_$litStatic$:r.reduce(((r,e,l)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\\n take care to ensure page security.`)})(e)+t[l+1]),t[0]),r:e}),s=new Map,a=t=>(r,...e)=>{const o=e.length;let i,a;const n=[],u=[];let c,$=0,f=!1;for(;$null!=l?l:t;export{l as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=e=>n=>\"function\"==typeof n?((e,n)=>(customElements.define(e,n),n))(e,n):((e,n)=>{const{kind:t,elements:s}=n;return{kind:t,elements:s,finisher(n){customElements.define(e,n)}}})(e,n);export{e as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}};function e(e){return(n,t)=>void 0!==t?((i,e,n)=>{e.constructor.createProperty(n,i)})(e,n,t):i(e,n)}export{e as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,o)=>{Object.defineProperty(t,o,e)},t=(e,t)=>({kind:\"method\",placement:\"prototype\",key:t.key,descriptor:e}),o=({finisher:e,descriptor:t})=>(o,n)=>{var r;if(void 0===n){const n=null!==(r=o.originalKey)&&void 0!==r?r:o.key,i=null!=t?{kind:\"method\",placement:\"prototype\",key:n,descriptor:t(o.key)}:{...o,key:n};return null!=e&&(i.finisher=function(t){e(t,n)}),i}{const r=o.constructor;void 0!==t&&Object.defineProperty(o,n,t(n)),null==e||e(r,n)}};export{o as decorateProperty,e as legacyPrototypeMethod,t as standardPrototypeMethod};\n//# sourceMappingURL=base.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function i(i,n){return o({descriptor:o=>{const t={get(){var o,n;return null!==(n=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(i))&&void 0!==n?n:null},enumerable:!0,configurable:!0};if(n){const n=\"symbol\"==typeof o?Symbol():\"__\"+o;t.get=function(){var o,t;return void 0===this[n]&&(this[n]=null!==(t=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(i))&&void 0!==t?t:null),this[n]}}return t}})}export{i as query};\n//# sourceMappingURL=query.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n/* ! tailwindcss v3.0.0 | MIT License | https://tailwindcss.com */\n\n*,\n::before,\n::after{\n box-sizing:border-box;\n border-width:0;\n border-style:solid;\n border-color:currentColor;\n}\n\n::before,\n::after{\n --tw-content:'';\n}\n\nhtml{\n line-height:1.5;\n -webkit-text-size-adjust:100%;\n tab-size:4;\n font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n}\n\nbody{\n margin:0;\n line-height:inherit;\n}\n\nhr{\n height:0;\n color:inherit;\n border-top-width:1px;\n}\n\nabbr[title]{\n -webkit-text-decoration:underline dotted;\n text-decoration:underline dotted;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6{\n font-size:inherit;\n font-weight:inherit;\n}\n\na{\n color:inherit;\n text-decoration:inherit;\n}\n\nb,\nstrong{\n font-weight:bolder;\n}\n\ncode,\nkbd,\nsamp,\npre{\n font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size:1em;\n}\n\nsmall{\n font-size:80%;\n}\n\nsub,\nsup{\n font-size:75%;\n line-height:0;\n position:relative;\n vertical-align:baseline;\n}\n\nsub{\n bottom:-0.25em;\n}\n\nsup{\n top:-0.5em;\n}\n\ntable{\n text-indent:0;\n border-color:inherit;\n border-collapse:collapse;\n}\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea{\n font-family:inherit;\n font-size:100%;\n line-height:inherit;\n color:inherit;\n margin:0;\n padding:0;\n}\n\nbutton,\nselect{\n text-transform:none;\n}\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit']{\n -webkit-appearance:button;\n background-color:transparent;\n background-image:none;\n}\n\n:-moz-focusring{\n outline:auto;\n}\n\n:-moz-ui-invalid{\n box-shadow:none;\n}\n\nprogress{\n vertical-align:baseline;\n}\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button{\n height:auto;\n}\n\n[type='search']{\n -webkit-appearance:textfield;\n outline-offset:-2px;\n}\n\n::-webkit-search-decoration{\n -webkit-appearance:none;\n}\n\n::-webkit-file-upload-button{\n -webkit-appearance:button;\n font:inherit;\n}\n\nsummary{\n display:list-item;\n}\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre{\n margin:0;\n}\n\nfieldset{\n margin:0;\n padding:0;\n}\n\nlegend{\n padding:0;\n}\n\nol,\nul,\nmenu{\n list-style:none;\n margin:0;\n padding:0;\n}\n\ntextarea{\n resize:vertical;\n}\n\ninput::placeholder,\ntextarea::placeholder{\n opacity:1;\n color:#9ca3af;\n}\n\nbutton,\n[role=\"button\"]{\n cursor:pointer;\n}\n:disabled{\n cursor:default;\n}\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject{\n display:block;\n vertical-align:middle;\n}\n\nimg,\nvideo{\n max-width:100%;\n height:auto;\n}\n\n[hidden]{\n display:none;\n}\n\n@media (min-width: 768px){\n\n .md\\:flex{\n display:flex;\n }\n\n .md\\:p-8{\n padding:2rem;\n }\n}\n`;","import { CSSResultGroup, LitElement, TemplateResult } from 'lit';\nimport { html, unsafeStatic } from 'lit/static-html.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { customElement } from 'lit/decorators.js';\n\nimport componentStyles from './outline-element.base.css.lit';\n\n@customElement('outline-element')\nexport class OutlineElement extends LitElement {\n static styles: CSSResultGroup = [componentStyles];\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n /**\n * Create a conditional slot.\n *\n * Generates the slot if there is slotted content. Includes a wrapper:\n * ```\n *
\n * \n *
\n * ```\n */\n protected _conditionalSlotTemplate({\n elementName,\n slotNameStub,\n wrapperElementType = 'div',\n ariaLabel = null,\n }: {\n elementName: string;\n slotNameStub: string;\n wrapperElementType?: string;\n ariaLabel?: string | null;\n }): TemplateResult | null {\n const namespacedSlotName = `${elementName}--${slotNameStub}`;\n\n return this.querySelector(`[slot=\"${namespacedSlotName}\"]`) !== null\n ? html`<${unsafeStatic(\n wrapperElementType\n )} id=\"${slotNameStub}\" aria-label=\"${ifDefined(ariaLabel)}\">\n this.requestUpdate()}\"\n >\n `\n : null;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-element': OutlineElement;\n }\n}\n","import { ReactiveControllerHost, ReactiveController } from 'lit';\n// @todo: Figure out why outline-config isn't working.\n// import { defaultScreenSizes } from '@phase2/outline-config';\nconst defaultScreenSizes = {\n xs: '480px',\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n xxl: '1440px',\n xxxl: '2160px',\n};\n\n/**\n * Container size lookup, ordered small to large.\n *\n * We are using screen sizes to avoid making additional size groups.\n */\nexport const containerSizeMap = new Map(\n (\n Object.entries(defaultScreenSizes).map(([container, sizeString]) => {\n return [container, parseInt(sizeString.slice(0, -2))];\n }) as [string, number][]\n ).sort(([, sizeA], [, sizeB]) => {\n return sizeA - sizeB;\n })\n);\n\n/**\n * Can be used to get the container size of the element. Useful if we want to display components differently based on container size rather than the screen size, such as with different sized columns.\n *\n * This attempts to fit the mobile first pattern.\n *\n * Will set a `container-size-??` attributes on the component that indicate if the container is at least that size.\n *\n * Example: `@screen md` translates to `container-size-xs container-size-sm container-size-md`.\n */\nexport class ContainerSizeController implements ReactiveController {\n containerSizes: string[] = [];\n\n host: ReactiveControllerHost;\n\n resizeObserver: ResizeObserver;\n\n constructor(host: ReactiveControllerHost) {\n this.host = host;\n this.host.addController(this);\n\n this.handleResize();\n }\n\n hostConnected() {\n this.resizeObserver = new ResizeObserver(this.handleResize);\n\n this.resizeObserver.observe(document.querySelector('body') as HTMLElement);\n }\n\n hostDisconnected() {\n this.resizeObserver.disconnect();\n }\n\n handleResize = () => {\n const containerSizesPreUpdate = this.containerSizes;\n\n const containerWidth =\n (this.host as unknown as HTMLElement).parentElement?.clientWidth ?? 0;\n\n this.containerSizes = Array.from(containerSizeMap)\n .filter(([, size]) => containerWidth >= size)\n .map(([container]) => container);\n\n // Since this is mobile first and we just add more sizes as we get larger, the length will tell us if we have the same size.\n if (this.containerSizes.length !== containerSizesPreUpdate.length) {\n Array.from(containerSizeMap).forEach(([containerSize]) => {\n if (this.containerSizes.includes(containerSize)) {\n (this.host as unknown as HTMLElement).setAttribute(\n `container-size-${containerSize}`,\n 'true'\n );\n }\n\n if (this.containerSizes.includes(containerSize) === false) {\n (this.host as unknown as HTMLElement).removeAttribute(\n `container-size-${containerSize}`\n );\n }\n });\n\n this.host.requestUpdate();\n }\n };\n}\n","import { ReactiveControllerHost, ReactiveController } from 'lit';\n// @todo: Figure out why outline-config isn't working.\n// import { defaultScreenSizes } from '@phase2/outline-config';\nconst defaultScreenSizes = {\n xs: '480px',\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n xxl: '1440px',\n xxxl: '2160px',\n};\n\n//TODO: add functionality to receive array of screen sizes to map to object in controller state\nexport class MobileController implements ReactiveController {\n isMobile = false;\n host: ReactiveControllerHost;\n mobileBreakpoint: string;\n\n constructor(host: ReactiveControllerHost, mobileBreakpoint = 'md') {\n this.mobileBreakpoint = mobileBreakpoint;\n (this.host = host).addController(this);\n this.handleResize();\n }\n\n hostConnected() {\n window.addEventListener('resize', this.handleResize);\n }\n\n hostDisconnected() {\n window.removeEventListener('resize', this.handleResize);\n }\n\n handleResize = () => {\n const mobileScreen = this.formatScreenSize(\n // eslint-disable-next-line\n // @ts-ignore\n defaultScreenSizes[this.mobileBreakpoint]\n );\n if (window.innerWidth < mobileScreen) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n this.host.requestUpdate();\n };\n\n formatScreenSize = (screen: string): number => {\n return parseInt(screen.slice(0, -2));\n };\n}\n","import { ReactiveControllerHost, ReactiveController } from 'lit';\n// @todo: Figure out why outline-config isn't working.\n// import { defaultScreenSizes } from '@phase2/outline-config';\nconst defaultScreenSizes = {\n xs: '480px',\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n xxl: '1440px',\n xxxl: '2160px',\n};\n\n/**\n * Screen size lookup, ordered small to large.\n *\n * Notice: If you get a linting issue, `Parsing error: Cannot read properties of undefined (reading 'map')`, you need to update your packages.\n * At least:\n * \"@typescript-eslint/eslint-plugin\": \"^5.0.0\",\n * \"@typescript-eslint/parser\": \"^5.0.0\",\n */\nexport const screenSizeMap = new Map(\n (\n Object.entries(defaultScreenSizes).map(([screen, sizeString]) => {\n return [screen, parseInt(sizeString.slice(0, -2))];\n }) as [string, number][]\n ).sort(([, sizeA], [, sizeB]) => {\n return sizeA - sizeB;\n })\n);\n\n/**\n * Usage:\n *\n * Import `screenSizeMap` and `ScreenSizeController`:\n * import {\n * screenSizeMap,\n * ScreenSizeController,\n * } from '../../controllers/screen-size-controller';\n *\n * Add the property to your class:\n *\n * // eslint-disable-next-line\n * // @ts-ignore\n * // We are using the controller to watch for screen size changes, but don't need to use it otherwise.\n * private _screenSizeController = new ScreenSizeController(this);\n *\n * Set a variable as needed:\n * const isMobile = window.innerWidth < (screenSizeMap.get('lg') as number);\n */\nexport class ScreenSizeController implements ReactiveController {\n isMobile = false;\n\n screenSize = 'xxs';\n\n host: ReactiveControllerHost;\n\n resizeObserver: ResizeObserver;\n\n constructor(host: ReactiveControllerHost) {\n (this.host = host).addController(this);\n this.handleResize();\n }\n\n hostConnected() {\n this.resizeObserver = new ResizeObserver(this.handleResize);\n\n this.resizeObserver.observe(document.querySelector('body') as HTMLElement);\n }\n\n hostDisconnected() {\n this.resizeObserver.disconnect();\n }\n\n handleResize = () => {\n const propertyValuesPreUpdate = [\n ['isMobile', this.isMobile],\n ['screenSize', this.screenSize],\n ] as [keyof ScreenSizeController, boolean | string][];\n\n this.isMobile = window.innerWidth <= (screenSizeMap.get('sm') as number);\n\n this.screenSize = Array.from(screenSizeMap).reduce(\n (previousValue, [screen, size]) => {\n return window.innerWidth >= size ? screen : previousValue;\n },\n 'xxs'\n );\n\n if (\n propertyValuesPreUpdate\n .map(([propertyName, preUpdateValue]) => {\n return this[propertyName] !== preUpdateValue;\n })\n .reduce((previous, current) => previous || current)\n ) {\n this.host.requestUpdate();\n }\n };\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as i,Directive as s,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=i(class extends s{constructor(t){var i;if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((i=>t[i])).join(\" \")+\" \"}update(i,[s]){var r,o;if(void 0===this.it){this.it=new Set,void 0!==i.strings&&(this.nt=new Set(i.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(t))&&this.it.add(t);return this.render(s)}const e=i.element.classList;this.it.forEach((t=>{t in s||(e.remove(t),this.it.delete(t))}));for(const t in s){const i=!!s[t];i===this.it.has(t)||(null===(o=this.nt)||void 0===o?void 0:o.has(t))||(i?(e.add(t),this.it.add(t)):(e.remove(t),this.it.delete(t)))}return t}});export{o as classMap};\n//# sourceMappingURL=class-map.js.map\n","import { ReactiveControllerHost } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { html, unsafeStatic } from 'lit/static-html.js';\n\n/**\n * The SlotsController ReactiveController.\n *\n * This controller allows cloning slots into the shadow DOM,\n * by calling a function inside render() of the component.\n * Any changes in the light DOM trigger requestUpdate() and thus re-cloning\n * of the slots into the shadow DOM.\n * The controller dispatches any events that were specified when they are triggered\n * in the cloned slots in shadow DOM to the equivalent light DOM slot.\n *\n * @param host The host element\n */\n\nexport class SlotsController {\n host: ReactiveControllerHost & Element;\n /**\n * Watches for changes to components childlist and clones nodes to shadow dom.\n */\n _mutationObserver = new MutationObserver(this._handleMutation.bind(this));\n\n constructor(host: ReactiveControllerHost & Element) {\n // Store a reference to the host\n this.host = host;\n // Register for lifecycle updates\n host.addController(this);\n }\n\n hostConnected(): void {}\n\n /**\n * MutationObserver callback.\n */\n _handleMutation() {\n // disconnect observer before making updates (to avoid infinite loop when adding comment)\n this._mutationObserver.disconnect();\n this.host.requestUpdate();\n }\n\n /**\n * Get slotted nodes by slot name.\n * @param {string | null} slotName - The slot name to search for.\n * @returns {Array} An array of slotted nodes.\n */\n getSlottedNodes(slotName: string | null = null) {\n const defaultSlot = slotName === '' || slotName === null;\n let slottedNodes = [];\n\n if (defaultSlot) {\n slottedNodes = Array.from(this.host.childNodes).filter(\n node => this.isDefaultSlotText(node) || this.isDefaultSlotElement(node)\n );\n } else {\n slottedNodes = Array.from(\n this.host.querySelectorAll(`[slot=${slotName}]`)\n );\n }\n\n if (slottedNodes.length) {\n return slottedNodes;\n } else {\n return false;\n }\n }\n\n /**\n * Check if a slot exists.\n * @param {string | null} slotName - The slot name to check for.\n * @returns {boolean} True if the slot exists, false otherwise.\n */\n exist(slotName: string | null = null) {\n return Boolean(this.getSlottedNodes(slotName));\n }\n\n /**\n * Check if a node is a default slot text.\n * @param {Node} node - The node to check.\n * @returns {boolean} True if the node is a default slot text, false otherwise.\n */\n isDefaultSlotText(node: Node) {\n return node.nodeType === node.TEXT_NODE && node.textContent!.trim() !== '';\n }\n\n /**\n * Check if a node is a default slot element.\n * @param {Node} node - The node to check.\n * @returns {boolean} True if the node is a default slot element, false otherwise.\n */\n isDefaultSlotElement(node: Node) {\n return (\n node.nodeType === node.ELEMENT_NODE &&\n (node as HTMLElement).getAttribute('slot') === null\n );\n }\n\n /**\n * Add annotations to a slot.\n * @param {string} slotName - The slot name.\n * @param {ChildNode} lightDomSlot - The light DOM slot.\n * @returns {HTMLElement} The annotated slot.\n */\n addAnnotations(slotName: string, lightDomSlot: ChildNode) {\n // Create cloned-node element\n const clonedSlot = lightDomSlot.cloneNode(true) as HTMLElement;\n\n // Add a comment above the slot in light DOM, to indicate it was cloned to shadow DOM\n const annotationComment =\n `slotsController cloned this ` +\n (slotName === '' ? 'default-slot' : `named-slot '${slotName}'`) +\n ` into the shadow DOM`;\n\n // Add the comment only once, avoid duplicate comments when requestUpdate() runs\n // Check if a light DOM comment already exist\n const commentExist = Array.from(this.host.childNodes).some(\n node => node.nodeValue === annotationComment\n );\n if (!commentExist) {\n lightDomSlot.before(document.createComment(annotationComment));\n }\n\n if (slotName !== '') {\n clonedSlot.setAttribute('cloned-slot-type', 'named-slot');\n clonedSlot.setAttribute('cloned-slot-name', slotName);\n clonedSlot.removeAttribute('slot');\n return clonedSlot;\n }\n\n if (this.isDefaultSlotElement(lightDomSlot)) {\n clonedSlot.setAttribute('cloned-slot-type', 'default-slot--element');\n clonedSlot.setAttribute('cloned-slot-name', 'default');\n clonedSlot.removeAttribute('slot');\n return clonedSlot;\n } else {\n // Insert the text-only default slot into a node element\n const slotWrapper = document.createElement('cloned-slot');\n clonedSlot.parentNode?.insertBefore(slotWrapper, clonedSlot);\n slotWrapper.appendChild(clonedSlot);\n slotWrapper.setAttribute('cloned-slot-type', 'default-slot--text');\n slotWrapper.setAttribute('cloned-slot-name', 'default');\n return slotWrapper;\n }\n }\n\n /**\n * Dispatch events from cloned slots in shadow DOM to the equivalent light DOM slot.\n * @param {string[]} eventsToDispatch - The events to dispatch.\n * @param {HTMLElement} clonedSlot - The cloned slot.\n *\n * As there is no way (aside from devtools) to determine what events are occurring in the DOM,\n * what we can do is simulate an event that originated in the shadow DOM.\n * Therefore, clicking on an element in a slotted shadow DOM would simulate a click event\n * on a parallel element in a slotted light DOM.\n *\n * When an event triggers -\n * Step 1 -\n * In the Shadow DOM, identify the path that leads to the element that triggered the event.\n *\n * Step 2 -\n * In the Light DOM, find the equivalent path to the one found in step 1.\n *\n * Step 3 -\n * Dispatch the event to the light DOM, following the same path that was found in step 2.\n *\n * Step 4 -\n * Wait for the component to refresh (by using timeout 0), then focus is reset to the component that hosts the element.\n *\n * Step 5 -\n * Focus the browser on the original element in Shadow DOM that triggered the event found in step 1\n */\n dispatchEventsToLightDom(\n eventsToDispatch: string[],\n clonedSlot: HTMLElement\n ) {\n // Dispatch events from shadow DOM to original node in light DOM\n eventsToDispatch.forEach(eventType => {\n clonedSlot.addEventListener(eventType, event => {\n if (event.target) {\n const elementPathInShadowDom = this.getElementPathInShadowDom(event);\n const elementPathInLightDom = this.getElementPathInLightDom(\n elementPathInShadowDom\n );\n\n // Dispatch same event to element in Light DOM\n if (elementPathInLightDom) {\n elementPathInLightDom.dispatchEvent(new Event(eventType));\n }\n\n // dispatchEvent focuses on the main component,\n // use setTimeout 0 to allow for display update to happen,\n // then restore the last focused element.\n setTimeout(() => {\n const originElementFocus = this.getElementPathInLightDom(\n elementPathInShadowDom,\n true\n ) as HTMLElement;\n if (originElementFocus) {\n originElementFocus.focus();\n }\n }, 0);\n }\n });\n });\n }\n\n /**\n * Render a slot in the shadow DOM.\n * @param {string} [slotName=''] - The slot name.\n * @param {string[]} [eventsToDispatch=[]] - The events to dispatch.\n * @param {boolean} [addAnnotations=true] - Whether to add annotations to the slot.\n * @returns {Array | null} An array of cloned slots or null if no slots found.\n */\n renderInShadow(\n slotName = '',\n eventsToDispatch = [] as string[],\n addAnnotations = true\n ) {\n // Cloning node allow us to re-use slots, as well a keep a copy in the light DOM.\n const slots = this.getSlottedNodes(slotName);\n\n if (slots) {\n const allClonedSlots = slots.map(slot => {\n const lightDomSlot = slot;\n let clonedSlot: HTMLElement;\n\n if (addAnnotations) {\n // Add additional annotations - cloned-slot attributes and a comment in light DOM\n clonedSlot = this.addAnnotations(slotName, lightDomSlot);\n } else {\n // Clone the slot into the shadow DOM as is with no annotations\n clonedSlot = lightDomSlot.cloneNode(true) as HTMLElement;\n }\n\n this.dispatchEventsToLightDom(eventsToDispatch, clonedSlot);\n\n return clonedSlot;\n });\n\n // Add mutation observer to watch for changes in the light DOM\n this._mutationObserver.observe(this.host, {\n subtree: true,\n childList: true,\n attributes: true,\n characterData: true,\n });\n return allClonedSlots;\n }\n return null;\n }\n\n /**\n * Get an array of CSS selectors that can be used to select the target of the event.\n * @param {Event} event - The event whose target we are trying to find.\n * @returns {Array} An array of CSS selectors that can be used to select the target of the event.\n */\n getElementPathInShadowDom(event: Event) {\n // Get the path of the event\n const path = event.composedPath() as HTMLElement[];\n\n // The selectors we will return\n const selectors = [];\n\n // Loop through the path until we find a shadow root\n let shadowFound = false;\n\n for (let i = 0; !shadowFound && i < path.length; i++) {\n const el = path[i];\n // If we find a shadow root, we are done\n if (el.nodeName === '#document-fragment') {\n shadowFound = true;\n } else {\n // Get a CSS selector for this element\n const selector = this.getSelectorForSingleElement(el);\n // If we found a selector, add it to our array\n if (selector) {\n selectors.push(selector);\n }\n }\n }\n\n // Return the selectors in the right order (we processed them in reverse)\n const reversedSelector = selectors.reverse();\n return reversedSelector;\n }\n\n /**\n * Get the class selector for a single element.\n * @param {HTMLElement} currentElement - The current element.\n * @returns {Object | null} The selector object or null if the element has no parent.\n */\n getSelectorForSingleElement(currentElement: HTMLElement) {\n // If the element has no parent element, it is the root element\n if (!currentElement.parentElement) {\n return null;\n }\n\n // Create a selector for the current element\n const currentSelectorClassName = Array.from(currentElement.classList).join(\n '.'\n );\n const currentSelector = `${currentElement.localName}${\n currentSelectorClassName !== '' ? '.' + currentSelectorClassName : ''\n }`;\n\n // Get all siblings of the current element\n const siblings = Array.from(\n currentElement.parentElement.querySelectorAll(currentSelector)\n );\n\n // Get the current element's index\n const currentIndex = siblings.indexOf(currentElement);\n\n // Create the final selector object\n const selector = {\n name: currentSelector,\n index: currentIndex,\n };\n return selector;\n }\n\n /**\n * Gets the targeted element from the event path.\n * @param {Array} elementPathInShadowDom - The path of the event.\n * @param {boolean} [isShadow=false] - Whether to search in the shadow DOM.\n * @returns {Element | null} The targeted element or null if not found.\n */\n getElementPathInLightDom(\n elementPathInShadowDom: {\n name: string;\n index: number;\n }[],\n isShadow = false\n ) {\n // start at the host element\n let El = isShadow\n ? (this.host.shadowRoot as Element | null)\n : (this.host as Element);\n\n if (!El) {\n return null;\n }\n\n // loop through the event path\n for (let i = 0; i < elementPathInShadowDom.length; i++) {\n // get the element with the name in the event path\n El = El.querySelectorAll(elementPathInShadowDom[i].name)[\n elementPathInShadowDom[i].index\n ];\n }\n // return the targeted element\n return El;\n }\n\n printExtraAttributes(extraAttributes: { name: string; value: string }[]) {\n return unsafeStatic(\n extraAttributes\n .map(attribute => `${attribute.name}=${attribute.value}`)\n .join(' ')\n );\n }\n\n /**\n * Conditionally render a slot with a wrapper and additional classes.\n * @param {string} slotName - The slot name.\n * @param {boolean} [renderInShadow=true] - Whether to render the slot in the shadow DOM.\n * @param {string | null} [classes=null] - Additional classes to add to the wrapper.\n * @param {string | null} [attributes=null] - Additional attributes to add to the wrapper.\n * @returns {TemplateResult | null} The rendered slot or null if the slot does not exist.\n */\n conditionalSlot(\n slotName: string,\n renderInShadow = true,\n extraClasses: string | null = null,\n extraAttributes: { name: string; value: string }[] = []\n ) {\n const defaultSlot = slotName === '' || slotName === null;\n const wrapperClasses = {\n 'default-slot': defaultSlot,\n [`${slotName}`]: !defaultSlot,\n [`${extraClasses}`]: extraClasses ?? false,\n };\n\n if (this.exist(slotName)) {\n return html` \n ${\n renderInShadow\n ? html`${this.renderInShadow(slotName)}`\n : html` `\n }\n `;\n } else {\n return null;\n }\n }\n}\n","function $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true, configurable: true});\n}\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $009ddb00d3ec72b8$exports = {};\n\n$parcel$defineInteropFlag($009ddb00d3ec72b8$exports);\n\n$parcel$export($009ddb00d3ec72b8$exports, \"default\", () => $009ddb00d3ec72b8$export$2e2bcd8739ae039);\nclass $009ddb00d3ec72b8$export$2e2bcd8739ae039 extends Error {\n constructor(filename, msg, lineno, column, css){\n super(filename + \":\" + lineno + \":\" + column + \": \" + msg);\n this.reason = msg;\n this.filename = filename;\n this.line = lineno;\n this.column = column;\n this.source = css;\n }\n}\n\n\nvar $0865a9fb4cc365fe$exports = {};\n\n$parcel$defineInteropFlag($0865a9fb4cc365fe$exports);\n\n$parcel$export($0865a9fb4cc365fe$exports, \"default\", () => $0865a9fb4cc365fe$export$2e2bcd8739ae039);\n/**\n * Store position information for a node\n */ class $0865a9fb4cc365fe$export$2e2bcd8739ae039 {\n constructor(start, end, source){\n this.start = start;\n this.end = end;\n this.source = source;\n }\n}\n\n\nvar $b2e137848b48cf4f$exports = {};\n\n$parcel$export($b2e137848b48cf4f$exports, \"CssTypes\", () => $b2e137848b48cf4f$export$9be5dd6e61d5d73a);\nlet $b2e137848b48cf4f$export$9be5dd6e61d5d73a;\n(function(CssTypes) {\n CssTypes[\"stylesheet\"] = \"stylesheet\";\n CssTypes[\"rule\"] = \"rule\";\n CssTypes[\"declaration\"] = \"declaration\";\n CssTypes[\"comment\"] = \"comment\";\n CssTypes[\"container\"] = \"container\";\n CssTypes[\"charset\"] = \"charset\";\n CssTypes[\"document\"] = \"document\";\n CssTypes[\"customMedia\"] = \"custom-media\";\n CssTypes[\"fontFace\"] = \"font-face\";\n CssTypes[\"host\"] = \"host\";\n CssTypes[\"import\"] = \"import\";\n CssTypes[\"keyframes\"] = \"keyframes\";\n CssTypes[\"keyframe\"] = \"keyframe\";\n CssTypes[\"layer\"] = \"layer\";\n CssTypes[\"media\"] = \"media\";\n CssTypes[\"namespace\"] = \"namespace\";\n CssTypes[\"page\"] = \"page\";\n CssTypes[\"supports\"] = \"supports\";\n})($b2e137848b48cf4f$export$9be5dd6e61d5d73a || ($b2e137848b48cf4f$export$9be5dd6e61d5d73a = {}));\n\n\n// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nconst $d708735ed1303b43$var$commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\nconst $d708735ed1303b43$export$98e6a39c04603d36 = (css, options)=>{\n options = options || {};\n /**\n * Positional.\n */ let lineno = 1;\n let column = 1;\n /**\n * Update lineno and column based on `str`.\n */ function updatePosition(str) {\n const lines = str.match(/\\n/g);\n if (lines) lineno += lines.length;\n const i = str.lastIndexOf(\"\\n\");\n column = ~i ? str.length - i : column + str.length;\n }\n /**\n * Mark position and patch `node.position`.\n */ function position() {\n const start = {\n line: lineno,\n column: column\n };\n return function(node) {\n node.position = new (0, $0865a9fb4cc365fe$export$2e2bcd8739ae039)(start, {\n line: lineno,\n column: column\n }, options?.source || \"\");\n whitespace();\n return node;\n };\n }\n /**\n * Error `msg`.\n */ const errorsList = [];\n function error(msg) {\n const err = new (0, $009ddb00d3ec72b8$export$2e2bcd8739ae039)(options?.source || \"\", msg, lineno, column, css);\n if (options?.silent) errorsList.push(err);\n else throw err;\n }\n /**\n * Parse stylesheet.\n */ function stylesheet() {\n const rulesList = rules();\n const result = {\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).stylesheet,\n stylesheet: {\n source: options?.source,\n rules: rulesList,\n parsingErrors: errorsList\n }\n };\n return result;\n }\n /**\n * Opening brace.\n */ function open() {\n return match(/^{\\s*/);\n }\n /**\n * Closing brace.\n */ function close() {\n return match(/^}/);\n }\n /**\n * Parse ruleset.\n */ function rules() {\n let node;\n const rules = [];\n whitespace();\n comments(rules);\n while(css.length && css.charAt(0) !== \"}\" && (node = atrule() || rule()))if (node) {\n rules.push(node);\n comments(rules);\n }\n return rules;\n }\n /**\n * Match `re` and return captures.\n */ function match(re) {\n const m = re.exec(css);\n if (!m) return;\n const str = m[0];\n updatePosition(str);\n css = css.slice(str.length);\n return m;\n }\n /**\n * Parse whitespace.\n */ function whitespace() {\n match(/^\\s*/);\n }\n /**\n * Parse comments;\n */ function comments(rules) {\n let c;\n rules = rules || [];\n while(c = comment())if (c) rules.push(c);\n return rules;\n }\n /**\n * Parse comment.\n */ function comment() {\n const pos = position();\n if (\"/\" !== css.charAt(0) || \"*\" !== css.charAt(1)) return;\n const m = match(/^\\/\\*[^]*?\\*\\//);\n if (!m) return error(\"End of comment missing\");\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).comment,\n comment: m[0].slice(2, -2)\n });\n }\n /**\n * Parse selector.\n */ function selector() {\n const m = match(/^([^{]+)/);\n if (!m) return;\n // remove comment in selector; [^] is equivalent to [.\\n\\r]\n const res = $d708735ed1303b43$var$trim(m[0]).replace(/\\/\\*[^]*?\\*\\//gm, \"\");\n // Optimisation: If there is no ',' no need to split or post-process (this is less costly)\n if (res.indexOf(\",\") === -1) return [\n res\n ];\n return res/**\n * replace ',' by \\u200C for data selector (div[data-lang=\"fr,de,us\"])\n * replace ',' by \\u200C for nthChild and other selector (div:nth-child(2,3,4))\n *\n * Examples:\n * div[data-lang=\"fr,\\\"de,us\"]\n * div[data-lang='fr,\\'de,us']\n * div:matches(.toto, .titi:matches(.toto, .titi))\n *\n * Regex logic:\n * (\"|')(?:\\\\\\1|.)*?\\1 => Handle the \" and '\n * \\(.*?\\) => Handle the ()\n *\n * Optimization 1:\n * No greedy capture (see docs about the difference between .* and .*?)\n *\n * Optimization 2:\n * (\"|')(?:\\\\\\1|.)*?\\1 this use reference to capture group, it work faster.\n */ .replace(/(\"|')(?:\\\\\\1|.)*?\\1|\\(.*?\\)/g, (m)=>m.replace(/,/g, \"‌\"))// Split the selector by ','\n .split(\",\")// Replace back \\u200C by ','\n .map((s)=>{\n return $d708735ed1303b43$var$trim(s.replace(/\\u200C/g, \",\"));\n });\n }\n /**\n * Parse declaration.\n */ function declaration() {\n const pos = position();\n // prop\n const propMatch = match(/^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n if (!propMatch) return;\n const propValue = $d708735ed1303b43$var$trim(propMatch[0]);\n // :\n if (!match(/^:\\s*/)) return error(\"property missing ':'\");\n // val\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/);\n const ret = pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).declaration,\n property: propValue.replace($d708735ed1303b43$var$commentre, \"\"),\n value: val ? $d708735ed1303b43$var$trim(val[0]).replace($d708735ed1303b43$var$commentre, \"\") : \"\"\n });\n // ;\n match(/^[;\\s]*/);\n return ret;\n }\n /**\n * Parse declarations.\n */ function declarations() {\n const decls = [];\n if (!open()) return error(\"missing '{'\");\n comments(decls);\n // declarations\n let decl;\n while(decl = declaration())if (decl) {\n decls.push(decl);\n comments(decls);\n }\n if (!close()) return error(\"missing '}'\");\n return decls;\n }\n /**\n * Parse keyframe.\n */ function keyframe() {\n let m;\n const vals = [];\n const pos = position();\n while(m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/)){\n vals.push(m[1]);\n match(/^,\\s*/);\n }\n if (!vals.length) return;\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).keyframe,\n values: vals,\n declarations: declarations() || []\n });\n }\n /**\n * Parse keyframes.\n */ function atkeyframes() {\n const pos = position();\n const m1 = match(/^@([-\\w]+)?keyframes\\s*/);\n if (!m1) return;\n const vendor = m1[1];\n // identifier\n const m2 = match(/^([-\\w]+)\\s*/);\n if (!m2) return error(\"@keyframes missing name\");\n const name = m2[1];\n if (!open()) return error(\"@keyframes missing '{'\");\n let frame;\n let frames = comments();\n while(frame = keyframe()){\n frames.push(frame);\n frames = frames.concat(comments());\n }\n if (!close()) return error(\"@keyframes missing '}'\");\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).keyframes,\n name: name,\n vendor: vendor,\n keyframes: frames\n });\n }\n /**\n * Parse supports.\n */ function atsupports() {\n const pos = position();\n const m = match(/^@supports *([^{]+)/);\n if (!m) return;\n const supports = $d708735ed1303b43$var$trim(m[1]);\n if (!open()) return error(\"@supports missing '{'\");\n const style = comments().concat(rules());\n if (!close()) return error(\"@supports missing '}'\");\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).supports,\n supports: supports,\n rules: style\n });\n }\n /**\n * Parse host.\n */ function athost() {\n const pos = position();\n const m = match(/^@host\\s*/);\n if (!m) return;\n if (!open()) return error(\"@host missing '{'\");\n const style = comments().concat(rules());\n if (!close()) return error(\"@host missing '}'\");\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).host,\n rules: style\n });\n }\n /**\n * Parse container.\n */ function atcontainer() {\n const pos = position();\n const m = match(/^@container *([^{]+)/);\n if (!m) return;\n const container = $d708735ed1303b43$var$trim(m[1]);\n if (!open()) return error(\"@container missing '{'\");\n const style = comments().concat(rules());\n if (!close()) return error(\"@container missing '}'\");\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).container,\n container: container,\n rules: style\n });\n }\n /**\n * Parse container.\n */ function atlayer() {\n const pos = position();\n const m = match(/^@layer *([^{;@]+)/);\n if (!m) return;\n const layer = $d708735ed1303b43$var$trim(m[1]);\n if (!open()) {\n match(/^[;\\s]*/);\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).layer,\n layer: layer\n });\n }\n const style = comments().concat(rules());\n if (!close()) return error(\"@layer missing '}'\");\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).layer,\n layer: layer,\n rules: style\n });\n }\n /**\n * Parse media.\n */ function atmedia() {\n const pos = position();\n const m = match(/^@media *([^{]+)/);\n if (!m) return;\n const media = $d708735ed1303b43$var$trim(m[1]);\n if (!open()) return error(\"@media missing '{'\");\n const style = comments().concat(rules());\n if (!close()) return error(\"@media missing '}'\");\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).media,\n media: media,\n rules: style\n });\n }\n /**\n * Parse custom-media.\n */ function atcustommedia() {\n const pos = position();\n const m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\n if (!m) return;\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).customMedia,\n name: $d708735ed1303b43$var$trim(m[1]),\n media: $d708735ed1303b43$var$trim(m[2])\n });\n }\n /**\n * Parse paged media.\n */ function atpage() {\n const pos = position();\n const m = match(/^@page */);\n if (!m) return;\n const sel = selector() || [];\n if (!open()) return error(\"@page missing '{'\");\n let decls = comments();\n // declarations\n let decl;\n while(decl = declaration()){\n decls.push(decl);\n decls = decls.concat(comments());\n }\n if (!close()) return error(\"@page missing '}'\");\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).page,\n selectors: sel,\n declarations: decls\n });\n }\n /**\n * Parse document.\n */ function atdocument() {\n const pos = position();\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\n if (!m) return;\n const vendor = $d708735ed1303b43$var$trim(m[1]);\n const doc = $d708735ed1303b43$var$trim(m[2]);\n if (!open()) return error(\"@document missing '{'\");\n const style = comments().concat(rules());\n if (!close()) return error(\"@document missing '}'\");\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).document,\n document: doc,\n vendor: vendor,\n rules: style\n });\n }\n /**\n * Parse font-face.\n */ function atfontface() {\n const pos = position();\n const m = match(/^@font-face\\s*/);\n if (!m) return;\n if (!open()) return error(\"@font-face missing '{'\");\n let decls = comments();\n // declarations\n let decl;\n while(decl = declaration()){\n decls.push(decl);\n decls = decls.concat(comments());\n }\n if (!close()) return error(\"@font-face missing '}'\");\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).fontFace,\n declarations: decls\n });\n }\n /**\n * Parse import\n */ const atimport = _compileAtrule(\"import\");\n /**\n * Parse charset\n */ const atcharset = _compileAtrule(\"charset\");\n /**\n * Parse namespace\n */ const atnamespace = _compileAtrule(\"namespace\");\n /**\n * Parse non-block at-rules\n */ function _compileAtrule(name) {\n const re = new RegExp(\"^@\" + name + \"\\\\s*((:?[^;'\\\"]|\\\"(?:\\\\\\\\\\\"|[^\\\"])*?\\\"|'(?:\\\\\\\\'|[^'])*?')+);\");\n // ^@import\\s*([^;\"']|(\"|')(?:\\\\\\2|.)*?\\2)+;\n return function() {\n const pos = position();\n const m = match(re);\n if (!m) return;\n const ret = {\n type: name\n };\n ret[name] = m[1].trim();\n return pos(ret);\n };\n }\n /**\n * Parse at rule.\n */ function atrule() {\n if (css[0] !== \"@\") return;\n return atkeyframes() || atmedia() || atcustommedia() || atsupports() || atimport() || atcharset() || atnamespace() || atdocument() || atpage() || athost() || atfontface() || atcontainer() || atlayer();\n }\n /**\n * Parse rule.\n */ function rule() {\n const pos = position();\n const sel = selector();\n if (!sel) return error(\"selector missing\");\n comments();\n return pos({\n type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).rule,\n selectors: sel,\n declarations: declarations() || []\n });\n }\n return $d708735ed1303b43$var$addParent(stylesheet());\n};\n/**\n * Trim `str`.\n */ function $d708735ed1303b43$var$trim(str) {\n return str ? str.trim() : \"\";\n}\n/**\n * Adds non-enumerable parent node reference to each node.\n */ function $d708735ed1303b43$var$addParent(obj, parent) {\n const isNode = obj && typeof obj.type === \"string\";\n const childParent = isNode ? obj : parent;\n for(const k in obj){\n const value = obj[k];\n if (Array.isArray(value)) value.forEach((v)=>{\n $d708735ed1303b43$var$addParent(v, childParent);\n });\n else if (value && typeof value === \"object\") $d708735ed1303b43$var$addParent(value, childParent);\n }\n if (isNode) Object.defineProperty(obj, \"parent\", {\n configurable: true,\n writable: true,\n enumerable: false,\n value: parent || null\n });\n return obj;\n}\nvar $d708735ed1303b43$export$2e2bcd8739ae039 = $d708735ed1303b43$export$98e6a39c04603d36;\n\n\n\nclass $de9540138ed1fd01$var$Compiler {\n level = 0;\n indentation = \" \";\n compress = false;\n constructor(options){\n if (typeof options?.indent === \"string\") this.indentation = options?.indent;\n if (options?.compress) this.compress = true;\n }\n // We disable no-unused-vars for _position. We keep position for potential reintroduction of source-map\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n emit(str, _position) {\n return str;\n }\n /**\n * Increase, decrease or return current indentation.\n */ indent(level) {\n this.level = this.level || 1;\n if (level) {\n this.level += level;\n return \"\";\n }\n return Array(this.level).join(this.indentation);\n }\n visit(node) {\n switch(node.type){\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).stylesheet:\n return this.stylesheet(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).rule:\n return this.rule(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).declaration:\n return this.declaration(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).comment:\n return this.comment(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).container:\n return this.container(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).charset:\n return this.charset(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).document:\n return this.document(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).customMedia:\n return this.customMedia(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).fontFace:\n return this.fontFace(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).host:\n return this.host(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).import:\n return this.import(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).keyframes:\n return this.keyframes(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).keyframe:\n return this.keyframe(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).layer:\n return this.layer(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).media:\n return this.media(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).namespace:\n return this.namespace(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).page:\n return this.page(node);\n case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).supports:\n return this.supports(node);\n }\n }\n mapVisit(nodes, delim) {\n let buf = \"\";\n delim = delim || \"\";\n for(let i = 0, length = nodes.length; i < length; i++){\n buf += this.visit(nodes[i]);\n if (delim && i < length - 1) buf += this.emit(delim);\n }\n return buf;\n }\n compile(node) {\n if (this.compress) return node.stylesheet.rules.map(this.visit, this).join(\"\");\n return this.stylesheet(node);\n }\n /**\n * Visit stylesheet node.\n */ stylesheet(node) {\n return this.mapVisit(node.stylesheet.rules, \"\\n\\n\");\n }\n /**\n * Visit comment node.\n */ comment(node) {\n if (this.compress) return this.emit(\"\", node.position);\n return this.emit(this.indent() + \"/*\" + node.comment + \"*/\", node.position);\n }\n /**\n * Visit container node.\n */ container(node) {\n if (this.compress) return this.emit(\"@container \" + node.container, node.position) + this.emit(\"{\") + this.mapVisit(node.rules) + this.emit(\"}\");\n return this.emit(this.indent() + \"@container \" + node.container, node.position) + this.emit(\" {\\n\" + this.indent(1)) + this.mapVisit(node.rules, \"\\n\\n\") + this.emit(\"\\n\" + this.indent(-1) + this.indent() + \"}\");\n }\n /**\n * Visit container node.\n */ layer(node) {\n if (this.compress) return this.emit(\"@layer \" + node.layer, node.position) + (node.rules ? this.emit(\"{\") + this.mapVisit(node.rules) + this.emit(\"}\") : \";\");\n return this.emit(this.indent() + \"@layer \" + node.layer, node.position) + (node.rules ? this.emit(\" {\\n\" + this.indent(1)) + this.mapVisit(node.rules, \"\\n\\n\") + this.emit(\"\\n\" + this.indent(-1) + this.indent() + \"}\") : \";\");\n }\n /**\n * Visit import node.\n */ import(node) {\n return this.emit(\"@import \" + node.import + \";\", node.position);\n }\n /**\n * Visit media node.\n */ media(node) {\n if (this.compress) return this.emit(\"@media \" + node.media, node.position) + this.emit(\"{\") + this.mapVisit(node.rules) + this.emit(\"}\");\n return this.emit(this.indent() + \"@media \" + node.media, node.position) + this.emit(\" {\\n\" + this.indent(1)) + this.mapVisit(node.rules, \"\\n\\n\") + this.emit(\"\\n\" + this.indent(-1) + this.indent() + \"}\");\n }\n /**\n * Visit document node.\n */ document(node) {\n const doc = \"@\" + (node.vendor || \"\") + \"document \" + node.document;\n if (this.compress) return this.emit(doc, node.position) + this.emit(\"{\") + this.mapVisit(node.rules) + this.emit(\"}\");\n return this.emit(doc, node.position) + this.emit(\" {\\n\" + this.indent(1)) + this.mapVisit(node.rules, \"\\n\\n\") + this.emit(this.indent(-1) + \"\\n}\");\n }\n /**\n * Visit charset node.\n */ charset(node) {\n return this.emit(\"@charset \" + node.charset + \";\", node.position);\n }\n /**\n * Visit namespace node.\n */ namespace(node) {\n return this.emit(\"@namespace \" + node.namespace + \";\", node.position);\n }\n /**\n * Visit supports node.\n */ supports(node) {\n if (this.compress) return this.emit(\"@supports \" + node.supports, node.position) + this.emit(\"{\") + this.mapVisit(node.rules) + this.emit(\"}\");\n return this.emit(this.indent() + \"@supports \" + node.supports, node.position) + this.emit(\" {\\n\" + this.indent(1)) + this.mapVisit(node.rules, \"\\n\\n\") + this.emit(\"\\n\" + this.indent(-1) + this.indent() + \"}\");\n }\n /**\n * Visit keyframes node.\n */ keyframes(node) {\n if (this.compress) return this.emit(\"@\" + (node.vendor || \"\") + \"keyframes \" + node.name, node.position) + this.emit(\"{\") + this.mapVisit(node.keyframes) + this.emit(\"}\");\n return this.emit(\"@\" + (node.vendor || \"\") + \"keyframes \" + node.name, node.position) + this.emit(\" {\\n\" + this.indent(1)) + this.mapVisit(node.keyframes, \"\\n\") + this.emit(this.indent(-1) + \"}\");\n }\n /**\n * Visit keyframe node.\n */ keyframe(node) {\n const decls = node.declarations;\n if (this.compress) return this.emit(node.values.join(\",\"), node.position) + this.emit(\"{\") + this.mapVisit(decls) + this.emit(\"}\");\n return this.emit(this.indent()) + this.emit(node.values.join(\", \"), node.position) + this.emit(\" {\\n\" + this.indent(1)) + this.mapVisit(decls, \"\\n\") + this.emit(this.indent(-1) + \"\\n\" + this.indent() + \"}\\n\");\n }\n /**\n * Visit page node.\n */ page(node) {\n if (this.compress) {\n const sel = node.selectors.length ? node.selectors.join(\", \") : \"\";\n return this.emit(\"@page \" + sel, node.position) + this.emit(\"{\") + this.mapVisit(node.declarations) + this.emit(\"}\");\n }\n const sel = node.selectors.length ? node.selectors.join(\", \") + \" \" : \"\";\n return this.emit(\"@page \" + sel, node.position) + this.emit(\"{\\n\") + this.emit(this.indent(1)) + this.mapVisit(node.declarations, \"\\n\") + this.emit(this.indent(-1)) + this.emit(\"\\n}\");\n }\n /**\n * Visit font-face node.\n */ fontFace(node) {\n if (this.compress) return this.emit(\"@font-face\", node.position) + this.emit(\"{\") + this.mapVisit(node.declarations) + this.emit(\"}\");\n return this.emit(\"@font-face \", node.position) + this.emit(\"{\\n\") + this.emit(this.indent(1)) + this.mapVisit(node.declarations, \"\\n\") + this.emit(this.indent(-1)) + this.emit(\"\\n}\");\n }\n /**\n * Visit host node.\n */ host(node) {\n if (this.compress) return this.emit(\"@host\", node.position) + this.emit(\"{\") + this.mapVisit(node.rules) + this.emit(\"}\");\n return this.emit(\"@host\", node.position) + this.emit(\" {\\n\" + this.indent(1)) + this.mapVisit(node.rules, \"\\n\\n\") + this.emit(this.indent(-1) + \"\\n}\");\n }\n /**\n * Visit custom-media node.\n */ customMedia(node) {\n return this.emit(\"@custom-media \" + node.name + \" \" + node.media + \";\", node.position);\n }\n /**\n * Visit rule node.\n */ rule(node) {\n const decls = node.declarations;\n if (!decls.length) return \"\";\n if (this.compress) return this.emit(node.selectors.join(\",\"), node.position) + this.emit(\"{\") + this.mapVisit(decls) + this.emit(\"}\");\n const indent = this.indent();\n return this.emit(node.selectors.map((s)=>{\n return indent + s;\n }).join(\",\\n\"), node.position) + this.emit(\" {\\n\") + this.emit(this.indent(1)) + this.mapVisit(decls, \"\\n\") + this.emit(this.indent(-1)) + this.emit(\"\\n\" + this.indent() + \"}\");\n }\n /**\n * Visit declaration node.\n */ declaration(node) {\n if (this.compress) return this.emit(node.property + \":\" + node.value, node.position) + this.emit(\";\");\n return this.emit(this.indent()) + this.emit(node.property + \": \" + node.value, node.position) + this.emit(\";\");\n }\n}\nvar $de9540138ed1fd01$export$2e2bcd8739ae039 = $de9540138ed1fd01$var$Compiler;\n\n\nvar $fdf773ab87e20450$export$2e2bcd8739ae039 = (node, options)=>{\n const compiler = new (0, $de9540138ed1fd01$export$2e2bcd8739ae039)(options || {});\n return compiler.compile(node);\n};\n\n\n\n\n\nconst $149c1bd638913645$export$98e6a39c04603d36 = (0, $d708735ed1303b43$export$2e2bcd8739ae039);\nconst $149c1bd638913645$export$fac44ee5b035f737 = (0, $fdf773ab87e20450$export$2e2bcd8739ae039);\nvar $149c1bd638913645$export$2e2bcd8739ae039 = {\n parse: $149c1bd638913645$export$98e6a39c04603d36,\n stringify: $149c1bd638913645$export$fac44ee5b035f737\n};\n\n\nexport {$149c1bd638913645$export$98e6a39c04603d36 as parse, $149c1bd638913645$export$fac44ee5b035f737 as stringify, $149c1bd638913645$export$2e2bcd8739ae039 as default, $b2e137848b48cf4f$export$9be5dd6e61d5d73a as CssTypes};\n//# sourceMappingURL=index.mjs.map\n","import * as cssTools from '@adobe/css-tools';\n\n/**\n * Helper function to add Scope to a specific CSS Selector.\n * Handles :host and ::slotted conversions.\n */\nconst _scopeSelector = (selector, scopeId) => {\n // Check if selector is already scoped.\n if (selector.startsWith(scopeId)) {\n return selector;\n }\n // Skip :root selectors.\n else if (selector.includes(':root')) {\n return selector;\n }\n // Convert \":host(Something)\" to \"ScopeSomething\"\n else if (selector.includes(':host(')) {\n return selector.replace(/:host\\((.+?)\\)/, scopeId + '$1');\n }\n // Convert remaining \":host\" to \"Scope\"\n else if (selector.includes(':host')) {\n return selector.replace(':host', scopeId);\n }\n // Convert \"::slotted(Something)\" to \"Scope Something\".\n else if (selector.includes('::slotted(')) {\n return selector.replace(/::slotted\\((.+?)\\)/, scopeId + ' $1');\n }\n // Otherwise, just prefix selector with Scope.\n return scopeId + ' ' + selector;\n};\n\n/**\n * Add scope to a single CSS rule.\n */\nconst _processCssRule = (rule, scopeId) => {\n if ('selectors' in rule && rule.selectors.length > 0) {\n for (let i = 0; i < rule.selectors.length; i++) {\n rule.selectors[i] = _scopeSelector(rule.selectors[i], scopeId);\n }\n } else if ('rules' in rule) {\n // Handle rules that have recursive rules (such as media)\n rule.rules.forEach(innerRule => {\n _processCssRule(innerRule, scopeId);\n });\n }\n};\n\n/**\n * Add the scopeId to each CSS rule selector.\n * Handle the :host and ::slotted selectors.\n */\nconst addScopeToStyles = (cssStyles, scopeId) => {\n // Use css-tools to parse the string into a tree.\n const ast = cssTools.parse(cssStyles);\n if (ast && ast.stylesheet && ast.stylesheet.rules.length > 0) {\n ast.stylesheet.rules.forEach(function (rule) {\n _processCssRule(rule, scopeId);\n });\n }\n\n // Convert tree back to a string and return the new css.\n return cssTools.stringify(ast, { compress: true });\n};\n\nexport { addScopeToStyles };\n","/* eslint-disable no-console */\nimport { ReactiveControllerHost, CSSResultGroup, CSSResult } from 'lit';\nimport { addScopeToStyles } from '@phase2/outline-core/src/internal/light-dom.mjs';\n\n/**\n * The LightComStyles ReactiveController.\n *\n * This controller allows components to inject styles into the light-dom.\n *\n * @param host The host element\n */\n\nexport declare type ComponentStyles = {\n name: string;\n styles: CSSResultGroup;\n};\n\nexport class LightDomStyles {\n // The scope to wrap the rules, defaults to the component name (tag).\n // If scopeId is empty, rules are added to light dom but not scoped.\n scopeId: string;\n\n // The parent component (host).\n protected host: ReactiveControllerHost & Element;\n\n // The host component name\n protected componentName: string;\n\n // Internal holder of styles to be processed.\n protected cssStyles: CSSResultGroup;\n\n // Counter used internally for multiple rules in a group.\n protected ruleIndex = 0;\n\n constructor(\n host: ReactiveControllerHost & Element,\n cssStyles: CSSResultGroup,\n scopeId = ''\n ) {\n // Store a reference to the host\n this.host = host;\n this.componentName = host.tagName.toLowerCase();\n // Store the css styles to be injected.\n this.cssStyles = cssStyles;\n this.scopeId = scopeId;\n // Register for lifecycle updates\n host.addController(this);\n }\n\n hostConnected(): void {\n // Add a comment that this component is using light-dom.\n const annotationComment = `'${this.componentName}' using light DOM styles injected into `;\n this.host.before(document.createComment(annotationComment));\n\n // Only add light-dom styles for this scopeId (component name) once.\n if (!document.getElementById(this.componentName)) {\n this.ruleIndex = 0;\n this._addLightDomGroup(this.cssStyles);\n }\n }\n\n /**\n * Add styles from a CSSResult to the light-dom, scoped by the scopeId.\n * Only add if style element doesn't already exist.\n */\n _addLightDomStyle(cssStyles: CSSResult) {\n // If this is the first rule, use the component name as the element id,\n // otherwise add a \"-INDEX\" counter to the element id.\n const elementId =\n this.ruleIndex !== 0\n ? this.componentName + '-' + this.ruleIndex\n : this.componentName;\n if (!document.getElementById(elementId)) {\n const scopedStyleElement = document.createElement('style');\n scopedStyleElement.id = elementId;\n\n // Add scope to css rules if scope isn't \"none\"\n let rawStyles = `${cssStyles}`;\n if (this.scopeId !== '') {\n rawStyles = addScopeToStyles(rawStyles, this.scopeId);\n }\n scopedStyleElement.innerHTML = rawStyles;\n\n // Prepend so consumer theme can still override.\n document.head.prepend(scopedStyleElement);\n\n // Add a comment to the style to indicate which component injected it.\n const annotationComment = `styles injected into DOM by '${this.componentName}'`;\n scopedStyleElement.before(document.createComment(annotationComment));\n }\n this.ruleIndex++;\n }\n\n /**\n * Add styles from a CSSResultGroup to the light-dom.\n */\n _addLightDomGroup(cssStyles: CSSResultGroup, depth = 0) {\n if (cssStyles instanceof Array) {\n // Loop through style array backwards since addLightDomStyle uses\n // prepend and we want to keep the original order.\n for (let index = cssStyles.length - 1; index >= 0; index--) {\n const item = cssStyles[index];\n if (item instanceof Array) {\n // A CSSResultGroup can be an array of other result groups.\n this._addLightDomGroup(item, depth + 1);\n } else if (item instanceof CSSResult) {\n this._addLightDomStyle(item);\n }\n }\n } else if (cssStyles instanceof CSSResult) {\n // Process a single result.\n this._addLightDomStyle(cssStyles);\n }\n }\n}\n","//\n// Emits a custom event with more convenient defaults.\n//\nexport function emit(el: HTMLElement, name: string, options?: CustomEventInit) {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {},\n ...options,\n });\n el.dispatchEvent(event);\n return event;\n}\n\n//\n// Waits for a specific event to be emitted from an element. Ignores events that bubble up from child elements.\n//\nexport function waitForEvent(el: HTMLElement, eventName: string) {\n return new Promise(resolve => {\n function done(event: Event) {\n if (event.target === el) {\n el.removeEventListener(eventName, done);\n resolve();\n }\n }\n\n el.addEventListener(eventName, done);\n });\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n\nimport type { LitElement } from 'lit';\n\ntype UpdateHandler = (prev?: unknown, next?: unknown) => void;\n\ntype NonUndefined = A extends undefined ? never : A;\n\ntype UpdateHandlerFunctionKeys = {\n [K in keyof T]-?: NonUndefined extends UpdateHandler ? K : never;\n}[keyof T];\n\ninterface WatchOptions {\n /**\n * If true, will only start watching after the initial update/render\n */\n waitUntilFirstUpdate?: boolean;\n}\n\nexport function watch(propName: string, options?: WatchOptions) {\n const resolvedOptions: Required = {\n waitUntilFirstUpdate: false,\n ...options,\n };\n return (\n proto: ElemClass,\n decoratedFnName: UpdateHandlerFunctionKeys\n ): void => {\n // @ts-expect-error -- update is a protected property\n const { update } = proto;\n if (propName in proto) {\n const propNameKey = propName as keyof ElemClass;\n // @ts-expect-error -- update is a protected property\n proto.update = function (\n this: ElemClass,\n changedProps: Map\n ) {\n if (changedProps.has(propNameKey)) {\n const oldValue = changedProps.get(propNameKey);\n const newValue = this[propNameKey];\n\n if (oldValue !== newValue) {\n if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {\n (this[decoratedFnName] as unknown as UpdateHandler)(\n oldValue,\n newValue\n );\n }\n }\n }\n\n update.call(this, changedProps);\n };\n }\n };\n}\n","export { OutlineElement } from './src/outline-element/outline-element';\n\nexport { ContainerSizeController } from './src/controllers/container-size-controller';\nexport { IsHoverableDeviceController } from './src/controllers/is-hoverable-device-controller';\nexport { LinkedBlockController } from './src/controllers/linked-block-controller';\nexport { MobileController } from './src/controllers/mobile-controller';\nexport { ScreenSizeController } from './src/controllers/screen-size-controller';\nexport { SlotsController } from './src/controllers/slots-controller';\nexport { LightDomStyles } from './src/controllers/light-dom-styles';\nexport { animateTo } from './src/internal/animate';\nexport { emit, waitForEvent } from './src/internal/event';\nexport { watch } from './src/internal/watch';\nexport { scrollIntoView } from './src/internal/scroll';\nexport { getOffset } from './src/internal/offset';\n\nexport type {\n Size,\n VerticalAlignment,\n HorizontalAlignment,\n Orientation,\n TextInput,\n LinkType,\n} from './src/utils/types';\nexport {\n format,\n extractPx,\n argTypeSlotContent,\n argTypeOrientation,\n argTypeColSpan,\n argTypeRowSpan,\n argTypeGapSize,\n argTypeVerticalAlign,\n argTypeHorizontalAlign,\n argTypeSize,\n argTypeImageUrl,\n argTypeHidden,\n argTypeMapMarkers,\n} from './src/utils/utils';\n\nexport const defaultColorSets = {\n sets: ['outline', 'primary', 'secondary', 'tertiary', 'neutral'],\n};\n\nexport const defaultIconConfig = {\n libraries: {\n bootstrap: true,\n boxicons: true,\n fontawesome: true,\n heroicons: true,\n iconoir: true,\n ionicons: true,\n jam: true,\n lucide: true,\n material: true,\n remix: true,\n unicons: true,\n },\n defaults: {\n library: 'bootstrap',\n size: '16px',\n icon: 'chevron-right',\n },\n};\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --body-font-size:var(--fs-body-sm);\n}\n\n.accordion{\n display:flex;\n flex-direction:column;\n row-gap:var(--spacing-6);\n}\n\n.accordion--top-content{\n border-bottom:2px solid var(--brand-gray-400);\n padding-bottom:var(--spacing-3);\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { OutlineElement, SlotsController } from '@phase2/outline-core';\nimport { customElement, queryAssignedElements } from 'lit/decorators.js';\nimport componentStyles from './outline-accordion-baseline.css.lit';\nimport { OutlineAccordionBaselinePanel } from './outline-accordion-baseline-panel/outline-accordion-baseline-panel';\n/**\n * The OutlineAccordionBaseline component\n * @element outline-accordion-baseline\n */\n@customElement('outline-accordion-baseline')\nexport class OutlineAccordionBaseline extends OutlineElement {\n slots = new SlotsController(this);\n static styles: CSSResultGroup = [componentStyles];\n\n /**\n * Reference to in panels slot.\n */\n @queryAssignedElements({ slot: 'panels' })\n panels: OutlineAccordionBaselinePanel[];\n\n render(): TemplateResult {\n return html`\n
\n
\n
\n ${this.slots.conditionalSlot('heading', false)}\n
\n
\n ${this.slots.conditionalSlot('eyebrow', false)}\n
\n
\n
\n \n
\n
\n `;\n }\n\n /**\n * @param event\n * @returns void\n * Adds up/down arrow keyboard navigation.\n * TODO: try to refactor to something simpler.\n */\n handleKeyboardNav(event: KeyboardEvent) {\n let index = 0;\n const panels = this.panels;\n const start = Array.prototype.indexOf.call(\n panels,\n event.target as HTMLElement\n );\n\n // bail on wrong key\n if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') {\n return;\n }\n if (event.key === 'ArrowDown') {\n if (panels?.length && start + 1 > panels?.length - 1) {\n index = 0;\n } else index = start + 1;\n }\n if (event.key === 'ArrowUp') {\n if (panels?.length && start - 1 < 0) {\n index = panels?.length - 1;\n } else index = start - 1;\n }\n const focusTarget = panels?.[index] as unknown as HTMLElement;\n focusTarget.shadowRoot?.querySelector('button')?.focus();\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --heading-color:var(--brand-white);\n}\n\n.anchor-block{\n background-color:var(--brand-primary-dark-blue);\n background-color:var(--background-color, var(--brand-primary-dark-blue));\n}\n\n.inner{\n display:flex;\n flex-direction:column;\n padding:var(--spacing-5);\n}\n\n@media (min-width: 1024px){\n\n.inner{\n flex-direction:row;\n justify-content:space-between\n}\n }\n\n.btn{\n width:100%;\n}\n\n@media (min-width: 1024px){\n\n:host([variant='stacked']) .anchor-block{\n padding:var(--spacing-12)\n }\n }\n\n:host([variant='stacked']) .inner{\n gap:var(--spacing-10);\n flex-direction:column;\n }\n\n:host([variant='stacked']) ul{\n display:grid;\n gap:var(--spacing-4);\n }\n\n@media (min-width: 1024px){\n\n:host([variant='stacked']) ul{\n grid-template-columns:repeat(3, 1fr);\n grid-auto-rows:minmax(0, auto);\n grid-auto-flow:dense\n }\n }\n\n@media (min-width: 1024px){\n\n:host([variant='inline']) .anchor-block{\n padding:5.625rem var(--spacing-5)\n }\n }\n\n:host([variant='inline']) .inner{\n gap:var(--spacing-4);\n }\n\n:host([variant='inline']) .left-col{\n display:flex;\n align-items:center;\n }\n\n@media (min-width: 1024px){\n\n:host([variant='inline']) .left-col,\n :host([variant='inline']) .right-col{\n width:50%\n }\n }\n\n:host([variant='inline']) ul{\n display:flex;\n flex-direction:column;\n gap:var(--spacing-4);\n }\n`;","import {\n LightDomStyles,\n OutlineElement,\n SlotsController,\n} from '@phase2/outline-core';\nimport { html, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport componentStyles from './outline-anchor-block.css.lit';\n\n/**\n * The Anchor Blockcomponent.\n * @element outline-anchor-block\n * @slot defaultSlot\n */\n@customElement('outline-anchor-block')\nexport class OutlineAnchorBlock extends OutlineElement {\n static styles = [componentStyles];\n\n slots = new SlotsController(this);\n\n lightDomStyles = new LightDomStyles(\n this,\n [componentStyles],\n this.tagName.toLowerCase()\n );\n\n @property({ type: String, reflect: true, attribute: 'variant' })\n variant: 'inline' | 'stacked';\n\n render(): TemplateResult {\n return html`\n
\n
\n
\n ${this.slots.conditionalSlot('heading', false)}\n
\n
\n ${this.slots.conditionalSlot('anchor-link', false)}\n
\n
\n
\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-anchor-block': OutlineAnchorBlock;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --outline-admin-links--color--computed:var(--outline-admin-links--color, var(--outline-gray-600));\n --outline-admin-links--color-hover--computed:var(--outline-admin-links--color-hover, var(--outline-soft-black));\n --outline-admin-links--color-focus--computed:var(--outline-admin-links--color-focus, var(--outline-soft-black));\n --outline-admin-links--color-active--computed:var(--outline-admin-links--color-active,var( --outline-white));\n --outline-admin-links--bg--computed:var(--outline-admin-links--bg, var(--outline-gray-100));\n --outline-admin-links--bg-hover--computed:var(--outline-admin-links--bg-hover,var( --outline-gray-300));\n --outline-admin-links--bg-focus--computed:var(--outline-admin-links--bg-focus,var( --outline-gray-300));\n --outline-admin-links--bg-active--computed:var(--outline-admin-links--bg-active, var(--outline-blue-600));\n --outline-admin-links--spacing-y--computed:var(--outline-admin-links--spacing-y, var(--spacing-4));\n --outline-admin-links--link-spacing-y--computed:var(--outline-admin-links--link-spacing-y, var(--spacing-4));\n --outline-admin-links--link-spacing-x--computed:var(--outline-admin-links--link-spacing-x, var(--spacing-6));\n}\n\n.links{\n padding-top:var(--outline-admin-links--spacing-y--computed);\n padding-bottom:var(--outline-admin-links--spacing-y--computed);\n}\n\nul{\n display:flex;\n list-style-type:none;\n margin:0;\n overflow-x:scroll;\n overflow-y:hidden;\n padding:0;\n white-space:nowrap;\n -webkit-overflow-scrolling:touch;\n -ms-overflow-style:-ms-autohiding-scrollbar;\n}\n\n@media (min-width: 1024px){\n\nul{\n overflow-x:initial;\n overflow-y:initial;\n white-space:normal\n}\n }\n\nul::-webkit-scrollbar{\n display:none;\n }\n\nli{\n margin:0;\n padding:0;\n display:block;\n}\n\na{\n display:block;\n position:relative;\n text-decoration:none;\n padding-top:var(--outline-admin-links--link-spacing-y--computed);\n padding-bottom:var(--outline-admin-links--link-spacing-y--computed);\n padding-left:var(--outline-admin-links--link-spacing-x--computed);\n padding-right:var(--outline-admin-links--link-spacing-x--computed);\n background:var(--outline-admin-links--bg--computed);\n color:var(--outline-admin-links--color--computed);\n}\n\na:hover{\n outline:none;\n background:var(--outline-admin-links--bg-hover--computed);\n color:var(--outline-admin-links--color-hover--computed);\n }\n\na:focus{\n outline:none;\n background:var(--outline-admin-links--bg-focus--computed);\n color:var(--outline-admin-links--color-focus--computed);\n }\n\na:not(.is-active):hover::before,\n a:not(.is-active):focus::before{\n position:absolute;\n top:50%;\n left:50%;\n width:calc(100%);\n height:100%;\n content:'';\n transform:translate(-50%, -50%);\n border:solid 2px var(--outline-admin-links--color-hover--computed);\n border-radius:0.25rem;\n }\n\na.is-active{\n outline:solid 2px var(--outline-admin-links--color-hover--computed);\n background:var(--outline-admin-links--bg-active--computed);\n color:var(--outline-admin-links--color-active--computed);\n z-index:1;\n }\n\na.is-active:hover,\n a.is-active:focus{\n outline-offset:2px;\n }\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { OutlineElement, SlotsController } from '@phase2/outline-core';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-admin-links-baseline.css.lit';\n\n/**\n * The Outline Admin Links component\n * @element outline-admin-links\n * @extends OutlineElement\n * @slot - The default slot for this element.\n * @cssprop --outline-admin-links--color: The default text color for the admin links.\n * @cssprop --outline-admin-links--color-hover: The hover text color for the admin links.\n * @cssprop --outline-admin-links--color-focus: The focus text color for the admin links.\n * @cssprop --outline-admin-links--color-active: The active text color for the admin links.\n * @cssprop --outline-admin-links--bg-default: The default background color for the admin links.\n * @cssprop --outline-admin-links--bg-hover: The hover background color for the admin links.\n * @cssprop --outline-admin-links--bg-focus: The focus background color for the admin links.\n * @cssprop --outline-admin-links--bg-active: The active background color for the admin links.\n * @cssprop --outline-admin-links--spacing-y: The vertical spacing for the admin links group.\n * @cssprop --outline-admin-links--link-spacing-y: The vertical padding for the individual admin links.\n * @cssprop --outline-admin-links--link-spacing-x: The horizontal padding for the individual admin links.\n * @todo: Ensure this component is more mobile friendly.\n */\n@customElement('outline-admin-links-baseline')\nexport class OutlineAdminLinksBaseline extends OutlineElement {\n slots = new SlotsController(this);\n static styles: CSSResultGroup = [componentStyles];\n\n render(): TemplateResult {\n return html`
${this.slots.renderInShadow('')}
`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-admin-links-baseline': OutlineAdminLinksBaseline;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --shadow:0 0 40px 5px rgba($dark-blue, 0.1);\n}\n.interactive-document{\n position:relative;\n}\n.interactive-document .user-markup + .interactive-document__container{\n margin-top:24px;\n }\n@media (min-width: 1024px){\n.interactive-document .user-markup + .interactive-document__container{\n margin-top:(40px - 4px)\n }\n }\n.interactive-document__container{\n position:relative;\n }\n.interactive-document__figure{\n box-shadow:var(--shadow);\n position:relative;\n z-index:1;\n }\n.interactive-document .btn{\n left:50%;\n position:absolute;\n top:50%;\n transform:translate(-50%, -50%);\n width:calc(100% - (40px * 2));\n z-index:10;\n }\n@media (min-width: 1024px){\n.interactive-document .btn{\n margin-top:30px\n }\n }\n.accordion-wrapper{\n display:flex;\n flex-direction:column;\n gap:var(--spacing-4);\n}\n@media (min-width: 1024px){\n.accordion-wrapper{\n display:none\n}\n }\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-bill-map.css.lit';\nimport { OutlineElement, SlotsController } from '@phase2/outline-core';\n\n/**\n * The OutlineBillMap component\n * @element outline-bill-map\n */\n@customElement('outline-bill-map')\nexport class OutlineBillMap extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n slots = new SlotsController(this);\n\n render(): TemplateResult {\n return html`\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:block;\n}\n\n :host figure{\n margin:0;\n display:block;\n height:auto;\n }\n\nfigure{\n width:100%;\n height:100%;\n display:flex;\n}\n\npicture{\n aspect-ratio:default;\n overflow:hidden;\n display:flex;\n}\n\nimg{\n object-fit:cover;\n height:auto;\n min-width:100%;\n}\n\n:host([image-ratio='1/1']) picture{\n aspect-ratio:1 / 1;\n}\n\n:host([image-ratio='3/2']) picture{\n aspect-ratio:3 / 2;\n}\n\n:host([image-ratio='3/4']) picture{\n aspect-ratio:3 / 4;\n}\n\n:host([image-ratio='4/3']) picture{\n aspect-ratio:4 / 3;\n}\n\n:host([image-ratio='5/4']) picture{\n aspect-ratio:5 / 4;\n}\n\n:host([image-ratio='16/9']) picture{\n aspect-ratio:16 / 9;\n}\n\n:host([image-ratio='9/16']) picture{\n aspect-ratio:9 / 16;\n}\n\n:host([image-ratio='21/9']) picture{\n aspect-ratio:21 / 9;\n}\n\n:host([image-ratio='42/9']) picture{\n aspect-ratio:42 / 9;\n}\n`;","import { html, TemplateResult } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { OutlineElement, SlotsController } from '@phase2/outline-core';\nimport componentStyles from './outline-image.css.lit';\n\nexport const aspectRatios = [\n 'default',\n '1/1',\n '3/2',\n '3/4',\n '4/3',\n '5/4',\n '16/9',\n '9/16',\n '21/9',\n '42/9',\n] as const;\nexport type AspectRatios = typeof aspectRatios[number];\n/**\n * The image component, with support for parallax scrolling.\n * @element outline-image\n * @extends OutlineElement\n * @since 0.0.1\n * @attr image-href - The image URL.\n * @attr image-label - The image alt text.\n * @attr image-ratio - The image aspect ratio.\n * @slot - The image to be presented.\n * @slot caption - The caption text for the image.\n * @todo: Update the caption slot. Add CSS Variables.\n * @todo: Add support for loading=\"lazy\". Add support for loading=\"eager\"?\n * @todo: Add more demos for the image component, including caption usage.\n * @todo: Add more tests for the image component.\n */\n@customElement('outline-image')\nexport class OutlineImage extends OutlineElement {\n slots = new SlotsController(this);\n static styles = [componentStyles];\n\n @state() hasCaptionSlot: boolean;\n\n /**\n * Image url\n */\n @property({ type: String, attribute: 'image-href' })\n imageHref: string | boolean = false;\n\n /**\n * Image text\n */\n @property({ type: String, attribute: 'image-label' })\n imageLabel: string | boolean = false;\n\n /**\n * Image aspect ratio.\n *\n * This value can be customized per image usage.\n * It will work with the property usages of image-href and image-label.\n *\n * If using a slotted image, it will work if the structure is an\n * img tag wrapped in a picture tag.\n *\n * @todo: Add image ratio per breakpoint.\n */\n @property({ type: String, attribute: 'image-ratio', reflect: true })\n imageRatio: AspectRatios;\n\n firstUpdated(): void {\n this.hasCaptionSlot = Boolean(this.slots.exist('caption'));\n }\n\n captionSlotTemplate(): TemplateResult | null {\n return !this.hasCaptionSlot\n ? null\n : html`
${this.slots.renderInShadow('caption')}
`;\n }\n\n render(): TemplateResult {\n return html`${\n this.imageHref\n ? html`
\n \n \"${ifDefined(this.imageLabel)}\"\n \n ${this.captionSlotTemplate()}\n
`\n : html`
${this.slots.renderInShadow(\n ''\n )}${this.captionSlotTemplate()}
`\n } `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-image': OutlineImage;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:block;\n}\n\n :host figure{\n margin:0;\n }\n\n :host figure > div{\n display:flex;\n flex-direction:column;\n align-items:center;\n justify-content:center;\n }\n\n :host figure img{\n max-width:100%;\n height:auto;\n }\n\n :host figure.full-width,\n :host figure.full-width > div{\n width:100%;\n }\n\n :host figure.full-width img, :host figure.full-width > div img{\n width:100%;\n }\n\n :host figure.has-title{\n padding-top:var(--padding-y-sm);\n }\n`;","import { html, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { OutlineImage } from '@phase2/outline-image';\nimport componentStyles from './outline-block-image.css.lit';\n\n/**\n * The image component.\n */\n@customElement('outline-block-image')\nexport class OutlineBlockImage extends OutlineImage {\n static styles = [componentStyles];\n\n /**\n * Full width image\n */\n @property({ type: String, attribute: 'full-width' })\n fullWidth: string | boolean = false;\n\n /**\n * Image url\n */\n @property({ type: String, attribute: 'image-href' })\n imageHref: string | boolean = false;\n\n /**\n * Image text\n */\n @property({ type: String, attribute: 'image-label' })\n imageLabel: string | boolean = false;\n\n /**\n * Has title\n */\n @property({ type: String, attribute: 'has-title' })\n hasTitle: string | boolean = false;\n\n render(): TemplateResult {\n return html`${this.imageHref\n ? html`\n
\n \n \"${ifDefined(this.imageLabel)}\"\n \n ${this.captionSlotTemplate()}\n `\n : html`\n ${this.slots.renderInShadow('')}${this.captionSlotTemplate()}\n `} `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --link-font-size:var(--fs-body-sm);\n --link-color-default:var(--brand-gray-900);\n --padding-y:0.625rem;\n font-size:var(--body-font-size);\n font-family:var(--ff-body);\n color:var(--brand-gray-900);\n}\n\nol,\n.breadcrumb{\n display:flex;\n align-items:center;\n list-style:none;\n gap:var(--spacing-2);\n padding:var(--padding-y) var(--padding-x);\n}\n\nli{\n display:flex;\n align-items:center;\n gap:var(--spacing-2);\n}\n\n.first a{\n --link-margin-x:-0.1875rem;\n --link-padding-x:0.1875rem;\n padding-top:0.1875rem;\n padding-bottom:0.1875rem;\n border-bottom:0;\n}\n\n.separator{\n width:8px;\n transform:rotate(180deg);\n}\n\n@media (min-width: 768px){\n\n.separator{\n transform:none\n}\n }\n\n.last{\n transform:translateY(1px);\n display:flex;\n}\n\n.last .separator{\n display:none;\n }\n`;","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --link-font-family:var(--ff-body);\n --link-font-weight:var(--fw-normal);\n --link-font-size:var(--fs-body-lg);\n --link-line-height:var(--lh-percentage-body);\n\n --link-color-default:var(--brand-primary-dark-blue);\n --link-color-hover:var(--brand-primary-dark-blue);\n --link-color-disabled:var(--brand-gray-600);\n\n --link-background-color-default:transparent;\n --link-background-color-hover:var(--brand-primary-green);\n --link-margin-x:0;\n --link-padding-x:0;\n}\n\na{\n font-family:var(--ff-body);\n font-family:var(--link-font-family, var(--ff-body));\n font-weight:var(--fw-normal);\n font-weight:var(--link-font-weight, var(--fw-normal));\n font-size:var(--fs-body-lg);\n font-size:var(--link-font-size, var(--fs-body-lg));\n line-height:var(--lh-percentage-body);\n line-height:var(--link-line-height, var(--lh-percentage-body));\n color:var(--link-color-default);\n margin:0 var(--link-margin-x);\n padding:0 var(--link-padding-x);\n border-top:2px solid transparent;\n background-color:var(--link-background-color-default);\n border-bottom:2px solid var(--link-color-default);\n text-decoration:none;\n transition:0.3s ease all;\n}\n\na:hover,\n a:focus{\n outline:none;\n color:var(--link-color-hover);\n background-color:var(--link-background-color-hover);\n }\n\na:focus{\n border-top:1px solid var(--link-color-default);\n }\n\na:disabled{\n color:var(--link-color-disabled);\n }\n`;","import { LightDomStyles, OutlineElement } from '@phase2/outline-core';\nimport { html, TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport componentStyles from './outline-inline-link.css.lit';\n\n/**\n * The Inline Link component.\n * @element outline-inline-link\n * @slot defaultSlot\n */\n@customElement('outline-inline-link')\nexport class OutlineInlineLink extends OutlineElement {\n static styles = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n [componentStyles],\n this.tagName.toLowerCase()\n );\n\n render(): TemplateResult {\n return html` `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-inline-link': OutlineInlineLink;\n }\n}\n","import { LightDomStyles, OutlineElement } from '@phase2/outline-core';\nimport { html, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-breadcrumbs.css.lit';\nimport { OutlineInlineLink } from '../outline-inline-link/outline-inline-link';\n\n/**\n * The Outline Breadcrumbs component\n * @element outline-breadcrumbs\n */\n\n@customElement('outline-breadcrumbs')\nexport class OutlineBreadcrumbs extends OutlineElement {\n static styles = [componentStyles];\n lightDomStyles = new LightDomStyles(\n this,\n [OutlineInlineLink.styles, componentStyles],\n this.tagName.toLowerCase()\n );\n\n /**\n * Property to define the value of the separator.\n */\n @property({ type: String, attribute: 'string-separator' })\n stringSeparator = ``;\n\n firstUpdated(): void {\n const breadcrumbItems: NodeListOf =\n this.querySelectorAll('li');\n\n breadcrumbItems.forEach((item, i) => {\n const separator: HTMLSpanElement = document.createElement('span');\n separator.classList.add('separator');\n separator.innerHTML = this.stringSeparator;\n\n i === breadcrumbItems.length - 1\n ? item.prepend(separator)\n : item.append(separator);\n });\n }\n\n render(): TemplateResult {\n return html`\n \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-breadcrumbs': OutlineBreadcrumbs;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --outline-button--family--computed:var(\n --outline-button--family,\n var(--ff-bold)\n );\n --outline-button--weight--computed:var(\n --outline-button--weight,\n var(--fw-extrabold)\n );\n --outline-button--padding--computed:var(\n --outline-button--padding,\n var(--spacing-2) var(--spacing-8)\n );\n --outline-button--radius--computed:var(--outline-button--radius, 0.4rem);\n}\n\n:host{\n --outline-button--link-padding--computed:var(\n --outline-button--link-padding,\n var(--spacing-1) var(--spacing-2)\n );\n --outline-button--link-font-size--computed:var(\n --outline-button--link-radius,\n var(--fs-lg)\n );\n --outline-button--link-bg-color--computed:var(\n --outline-button--link-bg-color,\n var(--outline-transparent)\n );\n --outline-button--link-color--computed:var(\n --outline-button--link-color,\n brand var(--brand-dark-blue-900)\n );\n --outline-button--link-disabled-bg-color--computed:var(\n --outline-button--link-disabled-bg-color,\n var(--outline-transparent)\n );\n --outline-button--link-disabled-color--computed:var(\n --outline-button--link-disabled-color,\n var(--brand-gray-600)\n );\n --outline-button--link-disabled-weight--computed:var(\n --outline-button--link-disabled-weight,\n var(--fw-bold)\n );\n}\n\n:host{\n --outline-button--primary-padding--computed:var(\n --outline-button--primary-padding,\n var(--outline-button--padding--computed)\n );\n --outline-button--primary-radius--computed:var(\n --outline-button--primary-radius,\n var(--outline-button--radius--computed)\n );\n --outline-button--primary-bg-color--computed:var(\n --outline-button--primary-bg-color,\n var(--brand-bright-blue-900)\n );\n --outline-button--primary-color--computed:var(\n --outline-button--primary-color,\n var(--brand-dark-blue-900)\n );\n --outline-button--primary-weight--computed:var(\n --outline-button--primary-weight,\n var(--outline-button--weight--computed)\n );\n --outline-button--primary-bg-color-focus--computed:var(\n --outline-button--primary-bg-color-focus,\n var(--brand-bright-blue-900)\n );\n --outline-button--primary-color-focus--computed:var(\n --outline-button--primary-color-focus,\n var(--brand-dark-blue-900)\n );\n --outline-button--primary-weight-focus--computed:var(\n --outline-button--primary-weight-focus,\n var(--outline-button--weight--computed)\n );\n --outline-button--primary-ring-focus--computed:var(\n --outline-button--primary-ring-focus,\n var(--outline-ring-offset-width) solid var(--brand-dark-blue-900)\n );\n --outline-button--primary-disabled-bg-color--computed:var(\n --outline-button--primary-disabled-bg-color,\n var(--brand-gray-300)\n );\n --outline-button--primary-disabled-color--computed:var(\n --outline-button--primary-disabled-color,\n var(--brand-gray-600)\n );\n --outline-button--primary-disabled-weight--computed:var(\n --outline-button--primary-disabled-weight,\n var(--outline-button--weight--computed)\n );\n}\n\n:host{\n --outline-button--secondary-padding--computed:var(\n --outline-button--secondary-padding,\n var(--outline-button--padding--computed)\n );\n --outline-button--secondary-radius--computed:var(\n --outline-button--secondary-radius,\n var(--outline-button--radius--computed)\n );\n --outline-button--secondary-bg-color--computed:var(\n --outline-button--secondary-bg-color,\n var(--brand-dark-blue-900)\n );\n --outline-button--secondary-color--computed:var(\n --outline-button--secondary-color,\n var(--outline-white)\n );\n --outline-button--secondary-weight--computed:var(\n --outline-button--secondary-weight,\n var(--outline-button--weight--computed)\n );\n --outline-button--secondary-ring--computed:var(\n --outline-button--secondary-ring,\n var(--outline-ring-inset) 0 0 0 var(--outline-ring-offset-width)\n var(--outline-blue-600)\n );\n --outline-button--secondary-bg-color-focus--computed:var(\n --outline-button--secondary-bg-color-focus,\n var(--brand-dark-blue-900)\n );\n --outline-button--secondary-color-focus--computed:var(\n --outline-button--secondary-color-focus,\n var(--outline-white)\n );\n --outline-button--secondary-weight-focus--computed:var(\n --outline-button--secondary-weight-focus,\n var(--outline-button--weight--computed)\n );\n --outline-button--secondary-ring-focus--computed:var(\n --outline-button--secondary-ring-focus,\n 2px solid var(--brand-dark-blue-900)\n );\n --outline-button--secondary-disabled-bg-color--computed:var(\n --outline-button--secondary-disabled-bg-color,\n var(--outline-white)\n );\n --outline-button--secondary-disabled-color--computed:var(\n --outline-button--secondary-disabled-color,\n var(--outline-gray-400)\n );\n --outline-button--secondary-disabled-weight--computed:var(\n --outline-button--secondary-disabled-weight,\n var(--outline-button--weight--computed)\n );\n vertical-align:middle;\n --outline-button-left-icon-container-margin-right:1.25rem;\n --outline-button-margin-left:0;\n --outline-button-right-icon-container-margin-left:1rem;\n --outline-button-rounded-border-radius:50%;\n --outline-button-rounded-width:54px;\n --outline-button-rounded-height:54px;\n --outline-button-left-icon-padding:0.4rem 2rem 0.4rem 0.4rem;\n --outline-button-extra-large-padding:1rem 2rem 1rem 0.4rem;\n --outline-button-font-family:var(--outline-button--family--computed);\n --outline-button-padding:var(--outline-button--padding--computed);\n --outline-button-accent-color:var(--brand-dark-blue-900);\n --outlne-button-icon-size:2rem;\n}\n\n.btn{\n display:inline-flex;\n flex-wrap:nowrap;\n align-items:center;\n cursor:pointer;\n font-size:var(--fs-base);\n line-height:var(--lh-base);\n transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, outline, outline-color;\n transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration:150ms;\n text-decoration-line:none;\n outline:none;\n border:none;\n letter-spacing:1px;\n\n line-height:1.5;\n}\n\n.btn.white{\n --outline-button-accent-color:var(--outline-white);\n }\n\n.btn.dropdown{\n --outline-button-padding:6px 1rem;\n --outline-button-font-family:var(--ff-body);\n --outline-button-right-icon-container-margin-left:0.25rem;\n --outline-button-accent-color:var(--brand-dark-blue-900);\n }\n\n.btn.has-droplet-icon{\n --outline-button-margin-left:-5px;\n }\n\n.btn{\n\n border-radius:var(--outline-button--radius--computed);\n font-family:var(--outline-button-font-family);\n font-weight:var(--outline-button--weight--computed);\n padding:var(--outline-button-padding);\n margin-left:var(--outline-button-margin-left);\n}\n\n.left-icon-container{\n display:flex;\n align-items:center;\n justify-content:center;\n width:var(--outlne-button-icon-size);\n max-width:var(--outlne-button-icon-size);\n height:var(--outlne-button-icon-size);\n max-height:var(--outlne-button-icon-size);\n margin-right:var(--outline-button-left-icon-container-margin-right);\n border-radius:4px;\n}\n\n.left-icon-container.droplet{\n border-radius:0;\n}\n\n.right-icon-container{\n display:flex;\n align-items:center;\n justify-content:center;\n margin-left:var(--outline-button-right-icon-container-margin-left);\n}\n\n.btn[aria-disabled='true']{\n pointer-events:none;\n cursor:not-allowed;\n -webkit-user-select:none;\n user-select:none;\n}\n\n.btn.primary{\n padding:var(--outline-button--primary-padding--computed);\n border-radius:var(--outline-button--primary-radius--computed);\n background-color:var(--outline-button--primary-bg-color--computed);\n color:var(--outline-button--primary-color--computed);\n font-weight:var(--outline-button--primary-weight--computed);\n box-shadow:var(--outline-button--primary-ring--computed);\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n}\n\n.btn.primary .right-icon-container{\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\n\n.btn.primary:hover{\n transform:scale(1.05);\n }\n\n.btn.primary:hover .right-icon-container{\n transform:translateX(0.5rem);\n }\n\n.btn.primary:focus{\n background-color:var(--outline-button--primary-bg-color-focus--computed);\n color:var(--outline-button--primary-color-focus--computed);\n font-weight:var(--outline-button--primary-weight-focus--computed);\n outline:2px solid var(--outline-button-accent-color);\n outline-offset:2px;\n }\n\n.btn.primary.has-left-icon{\n padding:var(--outline-button-left-icon-padding);\n }\n\n.btn.primary.has-left-icon .left-icon-container{\n color:var(--outline-white);\n background-color:var(--brand-dark-blue-900);\n }\n\n.btn.primary.rounded{\n display:flex;\n align-items:center;\n justify-content:center;\n border-radius:var(--outline-button-rounded-border-radius);\n width:var(--outline-button-rounded-width);\n height:var(--outline-button-rounded-height);\n padding:0;\n }\n\n.btn.primary.search-button{\n padding:0.375rem;\n }\n\n.btn.primary.mobile{\n width:100%;\n justify-content:center;\n }\n\n.btn.primary.extra-large{\n --outlne-button-icon-size:3.25rem;\n padding:var(--outline-button-extra-large-padding);\n }\n\n.btn.secondary{\n padding:var(--outline-button--secondary-padding--computed);\n border-radius:var(--outline-button--secondary-radius--computed);\n\n background-color:var(--outline-button--secondary-bg-color--computed);\n color:var(--outline-button--secondary-color--computed);\n font-weight:var(--outline-button--secondary-weight--computed);\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n}\n\n.btn.secondary .right-icon-container{\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\n\n.btn.secondary:hover{\n transform:scale(1.05);\n }\n\n.btn.secondary:hover .right-icon-container{\n transform:translateX(0.5rem);\n }\n\n.btn.secondary:focus{\n background-color:var(--outline-button--secondary-bg-color-focus--computed);\n color:var(--outline-button--secondary-color-focus--computed);\n font-weight:var(--outline-button--secondary-weight-focus--computed);\n outline:2px solid var(--outline-button-accent-color);\n outline-offset:2px;\n }\n\n.btn.secondary.has-left-icon{\n padding:var(--outline-button-left-icon-padding);\n }\n\n.btn.secondary.has-left-icon .left-icon-container{\n background-color:var(--brand-bright-blue-900);\n color:var(--brand-dark-blue-900);\n }\n\n.btn.secondary.rounded{\n display:flex;\n align-items:center;\n justify-content:center;\n border-radius:var(--outline-button-rounded-border-radius);\n width:var(--outline-button-rounded-width);\n height:var(--outline-button-rounded-height);\n padding:0;\n }\n\n.btn.secondary.mobile{\n width:100%;\n justify-content:center;\n }\n\n.btn.primary[aria-disabled='true'],\n.btn.secondary[aria-disabled='true']{\n background-color:var(--outline-button--primary-disabled-bg-color--computed);\n color:var(--outline-button--primary-disabled-color--computed);\n font-weight:var(--outline-button--primary-disabled-weight--computed);\n}\n\n.btn.link{\n font-family:var(--ff-display);\n}\n\n.btn.link.small-font{\n font-family:var(--ff-body);\n }\n\n.btn.link.extra-small-font{\n font-family:var(--ff-body);\n font-size:var(--fs-sm);\n }\n\n.btn.link{\n display:inline-flex;\n font-size:var(--outline-button--link-font-size--computed);\n padding:var(--outline-button--link-padding--computed);\n position:relative;\n border-radius:0;\n color:var(--outline-button--link-color--computed);\n}\n\n.btn.link.white{\n color:var(--outline-white);\n }\n\n.btn.link{\n background-color:var(--outline-button--link-bg-color--computed);\n}\n\n.btn.link:before,\n .btn.link:after{\n content:'';\n position:absolute;\n }\n\n.btn.link:after{\n background-color:var(--outline-button-accent-color);\n bottom:-0.25rem;\n height:0.25rem;\n left:0.5rem;\n transition:width 0.3s;\n width:0;\n }\n\n.btn.link,\n .btn.link:visited,\n .btn.link:hover{\n color:var(--outline-button-accent-color);\n }\n\n.btn.link,\n .btn.link:visited,\n .btn.link:hover,\n .btn.link:focus{\n outline:0;\n text-decoration:none;\n }\n\n.btn.link:not(.search-button):not(.cta):hover:after{\n width:calc(100% - 1rem);\n }\n\n.btn.link:not(.search-button):not(.cta):focus{\n background-color:var(--brand-dark-blue-900);\n color:var(--outline-white);\n }\n\n.btn.link:not(.search-button):not(.cta):focus:before{\n background-color:var(--outline-white);\n border-top:4px solid var(--brand-dark-blue-900);\n height:8px;\n left:0;\n top:-8px;\n transition:none;\n width:100%;\n }\n\n.btn.link:not(.search-button):not(.cta):focus:after{\n background-color:var(--outline-white);\n border-bottom:4px solid var(--brand-dark-blue-900);\n bottom:-8px;\n height:8px;\n left:0;\n transition:none;\n width:100%;\n }\n\n.btn.link .left-icon-container{\n width:auto;\n height:auto;\n margin-right:var(--spacing-1);\n }\n\n.btn.link .right-icon-container{\n margin-left:var(--spacing-1);\n }\n\n.btn.link.cta{\n padding:5px 0;\n white-space:nowrap;\n letter-spacing:1px;\n line-height:1.11111;\n }\n\n.btn.link.cta .right-icon-container{\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\n\n.btn.link.cta:hover .right-icon-container{\n transform:translateX(0.5rem);\n }\n\n.btn.link[aria-disabled='true']{\n background-color:var(--outline-button--link-disabled-bg-color--computed);\n color:var(--outline-button--link-disabled-color--computed);\n font-weight:var(--outline-button--link-disabled-weight--computed);\n}\n\n.btn.dropdown{\n border-radius:var(--outline-button--primary-radius--computed);\n background-color:var(--outline-button--primary-bg-color--computed);\n color:var(--outline-button--primary-color--computed);\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n transition:border-radius 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n}\n\n.btn.dropdown .right-icon-container{\n transition:transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\n\n.btn.dropdown{\n letter-spacing:normal;\n}\n\n.btn.dropdown:before,\n .btn.dropdown:after{\n content:'';\n position:absolute;\n }\n\n.btn.dropdown:after{\n background-color:var(--outline-button-accent-color);\n bottom:-3px;\n height:3px;\n left:0;\n transition:width 0.3s;\n width:0;\n z-index:999;\n }\n\n.btn.dropdown,\n .btn.dropdown:visited,\n .btn.dropdown:hover{\n color:var(--outline-button-accent-color);\n }\n\n.btn.dropdown.open .right-icon-container{\n transform:rotate(180deg);\n }\n\n.btn.dropdown.open{\n border-radius:0.4rem 0.4rem 0 0;\n}\n\n.btn.dropdown.open:after{\n width:calc(100%);\n }\n\n.btn.dropdown:focus-visible{\n background-color:var(--outline-button--primary-bg-color-focus--computed);\n color:var(--outline-button--primary-color-focus--computed);\n font-weight:var(--outline-button--primary-weight-focus--computed);\n outline:2px solid var(--outline-white);\n outline-offset:2px;\n }\n\n.btn.dropdown .right-icon-container{\n margin-left:var(--spacing-3);\n }\n\n.btn.dropdown.mobile{\n width:100%;\n justify-content:center;\n }\n\n.outline-file-link{\n width:100%;\n}\n\n.outline-file-link .btn{\n width:100% !important;\n }\n`;","import { CSSResultGroup, html, TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport { OutlineElement, LightDomStyles } from '@phase2/outline-core';\nimport componentStyles from './outline-button-baseline.css.lit';\n\n/**\n * The Outline Button component\n * @element outline-button-baseline\n * @slot - default slot, used for everything.\n */\n\n@customElement('outline-button-baseline')\nexport class OutlineButtonBaseline extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n render(): TemplateResult {\n return html` `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-button-baseline': OutlineButtonBaseline;\n }\n}\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*!\n * Splide.js\n * Version : 4.1.4\n * License : MIT\n * Copyright: 2022 Naotoshi Fujita\n */\nvar MEDIA_PREFERS_REDUCED_MOTION = \"(prefers-reduced-motion: reduce)\";\nvar CREATED = 1;\nvar MOUNTED = 2;\nvar IDLE = 3;\nvar MOVING = 4;\nvar SCROLLING = 5;\nvar DRAGGING = 6;\nvar DESTROYED = 7;\nvar STATES = {\n CREATED: CREATED,\n MOUNTED: MOUNTED,\n IDLE: IDLE,\n MOVING: MOVING,\n SCROLLING: SCROLLING,\n DRAGGING: DRAGGING,\n DESTROYED: DESTROYED\n};\n\nfunction empty(array) {\n array.length = 0;\n}\n\nfunction slice(arrayLike, start, end) {\n return Array.prototype.slice.call(arrayLike, start, end);\n}\n\nfunction apply(func) {\n return func.bind.apply(func, [null].concat(slice(arguments, 1)));\n}\n\nvar nextTick = setTimeout;\n\nvar noop = function noop() {};\n\nfunction raf(func) {\n return requestAnimationFrame(func);\n}\n\nfunction typeOf(type, subject) {\n return typeof subject === type;\n}\n\nfunction isObject(subject) {\n return !isNull(subject) && typeOf(\"object\", subject);\n}\n\nvar isArray = Array.isArray;\nvar isFunction = apply(typeOf, \"function\");\nvar isString = apply(typeOf, \"string\");\nvar isUndefined = apply(typeOf, \"undefined\");\n\nfunction isNull(subject) {\n return subject === null;\n}\n\nfunction isHTMLElement(subject) {\n try {\n return subject instanceof (subject.ownerDocument.defaultView || window).HTMLElement;\n } catch (e) {\n return false;\n }\n}\n\nfunction toArray(value) {\n return isArray(value) ? value : [value];\n}\n\nfunction forEach(values, iteratee) {\n toArray(values).forEach(iteratee);\n}\n\nfunction includes(array, value) {\n return array.indexOf(value) > -1;\n}\n\nfunction push(array, items) {\n array.push.apply(array, toArray(items));\n return array;\n}\n\nfunction toggleClass(elm, classes, add) {\n if (elm) {\n forEach(classes, function (name) {\n if (name) {\n elm.classList[add ? \"add\" : \"remove\"](name);\n }\n });\n }\n}\n\nfunction addClass(elm, classes) {\n toggleClass(elm, isString(classes) ? classes.split(\" \") : classes, true);\n}\n\nfunction append(parent, children) {\n forEach(children, parent.appendChild.bind(parent));\n}\n\nfunction before(nodes, ref) {\n forEach(nodes, function (node) {\n var parent = (ref || node).parentNode;\n\n if (parent) {\n parent.insertBefore(node, ref);\n }\n });\n}\n\nfunction matches(elm, selector) {\n return isHTMLElement(elm) && (elm[\"msMatchesSelector\"] || elm.matches).call(elm, selector);\n}\n\nfunction children(parent, selector) {\n var children2 = parent ? slice(parent.children) : [];\n return selector ? children2.filter(function (child) {\n return matches(child, selector);\n }) : children2;\n}\n\nfunction child(parent, selector) {\n return selector ? children(parent, selector)[0] : parent.firstElementChild;\n}\n\nvar ownKeys = Object.keys;\n\nfunction forOwn(object, iteratee, right) {\n if (object) {\n (right ? ownKeys(object).reverse() : ownKeys(object)).forEach(function (key) {\n key !== \"__proto__\" && iteratee(object[key], key);\n });\n }\n\n return object;\n}\n\nfunction assign(object) {\n slice(arguments, 1).forEach(function (source) {\n forOwn(source, function (value, key) {\n object[key] = source[key];\n });\n });\n return object;\n}\n\nfunction merge(object) {\n slice(arguments, 1).forEach(function (source) {\n forOwn(source, function (value, key) {\n if (isArray(value)) {\n object[key] = value.slice();\n } else if (isObject(value)) {\n object[key] = merge({}, isObject(object[key]) ? object[key] : {}, value);\n } else {\n object[key] = value;\n }\n });\n });\n return object;\n}\n\nfunction omit(object, keys) {\n forEach(keys || ownKeys(object), function (key) {\n delete object[key];\n });\n}\n\nfunction removeAttribute(elms, attrs) {\n forEach(elms, function (elm) {\n forEach(attrs, function (attr) {\n elm && elm.removeAttribute(attr);\n });\n });\n}\n\nfunction setAttribute(elms, attrs, value) {\n if (isObject(attrs)) {\n forOwn(attrs, function (value2, name) {\n setAttribute(elms, name, value2);\n });\n } else {\n forEach(elms, function (elm) {\n isNull(value) || value === \"\" ? removeAttribute(elm, attrs) : elm.setAttribute(attrs, String(value));\n });\n }\n}\n\nfunction create(tag, attrs, parent) {\n var elm = document.createElement(tag);\n\n if (attrs) {\n isString(attrs) ? addClass(elm, attrs) : setAttribute(elm, attrs);\n }\n\n parent && append(parent, elm);\n return elm;\n}\n\nfunction style(elm, prop, value) {\n if (isUndefined(value)) {\n return getComputedStyle(elm)[prop];\n }\n\n if (!isNull(value)) {\n elm.style[prop] = \"\" + value;\n }\n}\n\nfunction display(elm, display2) {\n style(elm, \"display\", display2);\n}\n\nfunction focus(elm) {\n elm[\"setActive\"] && elm[\"setActive\"]() || elm.focus({\n preventScroll: true\n });\n}\n\nfunction getAttribute(elm, attr) {\n return elm.getAttribute(attr);\n}\n\nfunction hasClass(elm, className) {\n return elm && elm.classList.contains(className);\n}\n\nfunction rect(target) {\n return target.getBoundingClientRect();\n}\n\nfunction remove(nodes) {\n forEach(nodes, function (node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n });\n}\n\nfunction parseHtml(html) {\n return child(new DOMParser().parseFromString(html, \"text/html\").body);\n}\n\nfunction prevent(e, stopPropagation) {\n e.preventDefault();\n\n if (stopPropagation) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n}\n\nfunction query(parent, selector) {\n return parent && parent.querySelector(selector);\n}\n\nfunction queryAll(parent, selector) {\n return selector ? slice(parent.querySelectorAll(selector)) : [];\n}\n\nfunction removeClass(elm, classes) {\n toggleClass(elm, classes, false);\n}\n\nfunction timeOf(e) {\n return e.timeStamp;\n}\n\nfunction unit(value) {\n return isString(value) ? value : value ? value + \"px\" : \"\";\n}\n\nvar PROJECT_CODE = \"splide\";\nvar DATA_ATTRIBUTE = \"data-\" + PROJECT_CODE;\n\nfunction assert(condition, message) {\n if (!condition) {\n throw new Error(\"[\" + PROJECT_CODE + \"] \" + (message || \"\"));\n }\n}\n\nvar min = Math.min,\n max = Math.max,\n floor = Math.floor,\n ceil = Math.ceil,\n abs = Math.abs;\n\nfunction approximatelyEqual(x, y, epsilon) {\n return abs(x - y) < epsilon;\n}\n\nfunction between(number, x, y, exclusive) {\n var minimum = min(x, y);\n var maximum = max(x, y);\n return exclusive ? minimum < number && number < maximum : minimum <= number && number <= maximum;\n}\n\nfunction clamp(number, x, y) {\n var minimum = min(x, y);\n var maximum = max(x, y);\n return min(max(minimum, number), maximum);\n}\n\nfunction sign(x) {\n return +(x > 0) - +(x < 0);\n}\n\nfunction camelToKebab(string) {\n return string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\nfunction format(string, replacements) {\n forEach(replacements, function (replacement) {\n string = string.replace(\"%s\", \"\" + replacement);\n });\n return string;\n}\n\nfunction pad(number) {\n return number < 10 ? \"0\" + number : \"\" + number;\n}\n\nvar ids = {};\n\nfunction uniqueId(prefix) {\n return \"\" + prefix + pad(ids[prefix] = (ids[prefix] || 0) + 1);\n}\n\nfunction EventBinder() {\n var listeners = [];\n\n function bind(targets, events, callback, options) {\n forEachEvent(targets, events, function (target, event, namespace) {\n var isEventTarget = (\"addEventListener\" in target);\n var remover = isEventTarget ? target.removeEventListener.bind(target, event, callback, options) : target[\"removeListener\"].bind(target, callback);\n isEventTarget ? target.addEventListener(event, callback, options) : target[\"addListener\"](callback);\n listeners.push([target, event, namespace, callback, remover]);\n });\n }\n\n function unbind(targets, events, callback) {\n forEachEvent(targets, events, function (target, event, namespace) {\n listeners = listeners.filter(function (listener) {\n if (listener[0] === target && listener[1] === event && listener[2] === namespace && (!callback || listener[3] === callback)) {\n listener[4]();\n return false;\n }\n\n return true;\n });\n });\n }\n\n function dispatch(target, type, detail) {\n var e;\n var bubbles = true;\n\n if (typeof CustomEvent === \"function\") {\n e = new CustomEvent(type, {\n bubbles: bubbles,\n detail: detail\n });\n } else {\n e = document.createEvent(\"CustomEvent\");\n e.initCustomEvent(type, bubbles, false, detail);\n }\n\n target.dispatchEvent(e);\n return e;\n }\n\n function forEachEvent(targets, events, iteratee) {\n forEach(targets, function (target) {\n target && forEach(events, function (events2) {\n events2.split(\" \").forEach(function (eventNS) {\n var fragment = eventNS.split(\".\");\n iteratee(target, fragment[0], fragment[1]);\n });\n });\n });\n }\n\n function destroy() {\n listeners.forEach(function (data) {\n data[4]();\n });\n empty(listeners);\n }\n\n return {\n bind: bind,\n unbind: unbind,\n dispatch: dispatch,\n destroy: destroy\n };\n}\n\nvar EVENT_MOUNTED = \"mounted\";\nvar EVENT_READY = \"ready\";\nvar EVENT_MOVE = \"move\";\nvar EVENT_MOVED = \"moved\";\nvar EVENT_CLICK = \"click\";\nvar EVENT_ACTIVE = \"active\";\nvar EVENT_INACTIVE = \"inactive\";\nvar EVENT_VISIBLE = \"visible\";\nvar EVENT_HIDDEN = \"hidden\";\nvar EVENT_REFRESH = \"refresh\";\nvar EVENT_UPDATED = \"updated\";\nvar EVENT_RESIZE = \"resize\";\nvar EVENT_RESIZED = \"resized\";\nvar EVENT_DRAG = \"drag\";\nvar EVENT_DRAGGING = \"dragging\";\nvar EVENT_DRAGGED = \"dragged\";\nvar EVENT_SCROLL = \"scroll\";\nvar EVENT_SCROLLED = \"scrolled\";\nvar EVENT_OVERFLOW = \"overflow\";\nvar EVENT_DESTROY = \"destroy\";\nvar EVENT_ARROWS_MOUNTED = \"arrows:mounted\";\nvar EVENT_ARROWS_UPDATED = \"arrows:updated\";\nvar EVENT_PAGINATION_MOUNTED = \"pagination:mounted\";\nvar EVENT_PAGINATION_UPDATED = \"pagination:updated\";\nvar EVENT_NAVIGATION_MOUNTED = \"navigation:mounted\";\nvar EVENT_AUTOPLAY_PLAY = \"autoplay:play\";\nvar EVENT_AUTOPLAY_PLAYING = \"autoplay:playing\";\nvar EVENT_AUTOPLAY_PAUSE = \"autoplay:pause\";\nvar EVENT_LAZYLOAD_LOADED = \"lazyload:loaded\";\nvar EVENT_SLIDE_KEYDOWN = \"sk\";\nvar EVENT_SHIFTED = \"sh\";\nvar EVENT_END_INDEX_CHANGED = \"ei\";\n\nfunction EventInterface(Splide2) {\n var bus = Splide2 ? Splide2.event.bus : document.createDocumentFragment();\n var binder = EventBinder();\n\n function on(events, callback) {\n binder.bind(bus, toArray(events).join(\" \"), function (e) {\n callback.apply(callback, isArray(e.detail) ? e.detail : []);\n });\n }\n\n function emit(event) {\n binder.dispatch(bus, event, slice(arguments, 1));\n }\n\n if (Splide2) {\n Splide2.event.on(EVENT_DESTROY, binder.destroy);\n }\n\n return assign(binder, {\n bus: bus,\n on: on,\n off: apply(binder.unbind, bus),\n emit: emit\n });\n}\n\nfunction RequestInterval(interval, onInterval, onUpdate, limit) {\n var now = Date.now;\n var startTime;\n var rate = 0;\n var id;\n var paused = true;\n var count = 0;\n\n function update() {\n if (!paused) {\n rate = interval ? min((now() - startTime) / interval, 1) : 1;\n onUpdate && onUpdate(rate);\n\n if (rate >= 1) {\n onInterval();\n startTime = now();\n\n if (limit && ++count >= limit) {\n return pause();\n }\n }\n\n id = raf(update);\n }\n }\n\n function start(resume) {\n resume || cancel();\n startTime = now() - (resume ? rate * interval : 0);\n paused = false;\n id = raf(update);\n }\n\n function pause() {\n paused = true;\n }\n\n function rewind() {\n startTime = now();\n rate = 0;\n\n if (onUpdate) {\n onUpdate(rate);\n }\n }\n\n function cancel() {\n id && cancelAnimationFrame(id);\n rate = 0;\n id = 0;\n paused = true;\n }\n\n function set(time) {\n interval = time;\n }\n\n function isPaused() {\n return paused;\n }\n\n return {\n start: start,\n rewind: rewind,\n pause: pause,\n cancel: cancel,\n set: set,\n isPaused: isPaused\n };\n}\n\nfunction State(initialState) {\n var state = initialState;\n\n function set(value) {\n state = value;\n }\n\n function is(states) {\n return includes(toArray(states), state);\n }\n\n return {\n set: set,\n is: is\n };\n}\n\nfunction Throttle(func, duration) {\n var interval = RequestInterval(duration || 0, func, null, 1);\n return function () {\n interval.isPaused() && interval.start();\n };\n}\n\nfunction Media(Splide2, Components2, options) {\n var state = Splide2.state;\n var breakpoints = options.breakpoints || {};\n var reducedMotion = options.reducedMotion || {};\n var binder = EventBinder();\n var queries = [];\n\n function setup() {\n var isMin = options.mediaQuery === \"min\";\n ownKeys(breakpoints).sort(function (n, m) {\n return isMin ? +n - +m : +m - +n;\n }).forEach(function (key) {\n register(breakpoints[key], \"(\" + (isMin ? \"min\" : \"max\") + \"-width:\" + key + \"px)\");\n });\n register(reducedMotion, MEDIA_PREFERS_REDUCED_MOTION);\n update();\n }\n\n function destroy(completely) {\n if (completely) {\n binder.destroy();\n }\n }\n\n function register(options2, query) {\n var queryList = matchMedia(query);\n binder.bind(queryList, \"change\", update);\n queries.push([options2, queryList]);\n }\n\n function update() {\n var destroyed = state.is(DESTROYED);\n var direction = options.direction;\n var merged = queries.reduce(function (merged2, entry) {\n return merge(merged2, entry[1].matches ? entry[0] : {});\n }, {});\n omit(options);\n set(merged);\n\n if (options.destroy) {\n Splide2.destroy(options.destroy === \"completely\");\n } else if (destroyed) {\n destroy(true);\n Splide2.mount();\n } else {\n direction !== options.direction && Splide2.refresh();\n }\n }\n\n function reduce(enable) {\n if (matchMedia(MEDIA_PREFERS_REDUCED_MOTION).matches) {\n enable ? merge(options, reducedMotion) : omit(options, ownKeys(reducedMotion));\n }\n }\n\n function set(opts, base, notify) {\n merge(options, opts);\n base && merge(Object.getPrototypeOf(options), opts);\n\n if (notify || !state.is(CREATED)) {\n Splide2.emit(EVENT_UPDATED, options);\n }\n }\n\n return {\n setup: setup,\n destroy: destroy,\n reduce: reduce,\n set: set\n };\n}\n\nvar ARROW = \"Arrow\";\nvar ARROW_LEFT = ARROW + \"Left\";\nvar ARROW_RIGHT = ARROW + \"Right\";\nvar ARROW_UP = ARROW + \"Up\";\nvar ARROW_DOWN = ARROW + \"Down\";\nvar LTR = \"ltr\";\nvar RTL = \"rtl\";\nvar TTB = \"ttb\";\nvar ORIENTATION_MAP = {\n width: [\"height\"],\n left: [\"top\", \"right\"],\n right: [\"bottom\", \"left\"],\n x: [\"y\"],\n X: [\"Y\"],\n Y: [\"X\"],\n ArrowLeft: [ARROW_UP, ARROW_RIGHT],\n ArrowRight: [ARROW_DOWN, ARROW_LEFT]\n};\n\nfunction Direction(Splide2, Components2, options) {\n function resolve(prop, axisOnly, direction) {\n direction = direction || options.direction;\n var index = direction === RTL && !axisOnly ? 1 : direction === TTB ? 0 : -1;\n return ORIENTATION_MAP[prop] && ORIENTATION_MAP[prop][index] || prop.replace(/width|left|right/i, function (match, offset) {\n var replacement = ORIENTATION_MAP[match.toLowerCase()][index] || match;\n return offset > 0 ? replacement.charAt(0).toUpperCase() + replacement.slice(1) : replacement;\n });\n }\n\n function orient(value) {\n return value * (options.direction === RTL ? 1 : -1);\n }\n\n return {\n resolve: resolve,\n orient: orient\n };\n}\n\nvar ROLE = \"role\";\nvar TAB_INDEX = \"tabindex\";\nvar DISABLED = \"disabled\";\nvar ARIA_PREFIX = \"aria-\";\nvar ARIA_CONTROLS = ARIA_PREFIX + \"controls\";\nvar ARIA_CURRENT = ARIA_PREFIX + \"current\";\nvar ARIA_SELECTED = ARIA_PREFIX + \"selected\";\nvar ARIA_LABEL = ARIA_PREFIX + \"label\";\nvar ARIA_LABELLEDBY = ARIA_PREFIX + \"labelledby\";\nvar ARIA_HIDDEN = ARIA_PREFIX + \"hidden\";\nvar ARIA_ORIENTATION = ARIA_PREFIX + \"orientation\";\nvar ARIA_ROLEDESCRIPTION = ARIA_PREFIX + \"roledescription\";\nvar ARIA_LIVE = ARIA_PREFIX + \"live\";\nvar ARIA_BUSY = ARIA_PREFIX + \"busy\";\nvar ARIA_ATOMIC = ARIA_PREFIX + \"atomic\";\nvar ALL_ATTRIBUTES = [ROLE, TAB_INDEX, DISABLED, ARIA_CONTROLS, ARIA_CURRENT, ARIA_LABEL, ARIA_LABELLEDBY, ARIA_HIDDEN, ARIA_ORIENTATION, ARIA_ROLEDESCRIPTION];\nvar CLASS_PREFIX = PROJECT_CODE + \"__\";\nvar STATUS_CLASS_PREFIX = \"is-\";\nvar CLASS_ROOT = PROJECT_CODE;\nvar CLASS_TRACK = CLASS_PREFIX + \"track\";\nvar CLASS_LIST = CLASS_PREFIX + \"list\";\nvar CLASS_SLIDE = CLASS_PREFIX + \"slide\";\nvar CLASS_CLONE = CLASS_SLIDE + \"--clone\";\nvar CLASS_CONTAINER = CLASS_SLIDE + \"__container\";\nvar CLASS_ARROWS = CLASS_PREFIX + \"arrows\";\nvar CLASS_ARROW = CLASS_PREFIX + \"arrow\";\nvar CLASS_ARROW_PREV = CLASS_ARROW + \"--prev\";\nvar CLASS_ARROW_NEXT = CLASS_ARROW + \"--next\";\nvar CLASS_PAGINATION = CLASS_PREFIX + \"pagination\";\nvar CLASS_PAGINATION_PAGE = CLASS_PAGINATION + \"__page\";\nvar CLASS_PROGRESS = CLASS_PREFIX + \"progress\";\nvar CLASS_PROGRESS_BAR = CLASS_PROGRESS + \"__bar\";\nvar CLASS_TOGGLE = CLASS_PREFIX + \"toggle\";\nvar CLASS_TOGGLE_PLAY = CLASS_TOGGLE + \"__play\";\nvar CLASS_TOGGLE_PAUSE = CLASS_TOGGLE + \"__pause\";\nvar CLASS_SPINNER = CLASS_PREFIX + \"spinner\";\nvar CLASS_SR = CLASS_PREFIX + \"sr\";\nvar CLASS_INITIALIZED = STATUS_CLASS_PREFIX + \"initialized\";\nvar CLASS_ACTIVE = STATUS_CLASS_PREFIX + \"active\";\nvar CLASS_PREV = STATUS_CLASS_PREFIX + \"prev\";\nvar CLASS_NEXT = STATUS_CLASS_PREFIX + \"next\";\nvar CLASS_VISIBLE = STATUS_CLASS_PREFIX + \"visible\";\nvar CLASS_LOADING = STATUS_CLASS_PREFIX + \"loading\";\nvar CLASS_FOCUS_IN = STATUS_CLASS_PREFIX + \"focus-in\";\nvar CLASS_OVERFLOW = STATUS_CLASS_PREFIX + \"overflow\";\nvar STATUS_CLASSES = [CLASS_ACTIVE, CLASS_VISIBLE, CLASS_PREV, CLASS_NEXT, CLASS_LOADING, CLASS_FOCUS_IN, CLASS_OVERFLOW];\nvar CLASSES = {\n slide: CLASS_SLIDE,\n clone: CLASS_CLONE,\n arrows: CLASS_ARROWS,\n arrow: CLASS_ARROW,\n prev: CLASS_ARROW_PREV,\n next: CLASS_ARROW_NEXT,\n pagination: CLASS_PAGINATION,\n page: CLASS_PAGINATION_PAGE,\n spinner: CLASS_SPINNER\n};\n\nfunction closest(from, selector) {\n if (isFunction(from.closest)) {\n return from.closest(selector);\n }\n\n var elm = from;\n\n while (elm && elm.nodeType === 1) {\n if (matches(elm, selector)) {\n break;\n }\n\n elm = elm.parentElement;\n }\n\n return elm;\n}\n\nvar FRICTION = 5;\nvar LOG_INTERVAL = 200;\nvar POINTER_DOWN_EVENTS = \"touchstart mousedown\";\nvar POINTER_MOVE_EVENTS = \"touchmove mousemove\";\nvar POINTER_UP_EVENTS = \"touchend touchcancel mouseup click\";\n\nfunction Elements(Splide2, Components2, options) {\n var _EventInterface = EventInterface(Splide2),\n on = _EventInterface.on,\n bind = _EventInterface.bind;\n\n var root = Splide2.root;\n var i18n = options.i18n;\n var elements = {};\n var slides = [];\n var rootClasses = [];\n var trackClasses = [];\n var track;\n var list;\n var isUsingKey;\n\n function setup() {\n collect();\n init();\n update();\n }\n\n function mount() {\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, setup);\n on(EVENT_UPDATED, update);\n bind(document, POINTER_DOWN_EVENTS + \" keydown\", function (e) {\n isUsingKey = e.type === \"keydown\";\n }, {\n capture: true\n });\n bind(root, \"focusin\", function () {\n toggleClass(root, CLASS_FOCUS_IN, !!isUsingKey);\n });\n }\n\n function destroy(completely) {\n var attrs = ALL_ATTRIBUTES.concat(\"style\");\n empty(slides);\n removeClass(root, rootClasses);\n removeClass(track, trackClasses);\n removeAttribute([track, list], attrs);\n removeAttribute(root, completely ? attrs : [\"style\", ARIA_ROLEDESCRIPTION]);\n }\n\n function update() {\n removeClass(root, rootClasses);\n removeClass(track, trackClasses);\n rootClasses = getClasses(CLASS_ROOT);\n trackClasses = getClasses(CLASS_TRACK);\n addClass(root, rootClasses);\n addClass(track, trackClasses);\n setAttribute(root, ARIA_LABEL, options.label);\n setAttribute(root, ARIA_LABELLEDBY, options.labelledby);\n }\n\n function collect() {\n track = find(\".\" + CLASS_TRACK);\n list = child(track, \".\" + CLASS_LIST);\n assert(track && list, \"A track/list element is missing.\");\n push(slides, children(list, \".\" + CLASS_SLIDE + \":not(.\" + CLASS_CLONE + \")\"));\n forOwn({\n arrows: CLASS_ARROWS,\n pagination: CLASS_PAGINATION,\n prev: CLASS_ARROW_PREV,\n next: CLASS_ARROW_NEXT,\n bar: CLASS_PROGRESS_BAR,\n toggle: CLASS_TOGGLE\n }, function (className, key) {\n elements[key] = find(\".\" + className);\n });\n assign(elements, {\n root: root,\n track: track,\n list: list,\n slides: slides\n });\n }\n\n function init() {\n var id = root.id || uniqueId(PROJECT_CODE);\n var role = options.role;\n root.id = id;\n track.id = track.id || id + \"-track\";\n list.id = list.id || id + \"-list\";\n\n if (!getAttribute(root, ROLE) && root.tagName !== \"SECTION\" && role) {\n setAttribute(root, ROLE, role);\n }\n\n setAttribute(root, ARIA_ROLEDESCRIPTION, i18n.carousel);\n setAttribute(list, ROLE, \"presentation\");\n }\n\n function find(selector) {\n var elm = query(root, selector);\n return elm && closest(elm, \".\" + CLASS_ROOT) === root ? elm : void 0;\n }\n\n function getClasses(base) {\n return [base + \"--\" + options.type, base + \"--\" + options.direction, options.drag && base + \"--draggable\", options.isNavigation && base + \"--nav\", base === CLASS_ROOT && CLASS_ACTIVE];\n }\n\n return assign(elements, {\n setup: setup,\n mount: mount,\n destroy: destroy\n });\n}\n\nvar SLIDE = \"slide\";\nvar LOOP = \"loop\";\nvar FADE = \"fade\";\n\nfunction Slide$1(Splide2, index, slideIndex, slide) {\n var event = EventInterface(Splide2);\n var on = event.on,\n emit = event.emit,\n bind = event.bind;\n var Components = Splide2.Components,\n root = Splide2.root,\n options = Splide2.options;\n var isNavigation = options.isNavigation,\n updateOnMove = options.updateOnMove,\n i18n = options.i18n,\n pagination = options.pagination,\n slideFocus = options.slideFocus;\n var resolve = Components.Direction.resolve;\n var styles = getAttribute(slide, \"style\");\n var label = getAttribute(slide, ARIA_LABEL);\n var isClone = slideIndex > -1;\n var container = child(slide, \".\" + CLASS_CONTAINER);\n var destroyed;\n\n function mount() {\n if (!isClone) {\n slide.id = root.id + \"-slide\" + pad(index + 1);\n setAttribute(slide, ROLE, pagination ? \"tabpanel\" : \"group\");\n setAttribute(slide, ARIA_ROLEDESCRIPTION, i18n.slide);\n setAttribute(slide, ARIA_LABEL, label || format(i18n.slideLabel, [index + 1, Splide2.length]));\n }\n\n listen();\n }\n\n function listen() {\n bind(slide, \"click\", apply(emit, EVENT_CLICK, self));\n bind(slide, \"keydown\", apply(emit, EVENT_SLIDE_KEYDOWN, self));\n on([EVENT_MOVED, EVENT_SHIFTED, EVENT_SCROLLED], update);\n on(EVENT_NAVIGATION_MOUNTED, initNavigation);\n\n if (updateOnMove) {\n on(EVENT_MOVE, onMove);\n }\n }\n\n function destroy() {\n destroyed = true;\n event.destroy();\n removeClass(slide, STATUS_CLASSES);\n removeAttribute(slide, ALL_ATTRIBUTES);\n setAttribute(slide, \"style\", styles);\n setAttribute(slide, ARIA_LABEL, label || \"\");\n }\n\n function initNavigation() {\n var controls = Splide2.splides.map(function (target) {\n var Slide2 = target.splide.Components.Slides.getAt(index);\n return Slide2 ? Slide2.slide.id : \"\";\n }).join(\" \");\n setAttribute(slide, ARIA_LABEL, format(i18n.slideX, (isClone ? slideIndex : index) + 1));\n setAttribute(slide, ARIA_CONTROLS, controls);\n setAttribute(slide, ROLE, slideFocus ? \"button\" : \"\");\n slideFocus && removeAttribute(slide, ARIA_ROLEDESCRIPTION);\n }\n\n function onMove() {\n if (!destroyed) {\n update();\n }\n }\n\n function update() {\n if (!destroyed) {\n var curr = Splide2.index;\n updateActivity();\n updateVisibility();\n toggleClass(slide, CLASS_PREV, index === curr - 1);\n toggleClass(slide, CLASS_NEXT, index === curr + 1);\n }\n }\n\n function updateActivity() {\n var active = isActive();\n\n if (active !== hasClass(slide, CLASS_ACTIVE)) {\n toggleClass(slide, CLASS_ACTIVE, active);\n setAttribute(slide, ARIA_CURRENT, isNavigation && active || \"\");\n emit(active ? EVENT_ACTIVE : EVENT_INACTIVE, self);\n }\n }\n\n function updateVisibility() {\n var visible = isVisible();\n var hidden = !visible && (!isActive() || isClone);\n\n if (!Splide2.state.is([MOVING, SCROLLING])) {\n setAttribute(slide, ARIA_HIDDEN, hidden || \"\");\n }\n\n setAttribute(queryAll(slide, options.focusableNodes || \"\"), TAB_INDEX, hidden ? -1 : \"\");\n\n if (slideFocus) {\n setAttribute(slide, TAB_INDEX, hidden ? -1 : 0);\n }\n\n if (visible !== hasClass(slide, CLASS_VISIBLE)) {\n toggleClass(slide, CLASS_VISIBLE, visible);\n emit(visible ? EVENT_VISIBLE : EVENT_HIDDEN, self);\n }\n\n if (!visible && document.activeElement === slide) {\n var Slide2 = Components.Slides.getAt(Splide2.index);\n Slide2 && focus(Slide2.slide);\n }\n }\n\n function style$1(prop, value, useContainer) {\n style(useContainer && container || slide, prop, value);\n }\n\n function isActive() {\n var curr = Splide2.index;\n return curr === index || options.cloneStatus && curr === slideIndex;\n }\n\n function isVisible() {\n if (Splide2.is(FADE)) {\n return isActive();\n }\n\n var trackRect = rect(Components.Elements.track);\n var slideRect = rect(slide);\n var left = resolve(\"left\", true);\n var right = resolve(\"right\", true);\n return floor(trackRect[left]) <= ceil(slideRect[left]) && floor(slideRect[right]) <= ceil(trackRect[right]);\n }\n\n function isWithin(from, distance) {\n var diff = abs(from - index);\n\n if (!isClone && (options.rewind || Splide2.is(LOOP))) {\n diff = min(diff, Splide2.length - diff);\n }\n\n return diff <= distance;\n }\n\n var self = {\n index: index,\n slideIndex: slideIndex,\n slide: slide,\n container: container,\n isClone: isClone,\n mount: mount,\n destroy: destroy,\n update: update,\n style: style$1,\n isWithin: isWithin\n };\n return self;\n}\n\nfunction Slides(Splide2, Components2, options) {\n var _EventInterface2 = EventInterface(Splide2),\n on = _EventInterface2.on,\n emit = _EventInterface2.emit,\n bind = _EventInterface2.bind;\n\n var _Components2$Elements = Components2.Elements,\n slides = _Components2$Elements.slides,\n list = _Components2$Elements.list;\n var Slides2 = [];\n\n function mount() {\n init();\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, init);\n }\n\n function init() {\n slides.forEach(function (slide, index) {\n register(slide, index, -1);\n });\n }\n\n function destroy() {\n forEach$1(function (Slide2) {\n Slide2.destroy();\n });\n empty(Slides2);\n }\n\n function update() {\n forEach$1(function (Slide2) {\n Slide2.update();\n });\n }\n\n function register(slide, index, slideIndex) {\n var object = Slide$1(Splide2, index, slideIndex, slide);\n object.mount();\n Slides2.push(object);\n Slides2.sort(function (Slide1, Slide2) {\n return Slide1.index - Slide2.index;\n });\n }\n\n function get(excludeClones) {\n return excludeClones ? filter(function (Slide2) {\n return !Slide2.isClone;\n }) : Slides2;\n }\n\n function getIn(page) {\n var Controller = Components2.Controller;\n var index = Controller.toIndex(page);\n var max = Controller.hasFocus() ? 1 : options.perPage;\n return filter(function (Slide2) {\n return between(Slide2.index, index, index + max - 1);\n });\n }\n\n function getAt(index) {\n return filter(index)[0];\n }\n\n function add(items, index) {\n forEach(items, function (slide) {\n if (isString(slide)) {\n slide = parseHtml(slide);\n }\n\n if (isHTMLElement(slide)) {\n var ref = slides[index];\n ref ? before(slide, ref) : append(list, slide);\n addClass(slide, options.classes.slide);\n observeImages(slide, apply(emit, EVENT_RESIZE));\n }\n });\n emit(EVENT_REFRESH);\n }\n\n function remove$1(matcher) {\n remove(filter(matcher).map(function (Slide2) {\n return Slide2.slide;\n }));\n emit(EVENT_REFRESH);\n }\n\n function forEach$1(iteratee, excludeClones) {\n get(excludeClones).forEach(iteratee);\n }\n\n function filter(matcher) {\n return Slides2.filter(isFunction(matcher) ? matcher : function (Slide2) {\n return isString(matcher) ? matches(Slide2.slide, matcher) : includes(toArray(matcher), Slide2.index);\n });\n }\n\n function style(prop, value, useContainer) {\n forEach$1(function (Slide2) {\n Slide2.style(prop, value, useContainer);\n });\n }\n\n function observeImages(elm, callback) {\n var images = queryAll(elm, \"img\");\n var length = images.length;\n\n if (length) {\n images.forEach(function (img) {\n bind(img, \"load error\", function () {\n if (! --length) {\n callback();\n }\n });\n });\n } else {\n callback();\n }\n }\n\n function getLength(excludeClones) {\n return excludeClones ? slides.length : Slides2.length;\n }\n\n function isEnough() {\n return Slides2.length > options.perPage;\n }\n\n return {\n mount: mount,\n destroy: destroy,\n update: update,\n register: register,\n get: get,\n getIn: getIn,\n getAt: getAt,\n add: add,\n remove: remove$1,\n forEach: forEach$1,\n filter: filter,\n style: style,\n getLength: getLength,\n isEnough: isEnough\n };\n}\n\nfunction Layout(Splide2, Components2, options) {\n var _EventInterface3 = EventInterface(Splide2),\n on = _EventInterface3.on,\n bind = _EventInterface3.bind,\n emit = _EventInterface3.emit;\n\n var Slides = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var _Components2$Elements2 = Components2.Elements,\n root = _Components2$Elements2.root,\n track = _Components2$Elements2.track,\n list = _Components2$Elements2.list;\n var getAt = Slides.getAt,\n styleSlides = Slides.style;\n var vertical;\n var rootRect;\n var overflow;\n\n function mount() {\n init();\n bind(window, \"resize load\", Throttle(apply(emit, EVENT_RESIZE)));\n on([EVENT_UPDATED, EVENT_REFRESH], init);\n on(EVENT_RESIZE, resize);\n }\n\n function init() {\n vertical = options.direction === TTB;\n style(root, \"maxWidth\", unit(options.width));\n style(track, resolve(\"paddingLeft\"), cssPadding(false));\n style(track, resolve(\"paddingRight\"), cssPadding(true));\n resize(true);\n }\n\n function resize(force) {\n var newRect = rect(root);\n\n if (force || rootRect.width !== newRect.width || rootRect.height !== newRect.height) {\n style(track, \"height\", cssTrackHeight());\n styleSlides(resolve(\"marginRight\"), unit(options.gap));\n styleSlides(\"width\", cssSlideWidth());\n styleSlides(\"height\", cssSlideHeight(), true);\n rootRect = newRect;\n emit(EVENT_RESIZED);\n\n if (overflow !== (overflow = isOverflow())) {\n toggleClass(root, CLASS_OVERFLOW, overflow);\n emit(EVENT_OVERFLOW, overflow);\n }\n }\n }\n\n function cssPadding(right) {\n var padding = options.padding;\n var prop = resolve(right ? \"right\" : \"left\");\n return padding && unit(padding[prop] || (isObject(padding) ? 0 : padding)) || \"0px\";\n }\n\n function cssTrackHeight() {\n var height = \"\";\n\n if (vertical) {\n height = cssHeight();\n assert(height, \"height or heightRatio is missing.\");\n height = \"calc(\" + height + \" - \" + cssPadding(false) + \" - \" + cssPadding(true) + \")\";\n }\n\n return height;\n }\n\n function cssHeight() {\n return unit(options.height || rect(list).width * options.heightRatio);\n }\n\n function cssSlideWidth() {\n return options.autoWidth ? null : unit(options.fixedWidth) || (vertical ? \"\" : cssSlideSize());\n }\n\n function cssSlideHeight() {\n return unit(options.fixedHeight) || (vertical ? options.autoHeight ? null : cssSlideSize() : cssHeight());\n }\n\n function cssSlideSize() {\n var gap = unit(options.gap);\n return \"calc((100%\" + (gap && \" + \" + gap) + \")/\" + (options.perPage || 1) + (gap && \" - \" + gap) + \")\";\n }\n\n function listSize() {\n return rect(list)[resolve(\"width\")];\n }\n\n function slideSize(index, withoutGap) {\n var Slide = getAt(index || 0);\n return Slide ? rect(Slide.slide)[resolve(\"width\")] + (withoutGap ? 0 : getGap()) : 0;\n }\n\n function totalSize(index, withoutGap) {\n var Slide = getAt(index);\n\n if (Slide) {\n var right = rect(Slide.slide)[resolve(\"right\")];\n var left = rect(list)[resolve(\"left\")];\n return abs(right - left) + (withoutGap ? 0 : getGap());\n }\n\n return 0;\n }\n\n function sliderSize(withoutGap) {\n return totalSize(Splide2.length - 1) - totalSize(0) + slideSize(0, withoutGap);\n }\n\n function getGap() {\n var Slide = getAt(0);\n return Slide && parseFloat(style(Slide.slide, resolve(\"marginRight\"))) || 0;\n }\n\n function getPadding(right) {\n return parseFloat(style(track, resolve(\"padding\" + (right ? \"Right\" : \"Left\")))) || 0;\n }\n\n function isOverflow() {\n return Splide2.is(FADE) || sliderSize(true) > listSize();\n }\n\n return {\n mount: mount,\n resize: resize,\n listSize: listSize,\n slideSize: slideSize,\n sliderSize: sliderSize,\n totalSize: totalSize,\n getPadding: getPadding,\n isOverflow: isOverflow\n };\n}\n\nvar MULTIPLIER = 2;\n\nfunction Clones(Splide2, Components2, options) {\n var event = EventInterface(Splide2);\n var on = event.on;\n var Elements = Components2.Elements,\n Slides = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var clones = [];\n var cloneCount;\n\n function mount() {\n on(EVENT_REFRESH, remount);\n on([EVENT_UPDATED, EVENT_RESIZE], observe);\n\n if (cloneCount = computeCloneCount()) {\n generate(cloneCount);\n Components2.Layout.resize(true);\n }\n }\n\n function remount() {\n destroy();\n mount();\n }\n\n function destroy() {\n remove(clones);\n empty(clones);\n event.destroy();\n }\n\n function observe() {\n var count = computeCloneCount();\n\n if (cloneCount !== count) {\n if (cloneCount < count || !count) {\n event.emit(EVENT_REFRESH);\n }\n }\n }\n\n function generate(count) {\n var slides = Slides.get().slice();\n var length = slides.length;\n\n if (length) {\n while (slides.length < count) {\n push(slides, slides);\n }\n\n push(slides.slice(-count), slides.slice(0, count)).forEach(function (Slide, index) {\n var isHead = index < count;\n var clone = cloneDeep(Slide.slide, index);\n isHead ? before(clone, slides[0].slide) : append(Elements.list, clone);\n push(clones, clone);\n Slides.register(clone, index - count + (isHead ? 0 : length), Slide.index);\n });\n }\n }\n\n function cloneDeep(elm, index) {\n var clone = elm.cloneNode(true);\n addClass(clone, options.classes.clone);\n clone.id = Splide2.root.id + \"-clone\" + pad(index + 1);\n return clone;\n }\n\n function computeCloneCount() {\n var clones2 = options.clones;\n\n if (!Splide2.is(LOOP)) {\n clones2 = 0;\n } else if (isUndefined(clones2)) {\n var fixedSize = options[resolve(\"fixedWidth\")] && Components2.Layout.slideSize(0);\n var fixedCount = fixedSize && ceil(rect(Elements.track)[resolve(\"width\")] / fixedSize);\n clones2 = fixedCount || options[resolve(\"autoWidth\")] && Splide2.length || options.perPage * MULTIPLIER;\n }\n\n return clones2;\n }\n\n return {\n mount: mount,\n destroy: destroy\n };\n}\n\nfunction Move(Splide2, Components2, options) {\n var _EventInterface4 = EventInterface(Splide2),\n on = _EventInterface4.on,\n emit = _EventInterface4.emit;\n\n var set = Splide2.state.set;\n var _Components2$Layout = Components2.Layout,\n slideSize = _Components2$Layout.slideSize,\n getPadding = _Components2$Layout.getPadding,\n totalSize = _Components2$Layout.totalSize,\n listSize = _Components2$Layout.listSize,\n sliderSize = _Components2$Layout.sliderSize;\n var _Components2$Directio = Components2.Direction,\n resolve = _Components2$Directio.resolve,\n orient = _Components2$Directio.orient;\n var _Components2$Elements3 = Components2.Elements,\n list = _Components2$Elements3.list,\n track = _Components2$Elements3.track;\n var Transition;\n\n function mount() {\n Transition = Components2.Transition;\n on([EVENT_MOUNTED, EVENT_RESIZED, EVENT_UPDATED, EVENT_REFRESH], reposition);\n }\n\n function reposition() {\n if (!Components2.Controller.isBusy()) {\n Components2.Scroll.cancel();\n jump(Splide2.index);\n Components2.Slides.update();\n }\n }\n\n function move(dest, index, prev, callback) {\n if (dest !== index && canShift(dest > prev)) {\n cancel();\n translate(shift(getPosition(), dest > prev), true);\n }\n\n set(MOVING);\n emit(EVENT_MOVE, index, prev, dest);\n Transition.start(index, function () {\n set(IDLE);\n emit(EVENT_MOVED, index, prev, dest);\n callback && callback();\n });\n }\n\n function jump(index) {\n translate(toPosition(index, true));\n }\n\n function translate(position, preventLoop) {\n if (!Splide2.is(FADE)) {\n var destination = preventLoop ? position : loop(position);\n style(list, \"transform\", \"translate\" + resolve(\"X\") + \"(\" + destination + \"px)\");\n position !== destination && emit(EVENT_SHIFTED);\n }\n }\n\n function loop(position) {\n if (Splide2.is(LOOP)) {\n var index = toIndex(position);\n var exceededMax = index > Components2.Controller.getEnd();\n var exceededMin = index < 0;\n\n if (exceededMin || exceededMax) {\n position = shift(position, exceededMax);\n }\n }\n\n return position;\n }\n\n function shift(position, backwards) {\n var excess = position - getLimit(backwards);\n var size = sliderSize();\n position -= orient(size * (ceil(abs(excess) / size) || 1)) * (backwards ? 1 : -1);\n return position;\n }\n\n function cancel() {\n translate(getPosition(), true);\n Transition.cancel();\n }\n\n function toIndex(position) {\n var Slides = Components2.Slides.get();\n var index = 0;\n var minDistance = Infinity;\n\n for (var i = 0; i < Slides.length; i++) {\n var slideIndex = Slides[i].index;\n var distance = abs(toPosition(slideIndex, true) - position);\n\n if (distance <= minDistance) {\n minDistance = distance;\n index = slideIndex;\n } else {\n break;\n }\n }\n\n return index;\n }\n\n function toPosition(index, trimming) {\n var position = orient(totalSize(index - 1) - offset(index));\n return trimming ? trim(position) : position;\n }\n\n function getPosition() {\n var left = resolve(\"left\");\n return rect(list)[left] - rect(track)[left] + orient(getPadding(false));\n }\n\n function trim(position) {\n if (options.trimSpace && Splide2.is(SLIDE)) {\n position = clamp(position, 0, orient(sliderSize(true) - listSize()));\n }\n\n return position;\n }\n\n function offset(index) {\n var focus = options.focus;\n return focus === \"center\" ? (listSize() - slideSize(index, true)) / 2 : +focus * slideSize(index) || 0;\n }\n\n function getLimit(max) {\n return toPosition(max ? Components2.Controller.getEnd() : 0, !!options.trimSpace);\n }\n\n function canShift(backwards) {\n var shifted = orient(shift(getPosition(), backwards));\n return backwards ? shifted >= 0 : shifted <= list[resolve(\"scrollWidth\")] - rect(track)[resolve(\"width\")];\n }\n\n function exceededLimit(max, position) {\n position = isUndefined(position) ? getPosition() : position;\n var exceededMin = max !== true && orient(position) < orient(getLimit(false));\n var exceededMax = max !== false && orient(position) > orient(getLimit(true));\n return exceededMin || exceededMax;\n }\n\n return {\n mount: mount,\n move: move,\n jump: jump,\n translate: translate,\n shift: shift,\n cancel: cancel,\n toIndex: toIndex,\n toPosition: toPosition,\n getPosition: getPosition,\n getLimit: getLimit,\n exceededLimit: exceededLimit,\n reposition: reposition\n };\n}\n\nfunction Controller(Splide2, Components2, options) {\n var _EventInterface5 = EventInterface(Splide2),\n on = _EventInterface5.on,\n emit = _EventInterface5.emit;\n\n var Move = Components2.Move;\n var getPosition = Move.getPosition,\n getLimit = Move.getLimit,\n toPosition = Move.toPosition;\n var _Components2$Slides = Components2.Slides,\n isEnough = _Components2$Slides.isEnough,\n getLength = _Components2$Slides.getLength;\n var omitEnd = options.omitEnd;\n var isLoop = Splide2.is(LOOP);\n var isSlide = Splide2.is(SLIDE);\n var getNext = apply(getAdjacent, false);\n var getPrev = apply(getAdjacent, true);\n var currIndex = options.start || 0;\n var endIndex;\n var prevIndex = currIndex;\n var slideCount;\n var perMove;\n var perPage;\n\n function mount() {\n init();\n on([EVENT_UPDATED, EVENT_REFRESH, EVENT_END_INDEX_CHANGED], init);\n on(EVENT_RESIZED, onResized);\n }\n\n function init() {\n slideCount = getLength(true);\n perMove = options.perMove;\n perPage = options.perPage;\n endIndex = getEnd();\n var index = clamp(currIndex, 0, omitEnd ? endIndex : slideCount - 1);\n\n if (index !== currIndex) {\n currIndex = index;\n Move.reposition();\n }\n }\n\n function onResized() {\n if (endIndex !== getEnd()) {\n emit(EVENT_END_INDEX_CHANGED);\n }\n }\n\n function go(control, allowSameIndex, callback) {\n if (!isBusy()) {\n var dest = parse(control);\n var index = loop(dest);\n\n if (index > -1 && (allowSameIndex || index !== currIndex)) {\n setIndex(index);\n Move.move(dest, index, prevIndex, callback);\n }\n }\n }\n\n function scroll(destination, duration, snap, callback) {\n Components2.Scroll.scroll(destination, duration, snap, function () {\n var index = loop(Move.toIndex(getPosition()));\n setIndex(omitEnd ? min(index, endIndex) : index);\n callback && callback();\n });\n }\n\n function parse(control) {\n var index = currIndex;\n\n if (isString(control)) {\n var _ref = control.match(/([+\\-<>])(\\d+)?/) || [],\n indicator = _ref[1],\n number = _ref[2];\n\n if (indicator === \"+\" || indicator === \"-\") {\n index = computeDestIndex(currIndex + +(\"\" + indicator + (+number || 1)), currIndex);\n } else if (indicator === \">\") {\n index = number ? toIndex(+number) : getNext(true);\n } else if (indicator === \"<\") {\n index = getPrev(true);\n }\n } else {\n index = isLoop ? control : clamp(control, 0, endIndex);\n }\n\n return index;\n }\n\n function getAdjacent(prev, destination) {\n var number = perMove || (hasFocus() ? 1 : perPage);\n var dest = computeDestIndex(currIndex + number * (prev ? -1 : 1), currIndex, !(perMove || hasFocus()));\n\n if (dest === -1 && isSlide) {\n if (!approximatelyEqual(getPosition(), getLimit(!prev), 1)) {\n return prev ? 0 : endIndex;\n }\n }\n\n return destination ? dest : loop(dest);\n }\n\n function computeDestIndex(dest, from, snapPage) {\n if (isEnough() || hasFocus()) {\n var index = computeMovableDestIndex(dest);\n\n if (index !== dest) {\n from = dest;\n dest = index;\n snapPage = false;\n }\n\n if (dest < 0 || dest > endIndex) {\n if (!perMove && (between(0, dest, from, true) || between(endIndex, from, dest, true))) {\n dest = toIndex(toPage(dest));\n } else {\n if (isLoop) {\n dest = snapPage ? dest < 0 ? -(slideCount % perPage || perPage) : slideCount : dest;\n } else if (options.rewind) {\n dest = dest < 0 ? endIndex : 0;\n } else {\n dest = -1;\n }\n }\n } else {\n if (snapPage && dest !== from) {\n dest = toIndex(toPage(from) + (dest < from ? -1 : 1));\n }\n }\n } else {\n dest = -1;\n }\n\n return dest;\n }\n\n function computeMovableDestIndex(dest) {\n if (isSlide && options.trimSpace === \"move\" && dest !== currIndex) {\n var position = getPosition();\n\n while (position === toPosition(dest, true) && between(dest, 0, Splide2.length - 1, !options.rewind)) {\n dest < currIndex ? --dest : ++dest;\n }\n }\n\n return dest;\n }\n\n function loop(index) {\n return isLoop ? (index + slideCount) % slideCount || 0 : index;\n }\n\n function getEnd() {\n var end = slideCount - (hasFocus() || isLoop && perMove ? 1 : perPage);\n\n while (omitEnd && end-- > 0) {\n if (toPosition(slideCount - 1, true) !== toPosition(end, true)) {\n end++;\n break;\n }\n }\n\n return clamp(end, 0, slideCount - 1);\n }\n\n function toIndex(page) {\n return clamp(hasFocus() ? page : perPage * page, 0, endIndex);\n }\n\n function toPage(index) {\n return hasFocus() ? min(index, endIndex) : floor((index >= endIndex ? slideCount - 1 : index) / perPage);\n }\n\n function toDest(destination) {\n var closest = Move.toIndex(destination);\n return isSlide ? clamp(closest, 0, endIndex) : closest;\n }\n\n function setIndex(index) {\n if (index !== currIndex) {\n prevIndex = currIndex;\n currIndex = index;\n }\n }\n\n function getIndex(prev) {\n return prev ? prevIndex : currIndex;\n }\n\n function hasFocus() {\n return !isUndefined(options.focus) || options.isNavigation;\n }\n\n function isBusy() {\n return Splide2.state.is([MOVING, SCROLLING]) && !!options.waitForTransition;\n }\n\n return {\n mount: mount,\n go: go,\n scroll: scroll,\n getNext: getNext,\n getPrev: getPrev,\n getAdjacent: getAdjacent,\n getEnd: getEnd,\n setIndex: setIndex,\n getIndex: getIndex,\n toIndex: toIndex,\n toPage: toPage,\n toDest: toDest,\n hasFocus: hasFocus,\n isBusy: isBusy\n };\n}\n\nvar XML_NAME_SPACE = \"http://www.w3.org/2000/svg\";\nvar PATH = \"m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z\";\nvar SIZE = 40;\n\nfunction Arrows(Splide2, Components2, options) {\n var event = EventInterface(Splide2);\n var on = event.on,\n bind = event.bind,\n emit = event.emit;\n var classes = options.classes,\n i18n = options.i18n;\n var Elements = Components2.Elements,\n Controller = Components2.Controller;\n var placeholder = Elements.arrows,\n track = Elements.track;\n var wrapper = placeholder;\n var prev = Elements.prev;\n var next = Elements.next;\n var created;\n var wrapperClasses;\n var arrows = {};\n\n function mount() {\n init();\n on(EVENT_UPDATED, remount);\n }\n\n function remount() {\n destroy();\n mount();\n }\n\n function init() {\n var enabled = options.arrows;\n\n if (enabled && !(prev && next)) {\n createArrows();\n }\n\n if (prev && next) {\n assign(arrows, {\n prev: prev,\n next: next\n });\n display(wrapper, enabled ? \"\" : \"none\");\n addClass(wrapper, wrapperClasses = CLASS_ARROWS + \"--\" + options.direction);\n\n if (enabled) {\n listen();\n update();\n setAttribute([prev, next], ARIA_CONTROLS, track.id);\n emit(EVENT_ARROWS_MOUNTED, prev, next);\n }\n }\n }\n\n function destroy() {\n event.destroy();\n removeClass(wrapper, wrapperClasses);\n\n if (created) {\n remove(placeholder ? [prev, next] : wrapper);\n prev = next = null;\n } else {\n removeAttribute([prev, next], ALL_ATTRIBUTES);\n }\n }\n\n function listen() {\n on([EVENT_MOUNTED, EVENT_MOVED, EVENT_REFRESH, EVENT_SCROLLED, EVENT_END_INDEX_CHANGED], update);\n bind(next, \"click\", apply(go, \">\"));\n bind(prev, \"click\", apply(go, \"<\"));\n }\n\n function go(control) {\n Controller.go(control, true);\n }\n\n function createArrows() {\n wrapper = placeholder || create(\"div\", classes.arrows);\n prev = createArrow(true);\n next = createArrow(false);\n created = true;\n append(wrapper, [prev, next]);\n !placeholder && before(wrapper, track);\n }\n\n function createArrow(prev2) {\n var arrow = \"\";\n };\n\n _proto3.html = function html() {\n var _this$config = this.config,\n rootClass = _this$config.rootClass,\n listTag = _this$config.listTag,\n arrows = _this$config.arrows,\n beforeTrack = _this$config.beforeTrack,\n afterTrack = _this$config.afterTrack,\n slider = _this$config.slider,\n beforeSlider = _this$config.beforeSlider,\n afterSlider = _this$config.afterSlider;\n var html = \"\";\n html += \"
\";\n html += \"\";\n\n if (slider) {\n html += beforeSlider || \"\";\n html += \"
\";\n }\n\n html += beforeTrack || \"\";\n\n if (arrows) {\n html += this.renderArrows();\n }\n\n html += \"
\";\n html += \"<\" + listTag + \" class=\\\"splide__list\\\">\";\n html += this.renderSlides();\n html += \"\";\n html += \"
\";\n html += afterTrack || \"\";\n\n if (slider) {\n html += \"
\";\n html += afterSlider || \"\";\n }\n\n html += \"
\";\n return html;\n };\n\n return SplideRenderer;\n}();\n\nexport { CLASSES, CLASS_ACTIVE, CLASS_ARROW, CLASS_ARROWS, CLASS_ARROW_NEXT, CLASS_ARROW_PREV, CLASS_CLONE, CLASS_CONTAINER, CLASS_FOCUS_IN, CLASS_INITIALIZED, CLASS_LIST, CLASS_LOADING, CLASS_NEXT, CLASS_OVERFLOW, CLASS_PAGINATION, CLASS_PAGINATION_PAGE, CLASS_PREV, CLASS_PROGRESS, CLASS_PROGRESS_BAR, CLASS_ROOT, CLASS_SLIDE, CLASS_SPINNER, CLASS_SR, CLASS_TOGGLE, CLASS_TOGGLE_PAUSE, CLASS_TOGGLE_PLAY, CLASS_TRACK, CLASS_VISIBLE, DEFAULTS, EVENT_ACTIVE, EVENT_ARROWS_MOUNTED, EVENT_ARROWS_UPDATED, EVENT_AUTOPLAY_PAUSE, EVENT_AUTOPLAY_PLAY, EVENT_AUTOPLAY_PLAYING, EVENT_CLICK, EVENT_DESTROY, EVENT_DRAG, EVENT_DRAGGED, EVENT_DRAGGING, EVENT_END_INDEX_CHANGED, EVENT_HIDDEN, EVENT_INACTIVE, EVENT_LAZYLOAD_LOADED, EVENT_MOUNTED, EVENT_MOVE, EVENT_MOVED, EVENT_NAVIGATION_MOUNTED, EVENT_OVERFLOW, EVENT_PAGINATION_MOUNTED, EVENT_PAGINATION_UPDATED, EVENT_READY, EVENT_REFRESH, EVENT_RESIZE, EVENT_RESIZED, EVENT_SCROLL, EVENT_SCROLLED, EVENT_SHIFTED, EVENT_SLIDE_KEYDOWN, EVENT_UPDATED, EVENT_VISIBLE, EventBinder, EventInterface, FADE, LOOP, LTR, RTL, RequestInterval, SLIDE, STATUS_CLASSES, Splide, SplideRenderer, State, TTB, Throttle, Splide as default };\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.et=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this.ft=void 0,this.et=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.et)return this.ft;this.et=r;const s=[r];return s.raw=s,this.ft={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import{directive as s}from\"../directive.js\";import{UnsafeHTMLDirective as e}from\"./unsafe-html.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class t extends e{}t.directiveName=\"unsafeSVG\",t.resultType=2;const o=s(t);export{o as unsafeSVG};\n//# sourceMappingURL=unsafe-svg.js.map\n","import type { IconLibrary } from '../library';\n\n//\n// System icons are a separate library to ensure they're always available, regardless of how the default icon library is\n// configured or if its icons resolve properly.\n//\n// All Outline components must use the system library instead of the default library. For visual consistency, system\n// icons are a subset of Bootstrap Icons.\n//\nconst icons = {\n 'eu-texas-border': `\n \n`,\n 'eu-decorative-dishwasher': `\n\n`,\n 'eu-pennsylvania-border': `\n\n`,\n 'eu-indiana-fill': `\n\n`,\n 'eu-download': `\n\n`,\n 'eu-home': `\n\n`,\n 'eu-virginia-border': `\n\n`,\n 'eu-decorative-broom': `\n\n`,\n 'eu-decorative-shower': `\n\n`,\n 'eu-essential-brand-mark': `\n\n`,\n 'eu-decorative-trash': `\n\n`,\n 'eu-decorative-watersense': `\n\n`,\n 'eu-right-hand-small-wave': `\n\n`,\n 'eu-decorative-pool': `\n\n`,\n 'eu-external': `\n\n`,\n 'eu-essential-color-brand-mark': `\n\n`,\n 'eu-triangle': `\n\n`,\n 'eu-illinois-border': `\n\n`,\n 'eu-mail': `\n\n`,\n 'eu-phone': `\n\n`,\n 'eu-illinois-fill': `\n\n`,\n 'eu-decorative-money': `\n\n`,\n 'eu-tooltip': `\n\n`,\n 'eu-exclamation-point': `\n\n`,\n 'eu-new-jersey-border': `\n\n`,\n 'eu-medium-wave': `\n\n`,\n 'eu-decorative-service-alert': `\n\n`,\n 'eu-brand-faucet': `\n\n`,\n 'eu-minus': `\n\n`,\n 'eu-standard-wave': `\n\n`,\n 'eu-brand-q': `\n\n`,\n 'eu-decorative-quote': `\n\n`,\n 'eu-resize': `\n\n`,\n 'eu-quote': `\n\n`,\n 'eu-pause': `\n\n`,\n 'eu-plus': `\n\n`,\n 'eu-chevron': `\n\n`,\n 'eu-default-wave': `\n\n`,\n 'eu-brand-white-logo': `\n\n`,\n 'eu-essential-color-logo': `\n\n`,\n 'eu-decorative-pipe': `\n\n`,\n 'eu-ohio-border': `\n\n`,\n 'eu-expand': `\n\n`,\n 'eu-decorative-faucet': `\n\n`,\n 'eu-arrow': `\n\n`,\n 'eu-linkedIn': `\n\n`,\n 'eu-essential-logo': `\n\n`,\n 'eu-aqua-brand-mark': `\n\n`,\n 'eu-mobile-wave': `\n\n`,\n 'eu-decorative-appliance': `\n\n`,\n 'eu-brand-wave': `\n\n`,\n 'eu-decorative-upgradetoilet': `\n\n`,\n 'eu-indiana-border': `\n\n`,\n 'eu-decorative-pot': `\n\n`,\n 'eu-new-jersey-fill': `\n\n`,\n 'eu-large-wave': `\n\n`,\n 'eu-twitter': `\n\n`,\n 'eu-brand-color-logo': `\n\n`,\n 'eu-alert': `\n\n`,\n 'eu-instagram': `\n\n`,\n 'eu-snapchat': `\n\n`,\n 'eu-youtube': `\n\n`,\n 'eu-brand-mark': `\n\n`,\n 'eu-x': `\n\n`,\n 'eu-small-wave-border': `\n\n`,\n 'eu-left-hand-small-wave': `\n\n`,\n 'eu-north-carolina-fill': `\n\n`,\n 'eu-north-carolina-border': `\n\n`,\n 'eu-decorative-fridge': `\n\n`,\n 'eu-search': `\n\n`,\n 'eu-facebook': `\n\n`,\n 'eu-pay': `\n\n`,\n 'eu-decorative-plant': `\n\n`,\n 'eu-pennsylvania-fill': `\n\n`,\n 'eu-decorative-dishes': `\n\n`,\n 'eu-menu': `\n\n`,\n 'eu-brand-water-droplet': `\n\n`,\n 'eu-checkmark': `\n\n`,\n 'eu-workday-logo': `\n\n`,\n 'eu-ohio-fill': `\n\n`,\n 'eu-peoples-brand-mark': `\n\n`,\n 'eu-texas-fill': `\n\n`,\n 'eu-decorative-watermeter': `\n\n`,\n 'eu-virginia-fill': `\n\n`,\n 'icon-left-hand-small-wave': `\n\n \n`,\n 'icon-right-hand-small-wave': `\n\n \n`,\n 'icon-small-wave-border': `\n\n \n`,\n 'icon-mobile-wave': `\n\n \n`,\n 'icon-medium-wave': `\n\n \n`,\n 'icon-default-wave': `\n\n \n`,\n 'icon-standard-wave': `\n\n \n`,\n 'icon-large-wave': `\n\n \n`,\n 'icon-brand-faucet': `\n\n \n \n`,\n 'icon-brand-white-logo': `\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`,\n 'icon-brand-water-droplet': `\n\n \n`,\n 'icon-brand-wave': `\n\n \n`,\n 'icon-decorative-appliance': `\n\n \n \n \n \n`,\n 'icon-decorative-broom': `\n\n \n \n \n \n \n`,\n 'icon-decorative-dishes': `\n\n \n \n \n \n \n \n \n`,\n 'icon-decorative-dishwasher': `\n\n \n \n \n \n \n \n`,\n 'icon-decorative-faucet': `\n\n \n \n \n \n`,\n 'icon-decorative-fridge': `\n\n \n \n \n \n`,\n 'icon-decorative-money': `\n\n \n \n \n \n`,\n 'icon-decorative-pipe': `\n\n \n \n \n \n \n \n`,\n 'icon-decorative-plant': `\n\n \n \n \n`,\n 'icon-decorative-pool': `\n\n \n \n \n \n`,\n 'icon-decorative-pot': `\n\n \n \n \n`,\n 'icon-decorative-quote': `\n\n \n \n \n`,\n 'icon-decorative-service-alert': `\n\n \n \n \n \n`,\n 'icon-decorative-shower': `\n\n \n \n \n \n \n \n \n \n \n \n`,\n 'icon-decorative-trash': `\n\n \n \n \n \n`,\n 'icon-decorative-upgradetoilet': `\n\n \n \n \n`,\n 'icon-decorative-watermeter': `\n\n \n \n \n \n \n \n \n`,\n 'icon-decorative-watersense': `\n\n \n \n \n`,\n 'icon-alert': `\n\n \n \n \n`,\n 'icon-pay': `\n\n \n`,\n 'icon-tooltip': `\n\n \n`,\n 'icon-resize': `\n\n \n`,\n 'icon-pause': `\n\n \n \n`,\n 'icon-x': `\n\n \n`,\n 'icon-triangle': `\n\n \n`,\n 'icon-phone': `\n\n \n \n`,\n 'icon-home': `\n\n \n`,\n 'icon-mail': `\n\n \n \n`,\n 'icon-minus': `\n\n \n`,\n 'icon-plus': `\n\n \n \n`,\n 'icon-exclamation-point': `\n\n \n \n`,\n 'icon-expand': `\n\n \n \n`,\n 'icon-arrow': `\n\n \n \n`,\n 'icon-checkmark': `\n\n \n`,\n 'icon-external': `\n\n \n \n`,\n 'icon-search': `\n\n \n \n`,\n 'icon-chevron': `\n\n \n`,\n 'icon-facebook': `\n\n \n`,\n 'icon-instagram': `\n\n \n`,\n 'icon-linkedIn': `\n\n \n \n \n`,\n 'icon-menu': `\n\n \n \n \n`,\n 'icon-snapchat': `\n\n \n`,\n 'icon-twitter': `\n\n \n`,\n 'icon-youtube': `\n\n \n`,\n 'icon-brand-mark': `\n\n \n \n \n \n`,\n 'icon-quote': `\n\n \n`,\n 'icon-download': `\n\n \n \n`,\n 'icon-peoples-brand-mark': `\n\n \n \n \n \n`,\n 'icon-aqua-brand-mark': `\n\n \n`,\n};\n\nconst systemLibrary: IconLibrary = {\n name: 'system',\n // @ts-expect-error - shrug.\n resolver: (name: keyof typeof icons) => {\n if (name in icons) {\n return `data:image/svg+xml,${encodeURIComponent(icons[name])}`;\n }\n return '';\n },\n};\n\nexport default systemLibrary;\n","import { OutlineIconBaseline } from './outline-icon-baseline';\n\nimport systemLibrary from './libraries/library.system';\n\nexport type IconLibraryResolver = (name: string) => string;\nexport type IconLibraryMutator = (svg: SVGElement) => void;\nexport interface IconLibrary {\n name: string;\n resolver: IconLibraryResolver;\n mutator?: IconLibraryMutator;\n}\n\nlet registry: IconLibrary[] = [systemLibrary];\nlet watchedIcons: OutlineIconBaseline[] = [];\n\nexport function watchIcon(icon: OutlineIconBaseline) {\n watchedIcons.push(icon);\n}\n\nexport function unwatchIcon(icon: OutlineIconBaseline) {\n watchedIcons = watchedIcons.filter(el => el !== icon);\n}\n\nexport function getIconLibrary(name?: string) {\n return registry.find(lib => lib.name === name);\n}\n\nexport function registerIconLibrary(\n name: string,\n options: { resolver: IconLibraryResolver; mutator?: IconLibraryMutator }\n) {\n unregisterIconLibrary(name);\n registry.push({\n name,\n resolver: options.resolver,\n mutator: options.mutator,\n });\n\n // Redraw watched icons\n watchedIcons.forEach(icon => {\n if (icon.library === name) {\n icon.redraw();\n }\n });\n}\n\nexport function unregisterIconLibrary(name: string) {\n registry = registry.filter(lib => lib.name !== name);\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:block;\n box-sizing:border-box;\n}\n\n:host *,\n:host *::before,\n:host *::after{\n box-sizing:inherit;\n}\n\n[hidden]{\n display:none !important;\n}\n`;","interface IncludeFile {\n ok: boolean;\n status: number;\n html: string;\n}\n\nconst includeFiles = new Map>();\n\nexport function requestInclude(\n src: string,\n mode: 'cors' | 'no-cors' | 'same-origin' = 'cors'\n): Promise {\n if (includeFiles.has(src)) {\n return includeFiles.get(src)!;\n }\n const fileDataPromise = fetch(src, { mode: mode }).then(async response => {\n return {\n ok: response.ok,\n status: response.status,\n html: await response.text(),\n };\n });\n includeFiles.set(src, fileDataPromise);\n return fileDataPromise;\n}\n","import { html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { OutlineElement, emit, watch } from '@phase2/outline-core';\nimport componentStyles from './outline-include.css.lit';\nimport { requestInclude } from './request';\n\n/**\n * @since 2.0\n * @status stable\n *\n * @event outline-load - Emitted when the included file is loaded.\n * @event {{ status: number }} outline-error - Emitted when the included file fails to load due to an error.\n */\n@customElement('outline-include')\nexport class OutlineInclude extends OutlineElement {\n static styles = [componentStyles];\n\n /**\n * The location of the HTML file to include.\n *\n * WARNING: Be sure you trust the content you are including as it will be executed as code and can result in XSS attacks.\n */\n @property() src: string;\n\n /** The fetch mode to use. */\n @property() mode: 'cors' | 'no-cors' | 'same-origin' = 'cors';\n\n /**\n * Allows included scripts to be executed. You must ensure the content you're including is trusted, otherwise this\n * option can lead to XSS vulnerabilities in your app!\n */\n @property({ attribute: 'allow-scripts', type: Boolean }) allowScripts = false;\n\n executeScript(script: HTMLScriptElement) {\n // Create a copy of the script and swap it out so the browser executes it\n const newScript = document.createElement('script');\n [...script.attributes].forEach(attr =>\n newScript.setAttribute(attr.name, attr.value)\n );\n newScript.textContent = script.textContent;\n script.parentNode!.replaceChild(newScript, script);\n }\n\n @watch('src')\n async handleSrcChange() {\n try {\n const src = this.src;\n const file = await requestInclude(src, this.mode);\n\n // If the src changed since the request started do nothing, otherwise we risk overwriting a subsequent response\n if (src !== this.src) {\n return;\n }\n\n if (!file.ok) {\n emit(this, 'outline-error', { detail: { status: file.status } });\n return;\n }\n\n this.innerHTML = file.html;\n\n if (this.allowScripts) {\n [...this.querySelectorAll('script')].forEach(script =>\n this.executeScript(script)\n );\n }\n\n emit(this, 'outline-load');\n } catch {\n emit(this, 'outline-error', { detail: { status: -1 } });\n }\n }\n\n render() {\n return html``;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-include': OutlineInclude;\n }\n}\n","import { requestInclude } from '@phase2/outline-include';\n\ntype IconFile =\n | {\n ok: true;\n status: number;\n svg: string;\n }\n | {\n ok: false;\n status: number;\n svg: null;\n };\n\ninterface IconFileUnknown {\n ok: boolean;\n status: number;\n svg: string | null;\n}\n\nconst iconFiles = new Map();\n\nexport async function requestIcon(url: string): Promise {\n if (iconFiles.has(url)) {\n return iconFiles.get(url)!;\n }\n const fileData = await requestInclude(url);\n const iconFileData: IconFileUnknown = {\n ok: fileData.ok,\n status: fileData.status,\n svg: null,\n };\n if (fileData.ok) {\n const div = document.createElement('div');\n div.innerHTML = fileData.html;\n const svg = div.firstElementChild;\n iconFileData.svg =\n svg?.tagName.toLowerCase() === 'svg' ? svg.outerHTML : '';\n }\n\n iconFiles.set(url, iconFileData as IconFile);\n return iconFileData as IconFile;\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host svg{\n height:inherit;\n width:inherit;\n display:flex;\n fill:currentColor;\n}\n\n.icon{\n display:flex;\n}\n`;","import { CSSResultGroup, html } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\n\nimport {\n OutlineElement,\n watch,\n emit,\n defaultIconConfig,\n} from '@phase2/outline-core';\nimport { getIconLibrary, unwatchIcon, watchIcon } from './library';\nimport { requestIcon } from './request';\nimport componentStyles from './outline-icon-baseline.css.lit';\n\nconst parser = new DOMParser();\n\n/**\n * @since 1.0\n * @status stable\n *\n * @event outline-load - Emitted when the icon has loaded.\n * @event outline-error - Emitted when the icon fails to load due to an error.\n *\n * @csspart base - The component's base wrapper.\n */\n@customElement('outline-icon-baseline')\nexport class OutlineIconBaseline extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n @state() private svg = '';\n\n /** The name of the icon to draw. */\n @property({ type: String, reflect: true, attribute: 'name' })\n name?: string;\n\n /**\n * An external URL of an SVG file.\n *\n * WARNING: Be sure you trust the content you are including as it will be executed as code and can result in XSS attacks.\n */\n @property({ type: String, attribute: 'src' })\n src?: string;\n\n /**\n * If this is excluded, it suggests that the icon serves a purely decorative purpose.\n * If the intention is for the icon to provide information, ensure that the label\n * attribute is included to be accessible by assistive devices.\n */\n @property({ attribute: 'label' })\n label: string | boolean = false;\n\n /** The name of a registered custom icon library. */\n @property({ type: String, attribute: 'library' })\n library = 'system';\n\n /**\n * The width and height of the icon.\n * @param size in pixels\n * @default 32px\n */\n @property({ attribute: 'size' })\n size: string | boolean = defaultIconConfig.defaults.size;\n\n connectedCallback() {\n super.connectedCallback();\n watchIcon(this);\n }\n\n firstUpdated() {\n this.setIcon();\n this.sizeIcon();\n }\n\n updated() {\n this.setIcon();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n unwatchIcon(this);\n }\n\n private sizeIcon() {\n if (\n this.size &&\n typeof this.size === 'string' &&\n this.size !== defaultIconConfig.defaults.size\n ) {\n const icon: HTMLElement | null | undefined =\n this.shadowRoot?.querySelector('.icon');\n icon?.style.setProperty('width', this.size);\n icon?.style.setProperty('height', this.size);\n }\n }\n\n private getUrl() {\n const library = getIconLibrary(this.library);\n if (this.name && library) {\n return library.resolver(this.name);\n }\n return this.src;\n }\n\n /** @internal Fetches the icon and redraws it. Used to handle library registrations. */\n redraw() {\n this.setIcon();\n }\n\n @watch('name')\n @watch('src')\n @watch('library')\n async setIcon() {\n const library = getIconLibrary(this.library);\n const url = this.getUrl();\n if (url) {\n try {\n const file = await requestIcon(url);\n if (url !== this.getUrl()) {\n // If the url has changed while fetching the icon, ignore this request\n return;\n } else if (file.ok) {\n const doc = parser.parseFromString(file.svg, 'text/html');\n const svgEl = doc.body.querySelector('svg');\n\n if (svgEl !== null) {\n library?.mutator?.(svgEl);\n\n this.svg = svgEl.outerHTML;\n emit(this, 'outline-load');\n } else {\n this.svg = '';\n emit(this, 'outline-error', { detail: { status: file.status } });\n }\n } else {\n this.svg = '';\n emit(this, 'outline-error', { detail: { status: file.status } });\n }\n } catch {\n emit(this, 'outline-error', { detail: { status: -1 } });\n }\n } else if (this.svg.length > 0) {\n // If we can't resolve a URL and an icon was previously set, remove it\n this.svg = '';\n }\n }\n\n render() {\n const hasLabel = typeof this.label === 'string' && this.label.length > 0;\n\n const wrapperClasses = {\n icon: true,\n [`icon-library--${this.library}`]: this.library,\n };\n\n return html` \n ${unsafeSVG(this.svg)}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-icon-baseline': OutlineIconBaseline;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}:host{\n position:relative;\n padding:var(--spacing-12) 0;\n}:host outline-cta-card{\n color:var(--brand-dark-blue-900);\n min-height:100%;\n }:host outline-cta-card div[slot='icon'],\n :host outline-cta-card div[slot='heading'],\n :host outline-cta-card div[slot='body'],\n :host outline-cta-card div[slot='cta']{\n padding:0 var(--spacing-10);\n }@media (min-width: 768px){:host outline-cta-card div[slot='icon'],\n :host outline-cta-card div[slot='heading'],\n :host outline-cta-card div[slot='body'],\n :host outline-cta-card div[slot='cta']{\n padding:0\n }\n }:host outline-cta-card div[slot='heading']{\n color:var(--brand-dark-blue-900);\n }:host outline-cta-card .content{\n padding:var(--spacing-5) var(--spacing-10);\n }:host outline-cta-card[high-contrast]{\n color:var(--brand-white);\n }:host outline-cta-card[high-contrast] div[slot='heading'],\n :host outline-cta-card[high-contrast] div[slot='body']{\n color:var(--brand-white);\n }:host[has-title]{\n padding-top:0;\n }.splide{\n position:relative;\n}.splide__pagination{\n display:flex;\n justify-content:center;\n align-items:center;\n margin:0;\n padding:0;\n list-style-type:none;\n}.splide__pagination__page{\n border:var(--outline-ring-width) solid var(--brand-dark-blue-900);\n cursor:pointer;\n display:block;\n width:1.5rem;\n height:1.5rem;\n padding:0;\n background:transparent;\n border-radius:50%;\n margin:0 var(--spacing-2);\n font-size:0;\n}.splide__pagination__page.is-active{\n border-color:var(--brand-primary-dark-blue);\n background:var(--brand-primary-dark-blue);\n}.splide__arrow{\n background:var(--brand-primary-blue);\n border:var(--outline-ring-width) solid var(--brand-primary-dark-blue);\n border-radius:8px;\n width:3rem;\n height:3rem;\n padding:0;\n position:absolute;\n bottom:0;\n top:50%;\n transform:translateY(-50%);\n z-index:40;\n display:flex;\n justify-content:center;\n align-items:center;\n cursor:pointer;\n transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, outline, outline-color;\n transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration:150ms;\n text-decoration-line:none;\n outline:none;\n}.splide__arrow:disabled{\n display:none;\n }.splide__arrow:hover{\n transform:translateY(-50%) scale(1.05);\n }.splide__arrow:focus{\n background-color:var(--brand-bright-blue-900);\n color:var(--brand-dark-blue-900);\n outline:2px solid var(--brand-dark-blue-900);\n outline-offset:2px;\n }.splide__arrow svg{\n fill:var(--brand-primary-dark-blue);\n width:1.25rem;\n}.splide__arrow--next{\n right:-0.5rem;\n}@media (min-width: 768px){.splide__arrow--next{\n right:-2rem\n}\n }.splide__arrow--prev{\n left:-0.5rem;\n}@media (min-width: 768px){.splide__arrow--prev{\n left:-2rem\n}\n }.splide__arrow--prev svg{\n transform:rotate(180deg);\n }.splide__slide{\n padding:var(--spacing-6) var(--spacing-2);\n}@media (min-width: 768px){.splide__slide{\n padding:var(--spacing-12) var(--spacing-2)\n}\n }.splide__slide.is-visible{\n visibility:visible;\n}.sr-only{\n position:absolute !important;\n overflow:hidden;\n clip:rect(1px, 1px, 1px, 1px);\n width:1px;\n height:1px;\n word-wrap:normal;\n}.slide-count{\n visibility:hidden;\n}@media (min-width: 768px){\n .splide__arrow{justify-content:center}\n .splide__arrow--prev:after{\n top:1.25rem;\n }\n}button.trigger:focus .play-overlay .btn, button.trigger:focus-within .play-overlay .btn{\n background-color:var(--outline-button--primary-bg-color-focus--computed);\n color:var(--outline-button--primary-color-focus--computed);\n font-weight:var(--outline-button--primary-weight-focus--computed);\n outline:2px solid var(--outline-button-accent-color);\n outline-offset:2px;\n }\n`;","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n flex-grow:1;\n display:flex;\n flex-direction:column;\n position:relative;\n height:100%;\n}\n\n:host([high-contrast]) div[slot='body']{\n color:var(--brand-white);\n}\n\n:host([high-contrast]) div[slot='body'] outline-styled-text-baseline *{\n color:var(--brand-white);\n }\n\n.container{\n flex-grow:1;\n}\n\n.container.card-image{\n background-color:transparent;\n position:relative;\n }\n\n.container.light-gray-bg{\n background-color:var(--brand-gray-200);\n }\n\n.container.dark-blue-bg{\n background-color:var(--brand-primary-dark-blue);\n }\n\n.container.white-bg{\n background-color:var(--brand-white);\n box-shadow:0 0 10px 5px rgba(4, 30, 74, 0.1);\n }\n\n.container.light-blue-bg{\n background-color:var(--brand-primary-blue);\n }\n\n.container.green-bg{\n background-color:var(--brand-primary-green);\n }\n\n.content{\n display:flex;\n flex-direction:column;\n padding:var(--spacing-5);\n height:100%;\n}\n\n@media (min-width: 768px){\n\n.content{\n padding:var(--spacing-10)\n}\n }\n\n.card-image .content{\n padding:0;\n}\n\n@media (min-width: 768px){\n\n.card-image .content{\n padding:0\n}\n }\n\n.cta{\n flex-grow:1;\n display:flex;\n align-items:flex-end;\n}\n\n.card-image .cta{\n flex-grow:0;\n}\n\ndiv[slot='heading']{\n margin-bottom:var(--spacing-4);\n}\n\ndiv[slot='body']{\n margin-bottom:var(--spacing-6);\n color:var(--brand-gray-800);\n font-size:var(--fs-lg);\n}\n\n@media (min-width: 768px){\n\ndiv[slot='body']{\n font-size:1.375rem\n}\n }\n\ndiv[slot='image']{\n width:100%;\n height:100%;\n}\n\ndiv[slot='image'] img{\n height:100%;\n object-fit:cover;\n width:100%;\n }\n\n.image{\n position:absolute;\n top:0;\n left:0;\n width:100%;\n height:100%;\n overflow:hidden;\n z-index:0;\n}\n\n.card-image-content-wrapper{\n display:flex;\n flex:1 0 auto;\n flex-direction:column;\n height:100%;\n justify-content:center;\n max-width:22.5rem;\n padding:1.875rem;\n position:relative;\n width:100%;\n z-index:1;\n}\n\n@media (min-width: 768px){\n\n.card-image-content-wrapper{\n min-height:26rem\n}\n }\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport {\n LightDomStyles,\n OutlineElement,\n SlotsController,\n} from '@phase2/outline-core';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-cta-card.css.lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport '../outline-button-baseline/outline-button-baseline';\nimport '../outline-icon-baseline/outline-icon-baseline';\nimport buttonStyles from '../outline-button-baseline/outline-button-baseline.css.lit';\n\n/**\n * The OutlineCtaCard component\n * @element outline-cta-card\n */\n@customElement('outline-cta-card')\nexport class OutlineCtaCard extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles, buttonStyles];\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n slots = new SlotsController(this);\n\n /**\n * Whether the card is high contrast.\n */\n @property({ type: Boolean, reflect: true, attribute: 'high-contrast' })\n highContrast = false;\n\n /**\n * Whether the card is a card image.\n */\n @property({ type: Boolean, reflect: true, attribute: 'card-image' })\n cardImage = false;\n\n /**\n * The card background color.\n */\n @property({ type: String, reflect: true, attribute: 'background-color' })\n backgroundColor = 'white-bg';\n\n render(): TemplateResult {\n return html`\n \n
\n ${this.slots.conditionalSlot('image', false)}\n ${this.cardImage\n ? html`
\n ${this.slots.conditionalSlot('icon', false)}\n ${this.slots.conditionalSlot('heading', false)}\n ${this.slots.conditionalSlot('body', false)}\n ${this.slots.conditionalSlot('cta', true)}\n
`\n : html`\n ${this.slots.conditionalSlot('icon', false)}\n ${this.slots.conditionalSlot('heading', false)}\n ${this.slots.conditionalSlot('body', false)}\n ${this.slots.conditionalSlot('cta', true)}\n `}\n
\n \n `;\n }\n}\n","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { LightDomStyles, OutlineElement } from '@phase2/outline-core';\nimport { customElement, query, property } from 'lit/decorators.js';\nimport Splide from '@splidejs/splide';\nimport '../outline-button-baseline/outline-button-baseline';\nimport '../outline-icon-baseline/outline-icon-baseline';\nimport buttonStyles from '../outline-button-baseline/outline-button-baseline.css.lit';\nimport componentStyles from './outline-card-slider.css.lit';\nimport ctaCardStyles from '../outline-cta-card/outline-cta-card.css.lit';\nimport '../outline-cta-card/outline-cta-card';\n\n/**\n * The OutlineCardSlider component.\n *\n * This component is a carousel slider for displaying multiple OutlineCtaCard components.\n *\n * @slot - The default slot accepts one or more OutlineCtaCard components.\n */\n@customElement('outline-card-slider')\nexport class OutlineCardSlider extends OutlineElement {\n static styles: CSSResultGroup = [\n componentStyles,\n buttonStyles,\n ctaCardStyles,\n ];\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n /**\n * Toggle alert open/close\n */\n @property({ type: Boolean, reflect: true, attribute: 'has-title' })\n hasTitle = false;\n\n /**\n * The Splide instance.\n */\n splide: Splide;\n\n /**\n * The element that contains the Splide component.\n */\n @query('.splide')\n splideEl: HTMLElement;\n\n /**\n * The previous slide button.\n */\n @query('.splide__arrow--prev')\n prevBtn: HTMLElement;\n\n /**\n * The next slide button.\n */\n @query('.splide__arrow--next')\n nextBtn: HTMLElement;\n\n /**\n * The mutation observer that watches the light DOM for changes.\n */\n observer: MutationObserver;\n\n connectedCallback() {\n super.connectedCallback();\n\n this.observer = new MutationObserver(() => {\n this.requestUpdate();\n });\n this.observer.observe(this, { childList: true });\n }\n\n disconnectedCallback() {\n this.observer.disconnect();\n }\n\n firstUpdated() {\n const slideLength = this.querySelectorAll('[slot=\"slide\"]').length;\n\n this.splide = new Splide(this.splideEl, {\n perPage: 3,\n breakpoints: {\n 1200: {\n perPage: 2,\n },\n 768: {\n perPage: 1,\n },\n },\n gap: '1rem',\n keyboard: false,\n arrows: slideLength > 1,\n }).mount();\n\n if (slideLength <= 1) return;\n\n // Adds spans to buttons for screen readers.\n this.prevBtn.innerHTML += 'Previous Slide';\n this.nextBtn.innerHTML += 'Next Slide';\n }\n\n render(): TemplateResult {\n return html`\n
\n
\n
\n
\n ${(\n Array.from(\n this.querySelectorAll(`[slot='slide']`)\n ) as HTMLElement[]\n ).map((slideElementLightDOM, index, LightDOMElements) => {\n return html`\n \n ${slideElementLightDOM.cloneNode(true)}\n
\n `;\n })}\n
\n
\n
\n \n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n grid-column:span 12 / span 12;\n display:flex;\n flex-direction:column;\n grid-row:var(--row-span);\n grid-column:var(--col-span-default);\n}\n\n :host([row-span='1']){\n grid-row:span 1 / span 1;\n }\n\n :host([row-span='2']){\n grid-row:span 2 / span 2;\n }\n\n :host([row-span='3']){\n grid-row:span 3 / span 3;\n }\n\n :host([row-span='4']){\n grid-row:span 4 / span 4;\n }\n\n :host([row-span='5']){\n grid-row:span 5 / span 5;\n }\n\n :host([row-span='6']){\n grid-row:span 6 / span 6;\n }\n\n :host([col-span-default='1']){\n grid-column:span 1 / span 1;\n }\n\n :host([col-span-default='2']){\n grid-column:span 2 / span 2;\n }\n\n :host([col-span-default='3']){\n grid-column:span 3 / span 3;\n }\n\n :host([col-span-default='4']){\n grid-column:span 4 / span 4;\n }\n\n :host([col-span-default='5']){\n grid-column:span 5 / span 5;\n }\n\n :host([col-span-default='6']){\n grid-column:span 6 / span 6;\n }\n\n :host([col-span-default='7']){\n grid-column:span 7 / span 7;\n }\n\n :host([col-span-default='8']){\n grid-column:span 8 / span 8;\n }\n\n :host([col-span-default='9']){\n grid-column:span 9 / span 9;\n }\n\n :host([col-span-default='10']){\n grid-column:span 10 / span 10;\n }\n\n :host([col-span-default='11']){\n grid-column:span 11 / span 11;\n }\n\n :host([col-span-default='12']){\n grid-column:span 12 / span 12;\n }\n\n @media (min-width: 640px){\n :host([col-span-sm='1']){\n grid-column:span 1 / span 1;\n }\n\n :host([col-span-sm='2']){\n grid-column:span 2 / span 2;\n }\n\n :host([col-span-sm='3']){\n grid-column:span 3 / span 3;\n }\n\n :host([col-span-sm='4']){\n grid-column:span 4 / span 4;\n }\n\n :host([col-span-sm='5']){\n grid-column:span 5 / span 5;\n }\n\n :host([col-span-sm='6']){\n grid-column:span 6 / span 6;\n }\n\n :host([col-span-sm='7']){\n grid-column:span 7 / span 7;\n }\n\n :host([col-span-sm='8']){\n grid-column:span 8 / span 8;\n }\n\n :host([col-span-sm='9']){\n grid-column:span 9 / span 9;\n }\n\n :host([col-span-sm='10']){\n grid-column:span 10 / span 10;\n }\n\n :host([col-span-sm='11']){\n grid-column:span 11 / span 11;\n }\n\n :host([col-span-sm='12']){\n grid-column:span 12 / span 12;\n }\n }\n\n @media (min-width: 768px){\n :host([col-span-md='1']){\n grid-column:span 1 / span 1;\n }\n\n :host([col-span-md='2']){\n grid-column:span 2 / span 2;\n }\n\n :host([col-span-md='3']){\n grid-column:span 3 / span 3;\n }\n\n :host([col-span-md='4']){\n grid-column:span 4 / span 4;\n }\n\n :host([col-span-md='5']){\n grid-column:span 5 / span 5;\n }\n\n :host([col-span-md='6']){\n grid-column:span 6 / span 6;\n }\n\n :host([col-span-md='7']){\n grid-column:span 7 / span 7;\n }\n\n :host([col-span-md='8']){\n grid-column:span 8 / span 8;\n }\n\n :host([col-span-md='9']){\n grid-column:span 9 / span 9;\n }\n\n :host([col-span-md='10']){\n grid-column:span 10 / span 10;\n }\n\n :host([col-span-md='11']){\n grid-column:span 11 / span 11;\n }\n\n :host([col-span-md='12']){\n grid-column:span 12 / span 12;\n }\n }\n\n :host([border-gap-size=\"small\"]) {\n margin-bottom:1rem;\n}\n\n :host([border-gap-size=\"medium\"]) {\n margin-bottom:2.5rem;\n}\n\n :host([border-gap-size=\"large\"]) {\n margin-bottom:4rem;\n}\n\n @media (min-width: 1024px){\n :host([col-span-lg='1']){\n grid-column:span 1 / span 1;\n }\n\n :host([col-span-lg='2']){\n grid-column:span 2 / span 2;\n }\n\n :host([col-span-lg='3']){\n grid-column:span 3 / span 3;\n }\n\n :host([col-span-lg='4']){\n grid-column:span 4 / span 4;\n }\n\n :host([col-span-lg='5']){\n grid-column:span 5 / span 5;\n }\n\n :host([col-span-lg='6']){\n grid-column:span 6 / span 6;\n }\n\n :host([col-span-lg='7']){\n grid-column:span 7 / span 7;\n }\n\n :host([col-span-lg='8']){\n grid-column:span 8 / span 8;\n }\n\n :host([col-span-lg='9']){\n grid-column:span 9 / span 9;\n }\n\n :host([col-span-lg='10']){\n grid-column:span 10 / span 10;\n }\n\n :host([col-span-lg='11']){\n grid-column:span 11 / span 11;\n }\n\n :host([col-span-lg='12']){\n grid-column:span 12 / span 12;\n }\n }\n\n @media (min-width: 1280px){\n :host([col-span-xl='1']){\n grid-column:span 1 / span 1;\n }\n\n :host([col-span-xl='2']){\n grid-column:span 2 / span 2;\n }\n\n :host([col-span-xl='3']){\n grid-column:span 3 / span 3;\n }\n\n :host([col-span-xl='4']){\n grid-column:span 4 / span 4;\n }\n\n :host([col-span-xl='5']){\n grid-column:span 5 / span 5;\n }\n\n :host([col-span-xl='6']){\n grid-column:span 6 / span 6;\n }\n\n :host([col-span-xl='7']){\n grid-column:span 7 / span 7;\n }\n\n :host([col-span-xl='8']){\n grid-column:span 8 / span 8;\n }\n\n :host([col-span-xl='9']){\n grid-column:span 9 / span 9;\n }\n\n :host([col-span-xl='10']){\n grid-column:span 10 / span 10;\n }\n\n :host([col-span-xl='11']){\n grid-column:span 11 / span 11;\n }\n\n :host([col-span-xl='12']){\n grid-column:span 12 / span 12;\n }\n }\n\n :host([vertical-align='middle']){\n justify-content:center;\n }\n\n :host([vertical-align='bottom']){\n justify-content:flex-end;\n }\n\n :host([horizontal-align='left']){\n align-items:flex-start;\n text-align:left;\n }\n\n :host([horizontal-align='center']){\n align-items:center;\n text-align:center;\n }\n\n :host([horizontal-align='right']){\n align-items:flex-end;\n text-align:right;\n }\n`;","import { OutlineElement } from '@phase2/outline-core';\nimport {\n HorizontalAlignment,\n VerticalAlignment,\n} from '@phase2/outline-core/src/utils/types';\nimport { html, TemplateResult, CSSResultGroup } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-column-baseline.css.lit';\n\ntype colSpanRange = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\ntype rowSpanRange = 1 | 2 | 3 | 4 | 5 | 6;\n\n/**\n * The Baseline Column component\n * @element outline-column-baseline\n *\n * @slot - The default slot for this element.\n */\n@customElement('outline-column-baseline')\nexport class OutlineColumnBaseline extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n /**\n * The number of columns wide this column should be.\n */\n @property({ type: Number, reflect: true, attribute: 'col-span-default' })\n colSpanDefault: colSpanRange = 12;\n\n /**\n * The number of columns wide this column should be on small+ screens.\n */\n @property({ type: Number, reflect: true, attribute: 'col-span-sm' })\n colSpanSm: colSpanRange;\n\n /**\n * The number of columns wide this column should be on medium+ screens.\n */\n @property({ type: Number, reflect: true, attribute: 'col-span-md' })\n colSpanMd: colSpanRange;\n\n /**\n * The number of columns wide this column should be on large+ screens.\n */\n @property({ type: Number, reflect: true, attribute: 'col-span-lg' })\n colSpanLg: colSpanRange;\n\n /**\n * The number of columns wide this column should be on extra large+ screens.\n */\n @property({ type: Number, reflect: true, attribute: 'col-span-xl' })\n colSpanXl: colSpanRange;\n\n /**\n * The number of rows this column will span.\n */\n @property({ type: Number, reflect: true, attribute: 'row-span' })\n rowSpan: rowSpanRange = 1;\n\n /**\n * The vertical placement of content inside of the column.\n */\n @property({ type: String, reflect: true, attribute: 'vertical-align' })\n verticalAlign: VerticalAlignment = 'top';\n\n /**\n * The horizontal placement of content inside of the column.\n */\n @property({ type: String, attribute: 'horizontal-align' })\n horizontalAlign: HorizontalAlignment = 'left';\n\n render(): TemplateResult {\n return html``;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-column-baseline': OutlineColumnBaseline;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:flex;\n flex-direction:column;\n height:100%;\n}\n\noutline-heading-baseline *{\n --heading-color:var(--brand-primary-dark-blue);\n}\n\n.container{\n background-color:var(--brand-gray-200);\n}\n\n.content{\n display:flex;\n flex-direction:column;\n padding:var(--spacing-7);\n height:100%;\n width:100%;\n}\n\n.rule{\n border:solid var(--brand-green-900);\n border-width:8px 0 0;\n height:1px;\n padding:0;\n position:relative;\n text-align:left;\n width:100%;\n margin:10px 0 20px;\n border-radius:3px;\n border-top-width:3px;\n}\n\n.contact-info{\n margin-top:var(--spacing-2);\n margin-bottom:var(--spacing-7);\n}\n\ndiv[slot='phone'],\ndiv[slot='email']{\n color:var(--brand-dark-blue-900);\n font-size:var(--fs-base);\n line-height:2;\n word-break:break-word;\n}\n\ndiv[slot='phone'] a, div[slot='email'] a{\n margin:0 -0.1875rem 0.1875rem;\n padding:0 0.1875rem;\n border-bottom:2px solid var(--brand-dark-blue-900);\n border-top:2px solid transparent;\n transition:background-color 0.425s, border-color 0.425s;\n }\n\ndiv[slot='phone'] a:hover,\n div[slot='phone'] a:focus,\n div[slot='email'] a:hover,\n div[slot='email'] a:focus{\n background-color:var(--brand-green-900);\n }\n\ndiv[slot='phone'] a:focus, div[slot='email'] a:focus{\n background-color:var(--brand-green-900);\n border-top-color:var(--brand-dark-blue-900);\n outline:none;\n }\n\n.cta{\n flex-grow:1;\n display:flex;\n align-items:flex-end;\n}\n\n.btn{\n width:100%;\n justify-content:center;\n}\n\n@media (min-width: 768px){\n\n.btn{\n width:auto;\n justify-content:flex-start\n}\n }\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport {\n LightDomStyles,\n OutlineElement,\n SlotsController,\n} from '@phase2/outline-core';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-contact-card.css.lit';\nimport '../outline-button-baseline/outline-button-baseline';\nimport '../outline-icon-baseline/outline-icon-baseline';\nimport buttonStyles from '../outline-button-baseline/outline-button-baseline.css.lit';\n\n/**\n * The OutlineContactCard component\n * @element outline-contact-card\n */\n@customElement('outline-contact-card')\nexport class OutlineContactCard extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles, buttonStyles];\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n slots = new SlotsController(this);\n\n render(): TemplateResult {\n return html`\n
\n
\n ${this.slots.conditionalSlot('name', false)}\n
\n ${this.slots.conditionalSlot('title', false)}\n
\n ${this.slots.conditionalSlot('phone', false)}\n ${this.slots.conditionalSlot('email', false)}\n
\n ${this.slots.conditionalSlot('cta', false)}\n
\n
\n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --grid-wrapper-display:block;\n}\n`;","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:block;\n position:relative;\n\n --grid-wrapper-display:grid;\n\n --gap-xs:var(--spacing-4);\n --gap-sm:var(--spacing-7);\n --gap-md:calc(var(--gap-sm) * 2);\n\n --padding-x:1rem;\n\n --padding-y-xs:clamp(\n 0.5rem,\n 0.8571428571428571rem + 0.8571428571428571vw,\n 1.2rem\n );\n\n --padding-y-sm:clamp(1rem, 1.2rem + 1.7vw, 2.4rem);\n\n --padding-y-md:clamp(\n 2.5rem,\n 2.142857142857143rem + 4.285714285714286vw,\n 5rem\n );\n\n --padding-y-lg:clamp(\n 3.5rem,\n 2.5714285714285716rem + 7.142857142857142vw,\n 8rem\n );\n}\n\n :host .grid-wrapper{\n margin:0 auto;\n display:var(--grid-wrapper-display);\n grid-template-columns:repeat(12, minmax(0, 1fr));\n position:relative;\n }\n\n:host([background-color='blue']){\n background-color:var(--brand-primary-dark-blue);\n color:var(--brand-gray-100);\n}\n\n:host([background-color='transparent']){\n background-color:transparent;\n}\n\n:host([background-color='white']){\n background-color:var(--brand-gray-100);\n}\n\n:host([background-color='gray']){\n background-color:var(--brand-gray-200);\n}\n\n:host([x-padding='true']){\n padding-left:var(--padding-x);\n padding-right:var(--padding-x);\n}\n\n.max-w-small{\n max-width:var(--max-w-small);\n}\n\n.max-w-medium{\n max-width:var(--max-w-medium);\n}\n\n.max-w-none{\n max-width:var(--max-w-none);\n margin-left:auto;\n margin-right:auto;\n}\n\n.max-w-limit{\n max-width:var(--max-w-limit);\n margin-left:auto;\n margin-right:auto;\n}\n\n@media (min-width: 768px){\n .max-w-small{\n width:var(--w-percent-small);\n }\n\n .max-w-medium{\n width:var(--w-percent-medium);\n }\n}\n\n.y-padding-none{\n padding-top:0;\n padding-bottom:0;\n}\n\n.y-padding-extra-small{\n padding-top:var(--padding-y-xs);\n padding-bottom:var(--padding-y-xs);\n}\n\n.y-padding-small{\n padding-top:var(--padding-y-sm);\n padding-bottom:var(--padding-y-sm);\n}\n\n.y-padding-medium{\n padding-top:var(--padding-y-md);\n padding-bottom:var(--padding-y-md);\n}\n\n.y-padding-large{\n padding-top:var(--padding-y-lg);\n padding-bottom:var(--padding-y-lg);\n}\n\n.gap-extra-small{\n gap:var(--gap-xs) 0;\n}\n\n.gap-small{\n gap:var(--gap-sm) 0;\n}\n\n.gap-medium{\n gap:var(--gap-md) 0;\n}\n\n@media (min-width: 768px){\n .gap-extra-small{\n gap:var(--gap-xs);\n }\n\n .gap-small{\n gap:var(--gap-sm);\n }\n\n .gap-medium{\n gap:var(--gap-md);\n }\n}\n`;","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host([background-color='blue']) outline-styled-text-baseline{\n --grid-dark-theme-text-color:var(--brand-gray-100);\n --quote-text-color:var(--grid-dark-theme-text-color);\n --quote-icon-border-color:var(--grid-dark-theme-text-color);\n --link-background-color-default:var(--grid-dark-theme-text-color);\n --list-marker-color:var(--grid-dark-theme-text-color);\n --quote-icon-background-color:transparent;\n --workday-body-color:var(--brand-gray-100);\n\n --heading-color:var(--brand-gray-100);\n --body-color:var(--brand-gray-100);\n}\n:host([background-color='blue']) outline-heading-baseline{\n --heading-color:var(--brand-gray-100);\n}\n:host([has-border-bottom='true']){\n border-bottom:2px solid var(--brand-gray-400);\n}\n.background-color-blue{\n color:var(--grid-dark-theme-text-color);\n}\noutline-column-baseline > .block,\noutline-column-baseline > div{\n width:100%;\n margin-bottom:var(--spacing-7);\n}\noutline-column-baseline > .block:last-child, outline-column-baseline > div:last-child{\n margin-bottom:0;\n }\noutline-column-baseline .full-height{\n height:100%;\n}\n:host([equal-heights='true']) .height-grow{\n height:100%;\n display:flex;\n}\n:host([equal-heights='true']) .height-grow > *{\n flex-grow:1;\n}\n:host([background-svg='true']){\n background-image:url('data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiBpY29uLWJyYW5kLXEiIGZvY3VzYWJsZT0iZmFsc2UiIHZpZXdCb3g9IjAgMCAzOSAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBjbGFzcz0ic3ZnLWNzcC0xMjgiIGQ9Ik0xOC42MzMgMjkuMTMzYy03LjU2Ny0zLjg2Ny0xMS42MzMtMy41MzMtMTYuMy0wLjczMyAzLjczMy00LjgzMyAxMS4xLTUuNDMzIDE4LjctMS40IDYuOCAzLjUgMTQuMDMzIDMgMTcuNjMzIDEuMS02LjQzMyA3LjEtMTYuOTMzIDIuNjY3LTIwLjAzMyAxLjAzM3oiIGZpbGw9IiMwMGEzZTAiPiAgIDwvcGF0aD4gICA8cGF0aCBjbGFzcz0ic3ZnLWNzcC0xMjkiIGQ9Ik0yMS4wNjcgMTEuODMzYzAtNC45MzMtMy43MzMtOS4xLTkuMDY3LTkuMXMtOS4wNjcgNC4xNjctOS4wNjcgOS4xYzAgNS4xMzMgNC4xNjcgOS4xIDkuMDY3IDkuMXM5LjA2Ny0zLjk2NyA5LjA2Ny05LjF6TTI0IDExLjgzM2MwIDYuNzMzLTUuMzY3IDExLjgzMy0xMiAxMS44MzNzLTEyLTUuMS0xMi0xMS44MzNjMC02LjUgNS40MzMtMTEuODMzIDEyLTExLjgzM3MxMiA1LjMzMyAxMiAxMS44MzN2MHoiIGZpbGw9IiMwMGEzZTAiPjwvcGF0aD4KPC9zdmc+Cg==');\n background-size:290%;\n background-repeat:no-repeat;\n background-position:-24% 86%;\n}\n@media (min-width: 1024px){\n:host([background-svg='true']){\n background-position:-53% 86%;\n background-size:200%\n}\n }\n`;","import { LightDomStyles, OutlineElement } from '@phase2/outline-core';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { html, TemplateResult, CSSResultGroup } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-grid-baseline.css.lit';\nimport componentStylesLightDom from './baseline-grid-light-dom.css.lit';\n\n/**\n * The Grid component\n * @slot - The default, and only slot for this element.\n */\n@customElement('outline-grid-baseline')\nexport class OutlineGridBaseline extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n [componentStylesLightDom],\n this.tagName.toLowerCase()\n );\n\n /**\n * The background-color.\n */\n @property({\n type: String,\n reflect: true,\n attribute: 'background-color',\n })\n backgroundColor: 'white' | 'gray' | 'blue' | 'transparent' = 'transparent';\n\n /**\n * Whether or not this is a full bleed container.\n */\n @property({\n type: String,\n reflect: true,\n attribute: 'content-max-width',\n })\n contentMaxWidth: 'small' | 'medium' | 'none' | 'limit' = 'medium';\n\n /**\n * How much of a gap should exist between columns? (This affects both the vertical and horizontal column/row gaps.)\n */\n @property({\n type: String,\n reflect: true,\n attribute: 'gap-size',\n })\n gapSize: 'small' | 'medium' | 'extra-small' | 'none' = 'small';\n\n /**\n * Whether or not this container has top/bottom padding.\n */\n @property({\n type: String,\n reflect: true,\n attribute: 'y-padding',\n })\n yPadding: 'small' | 'extra-small' | 'medium' | 'large' | 'none';\n\n /**\n * Whether or not this container has top/bottom padding.\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'x-padding',\n })\n xPadding: boolean;\n\n /**\n * Whether or not the grid components should be equal heights.\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'equal-heights',\n })\n equalHeights: boolean;\n\n /**\n * Whether or not the grid background should have a border.\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'has-border-bottom',\n })\n hasBorderBottom: boolean;\n\n /**\n * Whether or not the grid background should be an SVG background.\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'background-svg',\n })\n backgroundSvg: boolean;\n\n render(): TemplateResult {\n const gridClasses = {\n [`background-color-${this.backgroundColor}`]: true,\n 'grid-wrapper': true,\n [`gap-${this.gapSize}`]: true,\n [`max-w-${this.contentMaxWidth}`]: true,\n [`y-padding-${this.yPadding}`]: true,\n 'background-svg': this.backgroundSvg,\n };\n\n return html`\n
\n \n
\n `;\n }\n}\n","import { CSSResultGroup } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-container-baseline.css.lit';\nimport { OutlineGridBaseline } from '../outline-grid-baseline/outline-grid-baseline';\n\n/**\n * The Baseline Container component\n * @slot - The default, and only slot for this element.\n */\n@customElement('outline-container-baseline')\nexport class OutlineContainerBaseline extends OutlineGridBaseline {\n static styles: CSSResultGroup = [OutlineGridBaseline.styles, componentStyles];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-container-baseline': OutlineContainerBaseline;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n box-sizing:border-box;\n display:inline-flex;\n}\n:host *,\n:host *::before,\n:host *::after{\n box-sizing:inherit;\n}\n:host([aria-hidden='true']),\n[aria-hidden='true'],\n.visually-hidden{\n position:absolute !important;\n overflow:hidden;\n clip:rect(1px, 1px, 1px, 1px);\n width:1px;\n height:1px;\n word-wrap:normal;\n}\n.sr-only{\n position:absolute !important;\n overflow:hidden;\n clip:rect(1px, 1px, 1px, 1px);\n width:1px;\n height:1px;\n word-wrap:normal;\n}\n.dropdown{\n display:flex;\n position:relative;\n}\n.dropdown--open .dropdown__panel{\n margin:0;\n position:absolute;\n z-index:50;\n min-width:100%;\n background-color:var(--outline-white);\n color:var(--outline-black);\n pointer-events:all;\n box-shadow:0 10px 20px rgba(0, 0, 0, 0.1), 0 6px 6px rgba(0, 0, 0, 0.1);\n border-radius:0 0 0.4rem 0.4rem;\n}\nli{\n position:relative;\n padding:var(--spacing-2) var(--spacing-4);\n transition:all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color:var(--brand-dark-blue-900);\n}\nli:last-child{\n border-radius:0 0 0.4rem 0.4rem;\n }\nli:not(:first-child)::before{\n content:'';\n position:absolute;\n top:0;\n left:0;\n width:100%;\n height:3px;\n background-color:var(--brand-gray-400);\n transition:background-color 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\nli:not(:first-child):hover::before{\n background-color:var(--brand-dark-blue-900);\n }\nli:hover{\n background-color:var(--brand-dark-blue-900);\n color:var(--outline-white);\n }\nli a{\n white-space:nowrap;\n font-family:var(--ff-display);\n }\n.mobile{\n width:100%;\n}\n.dropdown__trigger,\noutline-button-baseline{\n width:100%;\n}\n`;","import { html, CSSResultGroup, TemplateResult } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport {\n OutlineElement,\n SlotsController,\n MobileController,\n emit,\n waitForEvent,\n watch,\n LightDomStyles,\n} from '@phase2/outline-core';\nimport outlineButtonBaselineCssLit from '../outline-button-baseline/outline-button-baseline.css.lit';\n\nimport componentStyles from './outline-dropdown-baseline.css.lit';\n\n/**\n * @element outline-dropdown-baseline\n * @since 1.0.0\n * @status experimental\n *\n * @slot header - Content to be rendered in the header of the dropdown.\n * @slot dropdown - Content to be rendered in the dropdown.\n * @slot footer - Content to be rendered in the footer of the dropdown.\n *\n * @event outline-show - Emitted when the dropdown opens.\n * @event outline-after-show - Emitted after the dropdown opens and all animations are complete.\n * @event outline-hide - Emitted when the dropdown closes.\n * @event outline-after-hide - Emitted after the dropdown closes and all animations are complete.\n *\n * @csspart base - The component's base wrapper.\n * @csspart trigger - The container that wraps the trigger.\n * @csspart panel - The panel that gets shown when the dropdown is open.\n */\ntype ButtonVariant = 'link' | 'primary' | 'secondary' | 'dropdown';\n\n@customElement('outline-dropdown-baseline')\nexport class OutlineDropdownBaseline extends OutlineElement {\n static styles: CSSResultGroup = [\n componentStyles,\n outlineButtonBaselineCssLit,\n ];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n private mobileController = new MobileController(this, 'lg');\n slots = new SlotsController(this);\n\n @query('.dropdown__trigger')\n trigger: HTMLElement;\n\n @query('.dropdown__panel')\n panel: HTMLElement;\n\n /**\n * Indicates whether or not the dropdown is open.\n * You can use this in lieu of the show/hide methods.\n */\n @property({ type: Boolean, reflect: true, attribute: 'is-open' })\n isOpen = false;\n\n /**\n * Disables the dropdown so the panel will not open.\n */\n @property({ type: Boolean, attribute: 'is-disabled' })\n isDisabled = false;\n\n /**\n * The dropdown will close when the user interacts outside of this element (e.g. clicking).\n */\n @property({ attribute: false })\n containingElement?: HTMLElement;\n\n /**\n * Visible text for the button/link of the trigger element.\n */\n @property({ type: String, attribute: 'trigger-text' })\n triggerText: string;\n\n /**\n * ARIA label attribute to pass down to the resulting button or a\n * element. This is required for accessibility if we use a button\n * with an icon only.\n */\n @property({ type: String, attribute: 'trigger-label' })\n triggerLabel: string;\n\n /**\n * The button style variant to use.\n */\n @property({ type: String, attribute: 'trigger-variant' })\n triggerVariant: ButtonVariant = 'dropdown';\n\n @state() hasDropdown: boolean;\n\n connectedCallback() {\n super.connectedCallback();\n this.hasDropdown = Boolean(this.slots.exist('dropdown'));\n\n if (!this.containingElement) {\n this.containingElement = this;\n }\n }\n\n updated() {\n this.style.display = this.mobileController.isMobile\n ? 'flex'\n : 'inline-flex';\n\n if (this.panel) {\n this.panel.hidden = !this.isOpen;\n }\n }\n\n disconnectedCallback() {\n this.hide();\n }\n\n /**\n * Shows the dropdown panel.\n */\n async show() {\n // If the dropdown is already open, do nothing.\n // If the dropdown is disabled, do nothing.\n if (this.isOpen || this.isDisabled) {\n return undefined;\n }\n\n if (this.panel) {\n this.panel.hidden = false;\n }\n\n this.isOpen = true;\n return waitForEvent(this, 'outline-after-show');\n }\n\n /**\n * Hides the dropdown panel.\n */\n async hide() {\n if (!this.isOpen) {\n return undefined;\n }\n if (this.panel) {\n this.panel.hidden = true;\n }\n this.isOpen = false;\n return waitForEvent(this, 'outline-after-hide');\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.isDisabled) {\n this.isOpen = false;\n return;\n }\n if (this.isOpen) {\n // Show the panel.\n emit(this, 'outline-show');\n emit(this, 'outline-after-show');\n } else {\n // Hide the panel.\n emit(this, 'outline-hide');\n emit(this, 'outline-after-hide');\n }\n }\n\n handleDocumentMouseDown(event: MouseEvent) {\n // Close when clicking outside of the containing element\n const path = event.composedPath();\n if (this.containingElement && !path.includes(this.containingElement)) {\n this.hide();\n }\n }\n\n handleEscKeyDown(event: KeyboardEvent) {\n // @todo: This isn't working right now.\n // Close when escape is pressed.\n if (event.key === 'Escape') {\n this.hide();\n this.focusOnTrigger();\n return;\n }\n }\n\n handleFocusChange() {\n setTimeout(() => {\n const activeElement =\n this.containingElement?.getRootNode() instanceof ShadowRoot\n ? document.activeElement?.shadowRoot?.activeElement\n : document.activeElement;\n\n if (\n !this.containingElement ||\n activeElement?.closest(this.containingElement.tagName.toLowerCase()) !==\n this.containingElement\n ) {\n this.hide();\n }\n });\n }\n\n handleIconClick(event: MouseEvent) {\n event.preventDefault();\n this.isOpen ? this.hide() : this.show();\n }\n\n handleEnterKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n if (this.isDisabled) {\n // Prevent a link from being followed.\n // Prevent the dropdown from opening.\n event.preventDefault();\n return;\n }\n }\n }\n\n focusOnTrigger() {\n const splitButton: HTMLElement | null = this.trigger.querySelector(\n 'outline-split-button'\n );\n\n const regularButton: HTMLElement | null =\n this.trigger.querySelector('outline-button');\n\n if (splitButton && typeof splitButton?.focus === 'function') {\n splitButton?.querySelector('button')?.focus();\n }\n\n if (regularButton && typeof regularButton?.focus === 'function') {\n regularButton?.shadowRoot?.querySelector('button')?.focus();\n }\n }\n\n handlePanelKeystrokes(event: KeyboardEvent) {\n this.handleEscKeyDown(event);\n this.handleFocusChange();\n }\n\n handleIconTrigger(event: KeyboardEvent) {\n this.handleEnterKeyDown(event);\n this.handleEscKeyDown(event);\n }\n\n handleButtonTrigger(event: KeyboardEvent) {\n this.handleEnterKeyDown(event);\n this.handleEscKeyDown(event);\n this.handleFocusChange();\n }\n\n /**\n * @returns {TemplateResult}\n */\n render(): TemplateResult {\n return html`\n \n \n ${this.buttonTemplate()} ${this.dropdownTemplate()}\n \n \n `;\n }\n\n /**\n * Template partial for the \"button\" rendering.\n * @returns TemplateResult | null\n */\n buttonTemplate(): TemplateResult | null {\n return html`\n \n \n ${this.triggerText}\n
\n \n \n \n
\n \n
\n `;\n }\n\n /**\n * Template partial for the dropdown rendering.\n * @returns TemplateResult | null\n */\n dropdownTemplate(): TemplateResult | null {\n if (!this.hasDropdown) return null;\n\n return html`\n \n \n \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-dropdown-baseline': OutlineDropdownBaseline;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:flex;\n flex-direction:column;\n flex:1;\n width:100%;\n}\n\noutline-styled-text-baseline{\n --body-color:var(--brand-white);\n}\n\n.emergency-alert-button{\n display:flex;\n flex:1;\n justify-content:space-between;\n align-items:center;\n background-color:var(--brand-red-700);\n padding-block:var(--spacing-6);\n padding-inline:calc(5% - 0.5rem);\n color:var(--brand-white);\n border:none;\n}\n\n.emergency-alert-button .toggle-icon{\n transition:transform 0.2125s ease;\n }\n\n.emergency-alert-button:hover .toggle-icon{\n transform:scale(1.2);\n }\n\n.emergency-alert-button:focus{\n outline:none;\n }\n\n.emergency-alert-button:focus-visible{\n outline:2px solid var(--brand-white);\n outline-offset:-4px;\n z-index:99;\n }\n\n.emergency-alert-content{\n display:flex;\n max-height:0;\n flex:1;\n overflow:hidden;\n flex-direction:column;\n background-color:var(--brand-red-700);\n padding:0;\n color:var(--brand-white);\n gap:var(--spacing-6);\n transition:all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n padding-right:calc(10% - 1rem);\n}\n\n.emergency-alert-content.open{\n padding-bottom:var(--spacing-6);\n padding-inline:calc(5% - 0.5rem);\n }\n\n.title-container{\n display:inline-flex;\n align-items:center;\n gap:var(--spacing-4);\n}\n\n.btn{\n --outline-button--primary-bg-color--computed:var(--brand-white);\n --outline-button--primary-bg-color-focus--computed:var(--brand-white);\n --outline-button--primary-color--computed:black;\n --outline-button--primary-color-focus--computed:black;\n --outline-button--secondary-bg-color--computed:var(--brand-white);\n --outline-button--secondary-bg-color-focus--computed:var(--brand-white);\n --outline-button--secondary-color--computed:black;\n --outline-button--secondary-color-focus--computed:black;\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport {\n LightDomStyles,\n OutlineElement,\n SlotsController,\n} from '@phase2/outline-core';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-emergency-alert.css.lit';\nimport '../outline-button-baseline/outline-button-baseline';\nimport '../outline-icon-baseline/outline-icon-baseline';\n\n/**\n * The OutlineEmergencyAlert component\n * @element outline-emergency-alert\n */\n@customElement('outline-emergency-alert')\nexport class OutlineEmergencyAlert extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n /**\n * Toggle alert open/close\n */\n @property({ type: Boolean, reflect: true, attribute: 'is-open' })\n isOpen = false;\n\n /**\n * Alert background color\n */\n @property({ type: String, reflect: true, attribute: 'background-color' })\n backgroundColor = 'brand-red-700';\n\n /**\n * Alert icon\n */\n @property({ type: String, reflect: true, attribute: 'icon' })\n icon = 'eu-alert';\n\n slots = new SlotsController(this);\n\n // For use in toggleOpen function. Used so height of content can be set in rem and not px.\n convertPixelsToRem(px: number) {\n return px / parseFloat(getComputedStyle(document.documentElement).fontSize);\n }\n\n toggleOpen() {\n this.isOpen = !this.isOpen;\n this.updateComplete.then(() => {\n const contentElement: HTMLElement | null | undefined =\n this.shadowRoot?.querySelector('.emergency-alert-content');\n const bodySlot = this.querySelector('[slot=\"body\"]');\n const ctaSlot = this.querySelector('[slot=\"cta\"]');\n if (this.isOpen) {\n const height = contentElement?.scrollHeight;\n if (height) {\n // Sets height (plus padding) in rem\n contentElement.style.setProperty(\n 'max-height',\n `${this.convertPixelsToRem(height) + 3}rem`\n );\n }\n // Remove 'inert' when content is open\n if (bodySlot) bodySlot.removeAttribute('inert');\n if (ctaSlot) ctaSlot.removeAttribute('inert');\n } else {\n if (contentElement)\n contentElement.style.setProperty('max-height', '0px');\n if (bodySlot) bodySlot.setAttribute('inert', '');\n if (ctaSlot) ctaSlot.setAttribute('inert', '');\n }\n });\n }\n\n render(): TemplateResult {\n return html`\n \n
\n \n \n
\n \n \n \n ${this.slots.conditionalSlot('body', false)}\n ${this.slots.conditionalSlot('cta', false)}\n \n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\noutline-styled-text-baseline{\n --body-color:var(--brand-white);\n}\n\n.emergency-takeover-wrapper{\n height:100vh;\n width:100%;\n position:fixed;\n z-index:9999;\n inset:0;\n}\n\n.emergency-takeover-container{\n height:100%;\n width:100%;\n display:flex;\n flex-direction:column;\n position:relative;\n padding:var(--spacing-4);\n padding-top:var(--spacing-24);\n}\n\n@media (min-width: 768px){\n\n.emergency-takeover-container{\n justify-content:center;\n padding-top:var(--spacing-4);\n}\n }\n\n.emergency-takeover-container{\n background-color:var(--brand-dark-blue-900);\n color:var(--brand-white);\n}\n\n.emergency-takeover-content{\n display:flex;\n flex-direction:column;\n color:var(--brand-white);\n}\n\n.emergency-takeover-close{\n position:absolute;\n top:var(--spacing-12);\n right:var(--spacing-8);\n display:flex;\n justify-content:center;\n border-radius:4px;\n align-items:center;\n width:32px;\n height:32px;\n color:var(--brand-dark-blue-900);\n background-color:var(--brand-bright-blue-900);\n border:none;\n transition:transform 0.25s ease;\n}\n\n.emergency-takeover-close:focus{\n outline:2px solid var(--brand-white);\n offset:2px;\n }\n\n.emergency-takeover-close:hover{\n transform:scale(1.15);\n }\n\n.emergency-takeover-icon{\n color:var(--brand-white);\n margin-bottom:var(--spacing-4);\n}\n\noutline-heading-baseline[ruled]::after{\n border:solid var(--brand-red-700);\n border-width:8px 0 0;\n}\n\ndiv[slot='body']{\n margin-bottom:var(--spacing-6);\n}\n\n.btn{\n width:100%;\n justify-content:center;\n}\n\n@media (min-width: 768px){\n\n.btn{\n width:auto;\n justify-content:flex-start\n}\n }\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport {\n OutlineElement,\n SlotsController,\n LightDomStyles,\n} from '@phase2/outline-core';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-emergency-takeover.css.lit';\nimport '../outline-icon-baseline/outline-icon-baseline';\nimport '../outline-container-baseline/outline-container-baseline';\n\n/**\n * The OutlineEmergencyTakeover component\n * @element outline-emergency-takeover\n */\n@customElement('outline-emergency-takeover')\nexport class OutlineEmergencyTakeover extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n /**\n * Determines weather the takeover is open or not\n */\n @property({ type: Boolean, reflect: true, attribute: 'is-open' })\n isOpen = true;\n\n /**\n * Alert background color\n */\n @property({ type: String, reflect: true, attribute: 'background-color' })\n backgroundColor = 'brand-dark-blue-900';\n\n /**\n * Alert icon\n */\n @property({ type: String, reflect: true, attribute: 'icon' })\n icon = 'eu-alert';\n\n close() {\n this.isOpen = false;\n }\n\n slots = new SlotsController(this);\n\n render(): TemplateResult | null {\n if (!this.isOpen) return null;\n\n return html`\n
\n \n ${this.querySelector('[slot=\"close-button\"]') !== null\n ? html` `\n : html`\n \n \n \n `}\n \n
\n \n \n ${this.slots.conditionalSlot('title', false)}\n ${this.slots.conditionalSlot('body', false)}\n ${this.slots.conditionalSlot('cta', false)}\n
\n
\n
\n \n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:flex;\n flex:1;\n height:100%;\n}\n\n.event-card{\n display:flex;\n flex-direction:column;\n flex-grow:1;\n flex-shrink:0;\n font-family:var(--ff-display);\n background-color:var(--brand-dark-blue-900);\n background-image:linear-gradient(\n 137.77deg,\n rgba(4, 30, 74, 0) 50%,\n rgba(141, 200, 232, 0.1)\n );\n box-shadow:0 0 40px 5px rgba(4, 30, 74, 0.1);\n position:relative;\n width:100%;\n height:100%;\n z-index:1;\n cursor:pointer;\n transition:transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n}\n\n.event-card:hover{\n transform:translateY(-10px);\n box-shadow:0 10px 20px 2px rgba(4, 30, 74, 0.6);\n }\n\n.event-card .content{\n display:flex;\n flex-direction:column;\n justify-content:start;\n padding:var(--spacing-5);\n }\n\n@media (min-width: 1024px){\n\n.event-card .content{\n padding:var(--spacing-8)\n }\n }\n\n.event-card .date,\n .event-card .time,\n .event-card .location{\n color:var(--outline-white);\n display:block;\n }\n\n.event-card .date{\n font-family:var(--ff-bold);\n font-size:var(--fs-lg);\n line-height:calc(40 / 18);\n }\n\n.event-card .time,\n .event-card .location{\n font-family:var(--ff-italic);\n font-size:var(--fs-base);\n line-height:calc(24 / 16);\n font-family:var(--ff-display);\n }\n\n.event-card .title{\n --heading-color:var(--brand-white);\n\n margin-bottom:12px;\n margin-top:-6px;\n font-size:var(--fs-h3-small);\n line-height:var(--lh-h3-medium);\n }\n\n@media (min-width: 1024px){\n\n.event-card .title{\n font-size:var(--fs-h3);\n line-height:var(--lh-h2-small)\n }\n }\n\n.event-card .title a,\n .event-card .title a:visited,\n .event-card .title a:hover,\n .event-card .title a:focus,\n .event-card .title a:active{\n color:var(--outline-white);\n }\n\n.event-card .rule{\n border:solid var(--brand-green-900);\n border-width:8px 0 0;\n display:block;\n height:1px;\n padding:0;\n position:relative;\n text-align:left;\n width:100%;\n margin:10px 0 20px;\n border-radius:3px;\n border-top-width:3px;\n max-width:905px;\n }\n\n.event-card .cta{\n flex-grow:1;\n display:flex;\n align-items:flex-end;\n margin-top:var(--spacing-3);\n }\n\nimg{\n max-width:100%;\n vertical-align:middle;\n object-fit:cover;\n}\n`;","var img = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABoAAAATgCAYAAADXMIDBAABW00lEQVR4AezdXW+bZ37n8f/ukGOLrkmEkSUwQiQZklEZCbsbAWsDhU/6Ovd4X8O+gTmZOcgAzQBjbC2MLUMRLCsKpNRyUmmw9UXbjeMHiaR4P/C6Px9AaPqANLGkg/Lb3//6b//7//zf/x8AAAAAAABk478HAAAAAAAAWRGAAAAAAAAAMiMAAQAAAAAAZEYAAgAAAAAAyIwABAAAAAAAkBkBCAAAAAAAIDMCEAAAAAAAQGYEIAAAAAAAgMwIQAAAAAAAAJkRgAAAAAAAADIjAAEAAAAAAGRGAAIAAAAAAMiMAAQAAAAAAJAZAQgAAAAAACAzAhAAAAAAAEBmBCAAAAAAAIDMCEAAAAAAAACZEYAAAAAAAAAyIwABAAAAAABkRgACAAAAAADIjAAEAAAAAACQGQEIAAAAAAAgMwIQAAAAAABAZgQgAAAAAACAzAhAAAAAAAAAmRGAAAAAAAAAMiMAAQAAAAAAZEYAAgAAAAAAyIwABAAAAAAAkBkBCAAAAAAAIDMCEAAAAAAAQGYEIAAAAAAAgMwIQAAAAAAAAJkRgAAAAAAAADIjAAEAAAAAAGRGAAIAAAAAAMiMAAQAAAAAAJAZAQgAAAAAACAzAhAAAAAAAEBmBCAAAAAAAIDMCEAAAAAAAACZEYAAAAAAAAAyIwABAAAAAABkRgACAAAAAADIjAAEAAAAAACQGQEIAAAAAAAgMwIQAAAAAABAZgQgAAAAAACAzAhAAAAAAAAAmRGAAAAAAAAAMiMAAQAAAAAAZEYAAgAAAAAAyIwABAAAAAAAkBkBCAAAAAAAIDMCEAAAAAAAQGYEIAAAAAAAgMwIQAAAAAAAAJkRgAAAAAAAADIjAAEAAAAAAGRGAAIAAAAAAMiMAAQAAAAAAJAZAQgAAAAAACAzAhAAAAAAAEBmBCAAAAAAAIDMCEAAAAAAAACZEYAAAAAAAAAyIwABAAAAAABkRgACAAAAAADIjAAEAAAAAACQGQEIAAAAAAAgMwIQAAAAAABAZgQgAAAAAACAzAhAAAAAAAAAmRGAAAAAAAAAMiMAAQAAAAAAZEYAAgAAAAAAyIwABAAAAAAAkBkBCAAAAAAAIDMCEAAAAAAAQGYEIAAAAAAAgMwIQAAAAAAAAJkRgAAAAAAAADIjAAEAAAAAAGRGAAIAAAAAAMiMAAQAAAAAAJAZAQgAAAAAACAzAhAAAAAAAEBmBCAAAAAAAIDMCEAAAAAAAACZEYAAAAAAAAAyIwABAAAAAABkRgACAAAAAADIjAAEAAAAAACQGQEIAAAAAAAgMwIQAAAAAABAZgQgAAAAAACAzAhAAAAAAAAAmRGAAAAAAAAAMiMAAQAAAAAAZEYAAgAAAAAAyIwABAAAAAAAkBkBCAAAAAAAIDMCEAAAAAAAQGYEIAAAAAAAgMwIQAAAAAAAAJkRgAAAAAAAADIjAAEAAAAAAGRGAAIAAAAAAMiMAAQAAAAAAJAZAQgAAAAAACAzAhAAAAAAAEBmBCAAAAAAAIDMCEAAAAAAAACZEYAAAAAAAAAyIwABAAAAAABkRgACAAAAAADIjAAEAAAAAACQGQEIAAAAAAAgMwIQAAAAAABAZgQgAAAAAACAzAhAAAAAAAAAmRGAAAAAAAAAMiMAAQAAAAAAZEYAAgAAAAAAyIwABAAAAAAAkBkBCAAAAAAAIDMCEAAAAAAAQGYEIAAAAAAAgMwIQAAAAAAAAJkRgAAAAAAAADIjAAEAAAAAAGRGAAIAAAAAAMiMAAQAAAAAAJAZAQgAAAAAACAzAhAAAAAAAEBmBCAAAAAAAIDMCEAAAAAAAACZEYAAAAAAAAAyIwABAAAAAABkRgACAAAAAADIjAAEAAAAAACQGQEIAAAAAAAgMwIQAAAAAABAZgQgAAAAAACAzAhAAAAAAAAAmRGAAAAAAAAAMiMAAQAAAAAAZEYAAgAAAAAAyIwABAAAAAAAkBkBCAAAAAAAIDMCEAAAAAAAQGYEIAAAAAAAgMwIQAAAAAAAAJkRgAAAAAAAADIjAAEAAAAAAGRGAAIAAAAAAMiMAAQAAAAAAJAZAQgAAAAAACAzAhAAAAAAAEBmBCAAAAAAAIDMCEAAAAAAAACZEYAAAAAAAAAyIwABAAAAAABkRgACAAAAAADIjAAEAAAAAACQGQEIAAAAAAAgMwIQAAAAAABAZgQgAAAAAACAzAhAAAAAAAAAmRGAAAAAAAAAMiMAAQAAAAAAZEYAAgAAAAAAyIwABAAAAAAAkBkBCAAAAAAAIDMCEAAAAAAAQGYEIAAAAAAAgMwIQAAAAAAAAJkRgAAAAAAAADIjAAEAAAAAAGRGAAIAAAAAAMiMAAQAAAAAAJAZAQgAAAAAACAzAhAAAAAAAEBmBCAAAAAAAIDMCEAAAAAAAACZEYAAAAAAAAAyIwABAAAAAABkRgACAAAAAADIjAAEAAAAAACQGQEIAAAAAAAgMwIQAAAAAABAZgQgAAAAAACAzAhAAAAAAAAAmRGAAAAAAAAAMiMAAQAAAAAAZEYAAgAAAAAAyIwABAAAAAAAkBkBCAAAAAAAIDMCEAAAAAAAQGYEIAAAAAAAgMwIQAAAAAAAAJkRgAAAAAAAADIjAAEAAAAAAGRGAAIAAAAAAMiMAAQAAAAAAJAZAQgAAAAAACAzAhAAAAAAAEBmBCAAAAAAAIDMCEAAAAAAAACZEYAAAAAAAAAyIwABAAAAAABkRgACAAAAAADIjAAEAAAAAACQGQEIAAAAAAAgMwIQAAAAAABAZgQgAAAAAACAzAhAAAAAAAAAmRGAAAAAAAAAMiMAAQAAAAAAZEYAAgAAAAAAyIwABAAAAAAAkBkBCAAAAAAAIDMCEAAAAAAAQGYEIAAAAAAAgMwIQAAAAAAAAJkRgAAAAAAAADIjAAEAAAAAAGRGAAIAAAAAAMiMAAQAAAAAAJAZAQgAAAAAACAzAhAAAAAAAEBmBCAAAAAAAIDMCEAAAAAAAACZEYAAAAAAAAAyIwABAAAAAABkRgACAAAAAADIjAAEAAAAAACQGQEIAAAAAAAgMwIQAAAAAABAZgQgAAAAAACAzAhAAAAAAAAAmRGAAAAAAAAAMiMAAQAAAAAAZEYAAgAAAAAAyIwABAAAAAAAkBkBCAAAAAAAIDMCEAAAAAAAQGYEIAAAAAAAgMwIQAAAAAAAAJkRgAAAAAAAADIjAAEAAAAAAGRGAAIAAAAAAMiMAAQAAAAAAJAZAQgAAAAAACAzAhAAAAAAAEBmBCAAAAAAAIDMCEAAAAAAAACZEYAAAAAAAAAyIwABAAAAAABkRgACAAAAAADIjAAEAAAAAACQGQEIAAAAAAAgMwIQAAAAAABAZgQgAAAAAACAzAhAAAAAAAAAmRGAAAAAAAAAMiMAAQAAAAAAZEYAAgAAAAAAyIwABAAAAAAAkBkBCAAAAAAAIDMCEAAAAAAAQGYEIAAAAAAAgMwIQAAAAAAAAJkRgAAAAAAAADIjAAEAAAAAAGRGAAIAAAAAAMiMAAQAAAAAAJAZAQgAAAAAACAzAhAAAAAAAEBmBCAA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AAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGQEIAAAAAAAgGT+Hy6ZY8DfXstCAAAAAElFTkSuQmCC\";\n export default img;","import { TemplateResult, html } from 'lit';\nimport {\n LightDomStyles,\n OutlineElement,\n SlotsController,\n} from '@phase2/outline-core';\nimport { customElement, query } from 'lit/decorators.js';\nimport componentStyles from './outline-event-card.css.lit';\nimport placeholderImage from '../../assets/images/placeholder-image.png';\n\n/**\n * The OutlineEventCard component\n * @element outline-event-card\n */\n@customElement('outline-event-card')\nexport class OutlineEventCard extends OutlineElement {\n static styles = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n slots = new SlotsController(this);\n\n @query('slot[name=\"cta\"]')\n ctaSlot: HTMLSlotElement;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('click', this.handleClick);\n }\n\n handleClick(): void {\n // Get all nodes assigned to the 'cta' slot.\n const assignedNodes = this.ctaSlot.assignedNodes({ flatten: true });\n\n // Recursive function to search for an
tag.\n const findLink = (nodes: Node[]): HTMLAnchorElement | null => {\n for (const node of nodes) {\n if (node.nodeName === 'A') {\n return node as HTMLAnchorElement;\n } else if (node instanceof HTMLSlotElement) {\n const slotAssignedElements = node.assignedElements({ flatten: true });\n const slotResult = findLink(slotAssignedElements);\n if (slotResult) {\n return slotResult;\n }\n } else if (node.childNodes.length > 0) {\n const childResult = findLink(Array.from(node.childNodes));\n if (childResult) {\n return childResult;\n }\n }\n }\n return null;\n };\n\n // Find the first tag in the assigned nodes.\n const link = findLink(assignedNodes);\n\n if (link) {\n link.click();\n }\n }\n\n render(): TemplateResult {\n return html`\n
\n ${this.slots.exist('image')\n ? html` ${this.slots.conditionalSlot('image', false)} `\n : html`\n
\n \"\"\n
\n `}\n
\n ${this.slots.conditionalSlot('date', false)}\n
\n\n ${this.slots.conditionalSlot('title', false)}\n ${this.slots.conditionalSlot('time', false)}\n ${this.slots.conditionalSlot('location', false)}\n ${this.slots.conditionalSlot('cta', false)}\n
\n
\n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\noutline-styled-text-baseline{\n --body-color:var(--brand-white);\n}\n\n.container{\n display:flex;\n flex-direction:column;\n background-color:$dark-blue;\n box-shadow:0 0 40px 5px rgba(117, 117, 122, 0.16);\n position:relative;\n z-index:1;\n background-color:var(--brand-dark-blue-900);\n background-image:linear-gradient(\n 161.18deg,\n rgba(4, 30, 74, 0),\n var(--brand-dark-blue-900) 50%,\n rgba(141, 200, 232, 0.1)\n );\n}\n\n@media (min-width: 1024px){\n\n.container{\n flex-direction:row;\n flex-wrap:nowrap\n}\n }\n\n@media (min-width: 1024px){\n\n.container:not(.small).reverse{\n flex-direction:row-reverse\n }\n }\n\n.container.has-video .media-wrapper{\n position:relative;\n }\n\n.container.has-video .play-btn{\n position:absolute;\n top:50%;\n left:50%;\n margin-top:-40px;\n margin-left:-40px;\n --outline-button-rounded-width:80px;\n --outline-button-rounded-height:80px;\n }\n\n@media (min-width: 1024px){\n\n.container.small{\n padding:var(--spacing-7);\n background-image:linear-gradient(\n 166.12deg,\n rgba(4, 30, 74, 0),\n var(--brand-dark-blue-900) 50%,\n rgba(141, 200, 232, 0.1)\n )\n }\n }\n\n.media-wrapper{\n margin:0;\n}\n\n@media (min-width: 1024px){\n\n.media-wrapper{\n display:flex;\n flex-direction:column;\n width:50%;\n aspect-ratio:1\n}\n }\n\n@media (min-width: 1024px){\n\n.small .media-wrapper{\n width:35%\n }\n }\n\n.content{\n padding:var(--spacing-5);\n}\n\n@media (min-width: 1024px){\n\n.content{\n display:flex;\n flex-direction:column;\n width:50%;\n aspect-ratio:1;\n justify-content:center;\n padding:var(--spacing-11)\n}\n }\n\n@media (min-width: 1024px){\n\n.small .content{\n justify-content:center;\n padding:0;\n padding-left:var(--spacing-7);\n width:65%;\n aspect-ratio:auto\n }\n }\n\n.heading{\n --heading-color:var(--brand-white);\n}\n\n.body{\n color:var(--brand-white);\n margin-bottom:var(--spacing-6);\n}\n\n.media{\n display:flex;\n flex:1;\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport {\n LightDomStyles,\n OutlineElement,\n SlotsController,\n} from '@phase2/outline-core';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-featured-content.css.lit';\nimport buttonStyles from '../outline-button-baseline/outline-button-baseline.css.lit';\nimport '../outline-icon-baseline/outline-icon-baseline';\nimport '../outline-button-baseline/outline-button-baseline';\nimport { classMap } from 'lit/directives/class-map.js';\n\ntype sizeOptions = 'small' | 'large';\ntype mediaPositions = 'left' | 'right';\n\n/**\n * The OutlineFeaturedContent component\n * @element outline-featured-content\n */\n@customElement('outline-featured-content')\nexport class OutlineFeaturedContent extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles, buttonStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n slots = new SlotsController(this);\n\n /**\n * Determines desktop design of featured content card\n */\n @property({ type: String, attribute: 'size', reflect: true })\n size: sizeOptions = 'large';\n\n /**\n * Determines if media is on the left or right\n */\n @property({ type: String, attribute: 'media-position' })\n mediaPosition: mediaPositions = 'left';\n\n /**\n * Sets play button on video if media is video\n */\n @property({ type: Boolean, reflect: true, attribute: 'has-video' })\n hasVideo = false;\n\n render(): TemplateResult {\n return html`\n \n
\n ${this.slots.conditionalSlot('image', false)}\n ${this.slots.conditionalSlot('media', false)}\n ${this.hasVideo\n ? html`\n \n `\n : null}\n
\n
\n ${this.slots.conditionalSlot('heading', false)}\n ${this.slots.conditionalSlot('body', false)}\n ${this.slots.conditionalSlot('cta', false)}\n
\n \n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n.outline-file-download{\n display:flex;\n flex-direction:column;\n row-gap:var(--spacing-6);\n width:100%;\n max-width:720px;\n}\n\n.outline-file-download--files{\n display:flex;\n flex-direction:column;\n row-gap:var(--spacing-4);\n}\n\n.outline-file-download--heading{\n color:var(--brand-dark-blue-900);\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { OutlineElement, SlotsController } from '@phase2/outline-core';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-file-download.css.lit';\n\n/**\n * The OutlineFileDownload component\n * @element outline-file-download\n * @slot heading - for outline-heading-baseline\n * @slot description - for outline-styled-text-baseline\n * @slot default - for outline-file-links\n */\n@customElement('outline-file-download')\nexport class OutlineFileDownload extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n slots = new SlotsController(this);\n\n render(): TemplateResult {\n return html`
\n
\n ${this.slots.conditionalSlot('heading', false)}\n
\n
\n ${this.slots.conditionalSlot('description', false)}\n
\n
\n \n
\n
`;\n }\n}\n","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { OutlineElement } from '@phase2/outline-core';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from '../outline-button-baseline/outline-button-baseline.css.lit';\nimport '../outline-icon-baseline/outline-icon-baseline';\n\n/**\n * The OutlineFileLink component\n * @element outline-file-link\n */\n@customElement('outline-file-link')\nexport class OutlineFileLink extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n /**\n * URL for the downloadable file\n */\n @property({ type: String })\n url: string;\n\n /**\n * Display name for the file.\n */\n @property({ type: String, attribute: 'file-name' })\n fileName: string;\n\n render(): TemplateResult {\n return html`\n \n \n
\n \n
\n Download ${this.fileName}\n
\n \n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n font-family:var(--ff-body);\n --footer-bg-color:var(--brand-dark-blue-900);\n --separator-color:var(--brand-blue-accent);\n}\n\nfooter{\n width:100%;\n background-color:var(--footer-bg-color);\n}\n\n.logo{\n max-width:300px;\n}\n\n.footer-container{\n display:flex;\n flex-direction:column;\n}\n\n.footer-top,\n.footer-bottom{\n display:flex;\n justify-content:center;\n align-items:center;\n gap:var(--spacing-4);\n width:100%;\n}\n\n.footer-top{\n padding-block-end:var(--spacing-4);\n flex-direction:column;\n}\n\n@media (min-width: 1024px){\n\n.footer-top{\n flex-direction:row;\n padding-block-end:var(--spacing-10)\n}\n }\n\n.footer-bottom{\n gap:var(--spacing-8);\n padding-top:var(--spacing-4);\n justify-content:space-between;\n flex-direction:column;\n}\n\n@media (min-width: 1024px){\n\n.footer-bottom{\n flex-direction:row;\n flex-wrap:wrap;\n gap:var(--spacing-4);\n padding-top:var(--spacing-8)\n}\n }\n\n.contact-info{\n color:var(--brand-white);\n display:flex;\n justify-content:center;\n align-items:center;\n flex-direction:column;\n gap:var(--spacing-4);\n}\n\n@media (min-width: 1024px){\n\n.contact-info{\n flex-direction:row\n}\n }\n\n.site-links-container{\n display:flex;\n flex:1;\n justify-content:center;\n align-items:center;\n flex-direction:column;\n gap:var(--spacing-5);\n}\n\n@media (min-width: 1024px){\n\n.site-links-container{\n flex-direction:row;\n gap:0\n}\n }\n\n.site-links{\n display:flex;\n flex:1;\n}\n\n.right-links{\n display:flex;\n flex-direction:column;\n justify-content:center;\n align-items:center;\n padding:0 var(--spacing-4);\n gap:var(--spacing-4);\n}\n\n.social-links{\n display:flex;\n flex:1;\n justify-content:center;\n align-items:center;\n gap:var(--spacing-4);\n margin-top:var(--spacing-4);\n}\n\n.separator{\n width:100%;\n height:4px;\n background-color:var(--separator-color);\n}\n\n.contact-separator{\n display:none;\n width:1px;\n height:var(--spacing-4);\n background-color:var(--brand-white);\n}\n\n@media (min-width: 1024px){\n\n.contact-separator{\n display:block\n}\n }\n\nul{\n display:flex;\n flex-direction:column;\n color:var(--brand-white);\n list-style:none;\n margin:0;\n padding:0;\n gap:var(--spacing-4);\n align-items:center;\n}\n\n@media (min-width: 1024px){\n\nul{\n flex-direction:row;\n flex-wrap:wrap;\n gap:var(--spacing-6) var(--spacing-4);\n justify-content:flex-start\n}\n }\n\n@media (min-width: 1280px){\n\nul{\n flex-wrap:nowrap;\n justify-content:space-between;\n gap:normal\n}\n }\n\ndiv[slot='footer-links'] ul{\n display:grid;\n grid-template-columns:repeat(2, 1fr);\n grid-template-rows:repeat(2, 1fr);\n text-decoration:underline;\n}\n\n@media (min-width: 1024px){\n\ndiv[slot='footer-links'] ul{\n display:flex;\n gap:var(--spacing-6)\n}\n }\n\ndiv[slot='footer-links'] ul a{\n color:var(--brand-white);\n }\n\nslot[name='address']::slotted(*){\n text-align:center;\n}\n\ndiv[slot='logo'] img{\n width:100%;\n }\n\ndiv[slot='site-links'] ul{\n flex:1;\n padding-inline:var(--spacing-14);\n font-weight:var(--fw-bold);\n font-size:var(--fs-lg);\n margin-top:var(--spacing-2);\n font-family:var(--ff-display);\n }\n\n@media (min-width: 1024px){\n\ndiv[slot='site-links'] ul{\n padding-inline:var(--spacing-6);\n gap:var(--spacing-4) 0\n }\n }\n\n@media (min-width: 1024px){\n\ndiv[slot='site-links'] ul li{\n flex-basis:50%\n }\n }\n\n@media (min-width: 1280px){\n\ndiv[slot='site-links'] ul li{\n flex-basis:auto\n }\n }\n\n@media (min-width: 1024px){\n\ndiv[slot='site-links']{\n display:flex;\n flex:1\n}\n }\n\ndiv[slot='social-links'] ul{\n gap:var(--spacing-6);\n flex-direction:row;\n }\n\ndiv[slot='social-links'] ul a{\n transition:all 0.3s ease;\n }\n\ndiv[slot='social-links'] ul a:hover{\n opacity:0.8;\n }\n`;","import { LightDomStyles, OutlineElement } from '@phase2/outline-core';\nimport { html, TemplateResult, CSSResultGroup } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-footer.css.lit';\nimport '../outline-container-baseline/outline-container-baseline';\n\n/**\n * The Baseline Footer component.\n * @element outline-footer\n * @slot logo - For logo\n * @slot site-links - For site links\n * @slot footer-links - For footer links\n * @slot address - For address\n * @slot phone - For phone number\n */\n@customElement('outline-footer')\nexport class OutlineFooter extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n render(): TemplateResult {\n return html`\n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n \n
\n
\n
\n \n
\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-footer': OutlineFooter;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --outline-button--family--computed:var(\n --outline-button--family,\n var(--ff-bold)\n );\n --outline-button--weight--computed:var(\n --outline-button--weight,\n var(--fw-extrabold)\n );\n --outline-button--padding--computed:var(\n --outline-button--padding,\n var(--spacing-2) var(--spacing-8)\n );\n --outline-button--radius--computed:var(--outline-button--radius, 0.4rem);\n}\n\n:host{\n --outline-button--link-padding--computed:var(\n --outline-button--link-padding,\n var(--spacing-1) var(--spacing-2)\n );\n --outline-button--link-font-size--computed:var(\n --outline-button--link-radius,\n var(--fs-lg)\n );\n --outline-button--link-bg-color--computed:var(\n --outline-button--link-bg-color,\n var(--outline-transparent)\n );\n --outline-button--link-color--computed:var(\n --outline-button--link-color,\n brand var(--brand-dark-blue-900)\n );\n --outline-button--link-disabled-bg-color--computed:var(\n --outline-button--link-disabled-bg-color,\n var(--outline-transparent)\n );\n --outline-button--link-disabled-color--computed:var(\n --outline-button--link-disabled-color,\n var(--brand-gray-600)\n );\n --outline-button--link-disabled-weight--computed:var(\n --outline-button--link-disabled-weight,\n var(--fw-bold)\n );\n}\n\n:host{\n --outline-button--primary-padding--computed:var(\n --outline-button--primary-padding,\n var(--outline-button--padding--computed)\n );\n --outline-button--primary-radius--computed:var(\n --outline-button--primary-radius,\n var(--outline-button--radius--computed)\n );\n --outline-button--primary-bg-color--computed:var(\n --outline-button--primary-bg-color,\n var(--brand-bright-blue-900)\n );\n --outline-button--primary-color--computed:var(\n --outline-button--primary-color,\n var(--brand-dark-blue-900)\n );\n --outline-button--primary-weight--computed:var(\n --outline-button--primary-weight,\n var(--outline-button--weight--computed)\n );\n --outline-button--primary-bg-color-focus--computed:var(\n --outline-button--primary-bg-color-focus,\n var(--brand-bright-blue-900)\n );\n --outline-button--primary-color-focus--computed:var(\n --outline-button--primary-color-focus,\n var(--brand-dark-blue-900)\n );\n --outline-button--primary-weight-focus--computed:var(\n --outline-button--primary-weight-focus,\n var(--outline-button--weight--computed)\n );\n --outline-button--primary-ring-focus--computed:var(\n --outline-button--primary-ring-focus,\n var(--outline-ring-offset-width) solid var(--brand-dark-blue-900)\n );\n --outline-button--primary-disabled-bg-color--computed:var(\n --outline-button--primary-disabled-bg-color,\n var(--brand-gray-300)\n );\n --outline-button--primary-disabled-color--computed:var(\n --outline-button--primary-disabled-color,\n var(--brand-gray-600)\n );\n --outline-button--primary-disabled-weight--computed:var(\n --outline-button--primary-disabled-weight,\n var(--outline-button--weight--computed)\n );\n}\n\n:host{\n --outline-button--secondary-padding--computed:var(\n --outline-button--secondary-padding,\n var(--outline-button--padding--computed)\n );\n --outline-button--secondary-radius--computed:var(\n --outline-button--secondary-radius,\n var(--outline-button--radius--computed)\n );\n --outline-button--secondary-bg-color--computed:var(\n --outline-button--secondary-bg-color,\n var(--brand-dark-blue-900)\n );\n --outline-button--secondary-color--computed:var(\n --outline-button--secondary-color,\n var(--outline-white)\n );\n --outline-button--secondary-weight--computed:var(\n --outline-button--secondary-weight,\n var(--outline-button--weight--computed)\n );\n --outline-button--secondary-ring--computed:var(\n --outline-button--secondary-ring,\n var(--outline-ring-inset) 0 0 0 var(--outline-ring-offset-width)\n var(--outline-blue-600)\n );\n --outline-button--secondary-bg-color-focus--computed:var(\n --outline-button--secondary-bg-color-focus,\n var(--brand-dark-blue-900)\n );\n --outline-button--secondary-color-focus--computed:var(\n --outline-button--secondary-color-focus,\n var(--outline-white)\n );\n --outline-button--secondary-weight-focus--computed:var(\n --outline-button--secondary-weight-focus,\n var(--outline-button--weight--computed)\n );\n --outline-button--secondary-ring-focus--computed:var(\n --outline-button--secondary-ring-focus,\n 2px solid var(--brand-dark-blue-900)\n );\n --outline-button--secondary-disabled-bg-color--computed:var(\n --outline-button--secondary-disabled-bg-color,\n var(--outline-white)\n );\n --outline-button--secondary-disabled-color--computed:var(\n --outline-button--secondary-disabled-color,\n var(--outline-gray-400)\n );\n --outline-button--secondary-disabled-weight--computed:var(\n --outline-button--secondary-disabled-weight,\n var(--outline-button--weight--computed)\n );\n vertical-align:middle;\n --outline-button-left-icon-container-margin-right:1.25rem;\n --outline-button-margin-left:0;\n --outline-button-right-icon-container-margin-left:1rem;\n --outline-button-rounded-border-radius:50%;\n --outline-button-rounded-width:54px;\n --outline-button-rounded-height:54px;\n --outline-button-left-icon-padding:0.4rem 2rem 0.4rem 0.4rem;\n --outline-button-extra-large-padding:1rem 2rem 1rem 0.4rem;\n --outline-button-font-family:var(--outline-button--family--computed);\n --outline-button-padding:var(--outline-button--padding--computed);\n --outline-button-accent-color:var(--brand-dark-blue-900);\n --outlne-button-icon-size:2rem;\n}\n\n.btn{\n display:inline-flex;\n flex-wrap:nowrap;\n align-items:center;\n cursor:pointer;\n font-size:var(--fs-base);\n line-height:var(--lh-base);\n transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, outline, outline-color;\n transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration:150ms;\n text-decoration-line:none;\n outline:none;\n border:none;\n letter-spacing:1px;\n\n line-height:1.5;\n}\n\n.btn.white{\n --outline-button-accent-color:var(--outline-white);\n }\n\n.btn.dropdown{\n --outline-button-padding:6px 1rem;\n --outline-button-font-family:var(--ff-body);\n --outline-button-right-icon-container-margin-left:0.25rem;\n --outline-button-accent-color:var(--brand-dark-blue-900);\n }\n\n.btn.has-droplet-icon{\n --outline-button-margin-left:-5px;\n }\n\n.btn{\n\n border-radius:var(--outline-button--radius--computed);\n font-family:var(--outline-button-font-family);\n font-weight:var(--outline-button--weight--computed);\n padding:var(--outline-button-padding);\n margin-left:var(--outline-button-margin-left);\n}\n\n.left-icon-container{\n display:flex;\n align-items:center;\n justify-content:center;\n width:var(--outlne-button-icon-size);\n max-width:var(--outlne-button-icon-size);\n height:var(--outlne-button-icon-size);\n max-height:var(--outlne-button-icon-size);\n margin-right:var(--outline-button-left-icon-container-margin-right);\n border-radius:4px;\n}\n\n.left-icon-container.droplet{\n border-radius:0;\n}\n\n.right-icon-container{\n display:flex;\n align-items:center;\n justify-content:center;\n margin-left:var(--outline-button-right-icon-container-margin-left);\n}\n\n.btn[aria-disabled='true']{\n pointer-events:none;\n cursor:not-allowed;\n -webkit-user-select:none;\n user-select:none;\n}\n\n.btn.primary{\n padding:var(--outline-button--primary-padding--computed);\n border-radius:var(--outline-button--primary-radius--computed);\n background-color:var(--outline-button--primary-bg-color--computed);\n color:var(--outline-button--primary-color--computed);\n font-weight:var(--outline-button--primary-weight--computed);\n box-shadow:var(--outline-button--primary-ring--computed);\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n}\n\n.btn.primary .right-icon-container{\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\n\n.btn.primary:hover{\n transform:scale(1.05);\n }\n\n.btn.primary:hover .right-icon-container{\n transform:translateX(0.5rem);\n }\n\n.btn.primary:focus{\n background-color:var(--outline-button--primary-bg-color-focus--computed);\n color:var(--outline-button--primary-color-focus--computed);\n font-weight:var(--outline-button--primary-weight-focus--computed);\n outline:2px solid var(--outline-button-accent-color);\n outline-offset:2px;\n }\n\n.btn.primary.has-left-icon{\n padding:var(--outline-button-left-icon-padding);\n }\n\n.btn.primary.has-left-icon .left-icon-container{\n color:var(--outline-white);\n background-color:var(--brand-dark-blue-900);\n }\n\n.btn.primary.rounded{\n display:flex;\n align-items:center;\n justify-content:center;\n border-radius:var(--outline-button-rounded-border-radius);\n width:var(--outline-button-rounded-width);\n height:var(--outline-button-rounded-height);\n padding:0;\n }\n\n.btn.primary.search-button{\n padding:0.375rem;\n }\n\n.btn.primary.mobile{\n width:100%;\n justify-content:center;\n }\n\n.btn.primary.extra-large{\n --outlne-button-icon-size:3.25rem;\n padding:var(--outline-button-extra-large-padding);\n }\n\n.btn.secondary{\n padding:var(--outline-button--secondary-padding--computed);\n border-radius:var(--outline-button--secondary-radius--computed);\n\n background-color:var(--outline-button--secondary-bg-color--computed);\n color:var(--outline-button--secondary-color--computed);\n font-weight:var(--outline-button--secondary-weight--computed);\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n}\n\n.btn.secondary .right-icon-container{\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\n\n.btn.secondary:hover{\n transform:scale(1.05);\n }\n\n.btn.secondary:hover .right-icon-container{\n transform:translateX(0.5rem);\n }\n\n.btn.secondary:focus{\n background-color:var(--outline-button--secondary-bg-color-focus--computed);\n color:var(--outline-button--secondary-color-focus--computed);\n font-weight:var(--outline-button--secondary-weight-focus--computed);\n outline:2px solid var(--outline-button-accent-color);\n outline-offset:2px;\n }\n\n.btn.secondary.has-left-icon{\n padding:var(--outline-button-left-icon-padding);\n }\n\n.btn.secondary.has-left-icon .left-icon-container{\n background-color:var(--brand-bright-blue-900);\n color:var(--brand-dark-blue-900);\n }\n\n.btn.secondary.rounded{\n display:flex;\n align-items:center;\n justify-content:center;\n border-radius:var(--outline-button-rounded-border-radius);\n width:var(--outline-button-rounded-width);\n height:var(--outline-button-rounded-height);\n padding:0;\n }\n\n.btn.secondary.mobile{\n width:100%;\n justify-content:center;\n }\n\n.btn.primary[aria-disabled='true'],\n.btn.secondary[aria-disabled='true']{\n background-color:var(--outline-button--primary-disabled-bg-color--computed);\n color:var(--outline-button--primary-disabled-color--computed);\n font-weight:var(--outline-button--primary-disabled-weight--computed);\n}\n\n.btn.link{\n font-family:var(--ff-display);\n}\n\n.btn.link.small-font{\n font-family:var(--ff-body);\n }\n\n.btn.link.extra-small-font{\n font-family:var(--ff-body);\n font-size:var(--fs-sm);\n }\n\n.btn.link{\n display:inline-flex;\n font-size:var(--outline-button--link-font-size--computed);\n padding:var(--outline-button--link-padding--computed);\n position:relative;\n border-radius:0;\n color:var(--outline-button--link-color--computed);\n}\n\n.btn.link.white{\n color:var(--outline-white);\n }\n\n.btn.link{\n background-color:var(--outline-button--link-bg-color--computed);\n}\n\n.btn.link:before,\n .btn.link:after{\n content:'';\n position:absolute;\n }\n\n.btn.link:after{\n background-color:var(--outline-button-accent-color);\n bottom:-0.25rem;\n height:0.25rem;\n left:0.5rem;\n transition:width 0.3s;\n width:0;\n }\n\n.btn.link,\n .btn.link:visited,\n .btn.link:hover{\n color:var(--outline-button-accent-color);\n }\n\n.btn.link,\n .btn.link:visited,\n .btn.link:hover,\n .btn.link:focus{\n outline:0;\n text-decoration:none;\n }\n\n.btn.link:not(.search-button):not(.cta):hover:after{\n width:calc(100% - 1rem);\n }\n\n.btn.link:not(.search-button):not(.cta):focus{\n background-color:var(--brand-dark-blue-900);\n color:var(--outline-white);\n }\n\n.btn.link:not(.search-button):not(.cta):focus:before{\n background-color:var(--outline-white);\n border-top:4px solid var(--brand-dark-blue-900);\n height:8px;\n left:0;\n top:-8px;\n transition:none;\n width:100%;\n }\n\n.btn.link:not(.search-button):not(.cta):focus:after{\n background-color:var(--outline-white);\n border-bottom:4px solid var(--brand-dark-blue-900);\n bottom:-8px;\n height:8px;\n left:0;\n transition:none;\n width:100%;\n }\n\n.btn.link .left-icon-container{\n width:auto;\n height:auto;\n margin-right:var(--spacing-1);\n }\n\n.btn.link .right-icon-container{\n margin-left:var(--spacing-1);\n }\n\n.btn.link.cta{\n padding:5px 0;\n white-space:nowrap;\n letter-spacing:1px;\n line-height:1.11111;\n }\n\n.btn.link.cta .right-icon-container{\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\n\n.btn.link.cta:hover .right-icon-container{\n transform:translateX(0.5rem);\n }\n\n.btn.link[aria-disabled='true']{\n background-color:var(--outline-button--link-disabled-bg-color--computed);\n color:var(--outline-button--link-disabled-color--computed);\n font-weight:var(--outline-button--link-disabled-weight--computed);\n}\n\n.btn.dropdown{\n border-radius:var(--outline-button--primary-radius--computed);\n background-color:var(--outline-button--primary-bg-color--computed);\n color:var(--outline-button--primary-color--computed);\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n transition:border-radius 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n}\n\n.btn.dropdown .right-icon-container{\n transition:transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\n\n.btn.dropdown{\n letter-spacing:normal;\n}\n\n.btn.dropdown:before,\n .btn.dropdown:after{\n content:'';\n position:absolute;\n }\n\n.btn.dropdown:after{\n background-color:var(--outline-button-accent-color);\n bottom:-3px;\n height:3px;\n left:0;\n transition:width 0.3s;\n width:0;\n z-index:999;\n }\n\n.btn.dropdown,\n .btn.dropdown:visited,\n .btn.dropdown:hover{\n color:var(--outline-button-accent-color);\n }\n\n.btn.dropdown.open .right-icon-container{\n transform:rotate(180deg);\n }\n\n.btn.dropdown.open{\n border-radius:0.4rem 0.4rem 0 0;\n}\n\n.btn.dropdown.open:after{\n width:calc(100%);\n }\n\n.btn.dropdown:focus-visible{\n background-color:var(--outline-button--primary-bg-color-focus--computed);\n color:var(--outline-button--primary-color-focus--computed);\n font-weight:var(--outline-button--primary-weight-focus--computed);\n outline:2px solid var(--outline-white);\n outline-offset:2px;\n }\n\n.btn.dropdown .right-icon-container{\n margin-left:var(--spacing-3);\n }\n\n.btn.dropdown.mobile{\n width:100%;\n justify-content:center;\n }\n\n.outline-file-link{\n width:100%;\n}\n\n.outline-file-link .btn{\n width:100% !important;\n }\n\nform{\n display:flex;\n flex-direction:column;\n gap:2rem;\n font-family:var(--ff-body);\n}\n\n.js-form-type-textfield,\n.js-form-type-email,\n.js-form-type-tel,\n.js-form-type-password{\n display:flex;\n flex-direction:column;\n position:relative;\n}\n\n.js-form-type-textfield label, .js-form-type-email label, .js-form-type-tel label, .js-form-type-password label{\n transition:all 0.25s ease;\n padding-inline:0.25rem;\n color:var(--brand-gray-700);\n font-size:var(--fs-sm);\n font-family:var(--ff-display);\n top:0.9rem;\n margin-left:0.9rem;\n position:absolute;\n background-color:var(--brand-white);\n }\n\n.js-form-type-textfield.active label, .js-form-type-email.active label, .js-form-type-tel.active label, .js-form-type-password.active label{\n padding-inline:0.25rem;\n color:var(--brand-gray-750);\n font-size:var(--fs-xs);\n top:-0.5rem;\n margin-left:1rem;\n position:absolute;\n z-index:2;\n }\n\n.js-form-type-textfield:not(.active) ::placeholder, .js-form-type-email:not(.active) ::placeholder, .js-form-type-tel:not(.active) ::placeholder, .js-form-type-password:not(.active) ::placeholder{\n color:transparent;\n }\n\n.js-form-type-textfield.form-disabled label, .js-form-type-email.form-disabled label, .js-form-type-tel.form-disabled label, .js-form-type-password.form-disabled label{\n color:var(--brand-gray-400);\n }\n\ninput[type='text'],\ninput[type='email'],\ninput[type='tel'],\ninput[type='password']{\n border:2px solid var(--brand-dark-blue-900);\n border-radius:6px;\n padding-block:0.65rem;\n padding-inline:var(--spacing-4);\n z-index:1;\n color:black;\n background-color:transparent;\n}\n\ninput[type='text']:focus-visible, input[type='email']:focus-visible, input[type='tel']:focus-visible, input[type='password']:focus-visible{\n outline:1px solid var(--brand-dark-blue-900);\n }\n\n.form-disabled input[type='text'], .form-disabled input[type='email'], .form-disabled input[type='tel'], .form-disabled input[type='password']{\n border-color:var(--brand-gray-400);\n }\n\n.webform-element-description{\n margin-top:var(--spacing-1);\n font-size:var(--fs-xs);\n font-style:italic;\n}\n\n.form-disabled .webform-element-description{\n color:var(--brand-gray-400);\n }\n\n.js-form-type-textarea{\n display:flex;\n flex-direction:column;\n}\n\n.js-form-type-textarea textarea{\n color:black;\n border:1px solid var(--brand-gray-700);\n padding-block:var(--spacing-2);\n padding-inline:var(--spacing-4);\n }\n\n.js-form-type-textarea label{\n padding-bottom:var(--spacing-1);\n font-size:var(--fs-sm);\n font-family:var(--ff-display);\n }\n\n.js-form-type-textarea div{\n display:flex;\n flex-direction:column;\n }\n\n.js-form-type-textarea.form-disabled textarea{\n color:var(--brand-gray-400);\n border-color:var(--brand-gray-400);\n }\n\n.js-form-type-textarea.form-disabled label{\n color:var(--brand-gray-400);\n }\n\n.fieldset-legend{\n font-family:var(--ff-display);\n font-size:var(--fs-sm);\n}\n\n.form-disabled .fieldset-legend{\n color:var(--brand-gray-400);\n }\n\n.js-form-type-select{\n position:relative;\n}\n\n.js-form-type-select select{\n display:none;\n }\n\n.select-selected{\n background-color:var(--brand-white);\n border:1px solid var(--brand-gray-700);\n margin-top:var(--spacing-1);\n display:flex;\n align-items:center;\n justify-content:space-between;\n}\n\n.select-selected outline-icon{\n transition:transform 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\n\n.select-selected.select-arrow-active{\n background-color:var(--brand-gray-300);\n }\n\n.select-selected.select-arrow-active outline-icon{\n transform:rotate(180deg);\n }\n\n.form-disabled .select-selected{\n border-color:var(--brand-gray-400);\n background-color:#fafafa;\n }\n\n.select-items div,\n.select-selected{\n color:var(--brand-gray-800);\n padding:var(--spacing-2) var(--spacing-4);\n cursor:pointer;\n}\n\n.form-disabled .select-items div, .form-disabled .select-selected{\n color:var(--brand-gray-400);\n cursor:auto;\n }\n\n.select-items{\n position:absolute;\n background-color:var(--brand-white);\n top:100%;\n left:0;\n right:0;\n z-index:99;\n border:1px solid var(--brand-gray-700);\n border-top:none;\n max-height:250px;\n overflow-y:auto;\n}\n\n.form-disabled .select-items{\n border-color:var(--brand-gray-400);\n }\n\n.select-hide{\n display:none;\n}\n\n.select-items div:hover,\n.same-as-selected{\n background-color:var(--brand-gray-300);\n}\n\n.js-webform-radios{\n display:flex;\n flex-wrap:wrap;\n gap:var(--spacing-6);\n margin-top:var(--spacing-2);\n}\n\n.js-form-type-radio{\n display:flex;\n align-items:center;\n}\n\n.js-form-type-radio input{\n display:grid;\n place-content:center;\n cursor:pointer;\n -webkit-appearance:none;\n appearance:none;\n border:2px solid var(--brand-gray-700);\n width:var(--spacing-5);\n height:var(--spacing-5);\n border-radius:50%;\n margin-right:var(--spacing-2);\n transition:border-width 0.15s ease;\n }\n\n.js-form-type-radio input:checked{\n border-width:6px;\n }\n\n.js-form-type-radio input:focus-visible{\n outline-offset:4px;\n }\n\n.js-form-type-radio input:hover,\n .js-form-type-radio input:focus{\n outline-style:solid;\n outline-color:var(--brand-dark-blue-900);\n outline-width:2px;\n border-radius:50%;\n outline-offset:4px;\n }\n\n.js-form-type-radio.form-disabled input{\n border-color:var(--brand-gray-400);\n cursor:auto;\n }\n\n.js-form-type-radio.form-disabled label{\n color:var(--brand-gray-400);\n }\n\n.js-form-type-date,\n.js-form-type-webform-time{\n display:flex;\n flex-direction:column;\n}\n\n.js-form-type-date input, .js-form-type-webform-time input{\n padding:var(--spacing-2) var(--spacing-4);\n display:inline-flex;\n border:1px solid var(--brand-gray-700);\n }\n\n.js-form-type-date label, .js-form-type-webform-time label{\n font-size:var(--fs-sm);\n }\n\n.js-form-type-date.form-disabled input, .js-form-type-webform-time.form-disabled input{\n color:var(--brand-gray-400);\n border-color:var(--brand-gray-400);\n }\n\n.js-form-type-date.form-disabled label, .js-form-type-webform-time.form-disabled label{\n color:var(--brand-gray-400);\n }\n\n.js-form-type-checkbox,\n.facet-item{\n display:flex;\n gap:var(--spacing-3);\n align-items:center;\n}\n\n.js-form-type-checkbox .webform-element-description:before, .facet-item .webform-element-description:before{\n content:'(';\n }\n\n.js-form-type-checkbox .webform-element-description:after, .facet-item .webform-element-description:after{\n content:')';\n }\n\n.js-form-type-checkbox input, .facet-item input{\n display:grid;\n position:relative;\n place-content:center;\n cursor:pointer;\n -webkit-appearance:none;\n appearance:none;\n width:var(--spacing-8);\n min-width:var(--spacing-8);\n height:var(--spacing-8);\n border-radius:4px;\n border:2px solid var(--brand-dark-blue-900);\n }\n\n.js-form-type-checkbox input:checked, .facet-item input:checked{\n background-color:var(--brand-green-900);\n border-width:3px;\n }\n\n.js-form-type-checkbox input:checked::after, .facet-item input:checked::after{\n content:'';\n position:absolute;\n width:60%;\n height:30%;\n border:solid var(--brand-dark-blue-900);\n border-width:0 0 3px 3px;\n transform:rotate(-45deg);\n left:20%;\n top:30%;\n }\n\n.js-form-type-checkbox input:hover,\n .js-form-type-checkbox input:focus,\n .facet-item input:hover,\n .facet-item input:focus{\n outline-style:solid;\n outline-color:var(--brand-dark-blue-900);\n outline-offset:4px;\n outline-width:2px;\n border-radius:4px;\n }\n\n.js-form-type-checkbox.form-disabled input, .facet-item.form-disabled input{\n border-color:var(--brand-gray-400);\n cursor:auto;\n }\n\n.js-form-type-checkbox.form-disabled label, .facet-item.form-disabled label{\n color:var(--brand-gray-400);\n }\n\n.js-form-type-checkbox .facet-item__value, .facet-item .facet-item__value{\n font-family:var(--ff-bold);\n }\n\n.form-actions{\n display:flex;\n padding-top:var(--spacing-8);\n justify-content:flex-end;\n}\n\ninput[type='submit'],\ninput.webform-button--submit{\n background-color:var(--outline-button--primary-bg-color--computed);\n border-color:var(--outline-button--primary-bg-color--computed);\n border-radius:var(--outline-button--primary-radius--computed);\n color:var(--outline-button--primary-color--computed);\n cursor:pointer;\n font-family:var(--ff-display);\n padding:var(--spacing-3) var(--spacing-6);\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n}\n\ninput[type='submit']:disabled, input.webform-button--submit:disabled{\n background-color:var(--brand-gray-800);\n border:1px solid var(--brand-gray-200);\n color:var(--brand-gray-400);\n }\n\ninput[type='submit']:hover, input.webform-button--submit:hover{\n transform:scale(1.05);\n }\n\n:host([form-type='in-page-search']){\n position:relative;\n margin-bottom:var(--spacing-16);\n}\n\n:host([form-type='in-page-search']) .form-item-search{\n border:2px solid var(--brand-dark-blue-900);\n border-radius:6px;\n }\n\n:host([form-type='in-page-search']) .form-item-search input[type='text']{\n max-width:calc(100% - 60px);\n border:0;\n border-radius:0;\n padding:var(--spacing-4);\n }\n\n:host([form-type='in-page-search']) .js-form-type-textfield label{\n top:1.15rem;\n }\n\n:host([form-type='in-page-search']) .js-form-type-textfield.active{\n outline:1px solid var(--brand-dark-blue-900);\n }\n\n:host([form-type='in-page-search']) .js-form-type-textfield.active input{\n outline:none;\n }\n\n:host([form-type='in-page-search']) .js-form-type-textfield.active label{\n top:-0.75rem;\n }\n\n:host([form-type='in-page-search']) .form-actions{\n position:absolute;\n right:0;\n padding-top:var(--spacing-14);\n }\n\n@media (min-width: 1024px){\n\n:host([form-type='in-page-search']) .form-actions{\n padding-top:0;\n right:-7rem\n }\n }\n\n:host([form-type='in-page-search']) .form-actions input:not(#edit-reset){\n display:none;\n }\n\n:host([form-type='in-page-search']) .icon-wrapper{\n height:100%;\n overflow:hidden;\n position:absolute;\n right:0;\n bottom:0;\n padding:0;\n padding-right:var(--spacing-3);\n display:flex;\n align-items:center;\n }\n\n:host([form-type='in-page-search']) .in-page-search .icon.btn{\n --outline-button--primary-padding--computed:0;\n box-shadow:var(--outline-button--primary-ring--computed);\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n width:40px;\n height:40px;\n display:flex;\n align-items:center;\n justify-content:center;\n }\n\n:host([form-type='in-page-search']) .in-page-search .icon.btn input:hover{\n cursor:pointer;\n transform:scale(1.05);\n }\n`;","import type { IconLibrary } from '../library';\n\n//\n// System icons are a separate library to ensure they're always available, regardless of how the default icon library is\n// configured or if its icons resolve properly.\n//\n// All Outline components must use the system library instead of the default library. For visual consistency, system\n// icons are a subset of Bootstrap Icons.\n//\nconst icons = {\n 'check-lg': `\n \n \n \n `,\n 'chevron-down': `\n \n \n \n `,\n 'chevron-left': `\n \n \n \n `,\n 'chevron-right': `\n \n \n \n `,\n 'chevron-up': `\n \n \n \n `,\n 'x': `\n \n \n \n `,\n 'x-circle-fill': `\n \n \n \n `,\n};\n\nconst systemLibrary: IconLibrary = {\n name: 'system',\n // @ts-expect-error - shrug.\n resolver: (name: keyof typeof icons) => {\n if (name in icons) {\n return `data:image/svg+xml,${encodeURIComponent(icons[name])}`;\n }\n return '';\n },\n};\n\nexport default systemLibrary;\n","import { OutlineIcon } from '@phase2/outline-icon';\n\nimport systemLibrary from './libraries/library.system';\nimport bootstrapLibrary from './libraries/library.bootstrap';\nimport boxiconLibrary from './libraries/library.boxicons';\nimport lucideLibrary from './libraries/library.lucide';\nimport heroiconsLibrary from './libraries/library.heroicons';\nimport iconoirLibrary from './libraries/library.iconoir';\nimport ioniconsLibrary from './libraries/library.ionicons';\nimport jamLibrary from './libraries/library.jam';\nimport fontawesomeLibrary from './libraries/library.fontawesome';\nimport materialLibrary from './libraries/library.material';\nimport remixLibrary from './libraries/library.remix';\nimport uniconsLibrary from './libraries/library.unicons';\nimport customLibrary from './libraries/library.custom';\n\nexport type IconLibraryResolver = (name: string) => string;\nexport type IconLibraryMutator = (svg: SVGElement) => void;\nexport interface IconLibrary {\n name: string;\n resolver: IconLibraryResolver;\n mutator?: IconLibraryMutator;\n}\n\nlet registry: IconLibrary[] = [\n systemLibrary,\n bootstrapLibrary,\n boxiconLibrary,\n lucideLibrary,\n heroiconsLibrary,\n iconoirLibrary,\n ioniconsLibrary,\n jamLibrary,\n fontawesomeLibrary,\n materialLibrary,\n remixLibrary,\n uniconsLibrary,\n customLibrary,\n];\nlet watchedIcons: OutlineIcon[] = [];\n\nexport function watchIcon(icon: OutlineIcon) {\n watchedIcons.push(icon);\n}\n\nexport function unwatchIcon(icon: OutlineIcon) {\n watchedIcons = watchedIcons.filter(el => el !== icon);\n}\n\nexport function getIconLibrary(name?: string) {\n return registry.find(lib => lib.name === name);\n}\n\nexport function registerIconLibrary(\n name: string,\n options: { resolver: IconLibraryResolver; mutator?: IconLibraryMutator }\n) {\n unregisterIconLibrary(name);\n registry.push({\n name,\n resolver: options.resolver,\n mutator: options.mutator,\n });\n\n // Redraw watched icons\n watchedIcons.forEach(icon => {\n if (icon.library === name) {\n icon.redraw();\n }\n });\n}\n\nexport function unregisterIconLibrary(name: string) {\n registry = registry.filter(lib => lib.name !== name);\n}\n","import type { IconLibrary } from '../library';\n\nconst library: IconLibrary = {\n name: 'bootstrap',\n resolver: name =>\n `https://cdn.jsdelivr.net/npm/bootstrap-icons@1.0.0/icons/${name}.svg`,\n};\n\nexport default library;\n","import { IconLibrary } from '../library';\n\nconst library: IconLibrary = {\n name: 'boxicons',\n resolver: name => {\n let folder = 'regular';\n if (name.substring(0, 4) === 'bxs-') folder = 'solid';\n if (name.substring(0, 4) === 'bxl-') folder = 'logos';\n return `https://cdn.jsdelivr.net/npm/boxicons@2.0.5/svg/${folder}/${name}.svg`;\n },\n mutator: svg => svg.setAttribute('fill', 'currentColor'),\n};\n\nexport default library;\n","import { IconLibrary } from '../library';\n\nconst library: IconLibrary = {\n name: 'lucide',\n resolver: name =>\n `https://cdn.jsdelivr.net/npm/lucide-static@0.16.29/icons/${name}.svg`,\n};\n\nexport default library;\n","import type { IconLibrary } from '../library';\n\nconst library: IconLibrary = {\n name: 'heroicons',\n resolver: name =>\n `https://cdn.jsdelivr.net/npm/heroicons@0.4.2/outline/${name}.svg`,\n mutator: svg => {\n svg.setAttribute('width', '16px');\n svg.setAttribute('height', '16px');\n },\n};\n\nexport default library;\n","import type { IconLibrary } from '../library';\n\nconst library: IconLibrary = {\n name: 'iconoir',\n resolver: name =>\n `https://cdn.jsdelivr.net/gh/lucaburgio/iconoir@latest/icons/${name}.svg`,\n};\n\nexport default library;\n","import { IconLibrary } from '../library';\n\nconst library: IconLibrary = {\n name: 'ionicons',\n resolver: name =>\n `https://cdn.jsdelivr.net/npm/ionicons@5.1.2/dist/ionicons/svg/${name}.svg`,\n mutator: svg => {\n svg.setAttribute('fill', 'currentColor');\n svg.setAttribute('stroke', 'currentColor');\n [...svg.querySelectorAll('.ionicon-fill-none')].map(el =>\n el.setAttribute('fill', 'none')\n );\n [...svg.querySelectorAll('.ionicon-stroke-width')].map(el =>\n el.setAttribute('stroke-width', '32px')\n );\n },\n};\n\nexport default library;\n","import type { IconLibrary } from '../library';\n\nconst library: IconLibrary = {\n name: 'jam',\n resolver: name =>\n `https://cdn.jsdelivr.net/npm/jam-icons@2.0.0/svg/${name}.svg`,\n mutator: svg => svg.setAttribute('fill', 'currentColor'),\n};\n\nexport default library;\n","import type { IconLibrary } from '../library';\n\nconst library: IconLibrary = {\n name: 'fa',\n resolver: name => {\n const filename = name.replace(/^fa[rbs]-/, '');\n let folder = 'regular';\n if (name.substring(0, 4) === 'fas-') folder = 'solid';\n if (name.substring(0, 4) === 'fab-') folder = 'brands';\n return `https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.1/svgs/${folder}/${filename}.svg`;\n },\n mutator: svg => svg.setAttribute('fill', 'currentColor'),\n};\n\nexport default library;\n","import { IconLibrary } from '../library';\n\nconst library: IconLibrary = {\n name: 'material',\n resolver: name => {\n const match = name.match(/^(.*?)(_(round|sharp))?$/);\n // prettier-ignore\n // @ts-expect-error ts-mismatch\n return `https://cdn.jsdelivr.net/npm/@material-icons/svg@1.0.5/svg/${match[1]}/${match[3] || 'outline'}.svg`;\n },\n mutator: svg => svg.setAttribute('fill', 'currentColor'),\n};\n\nexport default library;\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\n// @ts-ignore\nimport { IconLibrary } from '../library';\n\nconst library: IconLibrary = {\n name: 'remix',\n resolver: name => {\n const match = name.match(/^(.*?)\\/(.*?)?$/);\n // prettier-ignore\n // @ts-expect-error ts-mismatch\n match[1] = match[1].charAt(0).toUpperCase() + match[1].slice(1);\n // prettier-ignore\n // @ts-expect-error ts-mismatch\n return `https://cdn.jsdelivr.net/npm/remixicon@2.5.0/icons/${match[1]}/${match[2]}.svg`;\n },\n mutator: svg => svg.setAttribute('fill', 'currentColor'),\n};\n\nexport default library;\n","import { IconLibrary } from '../library';\n\nconst library: IconLibrary = {\n name: 'unicons',\n resolver: name => {\n const match = name.match(/^(.*?)(-s)?$/);\n // prettier-ignore\n // @ts-expect-error ts-mismatch\n return `https://cdn.jsdelivr.net/npm/@iconscout/unicons@3.0.3/svg/${match[2] === '-s' ? 'solid' : 'line'}/${match[1]}.svg`;\n },\n mutator: svg => svg.setAttribute('fill', 'currentColor'),\n};\n\nexport default library;\n","import { IconLibrary } from '../library';\n\nconst library: IconLibrary = {\n name: 'custom',\n resolver: name => `./dist/assets/svg/custom/${name}.svg`,\n //mutator: svg => svg.setAttribute('fill', 'currentColor'),\n};\n\nexport default library;\n","import { requestInclude } from '@phase2/outline-include';\n\ntype IconFile =\n | {\n ok: true;\n status: number;\n svg: string;\n }\n | {\n ok: false;\n status: number;\n svg: null;\n };\n\ninterface IconFileUnknown {\n ok: boolean;\n status: number;\n svg: string | null;\n}\n\nconst iconFiles = new Map();\n\nexport async function requestIcon(url: string): Promise {\n if (iconFiles.has(url)) {\n return iconFiles.get(url)!;\n }\n const fileData = await requestInclude(url);\n const iconFileData: IconFileUnknown = {\n ok: fileData.ok,\n status: fileData.status,\n svg: null,\n };\n if (fileData.ok) {\n const div = document.createElement('div');\n div.innerHTML = fileData.html;\n const svg = div.firstElementChild;\n iconFileData.svg =\n svg?.tagName.toLowerCase() === 'svg' ? svg.outerHTML : '';\n }\n\n iconFiles.set(url, iconFileData as IconFile);\n return iconFileData as IconFile;\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host svg{\n height:inherit;\n width:inherit;\n display:flex;\n}\n`;","import { CSSResultGroup, html } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\n\nimport {\n OutlineElement,\n watch,\n emit,\n defaultIconConfig,\n} from '@phase2/outline-core';\nimport { getIconLibrary, unwatchIcon, watchIcon } from './library';\nimport { requestIcon } from './request';\nimport componentStyles from './outline-icon.css.lit';\n\nconst parser = new DOMParser();\n\n/**\n * @since 1.0\n * @status stable\n *\n * @event outline-load - Emitted when the icon has loaded.\n * @event outline-error - Emitted when the icon fails to load due to an error.\n *\n * @csspart base - The component's base wrapper.\n */\n@customElement('outline-icon')\nexport class OutlineIcon extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n @state() private svg = '';\n\n /** The name of the icon to draw. */\n @property({ type: String, reflect: true, attribute: 'name' })\n name?: string;\n\n /**\n * An external URL of an SVG file.\n *\n * WARNING: Be sure you trust the content you are including as it will be executed as code and can result in XSS attacks.\n */\n @property({ type: String, attribute: 'src' })\n src?: string;\n\n /** An alternate description to use for accessibility. If omitted, the icon will be ignored by assistive devices. */\n /** @todo: Make this default to \"true\" and be turned off when an icon is decorative. */\n @property({ attribute: 'label' })\n label: string | boolean = false;\n\n /** The name of a registered custom icon library. */\n @property({ type: String, attribute: 'library' })\n library = defaultIconConfig.defaults.library;\n\n /**\n * The width and height of the icon.\n * @param size in pixels\n * @default 32px\n */\n @property({ attribute: 'size' })\n size: string | boolean = defaultIconConfig.defaults.size;\n\n connectedCallback() {\n super.connectedCallback();\n watchIcon(this);\n }\n\n firstUpdated() {\n this.setIcon();\n this.sizeIcon();\n }\n\n updated() {\n this.setIcon();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n unwatchIcon(this);\n }\n\n private sizeIcon() {\n if (\n this.size &&\n typeof this.size === 'string' &&\n this.size !== defaultIconConfig.defaults.size\n ) {\n const icon: HTMLElement | null | undefined =\n this.shadowRoot?.querySelector('.icon');\n icon?.style.setProperty('width', this.size);\n icon?.style.setProperty('height', this.size);\n }\n }\n\n private getUrl() {\n const library = getIconLibrary(this.library);\n if (this.name && library) {\n return library.resolver(this.name);\n }\n return this.src;\n }\n\n /** @internal Fetches the icon and redraws it. Used to handle library registrations. */\n redraw() {\n this.setIcon();\n }\n\n @watch('name')\n @watch('src')\n @watch('library')\n async setIcon() {\n const library = getIconLibrary(this.library);\n const url = this.getUrl();\n if (url) {\n try {\n const file = await requestIcon(url);\n if (url !== this.getUrl()) {\n // If the url has changed while fetching the icon, ignore this request\n return;\n } else if (file.ok) {\n const doc = parser.parseFromString(file.svg, 'text/html');\n const svgEl = doc.body.querySelector('svg');\n\n if (svgEl !== null) {\n library?.mutator?.(svgEl);\n\n this.svg = svgEl.outerHTML;\n emit(this, 'outline-load');\n } else {\n this.svg = '';\n emit(this, 'outline-error', { detail: { status: file.status } });\n }\n } else {\n this.svg = '';\n emit(this, 'outline-error', { detail: { status: file.status } });\n }\n } catch {\n emit(this, 'outline-error', { detail: { status: -1 } });\n }\n } else if (this.svg.length > 0) {\n // If we can't resolve a URL and an icon was previously set, remove it\n this.svg = '';\n }\n }\n\n render() {\n const hasLabel = typeof this.label === 'string' && this.label.length > 0;\n\n const wrapperClasses = {\n icon: true,\n [`icon-library--${this.library}`]: this.library,\n };\n // aria-hidden=${ifDefined(hasLabel ? undefined : 'true')}\n return html` \n ${unsafeSVG(this.svg)}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-icon': OutlineIcon;\n }\n}\n","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { LightDomStyles, OutlineElement } from '@phase2/outline-core';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-form-baseline.css.lit';\nimport '@phase2/outline-icon';\n\n@customElement('outline-form-baseline')\nexport class OutlineFormBaseline extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n @property({ type: String, attribute: 'form-type', reflect: true })\n formType: 'in-page-search' | null;\n\n firstUpdated() {\n this.initCustomSelect();\n this.handleActiveState();\n // Add a global event listener to handle clicks anywhere in the document\n document.addEventListener('click', this.closeAllSelect);\n }\n\n // This function is added to handle the active state on input elements\n handleActiveState() {\n // Get all form inputs in your custom component\n const formFieldElements: NodeListOf = this.querySelectorAll(\n '.js-form-type-textfield, .js-form-type-email, .js-form-type-tel'\n );\n\n // Add event listeners to each input\n formFieldElements.forEach((field: HTMLElement) => {\n const input = field.querySelector('input');\n if (input) {\n input.addEventListener('focus', () => this.handleFocus(field));\n input.addEventListener('blur', () => this.handleBlur(input, field));\n input.addEventListener('input', () => this.handleInput(input, field));\n }\n\n if (input?.value && input.value.length > 0) {\n field?.classList.add('active');\n }\n });\n }\n\n handleFocus(field: HTMLElement) {\n // Add 'active' class to parent element when input is focused\n field.classList.add('active');\n }\n\n handleBlur(input: HTMLInputElement, field: HTMLElement) {\n // Remove 'active' class from parent element when input loses focus and there's no text inside it\n if (input.value === '') {\n field.classList.remove('active');\n }\n }\n\n handleInput(input: HTMLInputElement, field: HTMLElement) {\n // Add 'active' class to parent element when input has text inside it\n if (input.value !== '') {\n field.classList.add('active');\n } else {\n // Remove 'active' class from parent element when input loses all of its text\n field.classList.remove('active');\n }\n }\n\n // Handles the click event on the option element\n handleOptionClick(e: MouseEvent | KeyboardEvent) {\n const target = e.target as HTMLElement;\n // Get the parent select element and previously selected item\n const s: HTMLSelectElement | null | undefined =\n target.parentNode?.parentNode?.querySelector('select');\n const h: HTMLElement | null = target.parentNode\n ?.previousSibling as HTMLElement;\n\n if (s && h) {\n // Loop over the select element options\n for (let i = 0; i < s.length; i++) {\n // If the clicked option matches the option in the select element\n if (s.options[i].innerHTML == target.innerHTML) {\n // Set the selected index and update the selected item display\n s.selectedIndex = i;\n h.querySelector('span')!.textContent = target.innerHTML;\n // Remove the 'same-as-selected' class from all options\n const y = Array.from(\n target.parentNode?.querySelectorAll('.same-as-selected') || []\n );\n\n for (let k = 0; k < y.length; k++) {\n y[k].removeAttribute('class');\n }\n\n // Add 'same-as-selected' class to the clicked option\n target.setAttribute('class', 'same-as-selected');\n break;\n }\n }\n // Trigger the click event on the select box to close it\n h.click();\n this.closeAllSelect();\n }\n }\n\n // Handles the click event on the selected element\n handleSelectedClick(e: MouseEvent | KeyboardEvent) {\n e.stopPropagation();\n let target = e.target as HTMLElement;\n // If the clicked target is a child of the select box, traverse up to the select box\n if (!target.classList.contains('select-selected')) {\n target = target.closest('.select-selected') as HTMLElement;\n }\n // Toggle aria-expanded and visibility of the select box\n const isExpanded = target.getAttribute('aria-expanded') === 'true';\n target.setAttribute('aria-expanded', String(!isExpanded));\n this.closeAllSelect(e);\n const nextSib = target.nextSibling as HTMLElement;\n nextSib.classList.toggle('select-hide');\n target.classList.toggle('select-arrow-active');\n }\n\n // Handles the keydown event\n handleKeydown(e: KeyboardEvent) {\n const target = e.target as HTMLElement;\n switch (e.key) {\n case 'Enter': {\n // If the current focused element is an option, trigger the click event\n if (target.getAttribute('role') === 'option') {\n this.handleOptionClick(e);\n } else {\n // If the select box is focused, open or close it depending on its current state\n this.handleSelectedClick(e);\n }\n break;\n }\n case ' ': {\n // If the Space key is pressed, open or close the select box depending on its current state\n this.handleSelectedClick(e);\n break;\n }\n case 'Escape': {\n // If the Escape key is pressed, close all select boxes\n this.closeAllSelect();\n break;\n }\n }\n }\n\n // Initializes custom select boxes\n initCustomSelect() {\n // Get all elements with the 'js-form-type-select' class\n const customSelectElements: HTMLElement[] = Array.from(\n this.querySelectorAll('.js-form-type-select')\n );\n\n customSelectElements.forEach(el => {\n const selElmnt = el.querySelector('select');\n\n if (selElmnt) {\n // Create a new div to represent the select box\n const a = document.createElement('DIV');\n a.setAttribute('class', 'select-selected');\n a.setAttribute('role', 'button');\n a.setAttribute('aria-haspopup', 'true');\n a.setAttribute('aria-expanded', 'false');\n a.setAttribute('aria-controls', 'select-options');\n a.setAttribute('tabindex', '0'); // Make it focusable\n a.innerHTML = `${\n selElmnt.options[selElmnt.selectedIndex].innerHTML\n } `;\n\n el.appendChild(a);\n\n // Create a new div for the list of options\n const b = document.createElement('DIV');\n b.setAttribute('id', 'select-options');\n b.setAttribute('role', 'listbox');\n b.setAttribute('class', 'select-items select-hide');\n\n // Create a new div for each option in the select element\n for (let j = 0; j < selElmnt.length; j++) {\n const c = document.createElement('DIV');\n c.innerHTML = selElmnt.options[j].innerHTML;\n c.addEventListener('click', this.handleOptionClick.bind(this));\n c.addEventListener('keydown', this.handleKeydown.bind(this)); // Add keyboard event\n c.setAttribute('tabindex', '0'); // Make it focusable\n c.setAttribute('role', 'option'); // Give it a role of option\n b.appendChild(c);\n }\n el.appendChild(b);\n\n // Add event listeners to the select box if the select element is not disabled\n if (!selElmnt.disabled) {\n a.addEventListener('click', this.handleSelectedClick.bind(this));\n a.addEventListener('keydown', this.handleKeydown.bind(this)); // Add keyboard event\n }\n }\n });\n }\n\n // Close all select boxes\n closeAllSelect(e?: MouseEvent | KeyboardEvent) {\n let elmnt = e?.target as HTMLElement;\n // If the clicked target is a child of the select box, traverse up to the select box\n if (elmnt && !elmnt.classList.contains('select-selected')) {\n elmnt = elmnt.closest('.select-selected') as HTMLElement;\n }\n // Get all select boxes and options containers\n const selectItemsElements: HTMLElement[] = Array.from(\n document.querySelectorAll('.select-items')\n );\n const selectedElements: HTMLElement[] = Array.from(\n document.querySelectorAll('.select-selected')\n );\n const arrNo: number[] = [];\n\n // Close all select boxes except for the one being clicked on\n selectedElements.forEach((el, index) => {\n if (elmnt == el) {\n arrNo.push(index);\n } else {\n el.classList.remove('select-arrow-active');\n const isExpanded = el.getAttribute('aria-expanded') === 'true';\n if (isExpanded) {\n el.setAttribute('aria-expanded', 'false');\n }\n }\n });\n\n selectItemsElements.forEach((el, index) => {\n if (!arrNo.includes(index)) {\n el.classList.add('select-hide');\n }\n });\n }\n\n // Will trigger the native search form.\n triggerSearch(e: Event) {\n const validNodeNames = ['BUTTON', 'OUTLINE-ICON-BASELINE'];\n const targetNodeName = (e.target as Node).nodeName;\n\n if (validNodeNames.includes(targetNodeName)) {\n const formElement = this.querySelector(\n '.views-exposed-form'\n ) as HTMLFormElement | null;\n\n if (formElement) {\n formElement.submit();\n }\n }\n }\n\n render(): TemplateResult {\n return html`\n ${this.formType === 'in-page-search'\n ? html`\n
\n \n
\n \n
\n
\n `\n : html` `}\n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:block;\n --top-menu-min-height:116px;\n}\n\n.global-header{\n background-color:var(--brand-primary-dark-blue);\n position:relative;\n z-index:2;\n\n --mobile-top-bar-height:100px;\n --outline-button--primary-padding--computed:0.75rem;\n}\n\nheader.is-open{\n position:fixed;\n right:0px;\n left:0px;\n top:0;\n bottom:0px;\n z-index:10;\n}\n\n.top-row{\n display:flex;\n align-items:center;\n gap:var(--spacing-2);\n position:relative;\n height:var(--mobile-top-bar-height);\n padding:var(--spacing-2) 0;\n}\n\n@media (min-width: 1280px){\n\n.top-row{\n padding-bottom:var(--spacing-2);\n height:auto;\n min-height:var(--top-menu-min-height)\n}\n }\n\n.utility-wrapper{\n top:var(--spacing-4);\n right:0;\n position:absolute;\n padding-right:var(--spacing-11);\n}\n\n.logo{\n flex-grow:1;\n}\n\n.logo ::slotted(*){\n display:inline-block;\n max-width:230px;\n width:100%;\n }\n\n@media (min-width: 1280px){\n\n.logo ::slotted(*){\n max-width:100%\n }\n }\n\n.logo a:focus{\n outline:2px solid var(--brand-white);\n outline-offset:2px;\n }\n\n@media (min-width: 1536px){\n div[slot='logo'] img{\n width:280px;\n }\n }\n\n.utility-navigation{\n padding:var(--spacing-8) 0;\n}\n\n@media (min-width: 1280px){\n\n.utility-navigation{\n padding:0;\n border-right:2px solid var(--brand-green-900)\n}\n }\n\n.search-wrapper.desktop{\n position:absolute;\n right:0;\n top:var(--spacing-3);\n transition:all 0.3s ease-in-out;\n}\n\n.search-wrapper.desktop.expanded{\n border:none;\n }\n\n.search-container{\n display:flex;\n flex-direction:row-reverse;\n align-items:center;\n overflow:hidden;\n right:0;\n border-radius:5px;\n background-color:transparent;\n border:2px solid var(--brand-dark-blue-900);\n}\n\n@media (min-width: 1280px){\n\n.search-container{\n background:var(--brand-primary-dark-blue)\n}\n }\n\n.search-container:focus,\n .search-container:focus-within,\n .search-container:hover{\n border-color:var(--outline-white);\n }\n\n.search-container.expanded{\n width:100%;\n border-color:var(--outline-white);\n padding-left:1rem;\n }\n\n.search-container .separator{\n height:24px;\n width:2px;\n margin-left:1rem;\n margin-right:0.25rem;\n background-color:var(--brand-green-900);\n }\n\n.search-container .search-button{\n background:transparent;\n border:0;\n color:inherit;\n }\n\n.search-container .search-button:focus-visible{\n border-radius:5px;\n outline:2px solid var(--outline-white);\n outline-offset:-6px;\n }\n\n.search-container .search-form{\n display:none;\n width:100%;\n }\n\n.search-container .search-form.expanded{\n display:unset;\n }\n\n.search-container.expanded .search-form.desktop{\n display:block;\n}\n\n.search-container.expanded .search-form.mobile{\n display:flex;\n justify-content:flex-end;\n align-items:center;\n background:var(--brand-primary-dark-blue);\n width:100%;\n}\n\n::slotted([slot='search-form']){\n display:flex;\n flex:1;\n}\n\n.search-wrapper.mobile{\n margin-bottom:var(--spacing-4);\n}\n\n.search-wrapper.mobile .btn{\n display:flex;\n align-items:center;\n justify-content:center;\n margin:var(--spacing-2);\n width:32px;\n height:32px;\n }\n\n.hamburger-menu-trigger{\n background:transparent;\n border:0;\n}\n\n.hamburger-menu-trigger.btn.primary:focus{\n outline:2px solid var(--brand-white);\n outline-offset:2px;\n }\n\n.mobile-hamburger-tray{\n background:var(--brand-primary-dark-blue);\n padding:var(--padding-x);\n display:none;\n overflow:scroll;\n}\n\n.mobile-hamburger-tray.expanded{\n display:block;\n position:fixed;\n right:0;\n left:0;\n top:var(--mobile-top-bar-height);\n bottom:0;\n }\n\n.divider{\n height:4px;\n width:100%;\n background-color:var(--brand-blue-400);\n margin-top:var(--spacing-5);\n}\n\n.search-form-expanded,\n.search-form-item,\n#search-query{\n width:100%;\n background-color:var(--brand-primary-dark-blue);\n outline:0;\n}\n`;","import {\n LightDomStyles,\n OutlineElement,\n SlotsController,\n MobileController,\n} from '@phase2/outline-core';\n\nimport { html, TemplateResult } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\n\nimport componentStyles from './outline-global-header.css.lit';\nimport outlineButtonBaselineCssLit from '../outline-button-baseline/outline-button-baseline.css.lit';\nimport { classMap } from 'lit/directives/class-map.js';\n\n/**\n * The Global Header component\n */\n@customElement('outline-global-header')\nexport class OutlineGlobalHeader extends OutlineElement {\n static styles = [componentStyles, outlineButtonBaselineCssLit];\n\n slots = new SlotsController(this);\n\n private mobileController = new MobileController(this, 'xl');\n\n lightDomStyles = new LightDomStyles(\n this,\n [componentStyles],\n this.tagName.toLowerCase()\n );\n\n /**\n * Indicates whether or not the search is open.\n * You can use this in lieu of the hide method.\n */\n @state() isSearchExpanded = false;\n\n /**\n * Indicates whether or not the dropdown is open.\n * You can use this in lieu of the hide method.\n */\n @state() isMobileHamburgerTrayOpen = false;\n\n /**\n * Indicated whether there is a admin toolbar so that\n * we can adjust positioning.\n */\n @state()\n isAdminToolbarOpen = false;\n\n updated(): void {\n if (this.mobileController.isMobile) {\n this.isSearchExpanded = true;\n }\n\n this.isAdminToolbarOpen =\n !!this.closest('body')?.classList.contains('toolbar-icon-9');\n\n // On mobile, when the tray is open, disable scrolling on the body\n if (this.isMobileHamburgerTrayOpen && this.mobileController.isMobile) {\n document\n .querySelector('body')\n ?.classList.add('overflow-hidden', 'h-screen');\n } else {\n document\n .querySelector('body')\n ?.classList.remove('overflow-hidden', 'h-screen');\n }\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this._handleKeyDown);\n }\n\n // Will trigger the native search form.\n triggerSearch(e: Event) {\n const validNodeNames = ['BUTTON', 'OUTLINE-ICON-BASELINE'];\n const targetNodeName = (e.target as Node).nodeName;\n\n if (validNodeNames.includes(targetNodeName)) {\n const formElement = this.querySelector(\n 'form#header-search-form'\n ) as HTMLFormElement | null;\n\n if (formElement) {\n formElement.submit();\n }\n }\n }\n\n render(): TemplateResult {\n const isMobile = this.mobileController.isMobile;\n return html`\n
\n \n \n ${isMobile ? this._mobileTemplate() : this._desktopTemplate()}\n \n \n
\n `;\n }\n\n _handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.isSearchExpanded = false;\n this.isMobileHamburgerTrayOpen = false;\n }\n }\n\n _mobileTemplate(): TemplateResult {\n return html`\n
\n ${this.slots.conditionalSlot('logo', false)}\n\n \n (this.isMobileHamburgerTrayOpen = !this.isMobileHamburgerTrayOpen)}\"\n >\n \n \n
\n \n ${this._mobileSearchTemplate()}\n ${this.slots.conditionalSlot('quick-links-navigation', false)}\n ${this.slots.conditionalSlot('main-navigation', false)}\n ${this.slots.conditionalSlot('utility-navigation', false)}\n \n `;\n }\n\n _desktopTemplate(): TemplateResult {\n return html`\n
\n ${this.slots.conditionalSlot('logo', false)}\n ${this.slots.conditionalSlot('main-navigation', false)}\n
\n ${this.slots.conditionalSlot('utility-navigation', false)}\n
\n ${this.slots.conditionalSlot('quick-links-navigation', false)}\n ${this._desktopSearchTemplate()}\n
\n `;\n }\n\n _mobileSearchTemplate(): TemplateResult {\n return html`\n
\n
\n
\n \n \n
\n
\n
\n `;\n }\n\n _desktopSearchTemplate(): TemplateResult {\n return html`\n \n \n (this.isSearchExpanded = !this.isSearchExpanded)}\"\n >\n ${this.isSearchExpanded\n ? html``\n : html``}\n \n\n ${this.isSearchExpanded\n ? html`
`\n : null}\n \n \n \n \n \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-global-header': OutlineGlobalHeader;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n.global-main-navigation{\n border-top:2px solid var(--brand-blue-300);\n margin-top:var(--spacing-8);\n}\n\n @media (min-width: 1280px){.global-main-navigation{\n border-top:0;\n margin-top:var(--spacing-12)\n}\n }\n\n> ul{\n display:flex;\n flex-direction:column;\n list-style-type:none;\n padding:0;\n}\n\n@media (min-width: 1280px){\n\n> ul{\n flex-direction:row\n}\n }\n\n> ul li::marker{\n display:none;\n width:0;\n height:0;\n }\n`;","import { LightDomStyles, OutlineElement } from '@phase2/outline-core';\n\nimport { html, TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport componentStyles from './outline-global-main-navigation.css.lit';\n\n/**\n * The Global Menu component\n */\n@customElement('outline-global-main-navigation')\nexport class OutlineGlobalMainNavigation extends OutlineElement {\n static styles = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n [componentStyles],\n this.tagName.toLowerCase()\n );\n\n render(): TemplateResult {\n return html`\n
\n \n
\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-global-main-navigation': OutlineGlobalMainNavigation;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n color:var(--brand-white);\n width:100%;\n display:flex;\n height:100%;\n --dropdown-trigger-font-size:var(--fs-lg);\n --children-font-size:var(--fs-base);\n --outline-button--primary-padding--computed:0rem;\n --border-radius-pay-link:2rem;\n}\n\n:host([flip-alignment]) #dropdown-children{\n right:0;\n }\n\n:host([pay-link]) [slot='parent-item'] a{\n border:none;\n color:var(--brand-primary-dark-blue);\n background-color:var(--brand-primary-blue);\n padding:var(--spacing-4) var(--spacing-8);\n }\n\n@media (min-width: 1024px){\n\n:host([pay-link]) [slot='parent-item'] a{\n margin-left:var(--spacing-2);\n transition:transform 0.3s ease-in-out\n }\n }\n\n@media (min-width: 1280px){\n\n:host([pay-link]) [slot='parent-item'] a{\n border-radius:var(--border-radius-pay-link);\n padding:var(--spacing-2) var(--spacing-6)\n }\n }\n\n:host([pay-link]) [slot='parent-item'] a:hover{\n transform:scale(1.05);\n }\n\n:host([pay-link]) .menu-item .menu-link{\n width:100%;\n text-align:center;\n }\n\n@media (min-width: 1280px){\n\n:host([pay-link]) .menu-item .menu-link{\n width:auto;\n text-align:left\n }\n }\n\n:host([pay-link]) .menu-item::before,\n :host([pay-link]) .menu-item::after{\n display:none;\n }\n\n.global-menu{\n width:100%;\n border-bottom:2px solid var(--brand-blue-300);\n font-family:var(--ff-display);\n}\n\n@media (min-width: 1280px){\n\n.global-menu{\n border-bottom:0\n}\n }\n\n[slot='parent-item'] a,\n [slot='parent-item'] span{\n color:var(--brand-white);\n padding:var(--spacing-6) 0;\n display:block;\n text-decoration:none;\n }\n\n@media (min-width: 1280px){\n\n[slot='parent-item'] a,\n [slot='parent-item'] span{\n padding:var(--spacing-4) var(--spacing-2)\n }\n }\n\n[slot='dropdown-children'] a{\n display:block;\n padding:var(--spacing-4) var(--spacing-8);\n position:relative;\n color:var(--brand-primary-dark-blue);\n }\n\n[slot='dropdown-children'] a:hover{\n color:var(--brand-white);\n background-color:var(--brand-primary-dark-blue);\n }\n\n@media (min-width: 1280px){\n\n[slot='dropdown-children'] a:hover{\n background-color:transparent\n }\n }\n\n@media (min-width: 1280px){\n [slot='dropdown-children'] a::after{\n content:'';\n position:absolute;\n pointer-events:none;\n background-color:var(--brand-primary-dark-blue);\n height:100%;\n left:0;\n top:0;\n transition-duration:0.425s;\n transition-property:width;\n width:0;\n z-index:-1;\n }\n [slot='dropdown-children'] a:hover::after{\n width:100%;\n }\n }\n\n.menu-item{\n position:relative;\n width:100%;\n text-align:left;\n color:inherit;\n display:flex;\n align-items:center;\n font-size:var(--dropdown-trigger-font-size);\n font-weight:var(--fw-bold);\n cursor:pointer;\n}\n\n@media (min-width: 1280px){\n\n.menu-item{\n font-weight:var(--fw-extrabold);\n width:auto;\n height:100%\n}\n }\n\n.menu-item outline-icon-baseline{\n transform:rotate(90deg);\n }\n\n@media (min-width: 1280px){\n .menu-item::after{\n content:'';\n position:absolute;\n bottom:0px;\n left:0;\n width:0px;\n height:3px;\n transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration:150ms;\n opacity:0;\n background:var(--brand-bright-blue-900);\n }\n\n .menu-item::before{\n content:'';\n position:absolute;\n top:0;\n left:50%;\n width:10px;\n height:16px;\n background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDIwIDMyIj48cGF0aCBjbGFzcz0ic3ZnLWNzcC0xNzMiIGQ9Ik0xMC4wNDYgMGMwLjI1MyAwLjAwNCAwLjQ2NiAwLjE1NSAwLjU3NiAwLjM3bDAuMDM0IDAuMDY3YzAuMDc3IDAuMTk3IDAuMTIxIDAuNDEyIDAuMTcyIDAuNjE0IDAuMDcyIDAuMjgxIDAuMTc2IDAuNTU3IDAuMjc3IDAuODI5IDAuMjM4IDAuNjM3IDAuNTIgMS4yNTYgMC44MjYgMS44NjEgMC45NzUgMS45MjggMi4xNzUgMy43MzcgMy40MiA1LjQ5MiAxMC4wOTEgMTQuMjI0IDIuMDMzIDIyLjc2OC01LjMwNiAyMi43NjhzLTE1LjM5Ny04LjU0NC01LjMwNi0yMi43NjhjMS4yNDUtMS43NTUgMi40NDUtMy41NjQgMy40Mi01LjQ5MiAwLjMwNi0wLjYwNSAwLjU4OS0xLjIyNCAwLjgyNi0xLjg2MSAwLjEwMS0wLjI3MSAwLjIwNi0wLjU0NyAwLjI3Ny0wLjgyOSAwLjA1MS0wLjIwMiAwLjA5Ni0wLjQxNyAwLjE3My0wLjYxNGwwLjAzNC0wLjA2N2MwLjExLTAuMjE1IDAuMzIyLTAuMzY2IDAuNTc2LTAuMzd6TTQuMzUyIDE0LjUxMmMtMS44MzMgMy4xMzctMy4yNjUgNy42NTYtMC44MjQgMTEuNCAwLjA0MCAwLjA2MiAwLjE1NiAwLjIxMiAwLjE3IDAuMjMgMC41NTYgMC43MjkgMS4xMDMgMS4xNjMgMS41OTIgMS4zOTQgMC4zMDItMC4wNTcgMC41ODEtMC4xODMgMC43ODMtMC40MjggMC4yOTYtMC4zNTkgMC4yOTctMC44MTcgMC4xODMtMS4yNDctMi44MDYtMi43MTMtMy4zNzUtNi4xNDUtMS45MDMtMTEuMzQ4eiIgZmlsbD0iIzAwYTNlMCI+PC9wYXRoPjwvc3ZnPgo=');\n background-repeat:no-repeat;\n background-size:contain;\n transform:translateX(-50%);\n transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration:150ms;\n opacity:0;\n }\n .menu-item.menu-is-open:before, .menu-item .active-trail:before, .menu-item:hover:before{\n opacity:1;\n }\n .menu-item.menu-is-open::after, .menu-item .active-trail::after, .menu-item:hover::after{\n width:100%;\n opacity:1;\n }\n }\n\n.dropdown-trigger{\n cursor:pointer;\n border:0;\n background:none;\n margin:0;\n flex-grow:1;\n display:flex;\n justify-content:flex-end;\n}\n\n@media (min-width: 1280px){\n\n.dropdown-trigger{\n padding:0\n}\n }\n\n.dropdown-trigger.menu-is-open outline-icon-baseline{\n transform:rotate(-90deg);\n }\n\n.icon{\n background:var(--brand-primary-blue);\n width:32px;\n height:32px;\n display:flex;\n align-items:center;\n justify-content:center;\n}\n\n@media (min-width: 1280px){\n .icon.btn.primary{\n background:transparent;\n color:var(--brand-white);\n }\n }\n\n.dropdown-children{\n text-align:left;\n font-size:var(--children-font-size);\n font-weight:var(--fw-bold);\n background:var(--brand-white);\n z-index:50;\n box-shadow:0px 4px 30px rgba(0, 0, 0, 0.2);\n margin-bottom:var(--spacing-6);\n display:none;\n}\n\n.dropdown-children.is-open{\n display:block;\n }\n\n@media (min-width: 1280px){\n\n.dropdown-children{\n margin-bottom:0;\n position:absolute\n}\n }\n\nli{\n border-bottom:3px solid var(--brand-gray-400);\n}\n\n@media (min-width: 1280px){\n li:last-child{\n border-bottom:0;\n }\n }\n`;","import {\n LightDomStyles,\n MobileController,\n OutlineElement,\n} from '@phase2/outline-core';\n\nimport { html, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport componentStyles from './outline-global-menu-baseline.css.lit';\nimport outlineButtonBaselineCssLit from '../outline-button-baseline/outline-button-baseline.css.lit';\n\n/**\n * The Global Menu component\n */\n@customElement('outline-global-menu-baseline')\nexport class OutlineGlobalMenuBaseline extends OutlineElement {\n static styles = [componentStyles, outlineButtonBaselineCssLit];\n\n private mobileController = new MobileController(this, 'xl');\n\n lightDomStyles = new LightDomStyles(\n this,\n [componentStyles],\n this.tagName.toLowerCase()\n );\n\n /**\n * Aligns the dropdown to the left instead of the right.\n */\n @property({ type: Boolean, reflect: true, attribute: 'flip-alignment' })\n flipAlignment = false;\n\n /**\n * Sets the menu item as active.\n */\n @property({ type: Boolean, reflect: false, attribute: 'active-trail' })\n activeTrail = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'is-dropdown-open',\n })\n isDropdownOpen = false;\n\n /**\n * Used to provided a unique ID\n * for global-header component and accessibility purposes.\n */\n @property({ type: String, reflect: true })\n id: string = Math.floor(Math.random() * 10000).toString();\n\n firstUpdated(): void {\n this.setListeners();\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n const isMobile = this.mobileController.isMobile;\n\n if (!isMobile) {\n this.handleDocumentClick();\n }\n\n window.addEventListener('resize', this.handleResize);\n }\n\n disconnectedCallback(): void {\n window.removeEventListener('resize', this.handleResize);\n }\n\n updated(): void {\n if (this.isDropdownOpen) {\n this.isOnEdge();\n }\n }\n\n /**\n * Adds and removes event listeners based on device.\n */\n setListeners = () => {\n // @TODO check if mobile on screen resize.\n const isMobile = this.mobileController.isMobile;\n if (isMobile) {\n this.removeDesktopListeners();\n this.addMobileListeners();\n } else {\n this.addDesktopListeners();\n this.removeMobileListeners();\n }\n };\n\n /**\n * Adds mouse events when on desktop.\n */\n addDesktopListeners = () => {\n this.addEventListener('mouseenter', () => (this.isDropdownOpen = true));\n this.addEventListener('mouseleave', () => (this.isDropdownOpen = false));\n this.shadowRoot\n ?.querySelector('.dropdown-trigger')\n ?.addEventListener('keydown', this.handleKeyDown);\n };\n\n /**\n * Removes mouse events when on mobile.\n */\n removeDesktopListeners = () => {\n this.removeEventListener('mouseenter', () => (this.isDropdownOpen = true));\n this.removeEventListener('mouseleave', () => (this.isDropdownOpen = false));\n };\n\n /**\n * Adds mouse events when on desktop.\n */\n addMobileListeners = () => {\n this.shadowRoot\n ?.querySelector('.dropdown-trigger')\n ?.addEventListener(\n 'click',\n () => (this.isDropdownOpen = !this.isDropdownOpen)\n );\n };\n\n /**\n * Removes mouse events when on mobile.\n */\n removeMobileListeners = () => {\n this.shadowRoot\n ?.querySelector('.dropdown-trigger')\n ?.removeEventListener(\n 'click',\n () => (this.isDropdownOpen = !this.isDropdownOpen)\n );\n };\n\n /**\n * Closes all dropdowns if `Escape` key is clicked.\n * @param ev\n */\n handleKeyDown = (ev: Event) => {\n const { key } = ev as KeyboardEvent;\n\n if (key === 'Escape') {\n this.isDropdownOpen = false;\n }\n\n if (['Enter', ' '].includes(key)) {\n this.isDropdownOpen = !this.isDropdownOpen;\n }\n };\n\n /**\n * Handles clicking the trigger and outside of the component.\n */\n handleDocumentClick() {\n document.addEventListener('click', event => {\n if (!event.composedPath().includes(this)) {\n this.isDropdownOpen = false;\n return;\n }\n });\n }\n\n handleResize = (): void => {\n this.isOnEdge();\n };\n\n isOnEdge(): boolean {\n const dropdownEl = this.shadowRoot?.getElementById('dropdown');\n if (dropdownEl === null || dropdownEl === undefined) {\n return false;\n }\n const offset = window.innerWidth - dropdownEl.getBoundingClientRect().right;\n if (offset <= 0) {\n this.setAttribute('flip-alignment', 'true');\n }\n return false;\n }\n\n render(): TemplateResult {\n return html`\n \n \n
\n \n
\n ${this.querySelector('[slot=\"dropdown-children\"]') !== null\n ? html`\n \n
\n \n
\n \n `\n : null}\n \n\n \n \n \n \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-global-menu-baseline': OutlineGlobalMenuBaseline;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:block;\n font-family:var(--ff-display);\n\n --heading-mb-sm:0.375rem;\n --heading-mb-lg:0.75rem;\n --heading-color-default:var(--brand-gray-900);\n}\n\n.ruled::after, :host([ruled])::after{\n content:'';\n border-radius:8px;\n border:solid var(--brand-green-900);\n border-width:8px 0 0;\n display:block;\n height:0.0625rem;\n margin:0;\n max-width:5.3125rem;\n padding:0;\n position:relative;\n text-align:left;\n width:100%;\n }\n\n:host([accent-color='blue_zodiac'])::after{\n border-color:var(--brand-blue-zodiac);\n }\n\n:host([accent-color='cornflower_blue'])::after{\n border-color:var(--brand-cornflower-blue);\n }\n\n:host([accent-color='dark_blue'])::after{\n border-color:var(--brand-dark-blue);\n }\n\n:host([accent-color='light_blue'])::after{\n border-color:var(--brand-light-blue);\n }\n\n:host([accent-color='green'])::after{\n border-color:var(--brand-green);\n }\n\n:host([accent-color='fun_green'])::after{\n border-color:var(--brand-fun-green);\n }\n\n:host([accent-color='orange'])::after{\n border-color:var(--brand-orange);\n }\n\n:host([accent-color='red'])::after{\n border-color:var(--brand-red);\n }\n\n:host([accent-color='dark_red'])::after{\n border-color:var(--brand-dark-red);\n }\n\n:host([accent-color='dark_gray'])::after{\n border-color:var(--brand-dark-gray);\n }\n\n:host([accent-color='dove_gray'])::after{\n border-color:var(--brand-dove-gray);\n }\n\n:host([accent-color='gray_70'])::after{\n border-color:var(--brand-gray-70);\n }\n\n:host([accent-color='gray_80'])::after{\n border-color:var(--brand-gray-80);\n }\n\n:host([accent-color='gray_90'])::after{\n border-color:var(--brand-gray-90);\n }\n\n:host([accent-color='gray_100'])::after{\n border-color:var(--brand-black);\n }\n\na{\n --link-color-default:var(--brand-primary-dark-blue);\n --link-color-hover:var(--brand-primary-dark-blue);\n --link-background-color-hover:var(--brand-primary-green);\n transition:0.3s ease all;\n}\n\na:hover,\n a:focus{\n outline:none;\n color:var(--link-color-hover);\n background-color:var(--link-background-color-hover);\n }\n\na:focus{\n border-top:1px solid var(--link-color-default);\n }\n\n.border-bottom,\n:host([has-border-bottom]){\n border-bottom:3px solid var(--brand-primary-dark-blue);\n padding-bottom:var(--spacing-5);\n margin-bottom:var(--spacing-5);\n}\n\n.heading-color-blue,\n:host([level-color='blue']){\n --heading-color:var(--brand-primary-dark-blue);\n}\n\n.heading-color-white,\n:host([level-color='white']){\n --heading-color:var(--brand-white);\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.heading-style-3xl,\n.heading-style-2xl,\n.heading-style-xl,\n.heading-style-lg,\n.heading-style-md,\n.heading-style-sm,\n.heading-style-xs{\n color:var(--heading-color-default);\n color:var(--heading-color, var(--heading-color-default));\n font-family:var(--ff-display);\n font-weight:var(--fw-bold);\n margin-bottom:var(--lh-xs);\n margin-bottom:var(--heading-mb-lg, var(--lh-xs));\n}\n\nh1{\n font-size:var(--fs-headline-3xl-responsive);\n line-height:var(--lh-headline-3xl);\n}\n\nh2{\n font-size:var(--fs-headline-2xl-responsive);\n line-height:var(--lh-headline-2xl);\n}\n\nh3{\n font-size:var(--fs-headline-xl-responsive);\n line-height:var(--lh-headline-xl);\n}\n\nh4{\n font-size:var(--fs-headline-lg-responsive);\n line-height:var(--lh-headline-lg);\n}\n\nh5{\n font-size:var(--fs-headline-md-responsive);\n line-height:var(--lh-headline-md);\n}\n\nh6{\n font-size:var(--fs-headline-sm-responsive);\n line-height:var(--lh-headline-sm);\n}\n\n.heading-style-xs,\n:host([level-size='2xs']),\n:host([level-size='2xs']) *{\n font-size:var(--fs-headline-2xs-responsive);\n line-height:var(--lh-headline-2xs);\n}\n\n.heading-style-xs,\n:host([level-size='xs']),\n:host([level-size='xs']) *{\n font-size:var(--fs-headline-xs-responsive);\n line-height:var(--lh-headline-xs);\n}\n\n.heading-style-sm,\n:host([level-size='sm']),\n:host([level-size='sm']) *{\n font-size:var(--fs-headline-sm-responsive);\n line-height:var(--lh-headline-sm);\n}\n\n.heading-style-md,\n:host([level-size='md']),\n:host([level-size='md']) *{\n font-size:var(--fs-headline-md-responsive);\n line-height:var(--lh-headline-md);\n}\n\n.heading-style-lg,\n:host([level-size='lg']),\n:host([level-size='lg']) *{\n font-size:var(--fs-headline-lg-responsive);\n line-height:var(--lh-headline-lg);\n}\n\n.heading-style-xl,\n:host([level-size='xl']),\n:host([level-size='xl']) *{\n font-size:var(--fs-headline-xl-responsive);\n line-height:var(--lh-headline-xl);\n}\n\n.heading-style-2xl,\n:host([level-size='2xl']),\n:host([level-size='2xl']) *{\n font-size:var(--fs-headline-2xl-responsive);\n line-height:var(--lh-headline-2xl);\n}\n\n.heading-style-3xl,\n:host([level-size='3xl']),\n:host([level-size='3xl']) *{\n font-size:var(--fs-headline-3xl-responsive);\n line-height:var(--lh-headline-3xl);\n}\n\n.heading-style-4xl,\n:host([level-size='4xl']),\n:host([level-size='4xl']) *{\n font-size:var(--fs-headline-4xl-responsive);\n line-height:var(--lh-headline-4xl);\n}\n\n:host([level-style='normal']),\n:host([level-style='normal']) *{\n font-weight:var(--fw-normal);\n}\n\n:host([level-style='bold']),\n:host([level-style='bold']) *{\n font-weight:var(--fw-bold);\n}\n\n:host([level-style='extrabold']),\n:host([level-style='extrabold']) *{\n font-family:var(--ff-bold);\n}\n\n:host([level-style='eyebrow']) h2,\n:host([level-style='eyebrow']) h3,\n:host([level-style='eyebrow']) h4,\n:host([level-style='eyebrow']) h5,\n:host([level-style='eyebrow']) h6{\n background-color:var(--brand-green);\n color:var(--brand-dark-blue);\n font-family:var(--ff-bold);\n font-size:var(--fs-headline-sm-responsive);\n line-height:var(--lh-xs);\n text-transform:uppercase;\n display:inline-block;\n padding:var(--spacing-2) var(--spacing-3);\n}\n`;","import { LightDomStyles, OutlineElement } from '@phase2/outline-core';\nimport { html, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport componentStyles from './outline-heading-baseline.css.lit';\n\nexport const allowedHeadingSizes = [\n '4xl',\n '3xl',\n '2xl',\n 'xl',\n 'lg',\n 'md',\n 'sm',\n 'xs',\n '2xs',\n] as const;\nexport type AllowedHeadingSizes = (typeof allowedHeadingSizes)[number];\n\nexport const allowedHeadingStyles = [\n 'normal',\n 'bold',\n 'extrabold',\n 'eyebrow',\n] as const;\nexport type AllowedHeadingStyles = (typeof allowedHeadingStyles)[number];\n\nexport const allowedHeadingColors = ['black', 'blue', 'white'] as const;\nexport type AllowedHeadingColors = (typeof allowedHeadingColors)[number];\n\nexport const allowedAccentColors = [\n 'blue-zodiac',\n 'cornflower_blue',\n 'dark_blue',\n 'light_blue',\n 'green',\n 'fun_green',\n 'orange',\n 'red',\n 'dark_red',\n 'dark_gray',\n 'dove_gray',\n 'gray_70',\n 'gray_80',\n 'gray_90',\n 'gray_100',\n] as const;\nexport type AllowedAccentColors = (typeof allowedAccentColors)[number];\n\n/**\n * The Baseline Heading component.\n * @element outline-heading-baseline\n * @slot defaultSlot\n */\n@customElement('outline-heading-baseline')\nexport class OutlineHeadingBaseline extends OutlineElement {\n static styles = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n [componentStyles],\n this.tagName.toLowerCase()\n );\n\n /**\n * The heading level size to apply. Optional override to default styles for a given level\n */\n @property({ type: String, reflect: true, attribute: 'level-size' })\n levelSize: AllowedHeadingSizes;\n\n /**\n * The heading level style to apply. Optional override to default styles for a given level\n */\n @property({ type: String, reflect: true, attribute: 'level-style' })\n levelStyle: AllowedHeadingStyles = 'bold';\n\n /**\n * The heading level color to apply.\n */\n @property({ type: String, reflect: true, attribute: 'level-color' })\n levelColor: AllowedHeadingColors = 'black';\n\n /**\n * The accent color to apply.\n */\n @property({ type: String, reflect: true, attribute: 'accent-color' })\n accentColor: AllowedAccentColors = 'green';\n\n /**\n * Adds the green rule to the bottom of the header.\n */\n @property({ type: Boolean, reflect: true, attribute: 'ruled' })\n ruled = false;\n\n /**\n * Adds a bottom border to the heading.\n */\n @property({ type: Boolean, reflect: true, attribute: 'has-border-bottom' })\n hasBorderBottom = false;\n\n connectedCallback(): void {\n super.connectedCallback();\n if (this.levelSize === '4xl') {\n this.levelStyle = 'extrabold';\n this.requestUpdate();\n }\n }\n render(): TemplateResult {\n return html` `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-heading-baseline': OutlineHeadingBaseline;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --body-color:var(--brand-white);\n --hero-fixed-height:240px;\n --aspect-ratio-large:16 / 9;\n --aspect-ratio-medium:16 / 5;\n --aspect-ratio-small:16 / 3;\n}\n\n :host .outline-hero{\n position:relative;\n background-color:var(--brand-blue-300);\n }\n\n :host .outline-hero.has-no-background{\n background-color:var(--brand-white);\n }\n\n :host .outline-hero.has-fixed-height .outline-hero--background,\n :host .outline-hero.has-fixed-height .background{\n height:var(--hero-fixed-height);\n }\n\n :host .outline-hero--background{\n display:none;\n }\n\n :host .outline-hero.aspect-ratio-small .outline-hero--background{\n aspect-ratio:var(--aspect-ratio-small);\n }\n\n :host .outline-hero.aspect-ratio-medium .outline-hero--background{\n aspect-ratio:var(--aspect-ratio-medium);\n }\n\n :host .outline-hero.aspect-ratio-large .outline-hero--background{\n aspect-ratio:var(--aspect-ratio-large);\n }\n\n:host([has-background]) .outline-hero--content{\n position:absolute;\n }\n\n:host([has-background]) .outline-hero--background{\n display:flex;\n\n min-height:var(--hero-background--min-height);\n }\n\n:host([has-background]) .background{\n display:flex;\n flex-grow:1;\n }\n\n:host([has-background]) .outline-hero{\n background:none;\n }\n\n.overlay{\n position:absolute;\n inset:0;\n z-index:1;\n background:var(--brand-primary-dark-blue);\n opacity:0.6;\n pointer-events:none;\n}\n\n.overlay--no-overlay{\n display:none;\n }\n\n.overlay--30{\n opacity:0.3;\n }\n\n.overlay--80{\n opacity:0.8;\n }\n\n.overlay--100{\n opacity:1;\n }\n\n.outline-hero--content{\n display:flex;\n flex-direction:column;\n justify-content:center;\n top:0;\n bottom:0;\n z-index:1;\n padding:5%;\n}\n\n@media (min-width: 1024px){\n\n.outline-hero--content{\n max-width:45%;\n padding-right:0\n}\n }\n\n.outline-hero--heading{\n --heading-color:var(--brand-white);\n\n line-height:var(--lh-headline-4xl);\n}\n\n.outline-hero--heading.has-no-background{\n --heading-color:var(--brand-primary-dark-blue);\n}\n\n.heading{\n word-break:break-word;\n}\n\n@media (min-width: 768px){\n\n.heading{\n word-break:unset\n}\n }\n\n.outline-hero--description{\n color:var(--brand-white);\n max-width:85%;\n}\n\n.outline-hero--description.has-no-background{\n color:var(--brand-primary-dark-blue);\n}\n\n.outline-hero--background{\n display:flex;\n width:100%;\n flex-direction:column;\n overflow:hidden;\n}\n`;","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\nimg,\npicture{\n width:100%;\n height:100%;\n object-fit:cover;\n}\n\n.outline-hero--background > div{\n display:flex;\n flex-grow:1;\n }\n\ndiv[slot='background']{\n flex-grow:1;\n display:flex;\n}\n\ndiv[slot='background'] > div{\n flex-grow:1;\n }\n\ndiv[slot='background'] > outline-video-player{\n width:100%;\n height:100%;\n flex-grow:1;\n }\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport {\n OutlineElement,\n SlotsController,\n LightDomStyles,\n} from '@phase2/outline-core';\nimport { customElement, property, queryAssignedNodes } from 'lit/decorators.js';\nimport componentStyles from './outline-hero.css.lit';\nimport componentLightDomStyles from './outline-hero-light-dom.css.lit';\nimport { classMap } from 'lit/directives/class-map.js';\n\n/**\n * The OutlineHero component\n * @element outline-hero\n * @slot heading - For outline-heading component\n * @slot description - For outline-styled-text component\n * @slot default for image/video\n */\n@customElement('outline-hero')\nexport class OutlineHero extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n slots = new SlotsController(this);\n resizeObserver: ResizeObserver;\n\n lightDomStyles = new LightDomStyles(\n this,\n componentLightDomStyles,\n this.tagName.toLowerCase()\n );\n\n /**\n * Document property here\n */\n @property({ type: Boolean, attribute: 'has-background' })\n hasBackground: boolean;\n\n /**\n * Document property here\n */\n @property({ type: Boolean, attribute: 'has-fixed-height' })\n hasFixedHeight: boolean;\n\n /**\n * Aspect ratio of Hero component.\n */\n @property({ type: String, reflect: true, attribute: 'aspect-ratio' })\n aspectRatio: string;\n\n /**\n * Override the default opacity of the background image.\n */\n @property({ type: String, reflect: true, attribute: 'level-opacity' })\n levelOpacity: string;\n\n /**\n * Background image slot.\n */\n @queryAssignedNodes({ slot: 'background', flatten: true })\n backgroundSlot: HTMLElement[];\n\n connectedCallback() {\n super.connectedCallback();\n setTimeout(() => this.checkForBackground(), 300);\n setTimeout(() => this.checkForFixedHeight(), 300);\n }\n\n render(): TemplateResult {\n return html`\n
\n ${this.hasBackground\n ? html`
`\n : null}\n
\n
\n ${this.slots.conditionalSlot('heading', false)}\n
\n
\n ${this.slots.conditionalSlot('description', false)}\n
\n
\n
\n ${this.slots.conditionalSlot('background', false)}\n
\n
\n `;\n }\n\n createClassMap(classname: string) {\n return classMap({\n [classname]: true,\n 'has-no-background': !this.hasBackground,\n 'has-fixed-height': this.hasFixedHeight,\n [`aspect-ratio-${this.aspectRatio}`]: this.aspectRatio,\n });\n }\n\n checkForBackground() {\n const hasBackground = !!this.backgroundSlot.length;\n hasBackground\n ? (this.setAttribute('has-background', 'true'), this.applyResizeHandler())\n : null;\n this.applyResizeHandler();\n }\n\n checkForFixedHeight() {\n const hasFixedHeight = this.getAttribute('has-fixed-height');\n hasFixedHeight === 'true'\n ? this.setAttribute('has-fixed-height', 'true')\n : this.removeAttribute('has-fixed-height');\n this.applyResizeHandler();\n }\n\n applyResizeHandler() {\n this.resizeObserver = new ResizeObserver(() => this.setHeightVar());\n\n const headingTextContent = this.shadowRoot?.querySelector(\n '.outline-hero--heading'\n ) as HTMLElement;\n const descriptionTextContent = this.shadowRoot?.querySelector(\n '.outline-hero--description'\n ) as HTMLElement;\n\n this.resizeObserver.observe(headingTextContent);\n this.resizeObserver.observe(descriptionTextContent);\n }\n\n setHeightVar() {\n const headingTextContent = this.shadowRoot?.querySelector(\n '.outline-hero--heading'\n ) as HTMLElement;\n\n const descriptionTextContent = this.shadowRoot?.querySelector(\n '.outline-hero--description'\n ) as HTMLElement;\n\n this.style.setProperty(\n '--hero-background--min-height',\n !this.hasFixedHeight\n ? `${\n headingTextContent?.clientHeight +\n descriptionTextContent?.clientHeight +\n 32\n }px`\n : '240px'\n );\n }\n}\n","import{decorateProperty as e}from\"./base.js\";import{queryAssignedElements as t}from\"./query-assigned-elements.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(o,n,r){let l,s=o;return\"object\"==typeof o?(s=o.slot,l=o):l={flatten:n},r?t({slot:s,flatten:n,selector:r}):e({descriptor:e=>({get(){var e,t;const o=\"slot\"+(s?`[name=${s}]`:\":not([name])\"),n=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(o);return null!==(t=null==n?void 0:n.assignedNodes(l))&&void 0!==t?t:[]},enumerable:!0,configurable:!0})})}export{o as queryAssignedNodes};\n//# sourceMappingURL=query-assigned-nodes.js.map\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:block;\n position:relative;\n}\n\niframe{\n width:100%;\n border:none;\n}\n\n.outline-iframe-wrapper--bordered{\n border:1px solid var(--brand-gray-900);\n}\n\n.outline-iframe-wrapper{\n position:relative;\n overflow:hidden;\n}\n`;","import { html, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { OutlineElement, SlotsController } from '@phase2/outline-core';\nimport { classMap } from 'lit/directives/class-map.js';\nimport componentStyles from './outline-iframe.css.lit';\n\n/**\n * The OutlineIframe component\n * @element outline-iframe\n */\n@customElement('outline-iframe')\nexport class OutlineIframe extends OutlineElement {\n static styles = [componentStyles];\n\n slots = new SlotsController(this);\n\n @property({ type: Boolean, reflect: true, attribute: 'is-bordered' })\n isBordered = false;\n\n render(): TemplateResult {\n return html`\n \n ${this.slots.conditionalSlot('iframe', false)}\n \n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n.link-grid-block{\n --heading-color:var(--brand-white);\n\n background-color:var(--brand-primary-dark-blue);\n color:var(--brand-white);\n padding:var(--spacing-13) var(--spacing-2);\n display:flex;\n flex-direction:column;\n gap:var(--spacing-5);\n}\n\n @media (min-width: 768px){.link-grid-block{\n flex-direction:row;\n align-items:center;\n gap:0;\n padding:var(--spacing-10) var(--spacing-2)\n}\n }\n\n @media (min-width: 1024px){.link-grid-block{\n padding:var(--spacing-10) var(--spacing-12)\n}\n }\n\ntable{\n border-collapse:collapse;\n table-layout:fixed;\n width:100%;\n}\n\ntr{\n display:flex;\n flex-direction:column;\n}\n\ntr:last-child{\n border-bottom:0;\n }\n\n@media (min-width: 768px){\n\ntr{\n display:table-row;\n border-bottom:3px solid var(--brand-blue-600)\n}\n }\n\ntr:first-child tds:first-child{\n border-top:3px solid var(--brand-blue-600);\n}\n\n@media (min-width: 768px){\n\ntr:first-child tds:first-child{\n border-top:0\n}\n }\n\ntd{\n width:100%;\n border-bottom:3px solid var(--brand-blue-600);\n}\n\ntd:nth-child(3){\n border-right:0;\n }\n\n@media (min-width: 768px){\n\ntd{\n width:33.33%;\n border-bottom:0;\n border-right:3px solid var(--brand-blue-600)\n}\n }\n\na{\n font-size:var(--text-base);\n font-family:var(--ff-display);\n letter-spacing:0.125rem;\n line-height:1.2;\n text-align:center;\n display:flex;\n flex-direction:row;\n align-items:center;\n justify-content:space-between;\n gap:var(--spacing-4);\n width:100%;\n padding:var(--spacing-5) 0;\n text-align:left;\n}\n\n@media (min-width: 768px){\n\na{\n padding:var(--spacing-9) var(--spacing-5) var(--spacing-5);\n flex-direction:column;\n text-align:center\n}\n }\n\n@media (min-width: 1024px){\n\na{\n font-size:var(--spacing-5)\n}\n }\n\na:hover outline-icon-baseline{\n transform:scale(1.25);\n}\n\na:hover outline-icon-baseline .right-icon-container{\n transform:translateX(var(--spacing-2));\n }\n\noutline-icon-baseline{\n border-radius:4px;\n background-color:var(--brand-primary-blue);\n display:flex;\n align-items:center;\n justify-content:center;\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n width:2rem;\n height:2rem;\n color:var(--brand-primary-dark-blue);\n}\n`;","import { TemplateResult, html } from 'lit';\nimport {\n LightDomStyles,\n OutlineElement,\n SlotsController,\n} from '@phase2/outline-core';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-link-grid-block.css.lit';\n\n/**\n * The Link Grid Block component\n * @element outline-link-grid-block\n */\n@customElement('outline-link-grid-block')\nexport class OutlineLinkGridBlock extends OutlineElement {\n static styles = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n slots = new SlotsController(this);\n\n render(): TemplateResult {\n return html`\n \n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}.splide{\n position:relative;\n background-color:var(--brand-primary-dark-blue);\n}.splide__slide img{\n width:100%;\n}.splide__pagination{\n display:none;\n}.splide__arrow{\n background:var(--brand-primary-blue);\n border-radius:8px;\n border:0;\n width:3rem;\n height:3rem;\n padding:0;\n position:absolute;\n bottom:0;\n top:50%;\n transform:translateY(-50%);\n z-index:40;\n display:flex;\n justify-content:center;\n align-items:center;\n cursor:pointer;\n transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, outline, outline-color;\n transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration:150ms;\n text-decoration-line:none;\n outline:none;\n border:none;\n}.splide__arrow:disabled{\n display:none;\n }.splide__arrow:hover{\n transform:translateY(-50%) scale(1.05);\n }.splide__arrow:focus{\n background-color:var(--brand-bright-blue-900);\n color:var(--brand-dark-blue-900);\n outline:2px solid var(--brand-dark-blue-900);\n outline-offset:2px;\n }.splide__arrow svg{\n fill:var(--brand-primary-dark-blue);\n width:1.25rem;\n}.splide__arrow--next{\n right:var(--spacing-4);\n}.splide__arrow--prev{\n left:var(--spacing-4);\n}.splide__arrow--prev svg{\n transform:rotate(180deg);\n }.splide__slide.is-visible{\n visibility:visible;\n}.sr-only{\n position:absolute !important;\n overflow:hidden;\n clip:rect(1px, 1px, 1px, 1px);\n width:1px;\n height:1px;\n word-wrap:normal;\n}.slide-count{\n visibility:hidden;\n}@media (min-width: 768px){\n .splide__arrow{justify-content:center}\n .splide__arrow--prev:after{\n top:1.25rem;\n }\n}div[media-type='image'],\ndiv[media-type='image'] > div,\ndiv[media-type='video'],\ndiv[media-type='video'] > div{\n aspect-ratio:4 / 3;\n height:100%;\n}div[media-type='image'] > a{\n display:block;\n aspect-ratio:4 / 3;\n}div[media-type='video']{\n background-color:var(--brand-gray-900);\n}.gallery-image,\nimg{\n aspect-ratio:4 / 3;\n width:auto;\n height:100%;\n margin:0;\n max-width:100%;\n max-height:100%;\n object-fit:cover;\n object-position:center;\n}iframe,\nvideo{\n aspect-ratio:4 / 3;\n height:100%;\n margin:0;\n width:100%;\n}.splide__slide.has-description div[media-type='image'],\n .splide__slide.has-description div[media-type='image'] > div,\n .splide__slide.has-description div[media-type='video'],\n .splide__slide.has-description div[media-type='video'] > div,\n .splide__slide.has-description iframe,\n .splide__slide.has-description video,\n .splide__slide.has-description img{\n aspect-ratio:16 / 9;\n weight:100%;\n height:auto;\n }.modal:not(.open){\n position:absolute;\n width:1px;\n height:1px;\n padding:0;\n margin:-1px;\n overflow:hidden;\n clip:rect(0, 0, 0, 0);\n white-space:nowrap;\n border-width:0;\n}.modal.open{\n z-index:100;\n position:fixed;\n inset:0;\n background-color:rgba(0, 0, 0, 0.8);\n}.modal-container{\n display:flex;\n flex-direction:column;\n align-items:center;\n justify-content:center;\n width:100vw;\n height:100vh;\n padding:1rem;\n}.modal-content{\n display:flex;\n position:relative;\n flex-direction:column;\n flex-flow:column nowrap;\n flex-wrap:nowrap;\n align-items:stretch;\n justify-content:space-evenly;\n overflow:hidden;\n padding:var(--spacing-4);\n width:100%;\n}@media (min-width: 1024px){.modal-content{\n width:50%\n}\n }.modal-content .close{\n position:absolute;\n top:2px;\n right:2px;\n transition-duration:0.2s;\n z-index:9;\n }button.trigger{\n position:relative;\n width:100%;\n height:100%;\n cursor:pointer;\n padding:0;\n border:0;\n outline-offset:2px;\n}button.trigger.has-description{\n height:auto;\n }button.trigger:hover .play-overlay .btn{\n transform:scale(1.05);\n }button.trigger:focus .play-overlay .btn, button.trigger:focus-within .play-overlay .btn{\n background-color:var(--outline-button--primary-bg-color-focus--computed);\n color:var(--outline-button--primary-color-focus--computed);\n font-weight:var(--outline-button--primary-weight-focus--computed);\n outline:2px solid var(--outline-button-accent-color);\n outline-offset:2px;\n }.play-overlay{\n position:absolute;\n z-index:5;\n inset:0;\n display:flex;\n align-items:center;\n justify-content:center;\n width:100%;\n height:100%;\n cursor:pointer;\n}.play-overlay.is-open{\n display:none;\n }.video-wrapper{\n display:flex;\n flex-direction:column;\n align-items:center;\n justify-content:center;\n overflow:hidden;\n}.video-wrapper[hidden]{\n display:none;\n }.video{\n display:flex;\n justify-content:center;\n align-items:center;\n aspect-ratio:4 / 3;\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { LightDomStyles, OutlineElement } from '@phase2/outline-core';\nimport { customElement, query } from 'lit/decorators.js';\nimport componentStyles from './outline-media-gallery.css.lit';\nimport '../outline-button-baseline/outline-button-baseline';\nimport '../outline-icon-baseline/outline-icon-baseline';\nimport buttonStyles from '../outline-button-baseline/outline-button-baseline.css.lit';\nimport Splide from '@splidejs/splide';\n\ntype SplideObject = {\n slide: HTMLElement;\n};\n/**\n * The OutlineMediaGallery component\n * @element outline-media-gallery\n */\n@customElement('outline-media-gallery')\nexport class OutlineMediaGallery extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles, buttonStyles];\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n splide: Splide;\n\n @query('.splide')\n splideEl: HTMLElement;\n\n @query('.splide__arrow--prev')\n prevBtn: HTMLElement;\n\n @query('.splide__arrow--next')\n nextBtn: HTMLElement;\n\n observer: MutationObserver;\n\n connectedCallback() {\n super.connectedCallback();\n\n this.observer = new MutationObserver(() => {\n this.requestUpdate();\n });\n this.observer.observe(this, { childList: true });\n }\n\n disconnectedCallback() {\n this.observer.disconnect();\n }\n\n firstUpdated() {\n const slideLength = this.querySelectorAll('[slot=\"slide\"]').length;\n\n this.splide = new Splide(this.splideEl, {\n keyboard: false,\n arrows: slideLength > 1,\n }).mount();\n\n if (slideLength <= 1) return;\n\n // Adds spans to buttons for screen readers\n this.prevBtn.innerHTML += 'Previous Slide';\n this.nextBtn.innerHTML += 'Next Slide';\n\n // Add event listener for slide change.\n this.splide.on('hidden', this._handleSlideChange.bind(this));\n }\n\n render(): TemplateResult {\n return html`\n
\n
\n
\n
\n ${(\n Array.from(\n this.querySelectorAll(`[slot='slide']`)\n ) as HTMLElement[]\n ).map((slideElementLightDOM, index, LightDOMElements) => {\n const videoElement = slideElementLightDOM.querySelector(\n '[media-type=\"video\"]'\n );\n const hasVideo = videoElement !== null;\n const isExternalVideo =\n videoElement?.querySelector('iframe') !== null;\n const hasDescription =\n slideElementLightDOM.querySelector('[media-description]') !==\n null;\n\n return html`\n \n ${hasVideo && !isExternalVideo\n ? html`\n \n this._handleTriggerKeydown(e)}\"\n @click=\"${(e: MouseEvent) => this._playVideo(e)}\"\n >\n
\n
\n
\n \n
\n
\n ${slideElementLightDOM\n .querySelector('[media-type=\"image\"]')\n ?.cloneNode(true)}\n
\n \n ${slideElementLightDOM\n .querySelector('[media-type=\"video\"]')\n ?.cloneNode(true)}\n
\n \n `\n : videoElement?.cloneNode(true) ||\n slideElementLightDOM\n .querySelector('[media-type=\"image\"]')\n ?.cloneNode(true)}\n ${hasDescription\n ? html`\n \n `\n : null}\n
\n `;\n })}\n
\n
\n \n \n `;\n }\n\n /**\n * Plays the video when the trigger element is clicked.\n *\n * @param {Event} event - The event that triggered the modal closure.\n * @returns {void}\n */\n _playVideo = (event: Event): void => {\n const target = event.currentTarget as HTMLElement;\n const video = target?.querySelector('video') as\n | HTMLVideoElement\n | undefined;\n const videoWrapper = target?.querySelector('.video-wrapper') as HTMLElement;\n const mediaGalleryVideo = target?.querySelector(\n '.media-gallery-video'\n ) as HTMLElement;\n\n if (video) {\n video.play();\n videoWrapper?.setAttribute('aria-hidden', 'true');\n mediaGalleryVideo?.removeAttribute('aria-hidden');\n videoWrapper?.setAttribute('hidden', 'true');\n mediaGalleryVideo?.removeAttribute('hidden');\n }\n };\n\n /**\n * Handles keyboard events for modal triggers, specifically the \"Enter\" key.\n *\n * @param {KeyboardEvent} event - The keyboard event triggered.\n * @returns {void}\n */\n _handleTriggerKeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Enter') {\n event.preventDefault();\n this._playVideo(event);\n }\n };\n\n /**\n * Handles the slide change event and pauses any playing video.\n *\n * @param {SplideObject} slideObject - The Splide object for the current slide.\n *\n * @returns {void}\n */\n _handleSlideChange = (slideObject: SplideObject): void => {\n const video = slideObject.slide.querySelector('video') as HTMLVideoElement;\n if (video && !video.paused) {\n video.pause();\n }\n };\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\noutline-styled-text-baseline{\n --body-color:var(--brand-white);\n}\n\n:host{\n display:block;\n transform:translateY(-2px);\n}\n\n.media-gallery-caption{\n display:flex;\n background-color:var(--brand-primary-dark-blue);\n color:var(--brand-white);\n}\n\n.media-gallery-caption.inline{\n padding:var(--spacing-12);\n flex-direction:column;\n}\n\n@media (min-width: 1024px){\n\n.media-gallery-caption.inline{\n align-items:center;\n flex-direction:row\n}\n }\n\n.media-gallery-caption.stacked{\n flex-direction:column;\n padding:var(--spacing-12) var(--spacing-20);\n}\n\n.heading{\n display:flex;\n align-items:center;\n}\n\n.description{\n font-size:1.375rem;\n line-height:1.5;\n text-align:left;\n}\n\n@media (min-width: 1024px){\n\n.inline hr{\n display:none\n }\n }\n\n@media (min-width: 1024px){\n\n.inline .description{\n border-left:0.1875rem solid var(--brand-green-900);\n height:100%;\n padding-left:var(--spacing-16);\n margin-left:var(--spacing-16)\n }\n }\n\nhr{\n border-radius:8px;\n border:solid var(--brand-green-900);\n border-width:8px 0 0;\n display:block;\n height:0.0625rem;\n max-width:5.3125rem;\n padding:0;\n position:relative;\n text-align:left;\n width:100%;\n margin-top:var(--spacing-2);\n margin-bottom:var(--spacing-4);\n margin-left:0;\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport {\n LightDomStyles,\n OutlineElement,\n SlotsController,\n} from '@phase2/outline-core';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-media-gallery-caption.css.lit';\n\n/**\n * The Media Gallery Caption component\n * @element outline-media-gallery-caption\n */\n@customElement('outline-media-gallery-caption')\nexport class OutlineMediaGalleryCaption extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n slots = new SlotsController(this);\n\n /**\n * The variant of the caption\n * @attr variant\n * @type {'inline' | 'stacked'}\n * @default 'stacked'\n **/\n @property({ type: String, reflect: true, attribute: 'variant' })\n variant: 'inline' | 'stacked' = 'stacked';\n\n render(): TemplateResult {\n return html`\n \n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:flex;\n flex:1;\n}\n\n.news-card{\n display:flex;\n flex-direction:column;\n flex-grow:1;\n flex-shrink:0;\n font-family:var(--ff-display);\n background-color:var(--brand-white);\n box-shadow:0 0 40px 5px rgba(4, 30, 74, 0.1);\n position:relative;\n width:100%;\n height:100%;\n z-index:1;\n cursor:pointer;\n transition:transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n}\n\n.news-card:hover{\n transform:translateY(-10px);\n box-shadow:0 10px 20px 2px rgba(4, 30, 74, 0.25);\n }\n\n.news-card .content{\n display:flex;\n flex-direction:column;\n justify-content:start;\n padding:var(--spacing-5);\n height:100%;\n }\n\n@media (min-width: 1024px){\n\n.news-card .content{\n padding:var(--spacing-8)\n }\n }\n\n.news-card .tag{\n margin-bottom:var(--spacing-3);\n }\n\n.news-card .title{\n --heading-color:var(--brand-dark-blue-900);\n\n font-size:var(--fs-h3-small);\n line-height:var(--lh-h3-medium);\n margin-bottom:var(--spacing-4);\n }\n\n@media (min-width: 1024px){\n\n.news-card .title{\n font-size:var(--fs-h3);\n line-height:var(--lh-h2-small)\n }\n }\n\n.news-card .cta{\n flex-grow:1;\n align-items:flex-end;\n display:flex;\n }\n\nimg{\n max-width:100%;\n vertical-align:middle;\n object-fit:cover;\n}\n`;","import { TemplateResult, html } from 'lit';\nimport {\n LightDomStyles,\n OutlineElement,\n SlotsController,\n} from '@phase2/outline-core';\nimport { customElement, query } from 'lit/decorators.js';\nimport componentStyles from './outline-news-card.css.lit';\n\nimport placeholderImage from '../../assets/images/placeholder-image.png';\n\n/**\n * The OutlineNewsCard component\n * @element outline-news-card\n */\n@customElement('outline-news-card')\nexport class OutlineNewsCard extends OutlineElement {\n static styles = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n slots = new SlotsController(this);\n\n @query('slot[name=\"cta\"]')\n ctaSlot: HTMLSlotElement;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('click', this.handleClick);\n }\n\n handleClick(): void {\n // Get all nodes assigned to the 'cta' slot.\n const assignedNodes = this.ctaSlot.assignedNodes({ flatten: true });\n\n // Recursive function to search for an tag.\n const findLink = (nodes: Node[]): HTMLAnchorElement | null => {\n for (const node of nodes) {\n if (node.nodeName === 'A') {\n return node as HTMLAnchorElement;\n } else if (node instanceof HTMLSlotElement) {\n const slotAssignedElements = node.assignedElements({ flatten: true });\n const slotResult = findLink(slotAssignedElements);\n if (slotResult) {\n return slotResult;\n }\n } else if (node.childNodes.length > 0) {\n const childResult = findLink(Array.from(node.childNodes));\n if (childResult) {\n return childResult;\n }\n }\n }\n return null;\n };\n\n // Find the first tag in the assigned nodes.\n const link = findLink(assignedNodes);\n\n if (link) {\n link.click();\n }\n }\n\n render(): TemplateResult {\n return html`\n
\n ${this.slots.exist('image')\n ? html` ${this.slots.conditionalSlot('image', false)} `\n : html`\n
\n \"\"\n
\n `}\n
\n ${this.slots.conditionalSlot('tag', false)}\n ${this.slots.conditionalSlot('title', false)}\n ${this.slots.conditionalSlot('cta', false)}\n
\n
\n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --body-font-size:var(--fs-body-sm);\n flex:1;\n}\n\n.org-chart{\n display:flex;\n flex-direction:column;\n}\n\n.org-chart--top-content{\n padding-bottom:var(--spacing-3);\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { OutlineElement, SlotsController } from '@phase2/outline-core';\nimport { customElement, queryAssignedElements } from 'lit/decorators.js';\nimport componentStyles from './outline-org-chart.css.lit';\nimport { OutlineOrgChartBaselinePanel } from './outline-org-chart-panel/outline-org-chart-panel';\n/**\n * The OutlineOrgChart component\n * @element outline-org-chart\n */\n@customElement('outline-org-chart')\nexport class OutlineOrgChart extends OutlineElement {\n 'slots' = new SlotsController(this);\n static 'styles': CSSResultGroup = [componentStyles];\n\n /**\n * Reference to in panels slot.\n */\n @queryAssignedElements({ slot: 'panels' })\n 'panels': OutlineOrgChartBaselinePanel[];\n\n 'render'(): TemplateResult {\n return html`\n
\n
\n
\n ${this.slots.conditionalSlot('heading', false)}\n
\n
\n
\n \n
\n
\n `;\n }\n\n /**\n * @param event\n * @returns void\n * Adds up/down arrow keyboard navigation.\n * TODO: try to refactor to something simpler.\n */\n 'handleKeyboardNav'(event: KeyboardEvent) {\n let index = 0;\n const panels = this.panels;\n const start = Array.prototype.indexOf.call(\n panels,\n event.target as HTMLElement\n );\n\n // bail on wrong key\n if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') {\n return;\n }\n if (event.key === 'ArrowDown') {\n if (panels?.length && start + 1 > panels?.length - 1) {\n index = 0;\n } else index = start + 1;\n }\n if (event.key === 'ArrowUp') {\n if (panels?.length && start - 1 < 0) {\n index = panels?.length - 1;\n } else index = start - 1;\n }\n const focusTarget = panels?.[index] as unknown as HTMLElement;\n focusTarget.shadowRoot?.querySelector('button')?.focus();\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n.visually-hidden{\n clip:rect(0 0 0 0);\n -webkit-clip-path:inset(50%);\n clip-path:inset(50%);\n height:1px;\n overflow:hidden;\n position:absolute;\n white-space:nowrap;\n width:1px;\n}\n\n:host{\n font-family:var(--ff-body);\n font-size:var(--fs-base);\n}\n\n@media (min-width: 768px){\n\n:host{\n font-size:var(--fs-lg);\n}\n }\n\n:host{\n color:var(--brand-dark-blue-900);\n}\n\nul{\n display:flex;\n align-items:center;\n gap:10px;\n}\n\n.pager__item{\n width:2rem;\n height:2rem;\n display:flex;\n justify-content:center;\n align-items:center;\n}\n\n@media (min-width: 768px){\n\n.pager__item{\n width:2.5rem;\n height:2.5rem\n}\n }\n\n@media (min-width: 1024px){\n\n.pager__item{\n width:3rem;\n height:3rem\n}\n }\n\n.pager__item{\n border-radius:4px;\n}\n\n.pager__item:focus-within{\n outline:2px solid var(--brand-dark-blue-900);\n outline-offset:-2px;\n }\n\n.pager__item:not(.pager__item.is-active):hover{\n background-color:var(--brand-dark-blue-900);\n color:var(--brand-white);\n }\n\n.pager__item a{\n width:14px;\n height:24px;\n display:flex;\n justify-content:center;\n align-items:center;\n }\n\n.pager__item a:focus{\n outline:none;\n }\n\n.pager__item.is-active a{\n border-bottom:2px solid var(--brand-dark-blue-900);\n }\n\n.pager__item--previous,\n.pager__item--next{\n display:flex;\n align-items:center;\n justify-content:center;\n background-color:var(--brand-bright-blue-900);\n}\n\n.pager__item--previous outline-icon-baseline, .pager__item--next outline-icon-baseline{\n margin-left:1px;\n }\n\n@media (min-width: 768px){\n\n.pager__item--previous outline-icon-baseline, .pager__item--next outline-icon-baseline{\n transform:scale(1.2)\n }\n }\n\n@media (min-width: 1024px){\n\n.pager__item--previous outline-icon-baseline, .pager__item--next outline-icon-baseline{\n transform:scale(1.4)\n }\n }\n\n.pager__item--previous span[aria-hidden='true'],\n.pager__item--next span[aria-hidden='true']{\n clip:rect(0 0 0 0);\n -webkit-clip-path:inset(50%);\n clip-path:inset(50%);\n height:1px;\n overflow:hidden;\n position:absolute;\n white-space:nowrap;\n width:1px;\n}\n\n.pager__item--previous{\n transform:rotate(180deg);\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-pager.css.lit';\nimport { OutlineElement, LightDomStyles } from '@phase2/outline-core';\nimport '../outline-icon-baseline/outline-icon-baseline';\n\n/**\n * The OutlinePager component\n * @element outline-pager\n */\n@customElement('outline-pager')\nexport class OutlinePager extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n updated() {\n if (this.querySelector('.pager__item--previous a')) {\n this.querySelector('.pager__item--previous a')!.innerHTML +=\n '';\n }\n if (this.querySelector('.pager__item--next a')) {\n this.querySelector('.pager__item--next a')!.innerHTML +=\n '';\n }\n }\n\n render(): TemplateResult {\n return html` `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --transition-time:0.3s;\n --easing:cubic-bezier(0.86, 0, 0.07, 1);\n --popover-btn-scale:1 + (10 / 30);\n --popover-btn-large-scale:1 + (10 / 40);\n}\n\n.show-for-sr{\n clip:rect(1px, 1px, 1px, 1px);\n height:1px;\n overflow:hidden;\n position:absolute !important;\n white-space:nowrap;\n width:1px;\n}\n\n.popover{\n left:0;\n position:absolute;\n top:0;\n transition:all var(--transition-time);\n z-index:10;\n display:none;\n}\n\n@media (min-width: 1024px){\n\n.popover{\n display:block\n}\n }\n\n.popover__container{\n background-color:var(--brand-dark-blue);\n border-radius:20px;\n height:268px;\n position:absolute;\n transition:all var(--transition-time) var(--easing);\n width:418px;\n left:-388px;\n padding:32px;\n top:calc(-268px + 30px);\n }\n\n.popover__container--alt:not(.popover--is-hidden) .popover__container{\n background-color:var(--brand-light-blue);\n height:324px;\n padding:50px;\n }\n\n.our-states .popover__container--alt:not(.popover--is-hidden) .popover__container{\n top:calc(-324px + 30px);\n }\n\n.interactive-document .popover__container{\n left:-378px;\n top:calc(-268px + 40px);\n }\n\n.popover__content{\n height:100%;\n transition:all var(--transition-time) var(--transition-time);\n }\n\n.popover__heading,\n .popover__desc{\n color:var(--outline-white);\n }\n\n.popover__heading--alt .popover__heading, .popover__desc--alt .popover__desc{\n color:var(--brand-dark-blue);\n }\n\n.popover__heading{\n font-size:32px;\n font-family:var(--ff-bold);\n line-height:calc(40 / 32);\n }\n\n.popover__heading,\n .user-markup .popover__heading{\n margin-bottom:calc(16px - 6px);\n margin-top:-6px;\n }\n\n.popover__desc{\n font-size:18px;\n font-family:var(--ff-body);\n line-height:calc(27 / 18);\n margin-bottom:8px;\n }\n\n.popover .popover-btn{\n left:0;\n position:absolute;\n top:0;\n }\n\n.popover--large__heading{\n font-size:24px;\n line-height:calc(32 / 24);\n }\n\n.popover--large--is-hidden__container{\n height:40px;\n width:40px;\n }\n\n.popover--is-hidden{\n transition:all var(--transition-time) var(--transition-time);\n z-index:1;\n }\n\n.md-no-js .popover--is-hidden{\n z-index:10;\n }\n\n.popover--is-hidden .popover__container{\n background-color:rgba(var(--brand-dark-blue), 0);\n border-radius:50%;\n height:30px;\n left:0;\n overflow:hidden;\n padding:0;\n pointer-events:none;\n top:0;\n transition:all var(--transition-time) var(--easing);\n width:30px;\n }\n\n.md-no-js .popover--is-hidden .popover__container{\n background-color:var(--brand-dark-blue);\n border-radius:20px;\n height:268px;\n left:-388px;\n padding:40px;\n top:-228px;\n width:418px;\n }\n\n.popover--is-hidden .popover__content{\n opacity:0;\n transition:all 0s;\n visibility:hidden;\n }\n\n.md-no-js .popover--is-hidden .popover__content{\n opacity:1;\n visibility:visible;\n }\n\n.popover--reverse__container{\n left:0;\n }\n\n.popover--service-address{\n left:calc(270 / 837 * 100%);\n top:calc(18 / 415 * 100%);\n }\n\n.popover--account-number{\n left:calc(552 / 837 * 100%);\n top:calc(18 / 415 * 100%);\n }\n\n.popover--contact{\n left:calc(32 / 837 * 100%);\n top:calc(77 / 415 * 100%);\n }\n\n.popover--usage-data{\n left:calc(32 / 837 * 100%);\n top:calc(146 / 415 * 100%);\n }\n\n.popover--bill-calculation{\n left:calc(32 / 837 * 100%);\n top:calc(228 / 415 * 100%);\n }\n\n.popover--history-chart{\n left:calc(455 / 837 * 100%);\n top:calc(228 / 415 * 100%);\n }\n\n.popover--due-date{\n left:calc(32 / 837 * 100%);\n top:calc(365 / 415 * 100%);\n }\n\n.popover--illinois{\n left:calc(515 / 839 * 100%);\n top:calc(206 / 519 * 100%);\n }\n\n@media (min-width: 1280px){\n\n.popover--illinois{\n left:calc(692 / 1118 * 100%);\n top:calc(284 / 691 * 100%)\n }\n }\n\n.popover--indiana{\n left:calc(563 / 839 * 100%);\n top:calc(207 / 519 * 100%);\n }\n\n@media (min-width: 1280px){\n\n.popover--indiana{\n left:calc(756 / 1118 * 100%);\n top:calc(284 / 691 * 100%)\n }\n }\n\n.popover--new-jersey{\n left:calc(736 / 839 * 100%);\n top:calc(175 / 519 * 100%);\n }\n\n@media (min-width: 1280px){\n\n.popover--new-jersey{\n left:calc(986 / 1118 * 100%);\n top:calc(236 / 691 * 100%)\n }\n }\n\n.popover--north-carolina{\n left:calc(688 / 839 * 100%);\n top:calc(283 / 519 * 100%);\n }\n\n@media (min-width: 1280px){\n\n.popover--north-carolina{\n left:calc(932 / 1118 * 100%);\n top:calc(385 / 691 * 100%)\n }\n }\n\n.popover--ohio{\n left:calc(613 / 839 * 100%);\n top:calc(196 / 519 * 100%);\n }\n\n@media (min-width: 1280px){\n\n.popover--ohio{\n left:calc(825 / 1118 * 100%);\n top:calc(266 / 691 * 100%)\n }\n }\n\n.popover--pennsylvania{\n left:calc(683 / 839 * 100%);\n top:calc(171 / 519 * 100%);\n }\n\n@media (min-width: 1280px){\n\n.popover--pennsylvania{\n left:calc(922 / 1118 * 100%);\n top:calc(232 / 691 * 100%)\n }\n }\n\n.popover--texas{\n left:calc(363 / 839 * 100%);\n top:calc(395 / 519 * 100%);\n }\n\n@media (min-width: 1280px){\n\n.popover--texas{\n left:calc(502 / 1118 * 100%);\n top:calc(545 / 691 * 100%)\n }\n }\n\n.popover--virginia{\n left:calc(689 / 839 * 100%);\n top:calc(238 / 519 * 100%);\n }\n\n@media (min-width: 1280px){\n\n.popover--virginia{\n left:calc(922 / 1118 * 100%);\n top:calc(322 / 691 * 100%)\n }\n }\n\n.menu-secondary{\n display:flex;\n align-items:center;\n gap:10px;\n color:white;\n font-family:var(--ff-bold);\n}\n\n.popover-btn{\n background-color:rgba(var(--outline-white), 0);\n color:var(--brand-dark-blue);\n cursor:pointer;\n display:block;\n height:30px;\n position:relative;\n width:30px;\n}\n\n.popover-btn,\n .popover-btn:before,\n .popover-btn:after{\n border-radius:50%;\n }\n\n.popover-btn:before,\n .popover-btn:after{\n content:'';\n display:block;\n position:absolute;\n transition-duration:var(--transition-time) / 2;\n transition-property:transform;\n }\n\n.popover-btn:before{\n background-color:var(--brand-light-blue);\n border:4px solid var(--brand-dark-blue);\n box-shadow:inset 0 0 0 2px var(--outline-white);\n content:'';\n height:100%;\n left:0;\n top:0;\n width:100%;\n z-index:2;\n }\n\n.popover-btn:after{\n background-color:rgba(var(--brand-light-blue), 0.15);\n height:calc(100% + (8px * 2));\n left:50%;\n top:50%;\n transform:translate(-50%, -50%);\n width:calc(100% + (8px * 2));\n z-index:1;\n }\n\n.popover-btn:hover:before{\n transform:scale(var(--popover-btn-scale));\n }\n\n.popover-btn:hover:after{\n transform:translate(-50%, -50%) scale(var(--popover-btn-scale));\n }\n\n.popover-btn .icon-minus,\n .popover-btn .icon-plus{\n color:var(--brand-dark-blue);\n height:10px;\n left:50%;\n pointer-events:none;\n position:absolute;\n top:50%;\n transform:translate(-50%, -50%);\n transition-duration:var(--transition-time) / 2;\n transition-property:color, opacity;\n width:10px;\n z-index:3;\n }\n\n.md-no-js .popover-btn .icon-plus{\n opacity:0;\n }\n\n.popover-btn .icon-minus{\n opacity:0;\n }\n\n.md-no-js .popover-btn .icon-minus{\n opacity:1;\n }\n\n.popover-btn outline-icon-baseline{\n position:absolute;\n top:50%;\n left:50%;\n transform:translate(-50%, -50%);\n z-index:4;\n }\n\n.popover-btn--due-date,\n .popover-btn--history-chart{\n display:none;\n position:absolute;\n }\n\n@media (min-width: 1024px){\n\n.popover-btn--due-date,\n .popover-btn--history-chart{\n display:block\n }\n }\n\n.popover-btn--is-active,\n .popover-btn .popover-btn--is-active{\n z-index:100;\n color:var(--brand-light-blue);\n }\n\n.popover-btn--is-active:before{\n background-color:var(--brand-dark-blue);\n }\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { OutlineElement } from '@phase2/outline-core';\nimport componentStyles from './outline-popover.css.lit';\nimport iconStyles from '../outline-icon-baseline/outline-icon-baseline.css.lit';\nimport '../outline-button-baseline/outline-button-baseline';\nimport '../outline-icon-baseline/outline-icon-baseline';\n\n/**\n * The OutlinePopover component\n *\n * @element outline-popover\n * @property {boolean} active - Whether the popover is visible.\n * @property {string} heading - The heading text of the popover.\n * @property {string} description - The description text of the popover.\n * @property {string} link - The URL link for more information.\n * @property {string} popoverId - The unique identifier for the popover.\n * @property {boolean} disableOthers - Disable other popovers when this one is visible.\n */\n@customElement('outline-popover')\nexport class OutlinePopover extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles, iconStyles];\n\n /**\n * Whether the popover is visible.\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * The heading text of the popover.\n */\n @property({ type: String, reflect: true, attribute: 'heading' })\n heading = '';\n\n /**\n * The description text of the popover.\n */\n @property({ type: String, reflect: true, attribute: 'description' })\n description = '';\n\n /**\n * The URL link for more information.\n */\n @property({ type: String, reflect: true, attribute: 'link' })\n link = '';\n\n /**\n * The button label.\n */\n @property({ type: String, reflect: true, attribute: 'button-label' })\n buttonLabel = '';\n\n /**\n * The button class.\n */\n @property({ type: String, reflect: true, attribute: 'button-class' })\n buttonClass = '';\n\n /**\n * The popover class.\n */\n @property({ type: String, reflect: true, attribute: 'popover-class' })\n popoverClass = '';\n\n /**\n * The popover id.\n */\n @property({ type: String, reflect: true, attribute: 'popover-id' })\n popoverId = '';\n\n /**\n * Disable other popovers when this one is visible.\n */\n @property({ type: Boolean, reflect: true, attribute: 'disable-others' })\n disableOthers = false;\n\n render(): TemplateResult {\n return html`\n \n
\n \n \n \n ${this.active\n ? `Hide information about ${this.heading}`\n : `Show information about ${this.heading}`}\n \n \n \n `;\n }\n\n toggle() {\n // Always deactivate other popovers.\n const popovers = document.querySelectorAll('outline-popover');\n popovers.forEach(popover => {\n if (popover !== this) {\n (popover as OutlinePopover).active = false;\n }\n });\n\n // Toggle the current popover.\n this.active = !this.active;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n height:100%;\n max-width:100%;\n}\n\n:host [variation='large'] .container{\n height:100%;\n }\n\n.container{\n background-color:var(--brand-white);\n box-shadow:0px 4px 40px 5px rgba(4, 30, 74, 0.1);\n height:100%;\n}\n\n.container.small{\n display:flex;\n margin-bottom:var(--spacing-12);\n }\n\n.content{\n display:flex;\n flex-direction:column;\n padding:var(--spacing-7);\n}\n\n.content.small{\n padding-block:var(--spacing-6);\n flex:5;\n justify-content:center;\n }\n\n.rule{\n border:solid var(--brand-green-900);\n border-width:8px 0 0;\n height:1px;\n padding:0;\n position:relative;\n text-align:left;\n width:100%;\n margin:var(--spacing-6) 0;\n border-radius:3px;\n border-top-width:3px;\n}\n\n.contact-info{\n margin-bottom:var(--spacing-6);\n}\n\n.employment-info{\n margin-bottom:var(--spacing-6);\n}\n\ndiv[slot='name'] a{\n transition:background-color 0.425s, border-color 0.425s;\n}\n\ndiv[slot='name'] a:hover,\n div[slot='name'] a:focus{\n background-color:var(--brand-green-900);\n }\n\ndiv[slot='name'] a:focus{\n background-color:var(--brand-green-900);\n border-top-color:var(--brand-dark-blue-900);\n outline:none;\n }\n\ndiv[slot='title'],\ndiv[slot='department']{\n text-transform:uppercase;\n}\n\ndiv[slot='email']{\n word-wrap:break-word;\n}\n\ndiv[slot='phone'],\ndiv[slot='email']{\n color:var(--brand-dark-blue-900);\n font-size:var(--fs-headline-2xs-responsive);\n line-height:1.5;\n}\n\ndiv[slot='phone'] a, div[slot='email'] a{\n padding:0 0.1875rem;\n border-bottom:2px solid var(--brand-dark-blue-900);\n border-top:2px solid transparent;\n transition:background-color 0.425s, border-color 0.425s;\n }\n\ndiv[slot='phone'] a:hover,\n div[slot='phone'] a:focus,\n div[slot='email'] a:hover,\n div[slot='email'] a:focus{\n background-color:var(--brand-green-900);\n }\n\ndiv[slot='phone'] a:focus, div[slot='email'] a:focus{\n background-color:var(--brand-green-900);\n border-top-color:var(--brand-dark-blue-900);\n outline:none;\n }\n\n.btn{\n width:100%;\n justify-content:center;\n}\n\n@media (min-width: 768px){\n\n.btn{\n width:auto;\n justify-content:flex-start\n}\n }\n\n.image{\n height:312px;\n display:flex;\n background-color:var(--brand-gray-200);\n}\n\n.small .image{\n height:auto;\n flex:2;\n min-width:12rem;\n }\n\ndiv[slot='image']{\n width:100%;\n height:100%;\n overflow:hidden;\n}\n\ndiv[slot='image'] .contextual-region{\n height:100%;\n }\n\nimg{\n width:100%;\n height:100%;\n vertical-align:middle;\n object-fit:cover;\n object-position:center;\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport {\n LightDomStyles,\n OutlineElement,\n SlotsController,\n} from '@phase2/outline-core';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-profile-card.css.lit';\nimport placeholderImage from '../../assets/images/placeholder-image.png';\n\ntype variants = 'small' | 'large';\n\n/**\n * The OutlineProfileCard component\n * @element outline-profile-card\n */\n@customElement('outline-profile-card')\nexport class OutlineProfileCard extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n /**\n * Determines the variant of the profile card\n */\n @property({ type: String, reflect: true, attribute: 'variation' })\n variation: variants = 'large';\n\n slots = new SlotsController(this);\n\n render(): TemplateResult {\n return this.variation === 'large'\n ? html`\n
\n ${this.slots.exist('image')\n ? html`${this.slots.conditionalSlot('image', false)}`\n : html`\n
\n \"\"\n
\n `}\n
\n ${this.slots.conditionalSlot('name', false)}\n
\n
\n ${this.slots.conditionalSlot('title', false)}\n ${this.slots.conditionalSlot('department', false)}\n
\n
\n ${this.slots.conditionalSlot('phone', false)}\n ${this.slots.conditionalSlot('email', false)}\n
\n ${this.slots.conditionalSlot('cta', false)}\n
\n
\n `\n : html`\n
\n ${this.slots.exist('image')\n ? html`${this.slots.conditionalSlot('image', false)}`\n : html`\n
\n \"\"\n
\n `}\n
\n ${this.slots.conditionalSlot('name', false)}\n
\n ${this.slots.conditionalSlot('title', false)}\n
\n
\n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n.profile-page-wrapper{\n margin-bottom:var(--spacing-12);\n}\n\n.name{\n margin-bottom:var(--spacing-3);\n}\n\n@media (min-width: 768px){\n\n.details-wrapper{\n display:flex;\n justify-content:space-between;\n gap:10%\n}\n }\n\n.image-placeholder img{\n max-width:100%;\n height:auto;\n}\n\n.title,\n.department{\n color:var(--brand-primary-dark-blue);\n font-family:var(--ff-display);\n}\n\n.department{\n font-size:var(--fs-body-lg);\n}\n\n.personal-info-wrapper{\n margin-bottom:var(--spacing-4);\n}\n\n.detail-contact,\n.detail-location{\n font-size:var(--fs-body-sm);\n}\n\n@media (min-width: 768px){\n\n.detail-contact,\n.detail-location{\n width:50%\n}\n }\n\n.detail{\n display:flex;\n gap:var(--spacing-4);\n padding:var(--spacing-2) 0;\n font-family:var(--ff-body);\n}\n\n.detail .label{\n color:var(--brand-gray-90);\n font-family:var(--ff-display);\n width:40%;\n min-width:40%;\n }\n\n.detail a{\n text-decoration:underline;\n color:var(--brand-primary-dark-blue);\n transition:0.3s ease all;\n }\n\n.detail a:hover,\n .detail a:focus{\n outline:none;\n color:var(--brand-primary-dark-blue);\n background-color:var(--brand-primary-green);\n }\n\n.detail a:focus{\n border-top:1px solid var(--brand-primary-dark-blue);\n border-bottom:1px solid var(--brand-primary-dark-blue);\n }\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport {\n OutlineElement,\n SlotsController,\n LightDomStyles,\n} from '@phase2/outline-core';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-profile-page-wrapper.css.lit';\n\nimport placeholderImage from '../../assets/images/placeholder-image.png';\n\nimport '../outline-grid-baseline/outline-grid-baseline';\nimport '../outline-column-baseline/outline-column-baseline';\n\n/**\n * The Profile Page Wrapper component\n * @element outline-profile-page-wrappe\n * @slot image - Image slot\n * @slot name - Person's name\n * @slot title - Job title\n * @slot department - Department\n * @slot detail-contact - Contact information (office/mobile phone, email)\n * @slot detail-location - Office location/name\n * @slot page-content - Page body/content\n */\n@customElement('outline-profile-page-wrapper')\nexport class OutlineProfilePageWrapper extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n slots = new SlotsController(this);\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n render(): TemplateResult {\n return html`\n
\n \n \n ${this.slots.exist('image')\n ? html``\n : html`\n
\n \"\"\n
\n `}\n
\n\n \n ${this.slots.conditionalSlot('name', false)}\n
\n ${this.slots.conditionalSlot('title', false)}\n ${this.slots.conditionalSlot('department', false)}\n
\n\n
\n ${this.slots.conditionalSlot('detail-contact', false)}\n ${this.slots.conditionalSlot('detail-location', false)}\n
\n
\n
\n
\n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\nblockquote{\n --quote-text-color:var(--brand-primary-dark-blue);\n --quote-icon-background-color:var(--brand-primary-dark-blue);\n --quote-icon-border-color:transparent;\n\n position:relative;\n display:inline-block;\n width:-moz-fit-content;\n width:fit-content;\n display:flex;\n flex-direction:column-reverse;\n margin:0;\n}\n\n @media (min-width: 768px){blockquote{\n display:block;\n padding-left:var(--spacing-28);\n padding-top:var(--spacing-2);\n max-width:65%\n}\n }\n\nblockquote::after{\n content:'';\n background-color:var(--quote-icon-background-color);\n background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJldS1xdW90ZSIgdmlld0JveD0iMCAwIDQ3IDMyIj48cGF0aCBjbGFzcz0iIiBkPSJNMjQuMzgxIDMybDExLjAzNS0zMmgxMS44MjJsLTguNDA3IDMyek0wIDMybDExLjI5OC0zMmgxMS41NmwtOC4xNDUgMzJ6IiBmaWxsPSIjZmZmZmZmIi8+PC9zdmc+');\n background-repeat:no-repeat;\n background-size:50%;\n background-position:center center;\n min-width:4.5rem;\n width:4.5rem;\n height:4.5rem;\n border-radius:50%;\n overflow:hidden;\n display:block;\n margin-bottom:var(--spacing-6);\n border:2px solid var(--quote-icon-border-color);\n}\n\n@media (min-width: 768px){\n\nblockquote::after{\n position:absolute;\n top:0;\n left:0;\n margin-bottom:0\n}\n }\n\nblockquote,\nblockquote p{\n font-family:var(--ff-body);\n font-style:italic;\n font-size:clamp(\n 1.625rem,\n 1.4519230769230769rem + 0.8653846153846154vw,\n 2.1875rem\n );\n line-height:1.6;\n color:var(--quote-text-color);\n}\n\n.quote-caption{\n font-size:var(--fs-body-md);\n line-height:1.25;\n text-transform:uppercase;\n color:var(--brand-primary-dark-blue);\n font-family:var(--ff-bold);\n margin-top:var(--spacing-4);\n}\n\n@media (min-width: 768px){\n\n.quote-caption{\n padding-left:var(--spacing-28)\n}\n }\n\nblockquote.text-align-center{\n display:block;\n margin-left:auto;\n margin-right:auto;\n}\n\nblockquote.text-align-right{\n display:block;\n margin-left:auto;\n margin-right:0;\n}\n\nblockquote::before{\n display:none;\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { OutlineElement } from '@phase2/outline-core';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-quote.css.lit';\n\n/**\n * The Quote component\n * @element outline-quote\n * @slot default - slot for quote\n * @slot attribution - slot for attribution\n */\n@customElement('outline-quote')\nexport class OutlineQuote extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n render(): TemplateResult {\n return html`
\n
\n \n
\n\n ${this.querySelector('[slot=\"attribution\"]') !== null\n ? html`\n
\n \n
\n `\n : null}\n
`;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:flex;\n}\n\n.search-container{\n display:flex;\n flex-direction:row-reverse;\n align-items:center;\n position:absolute;\n overflow:hidden;\n right:0;\n border-radius:5px;\n transition:all 0.3s ease-in-out;\n background-color:var(--brand-dark-blue-900);\n border:2px solid var(--brand-dark-blue-900);\n}\n\n.search-container:hover{\n border-color:var(--outline-white);\n }\n\n.search-container.expanded{\n width:100% !important;\n border-color:var(--outline-white);\n padding-left:1rem;\n }\n\n.search-container.mobile{\n position:static;\n width:100% !important;\n height:auto !important;\n padding:6px 10px 6px 16px;\n border:2px solid var(--outline-white);\n}\n\n.search-wrapper.mobile{\n width:100% !important;\n height:auto !important;\n}\n\n.separator{\n height:24px;\n width:2px;\n margin-left:1rem;\n margin-right:0.25rem;\n background-color:var(--brand-green-900);\n}\n\n.btn.link.search-button:focus-visible{\n border-radius:5px;\n outline:2px solid var(--outline-white);\n outline-offset:-6px;\n }\n\n::slotted([slot='search-form']){\n display:flex;\n flex:1;\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { MobileController, OutlineElement } from '@phase2/outline-core';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport componentStyles from './outline-search.css.lit';\nimport outlineButtonBaselineCssLit from '../outline-button-baseline/outline-button-baseline.css.lit';\nimport '../outline-icon-baseline/outline-icon-baseline';\n\n/**\n * The OutlineSearch component\n * @element outline-search\n */\n\n@customElement('outline-search')\nexport class OutlineSearch extends OutlineElement {\n static styles: CSSResultGroup = [\n outlineButtonBaselineCssLit,\n componentStyles,\n ];\n\n private mobileController = new MobileController(this, 'lg');\n\n @query('.search-wrapper')\n searchWrapper: HTMLElement;\n\n @query('.search-container')\n searchContainer: HTMLElement;\n\n @query('.search-button')\n button: HTMLElement;\n\n /**\n * Indicates whether or not the dropdown is open.\n * You can use this in lieu of the hide method.\n */\n @property({ type: Boolean, reflect: true, attribute: 'expanded' })\n expanded = false;\n\n /**\n * This is needed to set the initial wrapper width and height\n * based on the contents. If not added the wrapper/container will have incorrect height/width\n */\n initializeWrapperSize() {\n window.requestAnimationFrame(() => {\n const buttonWidth = this.button.offsetWidth;\n\n this.searchWrapper.style.setProperty('width', buttonWidth + 'px');\n this.searchWrapper.style.setProperty('height', 40 + 'px');\n this.searchContainer.style.setProperty('width', buttonWidth + 'px');\n this.searchContainer.style.setProperty('height', 40 + 'px');\n });\n }\n\n firstUpdated() {\n window.requestAnimationFrame(() => {\n this.initializeWrapperSize();\n });\n }\n\n updated() {\n if (!this.searchWrapper.style.width) {\n // re-initializes since width/height\n // attributes are wiped when mobile mode is triggered\n this.initializeWrapperSize();\n }\n }\n\n hide() {\n this.expanded = false;\n }\n\n handleClick() {\n this.expanded = !this.expanded;\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.hide();\n }\n }\n\n /**\n * Document property here\n */\n @property({ type: String, attribute: 'property-var' })\n propertyVar: string;\n\n render(): TemplateResult {\n if (this.mobileController.isMobile) {\n return html`
\n
\n \n \n \n \n \n \n
\n
`;\n } else {\n return html`
\n
\n \n \n ${this.expanded\n ? html``\n : html``}\n \n \n
\n \n
\n
`;\n }\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:flex;\n flex-direction:column;\n}\n\n.sidebar-block{\n background:var(--brand-gray-200);\n padding:var(--spacing-4);\n}\n\n.rule{\n display:block;\n height:3px;\n width:100%;\n padding:0;\n border:solid var(--brand-green-900);\n border-width:8px 0 0;\n border-radius:3px;\n border-top-width:3px;\n margin-top:var(--spacing-2);\n margin-bottom:var(--spacing-4);\n}\n\n@media (min-width: 1024px){\n\n.rule{\n margin-top:var(--spacing-7);\n margin-bottom:var(--spacing-6)\n}\n }\n`;","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\noutline-heading-baseline *{\n --heading-color:var(--brand-primary-dark-blue);\n}\n\noutline-styled-text-baseline *{\n --body-color:var(--brand-gray-900);\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport {\n OutlineElement,\n SlotsController,\n LightDomStyles,\n} from '@phase2/outline-core';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from '../outline-sidebar-block/outline-sidebar-block.css.lit';\nimport componentLightDomStyles from '../outline-sidebar-block/outline-sidebar-block-light-dom.css.lit';\n\n/**\n * The Sidebar Block component\n * @element outline-sidebar-block\n *\n * @slot heading - heading (outline-heading-baseline)\n * @slot default - block content\n */\n@customElement('outline-sidebar-block')\nexport class OutlineSidebarBlock extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n slots = new SlotsController(this);\n\n lightDomStyles = new LightDomStyles(\n this,\n componentLightDomStyles,\n this.tagName.toLowerCase()\n );\n\n render(): TemplateResult {\n return html`\n
\n ${this.slots.conditionalSlot('heading', false)}\n
\n \n
\n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:root{\n --global-width:1200px;\n}\n\n.home .our-states,\n .highlevel .our-states{\n padding:0 16px;\n }\n\n@media (min-width: 1024px){\n\n.home .our-states,\n .highlevel .our-states{\n padding:0 calc(5% - 8px)\n }\n }\n\n.our-states__wrapper{\n margin:0 auto;\n max-width:calc(1200px - 16px);\n max-width:calc(var(--global-width) - 16px);\n position:relative;\n }\n\n.our-states__content .btn{\n display:none;\n }\n\n@media (min-width: 1024px){\n\n.our-states__content .btn{\n display:inline-block\n }\n }\n\n.our-states__container{\n margin-top:30px;\n padding-bottom:calc(519 / 839 * 100%);\n position:relative;\n }\n\n.our-states__map{\n bottom:0;\n height:100%;\n left:0;\n position:absolute;\n right:0;\n top:0;\n width:100%;\n }\n\n.our-states__map:not(.our-states__map--has-loc-pins){\n display:none;\n }\n\n@media (min-width: 1024px){\n .our-states__map:not(.our-states__map--has-loc-pins){\n display:block;\n }\n }\n\n@media (min-width: 1024px){\n\n.our-states path[data-name='Rule']{\n display:none\n }\n }\n\n.our-states--large .our-states__content:before{\n background:rgb(255, 255, 255);\n background:linear-gradient(\n 90deg,\n rgba(255, 255, 255, 1) 0%,\n rgba(255, 255, 255, 0) 100%\n );\n content:'';\n display:none;\n height:100%;\n left:0;\n position:absolute;\n top:0;\n width:100%;\n z-index:-1;\n }\n\n@media (min-width: 1280px){\n\n.our-states--large .our-states__content .user-markup{\n max-width:410px\n }\n }\n\n@media (min-width: 1280px){\n\n.our-states--large .our-states__content{\n display:flex;\n flex-direction:column;\n left:0;\n max-width:308px;\n min-height:600px;\n position:absolute;\n padding-top:80px;\n top:0;\n z-index:1\n }\n\n .our-states--large .our-states__content:before{\n display:block;\n }\n }\n\n@media (min-width: 1280px){\n\n.our-states--large .our-states__container{\n margin-top:0;\n padding-bottom:calc(691 / 1118 * 100%)\n }\n }\n\n@media (min-width: 1280px){\n\n.our-states--large{\n padding-left:158px;\n padding-top:10px\n}\n }\n\n.our-states--alt .our-states__content:before, .our-states--alt .our-states--large .our-states__content:before{\n background-image:linear-gradient(\n 90deg,\n rgba(var(--brand-dark-blue), 1) 0%,\n rgba(var(--brand-dark-blue), 0) 100%\n );\n }\n\n.our-states--alt .our-states__content .user-markup{\n color:var(--outline-white);\n }\n\n.accordion-wrapper{\n display:flex;\n flex-direction:column;\n gap:var(--spacing-4);\n}\n\n@media (min-width: 1024px){\n\n.accordion-wrapper{\n display:none\n}\n }\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-states-map.css.lit';\nimport { OutlineElement, SlotsController } from '@phase2/outline-core';\n\n/**\n * The OutlineStates component\n * @element outline-states\n */\n@customElement('outline-states')\nexport class OutlineStates extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n slots = new SlotsController(this);\n\n render(): TemplateResult {\n return html`\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n
\n \n
\n
\n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\ntable{\n max-width:100%;\n overflow:auto;\n display:inline-block;\n\n --table-head-font-size:var(--fs-lg);\n --table-head-font-weight:var(--fw-bold);\n --table-body-font-size:var(--fs-base);\n --table-body-font-weight:var(--fw-normal);\n}\n\n table tbody{\n width:100%;\n }\n\n table tbody ul,\n table tbody ol{\n padding:0;\n font-size:var(--table-body-font-size);\n }\n\n table thead tr th{\n background-color:var(--brand-primary-dark-blue);\n color:var(--brand-white);\n text-align:center;\n }\n\n table th,\n table td{\n padding:var(--spacing-4);\n line-height:var(--lh-base);\n min-width:20ch;\n }\n\n table tbody th,\n table tbody td{\n font-size:var(--table-body-font-size);\n }\n\n table tbody td{\n font-weight:var(--table-body-font-weight);\n }\n\n table tbody th,\n table tbody strong{\n font-weight:var(--table-head-font-weight);\n font-family:var(--ff-bold);\n }\n\n table tbody tr{\n background-color:var(--brand-gray-300);\n border-bottom:solid 3px var(--brand-gray-600);\n }\n\n table tbody tr th{\n text-align:center;\n }\n\n table thead th,\n table thead th *,\n table thead td,\n table thead td *{\n font-family:var(--ff-bold);\n font-size:var(--table-head-font-size);\n font-weight:var(--table-head-font-weight);\n background-color:var(--brand-primary-dark-blue);\n color:var(--brand-white);\n }\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { OutlineElement, LightDomStyles } from '@phase2/outline-core';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-styled-table.css.lit';\n\n/**\n * The OutlineStyledTable component\n * @element outline-styled-table\n */\n@customElement('outline-styled-table')\nexport class OutlineStyledTable extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n lightDomStyles = new LightDomStyles(this, [componentStyles]);\n\n render(): TemplateResult {\n return html` `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --element-margin-botttom:var(--spacing-6);\n\n --link-margin-x:-0.1875rem;\n --link-padding-x:0.1875rem;\n\n --list-y-spacing:var(--spacing-3);\n --list-x-spacing:var(--spacing-12);\n --list-marker-color:var(--brand-gray-900);\n\n --heading-color:var(--brand-primary-dark-blue);\n --body-color-default:var(--brand-gray-900);\n\n font-family:var(--ff-body);\n font-weight:var(--fw-normal);\n font-weight:var(--body-font-weight, var(--fw-normal));\n font-size:var(--body-font-size);\n line-height:var(--lh-percentage-body);\n line-height:var(--body-line-height, var(--lh-percentage-body));\n}\n\nh2::after{\n content:'';\n border-radius:8px;\n border:solid var(--brand-green-900);\n border-width:8px 0 0;\n display:block;\n height:0.0625rem;\n margin:1rem 0;\n max-width:5.3125rem;\n padding:0;\n position:relative;\n text-align:left;\n width:100%;\n}\n\nstrong{\n font-family:var(--ff-bold);\n}\n\noutline-styled-text-baseline p,\np,\na,\nul,\nol{\n font-weight:var(--body-font-weight);\n font-size:var(--body-font-size);\n line-height:var(--body-line-height);\n}\n\noutline-styled-text-baseline p,\np{\n display:block;\n margin-bottom:var(--element-margin-botttom);\n color:var(--body-color-default);\n color:var(--body-color, var(--body-color-default));\n margin-top:0 !important;\n}\n\np:last-child{\n margin-bottom:0;\n}\n\nol,\nul{\n counter-reset:ol-counter;\n list-style-position:outside;\n}\n\nol{\n padding-left:var(--spacing-12);\n}\n\nul{\n padding-left:var(--spacing-16);\n}\n\nol{\n list-style-type:decimal;\n}\n\nul ul,\nol ol{\n margin-top:var(--list-y-spacing);\n}\n\nul li{\n position:relative;\n margin-bottom:var(--list-y-spacing);\n list-style-type:none;\n}\n\nul li::before{\n color:var(--list-marker-color);\n content:'•';\n padding-right:var(--spacing-2);\n margin-left:-16px;\n display:inline;\n }\n\n@media (min-width: 1024px){\n\nul li::before{\n margin-left:-20px\n }\n }\n\nul li .ck-list-bogus-paragraph,\n ul li span{\n display:initial !important;\n }\n\nol li{\n position:relative;\n}\n\n> ul,\n> ol{\n margin-bottom:var(--element-margin-botttom);\n}\n\nol > li{\n position:relative;\n margin-bottom:var(--list-y-spacing);\n counter-increment:ol-counter;\n margin-left:var(--spacing-5);\n}\n\nul li *,\nol li *{\n text-indent:initial;\n}\n\nli li{\n margin-left:0;\n}\n\nli ul,\nli ol{\n margin-left:var(--list-x-spacing);\n}\n\nul ol li{\n margin-left:var(--list-x-spacing);\n}\n\nul ul,\nol ol{\n padding-left:0;\n}\n\nol ol li{\n margin-left:var(--spacing-2);\n}\n\nol > li::marker{\n color:var(--list-marker-color);\n font-family:var(--ff-display);\n}\n\n@media (min-width: 768px){\n .align-left,\n .align-right{\n max-width:50%;\n }\n\n .align-right{\n float:right;\n margin-left:var(--spacing-6);\n margin-bottom:var(--element-margin-botttom);\n }\n\n .align-left{\n float:left;\n margin-right:var(--spacing-6);\n margin-bottom:var(--element-margin-botttom);\n }\n}\n\nfigure{\n display:table !important;\n}\n\nfigcaption{\n display:table-caption;\n caption-side:bottom;\n color:var(--brand-white);\n background-color:var(--brand-primary-dark-blue);\n font-style:italic;\n font-size:var(--fs-sm);\n line-height:var(--lh-sm);\n padding:var(--spacing-3);\n}\n\nblockquote{\n margin-bottom:var(--element-margin-botttom);\n max-width:80%;\n min-height:4.5rem;\n margin-left:auto;\n margin-right:auto;\n border-left:0 !important;\n}\n\nhr{\n display:block;\n width:100%;\n height:4px;\n max-width:75px;\n border-radius:8px;\n background:var(--brand-green-900);\n text-align:left;\n margin-bottom:var(--element-margin-botttom);\n border:0;\n}\n\n.text-body-sm,\n.text-body-sm a{\n --body-font-size:var(--fs-body-sm);\n --body-line-height:1.5;\n --link-font-size:var(--fs-body-sm);\n --link-line-height:1.5;\n}\n\n.text-body-md,\n.text-body-md a{\n --body-font-size:var(--fs-body-md);\n --body-line-height:1.5;\n --link-font-size:var(--fs-body-md);\n --link-line-height:1.5;\n}\n\n.text-body-lg,\n.text-body-lg a{\n --body-font-size:var(--fs-body-lg);\n --body-line-height:1.5;\n --link-font-size:var(--fs-body-lg);\n --link-line-height:1.5;\n}\n`;","import { LightDomStyles, OutlineElement } from '@phase2/outline-core';\nimport { html, TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport componentStyles from './outline-styled-text-baseline.css.lit';\nimport { OutlineHeadingBaseline } from '../outline-heading-baseline/outline-heading-baseline';\nimport { OutlineQuote } from '../outline-quote/outline-quote';\nimport { OutlineButtonBaseline } from '../outline-button-baseline/outline-button-baseline';\nimport { OutlineInlineLink } from '../outline-inline-link/outline-inline-link';\nimport { OutlineStyledTable } from '../outline-styled-table/outline-styled-table';\n/**\n * The Baseline Styled Text component.\n * @element outline-styled-text-baseline\n * @slot defaultSlot\n */\n@customElement('outline-styled-text-baseline')\nexport class OutlineStyledTextBaseline extends OutlineElement {\n static styles = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n [\n OutlineHeadingBaseline.styles,\n OutlineQuote.styles,\n OutlineButtonBaseline.styles,\n OutlineInlineLink.styles,\n OutlineStyledTable.styles,\n componentStyles,\n ],\n this.tagName.toLowerCase()\n );\n\n render(): TemplateResult {\n return html` `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-styled-text-baseline': OutlineStyledTextBaseline;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --tag-icon-size:0.75rem;\n\n font-family:var(--ff-bold);\n color:var(--brand-dark-blue-900);\n border-radius:4px;\n background-color:var(--brand-green-900);\n display:inline-block;\n font-size:var(--fs-lg);\n line-height:var(--lh-xs);\n padding:0.375rem 0.5rem 0.3125rem;\n text-transform:uppercase;\n}\n :host a{\n text-decoration:none;\n }\n\n:host([is-facet]),\n:host([is-facet='true']){\n transition:transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n}\n\n:host([is-facet]) a, :host([is-facet='true']) a{\n display:flex;\n gap:var(--spacing-2);\n align-items:center;\n }\n\n:host([is-facet]):focus,\n :host([is-facet]):hover,\n :host([is-facet='true']):focus,\n :host([is-facet='true']):hover{\n transform:scale(1.05);\n }\n\n:host([is-facet]) .facet-item__status.js-facet-deactivate, :host([is-facet='true']) .facet-item__status.js-facet-deactivate{\n display:none;\n }\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { LightDomStyles, OutlineElement } from '@phase2/outline-core';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-tag.css.lit';\nimport '../outline-icon-baseline/outline-icon-baseline';\n\n/**\n * The OutlineTag component\n * @element outline-tag\n */\n@customElement('outline-tag')\nexport class OutlineTag extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n /**\n * Whether the link is facet.\n */\n @property({ type: Boolean, attribute: 'is-facet', reflect: true })\n isFacet = false;\n\n firstUpdated(): void {\n if (this.isFacet) {\n this.addIcon();\n }\n }\n\n render(): TemplateResult {\n return html``;\n }\n\n addIcon() {\n const element = this.querySelector(':scope a');\n const iconName = 'eu-x';\n const iconSize = 'var(--tag-icon-size)';\n\n const icon = document.createElement('outline-icon-baseline');\n icon.setAttribute('size', iconSize);\n icon.setAttribute('name', iconName);\n icon.setAttribute('svg-fill', 'currentColor');\n icon.classList.add('tag-icon-close');\n element?.appendChild(icon);\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n.teaser-card{\n display:flex;\n flex-direction:column;\n gap:var(--spacing-4);\n padding:var(--spacing-8) 0;\n border-bottom:3px solid var(--brand-primary-dark-blue);\n font-family:var(--ff-display);\n --heading-color:var(--brand-primary-dark-blue);\n}\n\n.container{\n display:flex;\n flex-direction:column;\n gap:var(--spacing-2);\n}\n\n.eyebrow{\n color:var(--brand-primary-dark-blue);\n font-size:var(--fs-headline-2xs-responsive);\n text-transform:uppercase;\n}\n\n.date{\n color:var(--brand-gray-900);\n font-size:var(--fs-sm);\n font-family:var(--ff-body);\n}\n\n.description{\n font-family:var(--ff-body);\n}\n`;","import { TemplateResult, html } from 'lit';\nimport { OutlineElement, SlotsController } from '@phase2/outline-core';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-teaser-card.css.lit';\n\n/**\n * The OutlineTeaserCard component\n * @element outline-teaser-card\n */\n@customElement('outline-teaser-card')\nexport class OutlineTeaserCard extends OutlineElement {\n static styles = [componentStyles];\n\n slots = new SlotsController(this);\n\n render(): TemplateResult {\n return html`\n
\n
\n ${this.slots.conditionalSlot('eyebrow', false)}\n ${this.slots.conditionalSlot('title', false)}\n ${this.slots.conditionalSlot('date', false)}\n
\n ${this.slots.conditionalSlot('description', false)}\n
\n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n display:flex;\n width:100%;\n}\n::slotted([slot='links']){\n display:flex;\n align-items:center;\n gap:0.5rem;\n flex:1;\n justify-content:space-between;\n}\n.utility-nav-container{\n display:flex;\n flex:1;\n}\n.utility-nav-links-container{\n display:flex;\n flex:1;\n}\n@media (min-width: 1024px){\n ::slotted([slot='links']){\n justify-content:flex-start;\n }\n :host{\n width:auto;\n }\n}\n`;","import { CSSResultGroup, html, TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport { OutlineElement, LightDomStyles } from '@phase2/outline-core';\nimport componentStyles from './outline-utility-nav.css.lit';\n\n/**\n * The OutlineUtilityNav component\n * @element outline-utility-nav\n */\n@customElement('outline-utility-nav')\nexport class OutlineUtilityNav extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n render(): TemplateResult {\n return html`\n \n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n place-self-stretch:stretch;\n display:block;\n height:100%;\n overflow:hidden;\n}\n\n.video-modal{\n height:100%;\n}\n\n.video-modal > *{\n height:100%;\n }\n\nbutton.trigger{\n position:relative;\n width:100%;\n height:100%;\n cursor:pointer;\n padding:0;\n border:0;\n outline-offset:2px;\n}\n\nbutton.trigger:hover .play-overlay .btn{\n transform:scale(1.05);\n }\n\nbutton.trigger:focus .play-overlay .btn, button.trigger:focus-within .play-overlay .btn{\n background-color:var(--outline-button--primary-bg-color-focus--computed);\n color:var(--outline-button--primary-color-focus--computed);\n font-weight:var(--outline-button--primary-weight-focus--computed);\n outline:2px solid var(--outline-button-accent-color);\n outline-offset:2px;\n }\n\n.play-overlay{\n position:absolute;\n z-index:5;\n inset:0;\n display:flex;\n align-items:center;\n justify-content:center;\n width:100%;\n height:100%;\n cursor:pointer;\n}\n\n.play-overlay.is-open{\n display:none;\n }\n\n.video-wrapper{\n display:flex;\n flex-direction:column;\n align-items:center;\n justify-content:center;\n overflow:hidden;\n}\n\n.video-image{\n width:100%;\n}\n\n.video-wrapper,\n.video-image,\nimg,\n[slot='video-image']{\n height:100%;\n}\n\n.video-wrapper > div, .video-image > div, img > div, [slot='video-image'] > div{\n height:100%;\n }\n\nimg{\n aspect-ratio:4 / 3;\n width:100%;\n max-width:100%;\n max-height:100%;\n object-fit:cover;\n}\n\n.modal{\n z-index:2;\n position:fixed;\n inset:0;\n background-color:rgba(0, 0, 0, 0.8);\n}\n\n.modal-container{\n display:flex;\n flex-direction:column;\n align-items:center;\n justify-content:center;\n width:100vw;\n height:100vh;\n padding:1rem;\n}\n\n.modal-content{\n display:flex;\n position:relative;\n flex-direction:column;\n flex-flow:column nowrap;\n flex-wrap:nowrap;\n align-items:stretch;\n justify-content:space-evenly;\n overflow:hidden;\n padding:var(--spacing-4);\n}\n\n.modal-content .close{\n position:absolute;\n top:2px;\n right:2px;\n transition-duration:0.2s;\n z-index:9;\n }\n\n.video{\n display:flex;\n justify-content:center;\n align-items:center;\n width:100%;\n height:100%;\n}\n\n.accessibility-description{\n position:absolute;\n width:1px;\n height:1px;\n padding:0;\n margin:-1px;\n overflow:hidden;\n clip:rect(0, 0, 0, 0);\n white-space:nowrap;\n border-width:0;\n}\n\n.video-summary{\n font-size:0.875rem;\n line-height:150%;\n font-family:var(--ff-body);\n}\n`;","import { html, TemplateResult, CSSResultGroup } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport {\n LightDomStyles,\n OutlineElement,\n SlotsController,\n} from '@phase2/outline-core';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport componentStyles from './outline-video-modal.css.lit';\nimport buttonStyles from '../outline-button-baseline/outline-button-baseline.css.lit';\nimport '../outline-icon-baseline/outline-icon-baseline';\n\nexport interface OutlineVideoModalInterface extends HTMLElement {\n isOpen: boolean;\n open: () => void;\n close: () => void;\n}\n\n/**\n * The Video Modal component\n * @element outline-video-modal\n *\n * @slot video-image- The trigger for the video modal\n * @slot video-summary - The content underneath the video\n * @slot accessibility-description - The accessibility description which is used by screen readers.\n *\n * @attr video-id\n * @attr full-image\n * @attr video-provider\n * @attr video-after\n */\n\n@customElement('outline-video-modal')\nexport class OutlineVideoModal\n extends OutlineElement\n implements OutlineVideoModalInterface\n{\n slots = new SlotsController(this);\n\n static styles: CSSResultGroup = [componentStyles, buttonStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n [componentStyles],\n\n this.tagName.toLowerCase()\n );\n\n @property({ attribute: false })\n isOpen = false;\n\n @query('iframe')\n private iFrame!: HTMLElement;\n\n _pauseVideo = () => {\n this.shadowRoot\n ?.querySelector('iframe')\n ?.contentWindow?.postMessage(\n '{\"event\":\"command\",\"func\":\"' + 'pauseVideo' + '\",\"args\":\"\"}',\n '*'\n );\n };\n\n _closeAll() {\n if (this.iFrame) {\n this._pauseVideo();\n this.close();\n } else {\n this.close();\n }\n }\n\n render(): TemplateResult {\n return html`\n
\n \n
\n ${this.playIconTemplate()}\n ${this.slots.conditionalSlot('video-image', false)}\n
\n \n ${this.slots.conditionalSlot('video-summary', false)}\n
\n ${this._modalTemplate()}\n `;\n }\n\n updated() {\n // If a page resize occurs while a video is playing, restore the scrolling of the page (the component has been rerendered and the video has been closed).\n document.body.style.removeProperty('overflow');\n }\n\n @state()\n _hasAccessibilityDescriptionSlot: boolean;\n\n connectedCallback() {\n super.connectedCallback();\n this._handleSlotChange();\n }\n\n private _handleSlotChange(): void {\n this._hasAccessibilityDescriptionSlot =\n this.querySelector('[slot=\"accessibility-description\"]') !== null;\n }\n\n private _modalTemplate(): TemplateResult {\n let template = html``;\n\n if (this.isOpen) {\n template = html`\n
\n \n \n
\n \n \n \n \n\n ${this.slots.conditionalSlot('video', false)}\n
\n \n \n \n
\n `;\n }\n\n return template;\n }\n\n async open(): Promise {\n if (!this.isOpen) {\n this.isOpen = true;\n\n await this.updateComplete;\n\n const closeButton: HTMLElement | null | undefined =\n this.shadowRoot?.querySelector('.close');\n\n if (closeButton) {\n closeButton.focus();\n }\n\n // disable page scrolling functionality while modal is open\n document.body.style.overflow = 'hidden';\n\n this._trapFocus();\n\n this.dispatchEvent(new CustomEvent('opened'));\n }\n }\n\n async close(): Promise {\n if (this.isOpen) {\n this.isOpen = false;\n\n await this.updateComplete;\n\n // restore page scrolling\n document.body.style.removeProperty('overflow');\n\n this.dispatchEvent(new CustomEvent('closed'));\n\n this.triggerElement.focus();\n }\n }\n\n @query('.trigger')\n private triggerElement!: HTMLDivElement;\n\n private _handleTriggerKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter') {\n // This prevents a focused element from also triggering.\n // For example, the modal opens and the \"accept\" button is focused and then triggered and the modal closes.\n event.preventDefault();\n\n this.open();\n }\n }\n\n private _handleOverlayClick(event: MouseEvent): void {\n // Only trigger if we click directly on the event that wants to receive the click.\n if (event.target === event.currentTarget) {\n this.close();\n }\n }\n\n private _handleOverlayKeydown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.close();\n }\n }\n\n // For some reason on the `Docs` tab of Storybook, the `click` event for the close button doesn't work with the `Enter` key without also watching the `keyup` event. This isn't the case on the `Canvas` tab.\n private _handleCloseKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter') {\n this.close();\n }\n }\n\n @property({ type: String })\n elementToFocusSelector?: string | undefined;\n\n private _trapFocus(): void {\n const modalElement = this.shadowRoot?.querySelector('.modal');\n\n // Define a selector that matches elements that can be focused by default\n const defaultFocusableSelector =\n 'a[href], button, input, select, textarea, [tabindex]';\n\n // Query all the elements that match the selector in the document\n const defaultFocusableElements = modalElement?.querySelectorAll(\n defaultFocusableSelector\n );\n\n const firstFocusableElement =\n defaultFocusableElements && (defaultFocusableElements[0] as HTMLElement);\n const lastFocusableSlottedElement =\n defaultFocusableElements &&\n (defaultFocusableElements[\n defaultFocusableElements.length - 1\n ] as HTMLElement);\n\n if (firstFocusableElement) {\n const lastFocusableElement =\n lastFocusableSlottedElement ?? firstFocusableElement;\n\n if (lastFocusableElement) {\n lastFocusableElement.addEventListener(\n 'keydown',\n (event: KeyboardEvent) => {\n if (event.key === 'Tab' && event.shiftKey === false) {\n event.preventDefault();\n firstFocusableElement.focus();\n }\n }\n );\n }\n\n if (firstFocusableElement) {\n firstFocusableElement.addEventListener(\n 'keydown',\n (event: KeyboardEvent) => {\n if (event.key === 'Tab' && event.shiftKey) {\n event.preventDefault();\n if (lastFocusableElement) {\n lastFocusableElement.focus();\n }\n }\n }\n );\n }\n }\n }\n\n playIconTemplate(): TemplateResult | null {\n return html`\n
\n
\n \n \n
\n
\n `;\n }\n}\ndeclare global {\n interface HTMLElementTagNameMap {\n 'outline-video-modal': OutlineVideoModal;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n.outline-video{\n aspect-ratio:16/9;\n position:relative;\n}\n\n.outline-video.modal{\n width:100%;\n height:100%;\n}\n\n.outline-video.player{\n width:100%;\n height:100%;\n max-height:700px;\n}\n\n.outline-video--button{\n position:absolute;\n border-radius:50%;\n padding:1.5rem;\n background-color:var(--brand-bright-blue-900);\n border:none;\n transition-duration:200ms;\n transition-property:outline-width, padding;\n outline:solid 0px var(--brand-white);\n z-index:1;\n}\n\n.outline-video--button svg{\n z-index:1;\n position:absolute;\n top:29%;\n left:29%;\n height:21px;\n width:21px;\n }\n\n.outline-video--button:after{\n content:'';\n transition-duration:200ms;\n outline:1px solid transparent;\n transition-property:outline-width;\n }\n\n.outline-video--button:before{\n content:'';\n transition-duration:200ms;\n outline:1px solid transparent;\n transition-property:outline-width;\n }\n\n.outline-video--button:hover:before{\n position:absolute;\n top:0;\n left:0;\n height:100%;\n width:100%;\n border-radius:50%;\n outline:3px solid var(--brand-bright-blue-900);\n }\n\n.outline-video--button:focus{\n border:var(--brand-blue-300) solid 1px;\n outline-width:5px;\n }\n\n.outline-video--button:focus:after{\n outline:solid 5px var(--brand-dark-blue-900);\n outline-offset:5px;\n border-radius:50%;\n box-sizing:content-box;\n content:'';\n display:block;\n height:100%;\n position:absolute;\n width:100%;\n top:0;\n left:0;\n z-index:2;\n }\n\n.outline-video.hero{\n height:100%;\n width:100%;\n}\n\n.outline-video.hero .outline-video--button{\n right:5%;\n bottom:10%;\n z-index:1;\n }\n\n.outline-video.modal .outline-video--button, .outline-video.player .outline-video--button{\n right:50%;\n bottom:50%;\n }\n`;","import { CSSResultGroup, TemplateResult, html, svg } from 'lit';\nimport { OutlineElement } from '@phase2/outline-core';\nimport {\n customElement,\n property,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport componentStyles from './outline-video-player.css.lit';\n\nexport type VideoVariations = 'player' | 'hero' | 'modal' | 'inline';\n\n/**\n * The OutlineVideoPlayer component\n * @element outline-video-player\n */\n@customElement('outline-video-player')\nexport class OutlineVideoPlayer extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n\n /**\n * Set when slotted content is verified\n */\n @property({ type: Boolean })\n hasVideo = false;\n\n /**\n * Sets the version of the player.\n * hero: Removes video controls attribute\n * and places play/pause button in bottom right corner. Forces video to cover.\n *\n * player: Leaves video controls, places play/pause in center of the screen,\n * leaves video at natural 16/9 aspect ratio.\n */\n @property({ type: String })\n variant: VideoVariations = 'hero';\n\n /**\n * Sets the poster image for the video.\n */\n @property({ type: String })\n poster: string;\n\n /**\n * Query for default slot\n */\n @queryAssignedElements({})\n slottedContent: HTMLElement[];\n\n /**\n * Makes sure video autoplays on load.\n */\n @property({ type: Boolean })\n playing = false;\n\n /**\n * Whether to render a play/pause button on top of the video.\n */\n @property({\n type: Boolean,\n attribute: 'display-toggle-button',\n reflect: true,\n })\n hideToggleButton = false;\n\n /**\n * ref to slotted video element.\n */\n videoContent: HTMLMediaElement;\n\n firstUpdated() {\n this.getVideo();\n }\n\n render(): TemplateResult {\n return html`\n
\n \n ${this.hasVideo ? this.buttonTemplate() : null}\n
\n `;\n }\n\n /**\n * Overrides video:-webkit-full-page-media styles\n * to make sure slotted video is always full width\n * @param video\n */\n handleVideoAttributes(video: HTMLMediaElement) {\n if (video) {\n if (this.variant === 'hero') {\n video.setAttribute('loop', 'loop');\n }\n if (this.variant === 'player') {\n video.removeAttribute('autoplay');\n }\n video.style.width = '100%';\n video.style.objectFit = 'cover';\n video.style.height = '100%';\n }\n }\n\n buttonTemplate() {\n return html`\n ${!this.hideToggleButton\n ? html`\n \n ${this.playing ? this.pauseIcon() : this.playIcon()}\n \n `\n : null}\n `;\n }\n\n playIcon() {\n return svg``;\n }\n\n pauseIcon() {\n return svg``;\n }\n\n pauseVideo() {\n if (this.playing) {\n this.videoContent.pause();\n } else {\n this.videoContent.play();\n }\n return (this.playing = !this.playing);\n }\n\n getVideo() {\n const slotted = this.slottedContent[0] as HTMLIFrameElement;\n const video = slotted?.contentWindow?.document.querySelector(\n 'video'\n ) as HTMLMediaElement;\n const iframe = slotted?.querySelector('iframe') as HTMLIFrameElement;\n const videoEl = slotted?.querySelector('video') as HTMLMediaElement;\n if (iframe) {\n if (this.variant === 'inline') {\n setElementStyles(iframe, {\n width: '100%',\n height: '100%',\n aspectRatio: '16/9',\n });\n } else {\n setElementStyles(iframe, { width: '100%', height: '100%' });\n setElementStyles(slotted, { height: '100%' });\n }\n }\n\n if (videoEl) {\n setElementStyles(videoEl, { width: '100%', height: '100%' });\n\n if (this.poster) {\n videoEl.setAttribute('poster', this.poster);\n }\n }\n\n if (slotted instanceof HTMLVideoElement) {\n setElementStyles(slotted, {\n width: '100%',\n height: '100%',\n aspectRatio: '16/9',\n });\n }\n\n function setElementStyles(\n element: HTMLElement,\n styles: Partial\n ) {\n Object.assign(element.style, styles);\n }\n if (video === null || video === undefined) {\n // bail\n return;\n } else {\n this.hasVideo = true;\n this.videoContent = video;\n if (this.variant === 'hero') {\n // REQUIRED for google and safari to autoplay.\n this.playing = true;\n video.muted = true;\n video.paused ? video.play() : null;\n } else {\n this.pauseVideo();\n }\n this.handleVideoAttributes(this.videoContent);\n }\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n.container{\n display:flex;\n flex-direction:column;\n position:relative;\n z-index:1;\n padding:var(--spacing-4) var(--spacing-4);\n}\n\n.content-wrapper{\n display:flex;\n flex-direction:column;\n gap:var(--spacing-4);\n}\n\n.figure-cta-container{\n display:flex;\n flex:1;\n flex-direction:column;\n align-items:center;\n justify-content:center;\n}\n\n.figure{\n margin-bottom:var(--spacing-4);\n max-width:250px;\n}\n\n.content{\n display:flex;\n flex-direction:column;\n justify-content:center;\n}\n\n.heading{\n --heading-color:var(--brand-dark-blue-900);\n}\n\n.body{\n margin-bottom:var(--spacing-6);\n}\n\n@media (min-width: 768px){\n .content-wrapper{\n flex-direction:row;\n flex-wrap:nowrap;\n }\n .content{\n flex:1;\n justify-content:flex-start;\n }\n}\n\n@media (min-width: 1024px){\n .content{\n flex:2;\n }\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport {\n LightDomStyles,\n MobileController,\n OutlineElement,\n SlotsController,\n} from '@phase2/outline-core';\nimport { customElement } from 'lit/decorators.js';\nimport componentStyles from './outline-workday-block.css.lit';\nimport buttonStyles from '../outline-button-baseline/outline-button-baseline.css.lit';\nimport '../outline-icon-baseline/outline-icon-baseline';\nimport '../outline-button-baseline/outline-button-baseline';\nimport { classMap } from 'lit/directives/class-map.js';\n\n/**\n * The OutlineWorkdayBlock component\n * @element outline-workday-block\n */\n@customElement('outline-workday-block')\nexport class OutlineWorkdayBlock extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles, buttonStyles];\n\n lightDomStyles = new LightDomStyles(\n this,\n componentStyles,\n this.tagName.toLowerCase()\n );\n\n slots = new SlotsController(this);\n private mobileController = new MobileController(this, 'lg');\n\n render(): TemplateResult {\n const isMobile = this.mobileController.isMobile;\n return html`\n \n ${isMobile ? this.slots.conditionalSlot('heading', false) : null}\n
\n
\n ${this.slots.conditionalSlot('heading', false)}\n ${this.slots.conditionalSlot('body', false)}\n
\n
\n
\n ${this.slots.conditionalSlot('image', false)}\n
\n ${this.slots.conditionalSlot('cta', false)}\n
\n
\n \n `;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --body-font-size:var(--fs-body-sm);\n --body-color:var(--brand-gray-900);\n}\n\n:host([active]) .accordion-panel--content{\n display:flex;\n flex-direction:column;\n gap:var(--spacing-4);\n }\n\noutline-styled-text-baseline *{\n --body-color:var(--brand-gray-900);\n}\n\n.accordion-panel{\n display:flex;\n flex-direction:column;\n width:100%;\n border-bottom:2px solid var(--brand-gray-400);\n margin-bottom:var(--spacing-4);\n}\n\n.accordion-panel--heading{\n display:flex;\n width:100%;\n justify-content:space-between;\n padding-bottom:var(--spacing-4);\n cursor:pointer;\n}\n\n.accordion-panel--heading:hover .accordion-panel--button::after{\n outline-width:4px;\n }\n\n.accordion-panel--button{\n background-color:var(--brand-bright-blue-900);\n padding:var(--spacing-2);\n border:0px solid;\n width:-moz-fit-content;\n width:fit-content;\n transition:all 0.2s ease-in;\n outline-color:var(--brand-dark-blue-900);\n outline-style:solid;\n outline-offset:8px;\n outline-width:0px;\n position:relative;\n}\n\n.accordion-panel--button::after{\n transition:all 0.2s ease-in;\n content:'';\n position:absolute;\n top:0;\n left:0;\n height:100%;\n width:100%;\n outline:solid 0px var(--brand-bright-blue-900);\n }\n\n.accordion-panel--button:hover::after{\n outline-width:4px;\n }\n\n.accordion-panel--button:focus{\n outline-width:4px;\n }\n\n.accordion-panel--button:focus::after{\n outline-width:4px;\n }\n\n.accordion-panel--label{\n display:flex;\n align-items:center;\n}\n\n.accordion-panel--icon{\n color:var(--brand-dark-blue-900);\n}\n\n.accordion-panel--content{\n display:none;\n padding:var(--spacing-6);\n background-color:var(--brand-gray-200);\n margin-bottom:var(--spacing-4);\n}\n`;","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\noutline-styled-text-baseline *{\n --body-color:var(--brand-gray-900);\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport {\n OutlineElement,\n SlotsController,\n LightDomStyles,\n} from '@phase2/outline-core';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport componentStyles from './outline-accordion-baseline-panel.css.lit';\nimport componentLightDomStyles from './outline-accordion-baseline-panel-light-dom.css.lit';\nimport '../../outline-icon-baseline/outline-icon-baseline';\n/**\n * The OutlineAccordionBaselinePanel component\n * @element outline-accordion-baseline-panel\n */\n@customElement('outline-accordion-baseline-panel')\nexport class OutlineAccordionBaselinePanel extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n slots = new SlotsController(this);\n\n lightDomStyles = new LightDomStyles(\n this,\n componentLightDomStyles,\n this.tagName.toLowerCase()\n );\n\n @property({ type: String, attribute: 'aria-label' })\n ariaLabel: string;\n\n /**\n * Wether the panel is active/open.\n * Controlled by parent accordion component.\n */\n @property({ type: Boolean, reflect: true, attribute: true })\n active = false;\n\n /**\n * Used to provided a unique ID\n * for accordion component and accessibility purposes.\n */\n @property({ type: String, reflect: true })\n id: string = Math.floor(Math.random() * 10000).toString();\n\n @query('.accordion-panel--button')\n buttonRef: HTMLButtonElement;\n\n render(): TemplateResult {\n const isActive = this.active ? 'active' : 'inactive';\n\n return html`
\n
\n
\n ${this.slots.conditionalSlot('label', false)}\n
\n \n \n \n \n \n
\n \n \n \n
`;\n }\n\n passClick(e: Event) {\n if ((e.target as Node).nodeName === 'BUTTON') {\n //bail\n return;\n } else {\n this.buttonRef.focus();\n this.setActive();\n }\n }\n setActive() {\n this.active = !this.active;\n }\n}\n","\nimport { css } from 'lit';\nexport default css`\n/* Apply standardized box sizing to the component. */\n:host {\n box-sizing: border-box;\n}\n:host *,\n:host *::before,\n:host *::after {\n box-sizing: inherit;\n}\n/* Apply proper CSS for accessibly hiding elements to each component. */\n.visually-hidden {\n position: absolute !important;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n width: 1px;\n height: 1px;\n word-wrap: normal;\n}\n/* Apply component specific CSS */\n:host{\n --body-font-size:var(--fs-body-sm);\n flex:1;\n}\n\n:host([active]) .org-chart-panel--content{\n display:block;\n }\n\n:host([active]) .enable-border-bottom{\n border-bottom:2px solid var(--brand-gray-400);\n }\n\n.org-chart-panel{\n display:flex;\n flex-direction:column;\n width:100%;\n}\n\n.org-chart-panel-content{\n display:flex;\n flex-direction:row;\n align-items:flex-start;\n padding:var(--spacing-4) 0;\n}\n\n.org-chart-panel--heading{\n display:flex;\n width:100%;\n justify-content:space-between;\n align-items:center;\n border-bottom:2px solid var(--brand-gray-400);\n cursor:pointer;\n}\n\n.org-chart-panel--heading:hover .org-chart-panel--button::after{\n outline-width:4px;\n }\n\n.org-chart-panel--button{\n background-color:var(--brand-bright-blue-900);\n padding:var(--spacing-2);\n border:0px solid;\n width:var(--spacing-8);\n height:var(--spacing-8);\n transition:all 0.2s ease-in;\n outline-color:var(--brand-dark-blue-900);\n outline-style:solid;\n outline-offset:8px;\n outline-width:0px;\n position:relative;\n border-radius:0.25rem;\n}\n\n.org-chart-panel--button::after{\n content:'';\n position:absolute;\n top:0;\n left:0;\n height:100%;\n width:100%;\n border-radius:0.25rem;\n outline:solid 0px var(--brand-bright-blue-900);\n }\n\n.org-chart-panel--button:hover::after{\n outline-width:4px;\n }\n\n.org-chart-panel--button:focus{\n outline-width:4px;\n }\n\n.org-chart-panel--button:focus::after{\n outline-width:4px;\n }\n\n.org-chart-panel--header{\n display:flex;\n flex-direction:column;\n align-items:flex-start;\n}\n\n.org-chart-panel--icon{\n color:var(--brand-dark-blue-900);\n}\n\n.org-chart-panel--content{\n display:none;\n padding-left:var(--spacing-4);\n background-color:var(--brand-gray-200);\n}\n\n.header-text,\n.header-link{\n font-size:var(--fs-lg);\n color:var(--brand-dark-blue-900);\n font-weight:var(--fw-bold);\n font-family:var(--ff-display);\n line-height:var(--lh-percentage-sm);\n text-decoration:none;\n}\n\n.header-link:hover{\n text-decoration:underline;\n}\n\n.sub-header-text{\n color:var(--brand-gray-900);\n font-weight:var(--fw-normal);\n line-height:var(--lh-percentage-body);\n}\n\n.panel-content-icon{\n margin-right:var(--spacing-2);\n}\n`;","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { OutlineElement, SlotsController } from '@phase2/outline-core';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-org-chart-panel.css.lit';\nimport '../../outline-icon-baseline/outline-icon-baseline';\nimport '@phase2/outline-icon';\n\n/**\n * The OutlineOrgChartPanelContent component\n * @element outline-org-chart-panel-content\n */\n@customElement('outline-org-chart-panel-content')\nexport class OutlineOrgChartPanelContent extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n slots = new SlotsController(this);\n\n @property({ attribute: 'hide-icon' })\n hideIcon: boolean;\n\n @property({ attribute: 'header-text' })\n headerText: string;\n\n @property({ attribute: 'profile-link' })\n profileLink: string;\n\n @property({ attribute: 'sub-header-text' })\n subHeaderText: string;\n\n render(): TemplateResult {\n return html`\n
\n ${!this.hideIcon\n ? html`
\n \n
`\n : null}\n
\n \n
${this.subHeaderText}
\n
\n
\n `;\n }\n}\n","import { CSSResultGroup, TemplateResult, html } from 'lit';\nimport { OutlineElement, SlotsController } from '@phase2/outline-core';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport componentStyles from './outline-org-chart-panel.css.lit';\nimport '../../outline-icon-baseline/outline-icon-baseline';\n/**\n * The OutlineOrgChartBaselinePanel component\n * @element outline-org-chart-panel\n */\n@customElement('outline-org-chart-panel')\nexport class OutlineOrgChartBaselinePanel extends OutlineElement {\n static styles: CSSResultGroup = [componentStyles];\n slots = new SlotsController(this);\n\n @property({ type: String, attribute: 'aria-label' })\n ariaLabel: string;\n\n /**\n * Wether the panel is active/open.\n * Controlled by parent org-chart component.\n */\n @property({ type: Boolean, reflect: true, attribute: true })\n active = false;\n\n /**\n * Used to provided a unique ID\n * for org-chart component and accessibility purposes.\n */\n @property({ type: String, reflect: true })\n id: string = Math.floor(Math.random() * 10000).toString();\n\n @property({ type: Boolean, attribute: 'has-children', reflect: true })\n hasChildren: boolean;\n\n /**\n * Used to provided a unique ID\n * for org-chart component and accessibility purposes.\n */\n @property({ type: Boolean, attribute: 'enable-border-bottom' })\n addContentBorder = false;\n\n @query('.org-chart-panel--button')\n buttonRef: HTMLButtonElement;\n\n render(): TemplateResult {\n const isActive = this.active ? 'active' : 'inactive';\n const hasContentBorder = this.addContentBorder\n ? 'enable-border-bottom'\n : '';\n\n return html`
\n ${this.hasChildren\n ? html`\n
\n ${this.slots.conditionalSlot('heading', false)}\n \n \n \n \n \n
\n \n \n \n `\n : html`\n \n ${this.slots.conditionalSlot('heading', false)}\n \n `}\n
`;\n }\n\n setActive() {\n this.active = !this.active;\n }\n}\n","import { OutlineElement } from '@phase2/outline-core';\nimport { html, TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\n/**\n * SampleComponent\n * @element sample-component\n * @slot - This element has a slot\n */\n@customElement('sample-component')\nexport class SampleComponent extends OutlineElement {\n /** Empty render method */\n render(): TemplateResult {\n return html``;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sample-component': SampleComponent;\n }\n}\n"],"names":["debounce","func","delay","immediate","timeoutId","args","executeFunc","clearTimeout","undefined","setTimeout","ResizeController","constructor","host","options","this","breakpointsRangeArray","defaultOptions","breakpoints","elementToRerender","filteredOptionsObject","Object","fromEntries","entries","filter","_","value","assign","addController","initializeBreakpointsRangeType","_a","push","minBreakpoint","_b","forEach","breakpoint","newBreakpointRange","min","max","hostConnected","style","display","setProperty","resizeObserver","ResizeObserver","onElementResize","bind","elementToObserve","observe","hostDisconnected","disconnect","_entries","currentComponentWidth","contentRect","width","calculateNewBreakpointRange","console","warn","localName","currentBreakpointRange","index","requestUpdate","t","window","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","n","WeakMap","o$8","_$cssResult$","Error","cssText","styleSheet","o","length","get","replaceSync","set","toString","i","reduce","c","cssRules","r","trustedTypes","h","emptyScript","reactiveElementPolyfillSupport","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","a","l","attribute","type","String","converter","reflect","hasChanged","d$1","HTMLElement","super","_$Ei","Map","isUpdatePending","hasUpdated","_$El","u","static","finalize","observedAttributes","elementProperties","_$Ep","_$Ev","state","noAccessor","hasOwnProperty","getPropertyDescriptor","defineProperty","configurable","enumerable","finalized","getPrototypeOf","properties","getOwnPropertyNames","getOwnPropertySymbols","createProperty","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","_$E_","Promise","enableUpdating","_$AL","_$Eg","_$ES","renderRoot","isConnected","call","removeController","splice","indexOf","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","connectedCallback","disconnectedCallback","attributeChangedCallback","_$AK","_$EO","removeAttribute","getPropertyOptions","has","_$EC","_$Ej","async","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$Ek","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","d","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","slice","createComment","f","m","p","RegExp","g","$","y","w","_$litType$","strings","values","x","b","T","for","A","E","C","createTreeWalker","P","v","lastIndex","exec","test","startsWith","V","parts","el","currentNode","content","firstChild","remove","append","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","name","ctor","k","I","L","R","tagName","data","innerHTML","N","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","S","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","M","nextSibling","z","_$AI","_$AH","_$AA","_$AB","_$Cp","startNode","endNode","_$AR","iterator","insertBefore","createTextNode","_$AC","_$AP","setConnected","element","fill","j","arguments","H","capture","once","passive","removeEventListener","addEventListener","handleEvent","litHtmlPolyfillSupport","litHtmlVersions","renderOptions","_$Do","renderBefore","render","_$litPart$","_$litElement$","globalThis","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","_$litStatic$","join","raw","customElements","define","kind","elements","finisher","descriptor","key","placement","originalKey","initializer","querySelector","HTMLSlotElement","assignedElements","assignedNodes","Node","ELEMENT_NODE","slot","selector","matches","css","OutlineElement","_conditionalSlotTemplate","elementName","slotNameStub","wrapperElementType","ariaLabel","namespacedSlotName","html","unsafeStatic","ifDefined","componentStyles","__decorate","customElement","xs","sm","md","lg","xl","xxl","xxxl","container","sizeString","parseInt","sort","sizeA","sizeB","defaultScreenSizes","MobileController","mobileBreakpoint","isMobile","handleResize","mobileScreen","formatScreenSize","innerWidth","screen","_$Ct","_$Ci","keys","it","nt","add","classList","delete","SlotsController","_mutationObserver","MutationObserver","_handleMutation","getSlottedNodes","slotName","slottedNodes","from","node","isDefaultSlotText","isDefaultSlotElement","querySelectorAll","exist","TEXT_NODE","trim","addAnnotations","lightDomSlot","clonedSlot","cloneNode","annotationComment","some","nodeValue","before","slotWrapper","dispatchEventsToLightDom","eventsToDispatch","eventType","event","target","elementPathInShadowDom","getElementPathInShadowDom","elementPathInLightDom","getElementPathInLightDom","dispatchEvent","Event","originElementFocus","focus","renderInShadow","slots","allClonedSlots","subtree","childList","attributes","characterData","path","composedPath","selectors","shadowFound","nodeName","getSelectorForSingleElement","currentElement","parentElement","currentSelectorClassName","currentSelector","isShadow","El","printExtraAttributes","extraAttributes","conditionalSlot","extraClasses","defaultSlot","wrapperClasses","classMap","$parcel$defineInteropFlag","$parcel$export","$009ddb00d3ec72b8$exports","$009ddb00d3ec72b8$export$2e2bcd8739ae039","filename","msg","lineno","column","reason","line","source","$0865a9fb4cc365fe$exports","$0865a9fb4cc365fe$export$2e2bcd8739ae039","start","end","$b2e137848b48cf4f$export$9be5dd6e61d5d73a","CssTypes","$d708735ed1303b43$var$commentre","$d708735ed1303b43$var$trim","str","$d708735ed1303b43$var$addParent","obj","parent","isNode","childParent","writable","$d708735ed1303b43$export$2e2bcd8739ae039","position","whitespace","errorsList","error","err","silent","open","match","close","rules","comments","charAt","atrule","rule","re","lines","lastIndexOf","updatePosition","comment","pos","res","replace","declaration","propMatch","propValue","val","ret","property","declarations","decls","decl","keyframe","vals","atimport","_compileAtrule","atcharset","atnamespace","m1","vendor","m2","frame","frames","concat","keyframes","atkeyframes","media","atmedia","customMedia","atcustommedia","supports","atsupports","doc","atdocument","sel","page","atpage","athost","fontFace","atfontface","atcontainer","layer","atlayer","rulesList","stylesheet","parsingErrors","$de9540138ed1fd01$export$2e2bcd8739ae039","level","indentation","compress","indent","emit","_position","visit","charset","import","namespace","mapVisit","nodes","delim","buf","compile","$149c1bd638913645$export$98e6a39c04603d36","$149c1bd638913645$export$fac44ee5b035f737","_scopeSelector","scopeId","includes","_processCssRule","innerRule","LightDomStyles","cssStyles","ruleIndex","componentName","getElementById","_addLightDomGroup","_addLightDomStyle","elementId","scopedStyleElement","id","rawStyles","ast","cssTools.parse","cssTools.stringify","addScopeToStyles","head","prepend","depth","item","CSSResult","CustomEvent","bubbles","cancelable","composed","detail","waitForEvent","eventName","resolve","done","watch","propName","resolvedOptions","waitUntilFirstUpdate","proto","decoratedFnName","propNameKey","changedProps","oldValue","newValue","defaultIconConfig","library","size","icon","OutlineAccordionBaseline","handleKeyboardNav","panels","queryAssignedElements","OutlineAnchorBlock","lightDomStyles","variant","OutlineAdminLinksBaseline","OutlineBillMap","OutlineImage","imageHref","imageLabel","hasCaptionSlot","captionSlotTemplate","OutlineBlockImage","fullWidth","hasTitle","OutlineInlineLink","OutlineBreadcrumbs","stringSeparator","breadcrumbItems","separator","OutlineButtonBaseline","_defineProperties","props","MEDIA_PREFERS_REDUCED_MOTION","CREATED","IDLE","MOVING","SCROLLING","DESTROYED","STATES","MOUNTED","DRAGGING","empty","array","arrayLike","apply","nextTick","noop","raf","requestAnimationFrame","typeOf","subject","isObject","isNull","isFunction","isString","isUndefined","isHTMLElement","ownerDocument","defaultView","toArray","iteratee","items","toggleClass","elm","classes","addClass","children","ref","children2","child","firstElementChild","ownKeys","forOwn","object","right","merge","omit","elms","attrs","attr","value2","create","tag","prop","getComputedStyle","display2","preventScroll","hasClass","className","contains","rect","getBoundingClientRect","removeChild","parseHtml","DOMParser","parseFromString","body","prevent","stopPropagation","preventDefault","stopImmediatePropagation","query","queryAll","removeClass","timeOf","timeStamp","unit","PROJECT_CODE","DATA_ATTRIBUTE","assert","condition","message","floor","ceil","abs","approximatelyEqual","epsilon","between","number","exclusive","minimum","maximum","clamp","sign","format","string","replacements","replacement","pad","ids","EventBinder","listeners","forEachEvent","targets","events","events2","eventNS","fragment","callback","isEventTarget","remover","unbind","listener","dispatch","createEvent","initCustomEvent","destroy","EVENT_MOUNTED","EVENT_READY","EVENT_MOVE","EVENT_MOVED","EVENT_CLICK","EVENT_ACTIVE","EVENT_INACTIVE","EVENT_VISIBLE","EVENT_HIDDEN","EVENT_REFRESH","EVENT_UPDATED","EVENT_RESIZE","EVENT_RESIZED","EVENT_SCROLL","EVENT_SCROLLED","EVENT_DESTROY","EVENT_ARROWS_MOUNTED","EVENT_NAVIGATION_MOUNTED","EVENT_AUTOPLAY_PLAY","EVENT_AUTOPLAY_PAUSE","EVENT_LAZYLOAD_LOADED","EVENT_SLIDE_KEYDOWN","EVENT_SHIFTED","EVENT_END_INDEX_CHANGED","EventInterface","Splide2","bus","createDocumentFragment","binder","on","off","RequestInterval","interval","onInterval","onUpdate","limit","startTime","now","Date","rate","paused","count","pause","cancel","cancelAnimationFrame","resume","rewind","time","isPaused","ARROW","ARROW_LEFT","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","TTB","ORIENTATION_MAP","left","X","Y","ArrowLeft","ArrowRight","ROLE","TAB_INDEX","ARIA_PREFIX","ARIA_CONTROLS","ARIA_CURRENT","ARIA_SELECTED","ARIA_LABEL","ARIA_LABELLEDBY","ARIA_HIDDEN","ARIA_ORIENTATION","ARIA_ROLEDESCRIPTION","ARIA_LIVE","ARIA_BUSY","ARIA_ATOMIC","ALL_ATTRIBUTES","CLASS_PREFIX","STATUS_CLASS_PREFIX","CLASS_ROOT","CLASS_TRACK","CLASS_LIST","CLASS_SLIDE","CLASS_CLONE","CLASS_CONTAINER","CLASS_ARROWS","CLASS_ARROW","CLASS_ARROW_PREV","CLASS_ARROW_NEXT","CLASS_PAGINATION","CLASS_PAGINATION_PAGE","CLASS_PROGRESS_BAR","CLASS_TOGGLE","CLASS_SR","CLASS_INITIALIZED","CLASS_ACTIVE","CLASS_PREV","CLASS_NEXT","CLASS_VISIBLE","CLASS_LOADING","CLASS_FOCUS_IN","CLASS_OVERFLOW","STATUS_CLASSES","CLASSES","slide","clone","arrows","arrow","prev","next","pagination","spinner","POINTER_DOWN_EVENTS","POINTER_MOVE_EVENTS","POINTER_UP_EVENTS","SLIDE","LOOP","FADE","Slide$1","slideIndex","destroyed","Components","root","isNavigation","updateOnMove","i18n","slideFocus","Direction","label","isClone","initNavigation","controls","splides","Slide2","splide","Slides","getAt","slideX","onMove","curr","active","isActive","self","visible","is","trackRect","Elements","track","slideRect","isVisible","hidden","focusableNodes","activeElement","updateVisibility","cloneStatus","mount","slideLabel","useContainer","isWithin","distance","diff","INTERVAL_DATA_ATTRIBUTE","SCROLL_LISTENER_OPTIONS","NORMALIZATION_MAP","Spacebar","Right","Left","Up","Down","normalizeKey","KEYBOARD_EVENT","SRC_DATA_ATTRIBUTE","SRCSET_DATA_ATTRIBUTE","IMAGE_SELECTOR","TRIGGER_KEYS","ComponentConstructors","freeze","__proto__","Media","Components2","reducedMotion","queries","completely","register","options2","queryList","matchMedia","direction","merged","merged2","entry","refresh","opts","base","notify","setup","isMin","mediaQuery","enable","axisOnly","offset","toUpperCase","orient","list","isUsingKey","_EventInterface","slides","rootClasses","trackClasses","find","bar","toggle","prefix","role","carousel","init","getClasses","labelledby","closest","drag","_EventInterface2","_Components2$Elements","Slides2","forEach$1","Slide1","excludeClones","matcher","getIn","Controller","toIndex","hasFocus","perPage","images","img","getLength","isEnough","Layout","vertical","rootRect","overflow","_EventInterface3","_Components2$Elements2","styleSlides","cssPadding","resize","force","newRect","height","cssHeight","cssTrackHeight","gap","autoWidth","fixedWidth","cssSlideSize","fixedHeight","autoHeight","isOverflow","padding","heightRatio","listSize","slideSize","withoutGap","Slide","getGap","totalSize","sliderSize","parseFloat","duration","getPadding","Clones","cloneCount","clones","remount","computeCloneCount","isHead","cloneDeep","generate","clones2","fixedSize","Move","Transition","_EventInterface4","_Components2$Layout","_Components2$Directio","_Components2$Elements3","reposition","isBusy","Scroll","jump","translate","toPosition","preventLoop","destination","exceededMax","getEnd","shift","loop","backwards","excess","getLimit","getPosition","minDistance","Infinity","trimming","trimSpace","move","dest","shifted","exceededLimit","exceededMin","endIndex","slideCount","perMove","_EventInterface5","_Components2$Slides","omitEnd","isLoop","isSlide","getNext","getAdjacent","getPrev","currIndex","prevIndex","onResized","computeDestIndex","snapPage","computeMovableDestIndex","toPage","setIndex","waitForTransition","go","control","allowSameIndex","_ref","indicator","scroll","snap","getIndex","toDest","Arrows","created","placeholder","wrapper","enabled","createArrow","prev2","arrowPath","nextIndex","prevLabel","last","nextLabel","first","disabled","Autoplay","hovered","focused","_EventInterface6","_Components2$Elements4","autoplay","stopped","play","resetProgress","stop","autoToggle","pauseOnHover","pauseOnFocus","listen","Cover","cover","cover2","src","_EventInterface8","friction","onScrolled","noConstrain","clear","noDistance","onEnd","to","easingFunc","pow","easing","Drag","basePosition","baseEvent","prevBaseEvent","isFree","dragging","clickPrevented","_EventInterface9","_Components2$Directio2","exceeded","disable","onPointerDown","isTouch","isTouchEvent","target2","noDrag","button","onPointerMove","onPointerUp","save","diffCoord","expired","diffTime","hasExceeded","isSliderDirection","thresholds","dragMinThreshold","isObj","mouse","touch","shouldStart","velocity","computeVelocity","flickPower","flickMaxPages","computeDestination","rewindByDrag","onClick","orthogonal","coordOf","getBaseEvent","changedTouches","TouchEvent","isDragging","Keyboard","_EventInterface10","keyboard","onKeydown","_disabled","LazyLoad","_EventInterface11","isSequential","lazyLoad","srcset","loadNext","check","preloadPages","load","onLoad","Pagination","paginationClasses","dir","getDirection","nextPage","paginationDirection","_button","select","li","class","text","pageX","paginationKeyboard","createPagination","Sync","isParent","sync","Wheel","lastTime","onWheel","deltaY","_min","wheelMinThreshold","sleep","wheelSleep","releaseWheel","shouldPrevent","wheel","Live","live","sr","DEFAULTS","speed","rewindSpeed","Fade","endCallback","transition","getSpeed","useScroll","Splide","_Splide","states","_o","_E","defaults","Constructor","protoProps","staticProps","_proto","Extensions","_this","_C","_T","Component","component","_this$event","et","directiveName","ft","resultType","icons","registry","resolver","encodeURIComponent","watchedIcons","watchIcon","unwatchIcon","getIconLibrary","lib","registerIconLibrary","unregisterIconLibrary","mutator","redraw","includeFiles","requestInclude","fileDataPromise","fetch","then","response","ok","status","OutlineInclude","allowScripts","executeScript","script","newScript","replaceChild","file","iconFiles","requestIcon","url","fileData","iconFileData","svg","div","outerHTML","parser","OutlineIconBaseline","setIcon","sizeIcon","getUrl","svgEl","hasLabel","unsafeSVG","OutlineCtaCard","highContrast","cardImage","backgroundColor","buttonStyles","OutlineCardSlider","observer","slideLength","splideEl","prevBtn","nextBtn","slideElementLightDOM","LightDOMElements","ctaCardStyles","OutlineColumnBaseline","colSpanDefault","rowSpan","verticalAlign","horizontalAlign","OutlineContactCard","OutlineGridBaseline","componentStylesLightDom","contentMaxWidth","gapSize","gridClasses","yPadding","backgroundSvg","OutlineContainerBaseline","OutlineDropdownBaseline","mobileController","isOpen","isDisabled","triggerVariant","hasDropdown","containingElement","panel","hide","handleDocumentMouseDown","handleEscKeyDown","focusOnTrigger","handleFocusChange","getRootNode","_c","handleIconClick","show","handleEnterKeyDown","splitButton","trigger","regularButton","handlePanelKeystrokes","handleIconTrigger","handleButtonTrigger","dropdown","mobile","buttonTemplate","dropdownTemplate","triggerLabel","triggerText","outlineButtonBaselineCssLit","OutlineEmergencyAlert","convertPixelsToRem","px","documentElement","fontSize","toggleOpen","contentElement","bodySlot","ctaSlot","scrollHeight","OutlineEmergencyTakeover","OutlineEventCard","handleClick","flatten","findLink","slotAssignedElements","slotResult","childResult","link","click","placeholderImage","OutlineFeaturedContent","mediaPosition","hasVideo","OutlineFileDownload","OutlineFileLink","fileName","OutlineFooter","folder","substring","OutlineIcon","OutlineFormBaseline","initCustomSelect","handleActiveState","closeAllSelect","field","input","handleFocus","handleBlur","handleInput","handleOptionClick","previousSibling","selectedIndex","_d","handleSelectedClick","isExpanded","handleKeydown","selElmnt","elmnt","selectItemsElements","selectedElements","arrNo","triggerSearch","targetNodeName","formElement","submit","formType","OutlineGlobalHeader","isSearchExpanded","isMobileHamburgerTrayOpen","isAdminToolbarOpen","_handleKeyDown","toolbar","_mobileTemplate","_desktopTemplate","_mobileSearchTemplate","_desktopSearchTemplate","desktop","expanded","OutlineGlobalMainNavigation","OutlineGlobalMenuBaseline","flipAlignment","activeTrail","isDropdownOpen","setListeners","removeDesktopListeners","addMobileListeners","addDesktopListeners","removeMobileListeners","handleKeyDown","ev","isOnEdge","handleDocumentClick","dropdownEl","allowedHeadingSizes","allowedHeadingStyles","allowedHeadingColors","allowedAccentColors","OutlineHeadingBaseline","levelStyle","levelColor","accentColor","ruled","hasBorderBottom","levelSize","OutlineHero","componentLightDomStyles","checkForBackground","checkForFixedHeight","createClassMap","hasBackground","levelOpacity","classname","hasFixedHeight","aspectRatio","backgroundSlot","applyResizeHandler","setHeightVar","headingTextContent","descriptionTextContent","clientHeight","queryAssignedNodes","OutlineIframe","isBordered","OutlineLinkGridBlock","OutlineMediaGallery","_playVideo","currentTarget","video","videoWrapper","mediaGalleryVideo","_handleTriggerKeydown","_handleSlideChange","slideObject","videoElement","isExternalVideo","hasDescription","OutlineMediaGalleryCaption","OutlineNewsCard","OutlineOrgChart","OutlinePager","OutlinePopover","heading","description","buttonLabel","buttonClass","popoverClass","popoverId","disableOthers","popover","iconStyles","OutlineProfileCard","variation","OutlineProfilePageWrapper","OutlineQuote","OutlineSearch","initializeWrapperSize","buttonWidth","offsetWidth","searchWrapper","searchContainer","OutlineSidebarBlock","OutlineStates","OutlineStyledTable","OutlineStyledTextBaseline","OutlineTag","isFacet","addIcon","OutlineTeaserCard","OutlineUtilityNav","OutlineVideoModal","_pauseVideo","contentWindow","postMessage","_closeAll","iFrame","playIconTemplate","_modalTemplate","removeProperty","_handleSlotChange","_hasAccessibilityDescriptionSlot","template","_handleOverlayClick","_handleOverlayKeydown","_handleCloseKeydown","closeButton","_trapFocus","triggerElement","modalElement","defaultFocusableElements","firstFocusableElement","lastFocusableSlottedElement","lastFocusableElement","shiftKey","OutlineVideoPlayer","playing","hideToggleButton","getVideo","handleVideoAttributes","objectFit","pauseVideo","pauseIcon","playIcon","videoContent","slotted","slottedContent","iframe","videoEl","setElementStyles","poster","HTMLVideoElement","muted","OutlineWorkdayBlock","OutlineAccordionBaselinePanel","passClick","setActive","buttonRef","OutlineOrgChartPanelContent","hideIcon","profileLink","headerText","subHeaderText","OutlineOrgChartBaselinePanel","addContentBorder","hasContentBorder","hasChildren","SampleComponent"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,35,36,45,46,47,50,51,52,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,115]}