@gsa-tts/graymatter-ui 1.2.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +59 -91
  2. package/assets/uswds/components/usa-banner.js.mjs +805 -0
  3. package/assets/uswds/components/usa-banner.js.umd.js +127 -0
  4. package/package.json +18 -34
  5. package/src/components/DesktopSideNav.svelte +17 -15
  6. package/src/components/MobileTopNav.svelte +15 -13
  7. package/src/components/ProfileMenu.svelte +22 -15
  8. package/src/components/Tooltip.svelte +288 -0
  9. package/src/components/UsaBanner.svelte +2 -2
  10. package/src/components/index.ts +1 -0
  11. package/src/utils/index.ts +0 -4
  12. package/static/uswds/js/uswds.js +37 -3
  13. package/static/uswds/js/uswds.min.js +1 -1
  14. package/static/uswds/js/uswds.min.js.map +1 -1
  15. package/static/uswds/styles/styles.css +3 -3
  16. package/static/uswds/styles/styles.css.map +1 -1
  17. package/dist/graymatter-ui.js +0 -6025
  18. package/dist/graymatter-ui.umd.cjs +0 -78
  19. package/src/astro-config/index.ts +0 -139
  20. package/src/components/Button.webcomponent.svelte +0 -58
  21. package/src/components/DesktopHeader.webcomponent.svelte +0 -21
  22. package/src/components/DesktopSideNav.webcomponent.svelte +0 -42
  23. package/src/components/Logo.webcomponent.svelte +0 -29
  24. package/src/components/MobileBottomNav.webcomponent.svelte +0 -32
  25. package/src/components/MobileSideMenu.webcomponent.svelte +0 -13
  26. package/src/components/MobileTopNav.webcomponent.svelte +0 -20
  27. package/src/index.ts +0 -19
  28. package/src/layouts/BaseLayout.astro +0 -37
  29. package/src/layouts/DocsLayout.astro +0 -342
  30. package/src/layouts/GlobalAppLayout.astro +0 -536
  31. package/src/layouts/GoogleTagManager.astro +0 -17
  32. package/src/layouts/Head.astro +0 -101
  33. package/src/layouts/fonts.ts +0 -17
  34. package/src/pages/.gitkeep +0 -0
  35. package/src/utils/remarkPlugins.ts +0 -55
@@ -0,0 +1,127 @@
1
+ (function(b,f){typeof exports=="object"&&typeof module<"u"?module.exports=f():typeof define=="function"&&define.amd?define(f):(b=typeof globalThis<"u"?globalThis:b||self,b["usa-banner"]=f())})(this,function(){"use strict";var Ie=Object.defineProperty;var We=(b,f,w)=>f in b?Ie(b,f,{enumerable:!0,configurable:!0,writable:!0,value:w}):b[f]=w;var G=(b,f,w)=>We(b,typeof f!="symbol"?f+"":f,w);/**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: BSD-3-Clause
5
+ */var me;const b=globalThis,f=b.ShadowRoot&&(b.ShadyCSS===void 0||b.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,w=Symbol(),Q=new WeakMap;let pe=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==w)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(f&&e===void 0){const n=t!==void 0&&t.length===1;n&&(e=Q.get(t)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&Q.set(t,e))}return e}toString(){return this.cssText}};const I=r=>new pe(typeof r=="string"?r:r+"",void 0,w),_e=(r,e)=>{if(f)r.adoptedStyleSheets=e.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const t of e){const n=document.createElement("style"),a=b.litNonce;a!==void 0&&n.setAttribute("nonce",a),n.textContent=t.cssText,r.appendChild(n)}},Z=f?r=>r:r=>r instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return I(t)})(r):r;/**
6
+ * @license
7
+ * Copyright 2017 Google LLC
8
+ * SPDX-License-Identifier: BSD-3-Clause
9
+ */const{is:ge,defineProperty:ve,getOwnPropertyDescriptor:we,getOwnPropertyNames:$e,getOwnPropertySymbols:ye,getPrototypeOf:ke}=Object,p=globalThis,X=p.trustedTypes,xe=X?X.emptyScript:"",W=p.reactiveElementPolyfillSupport,E=(r,e)=>r,D={toAttribute(r,e){switch(e){case Boolean:r=r?xe:null;break;case Object:case Array:r=r==null?r:JSON.stringify(r)}return r},fromAttribute(r,e){let t=r;switch(e){case Boolean:t=r!==null;break;case Number:t=r===null?null:Number(r);break;case Object:case Array:try{t=JSON.parse(r)}catch{t=null}}return t}},Y=(r,e)=>!ge(r,e),ee={attribute:!0,type:String,converter:D,reflect:!1,useDefault:!1,hasChanged:Y};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),p.litPropertyMetadata??(p.litPropertyMetadata=new WeakMap);let A=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??(this.l=[])).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=ee){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){const n=Symbol(),a=this.getPropertyDescriptor(e,n,t);a!==void 0&&ve(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){const{get:a,set:o}=we(this.prototype,e)??{get(){return this[t]},set(i){this[t]=i}};return{get:a,set(i){const l=a==null?void 0:a.call(this);o==null||o.call(this,i),this.requestUpdate(e,l,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??ee}static _$Ei(){if(this.hasOwnProperty(E("elementProperties")))return;const e=ke(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(E("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(E("properties"))){const t=this.properties,n=[...$e(t),...ye(t)];for(const a of n)this.createProperty(a,t[a])}const e=this[Symbol.metadata];if(e!==null){const t=litPropertyMetadata.get(e);if(t!==void 0)for(const[n,a]of t)this.elementProperties.set(n,a)}this._$Eh=new Map;for(const[t,n]of this.elementProperties){const a=this._$Eu(t,n);a!==void 0&&this._$Eh.set(a,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const a of n)t.unshift(Z(a))}else e!==void 0&&t.push(Z(e));return t}static _$Eu(e,t){const n=t.attribute;return n===!1?void 0:typeof n=="string"?n:typeof e=="string"?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var e;this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),(e=this.constructor.l)==null||e.forEach(t=>t(this))}addController(e){var t;(this._$EO??(this._$EO=new Set)).add(e),this.renderRoot!==void 0&&this.isConnected&&((t=e.hostConnected)==null||t.call(e))}removeController(e){var t;(t=this._$EO)==null||t.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const n of t.keys())this.hasOwnProperty(n)&&(e.set(n,this[n]),delete this[n]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return _e(e,this.constructor.elementStyles),e}connectedCallback(){var e;this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(e=this._$EO)==null||e.forEach(t=>{var n;return(n=t.hostConnected)==null?void 0:n.call(t)})}enableUpdating(e){}disconnectedCallback(){var e;(e=this._$EO)==null||e.forEach(t=>{var n;return(n=t.hostDisconnected)==null?void 0:n.call(t)})}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$ET(e,t){var o;const n=this.constructor.elementProperties.get(e),a=this.constructor._$Eu(e,n);if(a!==void 0&&n.reflect===!0){const i=(((o=n.converter)==null?void 0:o.toAttribute)!==void 0?n.converter:D).toAttribute(t,n.type);this._$Em=e,i==null?this.removeAttribute(a):this.setAttribute(a,i),this._$Em=null}}_$AK(e,t){var o,i;const n=this.constructor,a=n._$Eh.get(e);if(a!==void 0&&this._$Em!==a){const l=n.getPropertyOptions(a),s=typeof l.converter=="function"?{fromAttribute:l.converter}:((o=l.converter)==null?void 0:o.fromAttribute)!==void 0?l.converter:D;this._$Em=a,this[a]=s.fromAttribute(t,l.type)??((i=this._$Ej)==null?void 0:i.get(a))??null,this._$Em=null}}requestUpdate(e,t,n){var a;if(e!==void 0){const o=this.constructor,i=this[e];if(n??(n=o.getPropertyOptions(e)),!((n.hasChanged??Y)(i,t)||n.useDefault&&n.reflect&&i===((a=this._$Ej)==null?void 0:a.get(e))&&!this.hasAttribute(o._$Eu(e,n))))return;this.C(e,t,n)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,t,{useDefault:n,reflect:a,wrapped:o},i){n&&!(this._$Ej??(this._$Ej=new Map)).has(e)&&(this._$Ej.set(e,i??t??this[e]),o!==!0||i!==void 0)||(this._$AL.has(e)||(this.hasUpdated||n||(t=void 0),this._$AL.set(e,t)),a===!0&&this._$Em!==e&&(this._$Eq??(this._$Eq=new Set)).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var n;if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(const[o,i]of this._$Ep)this[o]=i;this._$Ep=void 0}const a=this.constructor.elementProperties;if(a.size>0)for(const[o,i]of a){const{wrapped:l}=i,s=this[o];l!==!0||this._$AL.has(o)||s===void 0||this.C(o,void 0,i,s)}}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),(n=this._$EO)==null||n.forEach(a=>{var o;return(o=a.hostUpdate)==null?void 0:o.call(a)}),this.update(t)):this._$EM()}catch(a){throw e=!1,this._$EM(),a}e&&this._$AE(t)}willUpdate(e){}_$AE(e){var t;(t=this._$EO)==null||t.forEach(n=>{var a;return(a=n.hostUpdated)==null?void 0:a.call(n)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&(this._$Eq=this._$Eq.forEach(t=>this._$ET(t,this[t]))),this._$EM()}updated(e){}firstUpdated(e){}};A.elementStyles=[],A.shadowRootOptions={mode:"open"},A[E("elementProperties")]=new Map,A[E("finalized")]=new Map,W==null||W({ReactiveElement:A}),(p.reactiveElementVersions??(p.reactiveElementVersions=[])).push("2.1.0");/**
10
+ * @license
11
+ * Copyright 2017 Google LLC
12
+ * SPDX-License-Identifier: BSD-3-Clause
13
+ */const T=globalThis,R=T.trustedTypes,te=R?R.createPolicy("lit-html",{createHTML:r=>r}):void 0,ne="$lit$",_=`lit$${Math.random().toFixed(9).slice(2)}$`,ae="?"+_,Ae=`<${ae}>`,$=document,C=()=>$.createComment(""),M=r=>r===null||typeof r!="object"&&typeof r!="function",V=Array.isArray,Se=r=>V(r)||typeof(r==null?void 0:r[Symbol.iterator])=="function",q=`[
14
+ \f\r]`,z=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,re=/-->/g,oe=/>/g,y=RegExp(`>|${q}(?:([^\\s"'>=/]+)(${q}*=${q}*(?:[^
15
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),ie=/'/g,se=/"/g,le=/^(?:script|style|textarea|title)$/i,Ee=r=>(e,...t)=>({_$litType$:r,strings:e,values:t}),N=Ee(1),g=Symbol.for("lit-noChange"),d=Symbol.for("lit-nothing"),ce=new WeakMap,k=$.createTreeWalker($,129);function de(r,e){if(!V(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return te!==void 0?te.createHTML(e):e}const Te=(r,e)=>{const t=r.length-1,n=[];let a,o=e===2?"<svg>":e===3?"<math>":"",i=z;for(let l=0;l<t;l++){const s=r[l];let h,u,c=-1,m=0;for(;m<s.length&&(i.lastIndex=m,u=i.exec(s),u!==null);)m=i.lastIndex,i===z?u[1]==="!--"?i=re:u[1]!==void 0?i=oe:u[2]!==void 0?(le.test(u[2])&&(a=RegExp("</"+u[2],"g")),i=y):u[3]!==void 0&&(i=y):i===y?u[0]===">"?(i=a??z,c=-1):u[1]===void 0?c=-2:(c=i.lastIndex-u[2].length,h=u[1],i=u[3]===void 0?y:u[3]==='"'?se:ie):i===se||i===ie?i=y:i===re||i===oe?i=z:(i=y,a=void 0);const v=i===y&&r[l+1].startsWith("/>")?" ":"";o+=i===z?s+Ae:c>=0?(n.push(h),s.slice(0,c)+ne+s.slice(c)+_+v):s+_+(c===-2?l:v)}return[de(r,o+(r[t]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),n]};class P{constructor({strings:e,_$litType$:t},n){let a;this.parts=[];let o=0,i=0;const l=e.length-1,s=this.parts,[h,u]=Te(e,t);if(this.el=P.createElement(h,n),k.currentNode=this.el.content,t===2||t===3){const c=this.el.content.firstChild;c.replaceWith(...c.childNodes)}for(;(a=k.nextNode())!==null&&s.length<l;){if(a.nodeType===1){if(a.hasAttributes())for(const c of a.getAttributeNames())if(c.endsWith(ne)){const m=u[i++],v=a.getAttribute(c).split(_),j=/([.?@])?(.*)/.exec(m);s.push({type:1,index:o,name:j[2],strings:v,ctor:j[1]==="."?Me:j[1]==="?"?ze:j[1]==="@"?Pe:B}),a.removeAttribute(c)}else c.startsWith(_)&&(s.push({type:6,index:o}),a.removeAttribute(c));if(le.test(a.tagName)){const c=a.textContent.split(_),m=c.length-1;if(m>0){a.textContent=R?R.emptyScript:"";for(let v=0;v<m;v++)a.append(c[v],C()),k.nextNode(),s.push({type:2,index:++o});a.append(c[m],C())}}}else if(a.nodeType===8)if(a.data===ae)s.push({type:2,index:o});else{let c=-1;for(;(c=a.data.indexOf(_,c+1))!==-1;)s.push({type:7,index:o}),c+=_.length-1}o++}}static createElement(e,t){const n=$.createElement("template");return n.innerHTML=e,n}}function S(r,e,t=r,n){var i,l;if(e===g)return e;let a=n!==void 0?(i=t._$Co)==null?void 0:i[n]:t._$Cl;const o=M(e)?void 0:e._$litDirective$;return(a==null?void 0:a.constructor)!==o&&((l=a==null?void 0:a._$AO)==null||l.call(a,!1),o===void 0?a=void 0:(a=new o(r),a._$AT(r,t,n)),n!==void 0?(t._$Co??(t._$Co=[]))[n]=a:t._$Cl=a),a!==void 0&&(e=S(r,a._$AS(r,e.values),a,n)),e}class Ce{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){const{el:{content:t},parts:n}=this._$AD,a=((e==null?void 0:e.creationScope)??$).importNode(t,!0);k.currentNode=a;let o=k.nextNode(),i=0,l=0,s=n[0];for(;s!==void 0;){if(i===s.index){let h;s.type===2?h=new U(o,o.nextSibling,this,e):s.type===1?h=new s.ctor(o,s.name,s.strings,this,e):s.type===6&&(h=new Ue(o,this,e)),this._$AV.push(h),s=n[++l]}i!==(s==null?void 0:s.index)&&(o=k.nextNode(),i++)}return k.currentNode=$,a}p(e){let t=0;for(const n of this._$AV)n!==void 0&&(n.strings!==void 0?(n._$AI(e,n,t),t+=n.strings.length-2):n._$AI(e[t])),t++}}class U{get _$AU(){var e;return((e=this._$AM)==null?void 0:e._$AU)??this._$Cv}constructor(e,t,n,a){this.type=2,this._$AH=d,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=n,this.options=a,this._$Cv=(a==null?void 0:a.isConnected)??!0}get parentNode(){let e=this._$AA.parentNode;const t=this._$AM;return t!==void 0&&(e==null?void 0:e.nodeType)===11&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=S(this,e,t),M(e)?e===d||e==null||e===""?(this._$AH!==d&&this._$AR(),this._$AH=d):e!==this._$AH&&e!==g&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):Se(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==d&&M(this._$AH)?this._$AA.nextSibling.data=e:this.T($.createTextNode(e)),this._$AH=e}$(e){var o;const{values:t,_$litType$:n}=e,a=typeof n=="number"?this._$AC(e):(n.el===void 0&&(n.el=P.createElement(de(n.h,n.h[0]),this.options)),n);if(((o=this._$AH)==null?void 0:o._$AD)===a)this._$AH.p(t);else{const i=new Ce(a,this),l=i.u(this.options);i.p(t),this.T(l),this._$AH=i}}_$AC(e){let t=ce.get(e.strings);return t===void 0&&ce.set(e.strings,t=new P(e)),t}k(e){V(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let n,a=0;for(const o of e)a===t.length?t.push(n=new U(this.O(C()),this.O(C()),this,this.options)):n=t[a],n._$AI(o),a++;a<t.length&&(this._$AR(n&&n._$AB.nextSibling,a),t.length=a)}_$AR(e=this._$AA.nextSibling,t){var n;for((n=this._$AP)==null?void 0:n.call(this,!1,!0,t);e&&e!==this._$AB;){const a=e.nextSibling;e.remove(),e=a}}setConnected(e){var t;this._$AM===void 0&&(this._$Cv=e,(t=this._$AP)==null||t.call(this,e))}}class B{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,n,a,o){this.type=1,this._$AH=d,this._$AN=void 0,this.element=e,this.name=t,this._$AM=a,this.options=o,n.length>2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=d}_$AI(e,t=this,n,a){const o=this.strings;let i=!1;if(o===void 0)e=S(this,e,t,0),i=!M(e)||e!==this._$AH&&e!==g,i&&(this._$AH=e);else{const l=e;let s,h;for(e=o[0],s=0;s<o.length-1;s++)h=S(this,l[n+s],t,s),h===g&&(h=this._$AH[s]),i||(i=!M(h)||h!==this._$AH[s]),h===d?e=d:e!==d&&(e+=(h??"")+o[s+1]),this._$AH[s]=h}i&&!a&&this.j(e)}j(e){e===d?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}}class Me extends B{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===d?void 0:e}}class ze extends B{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==d)}}class Pe extends B{constructor(e,t,n,a,o){super(e,t,n,a,o),this.type=5}_$AI(e,t=this){if((e=S(this,e,t,0)??d)===g)return;const n=this._$AH,a=e===d&&n!==d||e.capture!==n.capture||e.once!==n.once||e.passive!==n.passive,o=e!==d&&(n===d||a);a&&this.element.removeEventListener(this.name,this,n),o&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var t;typeof this._$AH=="function"?this._$AH.call(((t=this.options)==null?void 0:t.host)??this.element,e):this._$AH.handleEvent(e)}}class Ue{constructor(e,t,n){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(e){S(this,e)}}const F=T.litHtmlPolyfillSupport;F==null||F(P,U),(T.litHtmlVersions??(T.litHtmlVersions=[])).push("3.3.0");const He=(r,e,t)=>{const n=(t==null?void 0:t.renderBefore)??e;let a=n._$litPart$;if(a===void 0){const o=(t==null?void 0:t.renderBefore)??null;n._$litPart$=a=new U(e.insertBefore(C(),o),o,void 0,t??{})}return a._$AI(r),a};/**
16
+ * @license
17
+ * Copyright 2017 Google LLC
18
+ * SPDX-License-Identifier: BSD-3-Clause
19
+ */const x=globalThis;let H=class extends A{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t;const e=super.createRenderRoot();return(t=this.renderOptions).renderBefore??(t.renderBefore=e.firstChild),e}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=He(t,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),(e=this._$Do)==null||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._$Do)==null||e.setConnected(!1)}render(){return g}};H._$litElement$=!0,H.finalized=!0,(me=x.litElementHydrateSupport)==null||me.call(x,{LitElement:H});const J=x.litElementPolyfillSupport;J==null||J({LitElement:H}),(x.litElementVersions??(x.litElementVersions=[])).push("4.2.0");/**
20
+ * @license
21
+ * Copyright 2017 Google LLC
22
+ * SPDX-License-Identifier: BSD-3-Clause
23
+ */const he={ATTRIBUTE:1,CHILD:2},ue=r=>(...e)=>({_$litDirective$:r,values:e});class fe{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,n){this._$Ct=e,this._$AM=t,this._$Ci=n}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}/**
24
+ * @license
25
+ * Copyright 2017 Google LLC
26
+ * SPDX-License-Identifier: BSD-3-Clause
27
+ */let K=class extends fe{constructor(e){if(super(e),this.it=d,e.type!==he.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===d||e==null)return this._t=void 0,this.it=e;if(e===g)return e;if(typeof e!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;const t=[e];return t.raw=t,this._t={_$litType$:this.constructor.resultType,strings:t,values:[]}}};K.directiveName="unsafeHTML",K.resultType=1;const be=ue(K);/**
28
+ * @license
29
+ * Copyright 2018 Google LLC
30
+ * SPDX-License-Identifier: BSD-3-Clause
31
+ */const Oe=ue(class extends fe{constructor(r){var e;if(super(r),r.type!==he.ATTRIBUTE||r.name!=="class"||((e=r.strings)==null?void 0:e.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(r){return" "+Object.keys(r).filter(e=>r[e]).join(" ")+" "}update(r,[e]){var n,a;if(this.st===void 0){this.st=new Set,r.strings!==void 0&&(this.nt=new Set(r.strings.join(" ").split(/\s/).filter(o=>o!=="")));for(const o in e)e[o]&&!((n=this.nt)!=null&&n.has(o))&&this.st.add(o);return this.render(e)}const t=r.element.classList;for(const o of this.st)o in e||(t.remove(o),this.st.delete(o));for(const o in e){const i=!!e[o];i===this.st.has(o)||(a=this.nt)!=null&&a.has(o)||(i?(t.add(o),this.st.add(o)):(t.remove(o),this.st.delete(o)))}return g}}),Re='@font-face{font-family:Roboto Mono Web;font-style:normal;font-weight:300;font-display:fallback;src:url(../fonts/roboto-mono/roboto-mono-v5-latin-300.woff2) format("woff2")}@font-face{font-family:Roboto Mono Web;font-style:normal;font-weight:400;font-display:fallback;src:url(../fonts/roboto-mono/roboto-mono-v5-latin-regular.woff2) format("woff2")}@font-face{font-family:Roboto Mono Web;font-style:normal;font-weight:700;font-display:fallback;src:url(../fonts/roboto-mono/roboto-mono-v5-latin-700.woff2) format("woff2")}@font-face{font-family:Roboto Mono Web;font-style:italic;font-weight:300;font-display:fallback;src:url(../fonts/roboto-mono/roboto-mono-v5-latin-300italic.woff2) format("woff2")}@font-face{font-family:Roboto Mono Web;font-style:italic;font-weight:400;font-display:fallback;src:url(../fonts/roboto-mono/roboto-mono-v5-latin-italic.woff2) format("woff2")}@font-face{font-family:Roboto Mono Web;font-style:italic;font-weight:700;font-display:fallback;src:url(../fonts/roboto-mono/roboto-mono-v5-latin-700italic.woff2) format("woff2")}@font-face{font-family:Source Sans Pro Web;font-style:normal;font-weight:300;font-display:fallback;src:url(../fonts/source-sans-pro/sourcesanspro-light-webfont.woff2) format("woff2")}@font-face{font-family:Source Sans Pro Web;font-style:normal;font-weight:400;font-display:fallback;src:url(../fonts/source-sans-pro/sourcesanspro-regular-webfont.woff2) format("woff2")}@font-face{font-family:Source Sans Pro Web;font-style:normal;font-weight:700;font-display:fallback;src:url(../fonts/source-sans-pro/sourcesanspro-bold-webfont.woff2) format("woff2")}@font-face{font-family:Source Sans Pro Web;font-style:italic;font-weight:300;font-display:fallback;src:url(../fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff2) format("woff2")}@font-face{font-family:Source Sans Pro Web;font-style:italic;font-weight:400;font-display:fallback;src:url(../fonts/source-sans-pro/sourcesanspro-italic-webfont.woff2) format("woff2")}@font-face{font-family:Source Sans Pro Web;font-style:italic;font-weight:700;font-display:fallback;src:url(../fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff2) format("woff2")}@font-face{font-family:Merriweather Web;font-style:normal;font-weight:300;font-display:fallback;src:url(../fonts/merriweather/Latin-Merriweather-Light.woff2) format("woff2")}@font-face{font-family:Merriweather Web;font-style:normal;font-weight:400;font-display:fallback;src:url(../fonts/merriweather/Latin-Merriweather-Regular.woff2) format("woff2")}@font-face{font-family:Merriweather Web;font-style:normal;font-weight:700;font-display:fallback;src:url(../fonts/merriweather/Latin-Merriweather-Bold.woff2) format("woff2")}@font-face{font-family:Merriweather Web;font-style:italic;font-weight:300;font-display:fallback;src:url(../fonts/merriweather/Latin-Merriweather-LightItalic.woff2) format("woff2")}@font-face{font-family:Merriweather Web;font-style:italic;font-weight:400;font-display:fallback;src:url(../fonts/merriweather/Latin-Merriweather-Italic.woff2) format("woff2")}@font-face{font-family:Merriweather Web;font-style:italic;font-weight:700;font-display:fallback;src:url(../fonts/merriweather/Latin-Merriweather-BoldItalic.woff2) format("woff2")}.usa-media-block{align-items:flex-start;display:flex}.usa-media-block__img{flex-shrink:0;margin-right:.5rem}.usa-media-block__body{flex:1 1 0%}.usa-banner{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;background-color:#f0f0f0}@media all and (min-width: 40em){.usa-banner{font-size:.87rem;padding-bottom:0rem}}.usa-banner .usa-accordion{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5}.usa-banner .grid-row{display:flex;flex-wrap:wrap}.usa-banner .grid-row.grid-gap-lg{margin-left:-.75rem;margin-right:-.75rem}.usa-banner .grid-row.grid-gap-lg>*{padding-left:.75rem;padding-right:.75rem}@media all and (min-width: 40em){.usa-banner .grid-row .tablet\\:grid-col-6{flex:0 1 auto;width:50%}}.usa-banner__header,.usa-banner__content{color:#1b1b1b}.usa-banner__content{margin-left:auto;margin-right:auto;max-width:64rem;padding-right:1rem;padding-left:1rem;background-color:transparent;font-size:1rem;overflow:hidden;padding:.25rem 1rem 1rem .5rem;width:100%}@media all and (min-width: 64em){.usa-banner__content{padding-left:2rem;padding-right:2rem}}@media all and (min-width: 40em){.usa-banner__content{padding-bottom:1.5rem;padding-top:1.5rem}}.usa-banner__content p:first-child{margin:0}.usa-banner__guidance{display:flex;align-items:flex-start;max-width:64ex;padding-top:1rem}@media all and (min-width: 40em){.usa-banner__guidance{padding-top:0rem}}.usa-banner__lock-image{height:1.5ex;width:1.21875ex}.usa-banner__lock-image path{fill:currentColor}@media (forced-colors: active){.usa-banner__lock-image path{fill:CanvasText}}.usa-banner__inner{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem;display:flex;flex-wrap:wrap;align-items:flex-start;padding-right:0rem}@media all and (min-width: 64em){.usa-banner__inner{padding-left:2rem;padding-right:2rem}}@media all and (min-width: 40em){.usa-banner__inner{align-items:center}}.usa-banner__header{padding-bottom:.5rem;padding-top:.5rem;font-size:.8rem;font-weight:400;min-height:3rem;position:relative}@media all and (min-width: 40em){.usa-banner__header{padding-bottom:.25rem;padding-top:.25rem;min-height:0}}.usa-banner__header-text{margin-bottom:0;margin-top:0;font-size:.8rem;line-height:1.1}.usa-banner__header-action{color:#005ea2;line-height:1.1;margin-bottom:0rem;margin-top:2px;text-decoration:underline}.usa-banner__header-action:after{background-image:url(../img/usa-icons/expand_more.svg);background-repeat:no-repeat;background-position:center center;background-size:1rem 1rem;display:inline-block;height:1rem;width:1rem;content:"";vertical-align:middle;margin-left:auto}@supports (mask: url()){.usa-banner__header-action:after{background:none;background-color:#005ea2;-webkit-mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1rem 1rem;mask-size:1rem 1rem}.usa-banner__header-action:after:hover{background-color:#1a4480}}.usa-banner__header-action:hover:after{content:"";background-color:#1a4480}.usa-banner__header-action:visited{color:#54278f}.usa-banner__header-action:hover,.usa-banner__header-action:active{color:#1a4480}@media all and (min-width: 40em){.usa-banner__header-action{display:none}}@media (forced-colors: active){.usa-banner__header-action{color:LinkText}.usa-banner__header-action:after{background-color:ButtonText}}.usa-banner__header-flag{float:left;margin-right:.5rem;width:1rem}@media all and (min-width: 40em){.usa-banner__header-flag{margin-right:.5rem;padding-top:0rem}}.usa-banner__header--expanded{padding-right:3.5rem}@media all and (min-width: 40em){.usa-banner__header--expanded{background-color:transparent;display:block;font-size:.8rem;font-weight:400;min-height:0rem;padding-right:0rem}}.usa-banner__header--expanded .usa-banner__inner{margin-left:0rem}@media all and (min-width: 40em){.usa-banner__header--expanded .usa-banner__inner{margin-left:auto}}.usa-banner__header--expanded .usa-banner__header-action{display:none}.usa-banner__button{background-color:transparent;border:0;border-radius:0;box-shadow:none;font-weight:400;justify-content:normal;text-align:left;margin:0;padding:0;left:0;position:absolute;bottom:0;top:0;text-decoration:underline;color:#005ea2;display:block;font-size:.8rem;height:auto;line-height:1.1;padding-top:0rem;padding-left:0rem;text-decoration:none;width:auto}.usa-banner__button:hover{color:#1a4480}.usa-banner__button:active{color:#162e51}.usa-banner__button:focus{outline:.25rem solid #2491ff;outline-offset:0rem}.usa-banner__button:hover,.usa-banner__button.usa-button--hover,.usa-banner__button:disabled:hover,.usa-banner__button[aria-disabled=true]:hover,.usa-banner__button:disabled.usa-button--hover,.usa-banner__button[aria-disabled=true].usa-button--hover,.usa-banner__button:active,.usa-banner__button.usa-button--active,.usa-banner__button:disabled:active,.usa-banner__button[aria-disabled=true]:active,.usa-banner__button:disabled.usa-button--active,.usa-banner__button[aria-disabled=true].usa-button--active,.usa-banner__button:disabled:focus,.usa-banner__button[aria-disabled=true]:focus,.usa-banner__button:disabled.usa-focus,.usa-banner__button[aria-disabled=true].usa-focus,.usa-banner__button:disabled,.usa-banner__button[aria-disabled=true],.usa-banner__button.usa-button--disabled{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-banner__button.usa-button--hover{color:#1a4480}.usa-banner__button.usa-button--active{color:#162e51}.usa-banner__button:disabled,.usa-banner__button[aria-disabled=true],.usa-banner__button:disabled:hover,.usa-banner__button[aria-disabled=true]:hover,.usa-banner__button[aria-disabled=true]:focus{color:#757575}@media (forced-colors: active){.usa-banner__button:disabled,.usa-banner__button[aria-disabled=true],.usa-banner__button:disabled:hover,.usa-banner__button[aria-disabled=true]:hover,.usa-banner__button[aria-disabled=true]:focus{color:GrayText}}.usa-banner__button:visited{color:#54278f}.usa-banner__button:hover,.usa-banner__button:active{color:#1a4480}@media all and (max-width: 39.99em){.usa-banner__button{width:100%}.usa-banner__button:enabled:focus{outline-offset:-.25rem}}@media all and (min-width: 40em){.usa-banner__button{color:#005ea2;position:static;bottom:auto;left:auto;right:auto;top:auto;display:inline;margin-left:.5rem;position:relative}.usa-banner__button:after{background-image:url(../img/usa-icons/expand_more.svg);background-repeat:no-repeat;background-position:center center;background-size:1rem 1rem;display:inline-block;height:1rem;width:1rem;content:"";vertical-align:middle;margin-left:2px}@supports (mask: url()){.usa-banner__button:after{background:none;background-color:#005ea2;-webkit-mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1rem 1rem;mask-size:1rem 1rem}.usa-banner__button:after:hover{background-color:#1a4480}}.usa-banner__button:hover:after{content:"";background-color:#1a4480}.usa-banner__button:visited{color:#54278f}.usa-banner__button:hover,.usa-banner__button:active{color:#1a4480}.usa-banner__button:after,.usa-banner__button:hover:after{position:absolute}}@media (min-width: 40em) and (forced-colors: active){.usa-banner__button:after,.usa-banner__button:hover:after{background-color:ButtonText}}@media all and (min-width: 40em){.usa-banner__button:hover{text-decoration:none}}.usa-banner__button[aria-expanded=false],.usa-banner__button[aria-expanded=false]:hover,.usa-banner__button[aria-expanded=true],.usa-banner__button[aria-expanded=true]:hover{background-image:none}@media (forced-colors: active){.usa-banner__button[aria-expanded=false]:before,.usa-banner__button[aria-expanded=false]:hover:before,.usa-banner__button[aria-expanded=true]:before,.usa-banner__button[aria-expanded=true]:hover:before{content:none}}@media all and (max-width: 39.99em){.usa-banner__button[aria-expanded=true]:after{background-image:url(../img/usa-icons/close.svg);background-repeat:no-repeat;background-position:center center;background-size:1.5rem 1.5rem;display:inline-block;height:3rem;width:3rem;content:"";vertical-align:middle;margin-left:0rem}@supports (mask: url()){.usa-banner__button[aria-expanded=true]:after{background:none;background-color:#005ea2;-webkit-mask-image:url(../img/usa-icons/close.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/close.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1.5rem 1.5rem;mask-size:1.5rem 1.5rem}}.usa-banner__button[aria-expanded=true]:before{bottom:0;top:0;position:absolute;right:0;background-color:#dfe1e2;content:"";display:block;height:3rem;width:3rem}.usa-banner__button[aria-expanded=true]:after{bottom:0;top:0;position:absolute;right:0}}@media all and (min-width: 40em){.usa-banner__button[aria-expanded=true]{height:auto;padding:0rem;position:relative}.usa-banner__button[aria-expanded=true]:after{background-image:url(../img/usa-icons/expand_less.svg);background-repeat:no-repeat;background-position:center center;background-size:1rem 1rem;display:inline-block;height:1rem;width:1rem;content:"";vertical-align:middle;margin-left:2px}@supports (mask: url()){.usa-banner__button[aria-expanded=true]:after{background:none;background-color:#005ea2;-webkit-mask-image:url(../img/usa-icons/expand_less.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/expand_less.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1rem 1rem;mask-size:1rem 1rem}.usa-banner__button[aria-expanded=true]:after:hover{background-color:#1a4480}}.usa-banner__button[aria-expanded=true]:hover:after{content:"";background-color:#1a4480}.usa-banner__button[aria-expanded=true]:after,.usa-banner__button[aria-expanded=true]:hover:after{position:absolute}}@media (min-width: 40em) and (forced-colors: active){.usa-banner__button[aria-expanded=true]:after,.usa-banner__button[aria-expanded=true]:hover:after{background-color:ButtonText}}.usa-banner__button-text{position:absolute;left:-999em;right:auto;text-decoration:underline}@media all and (min-width: 40em){.usa-banner__button-text{position:static;display:inline}}@media (forced-colors: active){.usa-banner__button-text{color:LinkText}}.usa-banner__icon{width:2.5rem}.usa-js-loading .usa-banner__content{position:absolute;left:-999em;right:auto}',Ne=`:host{--icon-lock: url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='52'%20height='64'%20viewBox='0%200%2052%2064'%3e%3ctitle%3elock%3c/title%3e%3cpath%20fill='%231B1B1B'%20fill-rule='evenodd'%20d='M26%200c10.493%200%2019%208.507%2019%2019v9h3a4%204%200%200%201%204%204v28a4%204%200%200%201-4%204H4a4%204%200%200%201-4-4V32a4%204%200%200%201%204-4h3v-9C7%208.507%2015.507%200%2026%200zm0%208c-5.979%200-10.843%204.77-10.996%2010.712L15%2019v9h22v-9c0-6.075-4.925-11-11-11z'/%3e%3c/svg%3e");--icon-chevron-up: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%3e%3cpath%20d='M0%200h24v24H0z'%20fill='none'/%3e%3cpath%20fill='%23fff'%20d='m12%208-6%206%201.41%201.41L12%2010.83l4.59%204.58L18%2014z'/%3e%3c/svg%3e");--icon-chevron-down: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%3e%3cpath%20d='M0%200h24v24H0z'%20fill='none'/%3e%3cpath%20fill='%23fff'%20d='M16.59%208.59%2012%2013.17%207.41%208.59%206%2010l6%206%206-6z'/%3e%3c/svg%3e");--icon-close: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%3e%3cpath%20d='M0%200h24v24H0z'%20fill='none'/%3e%3cpath%20fill='%23fff'%20d='M19%206.41%2017.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z'/%3e%3c/svg%3e");--theme-banner-background-color: var(--usa-base-lightest, #f0f0f0);--theme-banner-font-family: var(--usa-font-ui, system-ui, sans-serif);--theme-banner-text-color: var(--usa-text-base, #1b1b1b);--theme-banner-link-color: var(--theme-link-color, #005ea2);--theme-banner-link-color-hover: var(--theme-link-hover-color, #1a4480);--theme-banner-chevron-color: var(--theme-banner-link-color, #005ea2)}*{box-sizing:border-box}.usa-banner{background-color:var(--theme-banner-background-color);color:var(--theme-banner-text-color);font-family:var(--theme-banner-font-family)}.usa-banner__header,.usa-banner__content{color:var(--theme-banner-text-color)}.usa-banner__inner{flex-wrap:nowrap}.usa-banner .usa-accordion{font-family:inherit}.usa-banner__button{color:var(--theme-banner-link-color);cursor:pointer;font-family:inherit}.usa-banner__button:hover{color:var(--theme-banner-link-hover-color)}.usa-banner__button:after,.usa-banner__header-action:after{-webkit-mask-image:var(--icon-chevron-down);mask-image:var(--icon-chevron-down)}.usa-banner__button[aria-expanded=true]:after{-webkit-mask-image:var(--icon-close);mask-image:var(--icon-close)}.usa-banner__icon-lock{background-position:center;background-repeat:no-repeat;background-size:cover;display:inline-block;height:1.5ex;background-image:var(--icon-lock);-webkit-mask-image:var(--icon-lock);mask-image:var(--icon-lock);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:cover;mask-size:cover;vertical-align:middle;width:1.21875ex}@media all and (min-width: 40em){:host{--chevron-width: 1rem}.usa-banner__button,.usa-banner__button[aria-expanded=true]{padding-inline-end:var(--chevron-width)}.usa-banner__button:after{background-color:var(--theme-banner-chevron-color);top:0;right:0}.usa-banner__button[aria-expanded=true]:after{-webkit-mask-image:var(--icon-chevron-up);mask-image:var(--icon-chevron-up)}}`,Be="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAsBAMAAAAncaPMAAAAAXNSR0IArs4c6QAAABtQTFRF////4EAg2z8g2z8f2z4f2j4fHjSyHjOxHTOxQEYPwgAAAIdJREFUeNrNkUENxDAMBEOhFJaCKZiCKZhCKBj2ebV3rdR71+pIq+Qxj1GyqjJ3U8VlHkc07hFm0awBYe91juq6MSI0yhSAEgkzJ4TMKiXyzFw3pgR9lmIBJlqj2AmBedf+IycExmlKZVzvZEJ4A0oBrjBl/m6PCy95B3fFAN6YuQPxhbcB4QMkEj04wQXD5wAAAABJRU5ErkJggg==",Le="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='64'%20height='64'%20viewBox='0%200%2064%2064'%3e%3ctitle%3eicon-dot-gov%3c/title%3e%3cpath%20fill='%232378C3'%20fill-rule='evenodd'%20d='m32%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032-32-14.3-32-32%2014.3-32%2032-32zm0%201.2c-17%200-30.8%2013.8-30.8%2030.8s13.8%2030.8%2030.8%2030.8%2030.8-13.8%2030.8-30.8-13.8-30.8-30.8-30.8zm11.4%2038.9c.5%200%20.9.4.9.8v1.6h-24.6v-1.6c0-.5.4-.8.9-.8zm-17.1-12.3v9.8h1.6v-9.8h3.3v9.8h1.6v-9.8h3.3v9.8h1.6v-9.8h3.3v9.8h.8c.5%200%20.9.4.9.8v.8h-21.4v-.8c0-.5.4-.8.9-.8h.8v-9.8zm5.7-8.2%2012.3%204.9v1.6h-1.6c0%20.5-.4.8-.9.8h-19.6c-.5%200-.9-.4-.9-.8h-1.6v-1.6s12.3-4.9%2012.3-4.9z'/%3e%3c/svg%3e",je="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='64'%20height='64'%20viewBox='0%200%2064%2064'%3e%3ctitle%3eicon-https%3c/title%3e%3cpath%20fill='%23719F2A'%20fill-rule='evenodd'%20d='M32%200c17.673%200%2032%2014.327%2032%2032%200%2017.673-14.327%2032-32%2032C14.327%2064%200%2049.673%200%2032%200%2014.327%2014.327%200%2032%200zm0%201.208C14.994%201.208%201.208%2014.994%201.208%2032S14.994%2062.792%2032%2062.792%2062.792%2049.006%2062.792%2032%2049.006%201.208%2032%201.208zm0%2018.886a7.245%207.245%200%200%201%207.245%207.245v3.103h.52c.86%200%201.557.698%201.557%201.558v9.322c0%20.86-.697%201.558-1.557%201.558h-15.53c-.86%200-1.557-.697-1.557-1.558V32c0-.86.697-1.558%201.557-1.558h.52V27.34A7.245%207.245%200%200%201%2032%2020.094zm0%203.103a4.142%204.142%200%200%200-4.142%204.142v3.103h8.284V27.34A4.142%204.142%200%200%200%2032%2023.197z'/%3e%3c/svg%3e",O=class O extends H{toggle(){this.isOpen=!this.isOpen,this.shadowRoot.querySelector(".usa-banner__content").toggleAttribute("hidden")}constructor(){super(),this.lang="en",this.isOpen=!1,this.tld="gov",this.data={en:{banner:{label:"Official website of the United States government",text:"An official website of the United States government",action:"Here's how you know"},domain:{heading:"Official websites use",text1:"A",text2:"website belongs to an official government organization in the United States."},https:{heading1:"Secure",heading2:"websites use HTTPS",text1:"A <strong>lock</strong>",text2:"or <strong>https://</strong> means you’ve safely connected to the",text3:"website. Share sensitive information only on official, secure websites."}},es:{banner:{label:"Un sitio oficial del Gobierno de Estados Unidos",text:"Un sitio oficial del Gobierno de Estados Unidos",action:"Así es como usted puede verificarlo"},domain:{heading:"Los sitios web oficiales usan",text1:"Un sitio web",text2:"pertenece a una organización oficial del Gobierno de Estados Unidos."},https:{heading1:"Los sitios web seguros",heading2:"usan HTTPS",text1:"Un <strong>candado</strong>",text2:"o <strong>https://</strong> significa que usted se conectó de forma segura a un sitio web",text3:"Comparta información sensible sólo en sitios web oficiales y seguros."}}}}get _bannerText(){return this.data[this.lang]||this.data.en}get _actionText(){const e=this.querySelector('[slot="banner-action"]');return e==null?void 0:e.textContent}domainTemplate(e){const{domain:t}=this._bannerText;return N`
32
+ <img
33
+ class="usa-banner__icon usa-media-block__img"
34
+ src="${Le}"
35
+ role="img"
36
+ alt=""
37
+ aria-hidden="true"
38
+ />
39
+ <div class="usa-media-block__body">
40
+ <p>
41
+ <strong>
42
+ <slot name="domain-heading"> ${t.heading} .${e} </slot>
43
+ </strong>
44
+ <br />
45
+ <slot name="domain-text">
46
+ ${t.text1} <strong>.${e}</strong> ${t.text2}
47
+ </slot>
48
+ </p>
49
+ </div>
50
+ `}static lockIcon(){return N`
51
+ <span
52
+ class="usa-banner__icon-lock"
53
+ role="img"
54
+ aria-label="Locked padlock icon"
55
+ part="lock-icon"
56
+ ></span>
57
+ `}httpsTemplate(e){const{https:t}=this._bannerText;return N`
58
+ <img
59
+ class="usa-banner__icon usa-media-block__img"
60
+ src="${je}"
61
+ role="img"
62
+ alt=""
63
+ aria-hidden="true"
64
+ />
65
+ <div class="usa-media-block__body">
66
+ <p>
67
+ <strong>
68
+ <slot name="https-heading">
69
+ ${t.heading1} .${e} ${t.heading2}
70
+ </slot> </strong
71
+ ><br />
72
+ <slot name="https-text">
73
+ ${be(t.text1)} (${O.lockIcon()})
74
+ ${be(t.text2)} .${e} ${t.text3}
75
+ </slot>
76
+ </p>
77
+ </div>
78
+ `}render(){const e={"usa-banner__header--expanded":this.isOpen},t=this.tld==="mil"?"mil":"gov",{banner:n}=this._bannerText;return N`
79
+ <section class="usa-banner" aria-label=${this.label||n.label}>
80
+ <div class="usa-accordion">
81
+ <header class="usa-banner__header ${Oe(e)}">
82
+ <div class="usa-banner__inner">
83
+ <div class="grid-col-auto">
84
+ <img
85
+ aria-hidden="true"
86
+ class="usa-banner__header-flag"
87
+ src=${Be}
88
+ alt=""
89
+ />
90
+ </div>
91
+ <div
92
+ class="grid-col-fill tablet:grid-col-auto"
93
+ aria-hidden="true"
94
+ >
95
+ <p class="usa-banner__header-text">
96
+ <slot name="banner-text">${n.text}</slot>
97
+ </p>
98
+ <p class="usa-banner__header-action">
99
+ <slot name="banner-action">${n.action}</slot>
100
+ </p>
101
+ </div>
102
+ <button
103
+ type="button"
104
+ class="usa-accordion__button usa-banner__button"
105
+ aria-expanded="${this.isOpen}"
106
+ aria-controls="gov-banner-default"
107
+ @click="${this.toggle}"
108
+ >
109
+ <span class="usa-banner__button-text">
110
+ ${this._actionText||n.action}
111
+ </span>
112
+ </button>
113
+ </div>
114
+ </header>
115
+ <div class="usa-banner__content usa-accordion__content" hidden>
116
+ <div class="grid-row grid-gap-lg">
117
+ <div class="usa-banner__guidance tablet:grid-col-6">
118
+ ${this.domainTemplate(t)}
119
+ </div>
120
+ <div class="usa-banner__guidance tablet:grid-col-6">
121
+ ${this.httpsTemplate(t)}
122
+ </div>
123
+ </div>
124
+ </div>
125
+ </div>
126
+ </section>
127
+ `}};G(O,"properties",{lang:{type:String,reflect:!0},data:{attribute:!1},isOpen:{type:Boolean},classes:{},label:{type:String},tld:{type:String,reflect:!0}}),G(O,"styles",[I(Re),I(Ne)]);let L=O;return customElements.define("usa-banner",L),L});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gsa-tts/graymatter-ui",
3
- "version": "1.2.1",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -10,12 +10,9 @@
10
10
  "svelte": "./index.ts",
11
11
  "default": "./index.ts"
12
12
  },
13
- "./graymatter-ui.js": "./dist/graymatter-ui.js",
14
- "./graymatter-ui.umd.cjs": "./dist/graymatter-ui.umd.cjs",
15
13
  "./stores/navigationStore": "./src/stores/navigationStore.ts",
16
14
  "./stores/subNavReadyStore": "./src/stores/subNavReadyStore.ts",
17
15
  "./assets/*": "./assets/*",
18
- "./astro-config": "./src/astro-config/index.ts",
19
16
  "./component-options": "./src/component-options/index.ts",
20
17
  "./component-options/*": "./src/component-options/*",
21
18
  "./components": {
@@ -31,15 +28,11 @@
31
28
  "./helpers/*": "./src/helpers/*",
32
29
  "./utils": "./src/utils/index.ts",
33
30
  "./utils/*": "./src/utils/*",
34
- "./layouts/*": "./src/layouts/*",
35
31
  "./static/*": "./static/*",
36
32
  "./styles": "./src/styles/index.ts",
37
33
  "./styles/*": "./src/styles/*"
38
34
  },
39
35
  "files": [
40
- "dist",
41
- "!dist/**/*.test.*",
42
- "!dist/**/*.spec.*",
43
36
  "src",
44
37
  "!src/**/*.test.*",
45
38
  "!src/**/*.spec.*",
@@ -48,39 +41,30 @@
48
41
  "static"
49
42
  ],
50
43
  "devDependencies": {
51
- "@astrojs/svelte": "^8.0.5",
52
44
  "@sveltejs/vite-plugin-svelte": "^6.2.4",
53
- "@testing-library/jest-dom": "^6.6.3",
54
- "@testing-library/svelte": "^5.2.8",
55
- "@testing-library/user-event": "^14.6.1",
56
- "@types/mdast": "^4.0.4",
57
- "@types/mdx": "^2.0.13",
58
- "@types/node": "^22.13.0",
59
- "@types/unist": "^3.0.3",
60
- "@uswds/compile": "1.2.2",
61
- "@vitest/coverage-istanbul": "^3.2.4",
62
- "astro": "6.1.9",
63
- "astro-purgecss": "^6.0.1",
64
- "eslint": "^9.21.0",
45
+ "@testing-library/jest-dom": "^6.9.1",
46
+ "@testing-library/svelte": "^5.4.2",
47
+ "@testing-library/user-event": "^14.6.4",
48
+ "@types/node": "^22.20.1",
49
+ "@uswds/compile": "1.3.2",
50
+ "@vitest/coverage-istanbul": "^3.2.7",
51
+ "eslint": "^9.39.5",
65
52
  "gulp": "^5.0.0",
66
- "svelte": "^5.53.5",
67
- "typescript": "5.7.3",
68
- "vite": "^7.3.2",
69
- "vitest": "^3.2.4",
70
- "@gsa-tts/graymatter-eslint": "0.0.2",
71
- "@gsa-tts/graymatter-typescript-config": "0.0.3",
72
- "@gsa-tts/graymatter-vitest-config": "0.0.2"
53
+ "svelte": "^5.56.9",
54
+ "typescript": "5.9.3",
55
+ "vite": "^7.3.6",
56
+ "vitest": "^3.2.7",
57
+ "@gsa-tts/graymatter-eslint": "0.0.3",
58
+ "@gsa-tts/graymatter-typescript-config": "0.0.4",
59
+ "@gsa-tts/graymatter-vitest-config": "0.0.3"
73
60
  },
74
61
  "dependencies": {
75
- "@fontsource/archivo": "^5.2.8",
76
- "@fontsource/space-mono": "^5.2.8",
77
- "@uswds/uswds": "3.12.0",
78
- "unist-util-visit": "^5.0.0",
79
- "uuid": "^14.0.0",
62
+ "@uswds/uswds": "3.13.0",
63
+ "uuid": "^14.0.1",
80
64
  "@gsa-tts/graymatter-style-tokens": "0.6.3"
81
65
  },
82
66
  "scripts": {
83
- "build": "gulp update && vite build",
67
+ "build": "gulp update",
84
68
  "lint": "eslint . --max-warnings 0",
85
69
  "check-types": "tsc --noEmit",
86
70
  "test": "vitest run"
@@ -25,6 +25,7 @@
25
25
  import MenuIcon from './icons/MenuIcon.svelte';
26
26
  import ProfileMenu from './ProfileMenu.svelte';
27
27
  import HelpIcon from './icons/HelpIcon.svelte';
28
+ import Tooltip from './Tooltip.svelte';
28
29
 
29
30
  let {
30
31
  ssrSelectedItem = undefined,
@@ -530,22 +531,23 @@
530
531
  class="nav-footer-icon-container"
531
532
  part="nav-footer-icon-container"
532
533
  >
533
- <a
534
- class="help-link"
535
- class:selected={isHelpSelected()}
536
- aria-current={isHelpSelected() ? 'page' : undefined}
537
- href={helpUrl()}
538
- part="help-link"
539
- title="Help"
540
- aria-label="Help"
541
- onclick={handleHelpClick}
542
- >
543
- <div class="icon-container" part="help-icon-container">
544
- <div class="icon-wrapper">
545
- <HelpIcon isSelected={isHelpSelected()} />
534
+ <Tooltip text="User Guide" position="right">
535
+ <a
536
+ class="help-link"
537
+ class:selected={isHelpSelected()}
538
+ aria-current={isHelpSelected() ? 'page' : undefined}
539
+ href={helpUrl()}
540
+ part="help-link"
541
+ aria-label="User Guide"
542
+ onclick={handleHelpClick}
543
+ >
544
+ <div class="icon-container" part="help-icon-container">
545
+ <div class="icon-wrapper">
546
+ <HelpIcon isSelected={isHelpSelected()} />
547
+ </div>
546
548
  </div>
547
- </div>
548
- </a>
549
+ </a>
550
+ </Tooltip>
549
551
  </div>
550
552
  {/if}
551
553
  <div class="nav-footer-profile-container">
@@ -7,6 +7,7 @@
7
7
  import Logo from './Logo.svelte';
8
8
  import MenuIcon from './icons/MenuIcon.svelte';
9
9
  import HelpIcon from './icons/HelpIcon.svelte';
10
+ import Tooltip from './Tooltip.svelte';
10
11
 
11
12
  let { profileMenuData, logoLinkUrl, logoLinkLabel, supplementalMenuData } =
12
13
  $props();
@@ -141,19 +142,20 @@
141
142
  </div>
142
143
 
143
144
  {#if helpUrl()}
144
- <a
145
- class="help-button"
146
- class:selected={isHelpSelected()}
147
- aria-current={isHelpSelected() ? 'page' : undefined}
148
- href={helpUrl()}
149
- title="Help"
150
- aria-label="Help"
151
- onclick={handleHelpClick}
152
- >
153
- <span class="icon-container">
154
- <HelpIcon isSelected={isHelpSelected()} />
155
- </span>
156
- </a>
145
+ <Tooltip text="User Guide" position="bottom">
146
+ <a
147
+ class="help-button"
148
+ class:selected={isHelpSelected()}
149
+ aria-current={isHelpSelected() ? 'page' : undefined}
150
+ href={helpUrl()}
151
+ aria-label="User Guide"
152
+ onclick={handleHelpClick}
153
+ >
154
+ <span class="icon-container">
155
+ <HelpIcon isSelected={isHelpSelected()} />
156
+ </span>
157
+ </a>
158
+ </Tooltip>
157
159
  {/if}
158
160
 
159
161
  {#if profileMenuData}
@@ -65,6 +65,8 @@
65
65
  * - composed: true (allows event to cross Shadow DOM boundaries)
66
66
  */
67
67
 
68
+ import Tooltip from './Tooltip.svelte';
69
+
68
70
  /**
69
71
  * Array of menu items to render in the profile menu.
70
72
  * Each item: { label: string, icon: string, action: string }
@@ -167,23 +169,28 @@
167
169
  </script>
168
170
 
169
171
  <div style="position: relative; display: inline-block;" data-profile-menu>
170
- <button
171
- class="user-profile-button"
172
- tabindex="0"
173
- aria-label={ariaLabel}
174
- aria-haspopup="menu"
175
- aria-expanded={menuOpen}
176
- aria-controls={menuId}
177
- onclick={toggleMenu}
178
- onblur={handleBlur}
179
- bind:this={profileButton}
172
+ <Tooltip
173
+ text="Account"
174
+ position={menuAlign === 'desktop' ? 'right' : 'bottom'}
180
175
  >
181
- <div class="user-profile-container">
182
- <div class="user-profile-icon" part="user-profile-icon">
183
- <span class="user-initials">{userMeta?.initials}</span>
176
+ <button
177
+ class="user-profile-button"
178
+ tabindex="0"
179
+ aria-label={ariaLabel}
180
+ aria-haspopup="menu"
181
+ aria-expanded={menuOpen}
182
+ aria-controls={menuId}
183
+ onclick={toggleMenu}
184
+ onblur={handleBlur}
185
+ bind:this={profileButton}
186
+ >
187
+ <div class="user-profile-container">
188
+ <div class="user-profile-icon" part="user-profile-icon">
189
+ <span class="user-initials">{userMeta?.initials}</span>
190
+ </div>
184
191
  </div>
185
- </div>
186
- </button>
192
+ </button>
193
+ </Tooltip>
187
194
 
188
195
  {#if menuOpen}
189
196
  <div