@nysds/components 1.12.0 → 1.13.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 (45) hide show
  1. package/README.md +3 -1
  2. package/dist/.vscode/vscode.html-custom-data.json +71 -30
  3. package/dist/custom-elements.json +1524 -300
  4. package/dist/nysds.es.js +3237 -1540
  5. package/dist/nysds.es.js.map +1 -1
  6. package/dist/nysds.js +262 -158
  7. package/dist/nysds.js.map +1 -1
  8. package/dist/packages/nys-accordion/src/nys-accordion.d.ts +20 -3
  9. package/dist/packages/nys-accordion/src/nys-accordionitem.d.ts +20 -0
  10. package/dist/packages/nys-alert/src/nys-alert.d.ts +39 -1
  11. package/dist/packages/nys-avatar/src/nys-avatar.d.ts +25 -0
  12. package/dist/packages/nys-backtotop/src/nys-backtotop.d.ts +19 -0
  13. package/dist/packages/nys-badge/src/nys-badge.d.ts +20 -0
  14. package/dist/packages/nys-button/src/nys-button.d.ts +24 -0
  15. package/dist/packages/nys-checkbox/src/nys-checkbox.d.ts +33 -1
  16. package/dist/packages/nys-checkbox/src/nys-checkboxgroup.d.ts +29 -0
  17. package/dist/packages/nys-datepicker/src/index.d.ts +1 -0
  18. package/dist/packages/nys-datepicker/src/nys-datepicker.d.ts +116 -0
  19. package/dist/packages/nys-datepicker/src/nys-datepicker.figma.d.ts +1 -0
  20. package/dist/packages/nys-divider/src/nys-divider.d.ts +4 -0
  21. package/dist/packages/nys-errormessage/src/nys-errormessage.d.ts +9 -0
  22. package/dist/packages/nys-fileinput/src/nys-fileinput.d.ts +33 -0
  23. package/dist/packages/nys-fileinput/src/nys-fileitem.d.ts +4 -0
  24. package/dist/packages/nys-globalfooter/src/nys-globalfooter.d.ts +20 -0
  25. package/dist/packages/nys-globalheader/src/nys-global.logo.d.ts +2 -0
  26. package/dist/packages/nys-globalheader/src/nys-globalheader.d.ts +26 -5
  27. package/dist/packages/nys-icon/src/nys-icon.d.ts +11 -0
  28. package/dist/packages/nys-label/src/nys-label.d.ts +5 -0
  29. package/dist/packages/nys-modal/src/nys-modal.d.ts +24 -0
  30. package/dist/packages/nys-pagination/src/nys-pagination.d.ts +21 -0
  31. package/dist/packages/nys-radiobutton/src/nys-radiobutton.d.ts +27 -0
  32. package/dist/packages/nys-radiobutton/src/nys-radiogroup.d.ts +30 -1
  33. package/dist/packages/nys-select/src/nys-select.d.ts +34 -1
  34. package/dist/packages/nys-skipnav/src/nys-skipnav.d.ts +13 -0
  35. package/dist/packages/nys-table/src/index.d.ts +1 -0
  36. package/dist/packages/nys-table/src/nys-table.d.ts +38 -0
  37. package/dist/packages/nys-table/src/nys-table.figma.d.ts +1 -0
  38. package/dist/packages/nys-textarea/src/nys-textarea.d.ts +29 -1
  39. package/dist/packages/nys-textinput/src/nys-textinput.d.ts +30 -1
  40. package/dist/packages/nys-toggle/src/nys-toggle.d.ts +23 -0
  41. package/dist/packages/nys-tooltip/src/nys-tooltip.d.ts +28 -0
  42. package/dist/packages/nys-unavfooter/src/nys-unavfooter.d.ts +12 -0
  43. package/dist/packages/nys-unavheader/src/nys-unavheader.d.ts +20 -2
  44. package/dist/src/index.d.ts +2 -0
  45. package/package.json +12 -9
package/dist/nysds.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"nysds.js","sources":["../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/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","../packages/nys-accordion/src/nys-accordionitem.ts","../packages/nys-accordion/src/nys-accordion.ts","../node_modules/lit-html/directives/if-defined.js","../packages/nys-alert/src/nys-alert.ts","../packages/nys-avatar/src/nys-avatar.ts","../packages/nys-backtotop/src/nys-backtotop.ts","../packages/nys-button/src/nys-button.ts","../packages/nys-badge/src/nys-badge.ts","../packages/nys-checkbox/src/nys-checkboxgroup.ts","../packages/nys-checkbox/src/nys-checkbox.ts","../packages/nys-divider/src/nys-divider.ts","../packages/nys-errormessage/src/nys-errormessage.ts","../packages/nys-fileinput/src/validateFileHeader.ts","../packages/nys-fileinput/src/nys-fileitem.ts","../packages/nys-fileinput/src/nys-fileinput.ts","../packages/nys-icon/src/nys-icon.library.ts","../packages/nys-icon/src/nys-icon.ts","../packages/nys-label/src/nys-label.ts","../packages/nys-modal/src/nys-modal.ts","../packages/nys-pagination/src/nys-pagination.ts","../packages/nys-radiobutton/src/nys-radiogroup.ts","../packages/nys-radiobutton/src/nys-radiobutton.ts","../packages/nys-select/src/nys-option.ts","../packages/nys-select/src/nys-select.ts","../packages/nys-skipnav/src/nys-skipnav.ts","../packages/nys-stepper/src/nys-step.ts","../packages/nys-stepper/src/nys-stepper.ts","../packages/nys-textarea/src/nys-textarea.ts","../packages/nys-textinput/src/nys-textinput.ts","../packages/nys-toggle/src/nys-toggle.ts","../packages/nys-tooltip/src/nys-tooltip.ts","../packages/nys-unavheader/src/nys-unav.logo.ts","../packages/nys-unavheader/src/nys-unavheader.ts","../packages/nys-globalheader/src/nys-globalheader.ts","../packages/nys-globalfooter/src/nys-globalfooter.ts","../packages/nys-unavfooter/src/nys-unav.logo.ts","../packages/nys-unavfooter/src/nys-unavfooter.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==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=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>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[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},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{n 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 s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E 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 r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r 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,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, query } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-accordion.scss?inline\";\n\nlet accordionItemIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysAccordionItem extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String }) heading = \"\";\n @property({ type: Boolean, reflect: true }) expanded = false;\n @property({ type: Boolean, reflect: true }) bordered = false; // Code NEED this, don't delete this. This is due to how the <nys-accordion> group is applying bordered to each individual <nys-accordionitem>\n\n // Lifecycle Methods\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = this._generateUniqueId();\n }\n }\n\n firstUpdated() {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n\n /**\n * When the accordion starts expanded but the slot is empty,\n * _updateHeight runs too early and calculates height as 0.\n * Listening for slotchange ensures we recalc after the slot’s\n * content is rendered so the final height is correct.\n */\n if (this.expanded && slot) {\n slot.addEventListener(\"slotchange\", () => {\n this._updateHeight();\n });\n }\n }\n\n updated(changedProperties: Map<string, any>) {\n if (changedProperties.has(\"expanded\")) {\n this._updateHeight();\n }\n }\n\n // Functions\n private _generateUniqueId() {\n return `nys-accordionitem-${Date.now()}-${accordionItemIdCounter++}`;\n }\n\n private _dispatchEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-accordionitem-toggle\", {\n detail: { id: this.id, heading: this.heading, expanded: this.expanded },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _handleExpand() {\n this.expanded = !this.expanded;\n this._updateHeight();\n this._dispatchEvent();\n }\n\n private _handleKeydown(e: KeyboardEvent) {\n if (e.key === \" \" || e.key === \"Enter\") {\n e.preventDefault(); // prevent page scroll on space\n this._handleExpand();\n }\n }\n\n // Call this after first render and whenever expanded changes\n @query(\".nys-accordionitem__content\") private _contentContainer!: HTMLElement;\n private _updateHeight() {\n if (!this._contentContainer) return;\n\n if (this.expanded) {\n // Slide down the content by setting a calculated max-height, depending on the panel's height on different screen sizes\n const slotHeight = this._contentContainer.scrollHeight;\n this._contentContainer.style.height = `${slotHeight}px`;\n } else {\n // Collapse\n this._contentContainer.style.height = \"0\";\n this._contentContainer.style.overflow = \"hidden\";\n }\n }\n\n render() {\n const contentId = `${this.id}-content`;\n\n return html`\n <div class=\"nys-accordionitem\">\n <button\n class=\"nys-accordionitem__heading\"\n type=\"button\"\n @click=${this._handleExpand}\n @keydown=${this._handleKeydown}\n aria-expanded=${this.expanded ? \"true\" : \"false\"}\n aria-controls=${contentId}\n >\n <p class=\"nys-accordionitem__heading-title\">${this.heading}</p>\n <nys-icon class=\"expand-icon\" name=\"chevron_down\" size=\"24\"></nys-icon>\n </button>\n </div>\n <div id=${contentId} class=\"nys-accordionitem__content ${this.expanded ? \"expanded\" : \"collapsed\"}\" role=\"region\">\n <div class=\"nys-accordionitem__content-slot-container\">\n <div class=\"nys-accordionitem__content-slot-container-text\">\n <slot></slot>\n </div>\n </div>\n </div>\n </div>`;\n }\n}\n\nif (!customElements.get(\"nys-accordionitem\")) {\n customElements.define(\"nys-accordionitem\", NysAccordionItem);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport \"./nys-accordionitem\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-accordion.scss?inline\";\n\nlet accordionIdCounter = 0; // Counter for generating unique IDs\n\n/**\n * The \"nys-accordion\" is the wrapper that groups individual accordion items within it.\n * The items within is called \"nys-accordionitem\"\n */\nexport class NysAccordion extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: Boolean, reflect: true }) singleSelect = false;\n @property({ type: Boolean, reflect: true }) bordered = false;\n\n // Lifecycle Methods\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = this._generateUniqueId();\n }\n }\n\n updated(changedProperties: Map<string, any>) {\n if (changedProperties.has(\"bordered\")) {\n this._applyBordered();\n }\n }\n\n // Functions\n private _generateUniqueId() {\n return `nys-accordionitem-${Date.now()}-${accordionIdCounter++}`;\n }\n\n private _getAccordions() {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const assigned = slot?.assignedElements() || [];\n\n return assigned.filter(\n (el) => el.tagName.toLowerCase() === \"nys-accordionitem\",\n );\n }\n\n private _onAccordionToggle(event: CustomEvent) {\n if (!this.singleSelect) return;\n\n const accordionId = event.detail.id;\n const accordionIsExpanded = event.detail.expanded;\n\n // All accordions that don't match the selected accordion's id is unexpanded.\n // If id match, it is up to the individual accordion to handle the expand logic\n if (accordionIsExpanded) {\n this._getAccordions().forEach((accordion: any) => {\n if (accordion.id !== accordionId && accordion.expanded) {\n accordion.expanded = false;\n }\n });\n }\n }\n\n private _applyBordered() {\n this._getAccordions().forEach((accordion: any) => {\n accordion.bordered = this.bordered;\n });\n }\n\n render() {\n return html`<div\n class=\"nys-accordion\"\n @nys-accordionitem-toggle=${this._onAccordionToggle}\n >\n <slot></slot>\n </div>`;\n }\n}\n\nif (!customElements.get(\"nys-accordion\")) {\n customElements.define(\"nys-accordion\", NysAccordion);\n}\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-alert.scss?inline\";\n\nlet alertIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysAlert extends LitElement {\n static styles = unsafeCSS(styles);\n\n // Properties\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String }) heading = \"\";\n @property({ type: String }) icon = \"\";\n @property({ type: Boolean, reflect: true }) dismissible = false;\n @property({ type: Number, reflect: true }) duration = 0;\n @property({ type: String }) text = \"\";\n @property({ type: String }) primaryAction = \"\";\n @property({ type: String }) secondaryAction = \"\";\n @property({ type: String }) primaryLabel = \"Learn more\";\n @property({ type: String }) secondaryLabel = \"Dismiss\";\n @property({ type: String, reflect: true }) type:\n | \"base\"\n | \"info\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"emergency\" = \"base\";\n\n @state() private _alertClosed = false;\n @state() private _slotHasContent = true;\n\n // Aria attributes based on the type\n get ariaAttributes(): {\n role: \"alert\" | \"status\" | \"region\";\n ariaLabel: string;\n } {\n const ariaRole =\n this.type === \"danger\" || this.type === \"emergency\"\n ? \"alert\"\n : this.type === \"success\"\n ? \"status\"\n : \"region\"; // Default role\n\n // Set aria-label only for role=\"region\"\n const ariaLabel = ariaRole === \"region\" ? `${this.type} alert` : \"\";\n\n return { role: ariaRole, ariaLabel };\n }\n\n // Lifecycle Methods\n private _timeoutId: any = null;\n\n // For alerts that have durations, we set a timer to close them.\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = this._generateUniqueId();\n }\n\n if (this.duration > 0) {\n this._timeoutId = setTimeout(() => {\n this._closeAlert();\n }, this.duration);\n }\n }\n\n disconnectedCallback() {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n }\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n this._checkSlotContent();\n }\n\n // Functions\n private _generateUniqueId() {\n return `nys-alert-${Date.now()}-${alertIdCounter++}`;\n }\n\n // Helper function for overriding default icons or checking special naming cases (e.g. type=success)\n private _getIconName() {\n if (this.icon) {\n return this.icon;\n } else {\n return this._checkAltNaming(); // checking alternative svg naming\n }\n }\n\n private _checkAltNaming() {\n // map 'success' to 'check_circle'\n return this.type === \"success\"\n ? \"check_circle\"\n : this.type === \"base\"\n ? \"info\"\n : this.type === \"danger\"\n ? \"error\"\n : this.type === \"emergency\"\n ? \"emergency_home\"\n : this.type;\n }\n\n private _closeAlert() {\n this._alertClosed = true;\n /* Dispatch a custom event for the close action:\n * allows bubbling up so if developers wish to implement a local save to remember closed alerts.\n */\n this.dispatchEvent(\n new CustomEvent(\"nys-close\", {\n detail: { id: this.id, type: this.type, label: this.heading },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private async _checkSlotContent() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n if (slot) {\n // Check if slot has assigned nodes with content (elements or non-empty text nodes)\n const assignedNodes = slot\n .assignedNodes({ flatten: true })\n .filter(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()),\n );\n\n await Promise.resolve();\n this._slotHasContent = assignedNodes.length > 0;\n } else {\n await Promise.resolve();\n this._slotHasContent = false; // No slot found\n }\n }\n\n render() {\n const { role, ariaLabel } = this.ariaAttributes;\n\n return html`\n ${!this._alertClosed\n ? html` <div\n class=\"nys-alert__container ${this._slotHasContent ||\n this.text?.trim().length > 0\n ? \"\"\n : \"nys-alert--centered\"}\"\n aria-label=${ifDefined(\n ariaLabel.trim() !== \"\" ? ariaLabel : undefined,\n )}\n >\n <div part=\"nys-alert__icon\" class=\"nys-alert__icon\">\n <nys-icon\n name=\"${this._getIconName()}\"\n size=\"3xl\"\n label=\"${this.type} icon\"\n ></nys-icon>\n </div>\n <div class=\"nys-alert__texts\" role=${role}>\n <p class=\"nys-alert__header\">${this.heading}</p>\n ${this._slotHasContent\n ? html`<slot></slot>`\n : this.text?.trim().length > 0\n ? html`<p class=\"nys-alert__text\">${this.text}</p>`\n : \"\"}\n ${this.primaryAction || this.secondaryAction\n ? html`<div class=\"nys-alert__actions\">\n ${this.primaryAction\n ? html`<a\n href=${ifDefined(this.primaryAction || undefined)}\n class=\"nys-alert__action nys-alert__primary\"\n >\n ${this.primaryLabel}\n </a>`\n : \"\"}\n ${this.secondaryAction\n ? html`<a\n href=${ifDefined(this.secondaryAction || undefined)}\n class=\"nys-alert__action nys-alert__secondary\"\n >\n ${this.secondaryLabel}\n </a>`\n : \"\"}\n </div> `\n : \"\"}\n </div>\n ${this.dismissible\n ? html` <nys-button\n id=\"dismiss-btn\"\n variant=\"ghost\"\n circle\n icon=\"close\"\n size=\"sm\"\n ?inverted=${this.type === \"emergency\"}\n ariaLabel=\"${this.heading}, alert, Close\"\n @nys-click=${this._closeAlert}\n ></nys-button>`\n : \"\"}\n </div>`\n : \"\"}\n `;\n }\n}\n\nif (!customElements.get(\"nys-alert\")) {\n customElements.define(\"nys-alert\", NysAlert);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-avatar.scss?inline\";\n\nlet avatarIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysAvatar extends LitElement {\n static styles = unsafeCSS(styles);\n\n // Properties\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String }) ariaLabel = \"\";\n @property({ type: String }) image = \"\";\n @property({ type: String }) initials = \"\";\n @property({ type: String }) icon = \"\";\n @property({ type: String }) color = \"\";\n @property({ type: Boolean, reflect: true }) interactive = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) lazy = false;\n @state() private _slotHasContent = false;\n\n // Functions\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-avatar-${Date.now()}-${avatarIdCounter++}`;\n }\n }\n\n private async _handleSlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n if (!slot) {\n this._slotHasContent = false;\n return;\n }\n\n // Wait a tick to ensure slot assignment settled\n await Promise.resolve();\n\n const assignedNodes = slot\n .assignedNodes({ flatten: true })\n .filter(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()),\n );\n\n this._slotHasContent = assignedNodes.length > 0;\n }\n\n // This function accounts for user set \"color\" prop and return the appropriate foreground contrast.\n private getContrastForeground() {\n // Default NYSDS CSS vars for foreground.\n // Contrast must return =>\n // IF icon: \"--nys-color-ink-reverse\" or \"--nys-color-ink\"\n // If initials: \"--nys-color-text-reverse\" or \"--nys-color-text\"\n const fgIconDark = \"var(--nys-color-ink, #000)\";\n const fgIconLight = \"var(--nys-color-ink-reverse, #fff)\";\n const fgInitialDark = \"var(--nys-color-text, #000)\";\n const fgInitialLight = \"var(--nys-color-text-reverse, #fff)\";\n\n if (!this.color) return;\n\n // Create a temporary element to compute luminance (this is in case user pass in \"var(--nys-color-stuff)\")\n const div = document.createElement(\"div\");\n div.style.color = this.color;\n document.body.appendChild(div);\n const computedColor = getComputedStyle(div).color;\n document.body.removeChild(div);\n\n // Parse RGB\n const match = computedColor.match(/\\d+/g);\n if (!match) return;\n\n const r = Number(match[0]);\n const g = Number(match[1]);\n const b = Number(match[2]);\n\n // Calculate relative luminance\n const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;\n\n const isDark = luminance < 0.5;\n if (this.initials?.length > 0) {\n return isDark ? fgInitialLight : fgInitialDark;\n } else {\n return isDark ? fgIconLight : fgIconDark;\n }\n }\n\n render() {\n return html`\n <div class=\"nys-avatar\">\n <div class=\"nys-avatar__content\">\n <div\n part=\"nys-avatar\"\n class=\"nys-avatar__component\"\n style=${this.color\n ? `--_nys-avatar-background-color: ${this.color}; color: ${this.getContrastForeground()}`\n : \"\"}\n role=${ifDefined(\n this.interactive ? \"button\" : this.image ? undefined : \"img\",\n )}\n aria-label=${ifDefined(\n this.image\n ? undefined\n : this.ariaLabel\n ? this.ariaLabel\n : \"avatar\",\n )}\n tabindex=${ifDefined(\n this.interactive && !this.disabled ? 0 : undefined,\n )}\n >\n ${this.image?.length > 0\n ? html`<img\n part=\"nys-avatar__image\"\n class=\"nys-avatar__image\"\n src=${this.image}\n alt=${this.ariaLabel || \"avatar\"}\n loading=${this.lazy ? \"lazy\" : \"eager\"}\n />`\n : this.initials?.length > 0\n ? html`<span\n part=\"nys-avatar__initials\"\n class=\"nys-avatar__initials\"\n aria-hidden=\"true\"\n >${this.initials}</span\n >`\n : html`<div part=\"nys-avatar__icon\">\n <slot @slotchange=${this._handleSlotChange}></slot>\n ${!this._slotHasContent\n ? html`<nys-icon\n label=\"nys-avatar__icon\"\n name=${this.icon?.length > 0\n ? this.icon\n : \"account_circle\"}\n ></nys-icon>`\n : null}\n </div>`}\n </div>\n </div>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-avatar\")) {\n customElements.define(\"nys-avatar\", NysAvatar);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-backtotop.scss?inline\";\n\nexport class NysBacktotop extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String }) position = \"right\";\n @property({ type: Boolean, reflect: true }) visible = false;\n\n @state() private isMobile = false;\n @state() private forceVisible = false;\n\n private mediaQuery: MediaQueryList;\n\n constructor() {\n super();\n this._handleScroll = this._handleScroll.bind(this);\n this._handleResize = this._handleResize.bind(this);\n this.mediaQuery = window.matchMedia(\"(max-width: 480px)\");\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.forceVisible = this.hasAttribute(\"visible\"); // true only if passed in markup\n window.addEventListener(\"scroll\", this._handleScroll);\n this.mediaQuery.addEventListener(\"change\", this._handleResize);\n this._handleResize(); // Initialize\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"scroll\", this._handleScroll);\n this.mediaQuery.removeEventListener(\"change\", this._handleResize);\n super.disconnectedCallback();\n }\n\n private _handleScroll() {\n // If visible was explicitly set by user, don't override it\n if (this.forceVisible) return;\n\n const screenHeight = window.innerHeight;\n const pageHeight = document.documentElement.scrollHeight;\n\n // Show only if total page height >= 4 screens and scrolled past 1.5 screens\n this.visible =\n pageHeight >= screenHeight * 4 && window.scrollY > screenHeight * 1.5;\n }\n\n private _scrollToTop() {\n window.scrollTo({ top: 0, behavior: \"smooth\" });\n }\n\n private _handleResize() {\n this.isMobile = this.mediaQuery.matches;\n }\n\n render() {\n const classes = [\n \"nys-backtotop\",\n this.position,\n this.visible ? \"visible\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n return html`<nys-button\n id=\"nys-backtotop\"\n prefixIcon=\"chevron_up\"\n variant=\"outline\"\n label=\"Back to top\"\n size=\"sm\"\n class=\"${classes}\"\n ?circle=${this.isMobile}\n @nys-click=${this._scrollToTop}\n ></nys-button>`;\n }\n}\n\nif (!customElements.get(\"nys-backtotop\")) {\n customElements.define(\"nys-backtotop\", NysBacktotop);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-button.scss?inline\";\n\nlet buttonIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysButton extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" | \"lg\" = \"md\";\n @property({ type: Boolean, reflect: true }) fullWidth = false;\n @property({ type: String, reflect: true }) variant:\n | \"filled\"\n | \"outline\"\n | \"ghost\"\n | \"text\" = \"filled\";\n @property({ type: Boolean, reflect: true }) inverted = false; //used on dark text\n @property({ type: String }) label = \"\";\n @property({ type: String }) ariaLabel = \"\";\n @property({ type: String }) ariaControls = \"\";\n @property({ type: String }) prefixIcon = \"\";\n @property({ type: String }) suffixIcon = \"\";\n @property({ type: Boolean, reflect: true }) circle = false;\n @property({ type: String }) icon = \"\";\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String }) value = \"\";\n @property({ type: String }) ariaDescription = \"\";\n @property({ type: String, reflect: true }) type:\n | \"submit\"\n | \"reset\"\n | \"button\" = \"button\";\n @property({ attribute: false }) onClick: ((event: Event) => void) | null =\n null;\n @property({ type: String }) href = \"\";\n @property({ type: String, reflect: true }) target:\n | \"_self\"\n | \"_blank\"\n | \"_parent\"\n | \"_top\"\n | \"framename\" = \"_self\";\n\n public async getButtonElement(): Promise<HTMLElement | null> {\n await this.updateComplete; // Wait for the component to finish rendering\n\n // if it's a link button\n const linkEl =\n this.shadowRoot?.querySelector<HTMLAnchorElement>(\"a.nys-button\") || null;\n if (linkEl) return linkEl;\n\n // Otherwise return the native button\n const btnEl =\n this.shadowRoot?.querySelector<HTMLButtonElement>(\"button.nys-button\") ||\n null;\n if (btnEl) return btnEl;\n\n return null;\n }\n\n private _internals: ElementInternals;\n\n // Lifecycle Methods\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = this._generateUniqueId();\n }\n }\n\n // Functions\n private _generateUniqueId() {\n return `nys-button-${Date.now()}-${buttonIdCounter++}`;\n }\n\n private _manageFormAction() {\n // If an onClick function is provided, call it\n if (typeof this.onClick === \"function\" && this.onClick !== null) {\n this.onClick(new Event(\"click\")); // Call user-provided onClick function with a fake click event\n }\n\n // If part of a form, perform the corresponding action based on button's \"type\"\n const form = this._internals.form;\n\n if (form) {\n switch (this.type) {\n case \"submit\":\n form.requestSubmit();\n break;\n case \"reset\":\n form.reset();\n break;\n case \"button\":\n }\n }\n }\n\n // Event Handlers\n // Handle focus event\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n // Handle blur event\n private _handleBlur() {\n const button = this.shadowRoot?.querySelector(\".nys-button\");\n button?.classList.remove(\"active-focus\");\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n private _handleClick(event: Event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n this._manageFormAction();\n this.dispatchEvent(new Event(\"nys-click\"));\n }\n\n // Handle keydown for keyboard accessibility\n private _handleKeydown(e: KeyboardEvent) {\n if (\n e.code === \"Space\" ||\n e.code === \"Enter\" ||\n e.key === \" \" ||\n e.key === \"Enter\"\n ) {\n if (this.disabled) return;\n\n e.preventDefault();\n\n if (this.href) {\n // Click the internal <a> so native navigation happens\n const linkEl = this.renderRoot.querySelector(\n \"a.nys-button\",\n ) as HTMLAnchorElement;\n if (linkEl) {\n linkEl.click();\n }\n } else {\n this._handleAnyAttributeFunction();\n this._handleClick(e);\n }\n }\n }\n\n /**\n * Vanilla JS & Native HTML keydown solution:\n * The <nys-button onClick=\"doFunction();\"></nys-button> onClick is an attribute here.\n * Thus, we call it here. Otherwise, at this point, this.onClick is null as it isn't props, but a string attribute\n * In vanilla HTML/JS, clicking with execute the attribute function, BUT now with keydown, hence this solution.\n */\n private _handleAnyAttributeFunction() {\n const onClickAttr = this.getAttribute(\"onClick\");\n if (onClickAttr) {\n const callFunc = new Function(\"return \" + onClickAttr);\n callFunc();\n }\n }\n\n // Public Methods\n public focus(options?: FocusOptions) {\n const innerEl = this.renderRoot.querySelector(\n this.href ? \"a.nys-button\" : \"button.nys-button\",\n ) as HTMLElement | null;\n\n if (innerEl) {\n innerEl.focus(options);\n } else {\n // fallback: focus host\n super.focus(options);\n }\n }\n\n render() {\n return html`\n ${this.href\n ? html`\n <div class=\"nys-button__linkwrapper\">\n <a\n class=\"nys-button\"\n name=${ifDefined(this.name ? this.name : undefined)}\n ?disabled=${this.disabled}\n aria-disabled=\"${this.disabled ? \"true\" : \"false\"}\"\n value=${ifDefined(this.value ? this.value : undefined)}\n href=${this.href}\n target=${this.target}\n @click=${this._handleClick}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @keydown=\"${this._handleKeydown}\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=${ifDefined(\n this.ariaLabel ||\n this.label ||\n (this.circle ? this.icon : null) ||\n \"button\",\n )}\n aria-description=${ifDefined(this.ariaDescription || undefined)}\n >\n ${this.prefixIcon && this.variant !== \"text\"\n ? html`<slot name=\"prefix-icon\">\n <nys-icon size=\"16\" name=${this.prefixIcon}></nys-icon>\n </slot>`\n : \"\"}\n ${this.label && !this.circle\n ? html`<div class=\"nys-button__text\">${this.label}</div>`\n : \"\"}\n ${this.suffixIcon && this.variant !== \"text\"\n ? html`<slot name=\"suffix-icon\">\n <nys-icon size=\"16\" name=${this.suffixIcon}></nys-icon>\n </slot>`\n : \"\"}\n ${this.circle && this.icon\n ? html`<slot name=\"circle-icon\"\n ><nys-icon\n size=${this.size === \"sm\"\n ? \"24\"\n : this.size === \"lg\"\n ? \"40\"\n : \"32\"}\n name=${this.icon}\n ></nys-icon\n ></slot>`\n : \"\"}\n </a>\n </div>\n `\n : html`\n <button\n class=\"nys-button\"\n name=${ifDefined(this.name ? this.name : undefined)}\n ?disabled=${this.disabled}\n form=${ifDefined(this.form || undefined)}\n value=${ifDefined(this.value ? this.value : undefined)}\n type=${this.type}\n aria-controls=${ifDefined(this.ariaControls || undefined)}\n @click=${this._handleClick}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @keydown=\"${this._handleKeydown}\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=${ifDefined(\n this.ariaLabel ||\n this.label ||\n (this.circle ? this.icon : null) ||\n this.prefixIcon ||\n this.suffixIcon ||\n \"button\",\n )}\n aria-description=${ifDefined(this.ariaDescription || undefined)}\n role=\"button\"\n >\n ${this.prefixIcon && this.variant !== \"text\"\n ? html`<slot name=\"prefix-icon\">\n <nys-icon size=\"16\" name=${this.prefixIcon}></nys-icon>\n </slot>`\n : \"\"}\n ${this.label && !this.circle\n ? html`<div class=\"nys-button__text\">${this.label}</div>`\n : \"\"}\n ${this.suffixIcon && this.variant !== \"text\"\n ? html`<slot name=\"suffix-icon\">\n <nys-icon size=\"16\" name=${this.suffixIcon}></nys-icon>\n </slot>`\n : \"\"}\n ${this.circle && this.icon\n ? html`<slot name=\"circle-icon\">\n <nys-icon\n size=${this.size === \"sm\"\n ? \"24\"\n : this.size === \"lg\"\n ? \"40\"\n : \"32\"}\n name=${this.icon}\n ></nys-icon>\n </slot>`\n : \"\"}\n </button>\n `}\n `;\n }\n}\n\nif (!customElements.get(\"nys-button\")) {\n customElements.define(\"nys-button\", NysButton);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-badge.scss?inline\";\n\nexport class NysBadge extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" = \"md\";\n @property({ type: String, reflect: true }) intent:\n | \"neutral\"\n | \"error\"\n | \"success\"\n | \"warning\" = \"neutral\";\n @property({ type: String }) prefixLabel = \"\";\n @property({ type: String }) label = \"\";\n\n // Icons (string or boolean)\n private _prefixIcon: string | boolean = \"\";\n @property({ type: String, attribute: \"prefixicon\" })\n get prefixIcon(): string | boolean {\n return this._prefixIcon;\n }\n set prefixIcon(value: string | boolean) {\n if (value === \"\" || value === null) {\n // boolean attribute without value → true\n this._prefixIcon = true;\n } else if (value === \"false\" || value === false) {\n this._prefixIcon = \"\";\n } else {\n this._prefixIcon = value;\n }\n }\n\n private _suffixIcon: string | boolean = \"\";\n @property({ type: String, attribute: \"suffixicon\" })\n get suffixIcon(): string | boolean {\n return this._suffixIcon;\n }\n set suffixIcon(value: string | boolean) {\n if (value === \"\" || value === null) {\n this._suffixIcon = true;\n } else if (value === \"false\" || value === false) {\n this._suffixIcon = \"\";\n } else {\n this._suffixIcon = value;\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n const attr = this.getAttribute(\"prefixicon\");\n if (attr !== null && this.prefixIcon === \"\") {\n this.prefixIcon = attr;\n }\n\n const suffixAttr = this.getAttribute(\"suffixicon\");\n if (suffixAttr !== null && this.suffixIcon === \"\") {\n this.suffixIcon = suffixAttr;\n }\n }\n\n // Map of default icons by intent\n private static readonly DEFAULT_ICONS: Record<string, string> = {\n neutral: \"info\",\n error: \"emergency_home\",\n success: \"check_circle\",\n warning: \"warning\",\n };\n\n private resolveIcon(icon: string | boolean): string | null {\n if (icon === true) {\n return NysBadge.DEFAULT_ICONS[this.intent] ?? \"info\";\n }\n if (typeof icon === \"string\" && icon.trim() !== \"\") {\n return icon;\n }\n return null;\n }\n\n render() {\n const prefixIconName = this.resolveIcon(this.prefixIcon);\n const suffixIconName = this.resolveIcon(this.suffixIcon);\n\n return html`\n <div class=\"nys-badge\">\n ${prefixIconName\n ? html`<nys-icon size=\"16\" name=${prefixIconName}></nys-icon>`\n : \"\"}\n ${this.prefixLabel\n ? html`<div class=\"nys-badge__prefix\">${this.prefixLabel}</div>`\n : \"\"}\n <div class=\"nys-badge__label\">${this.label}</div>\n ${suffixIconName\n ? html`<nys-icon size=\"16\" name=${suffixIconName}></nys-icon>`\n : \"\"}\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-badge\")) {\n customElements.define(\"nys-badge\", NysBadge);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-checkbox.scss?inline\";\n\nlet checkboxgroupIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysCheckboxgroup extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: Boolean, reflect: true }) tile = false;\n @property({ type: String }) tooltip = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" = \"md\";\n\n @state() private _slottedDescriptionText = \"\";\n\n private _internals: ElementInternals;\n\n // Lifecycle Updates\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-checkbox-${Date.now()}-${checkboxgroupIdCounter++}`;\n }\n this.addEventListener(\"nys-change\", this._handleCheckboxChange);\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"nys-change\", this._handleCheckboxChange);\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n // This ensures our checkboxes sets the value only once for formData (not within the individual checkboxes)\n this._setGroupExist();\n this._updateCheckboxSize();\n this._updateCheckboxTile();\n this._updateCheckboxShowError();\n this._getSlotDescriptionForAria();\n }\n\n updated(changedProperties: Map<string | symbol, unknown>) {\n if (changedProperties.has(\"required\")) {\n if (this.required) {\n this._setupCheckboxRequired();\n }\n }\n if (changedProperties.has(\"size\")) {\n this._updateCheckboxSize();\n }\n if (changedProperties.has(\"tile\")) {\n this._updateCheckboxTile();\n }\n if (changedProperties.has(\"inverted\")) {\n this._updateCheckboxInvert();\n }\n if (changedProperties.has(\"showError\")) {\n this._updateCheckboxShowError();\n }\n if (changedProperties.has(\"form\")) {\n this._updateCheckboxForm();\n }\n }\n\n // Functions\n private _setGroupExist() {\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n checkboxes.forEach((checkbox: any) => {\n checkbox.groupExist = true;\n });\n }\n\n // Initial update on checkbox required attribute\n private async _setupCheckboxRequired() {\n const firstCheckbox = this.querySelector(\"nys-checkbox\");\n const message = this.errorMessage || \"This field is required\";\n\n const firstCheckboxInput = firstCheckbox\n ? await (firstCheckbox as any).getInputElement()\n : null;\n\n this._internals.setValidity(\n { valueMissing: true },\n message,\n firstCheckboxInput ? firstCheckboxInput : this,\n );\n }\n\n // Updates the required attribute of each checkbox in the group\n private async _manageRequire() {\n if (this.required) {\n const message = this.errorMessage || \"Please select at least one option.\";\n const firstCheckbox = this.querySelector(\"nys-checkbox\");\n const firstCheckboxInput = firstCheckbox\n ? await (firstCheckbox as any).getInputElement().catch(() => null)\n : null;\n\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n // Loop through each child checkbox to see if one is checked.\n const atLeastOneChecked = Array.from(checkboxes).some(\n (checkbox: any) => checkbox.checked,\n );\n\n if (atLeastOneChecked) {\n this._internals.setValidity({});\n this.showError = false;\n } else {\n this._internals.setValidity(\n { valueMissing: true },\n message,\n firstCheckboxInput ? firstCheckboxInput : this,\n );\n this.showError = true;\n }\n }\n }\n\n // Updates the size of each checkbox in the group\n private _updateCheckboxSize() {\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n checkboxes.forEach((checkbox) => {\n checkbox.setAttribute(\"size\", this.size);\n });\n }\n\n private _updateCheckboxTile() {\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n checkboxes.forEach((checkbox) => {\n if (this.tile) {\n checkbox.toggleAttribute(\"tile\", true);\n } else {\n checkbox.removeAttribute(\"tile\");\n }\n });\n }\n\n private _updateCheckboxInvert() {\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n checkboxes.forEach((checkbox) => {\n if (this.inverted) {\n checkbox.toggleAttribute(\"inverted\", true);\n } else {\n checkbox.removeAttribute(\"inverted\");\n }\n });\n }\n\n private _updateCheckboxShowError() {\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n checkboxes.forEach((checkbox) => {\n if (this.showError) {\n checkbox.setAttribute(\"showError\", \"\");\n } else {\n checkbox.removeAttribute(\"showError\");\n }\n });\n }\n\n private _updateCheckboxForm() {\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n checkboxes.forEach((checkbox) => {\n if (this.showError) {\n if (this.form !== null) {\n checkbox.setAttribute(\"form\", this.form);\n } else {\n checkbox.removeAttribute(\"form\");\n }\n } else {\n checkbox.removeAttribute(\"form\");\n }\n });\n }\n\n // Get the slotted text contents so native VO can attempt to announce it within the legend in the fieldset\n private _getSlotDescriptionForAria() {\n const slot = this.shadowRoot?.querySelector(\n 'slot[name=\"description\"]',\n ) as HTMLSlotElement;\n const nodes = slot?.assignedNodes({ flatten: true }) || [];\n\n this._slottedDescriptionText = nodes\n .map((node) => node.textContent?.trim())\n .filter(Boolean)\n .join(\", \");\n }\n\n private async _handleInvalid(event: Event) {\n event.preventDefault();\n\n this.showError = true;\n this._manageRequire(); // Refresh validation message\n\n const firstCheckbox = this.querySelector(\"nys-checkbox\");\n const firstCheckboxInput = firstCheckbox\n ? await (firstCheckbox as any).getInputElement()\n : null;\n\n if (firstCheckboxInput) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find((element) => {\n // If element is checkboxgroup, we see if anyone checkboxes within the group is checked to fulfill required constraint\n if (element.tagName.toLowerCase() === \"nys-checkboxgroup\") {\n const allCheckboxes = Array.from(\n this.querySelectorAll(\"nys-checkbox\"),\n ) as any[];\n const hasCheckedCheckbox = allCheckboxes.filter(\n (checkbox) => checkbox.checked,\n );\n // Required constraint not met, continue logic to have this component be focused\n if (hasCheckedCheckbox.length === 0) {\n return element;\n }\n } else {\n return (\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity()\n );\n }\n });\n\n if (firstInvalidElement === this) {\n firstCheckboxInput.focus();\n }\n } else {\n // If not part of a form, simply focus.\n firstCheckboxInput.focus();\n }\n }\n }\n\n // Event Handlers\n // Similar to how native forms handle multiple same-name fields, we group the selected values into a list for FormData.\n private _handleCheckboxChange(event: Event) {\n const customEvent = event as CustomEvent;\n const { name } = customEvent.detail;\n const checkboxes = Array.from(this.querySelectorAll(\"nys-checkbox\"));\n\n // Filter to only the checked ones and extract their values.\n const selectedValues = checkboxes\n .filter((checkbox: any) => checkbox.checked)\n .map((checkbox: any) => checkbox.value);\n\n this.name = name;\n\n this._internals.setFormValue(selectedValues.join(\", \"));\n\n this._manageRequire();\n }\n\n render() {\n return html`\n <div class=\"nys-checkboxgroup\">\n <nys-label\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n <div class=\"nys-checkboxgroup__content\">\n <fieldset>\n <legend class=\"sr-only\">\n ${this.label}${this._slottedDescriptionText\n ? ` ${this._slottedDescriptionText}`\n : this.description\n ? ` ${this.description}`\n : \"\"}\n </legend>\n <slot></slot>\n </fieldset>\n </div>\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage || this.errorMessage}\n .showDivider=${!this.tile}\n ></nys-errormessage>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-checkboxgroup\")) {\n customElements.define(\"nys-checkboxgroup\", NysCheckboxgroup);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport \"./nys-checkboxgroup\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-checkbox.scss?inline\";\n\nlet checkboxIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysCheckbox extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: Boolean, reflect: true }) checked = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) value = \"\";\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: Boolean }) groupExist = false;\n @property({ type: Boolean, reflect: true }) tile = false;\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String }) tooltip = \"\";\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" = \"md\";\n\n public async getInputElement(): Promise<HTMLInputElement | null> {\n await this.updateComplete; // Wait for the component to finish rendering\n return this.shadowRoot?.querySelector(\"input\") || null;\n }\n\n private _internals: ElementInternals;\n\n // Lifecycle updates\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-checkbox-${Date.now()}-${checkboxIdCounter++}`;\n }\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n // This ensures our element always participates in the form\n this._setValue();\n this._manageRequire();\n this._manageLabelClick();\n }\n\n // This callback is automatically called when the parent form is reset.\n formResetCallback() {\n this.checked = false;\n }\n\n // Form Integration\n private _setValue() {\n if (!this.groupExist) {\n this._internals.setFormValue(this.checked ? this.value : null);\n }\n }\n\n private _manageRequire() {\n const input = this.shadowRoot?.querySelector(\"input\");\n const message = this.errorMessage || \"This field is required\";\n if (!input) return;\n\n if (this.required && !this.checked) {\n this._internals.ariaRequired = \"true\";\n this._internals.setValidity({ valueMissing: true }, message, input);\n } else {\n this._internals.setValidity({});\n }\n }\n\n private _setValidityMessage(message: string = \"\") {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Toggle the HTML <div> tag error message\n this.showError = !!message;\n // If user sets errorMessage, this will always override the native validation message\n if (this.errorMessage?.trim() && message !== \"\") {\n message = this.errorMessage;\n }\n\n this._internals.setValidity(\n message ? { customError: true } : {},\n message,\n input,\n );\n }\n\n private _validate() {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Get the native validation state\n const validity = input.validity;\n let message = \"\";\n\n if (validity.valueMissing) {\n message = \"This field is required\";\n }\n\n this._setValidityMessage(message);\n }\n\n // Functions\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n // If the radiogroup is required but no radio is selected, return false.\n if (this.required && !this.checked) {\n return false;\n }\n\n // Otherwise, optionally check the native input's validity if available.\n const input = this.shadowRoot?.querySelector(\"input\");\n return input ? input.checkValidity() : true;\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n\n this.showError = true;\n this._validate(); // Make sure validation message appears\n\n const input = this.shadowRoot?.querySelector(\"input\");\n if (input) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n input.focus();\n }\n } else {\n // If not part of a form, simply focus.\n input.focus();\n }\n }\n }\n\n private _manageLabelClick = () => {\n const labelEl = this.shadowRoot?.querySelector(\"nys-label\");\n const inputEl = this.shadowRoot?.querySelector(\"input\");\n\n if (labelEl && inputEl) {\n labelEl.addEventListener(\"click\", () => inputEl.click());\n }\n };\n\n // Event Handlers\n private _emitChangeEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: {\n id: this.id,\n checked: this.checked,\n name: this.name,\n value: this.value,\n },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // Handle checkbox change event\n private _handleChange(e: Event) {\n const { checked } = e.target as HTMLInputElement;\n this.checked = checked;\n if (!this.groupExist) {\n this._internals.setFormValue(this.checked ? this.value : null);\n }\n this._validate();\n this._emitChangeEvent();\n }\n\n // Handle focus event\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n // Handle blur event\n private _handleBlur() {\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n // Handle keydown for keyboard accessibility\n private async _handleKeydown(e: KeyboardEvent) {\n if (e.code === \"Space\") {\n e.preventDefault();\n if (!this.disabled) {\n this.checked = !this.checked;\n this._internals.setFormValue(this.checked ? this.value : null);\n\n // Wait for DOM updates before validating. This is necessary to ensure the native input validation state is updated before this.validate().\n await this.updateComplete;\n this._validate();\n\n this._emitChangeEvent();\n }\n }\n }\n\n render() {\n return html`\n <label class=\"nys-checkbox\">\n <div class=\"nys-checkbox__checkboxwrapper\">\n <input\n id=${this.id + \"--native\"}\n class=\"nys-checkbox__checkbox\"\n type=\"checkbox\"\n name=\"${ifDefined(this.name ? this.name : undefined)}\"\n .checked=${this.checked}\n ?disabled=${this.disabled}\n .value=${this.value}\n ?required=\"${this.required}\"\n form=${ifDefined(this.form || undefined)}\n aria-checked=\"${this.checked}\"\n aria-disabled=\"${this.disabled ? \"true\" : \"false\"}\"\n aria-required=\"${this.required}\"\n aria-describedby=\"group-info\"\n @change=\"${this._handleChange}\"\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @keydown=\"${this._handleKeydown}\"\n aria-label=\"${this.label}\"\n />\n ${this.checked\n ? html`<nys-icon\n name=\"check\"\n size=\"${this.size === \"md\"\n ? \"4xl\"\n : this.size === \"sm\"\n ? \"2xl\"\n : \"4xl\"}\"\n class=\"nys-checkbox__icon\"\n ></nys-icon>`\n : \"\"}\n </div>\n ${this.label &&\n html`\n <nys-label\n tooltip=${this.tooltip}\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${ifDefined(this.description ?? undefined)}\n flag=${ifDefined(this.required ? \"required\" : undefined)}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\"\n >${this.description}</slot\n >\n </nys-label>\n `}\n </label>\n ${this.parentElement?.tagName.toLowerCase() !== \"nys-checkboxgroup\"\n ? html`<nys-errormessage\n id=\"single-error-message\"\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage ||\n this.errorMessage}\n .showDivider=${!this.tile}\n ></nys-errormessage>`\n : \"\"}\n `;\n }\n}\n\nif (!customElements.get(\"nys-checkbox\")) {\n customElements.define(\"nys-checkbox\", NysCheckbox);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-divider.scss?inline\";\n\nexport class NysDivider extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: Boolean, reflect: true }) inverted = false;\n\n constructor() {\n super();\n }\n\n render() {\n return html`<hr class=\"nys-divider\" />`;\n }\n}\n\nif (!customElements.get(\"nys-divider\")) {\n customElements.define(\"nys-divider\", NysDivider);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-errormessage.scss?inline\";\n\nexport class NysErrorMessage extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: Boolean }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: Boolean, reflect: true }) showDivider = false;\n private _internals: ElementInternals;\n\n // Lifecycle Updates\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n render() {\n return html`${this.showError\n ? html`<div class=\"nys-errormessage\" ?showDivider=${this.showDivider}>\n <nys-icon name=\"error\" size=\"2xl\"></nys-icon>\n ${this._internals.validationMessage || this.errorMessage}\n </div>`\n : \"\"}`;\n }\n}\n\nif (!customElements.get(\"nys-errormessage\")) {\n customElements.define(\"nys-errormessage\", NysErrorMessage);\n}\n","// The main function for file validation based only on extension and `accept` attribute.\nexport async function validateFileHeader(\n file: File,\n accept: string,\n): Promise<boolean> {\n // 1) If no accept attribute is defined, assume anything is allowed\n if (!accept || accept.trim() === \"\") return true;\n\n // 2) Normalize and parse the accept attribute\n const acceptItems = accept\n .toLowerCase()\n .split(\",\")\n .map((a) => a.trim());\n\n // 3) Get the file extension\n const filename = file.name.toLowerCase();\n const fileExt = filename.includes(\".\") ? filename.split(\".\").pop()! : \"\";\n\n // 4) Check if extension matches any of the accept items\n for (const acceptItem of acceptItems) {\n // Direct extension match (e.g. \".pdf\")\n if (acceptItem.startsWith(\".\") && acceptItem.slice(1) === fileExt) {\n return true;\n }\n\n // Wildcard /* (e.g. \"image/*\") -> match common prefixes\n if (\n acceptItem.endsWith(\"/*\") &&\n file.type.startsWith(acceptItem.slice(0, -1))\n ) {\n return true;\n }\n\n // Exact MIME match\n if (file.type === acceptItem) {\n return true;\n }\n }\n\n // 5) Not matched\n return false;\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-fileitem.scss?inline\";\n\nexport class NysFileItem extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String }) filename = \"\";\n @property({ type: String }) status:\n | \"pending\"\n | \"processing\"\n | \"done\"\n | \"error\" = \"pending\";\n @property({ type: Number }) progress = 0;\n @property({ type: String }) errorMessage = \"\";\n\n private _handleRemove() {\n this.dispatchEvent(\n new CustomEvent(\"nys-fileRemove\", {\n detail: { filename: this.filename },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private splitFilename(filename: string) {\n const lastDotIndex = filename.lastIndexOf(\".\");\n const extension = lastDotIndex !== -1 ? filename.slice(lastDotIndex) : \"\"; // e.g. \".pdf\"\n const name =\n lastDotIndex !== -1 ? filename.slice(0, lastDotIndex) : filename;\n\n const startPart = name.slice(0, name.length - 3);\n const endPart = name.slice(-3);\n\n return { startPart, endPart, extension };\n }\n\n render() {\n const { startPart, endPart, extension } = this.splitFilename(this.filename);\n\n return html`\n <div\n class=\"file-item ${this.status}\"\n aria-busy=${this.status === \"processing\" ? \"true\" : \"false\"}\n aria-label=\"You have selected ${this.filename}\"\n >\n <div class=\"file-item__main\" role=\"group\">\n <nys-icon\n class=\"file-icon\"\n name=${this.status === \"processing\"\n ? \"progress_activity\"\n : this.status === \"error\"\n ? \"error\"\n : \"attach_file\"}\n size=\"2xl\"\n ></nys-icon>\n <div class=\"file-item__info\">\n <div class=\"file-item__info-name\">\n <span class=\"file-item__info-name-start\">${startPart}</span>\n <span class=\"file-item__info-name-end\"\n >${endPart}${extension}</span\n >\n </div>\n ${this.errorMessage\n ? html`<p\n class=\"file-item__error\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-invalid=\"true\"\n aria-errormessage=${this.errorMessage}\n id=\"${this.filename}-error\"\n >\n ${this.errorMessage}\n </p>`\n : null}\n </div>\n <nys-button\n circle\n icon=\"close\"\n ariaLabel=\"close button\"\n size=\"sm\"\n variant=\"ghost\"\n @nys-click=${this._handleRemove}\n ariaLabel=\"Remove file: ${this.filename}\"\n ></nys-button>\n </div>\n ${this.status === \"processing\"\n ? html`<div\n class=\"file-item__progress-container\"\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow=\"${this.progress}\"\n aria-label=\"Upload progress for ${this.filename}\"\n >\n <progress value=${this.progress} max=\"100\"></progress>\n </div>`\n : null}\n </div>\n `;\n }\n}\n\ncustomElements.define(\"nys-fileitem\", NysFileItem);\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { validateFileHeader } from \"./validateFileHeader\";\nimport \"./nys-fileitem\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-fileinput.scss?inline\";\n\nlet fileinputIdCounter = 0; // Counter for generating unique IDs\n\ninterface FileWithProgress {\n file: File;\n progress: number;\n status: \"pending\" | \"processing\" | \"done\" | \"error\";\n errorMsg?: string;\n}\n\nexport class NysFileinput extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: Boolean }) multiple = false;\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String }) tooltip = \"\";\n @property({ type: String }) accept = \"\"; // e.g. \"image/*,.pdf\"\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: Boolean }) dropzone = false;\n @property({ type: String, reflect: true }) width: \"lg\" | \"full\" = \"full\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n\n private _selectedFiles: FileWithProgress[] = [];\n private _dragActive = false;\n private get _isDropDisabled(): boolean {\n return this.disabled || (!this.multiple && this._selectedFiles.length > 0);\n }\n\n private get _buttonAriaLabel(): string {\n if (this._selectedFiles.length === 0) {\n return this.multiple ? \"Choose files: \" : \"Choose file: \";\n }\n\n return this.multiple ? \"Change files: \" : \"Change file: \";\n }\n\n private get _buttonAriaDescription(): string {\n if (this._selectedFiles.length === 0)\n return `${this.label + \" \" + this.description}`;\n\n const hasInvalidFiles = this._selectedFiles.some(\n (file) => file.status === \"error\",\n );\n\n let base = \"\";\n\n if (this._selectedFiles.length === 1) {\n base = `You have selected ${this._selectedFiles[0].file.name}.`;\n } else {\n const fileNames = this._selectedFiles.map((f) => f.file.name).join(\", \");\n base = `You have selected ${this._selectedFiles.length} files: ${fileNames}`;\n }\n\n const error = hasInvalidFiles\n ? \" Error: One or more files are not valid file types.\"\n : \"\";\n\n return `${base}${error}`;\n }\n\n private get _innerNysButton(): HTMLElement | null {\n const nysButton = this.renderRoot.querySelector(\n '[name=\"file-btn\"]',\n ) as HTMLButtonElement | null;\n const innerButton = nysButton?.shadowRoot?.querySelector(\n \"button\",\n ) as HTMLElement | null;\n return innerButton;\n }\n\n private _internals: ElementInternals;\n\n // Lifecycle Updates\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-fileinput-${Date.now()}-${fileinputIdCounter++}`;\n }\n\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n // This ensures our element always participates in the form\n this._setValue();\n }\n\n // Form Integration\n private _setValue() {\n // for multiple file uploads, we upload File object as an array\n if (this.multiple) {\n const files = this._selectedFiles.map((entry) => entry.file);\n\n if (files.length > 0) {\n const formData = new FormData();\n files.forEach((file) => {\n formData.append(this.name, file);\n });\n this._internals.setFormValue(formData);\n } else {\n this._internals.setFormValue(null);\n }\n } else {\n const singleFile = this._selectedFiles[0]?.file || null;\n this._internals.setFormValue(singleFile);\n }\n\n this._manageRequire(); // Check validation when value is set\n }\n\n // Called to internally set the initial internalElement required flag.\n private _manageRequire() {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n const message = this.errorMessage || \"Please upload a file.\";\n const isInvalid = this.required && this._selectedFiles.length == 0;\n\n if (isInvalid) {\n this._internals.ariaRequired = \"true\"; // Screen readers should announce error\n this._internals.setValidity({ valueMissing: true }, message, input);\n } else {\n this._internals.ariaRequired = \"false\"; // Reset when valid\n this._internals.setValidity({}, \"\", input);\n }\n }\n\n private _setValidityMessage(message: string = \"\") {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Toggle the HTML <div> tag error message\n this.showError = message === (this.errorMessage || \"Please upload a file.\");\n\n // If user sets errorMessage, this will always override the native validation message\n if (this.errorMessage?.trim() && message !== \"\") {\n message = this.errorMessage;\n }\n\n this._internals.setValidity(\n message ? { customError: true } : {},\n message,\n input,\n );\n }\n\n private _validate() {\n const hasErrorFiles = this._selectedFiles.some(\n (entry) => entry.status === \"error\",\n );\n const isEmpty = this.required && this._selectedFiles.length === 0;\n\n let message = \"\";\n if (isEmpty) {\n message = this.errorMessage || \"Please upload a file.\";\n } else if (hasErrorFiles) {\n message = \"One or more files are invalid.\";\n }\n\n this._setValidityMessage(message);\n }\n\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n const input = this.shadowRoot?.querySelector(\"input\");\n return input ? input.checkValidity() : true;\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this._validate();\n\n const innerButton = this._innerNysButton;\n if (innerButton) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n innerButton.focus();\n innerButton.classList.add(\"active-focus\"); // This class styling is found within <nys-button>\n }\n } else {\n // If not part of a form, simply focus.\n innerButton.focus();\n innerButton.classList.add(\"active-focus\"); // This class styling is found within <nys-button>\n }\n }\n }\n\n // Functions\n\n // Store the files to be displayed\n private async _saveSelectedFiles(file: File) {\n const isDuplicate = this._selectedFiles.some(\n (existingFile) => existingFile.file.name == file.name,\n );\n if (isDuplicate) return;\n\n if (!this.multiple && this._selectedFiles.length >= 1) return;\n\n const entry: FileWithProgress = {\n file,\n progress: 0,\n status: \"pending\",\n };\n\n this._selectedFiles.push(entry);\n await this._processFile(entry);\n\n // Now that the file is added, update form value and validation\n this._setValue();\n this._validate();\n }\n\n // Read the contents of stored files, this will indicate loading progress of the uploaded files\n private async _processFile(entry: FileWithProgress) {\n entry.status = \"processing\";\n\n try {\n const isValid = await validateFileHeader(entry.file, this.accept);\n if (!isValid) {\n entry.status = \"error\";\n entry.errorMsg = \"File type is invalid.\";\n this.requestUpdate();\n return;\n }\n\n const reader = new FileReader();\n\n reader.onprogress = (e) => {\n if (e.lengthComputable) {\n const percentage = Math.round((e.loaded * 100) / e.total);\n entry.progress = percentage;\n this.requestUpdate();\n }\n };\n\n reader.onload = () => {\n entry.progress = 100;\n entry.status = \"done\";\n this.requestUpdate();\n };\n\n reader.onerror = () => {\n entry.status = \"error\";\n entry.errorMsg = \"Failed to load file.\";\n this.requestUpdate();\n };\n\n reader.readAsArrayBuffer(entry.file);\n } catch {\n entry.status = \"error\";\n entry.errorMsg = \"Error validating file.\";\n this.requestUpdate();\n }\n }\n\n private _dispatchChangeEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: { id: this.id, files: this._selectedFiles },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _openFileDialog() {\n const input = this.renderRoot.querySelector(\n \".hidden-file-input\",\n ) as HTMLInputElement;\n\n input?.click();\n }\n\n private _handlePostFileSelectionFocus() {\n if (this.multiple) {\n const innerButton = this._innerNysButton;\n\n if (innerButton) {\n innerButton.focus();\n }\n } else {\n this._focusFirstFileItemIfSingleMode();\n }\n }\n\n private async _focusFirstFileItemIfSingleMode() {\n if (!this.multiple) {\n await this.updateComplete;\n const fileItem = this.renderRoot.querySelector(\n \"nys-fileitem\",\n ) as HTMLElement;\n\n const innerFileItemMainContainer = fileItem?.shadowRoot?.querySelector(\n \".file-item\",\n ) as HTMLElement | null;\n\n if (innerFileItemMainContainer) {\n innerFileItemMainContainer.setAttribute(\"tabindex\", \"-1\");\n innerFileItemMainContainer.focus();\n }\n }\n }\n\n // Event Handlers\n // Access the selected files & add new files to the internal list via the hidden <input type=\"file\">\n private _handleFileChange(e: Event) {\n const input = e.target as HTMLInputElement;\n const files = input.files;\n const newFiles = files ? Array.from(files) : []; // changes FileList to array\n\n // Store the uploaded files\n newFiles.map((file) => {\n this._saveSelectedFiles(file);\n });\n\n this.requestUpdate();\n this._dispatchChangeEvent();\n this._handlePostFileSelectionFocus();\n }\n\n private _handleFileRemove(e: CustomEvent) {\n const filenameToRemove = e.detail.filename;\n\n // Remove selected files\n this._selectedFiles = this._selectedFiles.filter(\n (existingFile) => existingFile.file.name !== filenameToRemove,\n );\n\n if (this._selectedFiles.length === 0) {\n const input = this.shadowRoot?.querySelector(\n \"input\",\n ) as HTMLInputElement | null;\n if (input) input.value = \"\";\n }\n\n this._setValue();\n this._validate();\n\n this.requestUpdate();\n this._dispatchChangeEvent();\n }\n\n private _onDragOver(e: DragEvent) {\n if (this.disabled) return;\n\n e.stopPropagation();\n e.preventDefault();\n if (!this._dragActive) {\n this._dragActive = true; // For styling purpose\n this.requestUpdate();\n }\n }\n\n // Mostly used for styling purpose\n private _onDragLeave(e: DragEvent) {\n if (this.disabled) return;\n\n e.stopPropagation();\n e.preventDefault();\n // Only reset if leaving the dropzone itself (not children)\n if (e.currentTarget === e.target) {\n this._dragActive = false; // For styling purpose\n this.requestUpdate();\n }\n }\n\n private _onDrop(e: DragEvent) {\n if (this.disabled) return;\n\n e.preventDefault();\n this._dragActive = false; // For styling purpose\n this.requestUpdate();\n\n const files = e.dataTransfer?.files;\n if (!files) return;\n\n const newFiles = Array.from(files);\n\n if (this.multiple) {\n newFiles.forEach((file) => {\n this._saveSelectedFiles(file);\n });\n } else {\n this._saveSelectedFiles(newFiles[0]);\n }\n\n this.requestUpdate();\n this._dispatchChangeEvent();\n }\n\n render() {\n return html`<div\n class=\"nys-fileinput\"\n @nys-fileRemove=${this._handleFileRemove}\n >\n <nys-label\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n\n <input\n class=\"hidden-file-input\"\n tabindex=\"-1\"\n type=\"file\"\n name=${this.name}\n accept=${this.accept}\n form=${ifDefined(this.form || undefined)}\n ?multiple=${this.multiple}\n ?required=${this.required}\n ?disabled=${this.disabled ||\n (!this.multiple && this._selectedFiles.length > 0)}\n aria-disabled=\"${this.disabled}\"\n aria-hidden=\"true\"\n @change=${this._handleFileChange}\n hidden\n />\n\n ${!this.dropzone\n ? html`<nys-button\n id=\"choose-files-btn\"\n name=\"file-btn\"\n label=${this.multiple ? \"Choose files\" : \"Choose file\"}\n variant=\"outline\"\n ariaLabel=${this._buttonAriaLabel}\n ariaDescription=${this._buttonAriaDescription}\n ?disabled=${this.disabled ||\n (!this.multiple && this._selectedFiles.length > 0)}\n @nys-click=${this._openFileDialog}\n ></nys-button>`\n : html`<div\n class=\"nys-fileinput__dropzone\n ${this._dragActive ? \"drag-active\" : \"\"}\n ${this._isDropDisabled ? \"disabled\" : \"\"}\n ${this.showError && !this._isDropDisabled ? \"error\" : \"\"}\"\n @click=${this._isDropDisabled\n ? null\n : (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n\n // Ignore clicks that originated within a nys-button\n if (target.closest(\"nys-button\")) return;\n\n // Only handle direct wrapper clicks (outside of buttons)\n this._openFileDialog();\n }}\n @dragover=${this._isDropDisabled ? null : this._onDragOver}\n @dragleave=${this._isDropDisabled ? null : this._onDragLeave}\n @drop=${this._isDropDisabled ? null : this._onDrop}\n aria-label=\"Drag files here or choose from folder\"\n >\n ${this._dragActive\n ? html`<p>Drop file to upload</p>`\n : html` <nys-button\n id=\"choose-files-btn-drag\"\n name=\"file-btn\"\n label=${this.multiple ? \"Choose files\" : \"Choose file\"}\n variant=\"outline\"\n ariaLabel=${this._buttonAriaLabel}\n ariaDescription=${this._buttonAriaDescription}\n ?disabled=${this._isDropDisabled}\n @nys-click=\"${(e: CustomEvent) => {\n e.preventDefault();\n e.stopPropagation();\n this._openFileDialog();\n }}\"\n ></nys-button>\n <p>or drag here</p>`}\n </div>`}\n ${this.showError\n ? html`\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage ||\n this.errorMessage}\n ></nys-errormessage>\n `\n : null}\n ${this._selectedFiles.length > 0\n ? html`\n <ul>\n ${this._selectedFiles.map(\n (entry) =>\n html`<li>\n <nys-fileitem\n filename=${entry.file.name}\n status=${entry.status}\n progress=${entry.progress}\n errorMessage=${entry.errorMsg || \"\"}\n ></nys-fileitem>\n </li>`,\n )}\n </ul>\n `\n : null}\n </div>`;\n }\n}\n\nif (!customElements.get(\"nys-fileinput\")) {\n customElements.define(\"nys-fileinput\", NysFileinput);\n}\n","const iconLibrary: Record<string, string> = {\n // --------- UX Team Main Library (below) --------- //\n // *** CORE *** //\n account_circle: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_781\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_781)\">\n <path d=\"M5.85 17.1C6.7 16.45 7.65 15.9375 8.7 15.5625C9.75 15.1875 10.85 15 12 15C13.15 15 14.25 15.1875 15.3 15.5625C16.35 15.9375 17.3 16.45 18.15 17.1C18.7333 16.4167 19.1875 15.6417 19.5125 14.775C19.8375 13.9083 20 12.9833 20 12C20 9.78333 19.2208 7.89583 17.6625 6.3375C16.1042 4.77917 14.2167 4 12 4C9.78333 4 7.89583 4.77917 6.3375 6.3375C4.77917 7.89583 4 9.78333 4 12C4 12.9833 4.1625 13.9083 4.4875 14.775C4.8125 15.6417 5.26667 16.4167 5.85 17.1ZM12 13C11.0167 13 10.1875 12.6625 9.5125 11.9875C8.8375 11.3125 8.5 10.4833 8.5 9.5C8.5 8.51667 8.8375 7.6875 9.5125 7.0125C10.1875 6.3375 11.0167 6 12 6C12.9833 6 13.8125 6.3375 14.4875 7.0125C15.1625 7.6875 15.5 8.51667 15.5 9.5C15.5 10.4833 15.1625 11.3125 14.4875 11.9875C13.8125 12.6625 12.9833 13 12 13ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n attach_file: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_4782_213\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_4782_213)\">\n <path d=\"M18 15.75C18 17.4833 17.3917 18.9583 16.175 20.175C14.9583 21.3917 13.4833 22 11.75 22C10.0167 22 8.54167 21.3917 7.325 20.175C6.10833 18.9583 5.5 17.4833 5.5 15.75V6.5C5.5 5.25 5.9375 4.1875 6.8125 3.3125C7.6875 2.4375 8.75 2 10 2C11.25 2 12.3125 2.4375 13.1875 3.3125C14.0625 4.1875 14.5 5.25 14.5 6.5V15.25C14.5 16.0167 14.2333 16.6667 13.7 17.2C13.1667 17.7333 12.5167 18 11.75 18C10.9833 18 10.3333 17.7333 9.8 17.2C9.26667 16.6667 9 16.0167 9 15.25V7C9 6.71667 9.09583 6.47917 9.2875 6.2875C9.47917 6.09583 9.71667 6 10 6C10.2833 6 10.5208 6.09583 10.7125 6.2875C10.9042 6.47917 11 6.71667 11 7V15.25C11 15.4667 11.0708 15.6458 11.2125 15.7875C11.3542 15.9292 11.5333 16 11.75 16C11.9667 16 12.1458 15.9292 12.2875 15.7875C12.4292 15.6458 12.5 15.4667 12.5 15.25V6.5C12.4833 5.8 12.2375 5.20833 11.7625 4.725C11.2875 4.24167 10.7 4 10 4C9.3 4 8.70833 4.24167 8.225 4.725C7.74167 5.20833 7.5 5.8 7.5 6.5V15.75C7.48333 16.9333 7.89167 17.9375 8.725 18.7625C9.55833 19.5875 10.5667 20 11.75 20C12.9167 20 13.9083 19.5875 14.725 18.7625C15.5417 17.9375 15.9667 16.9333 16 15.75V7C16 6.71667 16.0958 6.47917 16.2875 6.2875C16.4792 6.09583 16.7167 6 17 6C17.2833 6 17.5208 6.09583 17.7125 6.2875C17.9042 6.47917 18 6.71667 18 7V15.75Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n calendar_month: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_304\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_304)\">\n <path d=\"M5 22C4.45 22 3.97917 21.8042 3.5875 21.4125C3.19583 21.0208 3 20.55 3 20V6C3 5.45 3.19583 4.97917 3.5875 4.5875C3.97917 4.19583 4.45 4 5 4H6V3C6 2.71667 6.09583 2.47917 6.2875 2.2875C6.47917 2.09583 6.71667 2 7 2C7.28333 2 7.52083 2.09583 7.7125 2.2875C7.90417 2.47917 8 2.71667 8 3V4H16V3C16 2.71667 16.0958 2.47917 16.2875 2.2875C16.4792 2.09583 16.7167 2 17 2C17.2833 2 17.5208 2.09583 17.7125 2.2875C17.9042 2.47917 18 2.71667 18 3V4H19C19.55 4 20.0208 4.19583 20.4125 4.5875C20.8042 4.97917 21 5.45 21 6V20C21 20.55 20.8042 21.0208 20.4125 21.4125C20.0208 21.8042 19.55 22 19 22H5ZM5 20H19V10H5V20ZM5 8H19V6H5V8ZM12 14C11.7167 14 11.4792 13.9042 11.2875 13.7125C11.0958 13.5208 11 13.2833 11 13C11 12.7167 11.0958 12.4792 11.2875 12.2875C11.4792 12.0958 11.7167 12 12 12C12.2833 12 12.5208 12.0958 12.7125 12.2875C12.9042 12.4792 13 12.7167 13 13C13 13.2833 12.9042 13.5208 12.7125 13.7125C12.5208 13.9042 12.2833 14 12 14ZM8 14C7.71667 14 7.47917 13.9042 7.2875 13.7125C7.09583 13.5208 7 13.2833 7 13C7 12.7167 7.09583 12.4792 7.2875 12.2875C7.47917 12.0958 7.71667 12 8 12C8.28333 12 8.52083 12.0958 8.7125 12.2875C8.90417 12.4792 9 12.7167 9 13C9 13.2833 8.90417 13.5208 8.7125 13.7125C8.52083 13.9042 8.28333 14 8 14ZM16 14C15.7167 14 15.4792 13.9042 15.2875 13.7125C15.0958 13.5208 15 13.2833 15 13C15 12.7167 15.0958 12.4792 15.2875 12.2875C15.4792 12.0958 15.7167 12 16 12C16.2833 12 16.5208 12.0958 16.7125 12.2875C16.9042 12.4792 17 12.7167 17 13C17 13.2833 16.9042 13.5208 16.7125 13.7125C16.5208 13.9042 16.2833 14 16 14ZM12 18C11.7167 18 11.4792 17.9042 11.2875 17.7125C11.0958 17.5208 11 17.2833 11 17C11 16.7167 11.0958 16.4792 11.2875 16.2875C11.4792 16.0958 11.7167 16 12 16C12.2833 16 12.5208 16.0958 12.7125 16.2875C12.9042 16.4792 13 16.7167 13 17C13 17.2833 12.9042 17.5208 12.7125 17.7125C12.5208 17.9042 12.2833 18 12 18ZM8 18C7.71667 18 7.47917 17.9042 7.2875 17.7125C7.09583 17.5208 7 17.2833 7 17C7 16.7167 7.09583 16.4792 7.2875 16.2875C7.47917 16.0958 7.71667 16 8 16C8.28333 16 8.52083 16.0958 8.7125 16.2875C8.90417 16.4792 9 16.7167 9 17C9 17.2833 8.90417 17.5208 8.7125 17.7125C8.52083 17.9042 8.28333 18 8 18ZM16 18C15.7167 18 15.4792 17.9042 15.2875 17.7125C15.0958 17.5208 15 17.2833 15 17C15 16.7167 15.0958 16.4792 15.2875 16.2875C15.4792 16.0958 15.7167 16 16 16C16.2833 16 16.5208 16.0958 16.7125 16.2875C16.9042 16.4792 17 16.7167 17 17C17 17.2833 16.9042 17.5208 16.7125 17.7125C16.5208 17.9042 16.2833 18 16 18Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n cancel: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_659\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_659)\">\n <path d=\"M12 13.4L14.9 16.3C15.0833 16.4833 15.3167 16.575 15.6 16.575C15.8833 16.575 16.1167 16.4833 16.3 16.3C16.4833 16.1167 16.575 15.8833 16.575 15.6C16.575 15.3167 16.4833 15.0833 16.3 14.9L13.4 12L16.3 9.1C16.4833 8.91667 16.575 8.68333 16.575 8.4C16.575 8.11667 16.4833 7.88333 16.3 7.7C16.1167 7.51667 15.8833 7.425 15.6 7.425C15.3167 7.425 15.0833 7.51667 14.9 7.7L12 10.6L9.1 7.7C8.91667 7.51667 8.68333 7.425 8.4 7.425C8.11667 7.425 7.88333 7.51667 7.7 7.7C7.51667 7.88333 7.425 8.11667 7.425 8.4C7.425 8.68333 7.51667 8.91667 7.7 9.1L10.6 12L7.7 14.9C7.51667 15.0833 7.425 15.3167 7.425 15.6C7.425 15.8833 7.51667 16.1167 7.7 16.3C7.88333 16.4833 8.11667 16.575 8.4 16.575C8.68333 16.575 8.91667 16.4833 9.1 16.3L12 13.4ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n check: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_648\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_648)\">\n <path d=\"M9.54996 15.15L18.025 6.675C18.225 6.475 18.4583 6.375 18.725 6.375C18.9916 6.375 19.225 6.475 19.425 6.675C19.625 6.875 19.725 7.1125 19.725 7.3875C19.725 7.6625 19.625 7.9 19.425 8.1L10.25 17.3C10.05 17.5 9.81663 17.6 9.54996 17.6C9.2833 17.6 9.04996 17.5 8.84996 17.3L4.54996 13C4.34996 12.8 4.25413 12.5625 4.26246 12.2875C4.2708 12.0125 4.37496 11.775 4.57496 11.575C4.77496 11.375 5.01246 11.275 5.28746 11.275C5.56246 11.275 5.79996 11.375 5.99996 11.575L9.54996 15.15Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n close: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12383_539\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12383_539)\">\n <path d=\"M12 13.4L7.10005 18.3C6.91672 18.4833 6.68338 18.575 6.40005 18.575C6.11672 18.575 5.88338 18.4833 5.70005 18.3C5.51672 18.1167 5.42505 17.8833 5.42505 17.6C5.42505 17.3167 5.51672 17.0833 5.70005 16.9L10.6 12L5.70005 7.09999C5.51672 6.91665 5.42505 6.68332 5.42505 6.39999C5.42505 6.11665 5.51672 5.88332 5.70005 5.69999C5.88338 5.51665 6.11672 5.42499 6.40005 5.42499C6.68338 5.42499 6.91672 5.51665 7.10005 5.69999L12 10.6L16.9 5.69999C17.0834 5.51665 17.3167 5.42499 17.6 5.42499C17.8834 5.42499 18.1167 5.51665 18.3 5.69999C18.4834 5.88332 18.575 6.11665 18.575 6.39999C18.575 6.68332 18.4834 6.91665 18.3 7.09999L13.4 12L18.3 16.9C18.4834 17.0833 18.575 17.3167 18.575 17.6C18.575 17.8833 18.4834 18.1167 18.3 18.3C18.1167 18.4833 17.8834 18.575 17.6 18.575C17.3167 18.575 17.0834 18.4833 16.9 18.3L12 13.4Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n code: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_8115_296\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_8115_296)\">\n <path d=\"M4.82505 12.025L8.70005 15.9C8.88338 16.0834 8.97505 16.3167 8.97505 16.6C8.97505 16.8834 8.88338 17.1167 8.70005 17.3C8.51672 17.4834 8.28338 17.575 8.00005 17.575C7.71672 17.575 7.48338 17.4834 7.30005 17.3L2.70005 12.7C2.60005 12.6 2.52922 12.4917 2.48755 12.375C2.44588 12.2584 2.42505 12.1334 2.42505 12C2.42505 11.8667 2.44588 11.7417 2.48755 11.625C2.52922 11.5084 2.60005 11.4 2.70005 11.3L7.30005 6.70002C7.50005 6.50002 7.73755 6.40002 8.01255 6.40002C8.28755 6.40002 8.52505 6.50002 8.72505 6.70002C8.92505 6.90002 9.02505 7.13752 9.02505 7.41252C9.02505 7.68752 8.92505 7.92502 8.72505 8.12502L4.82505 12.025ZM19.175 11.975L15.3 8.10002C15.1167 7.91669 15.025 7.68336 15.025 7.40002C15.025 7.11669 15.1167 6.88336 15.3 6.70002C15.4834 6.51669 15.7167 6.42502 16 6.42502C16.2834 6.42502 16.5167 6.51669 16.7 6.70002L21.3 11.3C21.4 11.4 21.4709 11.5084 21.5125 11.625C21.5542 11.7417 21.575 11.8667 21.575 12C21.575 12.1334 21.5542 12.2584 21.5125 12.375C21.4709 12.4917 21.4 12.6 21.3 12.7L16.7 17.3C16.5 17.5 16.2667 17.5959 16 17.5875C15.7334 17.5792 15.5 17.475 15.3 17.275C15.1 17.075 15 16.8375 15 16.5625C15 16.2875 15.1 16.05 15.3 15.85L19.175 11.975Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n download: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_255\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_255)\">\n <path d=\"M12 15.575C11.8667 15.575 11.7417 15.5542 11.625 15.5125C11.5083 15.4708 11.4 15.4 11.3 15.3L7.7 11.7C7.5 11.5 7.40417 11.2667 7.4125 11C7.42083 10.7333 7.51667 10.5 7.7 10.3C7.9 10.1 8.1375 9.99583 8.4125 9.9875C8.6875 9.97917 8.925 10.075 9.125 10.275L11 12.15V5C11 4.71667 11.0958 4.47917 11.2875 4.2875C11.4792 4.09583 11.7167 4 12 4C12.2833 4 12.5208 4.09583 12.7125 4.2875C12.9042 4.47917 13 4.71667 13 5V12.15L14.875 10.275C15.075 10.075 15.3125 9.97917 15.5875 9.9875C15.8625 9.99583 16.1 10.1 16.3 10.3C16.4833 10.5 16.5792 10.7333 16.5875 11C16.5958 11.2667 16.5 11.5 16.3 11.7L12.7 15.3C12.6 15.4 12.4917 15.4708 12.375 15.5125C12.2583 15.5542 12.1333 15.575 12 15.575ZM6 20C5.45 20 4.97917 19.8042 4.5875 19.4125C4.19583 19.0208 4 18.55 4 18V16C4 15.7167 4.09583 15.4792 4.2875 15.2875C4.47917 15.0958 4.71667 15 5 15C5.28333 15 5.52083 15.0958 5.7125 15.2875C5.90417 15.4792 6 15.7167 6 16V18H18V16C18 15.7167 18.0958 15.4792 18.2875 15.2875C18.4792 15.0958 18.7167 15 19 15C19.2833 15 19.5208 15.0958 19.7125 15.2875C19.9042 15.4792 20 15.7167 20 16V18C20 18.55 19.8042 19.0208 19.4125 19.4125C19.0208 19.8042 18.55 20 18 20H6Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n download_done: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_634\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_634)\">\n <path d=\"M9.54999 13.15L18 4.70002C18.2 4.50002 18.4375 4.40002 18.7125 4.40002C18.9875 4.40002 19.225 4.50002 19.425 4.70002C19.625 4.90002 19.725 5.13752 19.725 5.41252C19.725 5.68752 19.625 5.92502 19.425 6.12502L10.25 15.3C10.05 15.5 9.81665 15.6 9.54999 15.6C9.28332 15.6 9.04999 15.5 8.84999 15.3L4.57499 11.025C4.37499 10.825 4.27915 10.5875 4.28749 10.3125C4.29582 10.0375 4.39999 9.80002 4.59999 9.60002C4.79999 9.40002 5.03749 9.30002 5.31249 9.30002C5.58749 9.30002 5.82499 9.40002 6.02499 9.60002L9.54999 13.15ZM5.99999 20C5.71665 20 5.47915 19.9042 5.28749 19.7125C5.09582 19.5209 4.99999 19.2834 4.99999 19C4.99999 18.7167 5.09582 18.4792 5.28749 18.2875C5.47915 18.0959 5.71665 18 5.99999 18H18C18.2833 18 18.5208 18.0959 18.7125 18.2875C18.9042 18.4792 19 18.7167 19 19C19 19.2834 18.9042 19.5209 18.7125 19.7125C18.5208 19.9042 18.2833 20 18 20H12H5.99999Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n drive_folder_upload: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_546\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_546)\">\n <path d=\"M4 20C3.45 20 2.97917 19.8042 2.5875 19.4125C2.19583 19.0208 2 18.55 2 18V6C2 5.45 2.19583 4.97917 2.5875 4.5875C2.97917 4.19583 3.45 4 4 4H9.175C9.44167 4 9.69583 4.05 9.9375 4.15C10.1792 4.25 10.3917 4.39167 10.575 4.575L12 6H20C20.55 6 21.0208 6.19583 21.4125 6.5875C21.8042 6.97917 22 7.45 22 8V18C22 18.55 21.8042 19.0208 21.4125 19.4125C21.0208 19.8042 20.55 20 20 20H4ZM4 18H20V8H11.175L9.175 6H4V18ZM12 17C12.2833 17 12.5208 16.9042 12.7125 16.7125C12.9042 16.5208 13 16.2833 13 16V12.8L13.9 13.7C14.0833 13.8833 14.3167 13.975 14.6 13.975C14.8833 13.975 15.1167 13.8833 15.3 13.7C15.4833 13.5167 15.575 13.2833 15.575 13C15.575 12.7167 15.4833 12.4833 15.3 12.3L12.7 9.7C12.5 9.5 12.2667 9.4 12 9.4C11.7333 9.4 11.5 9.5 11.3 9.7L8.7 12.3C8.51667 12.4833 8.425 12.7167 8.425 13C8.425 13.2833 8.51667 13.5167 8.7 13.7C8.88333 13.8833 9.11667 13.975 9.4 13.975C9.68333 13.975 9.91667 13.8833 10.1 13.7L11 12.8V16C11 16.2833 11.0958 16.5208 11.2875 16.7125C11.4792 16.9042 11.7167 17 12 17Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n edit_square: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_616\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_616)\">\n <path d=\"M5 21C4.45 21 3.97917 20.8041 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V4.99998C3 4.44998 3.19583 3.97914 3.5875 3.58748C3.97917 3.19581 4.45 2.99998 5 2.99998H11.525C11.8583 2.99998 12.1083 3.10414 12.275 3.31248C12.4417 3.52081 12.525 3.74998 12.525 3.99998C12.525 4.24998 12.4375 4.47914 12.2625 4.68748C12.0875 4.89581 11.8333 4.99998 11.5 4.99998H5V19H19V12.475C19 12.1416 19.1042 11.8916 19.3125 11.725C19.5208 11.5583 19.75 11.475 20 11.475C20.25 11.475 20.4792 11.5583 20.6875 11.725C20.8958 11.8916 21 12.1416 21 12.475V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8041 19.55 21 19 21H5ZM9 14V11.575C9 11.3083 9.05 11.0541 9.15 10.8125C9.25 10.5708 9.39167 10.3583 9.575 10.175L18.175 1.57498C18.375 1.37498 18.6 1.22498 18.85 1.12498C19.1 1.02498 19.35 0.974976 19.6 0.974976C19.8667 0.974976 20.1208 1.02498 20.3625 1.12498C20.6042 1.22498 20.825 1.37498 21.025 1.57498L22.425 2.99998C22.6083 3.19998 22.75 3.42081 22.85 3.66248C22.95 3.90414 23 4.14998 23 4.39998C23 4.64998 22.9542 4.89581 22.8625 5.13748C22.7708 5.37914 22.625 5.59998 22.425 5.79998L13.825 14.4C13.6417 14.5833 13.4292 14.7291 13.1875 14.8375C12.9458 14.9458 12.6917 15 12.425 15H10C9.71667 15 9.47917 14.9041 9.2875 14.7125C9.09583 14.5208 9 14.2833 9 14ZM11 13H12.4L18.2 7.19998L17.5 6.49998L16.775 5.79998L11 11.575V13Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n expand_all: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_13942_344\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_13942_344)\">\n <path d=\"M12 19.15L15.875 15.275C16.075 15.075 16.3083 14.975 16.575 14.975C16.8417 14.975 17.075 15.075 17.275 15.275C17.475 15.475 17.575 15.7125 17.575 15.9875C17.575 16.2625 17.475 16.5 17.275 16.7L13.425 20.575C13.0417 20.9583 12.5667 21.15 12 21.15C11.4333 21.15 10.9583 20.9583 10.575 20.575L6.69999 16.7C6.49999 16.5 6.40415 16.2625 6.41249 15.9875C6.42082 15.7125 6.52499 15.475 6.72499 15.275C6.92499 15.075 7.16249 14.975 7.43749 14.975C7.71249 14.975 7.94999 15.075 8.14999 15.275L12 19.15ZM12 4.84998L8.14999 8.69998C7.94999 8.89998 7.71665 8.99581 7.44999 8.98748C7.18332 8.97914 6.94999 8.88331 6.74999 8.69998C6.54999 8.49998 6.44582 8.26248 6.43749 7.98748C6.42915 7.71248 6.52499 7.47498 6.72499 7.27498L10.575 3.42498C10.9583 3.04164 11.4333 2.84998 12 2.84998C12.5667 2.84998 13.0417 3.04164 13.425 3.42498L17.275 7.27498C17.475 7.47498 17.5708 7.71248 17.5625 7.98748C17.5542 8.26248 17.45 8.49998 17.25 8.69998C17.05 8.88331 16.8167 8.97914 16.55 8.98748C16.2833 8.99581 16.05 8.89998 15.85 8.69998L12 4.84998Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n help: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_153\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_153)\">\n <path d=\"M11.95 18C12.3 18 12.5958 17.8792 12.8375 17.6375C13.0792 17.3958 13.2 17.1 13.2 16.75C13.2 16.4 13.0792 16.1042 12.8375 15.8625C12.5958 15.6208 12.3 15.5 11.95 15.5C11.6 15.5 11.3042 15.6208 11.0625 15.8625C10.8208 16.1042 10.7 16.4 10.7 16.75C10.7 17.1 10.8208 17.3958 11.0625 17.6375C11.3042 17.8792 11.6 18 11.95 18ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20ZM12.1 7.7C12.5167 7.7 12.8792 7.83333 13.1875 8.1C13.4958 8.36667 13.65 8.7 13.65 9.1C13.65 9.46667 13.5375 9.79167 13.3125 10.075C13.0875 10.3583 12.8333 10.625 12.55 10.875C12.1667 11.2083 11.8292 11.575 11.5375 11.975C11.2458 12.375 11.1 12.825 11.1 13.325C11.1 13.5583 11.1875 13.7542 11.3625 13.9125C11.5375 14.0708 11.7417 14.15 11.975 14.15C12.225 14.15 12.4375 14.0667 12.6125 13.9C12.7875 13.7333 12.9 13.525 12.95 13.275C13.0167 12.925 13.1667 12.6125 13.4 12.3375C13.6333 12.0625 13.8833 11.8 14.15 11.55C14.5333 11.1833 14.8625 10.7833 15.1375 10.35C15.4125 9.91667 15.55 9.43333 15.55 8.9C15.55 8.05 15.2042 7.35417 14.5125 6.8125C13.8208 6.27083 13.0167 6 12.1 6C11.4667 6 10.8625 6.13333 10.2875 6.4C9.7125 6.66667 9.275 7.075 8.975 7.625C8.85833 7.825 8.82083 8.0375 8.8625 8.2625C8.90417 8.4875 9.01667 8.65833 9.2 8.775C9.43333 8.90833 9.675 8.95 9.925 8.9C10.175 8.85 10.3833 8.70833 10.55 8.475C10.7333 8.225 10.9625 8.03333 11.2375 7.9C11.5125 7.76667 11.8 7.7 12.1 7.7Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n language: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_211\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_211)\">\n <path d=\"M12 22C10.6333 22 9.34167 21.7375 8.125 21.2125C6.90833 20.6875 5.84583 19.9708 4.9375 19.0625C4.02917 18.1542 3.3125 17.0917 2.7875 15.875C2.2625 14.6583 2 13.3667 2 12C2 10.6167 2.2625 9.32083 2.7875 8.1125C3.3125 6.90417 4.02917 5.84583 4.9375 4.9375C5.84583 4.02917 6.90833 3.3125 8.125 2.7875C9.34167 2.2625 10.6333 2 12 2C13.3833 2 14.6792 2.2625 15.8875 2.7875C17.0958 3.3125 18.1542 4.02917 19.0625 4.9375C19.9708 5.84583 20.6875 6.90417 21.2125 8.1125C21.7375 9.32083 22 10.6167 22 12C22 13.3667 21.7375 14.6583 21.2125 15.875C20.6875 17.0917 19.9708 18.1542 19.0625 19.0625C18.1542 19.9708 17.0958 20.6875 15.8875 21.2125C14.6792 21.7375 13.3833 22 12 22ZM12 19.95C12.4333 19.35 12.8083 18.725 13.125 18.075C13.4417 17.425 13.7 16.7333 13.9 16H10.1C10.3 16.7333 10.5583 17.425 10.875 18.075C11.1917 18.725 11.5667 19.35 12 19.95ZM9.4 19.55C9.1 19 8.8375 18.4292 8.6125 17.8375C8.3875 17.2458 8.2 16.6333 8.05 16H5.1C5.58333 16.8333 6.1875 17.5583 6.9125 18.175C7.6375 18.7917 8.46667 19.25 9.4 19.55ZM14.6 19.55C15.5333 19.25 16.3625 18.7917 17.0875 18.175C17.8125 17.5583 18.4167 16.8333 18.9 16H15.95C15.8 16.6333 15.6125 17.2458 15.3875 17.8375C15.1625 18.4292 14.9 19 14.6 19.55ZM4.25 14H7.65C7.6 13.6667 7.5625 13.3375 7.5375 13.0125C7.5125 12.6875 7.5 12.35 7.5 12C7.5 11.65 7.5125 11.3125 7.5375 10.9875C7.5625 10.6625 7.6 10.3333 7.65 10H4.25C4.16667 10.3333 4.10417 10.6625 4.0625 10.9875C4.02083 11.3125 4 11.65 4 12C4 12.35 4.02083 12.6875 4.0625 13.0125C4.10417 13.3375 4.16667 13.6667 4.25 14ZM9.65 14H14.35C14.4 13.6667 14.4375 13.3375 14.4625 13.0125C14.4875 12.6875 14.5 12.35 14.5 12C14.5 11.65 14.4875 11.3125 14.4625 10.9875C14.4375 10.6625 14.4 10.3333 14.35 10H9.65C9.6 10.3333 9.5625 10.6625 9.5375 10.9875C9.5125 11.3125 9.5 11.65 9.5 12C9.5 12.35 9.5125 12.6875 9.5375 13.0125C9.5625 13.3375 9.6 13.6667 9.65 14ZM16.35 14H19.75C19.8333 13.6667 19.8958 13.3375 19.9375 13.0125C19.9792 12.6875 20 12.35 20 12C20 11.65 19.9792 11.3125 19.9375 10.9875C19.8958 10.6625 19.8333 10.3333 19.75 10H16.35C16.4 10.3333 16.4375 10.6625 16.4625 10.9875C16.4875 11.3125 16.5 11.65 16.5 12C16.5 12.35 16.4875 12.6875 16.4625 13.0125C16.4375 13.3375 16.4 13.6667 16.35 14ZM15.95 8H18.9C18.4167 7.16667 17.8125 6.44167 17.0875 5.825C16.3625 5.20833 15.5333 4.75 14.6 4.45C14.9 5 15.1625 5.57083 15.3875 6.1625C15.6125 6.75417 15.8 7.36667 15.95 8ZM10.1 8H13.9C13.7 7.26667 13.4417 6.575 13.125 5.925C12.8083 5.275 12.4333 4.65 12 4.05C11.5667 4.65 11.1917 5.275 10.875 5.925C10.5583 6.575 10.3 7.26667 10.1 8ZM5.1 8H8.05C8.2 7.36667 8.3875 6.75417 8.6125 6.1625C8.8375 5.57083 9.1 5 9.4 4.45C8.46667 4.75 7.6375 5.20833 6.9125 5.825C6.1875 6.44167 5.58333 7.16667 5.1 8Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n link: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_7578_270\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_7578_270)\">\n <path d=\"M7 17C5.61667 17 4.4375 16.5125 3.4625 15.5375C2.4875 14.5625 2 13.3833 2 12C2 10.6167 2.4875 9.4375 3.4625 8.4625C4.4375 7.4875 5.61667 7 7 7H10C10.2833 7 10.5208 7.09583 10.7125 7.2875C10.9042 7.47917 11 7.71667 11 8C11 8.28333 10.9042 8.52083 10.7125 8.7125C10.5208 8.90417 10.2833 9 10 9H7C6.16667 9 5.45833 9.29167 4.875 9.875C4.29167 10.4583 4 11.1667 4 12C4 12.8333 4.29167 13.5417 4.875 14.125C5.45833 14.7083 6.16667 15 7 15H10C10.2833 15 10.5208 15.0958 10.7125 15.2875C10.9042 15.4792 11 15.7167 11 16C11 16.2833 10.9042 16.5208 10.7125 16.7125C10.5208 16.9042 10.2833 17 10 17H7ZM9 13C8.71667 13 8.47917 12.9042 8.2875 12.7125C8.09583 12.5208 8 12.2833 8 12C8 11.7167 8.09583 11.4792 8.2875 11.2875C8.47917 11.0958 8.71667 11 9 11H15C15.2833 11 15.5208 11.0958 15.7125 11.2875C15.9042 11.4792 16 11.7167 16 12C16 12.2833 15.9042 12.5208 15.7125 12.7125C15.5208 12.9042 15.2833 13 15 13H9ZM14 17C13.7167 17 13.4792 16.9042 13.2875 16.7125C13.0958 16.5208 13 16.2833 13 16C13 15.7167 13.0958 15.4792 13.2875 15.2875C13.4792 15.0958 13.7167 15 14 15H17C17.8333 15 18.5417 14.7083 19.125 14.125C19.7083 13.5417 20 12.8333 20 12C20 11.1667 19.7083 10.4583 19.125 9.875C18.5417 9.29167 17.8333 9 17 9H14C13.7167 9 13.4792 8.90417 13.2875 8.7125C13.0958 8.52083 13 8.28333 13 8C13 7.71667 13.0958 7.47917 13.2875 7.2875C13.4792 7.09583 13.7167 7 14 7H17C18.3833 7 19.5625 7.4875 20.5375 8.4625C21.5125 9.4375 22 10.6167 22 12C22 13.3833 21.5125 14.5625 20.5375 15.5375C19.5625 16.5125 18.3833 17 17 17H14Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n mail: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_7578_308\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_7578_308)\">\n <path d=\"M4 20C3.45 20 2.97917 19.8042 2.5875 19.4125C2.19583 19.0208 2 18.55 2 18V6C2 5.45 2.19583 4.97917 2.5875 4.5875C2.97917 4.19583 3.45 4 4 4H20C20.55 4 21.0208 4.19583 21.4125 4.5875C21.8042 4.97917 22 5.45 22 6V18C22 18.55 21.8042 19.0208 21.4125 19.4125C21.0208 19.8042 20.55 20 20 20H4ZM20 8L12.525 12.675C12.4417 12.725 12.3542 12.7625 12.2625 12.7875C12.1708 12.8125 12.0833 12.825 12 12.825C11.9167 12.825 11.8292 12.8125 11.7375 12.7875C11.6458 12.7625 11.5583 12.725 11.475 12.675L4 8V18H20V8ZM12 11L20 6H4L12 11ZM4 8.25V6.775V6.8V6.7875V8.25Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n menu: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_150\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_150)\">\n <path d=\"M4 18C3.71667 18 3.47917 17.9042 3.2875 17.7125C3.09583 17.5208 3 17.2833 3 17C3 16.7167 3.09583 16.4792 3.2875 16.2875C3.47917 16.0958 3.71667 16 4 16H20C20.2833 16 20.5208 16.0958 20.7125 16.2875C20.9042 16.4792 21 16.7167 21 17C21 17.2833 20.9042 17.5208 20.7125 17.7125C20.5208 17.9042 20.2833 18 20 18H4ZM4 13C3.71667 13 3.47917 12.9042 3.2875 12.7125C3.09583 12.5208 3 12.2833 3 12C3 11.7167 3.09583 11.4792 3.2875 11.2875C3.47917 11.0958 3.71667 11 4 11H20C20.2833 11 20.5208 11.0958 20.7125 11.2875C20.9042 11.4792 21 11.7167 21 12C21 12.2833 20.9042 12.5208 20.7125 12.7125C20.5208 12.9042 20.2833 13 20 13H4ZM4 8C3.71667 8 3.47917 7.90417 3.2875 7.7125C3.09583 7.52083 3 7.28333 3 7C3 6.71667 3.09583 6.47917 3.2875 6.2875C3.47917 6.09583 3.71667 6 4 6H20C20.2833 6 20.5208 6.09583 20.7125 6.2875C20.9042 6.47917 21 6.71667 21 7C21 7.28333 20.9042 7.52083 20.7125 7.7125C20.5208 7.90417 20.2833 8 20 8H4Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n more_vert: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_728\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_728)\">\n <path d=\"M12 20C11.45 20 10.9792 19.8042 10.5875 19.4125C10.1958 19.0208 10 18.55 10 18C10 17.45 10.1958 16.9792 10.5875 16.5875C10.9792 16.1958 11.45 16 12 16C12.55 16 13.0208 16.1958 13.4125 16.5875C13.8042 16.9792 14 17.45 14 18C14 18.55 13.8042 19.0208 13.4125 19.4125C13.0208 19.8042 12.55 20 12 20ZM12 14C11.45 14 10.9792 13.8042 10.5875 13.4125C10.1958 13.0208 10 12.55 10 12C10 11.45 10.1958 10.9792 10.5875 10.5875C10.9792 10.1958 11.45 10 12 10C12.55 10 13.0208 10.1958 13.4125 10.5875C13.8042 10.9792 14 11.45 14 12C14 12.55 13.8042 13.0208 13.4125 13.4125C13.0208 13.8042 12.55 14 12 14ZM12 8C11.45 8 10.9792 7.80417 10.5875 7.4125C10.1958 7.02083 10 6.55 10 6C10 5.45 10.1958 4.97917 10.5875 4.5875C10.9792 4.19583 11.45 4 12 4C12.55 4 13.0208 4.19583 13.4125 4.5875C13.8042 4.97917 14 5.45 14 6C14 6.55 13.8042 7.02083 13.4125 7.4125C13.0208 7.80417 12.55 8 12 8Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n open_in_new: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_351\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_351)\">\n <path d=\"M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H11C11.2833 3 11.5208 3.09583 11.7125 3.2875C11.9042 3.47917 12 3.71667 12 4C12 4.28333 11.9042 4.52083 11.7125 4.7125C11.5208 4.90417 11.2833 5 11 5H5V19H19V13C19 12.7167 19.0958 12.4792 19.2875 12.2875C19.4792 12.0958 19.7167 12 20 12C20.2833 12 20.5208 12.0958 20.7125 12.2875C20.9042 12.4792 21 12.7167 21 13V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5ZM19 6.4L10.4 15C10.2167 15.1833 9.98333 15.275 9.7 15.275C9.41667 15.275 9.18333 15.1833 9 15C8.81667 14.8167 8.725 14.5833 8.725 14.3C8.725 14.0167 8.81667 13.7833 9 13.6L17.6 5H15C14.7167 5 14.4792 4.90417 14.2875 4.7125C14.0958 4.52083 14 4.28333 14 4C14 3.71667 14.0958 3.47917 14.2875 3.2875C14.4792 3.09583 14.7167 3 15 3H20C20.2833 3 20.5208 3.09583 20.7125 3.2875C20.9042 3.47917 21 3.71667 21 4V9C21 9.28333 20.9042 9.52083 20.7125 9.7125C20.5208 9.90417 20.2833 10 20 10C19.7167 10 19.4792 9.90417 19.2875 9.7125C19.0958 9.52083 19 9.28333 19 9V6.4Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n print: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_5058_681\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_5058_681)\">\n <path d=\"M8 21C7.45 21 6.97917 20.8042 6.5875 20.4125C6.19583 20.0208 6 19.55 6 19V17H4C3.45 17 2.97917 16.8042 2.5875 16.4125C2.19583 16.0208 2 15.55 2 15V11C2 10.15 2.29167 9.4375 2.875 8.8625C3.45833 8.2875 4.16667 8 5 8H19C19.85 8 20.5625 8.2875 21.1375 8.8625C21.7125 9.4375 22 10.15 22 11V15C22 15.55 21.8042 16.0208 21.4125 16.4125C21.0208 16.8042 20.55 17 20 17H18V19C18 19.55 17.8042 20.0208 17.4125 20.4125C17.0208 20.8042 16.55 21 16 21H8ZM4 15H6C6 14.45 6.19583 13.9792 6.5875 13.5875C6.97917 13.1958 7.45 13 8 13H16C16.55 13 17.0208 13.1958 17.4125 13.5875C17.8042 13.9792 18 14.45 18 15H20V11C20 10.7167 19.9042 10.4792 19.7125 10.2875C19.5208 10.0958 19.2833 10 19 10H5C4.71667 10 4.47917 10.0958 4.2875 10.2875C4.09583 10.4792 4 10.7167 4 11V15ZM16 8V5H8V8H6V5C6 4.45 6.19583 3.97917 6.5875 3.5875C6.97917 3.19583 7.45 3 8 3H16C16.55 3 17.0208 3.19583 17.4125 3.5875C17.8042 3.97917 18 4.45 18 5V8H16ZM18 12.5C18.2833 12.5 18.5208 12.4042 18.7125 12.2125C18.9042 12.0208 19 11.7833 19 11.5C19 11.2167 18.9042 10.9792 18.7125 10.7875C18.5208 10.5958 18.2833 10.5 18 10.5C17.7167 10.5 17.4792 10.5958 17.2875 10.7875C17.0958 10.9792 17 11.2167 17 11.5C17 11.7833 17.0958 12.0208 17.2875 12.2125C17.4792 12.4042 17.7167 12.5 18 12.5ZM16 19V15H8V19H16Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n phone_in_talk: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_10908_589\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_10908_589)\">\n <path d=\"M20 12C19.7333 12 19.4958 11.9042 19.2875 11.7125C19.0792 11.5208 18.9583 11.2833 18.925 11C18.7083 9.45 18.0542 8.12917 16.9625 7.0375C15.8708 5.94583 14.55 5.29167 13 5.075C12.7167 5.04167 12.4792 4.925 12.2875 4.725C12.0958 4.525 12 4.28333 12 4C12 3.71667 12.1 3.47917 12.3 3.2875C12.5 3.09583 12.7333 3.01667 13 3.05C15.1 3.28333 16.8917 4.14167 18.375 5.625C19.8583 7.10833 20.7167 8.9 20.95 11C20.9833 11.2667 20.9042 11.5 20.7125 11.7C20.5208 11.9 20.2833 12 20 12ZM15.825 12C15.6083 12 15.4167 11.925 15.25 11.775C15.0833 11.625 14.9583 11.425 14.875 11.175C14.7417 10.6917 14.4875 10.2625 14.1125 9.8875C13.7375 9.5125 13.3083 9.25833 12.825 9.125C12.575 9.04167 12.375 8.91667 12.225 8.75C12.075 8.58333 12 8.38333 12 8.15C12 7.81667 12.1167 7.54583 12.35 7.3375C12.5833 7.12917 12.8417 7.05833 13.125 7.125C14.0583 7.34167 14.8625 7.7875 15.5375 8.4625C16.2125 9.1375 16.6583 9.94167 16.875 10.875C16.9417 11.1583 16.8667 11.4167 16.65 11.65C16.4333 11.8833 16.1583 12 15.825 12ZM19.95 21C17.8667 21 15.8083 20.5458 13.775 19.6375C11.7417 18.7292 9.89167 17.4417 8.225 15.775C6.55833 14.1083 5.27083 12.2583 4.3625 10.225C3.45417 8.19167 3 6.13333 3 4.05C3 3.75 3.1 3.5 3.3 3.3C3.5 3.1 3.75 3 4.05 3H8.1C8.33333 3 8.54167 3.07917 8.725 3.2375C8.90833 3.39583 9.01667 3.58333 9.05 3.8L9.7 7.3C9.73333 7.56667 9.725 7.79167 9.675 7.975C9.625 8.15833 9.53333 8.31667 9.4 8.45L6.975 10.9C7.30833 11.5167 7.70417 12.1125 8.1625 12.6875C8.62083 13.2625 9.125 13.8167 9.675 14.35C10.1917 14.8667 10.7333 15.3458 11.3 15.7875C11.8667 16.2292 12.4667 16.6333 13.1 17L15.45 14.65C15.6 14.5 15.7958 14.3875 16.0375 14.3125C16.2792 14.2375 16.5167 14.2167 16.75 14.25L20.2 14.95C20.4333 15.0167 20.625 15.1375 20.775 15.3125C20.925 15.4875 21 15.6833 21 15.9V19.95C21 20.25 20.9 20.5 20.7 20.7C20.5 20.9 20.25 21 19.95 21ZM6.025 9L7.675 7.35L7.25 5H5.025C5.10833 5.68333 5.225 6.35833 5.375 7.025C5.525 7.69167 5.74167 8.35 6.025 9ZM14.975 17.95C15.625 18.2333 16.2875 18.4583 16.9625 18.625C17.6375 18.7917 18.3167 18.9 19 18.95V16.75L16.65 16.275L14.975 17.95Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n progress_activity: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_4782_166\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_4782_166)\">\n <path d=\"M12 22C10.6333 22 9.34167 21.7375 8.125 21.2125C6.90833 20.6875 5.84583 19.9708 4.9375 19.0625C4.02917 18.1542 3.3125 17.0917 2.7875 15.875C2.2625 14.6583 2 13.3667 2 12C2 10.6167 2.2625 9.32083 2.7875 8.1125C3.3125 6.90417 4.02917 5.84583 4.9375 4.9375C5.84583 4.02917 6.90833 3.3125 8.125 2.7875C9.34167 2.2625 10.6333 2 12 2C12.2833 2 12.5208 2.09583 12.7125 2.2875C12.9042 2.47917 13 2.71667 13 3C13 3.28333 12.9042 3.52083 12.7125 3.7125C12.5208 3.90417 12.2833 4 12 4C9.78333 4 7.89583 4.77917 6.3375 6.3375C4.77917 7.89583 4 9.78333 4 12C4 14.2167 4.77917 16.1042 6.3375 17.6625C7.89583 19.2208 9.78333 20 12 20C14.2167 20 16.1042 19.2208 17.6625 17.6625C19.2208 16.1042 20 14.2167 20 12C20 11.7167 20.0958 11.4792 20.2875 11.2875C20.4792 11.0958 20.7167 11 21 11C21.2833 11 21.5208 11.0958 21.7125 11.2875C21.9042 11.4792 22 11.7167 22 12C22 13.3667 21.7375 14.6583 21.2125 15.875C20.6875 17.0917 19.9708 18.1542 19.0625 19.0625C18.1542 19.9708 17.0958 20.6875 15.8875 21.2125C14.6792 21.7375 13.3833 22 12 22Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n publish: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_447\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_447)\">\n <path d=\"M11 11.85L9.125 13.725C8.925 13.925 8.6875 14.0208 8.4125 14.0125C8.1375 14.0042 7.9 13.9 7.7 13.7C7.51667 13.5 7.42083 13.2667 7.4125 13C7.40417 12.7333 7.5 12.5 7.7 12.3L11.3 8.7C11.4 8.6 11.5083 8.52917 11.625 8.4875C11.7417 8.44583 11.8667 8.425 12 8.425C12.1333 8.425 12.2583 8.44583 12.375 8.4875C12.4917 8.52917 12.6 8.6 12.7 8.7L16.3 12.3C16.5 12.5 16.5958 12.7333 16.5875 13C16.5792 13.2667 16.4833 13.5 16.3 13.7C16.1 13.9 15.8625 14.0042 15.5875 14.0125C15.3125 14.0208 15.075 13.925 14.875 13.725L13 11.85V19C13 19.2833 12.9042 19.5208 12.7125 19.7125C12.5208 19.9042 12.2833 20 12 20C11.7167 20 11.4792 19.9042 11.2875 19.7125C11.0958 19.5208 11 19.2833 11 19V11.85ZM4 8V6C4 5.45 4.19583 4.97917 4.5875 4.5875C4.97917 4.19583 5.45 4 6 4H18C18.55 4 19.0208 4.19583 19.4125 4.5875C19.8042 4.97917 20 5.45 20 6V8C20 8.28333 19.9042 8.52083 19.7125 8.7125C19.5208 8.90417 19.2833 9 19 9C18.7167 9 18.4792 8.90417 18.2875 8.7125C18.0958 8.52083 18 8.28333 18 8V6H6V8C6 8.28333 5.90417 8.52083 5.7125 8.7125C5.52083 8.90417 5.28333 9 5 9C4.71667 9 4.47917 8.90417 4.2875 8.7125C4.09583 8.52083 4 8.28333 4 8Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n search: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_692\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_692)\">\n <path d=\"M9.5 16C7.68333 16 6.14583 15.3708 4.8875 14.1125C3.62917 12.8542 3 11.3167 3 9.5C3 7.68333 3.62917 6.14583 4.8875 4.8875C6.14583 3.62917 7.68333 3 9.5 3C11.3167 3 12.8542 3.62917 14.1125 4.8875C15.3708 6.14583 16 7.68333 16 9.5C16 10.2333 15.8833 10.925 15.65 11.575C15.4167 12.225 15.1 12.8 14.7 13.3L20.3 18.9C20.4833 19.0833 20.575 19.3167 20.575 19.6C20.575 19.8833 20.4833 20.1167 20.3 20.3C20.1167 20.4833 19.8833 20.575 19.6 20.575C19.3167 20.575 19.0833 20.4833 18.9 20.3L13.3 14.7C12.8 15.1 12.225 15.4167 11.575 15.65C10.925 15.8833 10.2333 16 9.5 16ZM9.5 14C10.75 14 11.8125 13.5625 12.6875 12.6875C13.5625 11.8125 14 10.75 14 9.5C14 8.25 13.5625 7.1875 12.6875 6.3125C11.8125 5.4375 10.75 5 9.5 5C8.25 5 7.1875 5.4375 6.3125 6.3125C5.4375 7.1875 5 8.25 5 9.5C5 10.75 5.4375 11.8125 6.3125 12.6875C7.1875 13.5625 8.25 14 9.5 14Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n share: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_689\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_689)\">\n <path d=\"M17 22C16.1667 22 15.4583 21.7083 14.875 21.125C14.2917 20.5417 14 19.8333 14 19C14 18.9 14.025 18.6667 14.075 18.3L7.05 14.2C6.78333 14.45 6.475 14.6458 6.125 14.7875C5.775 14.9292 5.4 15 5 15C4.16667 15 3.45833 14.7083 2.875 14.125C2.29167 13.5417 2 12.8333 2 12C2 11.1667 2.29167 10.4583 2.875 9.875C3.45833 9.29167 4.16667 9 5 9C5.4 9 5.775 9.07083 6.125 9.2125C6.475 9.35417 6.78333 9.55 7.05 9.8L14.075 5.7C14.0417 5.58333 14.0208 5.47083 14.0125 5.3625C14.0042 5.25417 14 5.13333 14 5C14 4.16667 14.2917 3.45833 14.875 2.875C15.4583 2.29167 16.1667 2 17 2C17.8333 2 18.5417 2.29167 19.125 2.875C19.7083 3.45833 20 4.16667 20 5C20 5.83333 19.7083 6.54167 19.125 7.125C18.5417 7.70833 17.8333 8 17 8C16.6 8 16.225 7.92917 15.875 7.7875C15.525 7.64583 15.2167 7.45 14.95 7.2L7.925 11.3C7.95833 11.4167 7.97917 11.5292 7.9875 11.6375C7.99583 11.7458 8 11.8667 8 12C8 12.1333 7.99583 12.2542 7.9875 12.3625C7.97917 12.4708 7.95833 12.5833 7.925 12.7L14.95 16.8C15.2167 16.55 15.525 16.3542 15.875 16.2125C16.225 16.0708 16.6 16 17 16C17.8333 16 18.5417 16.2917 19.125 16.875C19.7083 17.4583 20 18.1667 20 19C20 19.8333 19.7083 20.5417 19.125 21.125C18.5417 21.7083 17.8333 22 17 22ZM17 20C17.2833 20 17.5208 19.9042 17.7125 19.7125C17.9042 19.5208 18 19.2833 18 19C18 18.7167 17.9042 18.4792 17.7125 18.2875C17.5208 18.0958 17.2833 18 17 18C16.7167 18 16.4792 18.0958 16.2875 18.2875C16.0958 18.4792 16 18.7167 16 19C16 19.2833 16.0958 19.5208 16.2875 19.7125C16.4792 19.9042 16.7167 20 17 20ZM5 13C5.28333 13 5.52083 12.9042 5.7125 12.7125C5.90417 12.5208 6 12.2833 6 12C6 11.7167 5.90417 11.4792 5.7125 11.2875C5.52083 11.0958 5.28333 11 5 11C4.71667 11 4.47917 11.0958 4.2875 11.2875C4.09583 11.4792 4 11.7167 4 12C4 12.2833 4.09583 12.5208 4.2875 12.7125C4.47917 12.9042 4.71667 13 5 13ZM17 6C17.2833 6 17.5208 5.90417 17.7125 5.7125C17.9042 5.52083 18 5.28333 18 5C18 4.71667 17.9042 4.47917 17.7125 4.2875C17.5208 4.09583 17.2833 4 17 4C16.7167 4 16.4792 4.09583 16.2875 4.2875C16.0958 4.47917 16 4.71667 16 5C16 5.28333 16.0958 5.52083 16.2875 5.7125C16.4792 5.90417 16.7167 6 17 6Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n sms: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_651\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_651)\">\n <path d=\"M6 18L3.7 20.3C3.38333 20.6167 3.02083 20.6875 2.6125 20.5125C2.20417 20.3375 2 20.025 2 19.575V4C2 3.45 2.19583 2.97917 2.5875 2.5875C2.97917 2.19583 3.45 2 4 2H20C20.55 2 21.0208 2.19583 21.4125 2.5875C21.8042 2.97917 22 3.45 22 4V16C22 16.55 21.8042 17.0208 21.4125 17.4125C21.0208 17.8042 20.55 18 20 18H6ZM5.15 16H20V4H4V17.125L5.15 16ZM8 11C8.28333 11 8.52083 10.9042 8.7125 10.7125C8.90417 10.5208 9 10.2833 9 10C9 9.71667 8.90417 9.47917 8.7125 9.2875C8.52083 9.09583 8.28333 9 8 9C7.71667 9 7.47917 9.09583 7.2875 9.2875C7.09583 9.47917 7 9.71667 7 10C7 10.2833 7.09583 10.5208 7.2875 10.7125C7.47917 10.9042 7.71667 11 8 11ZM12 11C12.2833 11 12.5208 10.9042 12.7125 10.7125C12.9042 10.5208 13 10.2833 13 10C13 9.71667 12.9042 9.47917 12.7125 9.2875C12.5208 9.09583 12.2833 9 12 9C11.7167 9 11.4792 9.09583 11.2875 9.2875C11.0958 9.47917 11 9.71667 11 10C11 10.2833 11.0958 10.5208 11.2875 10.7125C11.4792 10.9042 11.7167 11 12 11ZM16 11C16.2833 11 16.5208 10.9042 16.7125 10.7125C16.9042 10.5208 17 10.2833 17 10C17 9.71667 16.9042 9.47917 16.7125 9.2875C16.5208 9.09583 16.2833 9 16 9C15.7167 9 15.4792 9.09583 15.2875 9.2875C15.0958 9.47917 15 9.71667 15 10C15 10.2833 15.0958 10.5208 15.2875 10.7125C15.4792 10.9042 15.7167 11 16 11Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n thumb_down: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_558\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_558)\">\n <path d=\"M3 16C2.46667 16 2 15.8 1.6 15.4C1.2 15 1 14.5333 1 14V12C1 11.8833 1.0125 11.7583 1.0375 11.625C1.0625 11.4917 1.1 11.3667 1.15 11.25L4.15 4.2C4.3 3.86667 4.55 3.58333 4.9 3.35C5.25 3.11667 5.61667 3 6 3H14C14.55 3 15.0208 3.19583 15.4125 3.5875C15.8042 3.97917 16 4.45 16 5V15.175C16 15.4417 15.9458 15.6958 15.8375 15.9375C15.7292 16.1792 15.5833 16.3917 15.4 16.575L9.975 21.975C9.725 22.2083 9.42917 22.35 9.0875 22.4C8.74583 22.45 8.41667 22.3917 8.1 22.225C7.78333 22.0583 7.55417 21.825 7.4125 21.525C7.27083 21.225 7.24167 20.9167 7.325 20.6L8.45 16H3ZM20 3C20.55 3 21.0208 3.19583 21.4125 3.5875C21.8042 3.97917 22 4.45 22 5V14C22 14.55 21.8042 15.0208 21.4125 15.4125C21.0208 15.8042 20.55 16 20 16C19.45 16 18.9792 15.8042 18.5875 15.4125C18.1958 15.0208 18 14.55 18 14V5C18 4.45 18.1958 3.97917 18.5875 3.5875C18.9792 3.19583 19.45 3 20 3Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n thumb_up: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_583\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_583)\">\n <path d=\"M21 8.00007C21.5333 8.00007 22 8.20007 22.4 8.60007C22.8 9.00007 23 9.46674 23 10.0001V12.0001C23 12.1167 22.9875 12.2417 22.9625 12.3751C22.9375 12.5084 22.9 12.6334 22.85 12.7501L19.85 19.8001C19.7 20.1334 19.45 20.4167 19.1 20.6501C18.75 20.8834 18.3833 21.0001 18 21.0001H10C9.45 21.0001 8.97917 20.8042 8.5875 20.4126C8.19583 20.0209 8 19.5501 8 19.0001V8.82507C8 8.5584 8.05417 8.30424 8.1625 8.06257C8.27083 7.82091 8.41667 7.6084 8.6 7.42507L14.025 2.02507C14.275 1.79174 14.5708 1.65007 14.9125 1.60007C15.2542 1.55007 15.5833 1.6084 15.9 1.77507C16.2167 1.94174 16.4458 2.17507 16.5875 2.47507C16.7292 2.77507 16.7583 3.0834 16.675 3.40007L15.55 8.00007H21ZM4 21.0001C3.45 21.0001 2.97917 20.8042 2.5875 20.4126C2.19583 20.0209 2 19.5501 2 19.0001V10.0001C2 9.45007 2.19583 8.97924 2.5875 8.58757C2.97917 8.1959 3.45 8.00007 4 8.00007C4.55 8.00007 5.02083 8.1959 5.4125 8.58757C5.80417 8.97924 6 9.45007 6 10.0001V19.0001C6 19.5501 5.80417 20.0209 5.4125 20.4126C5.02083 20.8042 4.55 21.0001 4 21.0001Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n upload_file: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_596\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_596)\">\n <path d=\"M11 14.825V18C11 18.2833 11.0958 18.5208 11.2875 18.7125C11.4792 18.9042 11.7167 19 12 19C12.2833 19 12.5208 18.9042 12.7125 18.7125C12.9042 18.5208 13 18.2833 13 18V14.825L13.9 15.725C14 15.825 14.1125 15.9 14.2375 15.95C14.3625 16 14.4875 16.0208 14.6125 16.0125C14.7375 16.0042 14.8583 15.975 14.975 15.925C15.0917 15.875 15.2 15.8 15.3 15.7C15.4833 15.5 15.5792 15.2667 15.5875 15C15.5958 14.7333 15.5 14.5 15.3 14.3L12.7 11.7C12.6 11.6 12.4917 11.5292 12.375 11.4875C12.2583 11.4458 12.1333 11.425 12 11.425C11.8667 11.425 11.7417 11.4458 11.625 11.4875C11.5083 11.5292 11.4 11.6 11.3 11.7L8.7 14.3C8.5 14.5 8.40417 14.7333 8.4125 15C8.42083 15.2667 8.525 15.5 8.725 15.7C8.925 15.8833 9.15833 15.9792 9.425 15.9875C9.69167 15.9958 9.925 15.9 10.125 15.7L11 14.825ZM6 22C5.45 22 4.97917 21.8042 4.5875 21.4125C4.19583 21.0208 4 20.55 4 20V4C4 3.45 4.19583 2.97917 4.5875 2.5875C4.97917 2.19583 5.45 2 6 2H13.175C13.4417 2 13.6958 2.05 13.9375 2.15C14.1792 2.25 14.3917 2.39167 14.575 2.575L19.425 7.425C19.6083 7.60833 19.75 7.82083 19.85 8.0625C19.95 8.30417 20 8.55833 20 8.825V20C20 20.55 19.8042 21.0208 19.4125 21.4125C19.0208 21.8042 18.55 22 18 22H6ZM13 8V4H6V20H18V9H14C13.7167 9 13.4792 8.90417 13.2875 8.7125C13.0958 8.52083 13 8.28333 13 8Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n visibility: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_393\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_393)\">\n <path d=\"M12 16C13.25 16 14.3125 15.5625 15.1875 14.6875C16.0625 13.8125 16.5 12.75 16.5 11.5C16.5 10.25 16.0625 9.1875 15.1875 8.3125C14.3125 7.4375 13.25 7 12 7C10.75 7 9.68752 7.4375 8.81252 8.3125C7.93752 9.1875 7.50002 10.25 7.50002 11.5C7.50002 12.75 7.93752 13.8125 8.81252 14.6875C9.68752 15.5625 10.75 16 12 16ZM12 14.2C11.25 14.2 10.6125 13.9375 10.0875 13.4125C9.56252 12.8875 9.30002 12.25 9.30002 11.5C9.30002 10.75 9.56252 10.1125 10.0875 9.5875C10.6125 9.0625 11.25 8.8 12 8.8C12.75 8.8 13.3875 9.0625 13.9125 9.5875C14.4375 10.1125 14.7 10.75 14.7 11.5C14.7 12.25 14.4375 12.8875 13.9125 13.4125C13.3875 13.9375 12.75 14.2 12 14.2ZM12 19C9.76669 19 7.72919 18.4 5.88752 17.2C4.04586 16 2.59169 14.4167 1.52502 12.45C1.44169 12.3 1.37919 12.1458 1.33752 11.9875C1.29586 11.8292 1.27502 11.6667 1.27502 11.5C1.27502 11.3333 1.29586 11.1708 1.33752 11.0125C1.37919 10.8542 1.44169 10.7 1.52502 10.55C2.59169 8.58333 4.04586 7 5.88752 5.8C7.72919 4.6 9.76669 4 12 4C14.2334 4 16.2709 4.6 18.1125 5.8C19.9542 7 21.4084 8.58333 22.475 10.55C22.5584 10.7 22.6209 10.8542 22.6625 11.0125C22.7042 11.1708 22.725 11.3333 22.725 11.5C22.725 11.6667 22.7042 11.8292 22.6625 11.9875C22.6209 12.1458 22.5584 12.3 22.475 12.45C21.4084 14.4167 19.9542 16 18.1125 17.2C16.2709 18.4 14.2334 19 12 19ZM12 17C13.8834 17 15.6125 16.5042 17.1875 15.5125C18.7625 14.5208 19.9667 13.1833 20.8 11.5C19.9667 9.81667 18.7625 8.47917 17.1875 7.4875C15.6125 6.49583 13.8834 6 12 6C10.1167 6 8.38752 6.49583 6.81252 7.4875C5.23752 8.47917 4.03336 9.81667 3.20002 11.5C4.03336 13.1833 5.23752 14.5208 6.81252 15.5125C8.38752 16.5042 10.1167 17 12 17Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>\n`,\n visibility_off: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_398\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_398)\">\n <path d=\"M15.175 8.32498C15.6583 8.80831 16.0125 9.35831 16.2375 9.97498C16.4625 10.5916 16.5417 11.225 16.475 11.875C16.475 12.125 16.3833 12.3375 16.2 12.5125C16.0167 12.6875 15.8 12.775 15.55 12.775C15.3 12.775 15.0875 12.6875 14.9125 12.5125C14.7375 12.3375 14.65 12.125 14.65 11.875C14.7333 11.4416 14.7083 11.025 14.575 10.625C14.4417 10.225 14.2333 9.88331 13.95 9.59998C13.6667 9.31664 13.325 9.09998 12.925 8.94998C12.525 8.79998 12.1 8.76664 11.65 8.84998C11.4 8.84998 11.1875 8.75831 11.0125 8.57498C10.8375 8.39164 10.75 8.17498 10.75 7.92498C10.75 7.67498 10.8375 7.46248 11.0125 7.28748C11.1875 7.11248 11.4 7.02498 11.65 7.02498C12.2833 6.95831 12.9083 7.03748 13.525 7.26248C14.1417 7.48748 14.6917 7.84164 15.175 8.32498ZM12 5.99998C11.6833 5.99998 11.375 6.01248 11.075 6.03748C10.775 6.06248 10.475 6.10831 10.175 6.17498C9.89167 6.22498 9.6375 6.18331 9.4125 6.04998C9.1875 5.91664 9.03333 5.71664 8.95 5.44998C8.86667 5.18331 8.89583 4.92498 9.0375 4.67498C9.17917 4.42498 9.38333 4.27498 9.65 4.22498C10.0333 4.14164 10.4208 4.08331 10.8125 4.04998C11.2042 4.01664 11.6 3.99998 12 3.99998C14.2833 3.99998 16.3708 4.59998 18.2625 5.79998C20.1542 6.99998 21.6 8.61664 22.6 10.65C22.6667 10.7833 22.7167 10.9208 22.75 11.0625C22.7833 11.2041 22.8 11.35 22.8 11.5C22.8 11.65 22.7875 11.7958 22.7625 11.9375C22.7375 12.0791 22.6917 12.2166 22.625 12.35C22.325 13.0166 21.9542 13.6416 21.5125 14.225C21.0708 14.8083 20.5833 15.3416 20.05 15.825C19.85 16.0083 19.6167 16.0833 19.35 16.05C19.0833 16.0166 18.8667 15.8833 18.7 15.65C18.5333 15.4166 18.4625 15.1625 18.4875 14.8875C18.5125 14.6125 18.625 14.3833 18.825 14.2C19.225 13.8166 19.5917 13.4 19.925 12.95C20.2583 12.5 20.55 12.0166 20.8 11.5C19.9667 9.81664 18.7625 8.47914 17.1875 7.48748C15.6125 6.49581 13.8833 5.99998 12 5.99998ZM12 19C9.76667 19 7.725 18.3958 5.875 17.1875C4.025 15.9791 2.56667 14.3916 1.5 12.425C1.41667 12.2916 1.35417 12.1458 1.3125 11.9875C1.27083 11.8291 1.25 11.6666 1.25 11.5C1.25 11.3333 1.26667 11.175 1.3 11.025C1.33333 10.875 1.39167 10.725 1.475 10.575C1.80833 9.90831 2.19583 9.27081 2.6375 8.66248C3.07917 8.05414 3.58333 7.49998 4.15 6.99998L2.075 4.89998C1.89167 4.69998 1.80417 4.46248 1.8125 4.18748C1.82083 3.91248 1.91667 3.68331 2.1 3.49998C2.28333 3.31664 2.51667 3.22498 2.8 3.22498C3.08333 3.22498 3.31667 3.31664 3.5 3.49998L20.5 20.5C20.6833 20.6833 20.7792 20.9125 20.7875 21.1875C20.7958 21.4625 20.7 21.7 20.5 21.9C20.3167 22.0833 20.0833 22.175 19.8 22.175C19.5167 22.175 19.2833 22.0833 19.1 21.9L15.6 18.45C15.0167 18.6333 14.425 18.7708 13.825 18.8625C13.225 18.9541 12.6167 19 12 19ZM5.55 8.39998C5.06667 8.83331 4.625 9.30831 4.225 9.82498C3.825 10.3416 3.48333 10.9 3.2 11.5C4.03333 13.1833 5.2375 14.5208 6.8125 15.5125C8.3875 16.5041 10.1167 17 12 17C12.3333 17 12.6583 16.9791 12.975 16.9375C13.2917 16.8958 13.6167 16.85 13.95 16.8L13.05 15.85C12.8667 15.9 12.6917 15.9375 12.525 15.9625C12.3583 15.9875 12.1833 16 12 16C10.75 16 9.6875 15.5625 8.8125 14.6875C7.9375 13.8125 7.5 12.75 7.5 11.5C7.5 11.3166 7.5125 11.1416 7.5375 10.975C7.5625 10.8083 7.6 10.6333 7.65 10.45L5.55 8.39998Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>\n`,\n notifications: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_409\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_409)\">\n <path d=\"M5 19C4.71667 19 4.47917 18.9042 4.2875 18.7125C4.09583 18.5208 4 18.2833 4 18C4 17.7167 4.09583 17.4792 4.2875 17.2875C4.47917 17.0958 4.71667 17 5 17H6V10C6 8.61667 6.41667 7.3875 7.25 6.3125C8.08333 5.2375 9.16667 4.53333 10.5 4.2V3.5C10.5 3.08333 10.6458 2.72917 10.9375 2.4375C11.2292 2.14583 11.5833 2 12 2C12.4167 2 12.7708 2.14583 13.0625 2.4375C13.3542 2.72917 13.5 3.08333 13.5 3.5V4.2C14.8333 4.53333 15.9167 5.2375 16.75 6.3125C17.5833 7.3875 18 8.61667 18 10V17H19C19.2833 17 19.5208 17.0958 19.7125 17.2875C19.9042 17.4792 20 17.7167 20 18C20 18.2833 19.9042 18.5208 19.7125 18.7125C19.5208 18.9042 19.2833 19 19 19H5ZM12 22C11.45 22 10.9792 21.8042 10.5875 21.4125C10.1958 21.0208 10 20.55 10 20H14C14 20.55 13.8042 21.0208 13.4125 21.4125C13.0208 21.8042 12.55 22 12 22ZM8 17H16V10C16 8.9 15.6083 7.95833 14.825 7.175C14.0417 6.39167 13.1 6 12 6C10.9 6 9.95833 6.39167 9.175 7.175C8.39167 7.95833 8 8.9 8 10V17Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n add: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_14011_362\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_14011_362)\">\n <path d=\"M11 13H6C5.71667 13 5.47917 12.9042 5.2875 12.7125C5.09583 12.5208 5 12.2833 5 12C5 11.7167 5.09583 11.4792 5.2875 11.2875C5.47917 11.0958 5.71667 11 6 11H11V6C11 5.71667 11.0958 5.47917 11.2875 5.2875C11.4792 5.09583 11.7167 5 12 5C12.2833 5 12.5208 5.09583 12.7125 5.2875C12.9042 5.47917 13 5.71667 13 6V11H18C18.2833 11 18.5208 11.0958 18.7125 11.2875C18.9042 11.4792 19 11.7167 19 12C19 12.2833 18.9042 12.5208 18.7125 12.7125C18.5208 12.9042 18.2833 13 18 13H13V18C13 18.2833 12.9042 18.5208 12.7125 18.7125C12.5208 18.9042 12.2833 19 12 19C11.7167 19 11.4792 18.9042 11.2875 18.7125C11.0958 18.5208 11 18.2833 11 18V13Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n remove: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_14011_713\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_14011_713)\">\n <path d=\"M6 13C5.71667 13 5.47917 12.9042 5.2875 12.7125C5.09583 12.5208 5 12.2833 5 12C5 11.7167 5.09583 11.4792 5.2875 11.2875C5.47917 11.0958 5.71667 11 6 11H18C18.2833 11 18.5208 11.0958 18.7125 11.2875C18.9042 11.4792 19 11.7167 19 12C19 12.2833 18.9042 12.5208 18.7125 12.7125C18.5208 12.9042 18.2833 13 18 13H6Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n content_copy: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_525_15\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_525_15)\">\n <path d=\"M9 18C8.45 18 7.97917 17.8042 7.5875 17.4125C7.19583 17.0208 7 16.55 7 16V4C7 3.45 7.19583 2.97917 7.5875 2.5875C7.97917 2.19583 8.45 2 9 2H18C18.55 2 19.0208 2.19583 19.4125 2.5875C19.8042 2.97917 20 3.45 20 4V16C20 16.55 19.8042 17.0208 19.4125 17.4125C19.0208 17.8042 18.55 18 18 18H9ZM9 16H18V4H9V16ZM5 22C4.45 22 3.97917 21.8042 3.5875 21.4125C3.19583 21.0208 3 20.55 3 20V7C3 6.71667 3.09583 6.47917 3.2875 6.2875C3.47917 6.09583 3.71667 6 4 6C4.28333 6 4.52083 6.09583 4.7125 6.2875C4.90417 6.47917 5 6.71667 5 7V20H15C15.2833 20 15.5208 20.0958 15.7125 20.2875C15.9042 20.4792 16 20.7167 16 21C16 21.2833 15.9042 21.5208 15.7125 21.7125C15.5208 21.9042 15.2833 22 15 22H5Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n // *** Arrows *** //\n arrow_back: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_673\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_673)\">\n <path d=\"M7.82505 13L12.725 17.9C12.925 18.1 13.0209 18.3334 13.0125 18.6C13.0042 18.8667 12.9 19.1 12.7 19.3C12.5 19.4834 12.2667 19.5792 12 19.5875C11.7334 19.5959 11.5 19.5 11.3 19.3L4.70005 12.7C4.60005 12.6 4.52922 12.4917 4.48755 12.375C4.44588 12.2584 4.42505 12.1334 4.42505 12C4.42505 11.8667 4.44588 11.7417 4.48755 11.625C4.52922 11.5084 4.60005 11.4 4.70005 11.3L11.3 4.70005C11.4834 4.51672 11.7125 4.42505 11.9875 4.42505C12.2625 4.42505 12.5 4.51672 12.7 4.70005C12.9 4.90005 13 5.13755 13 5.41255C13 5.68755 12.9 5.92505 12.7 6.12505L7.82505 11H19C19.2834 11 19.5209 11.0959 19.7125 11.2875C19.9042 11.4792 20 11.7167 20 12C20 12.2834 19.9042 12.5209 19.7125 12.7125C19.5209 12.9042 19.2834 13 19 13H7.82505Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n arrow_downward: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_7578_114\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_7578_114)\">\n <path d=\"M11 16.175V5C11 4.71667 11.0959 4.47917 11.2875 4.2875C11.4792 4.09583 11.7167 4 12 4C12.2834 4 12.5209 4.09583 12.7125 4.2875C12.9042 4.47917 13 4.71667 13 5V16.175L17.9 11.275C18.1 11.075 18.3334 10.9792 18.6 10.9875C18.8667 10.9958 19.1 11.1 19.3 11.3C19.4834 11.5 19.5792 11.7333 19.5875 12C19.5959 12.2667 19.5 12.5 19.3 12.7L12.7 19.3C12.6 19.4 12.4917 19.4708 12.375 19.5125C12.2584 19.5542 12.1334 19.575 12 19.575C11.8667 19.575 11.7417 19.5542 11.625 19.5125C11.5084 19.4708 11.4 19.4 11.3 19.3L4.70005 12.7C4.51672 12.5167 4.42505 12.2875 4.42505 12.0125C4.42505 11.7375 4.51672 11.5 4.70005 11.3C4.90005 11.1 5.13755 11 5.41255 11C5.68755 11 5.92505 11.1 6.12505 11.3L11 16.175Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n arrow_forward: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_7578_474\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_7578_474)\">\n <path d=\"M16.175 13H5C4.71667 13 4.47917 12.9042 4.2875 12.7125C4.09583 12.5208 4 12.2833 4 12C4 11.7167 4.09583 11.4792 4.2875 11.2875C4.47917 11.0958 4.71667 11 5 11H16.175L11.275 6.1C11.075 5.9 10.9792 5.66667 10.9875 5.4C10.9958 5.13334 11.1 4.9 11.3 4.7C11.5 4.51667 11.7333 4.42084 12 4.4125C12.2667 4.40417 12.5 4.5 12.7 4.7L19.3 11.3C19.4 11.4 19.4708 11.5083 19.5125 11.625C19.5542 11.7417 19.575 11.8667 19.575 12C19.575 12.1333 19.5542 12.2583 19.5125 12.375C19.4708 12.4917 19.4 12.6 19.3 12.7L12.7 19.3C12.5167 19.4833 12.2875 19.575 12.0125 19.575C11.7375 19.575 11.5 19.4833 11.3 19.3C11.1 19.1 11 18.8625 11 18.5875C11 18.3125 11.1 18.075 11.3 17.875L16.175 13Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n arrow_upward: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_7578_90\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_7578_90)\">\n <path d=\"M11 7.825L6.09999 12.725C5.89999 12.925 5.66665 13.0208 5.39999 13.0125C5.13332 13.0042 4.89999 12.9 4.69999 12.7C4.51665 12.5 4.42082 12.2667 4.41249 12C4.40415 11.7333 4.49999 11.5 4.69999 11.3L11.3 4.7C11.4 4.6 11.5083 4.52917 11.625 4.4875C11.7417 4.44584 11.8667 4.425 12 4.425C12.1333 4.425 12.2583 4.44584 12.375 4.4875C12.4917 4.52917 12.6 4.6 12.7 4.7L19.3 11.3C19.4833 11.4833 19.575 11.7125 19.575 11.9875C19.575 12.2625 19.4833 12.5 19.3 12.7C19.1 12.9 18.8625 13 18.5875 13C18.3125 13 18.075 12.9 17.875 12.7L13 7.825V19C13 19.2833 12.9042 19.5208 12.7125 19.7125C12.5208 19.9042 12.2833 20 12 20C11.7167 20 11.4792 19.9042 11.2875 19.7125C11.0958 19.5208 11 19.2833 11 19V7.825Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n height: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_14209_585\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_14209_585)\">\n <path d=\"M11 17.175V6.82505L10.1 7.72505C9.91665 7.90838 9.68749 8.00005 9.41249 8.00005C9.13749 8.00005 8.89999 7.90005 8.69999 7.70005C8.51665 7.51672 8.42499 7.28338 8.42499 7.00005C8.42499 6.71672 8.51665 6.48338 8.69999 6.30005L11.3 3.70005C11.4 3.60005 11.5083 3.52922 11.625 3.48755C11.7417 3.44588 11.8667 3.42505 12 3.42505C12.1333 3.42505 12.2583 3.44588 12.375 3.48755C12.4917 3.52922 12.6 3.60005 12.7 3.70005L15.3 6.30005C15.4833 6.48338 15.575 6.71255 15.575 6.98755C15.575 7.26255 15.4833 7.50005 15.3 7.70005C15.1 7.90005 14.8625 8.00005 14.5875 8.00005C14.3125 8.00005 14.075 7.90005 13.875 7.70005L13 6.82505V17.175L13.9 16.275C14.0833 16.0917 14.3125 16 14.5875 16C14.8625 16 15.1 16.1 15.3 16.3C15.4833 16.4834 15.575 16.7167 15.575 17C15.575 17.2834 15.4833 17.5167 15.3 17.7L12.7 20.3C12.6 20.4 12.4917 20.4709 12.375 20.5125C12.2583 20.5542 12.1333 20.575 12 20.575C11.8667 20.575 11.7417 20.5542 11.625 20.5125C11.5083 20.4709 11.4 20.4 11.3 20.3L8.69999 17.7C8.51665 17.5167 8.42082 17.2875 8.41249 17.0125C8.40415 16.7375 8.49999 16.5 8.69999 16.3C8.88332 16.1167 9.11665 16.025 9.39999 16.025C9.68332 16.025 9.91665 16.1167 10.1 16.3L11 17.175Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n straight: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n<mask id=\"mask0_14209_599\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n<rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n</mask>\n<g mask=\"url(#mask0_14209_599)\">\n<path d=\"M11 6.8249L10.1 7.7249C9.91672 7.90824 9.68755 7.9999 9.41255 7.9999C9.13755 7.9999 8.90005 7.8999 8.70005 7.6999C8.51672 7.51657 8.42505 7.28324 8.42505 6.9999C8.42505 6.71657 8.51672 6.48324 8.70005 6.2999L11.3 3.6999C11.5 3.4999 11.7334 3.3999 12 3.3999C12.2667 3.3999 12.5 3.4999 12.7 3.6999L15.3 6.2999C15.4834 6.48324 15.5792 6.7124 15.5875 6.9874C15.5959 7.2624 15.5 7.4999 15.3 7.6999C15.1167 7.88324 14.8834 7.9749 14.6 7.9749C14.3167 7.9749 14.0834 7.88324 13.9 7.6999L13 6.8249V19.9999C13 20.2832 12.9042 20.5207 12.7125 20.7124C12.5209 20.9041 12.2834 20.9999 12 20.9999C11.7167 20.9999 11.4792 20.9041 11.2875 20.7124C11.0959 20.5207 11 20.2832 11 19.9999V6.8249Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n</g>\n</svg>`,\n // *** Chevrons *** //\n chevron_down: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_190\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_190)\">\n <path d=\"M12 14.725L19.35 7.375C19.6 7.125 19.8917 7.00417 20.225 7.0125C20.5583 7.02083 20.85 7.15 21.1 7.4C21.35 7.65 21.475 7.94167 21.475 8.275C21.475 8.60833 21.35 8.9 21.1 9.15L13.425 16.85C13.225 17.05 13 17.2 12.75 17.3C12.5 17.4 12.25 17.45 12 17.45C11.75 17.45 11.5 17.4 11.25 17.3C11 17.2 10.775 17.05 10.575 16.85L2.87499 9.15C2.62499 8.9 2.50415 8.60417 2.51249 8.2625C2.52082 7.92083 2.64999 7.625 2.89999 7.375C3.14999 7.125 3.44165 7 3.77499 7C4.10832 7 4.39999 7.125 4.64999 7.375L12 14.725Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n chevron_up: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_435\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_435)\">\n <path d=\"M12 9.82485L4.65002 17.1749C4.40002 17.4249 4.10836 17.5457 3.77502 17.5374C3.44169 17.529 3.15002 17.3999 2.90002 17.1499C2.65002 16.8999 2.52502 16.6082 2.52502 16.2749C2.52502 15.9415 2.65002 15.6499 2.90002 15.3999L10.575 7.69985C10.775 7.49985 11 7.34985 11.25 7.24985C11.5 7.14985 11.75 7.09985 12 7.09985C12.25 7.09985 12.5 7.14985 12.75 7.24985C13 7.34985 13.225 7.49985 13.425 7.69985L21.125 15.3999C21.375 15.6499 21.4959 15.9457 21.4875 16.2874C21.4792 16.629 21.35 16.9249 21.1 17.1749C20.85 17.4249 20.5584 17.5499 20.225 17.5499C19.8917 17.5499 19.6 17.4249 19.35 17.1749L12 9.82485Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n chevron_left: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_376\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_376)\">\n <path d=\"M9.54995 12.0001L16.9 19.3501C17.15 19.6001 17.2708 19.8918 17.2625 20.2251C17.2541 20.5584 17.125 20.8501 16.875 21.1001C16.625 21.3501 16.3333 21.4751 16 21.4751C15.6666 21.4751 15.375 21.3501 15.125 21.1001L7.42495 13.4251C7.22495 13.2251 7.07495 13.0001 6.97495 12.7501C6.87495 12.5001 6.82495 12.2501 6.82495 12.0001C6.82495 11.7501 6.87495 11.5001 6.97495 11.2501C7.07495 11.0001 7.22495 10.7751 7.42495 10.5751L15.125 2.87511C15.375 2.62511 15.6708 2.50428 16.0125 2.51261C16.3541 2.52094 16.65 2.65011 16.9 2.90011C17.15 3.15011 17.275 3.44178 17.275 3.77511C17.275 4.10844 17.15 4.40011 16.9 4.65011L9.54995 12.0001Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n chevron_right: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_247\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_247)\">\n <path d=\"M14.7238 12.4865L7.37494 19.8353C7.12498 20.0853 7.00417 20.3769 7.0125 20.7102C7.02083 21.0435 7.14998 21.3351 7.39994 21.5851C7.6499 21.835 7.94152 21.96 8.2748 21.96C8.60809 21.96 8.89971 21.835 9.14967 21.5851L16.8485 13.9112C17.0485 13.7113 17.1984 13.4863 17.2984 13.2363C17.3984 12.9864 17.4484 12.7364 17.4484 12.4865C17.4484 12.2365 17.3984 11.9865 17.2984 11.7366C17.1984 11.4866 17.0485 11.2616 16.8485 11.0617L9.14967 3.36285C8.89971 3.11289 8.60392 2.99207 8.26231 3.0004C7.92069 3.00874 7.6249 3.13788 7.37494 3.38784C7.12498 3.63781 7 3.92943 7 4.26271C7 4.59599 7.12498 4.88761 7.37494 5.13758L14.7238 12.4865Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n // *** Environmental *** //\n ac_unit: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_444\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_444)\">\n <path d=\"M11 17.85L8.425 20.375C8.24167 20.5583 8.0125 20.65 7.7375 20.65C7.4625 20.65 7.23333 20.55 7.05 20.35C6.85 20.1667 6.75 19.9375 6.75 19.6625C6.75 19.3875 6.85 19.15 7.05 18.95L11 15V13H9L5.025 16.975C4.84167 17.1583 4.6125 17.25 4.3375 17.25C4.0625 17.25 3.825 17.15 3.625 16.95C3.44167 16.7667 3.35 16.5375 3.35 16.2625C3.35 15.9875 3.44167 15.7583 3.625 15.575L6.15 13H2.975C2.69167 13 2.45833 12.9042 2.275 12.7125C2.09167 12.5208 2 12.2833 2 12C2 11.7167 2.09583 11.4792 2.2875 11.2875C2.47917 11.0958 2.71667 11 3 11H6.15L3.625 8.45C3.44167 8.26667 3.35 8.0375 3.35 7.7625C3.35 7.4875 3.45 7.25 3.65 7.05C3.83333 6.86667 4.0625 6.775 4.3375 6.775C4.6125 6.775 4.85 6.86667 5.05 7.05L9 11H11V9L7.025 5.05C6.84167 4.86667 6.75 4.6375 6.75 4.3625C6.75 4.0875 6.85 3.85 7.05 3.65C7.23333 3.46667 7.4625 3.375 7.7375 3.375C8.0125 3.375 8.24167 3.46667 8.425 3.65L11 6.15V3C11 2.71667 11.0958 2.47917 11.2875 2.2875C11.4792 2.09583 11.7167 2 12 2C12.2833 2 12.5208 2.09583 12.7125 2.2875C12.9042 2.47917 13 2.71667 13 3V6.15L15.55 3.65C15.7333 3.46667 15.9625 3.375 16.2375 3.375C16.5125 3.375 16.75 3.46667 16.95 3.65C17.1333 3.85 17.225 4.0875 17.225 4.3625C17.225 4.6375 17.1333 4.86667 16.95 5.05L13 9V11H15L18.95 7.05C19.1333 6.86667 19.3625 6.775 19.6375 6.775C19.9125 6.775 20.15 6.875 20.35 7.075C20.5333 7.25833 20.625 7.4875 20.625 7.7625C20.625 8.0375 20.5333 8.26667 20.35 8.45L17.85 11H21C21.2833 11 21.5208 11.0958 21.7125 11.2875C21.9042 11.4792 22 11.7167 22 12C22 12.2833 21.9042 12.5208 21.7125 12.7125C21.5208 12.9042 21.2833 13 21 13H17.85L20.35 15.575C20.5333 15.7583 20.625 15.9875 20.625 16.2625C20.625 16.5375 20.5333 16.7667 20.35 16.95C20.15 17.15 19.9125 17.25 19.6375 17.25C19.3625 17.25 19.1333 17.15 18.95 16.95L15 13H13V15L16.95 18.975C17.1333 19.1583 17.225 19.3875 17.225 19.6625C17.225 19.9375 17.125 20.175 16.925 20.375C16.7417 20.5583 16.5125 20.65 16.2375 20.65C15.9625 20.65 15.7333 20.5583 15.55 20.375L13 17.85V21.025C13 21.3083 12.9042 21.5417 12.7125 21.725C12.5208 21.9083 12.2833 22 12 22C11.7167 22 11.4792 21.9042 11.2875 21.7125C11.0958 21.5208 11 21.2833 11 21V17.85Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n air: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_423\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_423)\">\n <path d=\"M11.5 20C10.9667 20 10.4708 19.8667 10.0125 19.6C9.55417 19.3333 9.18333 18.9667 8.9 18.5C8.71667 18.1667 8.7125 17.8333 8.8875 17.5C9.0625 17.1667 9.33333 17 9.7 17C9.91667 17 10.1083 17.0667 10.275 17.2C10.4417 17.3333 10.5917 17.4833 10.725 17.65C10.8083 17.7667 10.9208 17.8542 11.0625 17.9125C11.2042 17.9708 11.35 18 11.5 18C11.7833 18 12.0208 17.9042 12.2125 17.7125C12.4042 17.5208 12.5 17.2833 12.5 17C12.5 16.7167 12.4042 16.4792 12.2125 16.2875C12.0208 16.0958 11.7833 16 11.5 16H3C2.71667 16 2.47917 15.9042 2.2875 15.7125C2.09583 15.5208 2 15.2833 2 15C2 14.7167 2.09583 14.4792 2.2875 14.2875C2.47917 14.0958 2.71667 14 3 14H11.5C12.3333 14 13.0417 14.2917 13.625 14.875C14.2083 15.4583 14.5 16.1667 14.5 17C14.5 17.8333 14.2083 18.5417 13.625 19.125C13.0417 19.7083 12.3333 20 11.5 20ZM3 10C2.71667 10 2.47917 9.90417 2.2875 9.7125C2.09583 9.52083 2 9.28333 2 9C2 8.71667 2.09583 8.47917 2.2875 8.2875C2.47917 8.09583 2.71667 8 3 8H15.5C15.9167 8 16.2708 7.85417 16.5625 7.5625C16.8542 7.27083 17 6.91667 17 6.5C17 6.08333 16.8542 5.72917 16.5625 5.4375C16.2708 5.14583 15.9167 5 15.5 5C15.2333 5 14.9833 5.0625 14.75 5.1875C14.5167 5.3125 14.3333 5.49167 14.2 5.725C14.0833 5.925 13.9417 6.10417 13.775 6.2625C13.6083 6.42083 13.4083 6.5 13.175 6.5C12.8417 6.5 12.5708 6.375 12.3625 6.125C12.1542 5.875 12.1 5.60833 12.2 5.325C12.4333 4.625 12.8542 4.0625 13.4625 3.6375C14.0708 3.2125 14.75 3 15.5 3C16.4667 3 17.2917 3.34167 17.975 4.025C18.6583 4.70833 19 5.53333 19 6.5C19 7.46667 18.6583 8.29167 17.975 8.975C17.2917 9.65833 16.4667 10 15.5 10H3ZM19.95 17.7C19.6167 17.85 19.2917 17.8292 18.975 17.6375C18.6583 17.4458 18.5 17.1667 18.5 16.8C18.5 16.5667 18.5792 16.3708 18.7375 16.2125C18.8958 16.0542 19.075 15.9167 19.275 15.8C19.5083 15.6667 19.6875 15.4833 19.8125 15.25C19.9375 15.0167 20 14.7667 20 14.5C20 14.0833 19.8542 13.7292 19.5625 13.4375C19.2708 13.1458 18.9167 13 18.5 13H3C2.71667 13 2.47917 12.9042 2.2875 12.7125C2.09583 12.5208 2 12.2833 2 12C2 11.7167 2.09583 11.4792 2.2875 11.2875C2.47917 11.0958 2.71667 11 3 11H18.5C19.4667 11 20.2917 11.3417 20.975 12.025C21.6583 12.7083 22 13.5333 22 14.5C22 15.2 21.8167 15.8375 21.45 16.4125C21.0833 16.9875 20.5833 17.4167 19.95 17.7Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n clear_day: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_705\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_705)\">\n <path d=\"M12 5C11.7167 5 11.4792 4.90417 11.2875 4.7125C11.0958 4.52083 11 4.28333 11 4V2C11 1.71667 11.0958 1.47917 11.2875 1.2875C11.4792 1.09583 11.7167 1 12 1C12.2833 1 12.5208 1.09583 12.7125 1.2875C12.9042 1.47917 13 1.71667 13 2V4C13 4.28333 12.9042 4.52083 12.7125 4.7125C12.5208 4.90417 12.2833 5 12 5ZM16.95 7.05C16.7667 6.86667 16.675 6.6375 16.675 6.3625C16.675 6.0875 16.7667 5.85 16.95 5.65L18.35 4.225C18.55 4.025 18.7875 3.925 19.0625 3.925C19.3375 3.925 19.575 4.025 19.775 4.225C19.9583 4.40833 20.05 4.64167 20.05 4.925C20.05 5.20833 19.9583 5.44167 19.775 5.625L18.35 7.05C18.1667 7.23333 17.9333 7.325 17.65 7.325C17.3667 7.325 17.1333 7.23333 16.95 7.05ZM20 13C19.7167 13 19.4792 12.9042 19.2875 12.7125C19.0958 12.5208 19 12.2833 19 12C19 11.7167 19.0958 11.4792 19.2875 11.2875C19.4792 11.0958 19.7167 11 20 11H22C22.2833 11 22.5208 11.0958 22.7125 11.2875C22.9042 11.4792 23 11.7167 23 12C23 12.2833 22.9042 12.5208 22.7125 12.7125C22.5208 12.9042 22.2833 13 22 13H20ZM12 23C11.7167 23 11.4792 22.9042 11.2875 22.7125C11.0958 22.5208 11 22.2833 11 22V20C11 19.7167 11.0958 19.4792 11.2875 19.2875C11.4792 19.0958 11.7167 19 12 19C12.2833 19 12.5208 19.0958 12.7125 19.2875C12.9042 19.4792 13 19.7167 13 20V22C13 22.2833 12.9042 22.5208 12.7125 22.7125C12.5208 22.9042 12.2833 23 12 23ZM5.65 7.05L4.225 5.65C4.025 5.45 3.925 5.20833 3.925 4.925C3.925 4.64167 4.025 4.40833 4.225 4.225C4.40833 4.04167 4.64167 3.95 4.925 3.95C5.20833 3.95 5.44167 4.04167 5.625 4.225L7.05 5.65C7.23333 5.83333 7.325 6.06667 7.325 6.35C7.325 6.63333 7.23333 6.86667 7.05 7.05C6.85 7.23333 6.61667 7.325 6.35 7.325C6.08333 7.325 5.85 7.23333 5.65 7.05ZM18.35 19.775L16.95 18.35C16.7667 18.15 16.675 17.9125 16.675 17.6375C16.675 17.3625 16.7667 17.1333 16.95 16.95C17.1333 16.7667 17.3625 16.675 17.6375 16.675C17.9125 16.675 18.15 16.7667 18.35 16.95L19.775 18.35C19.975 18.5333 20.0708 18.7667 20.0625 19.05C20.0542 19.3333 19.9583 19.575 19.775 19.775C19.575 19.975 19.3333 20.075 19.05 20.075C18.7667 20.075 18.5333 19.975 18.35 19.775ZM2 13C1.71667 13 1.47917 12.9042 1.2875 12.7125C1.09583 12.5208 1 12.2833 1 12C1 11.7167 1.09583 11.4792 1.2875 11.2875C1.47917 11.0958 1.71667 11 2 11H4C4.28333 11 4.52083 11.0958 4.7125 11.2875C4.90417 11.4792 5 11.7167 5 12C5 12.2833 4.90417 12.5208 4.7125 12.7125C4.52083 12.9042 4.28333 13 4 13H2ZM4.225 19.775C4.04167 19.5917 3.95 19.3583 3.95 19.075C3.95 18.7917 4.04167 18.5583 4.225 18.375L5.65 16.95C5.83333 16.7667 6.0625 16.675 6.3375 16.675C6.6125 16.675 6.85 16.7667 7.05 16.95C7.25 17.15 7.35 17.3875 7.35 17.6625C7.35 17.9375 7.25 18.175 7.05 18.375L5.65 19.775C5.45 19.975 5.20833 20.075 4.925 20.075C4.64167 20.075 4.40833 19.975 4.225 19.775ZM12 18C10.3333 18 8.91667 17.4167 7.75 16.25C6.58333 15.0833 6 13.6667 6 12C6 10.3333 6.58333 8.91667 7.75 7.75C8.91667 6.58333 10.3333 6 12 6C13.6667 6 15.0833 6.58333 16.25 7.75C17.4167 8.91667 18 10.3333 18 12C18 13.6667 17.4167 15.0833 16.25 16.25C15.0833 17.4167 13.6667 18 12 18ZM12 16C13.1 16 14.0417 15.6083 14.825 14.825C15.6083 14.0417 16 13.1 16 12C16 10.9 15.6083 9.95833 14.825 9.175C14.0417 8.39167 13.1 8 12 8C10.9 8 9.95833 8.39167 9.175 9.175C8.39167 9.95833 8 10.9 8 12C8 13.1 8.39167 14.0417 9.175 14.825C9.95833 15.6083 10.9 16 12 16Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n coronavirus: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_778\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_778)\">\n <path d=\"M11.25 22C11.05 22 10.875 21.925 10.725 21.775C10.575 21.625 10.5 21.45 10.5 21.25C10.5 21.05 10.575 20.875 10.725 20.725C10.875 20.575 11.05 20.5 11.25 20.5V18.95C10.55 18.8667 9.89167 18.7 9.275 18.45C8.65833 18.2 8.1 17.8667 7.6 17.45L6.525 18.55C6.675 18.7 6.75 18.875 6.75 19.075C6.75 19.275 6.675 19.45 6.525 19.6C6.375 19.75 6.2 19.825 6 19.825C5.8 19.825 5.625 19.75 5.475 19.6L4.4 18.55C4.25 18.4 4.175 18.2208 4.175 18.0125C4.175 17.8042 4.25 17.625 4.4 17.475C4.55 17.325 4.725 17.2542 4.925 17.2625C5.125 17.2708 5.3 17.3417 5.45 17.475L6.55 16.375C6.13333 15.8583 5.8 15.3 5.55 14.7C5.3 14.1 5.13333 13.45 5.05 12.75H3.5C3.5 12.95 3.425 13.125 3.275 13.275C3.125 13.425 2.95 13.5 2.75 13.5C2.55 13.5 2.375 13.425 2.225 13.275C2.075 13.125 2 12.95 2 12.75V11.25C2 11.05 2.075 10.875 2.225 10.725C2.375 10.575 2.55 10.5 2.75 10.5C2.95 10.5 3.125 10.575 3.275 10.725C3.425 10.875 3.5 11.05 3.5 11.25H5.05C5.13333 10.55 5.30417 9.9 5.5625 9.3C5.82083 8.7 6.15 8.14167 6.55 7.625L5.45 6.525C5.3 6.65833 5.125 6.72917 4.925 6.7375C4.725 6.74583 4.55 6.675 4.4 6.525C4.25 6.375 4.175 6.19583 4.175 5.9875C4.175 5.77917 4.25 5.6 4.4 5.45L5.45 4.4C5.6 4.25 5.77917 4.175 5.9875 4.175C6.19583 4.175 6.375 4.25 6.525 4.4C6.675 4.55 6.75 4.72917 6.75 4.9375C6.75 5.14583 6.675 5.325 6.525 5.475L7.6 6.55C8.11667 6.13333 8.675 5.8 9.275 5.55C9.875 5.3 10.525 5.13333 11.225 5.05V3.5C11.025 3.5 10.8542 3.425 10.7125 3.275C10.5708 3.125 10.5 2.95 10.5 2.75C10.5 2.55 10.575 2.375 10.725 2.225C10.875 2.075 11.05 2 11.25 2H12.75C12.95 2 13.125 2.075 13.275 2.225C13.425 2.375 13.5 2.55 13.5 2.75C13.5 2.95 13.425 3.125 13.275 3.275C13.125 3.425 12.95 3.5 12.75 3.5V5.05C13.45 5.13333 14.1 5.3 14.7 5.55C15.3 5.8 15.8583 6.13333 16.375 6.55L17.475 5.45C17.325 5.3 17.25 5.125 17.25 4.925C17.25 4.725 17.325 4.55 17.475 4.4C17.625 4.25 17.8042 4.175 18.0125 4.175C18.2208 4.175 18.4 4.25 18.55 4.4L19.6 5.475C19.75 5.625 19.825 5.8 19.825 6C19.825 6.2 19.75 6.375 19.6 6.525C19.45 6.675 19.2708 6.75 19.0625 6.75C18.8542 6.75 18.675 6.675 18.525 6.525L17.45 7.6C17.8667 8.11667 18.2 8.67917 18.45 9.2875C18.7 9.89583 18.8667 10.55 18.95 11.25H20.5C20.5 11.05 20.575 10.875 20.725 10.725C20.875 10.575 21.05 10.5 21.25 10.5C21.45 10.5 21.625 10.575 21.775 10.725C21.925 10.875 22 11.05 22 11.25V12.75C22 12.95 21.925 13.125 21.775 13.275C21.625 13.425 21.45 13.5 21.25 13.5C21.05 13.5 20.875 13.425 20.725 13.275C20.575 13.125 20.5 12.95 20.5 12.75H18.95C18.8667 13.45 18.7 14.1042 18.45 14.7125C18.2 15.3208 17.8667 15.8833 17.45 16.4L18.525 17.475C18.675 17.325 18.8542 17.25 19.0625 17.25C19.2708 17.25 19.45 17.325 19.6 17.475C19.75 17.625 19.825 17.8042 19.825 18.0125C19.825 18.2208 19.75 18.4 19.6 18.55L18.55 19.6C18.4 19.75 18.2208 19.825 18.0125 19.825C17.8042 19.825 17.625 19.75 17.475 19.6C17.325 19.45 17.2542 19.275 17.2625 19.075C17.2708 18.875 17.3417 18.7 17.475 18.55L16.375 17.45C15.8583 17.8667 15.3 18.2042 14.7 18.4625C14.1 18.7208 13.45 18.8917 12.75 18.975V20.5C12.95 20.5 13.125 20.575 13.275 20.725C13.425 20.875 13.5 21.05 13.5 21.25C13.5 21.45 13.425 21.625 13.275 21.775C13.125 21.925 12.95 22 12.75 22H11.25ZM12 17C13.3833 17 14.5625 16.5125 15.5375 15.5375C16.5125 14.5625 17 13.3833 17 12C17 10.6167 16.5125 9.4375 15.5375 8.4625C14.5625 7.4875 13.3833 7 12 7C10.6167 7 9.4375 7.4875 8.4625 8.4625C7.4875 9.4375 7 10.6167 7 12C7 13.3833 7.4875 14.5625 8.4625 15.5375C9.4375 16.5125 10.6167 17 12 17ZM10.25 16C10.5333 16 10.7708 15.9042 10.9625 15.7125C11.1542 15.5208 11.25 15.2833 11.25 15C11.25 14.7167 11.1542 14.4792 10.9625 14.2875C10.7708 14.0958 10.5333 14 10.25 14C9.96667 14 9.72917 14.0958 9.5375 14.2875C9.34583 14.4792 9.25 14.7167 9.25 15C9.25 15.2833 9.34583 15.5208 9.5375 15.7125C9.72917 15.9042 9.96667 16 10.25 16ZM13.75 16C14.0333 16 14.2708 15.9042 14.4625 15.7125C14.6542 15.5208 14.75 15.2833 14.75 15C14.75 14.7167 14.6542 14.4792 14.4625 14.2875C14.2708 14.0958 14.0333 14 13.75 14C13.4667 14 13.2292 14.0958 13.0375 14.2875C12.8458 14.4792 12.75 14.7167 12.75 15C12.75 15.2833 12.8458 15.5208 13.0375 15.7125C13.2292 15.9042 13.4667 16 13.75 16ZM8.5 13C8.78333 13 9.02083 12.9042 9.2125 12.7125C9.40417 12.5208 9.5 12.2833 9.5 12C9.5 11.7167 9.40417 11.4792 9.2125 11.2875C9.02083 11.0958 8.78333 11 8.5 11C8.21667 11 7.97917 11.0958 7.7875 11.2875C7.59583 11.4792 7.5 11.7167 7.5 12C7.5 12.2833 7.59583 12.5208 7.7875 12.7125C7.97917 12.9042 8.21667 13 8.5 13ZM12 13C12.2833 13 12.5208 12.9042 12.7125 12.7125C12.9042 12.5208 13 12.2833 13 12C13 11.7167 12.9042 11.4792 12.7125 11.2875C12.5208 11.0958 12.2833 11 12 11C11.7167 11 11.4792 11.0958 11.2875 11.2875C11.0958 11.4792 11 11.7167 11 12C11 12.2833 11.0958 12.5208 11.2875 12.7125C11.4792 12.9042 11.7167 13 12 13ZM15.5 13C15.7833 13 16.0208 12.9042 16.2125 12.7125C16.4042 12.5208 16.5 12.2833 16.5 12C16.5 11.7167 16.4042 11.4792 16.2125 11.2875C16.0208 11.0958 15.7833 11 15.5 11C15.2167 11 14.9792 11.0958 14.7875 11.2875C14.5958 11.4792 14.5 11.7167 14.5 12C14.5 12.2833 14.5958 12.5208 14.7875 12.7125C14.9792 12.9042 15.2167 13 15.5 13ZM10.25 10C10.5333 10 10.7708 9.90417 10.9625 9.7125C11.1542 9.52083 11.25 9.28333 11.25 9C11.25 8.71667 11.1542 8.47917 10.9625 8.2875C10.7708 8.09583 10.5333 8 10.25 8C9.96667 8 9.72917 8.09583 9.5375 8.2875C9.34583 8.47917 9.25 8.71667 9.25 9C9.25 9.28333 9.34583 9.52083 9.5375 9.7125C9.72917 9.90417 9.96667 10 10.25 10ZM13.75 10C14.0333 10 14.2708 9.90417 14.4625 9.7125C14.6542 9.52083 14.75 9.28333 14.75 9C14.75 8.71667 14.6542 8.47917 14.4625 8.2875C14.2708 8.09583 14.0333 8 13.75 8C13.4667 8 13.2292 8.09583 13.0375 8.2875C12.8458 8.47917 12.75 8.71667 12.75 9C12.75 9.28333 12.8458 9.52083 13.0375 9.7125C13.2292 9.90417 13.4667 10 13.75 10Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n rainy: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_566\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_566)\">\n <path d=\"M13.95 21.9C13.7 22.0333 13.4458 22.0542 13.1875 21.9625C12.9292 21.8708 12.7333 21.7 12.6 21.45L11.1 18.45C10.9667 18.2 10.9458 17.9458 11.0375 17.6875C11.1292 17.4292 11.3 17.2333 11.55 17.1C11.8 16.9667 12.0542 16.9458 12.3125 17.0375C12.5708 17.1292 12.7667 17.3 12.9 17.55L14.4 20.55C14.5333 20.8 14.5542 21.0542 14.4625 21.3125C14.3708 21.5708 14.2 21.7667 13.95 21.9ZM19.95 21.9C19.7 22.0333 19.4458 22.0542 19.1875 21.9625C18.9292 21.8708 18.7333 21.7 18.6 21.45L17.1 18.45C16.9667 18.2 16.9458 17.9458 17.0375 17.6875C17.1292 17.4292 17.3 17.2333 17.55 17.1C17.8 16.9667 18.0542 16.9458 18.3125 17.0375C18.5708 17.1292 18.7667 17.3 18.9 17.55L20.4 20.55C20.5333 20.8 20.5542 21.0542 20.4625 21.3125C20.3708 21.5708 20.2 21.7667 19.95 21.9ZM7.95 21.9C7.7 22.0333 7.44583 22.0542 7.1875 21.9625C6.92917 21.8708 6.73333 21.7 6.6 21.45L5.1 18.45C4.96667 18.2 4.94583 17.9458 5.0375 17.6875C5.12917 17.4292 5.3 17.2333 5.55 17.1C5.8 16.9667 6.05417 16.9458 6.3125 17.0375C6.57083 17.1292 6.76667 17.3 6.9 17.55L8.4 20.55C8.53333 20.8 8.55417 21.0542 8.4625 21.3125C8.37083 21.5708 8.2 21.7667 7.95 21.9ZM7.5 16C5.98333 16 4.6875 15.4625 3.6125 14.3875C2.5375 13.3125 2 12.0167 2 10.5C2 9.11667 2.45833 7.90833 3.375 6.875C4.29167 5.84167 5.425 5.23333 6.775 5.05C7.30833 4.1 8.0375 3.35417 8.9625 2.8125C9.8875 2.27083 10.9 2 12 2C13.5 2 14.8042 2.47917 15.9125 3.4375C17.0208 4.39583 17.6917 5.59167 17.925 7.025C19.075 7.125 20.0417 7.6 20.825 8.45C21.6083 9.3 22 10.3167 22 11.5C22 12.75 21.5625 13.8125 20.6875 14.6875C19.8125 15.5625 18.75 16 17.5 16H7.5ZM7.5 14H17.5C18.2 14 18.7917 13.7583 19.275 13.275C19.7583 12.7917 20 12.2 20 11.5C20 10.8 19.7583 10.2083 19.275 9.725C18.7917 9.24167 18.2 9 17.5 9H16V8C16 6.9 15.6083 5.95833 14.825 5.175C14.0417 4.39167 13.1 4 12 4C11.2 4 10.4708 4.21667 9.8125 4.65C9.15417 5.08333 8.65833 5.66667 8.325 6.4L8.075 7H7.45C6.5 7.03333 5.6875 7.3875 5.0125 8.0625C4.3375 8.7375 4 9.55 4 10.5C4 11.4667 4.34167 12.2917 5.025 12.975C5.70833 13.6583 6.53333 14 7.5 14Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n // *** Intent *** //\n check_circle: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_373\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_373)\">\n <path d=\"M10.6 13.8L8.45 11.65C8.26667 11.4667 8.03333 11.375 7.75 11.375C7.46667 11.375 7.23333 11.4667 7.05 11.65C6.86667 11.8333 6.775 12.0667 6.775 12.35C6.775 12.6333 6.86667 12.8667 7.05 13.05L9.9 15.9C10.1 16.1 10.3333 16.2 10.6 16.2C10.8667 16.2 11.1 16.1 11.3 15.9L16.95 10.25C17.1333 10.0667 17.225 9.83333 17.225 9.55C17.225 9.26667 17.1333 9.03333 16.95 8.85C16.7667 8.66667 16.5333 8.575 16.25 8.575C15.9667 8.575 15.7333 8.66667 15.55 8.85L10.6 13.8ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n emergency_home: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_416\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_416)\">\n <path d=\"M12 22.0251C11.7333 22.0251 11.4791 21.9751 11.2375 21.8751C10.9958 21.7751 10.775 21.6334 10.575 21.4501L2.54998 13.4251C2.36664 13.2251 2.22498 13.0043 2.12498 12.7626C2.02498 12.5209 1.97498 12.2668 1.97498 12.0001C1.97498 11.7334 2.02498 11.4751 2.12498 11.2251C2.22498 10.9751 2.36664 10.7584 2.54998 10.5751L10.575 2.5501C10.775 2.3501 10.9958 2.20426 11.2375 2.1126C11.4791 2.02093 11.7333 1.9751 12 1.9751C12.2666 1.9751 12.525 2.02093 12.775 2.1126C13.025 2.20426 13.2416 2.3501 13.425 2.5501L21.45 10.5751C21.65 10.7584 21.7958 10.9751 21.8875 11.2251C21.9791 11.4751 22.025 11.7334 22.025 12.0001C22.025 12.2668 21.9791 12.5209 21.8875 12.7626C21.7958 13.0043 21.65 13.2251 21.45 13.4251L13.425 21.4501C13.2416 21.6334 13.025 21.7751 12.775 21.8751C12.525 21.9751 12.2666 22.0251 12 22.0251ZM12 20.0251L20.025 12.0001L12 3.9751L3.97498 12.0001L12 20.0251ZM12 13.0001C12.2833 13.0001 12.5208 12.9043 12.7125 12.7126C12.9041 12.5209 13 12.2834 13 12.0001V8.0001C13 7.71676 12.9041 7.47926 12.7125 7.2876C12.5208 7.09593 12.2833 7.0001 12 7.0001C11.7166 7.0001 11.4791 7.09593 11.2875 7.2876C11.0958 7.47926 11 7.71676 11 8.0001V12.0001C11 12.2834 11.0958 12.5209 11.2875 12.7126C11.4791 12.9043 11.7166 13.0001 12 13.0001ZM12 16.0001C12.2833 16.0001 12.5208 15.9043 12.7125 15.7126C12.9041 15.5209 13 15.2834 13 15.0001C13 14.7168 12.9041 14.4793 12.7125 14.2876C12.5208 14.0959 12.2833 14.0001 12 14.0001C11.7166 14.0001 11.4791 14.0959 11.2875 14.2876C11.0958 14.4793 11 14.7168 11 15.0001C11 15.2834 11.0958 15.5209 11.2875 15.7126C11.4791 15.9043 11.7166 16.0001 12 16.0001Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n error: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_472\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_472)\">\n <path d=\"M12 17C12.2833 17 12.5208 16.9042 12.7125 16.7125C12.9042 16.5208 13 16.2833 13 16C13 15.7167 12.9042 15.4792 12.7125 15.2875C12.5208 15.0958 12.2833 15 12 15C11.7167 15 11.4792 15.0958 11.2875 15.2875C11.0958 15.4792 11 15.7167 11 16C11 16.2833 11.0958 16.5208 11.2875 16.7125C11.4792 16.9042 11.7167 17 12 17ZM12 13C12.2833 13 12.5208 12.9042 12.7125 12.7125C12.9042 12.5208 13 12.2833 13 12V8C13 7.71667 12.9042 7.47917 12.7125 7.2875C12.5208 7.09583 12.2833 7 12 7C11.7167 7 11.4792 7.09583 11.2875 7.2875C11.0958 7.47917 11 7.71667 11 8V12C11 12.2833 11.0958 12.5208 11.2875 12.7125C11.4792 12.9042 11.7167 13 12 13ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n info: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_603\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_603)\">\n <path d=\"M12 17C12.2833 17 12.5208 16.9042 12.7125 16.7125C12.9042 16.5208 13 16.2833 13 16V12C13 11.7167 12.9042 11.4792 12.7125 11.2875C12.5208 11.0958 12.2833 11 12 11C11.7167 11 11.4792 11.0958 11.2875 11.2875C11.0958 11.4792 11 11.7167 11 12V16C11 16.2833 11.0958 16.5208 11.2875 16.7125C11.4792 16.9042 11.7167 17 12 17ZM12 9C12.2833 9 12.5208 8.90417 12.7125 8.7125C12.9042 8.52083 13 8.28333 13 8C13 7.71667 12.9042 7.47917 12.7125 7.2875C12.5208 7.09583 12.2833 7 12 7C11.7167 7 11.4792 7.09583 11.2875 7.2875C11.0958 7.47917 11 7.71667 11 8C11 8.28333 11.0958 8.52083 11.2875 8.7125C11.4792 8.90417 11.7167 9 12 9ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n warning: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_475\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_475)\">\n <path d=\"M2.72503 21C2.5417 21 2.37503 20.9542 2.22503 20.8625C2.07503 20.7708 1.95837 20.65 1.87503 20.5C1.7917 20.35 1.74587 20.1875 1.73753 20.0125C1.7292 19.8375 1.77503 19.6667 1.87503 19.5L11.125 3.5C11.225 3.33333 11.3542 3.20833 11.5125 3.125C11.6709 3.04167 11.8334 3 12 3C12.1667 3 12.3292 3.04167 12.4875 3.125C12.6459 3.20833 12.775 3.33333 12.875 3.5L22.125 19.5C22.225 19.6667 22.2709 19.8375 22.2625 20.0125C22.2542 20.1875 22.2084 20.35 22.125 20.5C22.0417 20.65 21.925 20.7708 21.775 20.8625C21.625 20.9542 21.4584 21 21.275 21H2.72503ZM4.45003 19H19.55L12 6L4.45003 19ZM12 18C12.2834 18 12.5209 17.9042 12.7125 17.7125C12.9042 17.5208 13 17.2833 13 17C13 16.7167 12.9042 16.4792 12.7125 16.2875C12.5209 16.0958 12.2834 16 12 16C11.7167 16 11.4792 16.0958 11.2875 16.2875C11.0959 16.4792 11 16.7167 11 17C11 17.2833 11.0959 17.5208 11.2875 17.7125C11.4792 17.9042 11.7167 18 12 18ZM12 15C12.2834 15 12.5209 14.9042 12.7125 14.7125C12.9042 14.5208 13 14.2833 13 14V11C13 10.7167 12.9042 10.4792 12.7125 10.2875C12.5209 10.0958 12.2834 10 12 10C11.7167 10 11.4792 10.0958 11.2875 10.2875C11.0959 10.4792 11 10.7167 11 11V14C11 14.2833 11.0959 14.5208 11.2875 14.7125C11.4792 14.9042 11.7167 15 12 15Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n // *** Social *** //\n social_bluesky: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_8703_408\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_8703_408)\">\n <path d=\"M17.6652 3.95118C15.3724 5.71095 12.906 9.27859 12.0004 11.1932C11.0952 9.27859 8.62837 5.71095 6.33557 3.95118C4.68117 2.68168 2.00037 1.69909 2.00037 4.82495C2.00037 5.4489 2.35037 10.0696 2.55597 10.8195C3.26957 13.4274 5.87117 14.0921 8.18517 13.6898C4.14037 14.3937 3.11157 16.724 5.33357 19.0548C9.55397 23.4815 11.3996 17.9442 11.872 16.5255C11.9596 16.2635 12 16.142 12 16.2496C12 16.142 12.0404 16.2635 12.128 16.5255C12.6004 17.9442 14.446 23.4815 18.6664 19.0548C20.8884 16.724 19.86 14.3937 15.8148 13.6898C18.1288 14.0925 20.7304 13.4274 21.444 10.8195C21.6496 10.0692 21.9996 5.4489 21.9996 4.82495C21.9996 1.69909 19.3188 2.68168 17.6644 3.95077L17.6652 3.95118Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_facebook: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_332\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_332)\">\n <path d=\"M12.0367 2C6.49365 2 2 6.49365 2 12.0367C2 16.7436 5.24066 20.6932 9.61226 21.778V15.104H7.54269V12.0367H9.61226V10.7151C9.61226 7.29899 11.1583 5.7156 14.5122 5.7156C15.1481 5.7156 16.2453 5.84046 16.6942 5.96491V8.74509C16.4573 8.7202 16.0458 8.70775 15.5347 8.70775C13.8891 8.70775 13.2532 9.33123 13.2532 10.952V12.0367H16.5316L15.9683 15.104H13.2532V22C18.223 21.3998 22.0739 17.1683 22.0739 12.0367C22.0735 6.49365 17.5798 2 12.0367 2Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_flickr: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_698\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_698)\">\n <path d=\"M20.4375 2H3.5625C2.69922 2 2 2.69922 2 3.5625V20.4375C2 21.3008 2.69922 22 3.5625 22H20.4375C21.3008 22 22 21.3008 22 20.4375V3.5625C22 2.69922 21.3008 2 20.4375 2ZM9.20313 14.2031C7.98828 14.2031 7 13.2148 7 12C7 10.7852 7.98438 9.79688 9.20313 9.79688C10.4219 9.79688 11.4063 10.7852 11.4063 12C11.4063 13.2148 10.4219 14.2031 9.20313 14.2031ZM14.7969 14.2031C13.5781 14.2031 12.5938 13.2148 12.5938 12C12.5938 10.7852 13.5781 9.79688 14.7969 9.79688C16.0117 9.79688 17 10.7852 17 12C17 13.2148 16.0156 14.2031 14.7969 14.2031Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_google_play: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_532\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_532)\">\n <path d=\"M6.1202 2.50833L17.0372 8.79667L14.6972 11.1408L6.1202 2.50833ZM3.85845 2L13.8795 12L3.85928 22C3.34937 21.7742 3 21.2717 3 20.6875C3 20.6683 3 20.6492 3.00083 20.6308V20.6333V3.3675C3 3.35167 3 3.3325 3 3.31333C3 2.72917 3.34937 2.22667 3.85013 2.00417L3.85928 2.00083L3.85845 2ZM20.4302 10.8283C20.7746 11.0842 20.995 11.4908 20.995 11.9483C20.995 11.9667 20.995 11.9842 20.9942 12.0025V12C20.9975 12.0358 21 12.0783 21 12.1208C21 12.5508 20.792 12.9325 20.471 13.1692L20.4676 13.1717L18.1277 14.4992L15.5939 12L18.1285 9.46083L20.4302 10.8283ZM6.1202 21.4917L14.698 12.8592L17.038 15.2033L6.1202 21.4917Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_instagram: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_637\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_637)\">\n <path d=\"M12.002 3.80113C14.6744 3.80113 14.9908 3.81285 16.0418 3.85974C17.0186 3.90272 17.546 4.06681 17.8976 4.20356C18.3626 4.38328 18.6986 4.60207 19.0463 4.9498C19.3979 5.30143 19.6128 5.63352 19.7925 6.09846C19.9293 6.45009 20.0934 6.98144 20.1364 7.95429C20.1832 9.00918 20.195 9.32565 20.195 11.9941C20.195 14.6665 20.1832 14.983 20.1364 16.034C20.0934 17.0107 19.9293 17.5382 19.7925 17.8898C19.6128 18.3548 19.394 18.6908 19.0463 19.0385C18.6947 19.3901 18.3626 19.605 17.8976 19.7847C17.546 19.9215 17.0147 20.0856 16.0418 20.1285C14.9869 20.1754 14.6704 20.1871 12.002 20.1871C9.32956 20.1871 9.01309 20.1754 7.9621 20.1285C6.98535 20.0856 6.4579 19.9215 6.10627 19.7847C5.64134 19.605 5.30533 19.3862 4.95761 19.0385C4.60598 18.6869 4.39109 18.3548 4.21137 17.8898C4.07462 17.5382 3.91053 17.0068 3.86755 16.034C3.82067 14.9791 3.80895 14.6626 3.80895 11.9941C3.80895 9.32174 3.82067 9.00527 3.86755 7.95429C3.91053 6.97753 4.07462 6.45009 4.21137 6.09846C4.39109 5.63352 4.60988 5.29752 4.95761 4.9498C5.30924 4.59816 5.64134 4.38328 6.10627 4.20356C6.4579 4.06681 6.98926 3.90272 7.9621 3.85974C9.01309 3.81285 9.32956 3.80113 12.002 3.80113ZM12.002 2C9.28658 2 8.94667 2.01172 7.88006 2.05861C6.81735 2.10549 6.08674 2.2774 5.4538 2.52354C4.79351 2.7814 4.23481 3.12131 3.68002 3.68002C3.12131 4.23481 2.7814 4.79351 2.52354 5.44989C2.2774 6.08674 2.10549 6.81344 2.05861 7.87615C2.01172 8.94667 2 9.28658 2 12.002C2 14.7173 2.01172 15.0572 2.05861 16.1239C2.10549 17.1866 2.2774 17.9172 2.52354 18.5501C2.7814 19.2104 3.12131 19.7691 3.68002 20.3239C4.23481 20.8787 4.79351 21.2225 5.44989 21.4765C6.08674 21.7226 6.81344 21.8945 7.87615 21.9414C8.94276 21.9883 9.28267 22 11.998 22C14.7134 22 15.0533 21.9883 16.1199 21.9414C17.1827 21.8945 17.9133 21.7226 18.5462 21.4765C19.2026 21.2225 19.7613 20.8787 20.3161 20.3239C20.8709 19.7691 21.2147 19.2104 21.4686 18.554C21.7148 17.9172 21.8867 17.1905 21.9336 16.1278C21.9805 15.0611 21.9922 14.7212 21.9922 12.0059C21.9922 9.29049 21.9805 8.95058 21.9336 7.88396C21.8867 6.82125 21.7148 6.09064 21.4686 5.45771C21.2225 4.79351 20.8826 4.23481 20.3239 3.68002C19.7691 3.12522 19.2104 2.7814 18.554 2.52745C17.9172 2.2813 17.1905 2.1094 16.1278 2.06251C15.0572 2.01172 14.7173 2 12.002 2Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M12.002 6.86423C9.16546 6.86423 6.86423 9.16546 6.86423 12.002C6.86423 14.8384 9.16546 17.1397 12.002 17.1397C14.8384 17.1397 17.1397 14.8384 17.1397 12.002C17.1397 9.16546 14.8384 6.86423 12.002 6.86423ZM12.002 15.3346C10.1618 15.3346 8.66927 13.8422 8.66927 12.002C8.66927 10.1618 10.1618 8.66927 12.002 8.66927C13.8422 8.66927 15.3346 10.1618 15.3346 12.002C15.3346 13.8422 13.8422 15.3346 12.002 15.3346Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M18.5423 6.66103C18.5423 7.32522 18.0031 7.86048 17.3428 7.86048C16.6786 7.86048 16.1434 7.32131 16.1434 6.66103C16.1434 5.99683 16.6826 5.46157 17.3428 5.46157C18.0031 5.46157 18.5423 6.00074 18.5423 6.66103Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_linkedin: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_708\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_708)\">\n <path d=\"M20.5195 2H3.47656C2.66016 2 2 2.64453 2 3.44141V20.5547C2 21.3516 2.66016 22 3.47656 22H20.5195C21.3359 22 22 21.3516 22 20.5586V3.44141C22 2.64453 21.3359 2 20.5195 2ZM7.93359 19.043H4.96484V9.49609H7.93359V19.043ZM6.44922 8.19531C5.49609 8.19531 4.72656 7.42578 4.72656 6.47656C4.72656 5.52734 5.49609 4.75781 6.44922 4.75781C7.39844 4.75781 8.16797 5.52734 8.16797 6.47656C8.16797 7.42188 7.39844 8.19531 6.44922 8.19531ZM19.043 19.043H16.0781V14.4023C16.0781 13.2969 16.0586 11.8711 14.5352 11.8711C12.9922 11.8711 12.7578 13.0781 12.7578 14.3242V19.043H9.79688V9.49609H12.6406V10.8008H12.6797C13.0742 10.0508 14.043 9.25781 15.4844 9.25781C18.4883 9.25781 19.043 11.2344 19.043 13.8047V19.043Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_pinterest: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_656\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_656)\">\n <path d=\"M12 2C6.47656 2 2 6.47656 2 12C2 16.2383 4.63672 19.8555 8.35547 21.3125C8.26953 20.5195 8.1875 19.3086 8.39063 18.4453C8.57422 17.6641 9.5625 13.4766 9.5625 13.4766C9.5625 13.4766 9.26172 12.8789 9.26172 11.9922C9.26172 10.6016 10.0664 9.5625 11.0703 9.5625C11.9219 9.5625 12.3359 10.2031 12.3359 10.9727C12.3359 11.832 11.7891 13.1133 11.5078 14.3008C11.2734 15.2969 12.0078 16.1094 12.9883 16.1094C14.7656 16.1094 16.1328 14.2344 16.1328 11.5312C16.1328 9.13672 14.4141 7.46094 11.957 7.46094C9.11328 7.46094 7.44141 9.59375 7.44141 11.8008C7.44141 12.6602 7.77344 13.582 8.1875 14.082C8.26953 14.1797 8.28125 14.2695 8.25781 14.3672C8.18359 14.6836 8.01172 15.3633 7.98047 15.5C7.9375 15.6836 7.83594 15.7227 7.64453 15.6328C6.39453 15.0508 5.61328 13.2266 5.61328 11.7578C5.61328 8.60156 7.90625 5.70703 12.2188 5.70703C15.6875 5.70703 18.3828 8.17969 18.3828 11.4844C18.3828 14.9297 16.2109 17.7031 13.1953 17.7031C12.1836 17.7031 11.2305 17.1758 10.9023 16.5547C10.9023 16.5547 10.4023 18.4648 10.2812 18.9336C10.0547 19.8008 9.44531 20.8906 9.03906 21.5547C9.97656 21.8438 10.9687 22 12 22C17.5234 22 22 17.5234 22 12C22 6.47656 17.5234 2 12 2Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_rss: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_723\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_723)\">\n <path d=\"M2 8.79688V12.6172C4.49219 12.6172 6.85156 13.6016 8.61719 15.3672C10.3828 17.1328 11.3594 19.4922 11.3594 21.9922V22H15.1953C15.1953 18.3594 13.7109 15.0703 11.3203 12.6719C8.9375 10.2812 5.64062 8.80469 2 8.79688Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M4.65625 16.6797C3.92188 16.6797 3.26562 16.9766 2.78125 17.4609C2.29688 17.9453 2 18.6016 2 19.3359C2 20.0625 2.29688 20.7188 2.78125 21.2031C3.26562 21.6797 3.92188 21.9766 4.65625 21.9766C5.39062 21.9766 6.04688 21.6875 6.53125 21.2031C7.01562 20.7188 7.3125 20.0625 7.3125 19.3359C7.3125 18.6016 7.01562 17.9453 6.53125 17.4609C6.04688 16.9766 5.39062 16.6797 4.65625 16.6797Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M16.1328 7.86719C12.5156 4.24219 7.52344 2 2.00781 2V5.82031C10.9219 5.82812 18.1641 13.0859 18.1719 22H22C22 16.4844 19.7578 11.4922 16.1328 7.86719Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_snapchat: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_686\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_686)\">\n <path d=\"M20.581 16.7331C17.4839 15.2334 16.9903 12.9179 16.9683 12.7462C16.9417 12.5381 16.9116 12.3746 17.141 12.163C17.3623 11.9585 18.3439 11.3508 18.6162 11.1606C19.0664 10.8457 19.2647 10.5314 19.1185 10.145C19.0163 9.87763 18.7675 9.77694 18.5053 9.77694C18.4227 9.77719 18.3402 9.78645 18.2596 9.80454C17.7649 9.91188 17.2846 10.1598 17.0066 10.2267C16.9732 10.2354 16.9389 10.24 16.9044 10.2405C16.7562 10.2405 16.7 10.1746 16.7143 9.99622C16.7491 9.45543 16.8226 8.39991 16.7373 7.41391C16.6203 6.05733 16.1829 5.38517 15.6642 4.79071C15.4133 4.50242 14.2483 3.26392 11.9999 3.26392C9.75152 3.26392 8.58799 4.50242 8.33862 4.78713C7.81843 5.38159 7.38153 6.05375 7.26554 7.41033C7.1802 8.39633 7.25685 9.45134 7.28853 9.99264C7.29875 10.1623 7.24663 10.237 7.09844 10.237C7.06395 10.2364 7.02965 10.2317 6.99624 10.2232C6.71877 10.1562 6.23844 9.9083 5.7438 9.80096C5.66311 9.78287 5.5807 9.77361 5.49801 9.77336C5.23485 9.77336 4.98702 9.87559 4.88482 10.1414C4.73867 10.5278 4.93592 10.8422 5.38764 11.157C5.66 11.3472 6.64161 11.9544 6.86287 12.1594C7.0918 12.371 7.06216 12.5346 7.03559 12.7426C7.01362 12.9169 6.51949 15.2324 3.42287 16.7295C3.24146 16.8175 2.93282 17.0035 3.47703 17.3041C4.33141 17.7764 4.90015 17.7258 5.34216 18.0105C5.71723 18.2522 5.49546 18.7736 5.76833 18.9617C6.10354 19.1933 7.09435 18.9454 8.37439 19.3681C9.44748 19.7218 10.0995 20.7211 12.0024 20.7211C13.9054 20.7211 14.5763 19.7172 15.6305 19.3681C16.908 18.9454 17.9008 19.1933 18.2366 18.9617C18.5089 18.7736 18.2877 18.2522 18.6627 18.0105C19.1047 17.7258 19.673 17.7764 20.5279 17.3041C21.071 17.0071 20.7624 16.821 20.581 16.7331Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_soundcloud: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_645\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_645)\">\n <path d=\"M2.9661 12.6702C2.92334 12.6702 2.88837 12.7054 2.88284 12.7539L2.68627 14.6152L2.88284 16.4351C2.88837 16.4837 2.92334 16.5191 2.9661 16.5191C3.00823 16.5191 3.04239 16.4843 3.04914 16.4353L3.27292 14.615L3.04914 12.7537C3.04239 12.7043 3.00823 12.6702 2.9661 12.6702Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M2.22664 13.3833C2.18512 13.3833 2.15198 13.4163 2.14646 13.4644L2 14.6152L2.14646 15.7464C2.15178 15.7943 2.18491 15.8274 2.22664 15.8274C2.26714 15.8274 2.30008 15.7943 2.30662 15.7469L2.47988 14.6152L2.30662 13.4634C2.30008 13.4163 2.26714 13.3833 2.22664 13.3833Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M3.75178 12.3052C3.699 12.3052 3.65687 12.348 3.65155 12.4069L3.46479 14.6152L3.65155 16.7427C3.65687 16.8018 3.699 16.8444 3.75178 16.8444C3.80353 16.8444 3.84567 16.8018 3.8518 16.7429L4.06372 14.615L3.8518 12.4067C3.84567 12.348 3.80353 12.3052 3.75178 12.3052Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M4.544 12.2272C4.48182 12.2272 4.4313 12.2785 4.42639 12.3468L4.25006 14.6158L4.42639 16.8105C4.4313 16.8783 4.48182 16.9298 4.544 16.9298C4.60516 16.9298 4.65548 16.8783 4.66121 16.8105L4.86147 14.6158L4.66121 12.3463C4.65548 12.2785 4.60516 12.2272 4.544 12.2272Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M5.47655 12.5102C5.47164 12.4328 5.41355 12.3737 5.34237 12.3737C5.27016 12.3737 5.21248 12.4326 5.20798 12.5108L5.04147 14.6156L5.20798 16.8287C5.21248 16.9065 5.27037 16.9657 5.34237 16.9657C5.41376 16.9657 5.47164 16.9067 5.47655 16.8289L5.66535 14.6156L5.47655 12.5102Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M6.14748 11.037C6.06648 11.037 6.0002 11.1053 5.99611 11.1924L5.83984 14.6167L5.99611 16.8296C6.00041 16.9156 6.06668 16.9841 6.14748 16.9841C6.22767 16.9841 6.29394 16.9159 6.29885 16.8289V16.8298L6.47558 14.6169L6.29885 11.1924C6.29374 11.1053 6.22746 11.037 6.14748 11.037Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M6.94625 10.2483C6.85564 10.2483 6.78179 10.3242 6.7777 10.4211C6.7777 10.4215 6.63145 14.6285 6.63145 14.6285L6.77791 16.8277C6.782 16.9241 6.85564 17 6.94625 17C7.03626 17 7.11071 16.9241 7.1146 16.8273V16.8285L7.28008 14.6285L7.1146 10.4211C7.11071 10.3242 7.03626 10.2483 6.94625 10.2483Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M7.77673 9.86804C7.6763 9.86804 7.59468 9.95198 7.5912 10.0588L7.45518 14.6177L7.5912 16.7942C7.59489 16.9002 7.6763 16.9839 7.77673 16.9839C7.87655 16.9839 7.95817 16.9002 7.96226 16.7935V16.7948L8.11588 14.6179L7.96226 10.0588C7.95796 9.95198 7.87655 9.86804 7.77673 9.86804Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M8.80337 9.90556C8.7999 9.78855 8.71092 9.69677 8.60107 9.69677C8.49041 9.69677 8.40143 9.78877 8.39836 9.90556L8.27236 14.6177L8.39857 16.7806C8.40164 16.8964 8.49041 16.9879 8.60107 16.9879C8.71092 16.9879 8.8001 16.8964 8.80337 16.78L8.94533 14.6184L8.80337 9.90556Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M9.43176 9.8C9.31107 9.8 9.21473 9.89941 9.21186 10.0264L9.09609 14.6186L9.21227 16.7605C9.21493 16.8862 9.31107 16.986 9.43176 16.986C9.55162 16.986 9.64797 16.886 9.65124 16.7592V16.7609L9.78174 14.6182L9.65124 10.0257C9.64797 9.89899 9.55162 9.8 9.43176 9.8Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M10.269 9.94986C10.1389 9.94986 10.0346 10.0573 10.0321 10.1943L9.92636 14.6186L10.0321 16.7478C10.0346 16.8834 10.1389 16.9905 10.269 16.9905C10.3989 16.9905 10.503 16.8834 10.5054 16.7463V16.748L10.6241 14.6192L10.5054 10.1945C10.503 10.0573 10.3989 9.94986 10.269 9.94986Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M11.2529 9.13676C11.2128 9.10857 11.1643 9.09204 11.1126 9.09204C11.0622 9.09204 11.0154 9.10794 10.9759 9.13464C10.9066 9.18149 10.8601 9.26225 10.8589 9.35424L10.8581 9.40384L10.7628 14.6177C10.7628 14.6207 10.8589 16.734 10.8589 16.734C10.8589 16.7374 10.8593 16.7397 10.8595 16.7429C10.8624 16.8018 10.8839 16.8561 10.9184 16.8991C10.9653 16.957 11.035 16.9943 11.1126 16.9943C11.1815 16.9943 11.2443 16.9648 11.2901 16.9173C11.3361 16.8701 11.3652 16.8048 11.3664 16.7323L11.4734 14.619L11.3666 9.35403C11.365 9.26352 11.32 9.18382 11.2529 9.13676Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M12.0903 8.63759C12.0502 8.61215 12.0028 8.59732 11.9526 8.59732C11.888 8.59732 11.8285 8.62148 11.7816 8.66133C11.7215 8.71284 11.6826 8.79041 11.6814 8.87732L11.6808 8.90615L11.5703 14.6199L11.6814 16.7039C11.6837 16.8559 11.805 16.9818 11.9526 16.9818C12.0997 16.9818 12.221 16.8559 12.2231 16.702V16.7045L12.3437 14.6201L12.2235 8.8769C12.222 8.77537 12.1684 8.68655 12.0903 8.63759Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M19.5399 11.9014C19.2032 11.9014 18.8812 11.9722 18.5887 12.0992C18.3925 9.80212 16.5336 8 14.2659 8C13.7108 8 13.1701 8.11319 12.6923 8.30459C12.5068 8.3792 12.4577 8.45551 12.4558 8.60431V16.6946C12.4577 16.8504 12.5743 16.9718 12.7213 16.9869C12.7277 16.9877 19.5403 16.9869 19.5403 16.9869C20.8989 16.9869 22 15.8584 22 14.4503C21.9998 13.0426 20.8987 11.9014 19.5399 11.9014Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_tiktok: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_642\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_642)\">\n <path d=\"M17.883 6.27729C17.7506 6.20752 17.6217 6.13104 17.4968 6.04813C17.1337 5.80333 16.8007 5.51489 16.5051 5.18901C15.7655 4.32613 15.4893 3.45076 15.3876 2.83787H15.3917C15.3067 2.32915 15.3418 2 15.3471 2H11.9785V15.2818C11.9785 15.4602 11.9785 15.6364 11.9712 15.8106C11.9712 15.8322 11.9691 15.8522 11.9679 15.8756C11.9679 15.8851 11.9679 15.8951 11.9658 15.9051C11.9658 15.9076 11.9658 15.9101 11.9658 15.9126C11.9303 16.3892 11.7805 16.8495 11.5296 17.2532C11.2786 17.6568 10.9342 17.9914 10.5267 18.2275C10.102 18.4739 9.62159 18.6032 9.13293 18.6025C7.56344 18.6025 6.29143 17.2976 6.29143 15.686C6.29143 14.0744 7.56344 12.7695 9.13293 12.7695C9.43002 12.7692 9.72529 12.8169 10.0078 12.9107L10.0119 9.41338C9.15432 9.30043 8.28314 9.36992 7.45327 9.61747C6.62339 9.86502 5.85284 10.2852 5.19021 10.8516C4.6096 11.366 4.12148 11.9798 3.74781 12.6653C3.60561 12.9153 3.0691 13.9198 3.00413 15.5502C2.96327 16.4755 3.23582 17.4342 3.36575 17.8305V17.8388C3.44748 18.0721 3.76415 18.8683 4.28023 19.5395C4.69638 20.078 5.18804 20.5509 5.73939 20.9432V20.9349L5.74756 20.9432C7.37834 22.0732 9.18645 21.999 9.18645 21.999C9.49945 21.9861 10.548 21.999 11.7387 21.4236C13.0593 20.7857 13.8111 19.8354 13.8111 19.8354C14.2915 19.2675 14.6734 18.6204 14.9405 17.9217C15.2454 17.1047 15.3471 16.1247 15.3471 15.7331V8.68675C15.388 8.71175 15.9323 9.07881 15.9323 9.07881C15.9323 9.07881 16.7164 9.59129 17.9398 9.92502C18.8175 10.1625 20 10.2125 20 10.2125V6.80268C19.5857 6.84851 18.7443 6.71518 17.883 6.27729Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_threads: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_8703_592\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_8703_592)\">\n <path d=\"M12.6885 11.9189C13.0794 11.9258 13.4486 11.9685 13.791 12.0469C13.7832 12.134 13.7735 12.2225 13.7617 12.3115C13.697 12.7932 13.5053 13.4354 12.9629 13.7637C12.5851 13.992 12.0197 14.0489 11.5566 13.9033C11.3229 13.8298 11.0137 13.673 10.8672 13.3447C10.6962 12.962 10.8025 12.5488 11.1377 12.292C11.466 12.0406 11.9426 11.918 12.5928 11.918C12.6241 11.918 12.6561 11.918 12.6885 11.9189Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 1.73926C17.5141 1.73926 22 6.22519 22 11.7393C21.9998 17.2532 17.514 21.7393 12 21.7393C6.48604 21.7393 2.00017 17.2532 2 11.7393C2 6.22519 6.48594 1.73926 12 1.73926ZM11.8076 5.15039C10.4347 5.2205 9.30138 5.60456 8.43945 6.29199C7.32998 7.17703 6.78999 8.51263 6.53223 9.47754C6.0476 11.2917 6.18684 13.3229 6.91602 15.0508C7.57804 16.6203 8.82441 17.7118 10.4248 18.125C10.9349 18.2568 11.5227 18.3389 12.1387 18.3389C13.3215 18.3389 14.6081 18.0365 15.6455 17.2051C16.5957 16.4435 17.1204 15.4692 17.1621 14.3867C17.2042 13.2995 16.8238 12.3987 16.0625 11.7812C15.7563 11.5334 15.4109 11.3248 15.0342 11.1592C15.0013 10.6574 14.8983 10.1062 14.6572 9.625C14.2368 8.78705 13.3903 8.24879 12.3916 8.18457C11.3066 8.11449 10.2369 8.61512 9.66797 9.45898L10.6943 10.1504C11.0222 9.66385 11.6583 9.37631 12.3125 9.41895C12.8754 9.4553 13.3274 9.73236 13.5518 10.1797C13.635 10.3457 13.6986 10.5482 13.7422 10.7764C13.412 10.7196 13.0671 10.688 12.709 10.6816C11.7223 10.666 10.9595 10.8697 10.3848 11.3096C9.59047 11.9177 9.33024 12.9382 9.73633 13.8486C9.99698 14.4336 10.5115 14.8727 11.1855 15.084C11.9916 15.3368 12.9179 15.2368 13.6025 14.8232C14.341 14.3769 14.8295 13.5622 14.9805 12.5264C15.0866 12.5929 15.1873 12.6649 15.2822 12.7422C15.7355 13.1092 15.9522 13.6469 15.9258 14.3389C15.8978 15.0621 15.5433 15.7012 14.8721 16.2393C13.8655 17.0459 12.2408 17.3154 10.7334 16.9268C9.51525 16.6126 8.5643 15.7748 8.05566 14.5693C7.43137 13.0899 7.31198 11.3508 7.72754 9.79688C8.02402 8.68694 8.55085 7.78607 9.21094 7.25977C9.86663 6.73688 10.7616 6.4421 11.8711 6.38574C14.2878 6.26097 16.0368 7.49129 16.5469 9.6709L17.752 9.3877C17.1039 6.6202 14.8261 4.99652 11.8076 5.15039Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_tumblr: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_356\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_356)\">\n <path d=\"M14.1667 22C11.1667 22 8.91675 20.4583 8.91675 16.75V10.8333H6.16675V7.625C9.16675 6.83333 10.4167 4.25 10.5834 2H13.7084V7.08333H17.3334V10.8333H13.7084V16C13.7084 17.5417 14.5001 18.0833 15.7501 18.0833H17.5001V22H14.1667Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_vimeo: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_631\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_631)\">\n <path d=\"M21.8881 4.69862C21.5362 3.22947 19.8797 2.81423 18.2069 3.07121C17.3489 3.20497 14.4525 4.49916 13.4656 7.60025C15.2117 7.46356 16.1279 7.72713 15.9598 9.67303C15.8886 10.4885 15.4838 11.3805 15.0286 12.2362C14.5054 13.2241 13.5212 15.1601 12.2329 13.7655C11.0727 12.5073 11.1617 10.1053 10.8975 8.5037C10.7477 7.60315 10.5914 6.48589 10.3004 5.56221C10.0519 4.76626 9.47709 3.80956 8.77407 3.59995C8.01998 3.37796 7.08804 3.72783 6.54143 4.05518C4.83909 5.06578 3.56386 6.45811 2.10226 7.65849C1.91782 7.84616 2.02704 8.00379 2.08913 8.14342C2.29904 8.47202 2.38014 8.67144 2.78041 8.73002C3.81954 8.88433 4.8077 7.74937 5.4963 8.93241C5.9175 9.65239 6.0489 10.4421 6.31772 11.2177C6.67544 12.2568 6.95332 13.3843 7.2476 14.5768C7.74663 16.592 8.35542 19.6046 10.0787 20.3458C10.9563 20.7212 12.276 20.218 12.9437 19.8167C14.7553 18.7305 16.2286 17.2052 17.375 15.5542C20.3584 11.2609 21.7887 6.94699 21.9442 6.12531C22.0548 5.52978 21.9823 5.0383 21.8881 4.69862Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_x: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_289\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_289)\">\n <path d=\"M18.4256 2H21.8185L14.4062 10.4718L23.1262 22H16.2985L10.9508 15.0082L4.83179 22H1.43692L9.36513 12.9385L1 2H8.00103L12.8349 8.39077L18.4256 2ZM17.2349 19.9692H19.1149L6.97949 3.9241H4.96205L17.2349 19.9692Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_youtube: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_535\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_535)\">\n <path d=\"M21.8008 8.03516C21.8008 8.03516 21.6055 6.65625 21.0039 6.05078C20.2422 5.25391 19.3906 5.25 19 5.20312C16.2031 5 12.0039 5 12.0039 5H11.9961C11.9961 5 7.79688 5 5 5.20312C4.60938 5.25 3.75781 5.25391 2.99609 6.05078C2.39453 6.65625 2.20312 8.03516 2.20312 8.03516C2.20312 8.03516 2 9.65625 2 11.2734V12.7891C2 14.4062 2.19922 16.0273 2.19922 16.0273C2.19922 16.0273 2.39453 17.4062 2.99219 18.0117C3.75391 18.8086 4.75391 18.7812 5.19922 18.8672C6.80078 19.0195 12 19.0664 12 19.0664C12 19.0664 16.2031 19.0586 19 18.8594C19.3906 18.8125 20.2422 18.8086 21.0039 18.0117C21.6055 17.4062 21.8008 16.0273 21.8008 16.0273C21.8008 16.0273 22 14.4102 22 12.7891V11.2734C22 9.65625 21.8008 8.03516 21.8008 8.03516ZM9.93359 14.6289V9.00781L15.3359 11.8281L9.93359 14.6289Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n // *** Filled *** //\n account_balance_filled: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_695\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_695)\">\n <path d=\"M4.22502 15.875V11.65C4.22502 11.2666 4.36252 10.9416 4.63752 10.675C4.91252 10.4083 5.24169 10.275 5.62502 10.275C6.00836 10.275 6.33336 10.4083 6.60002 10.675C6.86669 10.9416 7.00002 11.2666 7.00002 11.65V15.9C7.00002 16.2833 6.86669 16.6083 6.60002 16.875C6.33336 17.1416 6.00836 17.275 5.62502 17.275C5.24169 17.275 4.91252 17.1375 4.63752 16.8625C4.36252 16.5875 4.22502 16.2583 4.22502 15.875ZM10.625 15.9V11.65C10.625 11.2666 10.7584 10.9416 11.025 10.675C11.2917 10.4083 11.6167 10.275 12 10.275C12.3834 10.275 12.7084 10.4083 12.975 10.675C13.2417 10.9416 13.375 11.2666 13.375 11.65V15.9C13.375 16.2833 13.2417 16.6083 12.975 16.875C12.7084 17.1416 12.3834 17.275 12 17.275C11.6167 17.275 11.2917 17.1416 11.025 16.875C10.7584 16.6083 10.625 16.2833 10.625 15.9ZM2.72502 21.65C2.29169 21.65 1.92086 21.4958 1.61252 21.1875C1.30419 20.8791 1.15002 20.5083 1.15002 20.075C1.15002 19.6416 1.30419 19.2708 1.61252 18.9625C1.92086 18.6541 2.29169 18.5 2.72502 18.5H21.275C21.7084 18.5 22.0792 18.6541 22.3875 18.9625C22.6959 19.2708 22.85 19.6416 22.85 20.075C22.85 20.5083 22.6959 20.8791 22.3875 21.1875C22.0792 21.4958 21.7084 21.65 21.275 21.65H2.72502ZM17 15.875V11.65C17 11.2666 17.1375 10.9416 17.4125 10.675C17.6875 10.4083 18.0167 10.275 18.4 10.275C18.7834 10.275 19.1084 10.4083 19.375 10.675C19.6417 10.9416 19.775 11.2666 19.775 11.65V15.9C19.775 16.2833 19.6417 16.6083 19.375 16.875C19.1084 17.1416 18.7834 17.275 18.4 17.275C18.0167 17.275 17.6875 17.1375 17.4125 16.8625C17.1375 16.5875 17 16.2583 17 15.875ZM21.175 9.02495H2.65002C2.23336 9.02495 1.87919 8.87912 1.58752 8.58745C1.29586 8.29578 1.15002 7.94162 1.15002 7.52495V6.57495C1.15002 6.29162 1.22502 6.02912 1.37502 5.78745C1.52502 5.54578 1.72502 5.35828 1.97502 5.22495L10.6 0.924951C11.0334 0.691618 11.5 0.574951 12 0.574951C12.5 0.574951 12.9667 0.691618 13.4 0.924951L21.925 5.17495C22.2084 5.30828 22.4334 5.51245 22.6 5.78745C22.7667 6.06245 22.85 6.36662 22.85 6.69995V7.32495C22.85 7.79162 22.6875 8.19162 22.3625 8.52495C22.0375 8.85828 21.6417 9.02495 21.175 9.02495Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n cancel_filled: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_549\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_549)\">\n <path d=\"M11.9242 13.3033L14.8242 16.2033C15.0075 16.3867 15.2409 16.4783 15.5242 16.4783C15.8075 16.4783 16.0409 16.3867 16.2242 16.2033C16.4075 16.02 16.4992 15.7867 16.4992 15.5033C16.4992 15.22 16.4075 14.9867 16.2242 14.8033L13.3242 11.9033L16.2242 9.00332C16.4075 8.81999 16.4992 8.58665 16.4992 8.30332C16.4992 8.01999 16.4075 7.78665 16.2242 7.60332C16.0409 7.41999 15.8075 7.32832 15.5242 7.32832C15.2409 7.32832 15.0075 7.41999 14.8242 7.60332L11.9242 10.5033L9.02419 7.60332C8.84086 7.41999 8.60753 7.32832 8.32419 7.32832C8.04086 7.32832 7.80753 7.41999 7.62419 7.60332C7.44086 7.78665 7.34919 8.01999 7.34919 8.30332C7.34919 8.58665 7.44086 8.81999 7.62419 9.00332L10.5242 11.9033L7.62419 14.8033C7.44086 14.9867 7.34919 15.22 7.34919 15.5033C7.34919 15.7867 7.44086 16.02 7.62419 16.2033C7.80753 16.3867 8.04086 16.4783 8.32419 16.4783C8.60753 16.4783 8.84086 16.3867 9.02419 16.2033L11.9242 13.3033ZM11.9242 21.9033C10.5409 21.9033 9.24086 21.6408 8.02419 21.1158C6.80753 20.5908 5.74919 19.8783 4.84919 18.9783C3.94919 18.0783 3.23669 17.02 2.71169 15.8033C2.18669 14.5867 1.92419 13.2867 1.92419 11.9033C1.92419 10.52 2.18669 9.21999 2.71169 8.00332C3.23669 6.78665 3.94919 5.72832 4.84919 4.82832C5.74919 3.92832 6.80753 3.21582 8.02419 2.69082C9.24086 2.16582 10.5409 1.90332 11.9242 1.90332C13.3075 1.90332 14.6075 2.16582 15.8242 2.69082C17.0409 3.21582 18.0992 3.92832 18.9992 4.82832C19.8992 5.72832 20.6117 6.78665 21.1367 8.00332C21.6617 9.21999 21.9242 10.52 21.9242 11.9033C21.9242 13.2867 21.6617 14.5867 21.1367 15.8033C20.6117 17.02 19.8992 18.0783 18.9992 18.9783C18.0992 19.8783 17.0409 20.5908 15.8242 21.1158C14.6075 21.6408 13.3075 21.9033 11.9242 21.9033Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n language_filled: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_563\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_563)\">\n <path d=\"M12 22.8499C10.5167 22.8499 9.11669 22.5624 7.80002 21.9874C6.48336 21.4124 5.33336 20.6332 4.35002 19.6499C3.36669 18.6666 2.58752 17.5166 2.01252 16.1999C1.43752 14.8832 1.15002 13.4832 1.15002 11.9999C1.15002 10.5166 1.43752 9.11657 2.01252 7.7999C2.58752 6.48324 3.36669 5.33324 4.35002 4.3499C5.33336 3.36657 6.48336 2.5874 7.80002 2.0124C9.11669 1.4374 10.5167 1.1499 12 1.1499C13.4834 1.1499 14.8834 1.4374 16.2 2.0124C17.5167 2.5874 18.6667 3.36657 19.65 4.3499C20.6334 5.33324 21.4125 6.48324 21.9875 7.7999C22.5625 9.11657 22.85 10.5166 22.85 11.9999C22.85 13.4832 22.5625 14.8832 21.9875 16.1999C21.4125 17.5166 20.6334 18.6666 19.65 19.6499C18.6667 20.6332 17.5167 21.4124 16.2 21.9874C14.8834 22.5624 13.4834 22.8499 12 22.8499ZM11.95 19.6749C12.3167 19.1082 12.6584 18.5041 12.975 17.8624C13.2917 17.2207 13.55 16.5499 13.75 15.8499H10.225C10.425 16.5499 10.6709 17.2207 10.9625 17.8624C11.2542 18.5041 11.5834 19.1082 11.95 19.6749ZM9.47502 19.2749C9.14169 18.7582 8.87919 18.2041 8.68752 17.6124C8.49586 17.0207 8.32502 16.4332 8.17502 15.8499H5.37502C5.80836 16.6499 6.37502 17.3499 7.07502 17.9499C7.77502 18.5499 8.57502 18.9916 9.47502 19.2749ZM14.45 19.2749C15.35 18.9916 16.1584 18.5499 16.875 17.9499C17.5917 17.3499 18.1667 16.6499 18.6 15.8499H15.8C15.65 16.4332 15.4709 17.0207 15.2625 17.6124C15.0542 18.2041 14.7834 18.7582 14.45 19.2749ZM4.55002 13.9249H7.77502C7.72502 13.5916 7.68752 13.2707 7.66252 12.9624C7.63752 12.6541 7.62502 12.3332 7.62502 11.9999C7.62502 11.6499 7.63752 11.3249 7.66252 11.0249C7.68752 10.7249 7.72502 10.4082 7.77502 10.0749H4.55002C4.46669 10.3916 4.40419 10.7041 4.36252 11.0124C4.32086 11.3207 4.30002 11.6499 4.30002 11.9999C4.30002 12.3332 4.32086 12.6582 4.36252 12.9749C4.40419 13.2916 4.46669 13.6082 4.55002 13.9249ZM9.77502 13.9249H14.2C14.25 13.5916 14.2792 13.2707 14.2875 12.9624C14.2959 12.6541 14.3 12.3332 14.3 11.9999C14.3 11.6499 14.2959 11.3249 14.2875 11.0249C14.2792 10.7249 14.25 10.4082 14.2 10.0749H9.77502C9.72502 10.4082 9.68752 10.7249 9.66252 11.0249C9.63752 11.3249 9.62502 11.6499 9.62502 11.9999C9.62502 12.3332 9.63752 12.6541 9.66252 12.9624C9.68752 13.2707 9.72502 13.5916 9.77502 13.9249ZM16.2 13.9249H19.4C19.4834 13.6082 19.5459 13.2916 19.5875 12.9749C19.6292 12.6582 19.65 12.3332 19.65 11.9999C19.65 11.6499 19.6292 11.3207 19.5875 11.0124C19.5459 10.7041 19.4834 10.3916 19.4 10.0749H16.2C16.2334 10.4082 16.2584 10.7249 16.275 11.0249C16.2917 11.3249 16.3 11.6499 16.3 11.9999C16.3 12.3332 16.2917 12.6541 16.275 12.9624C16.2584 13.2707 16.2334 13.5916 16.2 13.9249ZM15.8 8.1249H18.6C18.1667 7.3249 17.5917 6.62907 16.875 6.0374C16.1584 5.44574 15.35 5.00824 14.45 4.7249C14.7834 5.24157 15.0542 5.79157 15.2625 6.3749C15.4709 6.95824 15.65 7.54157 15.8 8.1249ZM10.225 8.1249H13.75C13.5667 7.4249 13.3167 6.75824 13 6.1249C12.6834 5.49157 12.3334 4.89157 11.95 4.3249C11.5834 4.89157 11.2542 5.49157 10.9625 6.1249C10.6709 6.75824 10.425 7.4249 10.225 8.1249ZM5.37502 8.1249H8.17502C8.32502 7.54157 8.49586 6.95824 8.68752 6.3749C8.87919 5.79157 9.14169 5.24157 9.47502 4.7249C8.57502 5.00824 7.77502 5.44574 7.07502 6.0374C6.37502 6.62907 5.80836 7.3249 5.37502 8.1249Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n lock_filled: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_621\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_621)\">\n <path d=\"M6.30002 22.7751C5.43369 22.7751 4.69211 22.4667 4.07527 21.8498C3.45844 21.2328 3.15002 20.4913 3.15002 19.6251V10.2251C3.15002 9.35893 3.45844 8.61735 4.07527 8.00035C4.69211 7.38351 5.43369 7.0751 6.30002 7.0751H6.62502V5.8001C6.62502 4.28343 7.14586 2.99593 8.18752 1.9376C9.22919 0.879264 10.5 0.350098 12 0.350098C13.5 0.350098 14.7709 0.879264 15.8125 1.9376C16.8542 2.99593 17.375 4.28343 17.375 5.8001V7.0751H17.7C18.5662 7.0751 19.3078 7.38351 19.9248 8.00035C20.5416 8.61735 20.85 9.35893 20.85 10.2251V19.6251C20.85 20.4913 20.5416 21.2328 19.9248 21.8498C19.3078 22.4667 18.5662 22.7751 17.7 22.7751H6.30002ZM12 16.9251C12.55 16.9251 13.0209 16.7293 13.4125 16.3376C13.8042 15.9459 14 15.4751 14 14.9251C14 14.3751 13.8042 13.9043 13.4125 13.5126C13.0209 13.1209 12.55 12.9251 12 12.9251C11.45 12.9251 10.9792 13.1209 10.5875 13.5126C10.1959 13.9043 10 14.3751 10 14.9251C10 15.4751 10.1959 15.9459 10.5875 16.3376C10.9792 16.7293 11.45 16.9251 12 16.9251ZM9.77502 7.0751H14.225V5.8001C14.225 5.16126 14.0125 4.61818 13.5875 4.17085C13.1625 3.72368 12.6334 3.5001 12 3.5001C11.3667 3.5001 10.8375 3.72368 10.4125 4.17085C9.98752 4.61818 9.77502 5.16126 9.77502 5.8001V7.0751Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n};\n\nexport default iconLibrary;\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport iconLibrary from \"./nys-icon.library\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-icon.scss?inline\";\n\nexport class NysIcon extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) ariaLabel = \"\";\n @property({ type: String }) rotate = \"0\";\n @property({ type: String }) flip = \"\";\n @property({ type: String }) color = \"\";\n @property({ type: String }) size:\n | \"xs\"\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"xl\"\n | \"2xl\"\n | \"3xl\"\n | \"4xl\"\n | \"5xl\"\n | \"12\"\n | \"14\"\n | \"16\"\n | \"18\"\n | \"20\"\n | \"24\"\n | \"32\"\n | \"40\"\n | \"50\" = \"md\";\n\n private getIcon(): SVGElement | null {\n const iconSVG = iconLibrary[this.name];\n\n if (!iconSVG) return null;\n\n // Parse the SVG string into an actual SVG DOM element\n const parser = new DOMParser();\n const svgDoc = parser.parseFromString(iconSVG, \"image/svg+xml\");\n const svgElement = svgDoc.documentElement;\n\n // Ensure the parsed element is an SVGElement\n if (!(svgElement instanceof SVGElement)) {\n return null;\n }\n\n // Add accessibility attributes directly to the <svg>\n svgElement.setAttribute(\"role\", \"img\");\n if (this.ariaLabel) {\n svgElement.setAttribute(\"aria-label\", this.ariaLabel);\n svgElement.removeAttribute(\"aria-hidden\");\n } else {\n svgElement.setAttribute(\"aria-hidden\", \"true\");\n svgElement.removeAttribute(\"aria-label\");\n }\n\n // Add styles\n svgElement.style.rotate = `${this.rotate}deg`;\n svgElement.style.color = this.color || \"currentcolor\";\n svgElement.classList.add(`nys-icon--${this.size}`);\n svgElement.classList.add(`nys-icon--svg`);\n\n if (this.flip) {\n svgElement.classList.add(`nys-icon--flip-${this.flip}`);\n }\n\n return svgElement;\n }\n\n render() {\n const icon = this.getIcon();\n return icon ? html`${icon}` : null;\n }\n}\n\n/*\n Conditionally register the custom element.\n This ensure the custom element is registered only once to avoid duplication, especially in environments like Storybook where this component may be used as a dependency.\n */\nif (!customElements.get(\"nys-icon\")) {\n customElements.define(\"nys-icon\", NysIcon);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-label.scss?inline\";\n\nexport class NysLabel extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String }) for = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String }) flag = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String })\n get tooltip() {\n return this._tooltip;\n }\n set tooltip(value: string) {\n this._tooltip = value;\n }\n private _tooltip: string = \"\";\n\n render() {\n return html`\n <div class=\"nys-label ${this.inverted ? \"invert\" : \"\"}\">\n <div class=\"nys-label__tooltip-wrapper\">\n <label for=${this.for} class=\"nys-label__label\"\n >${this.label}\n ${this.flag === \"required\"\n ? html`<div class=\"nys-label__required\">*</div>`\n : \"\"}\n ${this.flag === \"optional\"\n ? html`<div class=\"nys-label__optional\">(Optional)</div>`\n : \"\"}</label\n >\n ${this._tooltip\n ? html`<nys-tooltip\n text=\"${this._tooltip}\"\n position=\"top\"\n focusable\n ?inverted=${this.inverted}\n for=\"tooltip-icon-${this.for}\"\n >\n </nys-tooltip>\n <nys-icon\n id=\"tooltip-icon-${this.for}\"\n name=\"info\"\n size=\"3xl\"\n ></nys-icon> `\n : \"\"}\n </div>\n <label for=${this.for} class=\"nys-label__description\">\n <slot name=\"description\">${this.description}</slot>\n </label>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-label\")) {\n customElements.define(\"nys-label\", NysLabel);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-modal.scss?inline\";\n\nlet componentIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysModal extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String }) heading = \"\";\n @property({ type: String }) subheading = \"\";\n @property({ type: Boolean, reflect: true }) open = false;\n @property({ type: Boolean, reflect: true }) mandatory = false;\n @property({ type: String, reflect: true }) width: \"sm\" | \"md\" | \"lg\" = \"md\";\n\n private _actionButtonSlot: HTMLSlotElement | null = null; // cache action button slots (if given) so we can manipulate their widths for mobile vs desktop\n private _prevFocusedElement: HTMLElement | null = null;\n private _originalBodyOverflow: string | null = null;\n\n // Track slot contents to control what HTML is rendered\n @state() private hasBodySlots = false;\n @state() private hasActionSlots = false;\n\n // Lifecycle Methods\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-{{componentName}}-${Date.now()}-${componentIdCounter++}`;\n }\n window.addEventListener(\"resize\", () => this._updateSlottedButtonWidth());\n window.addEventListener(\"keydown\", (e) => this._handleKeydown(e));\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._restoreBodyScroll(); // make sure scroll is restored when modal is removed\n window.removeEventListener(\"keydown\", (e) => this._handleKeydown(e));\n }\n\n async updated(changeProps: Map<string, any>) {\n // Hide main body's scroll bar if modal is open/active\n if (changeProps.has(\"open\")) {\n if (this.open) {\n this._hideBodyScroll();\n this._dispatchOpenEvent();\n await this.updateComplete;\n this._savePrevFocused();\n this._focusOnModal();\n this._updateDismissAria();\n } else {\n this._restorePrevFocused();\n this._restoreBodyScroll();\n this._dispatchCloseEvent();\n this._updateDismissAria();\n }\n }\n }\n\n // Functions\n private _hideBodyScroll() {\n if (this._originalBodyOverflow === null) {\n this._originalBodyOverflow = document.body.style.overflow;\n }\n document.body.style.overflow = \"hidden\";\n }\n\n private _restoreBodyScroll() {\n if (this._originalBodyOverflow !== null) {\n document.body.style.overflow = this._originalBodyOverflow;\n this._originalBodyOverflow = null;\n }\n }\n\n private _savePrevFocused() {\n this._prevFocusedElement = document.activeElement as HTMLElement;\n }\n\n private _focusOnModal() {\n const modal = this.shadowRoot?.querySelector<HTMLElement>(\".nys-modal\");\n modal?.focus();\n }\n\n private async _restorePrevFocused() {\n const prev = this._prevFocusedElement;\n\n if (prev && prev.tagName.toLowerCase() === \"nys-button\") {\n const nysButton = prev as HTMLElement & {\n getButtonElement: () => Promise<HTMLButtonElement>;\n };\n const innerBtn = await nysButton.getButtonElement();\n if (innerBtn) {\n innerBtn.focus();\n return;\n }\n } else {\n this._prevFocusedElement?.focus();\n }\n this._prevFocusedElement = null;\n }\n\n // Check if the slot contains stuff (aka user add texts & action buttons), and render visibility accordingly\n private async _handleBodySlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n if (!slot) return;\n this.hasBodySlots = slot\n .assignedNodes({ flatten: true })\n .some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE || node.textContent?.trim(),\n );\n }\n\n // Determines whether we hide the action buttons slot container based on if user put in action buttons\n private async _handleActionSlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\n 'slot[name=\"actions\"]',\n );\n if (!slot) return;\n this.hasActionSlots = slot\n .assignedNodes({ flatten: true })\n .some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE || node.textContent?.trim(),\n );\n\n // Cached the action button slot container so we can use it continuously for _updateSlottedButtonWidth() during screen resize\n this._actionButtonSlot = slot;\n // Update button widths immediately\n this._updateSlottedButtonWidth();\n }\n\n // Design has it that the slotted action buttons should be fullWidth and display:column direction for mobile view.\n // Therefore, we need to account for mobile size and screen resizes\n private _updateSlottedButtonWidth() {\n if (!this._actionButtonSlot) return; // use the cached variable\n const isMobile = window.innerWidth <= 480;\n\n this._actionButtonSlot.assignedElements().forEach((el) => {\n el.querySelectorAll(\"nys-button\").forEach((btn) => {\n if (isMobile) {\n btn?.setAttribute(\"fullWidth\", \"\");\n } else {\n btn?.removeAttribute(\"fullWidth\");\n }\n });\n });\n }\n\n private _dispatchOpenEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-open\", {\n detail: { id: this.id },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _dispatchCloseEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-close\", {\n detail: { id: this.id },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _getAriaDescribedBy() {\n // Handling what aria-describedby needs to announce in VO based on if the subheading or slot contents exists\n const ariaDescriptions: string[] = [];\n if (this.subheading) {\n ariaDescriptions.push(`${this.id}-subheading`);\n }\n if (this.hasBodySlots) {\n ariaDescriptions.push(`${this.id}-desc`);\n }\n return ariaDescriptions.join(\" \");\n }\n\n /**\n * This exist to prevent the VO for dismiss button from announcing itself between the heading & subheading/slot content.\n * We add the \"Close this window\" ariaLabel after the initial VO is done\n */\n private _updateDismissAria() {\n const dismissBtn = this.shadowRoot?.querySelector(\"nys-button\");\n if (!dismissBtn) return;\n\n // Hide from VO initially\n dismissBtn.setAttribute(\"ariaLabel\", \" \");\n\n if (this.open) {\n // After focus is moved into modal, update label\n setTimeout(() => {\n dismissBtn.setAttribute(\"ariaLabel\", \"Close this window\");\n }, 100);\n }\n }\n\n // Event Handlers\n private async _handleKeydown(e: KeyboardEvent) {\n if (!this.open) return;\n\n // Exit the modal for \"escape\" key\n if (e.key === \"Escape\" && !this.mandatory) {\n e.preventDefault();\n this._closeModal();\n }\n\n // Trap focus to be within the modal only\n if (e.key === \"Tab\") {\n const modal = this.shadowRoot?.querySelector(\".nys-modal\");\n if (!modal) return;\n\n // Gather all elements from slots + dismissible btn\n const knownFocusableElements =\n 'a[href], area[href], button:not([disabled]), details, iframe, object, input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [contentEditable=\"true\"], [tabindex]:not([tabindex^=\"-\"])';\n const focusableElements: HTMLElement[] = [];\n const dismissBtn = modal.querySelector(\"nys-button\") as HTMLElement;\n\n if (dismissBtn) {\n focusableElements.push(dismissBtn);\n }\n\n // Gather from slot elements to store the focusable elements in focusableElements for focus trapping\n const slotElements = Array.from(modal.querySelectorAll(\"slot\"));\n for (const slot of slotElements) {\n const assigned = slot.assignedElements({ flatten: true });\n for (const el of assigned) {\n if (el instanceof HTMLElement && el.matches(knownFocusableElements)) {\n focusableElements.push(el);\n }\n // also account for the action slot container that has nys-buttons\n el.querySelectorAll<HTMLElement>(\"nys-button\").forEach(\n (actionBtn) => {\n focusableElements.push(actionBtn);\n },\n );\n }\n }\n\n if (focusableElements.length > 0) {\n // Laying out the starting (i.e. dismiss btn) and ending elements for looping focus elements\n const firstFocusableEl = focusableElements[0];\n const lastFocusableEl = focusableElements[focusableElements.length - 1];\n let active = document.activeElement as HTMLElement | null;\n let activeIndex = focusableElements.indexOf(active as HTMLElement);\n\n /**\n * Move focus backward when Shift+Tab is pressed.\n * Focus goes to the previous element in focusableElements.\n * If currently at the first element, wrap around to the last element.\n * For <nys-button>, focus the internal button. For other elements, focus directly.\n */\n if (e.shiftKey) {\n e.preventDefault();\n\n let prevIndex = activeIndex - 1;\n if (prevIndex < 0) {\n prevIndex = focusableElements.length - 1; // wrap back to lastFocusableEl\n }\n\n const prevElement = focusableElements[prevIndex];\n const isNysButton =\n focusableElements[prevIndex].tagName.toLowerCase() === \"nys-button\";\n\n // When users slot in \"nys-button\", we have to call focus for the native button within its shadowDOM.\n // Hence the condition statement below\n if (isNysButton) {\n const nysButton = prevElement as HTMLElement & {\n getButtonElement: () => Promise<HTMLButtonElement>;\n };\n const innerBtn = await nysButton.getButtonElement();\n innerBtn?.focus();\n } else {\n prevElement.focus();\n }\n } else {\n // Tab (go back to first focusable element if we're at last)\n if (active === lastFocusableEl) {\n e.preventDefault();\n if (firstFocusableEl.tagName.toLowerCase() === \"nys-button\") {\n const nysButton = firstFocusableEl as HTMLElement & {\n getButtonElement: () => Promise<HTMLButtonElement>;\n };\n const innerBtn = await nysButton.getButtonElement();\n innerBtn?.focus();\n } else {\n firstFocusableEl.focus();\n }\n }\n }\n }\n }\n }\n\n private _closeModal() {\n this.open = false;\n this._dispatchCloseEvent();\n }\n\n render() {\n return this.open\n ? html`<div\n class=\"nys-modal-overlay\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"${this.id}-heading\"\n aria-describedby=\"${this._getAriaDescribedBy()}\"\n >\n <div class=\"nys-modal\" tabindex=\"-1\">\n <div class=\"nys-modal_header\">\n <div class=\"nys-modal_header-inner\">\n <h2 id=\"${this.id}-heading\">${this.heading}</h2>\n ${!this.mandatory\n ? html`<nys-button\n id=\"dismiss-modal\"\n circle\n icon=\"close\"\n variant=\"ghost\"\n @nys-click=${this._closeModal}\n ></nys-button>`\n : \"\"}\n </div>\n ${this.subheading\n ? html`<p id=\"${this.id}-subheading\">${this.subheading}</p>`\n : \"\"}\n </div>\n\n <div\n id=\"${this.id}-desc\"\n class=\"nys-modal_body ${!this.hasBodySlots ? \"hidden\" : \"\"}\"\n >\n <div class=\"nys-modal_body-inner\">\n <slot @slotchange=${this._handleBodySlotChange}></slot>\n </div>\n </div>\n\n <div\n class=\"nys-modal_footer ${!this.hasActionSlots ? \"hidden\" : \"\"}\"\n >\n <slot\n name=\"actions\"\n @slotchange=${this._handleActionSlotChange}\n ></slot>\n </div>\n </div>\n </div>`\n : \"\";\n }\n}\n\nif (!customElements.get(\"nys-modal\")) {\n customElements.define(\"nys-modal\", NysModal);\n}\n","import { LitElement, TemplateResult, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-pagination.scss?inline\";\n\nlet componentIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysPagination extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: Number, reflect: true }) currentPage = 1;\n @property({ type: Number, reflect: true }) totalPages = 1;\n @property({ type: Boolean, reflect: true }) _twoBeforeLast = false;\n\n // Lifecycle Methods\n constructor() {\n super();\n }\n\n willUpdate(changedProps: Map<string, unknown>) {\n if (this.totalPages < 1) this.totalPages = 1; //ensure totalPages is at least 1\n\n if (changedProps.has(\"currentPage\") || changedProps.has(\"totalPages\")) {\n const clamped = this._clampPage(this.currentPage);\n if (clamped !== this.currentPage) {\n this.currentPage = clamped;\n }\n\n const twoBefore = this.currentPage === this.totalPages - 2;\n if (twoBefore !== this._twoBeforeLast) {\n this._twoBeforeLast = twoBefore;\n }\n }\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-pagination-${Date.now()}-${componentIdCounter++}`;\n }\n }\n\n // Functions\n private _clampPage(page: number): number {\n if (page < 1) return 1;\n if (page > this.totalPages) return this.totalPages;\n return page;\n }\n\n private renderPageButtons() {\n const buttons: TemplateResult[] = [];\n\n const addPageButton = (page: number, id?: string) => {\n buttons.push(html`\n <nys-button\n label=${String(page)}\n ariaLabel=\"Page ${page}\"\n id=${ifDefined(id)}\n variant=${this.currentPage === page ? \"filled\" : \"outline\"}\n @nys-click=\"${() => this._handlePageClick(page)}\"\n ></nys-button>\n `);\n };\n\n const addSpacer = (id: string) => {\n buttons.push(\n html`<nys-button\n label=\"...\"\n class=\"spacer\"\n tabindex=\"-1\"\n id=${id}\n ></nys-button>`,\n );\n };\n\n const firstPage = 1;\n const lastPage = this.totalPages;\n const prev = this.currentPage - 1;\n const next = this.currentPage + 1;\n\n // Always show first page\n addPageButton(firstPage);\n\n // Spacer if there's a gap between first and current/prev\n if (this.currentPage > 2) {\n addSpacer(\"first-spacer\");\n }\n\n // Show prev neighbor (desktop; can be hidden via CSS at mobile)\n if (prev > firstPage) {\n addPageButton(prev, \"prev-page\");\n }\n\n // Show current (only if not first/last, since they’re already rendered)\n if (this.currentPage !== firstPage && this.currentPage !== lastPage) {\n addPageButton(this.currentPage, \"current-page\");\n }\n\n // Show next neighbor (desktop; can be hidden via CSS at mobile)\n if (next < lastPage) {\n addPageButton(next, \"next-page\");\n }\n\n // Spacer if there's a gap between current/next and last\n if (this.currentPage < lastPage - 1) {\n addSpacer(\"last-spacer\");\n }\n\n // Always show last page if more than one\n if (lastPage > firstPage) {\n addPageButton(lastPage);\n }\n\n return buttons;\n }\n\n // Event Handlers\n private _handlePageClick(page: number) {\n this.currentPage = this._clampPage(page);\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: { page: this.currentPage },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n render() {\n // If only one page, render nothing\n if (this.totalPages <= 1) {\n return null;\n }\n\n return html`<div class=\"nys-pagination\">\n <nys-button\n id=\"previous\"\n label=\"Previous\"\n prefixIcon=\"chevron_left\"\n variant=\"outline\"\n ?disabled=${this.currentPage === 1}\n @nys-click=\"${() => this._handlePageClick(this.currentPage - 1)}\"\n ></nys-button>\n <nys-button\n id=\"previous--mobile\"\n prefixIcon=\"chevron_left\"\n ariaLabel=\"Previous Page\"\n variant=\"outline\"\n ?disabled=${this.currentPage === 1}\n @nys-click=\"${() => this._handlePageClick(this.currentPage - 1)}\"\n ></nys-button>\n ${this.renderPageButtons()}\n <nys-button\n id=\"next\"\n label=\"Next\"\n suffixIcon=\"chevron_right\"\n variant=\"outline\"\n ?disabled=${this.currentPage === this.totalPages}\n @nys-click=\"${() => this._handlePageClick(this.currentPage + 1)}\"\n ></nys-button>\n <nys-button\n id=\"next--mobile\"\n suffixIcon=\"chevron_right\"\n ariaLabel=\"Next Page\"\n variant=\"outline\"\n ?disabled=${this.currentPage === this.totalPages}\n @nys-click=\"${() => this._handlePageClick(this.currentPage + 1)}\"\n ></nys-button>\n </div>`;\n }\n /****************** 🪡 in the Haystack Release ******/\n /****************** designsystem@its.ny.gov ********/\n}\n\nif (!customElements.get(\"nys-pagination\")) {\n customElements.define(\"nys-pagination\", NysPagination);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport type { NysRadiobutton } from \"./nys-radiobutton\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-radiobutton.scss?inline\";\n\nlet radiogroupIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysRadiogroup extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\"; // while not use by users, this prop is needed for internalElement form logic\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: Boolean, reflect: true }) tile = false;\n @property({ type: String }) tooltip = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" = \"md\";\n\n @state() private selectedValue: string | null = null;\n @state() private _slottedDescriptionText = \"\";\n\n private _internals: ElementInternals;\n\n // Lifecycle Updates\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-radiogroup-${Date.now()}-${radiogroupIdCounter++}`;\n }\n this.addEventListener(\"nys-change\", this._handleRadioButtonChange);\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"nys-change\", this._handleRadioButtonChange);\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n async firstUpdated() {\n await this.updateComplete;\n this._initializeCheckedRadioValue();\n this._setValue(); // This ensures our element always participates in the form\n this._setRadioButtonRequire();\n this._updateRadioButtonsSize();\n this._updateRadioButtonsTile();\n this._updateRadioButtonsShowError();\n this._getSlotDescriptionForAria();\n\n this._initializeChildAttributes();\n this._updateGroupTabIndex();\n }\n\n updated(changedProperties: Map<string | symbol, unknown>) {\n if (\n changedProperties.has(\"required\") ||\n changedProperties.has(\"selectedValue\")\n ) {\n this._manageRequire();\n }\n if (changedProperties.has(\"size\")) {\n this._updateRadioButtonsSize();\n }\n if (changedProperties.has(\"tile\")) {\n this._updateRadioButtonsTile();\n }\n if (changedProperties.has(\"inverted\")) {\n this._updateRadioButtonsInvert();\n }\n if (changedProperties.has(\"showError\")) {\n this._updateRadioButtonsShowError();\n }\n if (changedProperties.has(\"form\")) {\n this._updateRadioButtonsForm();\n }\n }\n\n // This callback is automatically called when the parent form is reset.\n formResetCallback() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton) => {\n (radioButton as NysRadiobutton).formResetUpdate();\n });\n }\n\n // Form Integration\n private _setValue() {\n this._internals.setFormValue(this.selectedValue);\n }\n\n // Updates the \"require\" attribute of the first radiobutton underneath a radiogroup.\n // This will make sure there's a requirement for all radiobutton under the same name/group\n private _setRadioButtonRequire() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton, index) => {\n if (this.required && index === 0) {\n radioButton.setAttribute(\"required\", \"required\");\n }\n });\n }\n\n private async _manageRequire() {\n const message = this.errorMessage || \"Please select an option.\";\n\n const radioButtons = Array.from(this.querySelectorAll(\"nys-radiobutton\"));\n const firstRadio = radioButtons[0] as HTMLElement;\n\n if (firstRadio) {\n if (this.required && !this.selectedValue) {\n this._internals.setValidity(\n { valueMissing: true },\n message,\n firstRadio, // pass the custom element, not shadow input\n );\n } else {\n this.showError = false;\n this._internals.setValidity({}, \"\", firstRadio);\n }\n }\n }\n\n checkValidity() {\n const radioButtons = Array.from(this.querySelectorAll(\"nys-radiobutton\"));\n const valid =\n !this.required ||\n radioButtons.some((radio) => (radio as NysRadiobutton).checked);\n return valid;\n }\n\n // Need to account for if radiogroup already have a radiobutton checked at initialization\n private _initializeCheckedRadioValue() {\n const checkedRadio = this.querySelector(\"nys-radiobutton[checked]\");\n if (checkedRadio) {\n this.selectedValue = checkedRadio.getAttribute(\"value\");\n this._internals.setFormValue(this.selectedValue);\n }\n }\n\n // Core Keyboard & Click Logic\n private _getAllRadios() {\n return Array.from(\n this.querySelectorAll(\"nys-radiobutton\"),\n ) as NysRadiobutton[];\n }\n\n // Arrow / Space / Enter navigation at group level\n private async _handleKeyDown(event: KeyboardEvent) {\n const keys = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \" \",\n \"Enter\",\n ];\n\n if (!keys.includes(event.key)) return;\n event.preventDefault();\n\n const radioBtns = this._getAllRadios().filter((radio) => !radio.disabled);\n const checkedRadio =\n radioBtns.find((radio) => radio.checked) || radioBtns[0];\n\n // Computing the new index based on the keydown event\n const increment =\n event.key === \" \" || event.key === \"Enter\"\n ? 0\n : [\"ArrowUp\", \"ArrowLeft\"].includes(event.key)\n ? -1\n : 1;\n\n let index = radioBtns.indexOf(checkedRadio) + increment;\n // Handles the wrap around ends if user is at first or last radiobutton\n if (index < 0) {\n index = radioBtns.length - 1;\n }\n if (index >= radioBtns.length) {\n index = 0;\n }\n\n // The target is the new radiobutton the user want to choose given the keydown type.\n // We let the target's <input/> dispatch the clickEvent and call _handleRadioButtonChange() directly to make form integration work\n const target = radioBtns[index];\n const input = await target.getInputElement();\n input?.click();\n\n this._updateGroupTabIndex();\n target.focus();\n }\n\n private _updateGroupTabIndex() {\n const radios = this._getAllRadios();\n const active = radios.find((radio) => radio.checked) || radios[0]; // If none checked, make first radiobutton tabbable\n\n radios.forEach((radio) => {\n if (radio.disabled) {\n radio.tabIndex = -1;\n } else {\n radio.tabIndex = radio === active ? 0 : -1;\n }\n\n // Need to update ARIA state due to the new tabindex\n radio.setAttribute(\"aria-checked\", radio.checked ? \"true\" : \"false\");\n radio.setAttribute(\"aria-disabled\", radio.disabled ? \"true\" : \"false\");\n radio.setAttribute(\"aria-required\", this.required ? \"true\" : \"false\");\n });\n }\n\n // Functions\n // Apply ARIA & initial tabindex to each child radio\n private _initializeChildAttributes() {\n const radios = this._getAllRadios();\n radios.forEach((radio) => {\n radio.setAttribute(\"role\", \"radio\");\n radio.setAttribute(\"aria-checked\", String(radio.checked));\n radio.setAttribute(\"aria-required\", String(radio.required));\n radio.setAttribute(\"aria-disabled\", String(radio.disabled));\n radio.setAttribute(\"tabindex\", \"-1\");\n });\n }\n\n // Updates the size of each radiobutton underneath a radiogroup to ensure size standardization\n private _updateRadioButtonsSize() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton) => {\n radioButton.setAttribute(\"size\", this.size);\n });\n }\n\n private _updateRadioButtonsTile() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton) => {\n if (this.tile) {\n radioButton.toggleAttribute(\"tile\", true);\n } else {\n radioButton.removeAttribute(\"tile\");\n }\n });\n }\n\n private _updateRadioButtonsInvert() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton) => {\n if (this.inverted) {\n radioButton.toggleAttribute(\"inverted\", true);\n } else {\n radioButton.removeAttribute(\"inverted\");\n }\n });\n }\n\n private _updateRadioButtonsShowError() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton) => {\n if (this.showError) {\n radioButton.setAttribute(\"showError\", \"\");\n } else {\n radioButton.removeAttribute(\"showError\");\n }\n });\n }\n\n private _updateRadioButtonsForm() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton) => {\n if (this.showError) {\n if (this.form !== null) {\n radioButton.setAttribute(\"form\", this.form);\n } else {\n radioButton.removeAttribute(\"form\");\n }\n } else {\n radioButton.removeAttribute(\"form\");\n }\n });\n }\n\n // Get the slotted text contents so native VO can attempt to announce it within the legend in the fieldset\n private _getSlotDescriptionForAria() {\n const slot = this.shadowRoot?.querySelector(\n 'slot[name=\"description\"]',\n ) as HTMLSlotElement;\n const nodes = slot?.assignedNodes({ flatten: true }) || [];\n\n this._slottedDescriptionText = nodes\n .map((node) => node.textContent?.trim())\n .filter(Boolean)\n .join(\", \");\n }\n\n // Event Handlers\n // Keeps radiogroup informed of the name and value of its current selected radiobutton at each change\n private _handleRadioButtonChange(event: Event) {\n const customEvent = event as CustomEvent;\n const { name, value } = customEvent.detail;\n\n this.name = name;\n this.selectedValue = value;\n this._internals.setFormValue(this.selectedValue);\n\n // Accounts for tabindex & ARIA on every click/space select\n this._updateGroupTabIndex();\n }\n\n private async _handleInvalid(event: Event) {\n event.preventDefault();\n\n // Check if the radio group is invalid and set `showError` accordingly\n if (this._internals.validity.valueMissing) {\n this.showError = true;\n this._manageRequire(); // Refresh validation message\n\n const firstRadio = this.querySelector(\n \"nys-radiobutton\",\n ) as NysRadiobutton;\n\n if (firstRadio) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n firstRadio.focus();\n firstRadio.classList.add(\"active-focus\"); // Needed to show focus outline; will be removed if user clicks to select\n }\n } else {\n // If not part of a form, simply focus.\n firstRadio.focus();\n firstRadio.classList.add(\"active-focus\");\n }\n }\n }\n }\n\n render() {\n return html`<div class=\"nys-radiogroup\">\n <nys-label\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n <div class=\"nys-radiogroup__content\">\n <fieldset role=\"radiogroup\" @keydown=${this._handleKeyDown}>\n <legend class=\"sr-only\">\n ${this.label}${this._slottedDescriptionText\n ? ` ${this._slottedDescriptionText}`\n : this.description\n ? ` ${this.description}`\n : \"\"}\n </legend>\n <slot></slot>\n </fieldset>\n </div>\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage || this.errorMessage}\n .showDivider=${!this.tile}\n ></nys-errormessage>\n </div>`;\n }\n}\n\nif (!customElements.get(\"nys-radiogroup\")) {\n customElements.define(\"nys-radiogroup\", NysRadiogroup);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport \"./nys-radiogroup\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-radiobutton.scss?inline\";\n\nlet radiobuttonIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysRadiobutton extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: Boolean, reflect: true }) checked = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) value = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" = \"md\";\n @property({ type: Boolean, reflect: true }) tile = false;\n\n public async getInputElement(): Promise<HTMLInputElement | null> {\n await this.updateComplete; // Wait for the component to finish rendering\n return this.shadowRoot?.querySelector(\"input\") || null;\n }\n\n // This callback is automatically called when the parent form is reset.\n public formResetUpdate() {\n this.checked = false;\n }\n\n static buttonGroup: Record<string, NysRadiobutton> = {};\n\n // Lifecycle updates\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-radiobutton-${Date.now()}-${radiobuttonIdCounter++}`;\n }\n\n // If this button is initially checked, set it as the current button in its group\n if (this.checked) {\n if (NysRadiobutton.buttonGroup[this.name]) {\n NysRadiobutton.buttonGroup[this.name].checked = false;\n NysRadiobutton.buttonGroup[this.name].requestUpdate();\n }\n NysRadiobutton.buttonGroup[this.name] = this;\n }\n\n this.addEventListener(\"focus\", this._handleFocus);\n this.addEventListener(\"blur\", this._handleBlur);\n this.addEventListener(\"click\", this._handleChange);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.removeEventListener(\"focus\", this._handleFocus);\n this.removeEventListener(\"blur\", this._handleBlur);\n }\n\n updated(changedProperties: Map<string | number | symbol, unknown>) {\n // When \"checked\" changes, update the internals.\n if (changedProperties.has(\"checked\")) {\n // Ensure only one radiobutton per group is checked.\n if (this.checked && NysRadiobutton.buttonGroup[this.name] !== this) {\n if (NysRadiobutton.buttonGroup[this.name]) {\n NysRadiobutton.buttonGroup[this.name].checked = false;\n NysRadiobutton.buttonGroup[this.name].requestUpdate();\n }\n NysRadiobutton.buttonGroup[this.name] = this;\n }\n }\n }\n\n // Functions\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n // If the radiogroup is required but no radio is selected, return false.\n if (this.required && !this.checked) {\n return false;\n }\n\n // Otherwise, optionally check the native input's validity if available.\n const input = this.shadowRoot?.querySelector(\"input\");\n return input ? input.checkValidity() : true;\n }\n\n // Event Handlers\n private _emitChangeEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: {\n id: this.id,\n checked: this.checked,\n name: this.name,\n value: this.value,\n },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // Handle radiobutton change event & unselection of other options in group\n private _handleChange() {\n // Remove active-focus so the focus outline doesn't linger\n // when the user selects a choice, since form focus is no longer needed\n this.classList.remove(\"active-focus\");\n\n if (!this.checked && !this.disabled) {\n if (NysRadiobutton.buttonGroup[this.name]) {\n NysRadiobutton.buttonGroup[this.name].checked = false;\n NysRadiobutton.buttonGroup[this.name].requestUpdate();\n }\n\n NysRadiobutton.buttonGroup[this.name] = this;\n this.checked = true;\n\n // Dispatch a change event with the name and value\n this._emitChangeEvent();\n }\n }\n\n // Handle focus event\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n // Handle blur event\n private _handleBlur() {\n this.classList.remove(\"active-focus\"); // removing this classList so the focus ring for handleInvalid() at radiogroup level will disappear\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n private _callInputHandling() {\n if (this.disabled) return;\n\n // Find the hidden input and trigger a click to toggle selection\n const input = this.shadowRoot?.querySelector(\n 'input[type=\"radio\"]',\n ) as HTMLInputElement;\n\n if (input) {\n input.focus();\n input.click();\n }\n }\n\n render() {\n return html`\n <input\n type=\"radio\"\n name=\"${ifDefined(this.name ? this.name : undefined)}\"\n .checked=${this.checked}\n ?disabled=${this.disabled}\n .value=${this.value}\n ?required=\"${this.required}\"\n form=${ifDefined(this.form || undefined)}\n @change=\"${this._handleChange}\"\n hidden\n aria-hidden=\"true\"\n />\n <div\n class=\"nys-radiobutton\"\n @click=\"${this._callInputHandling}\"\n aria-label=${this.label}\n >\n <span class=\"nys-radiobutton__radio\"></span>\n ${this.label &&\n html`<nys-label\n label=${this.label}\n description=${ifDefined(this.description || undefined)}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label> `}\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-radiobutton\")) {\n customElements.define(\"nys-radiobutton\", NysRadiobutton);\n}\n","import { LitElement, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\nexport class NysOption extends LitElement {\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) selected = false;\n @property({ type: String }) value = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: Boolean, reflect: true }) hidden = false;\n\n firstUpdated() {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n if (slot) {\n slot.addEventListener(\"slotchange\", () => {\n const assignedNodes = slot.assignedNodes({ flatten: true });\n if (assignedNodes.length > 0) {\n this.label = assignedNodes[0].textContent?.trim() || \"\";\n }\n });\n }\n }\n\n render() {\n return html`\n <option\n ?disabled=${this.disabled}\n ?selected=${this.selected}\n value=${this.value}\n label=${this.label}\n ?hidden=${this.hidden}\n >\n <slot>${this.label}</slot>\n </option>\n `;\n }\n}\n\ncustomElements.define(\"nys-option\", NysOption);\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { NysOption } from \"./nys-option\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-select.scss?inline\";\n\nlet selectIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysSelect extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String }) value = \"\";\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: String }) tooltip = \"\";\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: String, reflect: true }) width:\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"full\" = \"full\";\n\n private _originalErrorMessage = \"\";\n\n private _hasUserInteracted = false; // need this flag for \"eager mode\"\n private _internals: ElementInternals;\n\n // Lifecycle updates\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-select-${Date.now()}-${selectIdCounter++}`;\n }\n\n this._originalErrorMessage = this.errorMessage ?? \"\";\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n //read in slotted options\n const slot = this.shadowRoot?.querySelector(\n 'slot:not([name=\"description\"])',\n ) as HTMLSlotElement | null;\n\n if (slot) {\n this._handleSlotChange();\n }\n\n // This ensures our element always participates in the form\n this._setValue();\n }\n\n // This callback is automatically called when the parent form is reset.\n formResetCallback() {\n this.value = \"\";\n }\n\n private _handleSlotChange() {\n const slot = this.shadowRoot?.querySelector(\n 'slot:not([name=\"description\"])',\n ) as HTMLSlotElement | null;\n const select = this.shadowRoot?.querySelector(\"select\");\n\n if (!slot || !select) return;\n\n // Clean up any previously cloned <option> or <optgroup> elements so we don't get duplicates\n Array.from(select.children).forEach((child) => {\n if (!(child as HTMLElement).hasAttribute(\"data-native\")) {\n child.remove();\n }\n });\n\n const assignedElements = slot.assignedElements({ flatten: true });\n\n assignedElements.forEach((node) => {\n // ---- Handle <nys-option> ----\n if (node instanceof NysOption) {\n const optionElement = document.createElement(\"option\");\n optionElement.value = node.value;\n optionElement.textContent =\n node.label || node.textContent?.trim() || \"\";\n optionElement.disabled = node.disabled;\n optionElement.selected = node.selected;\n select.appendChild(optionElement);\n return;\n }\n\n // ---- Handle native <option> ----\n if (node.tagName === \"OPTION\") {\n const original = node as HTMLOptionElement;\n const optionClone = original.cloneNode(true) as HTMLOptionElement;\n\n optionClone.setAttribute(\"data-native\", \"true\");\n optionClone.disabled = original.disabled;\n optionClone.selected = original.selected;\n\n select.appendChild(optionClone);\n return;\n }\n\n // ---- Handle <optgroup> ----\n if (node.tagName === \"OPTGROUP\") {\n const groupClone = document.createElement(\"optgroup\");\n groupClone.label = (node as HTMLOptGroupElement).label;\n if ((node as HTMLOptGroupElement).disabled) {\n groupClone.disabled = true;\n }\n\n // iterate children inside optgroup (could be nys-option or native option)\n Array.from(node.children).forEach((child) => {\n if (child instanceof NysOption) {\n const option = document.createElement(\"option\");\n option.value = child.value;\n option.textContent = child.label || child.textContent?.trim() || \"\";\n option.disabled = child.disabled;\n option.selected = child.selected;\n groupClone.appendChild(option);\n } else if (child.tagName === \"OPTION\") {\n const optionClone = child.cloneNode(true) as HTMLOptionElement;\n groupClone.appendChild(optionClone);\n }\n });\n\n select.appendChild(groupClone);\n return;\n }\n });\n\n // Sync initial selected state into component value\n const selectedOption = Array.from(select.options).find((o) => o.selected);\n\n if (selectedOption) {\n this.value = selectedOption.value;\n this._internals.setFormValue(this.value);\n }\n }\n\n // Form Integration\n private _setValue() {\n // // set value to the option that is selected by default\n // const select = this.shadowRoot?.querySelector(\"select\");\n // if (!select) return;\n\n // // for each option, see if it's selected\n // Array.from(select.options).forEach((option) => {\n // if (option.selected) {\n // this.value = option.value;\n // }\n // });\n\n this._internals.setFormValue(this.value);\n this._manageRequire(); // Check validation when value is set\n }\n\n private _manageRequire() {\n const select = this.shadowRoot?.querySelector(\"select\");\n if (!select) return;\n\n const message = this.errorMessage || \"This field is required.\";\n const isInvalid = this.required && !this.value;\n\n if (isInvalid) {\n this._internals.ariaRequired = \"true\"; // Screen readers should announce error\n this._internals.setValidity({ valueMissing: true }, message, select);\n } else {\n this._internals.ariaRequired = \"false\"; // Reset when valid\n this._internals.setValidity({});\n this._hasUserInteracted = false; // Reset the interaction flag, make lazy again\n }\n }\n\n private _setValidityMessage(message: string = \"\") {\n const select = this.shadowRoot?.querySelector(\"select\");\n if (!select) return;\n\n // Toggle the HTML <div> tag error message\n this.showError = !!message;\n\n // If user sets errorMessage, this will always override the native validation message\n if (this._originalErrorMessage?.trim() && message !== \"\") {\n this.errorMessage = this._originalErrorMessage;\n } else {\n this.errorMessage = message;\n }\n\n const validityState = message ? { customError: true } : {};\n this._internals.setValidity(validityState, this.errorMessage, select);\n }\n\n private _validate() {\n const select = this.shadowRoot?.querySelector(\"select\");\n if (!select) return;\n\n // Get the native validation state\n let message = select.validationMessage;\n this._manageRequire(); // Makes sure the required state is checked\n\n this._setValidityMessage(message);\n }\n\n // Functions\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n const select = this.shadowRoot?.querySelector(\"select\");\n return select ? select.checkValidity() : true;\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this._hasUserInteracted = true; // Start aggressive mode due to form submission\n this._validate();\n this.showError = true;\n\n const select = this.shadowRoot?.querySelector(\"select\");\n if (select) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n select.focus();\n }\n } else {\n // If not part of a form, simply focus.\n select.focus();\n }\n }\n }\n\n // Event Handlers\n // Handle change event to bubble up selected value\n private _handleChange(e: Event) {\n const select = e.target as HTMLSelectElement;\n this.value = select.value;\n this._internals.setFormValue(this.value);\n\n // Clear error immediately if value is now valid\n if (this.required && this.value) {\n this.showError = false;\n this.errorMessage = \"\";\n this._internals.setValidity({});\n }\n\n // Validate aggressively if the user has already interacted\n if (this._hasUserInteracted) {\n this._validate();\n }\n\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: { id: this.id, value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // Handle focus event\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n // Handle blur event\n private _handleBlur() {\n if (!this._hasUserInteracted) {\n this._hasUserInteracted = true;\n }\n this._validate();\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n // Check if the current value matches any option, and if so, set it as selected\n updated(changedProperties: Map<string, unknown>): void {\n super.updated(changedProperties);\n\n // This ensures the value is set correctly after the component renders\n if (changedProperties.has(\"value\")) {\n const selectElement = this.shadowRoot?.querySelector(\"select\");\n if (selectElement) {\n selectElement.value = this.value;\n }\n }\n }\n\n render() {\n return html`\n <div class=\"nys-select\">\n <nys-label\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n <div class=\"nys-select__selectwrapper\">\n <select\n class=\"nys-select__select\"\n name=${this.name}\n id=${this.id + \"--native\"}\n form=${ifDefined(this.form || undefined)}\n ?disabled=${this.disabled}\n ?required=${this.required}\n aria-disabled=\"${this.disabled}\"\n aria-label=\"${[this.label, this.description]\n .filter(Boolean)\n .join(\" \")}\"\n .value=${this.value}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @change=\"${this._handleChange}\"\n >\n <option data-native hidden disabled value=\"\"></option>\n </select>\n <slot style=\"display: none;\"></slot>\n <nys-icon\n name=\"expand_all\"\n size=\"2xl\"\n class=\"nys-select__icon\"\n ></nys-icon>\n </div>\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this.errorMessage}\n ></nys-errormessage>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-select\")) {\n customElements.define(\"nys-select\", NysSelect);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-skipnav.scss?inline\";\n\nexport class NysSkipnav extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String }) href = \"\";\n // @property({ type: Boolean }) demoVisible = false; // For demo purposes only\n\n constructor() {\n super();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-skipnav-${Date.now()}`;\n }\n }\n\n // Event Handlers\n private _handleFocus() {\n const linkElement = this.shadowRoot?.querySelector(\".nys-skipnav__link\");\n\n linkElement?.classList.add(\"show\");\n }\n\n private _handleBlur() {\n const linkElement = this.shadowRoot?.querySelector(\".nys-skipnav__link\");\n\n linkElement?.classList.remove(\"show\"); // Link is hidden whenever not focused\n }\n\n private _handleClick() {\n // Use href or default to #main-content\n const targetId = (this.href || \"#main-content\").replace(\"#\", \"\");\n const targetEl = document.getElementById(targetId);\n\n if (targetEl) {\n // Make sure it's focusable for screen readers rather than just scrolling to it\n targetEl.setAttribute(\"tabindex\", \"-1\");\n targetEl.focus();\n // Remove the blue outline that is applied to focused elements since we don't want the blue outline on the main container\n targetEl.style.outline = \"none\";\n }\n }\n\n render() {\n return html`\n <div class=\"nys-skipnav\">\n <a\n href=${this.href ? this.href : \"#main-content\"}\n tabindex=\"0\"\n class=\"nys-skipnav__link\"\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @click=\"${this._handleClick}\"\n >\n Skip to main content\n </a>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-skipnav\")) {\n customElements.define(\"nys-skipnav\", NysSkipnav);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-stepper.scss?inline\";\n\nexport class NysStep extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: Boolean, reflect: true }) selected = false;\n @property({ type: Boolean, reflect: true }) current = false;\n @property({ type: String }) label = \"\";\n @property({ type: String }) href = \"\";\n @property({ type: Boolean }) isCompactExpanded = false;\n @property({ attribute: false }) onClick?: (e: Event) => void;\n @property({ type: Number }) stepNumber = 0;\n\n private _handleActivate(e: Event) {\n // Run user-supplied onClick first (if present)\n if (typeof this.onClick === \"function\") {\n this.onClick(e);\n }\n\n // Dispatch event as cancelable so user can prevent navigation\n const event = new CustomEvent(\"nys-step-click\", {\n bubbles: true,\n composed: true,\n cancelable: true,\n detail: { href: this.href, label: this.label },\n });\n\n if ((this.hasAttribute(\"previous\") || this.current) && !this.selected) {\n this.dispatchEvent(event);\n\n // Only navigate if event was not canceled\n if (!event.defaultPrevented && this.href) {\n window.location.href = this.href;\n }\n }\n }\n\n private _handleKeydown(e: KeyboardEvent) {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n this._handleActivate(e);\n }\n }\n\n render() {\n return html`\n <div class=\"nys-step\">\n <div class=\"nys-step__linewrapper\">\n <div class=\"nys-step__line\"></div>\n </div>\n <div\n class=\"nys-step__contentwrapper\"\n @click=${this._handleActivate}\n @keydown=${this._handleKeydown}\n role=\"button\"\n aria-label=\"${this.label} Step\"\n ?disabled=${!(\n this.selected ||\n this.current ||\n this.hasAttribute(\"previous\")\n )}\n >\n <div class=\"nys-step__number\" tabindex=\"-1\" aria-hidden=\"true\">\n ${this.stepNumber}\n </div>\n <div class=\"nys-step__content\" tabindex=\"-1\" aria-hidden=\"true\">\n <div\n class=\"nys-step__label\"\n tabindex=${!(\n this.selected ||\n this.current ||\n this.hasAttribute(\"previous\")\n )\n ? \"-1\"\n : \"0\"}\n aria-hidden=\"true\"\n >\n ${this.label}\n </div>\n </div>\n </div>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-step\")) {\n customElements.define(\"nys-step\", NysStep);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport \"./nys-step\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-stepper.scss?inline\";\n\nexport class NysStepper extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) counterText = \"initial\";\n @property({ type: Boolean, reflect: true })\n isCompactExpanded = false;\n\n private _stepsNumbered = false;\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"nys-step-click\", this._onStepClick);\n // Defer step validation to next tick to ensure children are upgraded\n requestAnimationFrame(() => this._validateSteps());\n }\n\n disconnectedCallback() {\n this.removeEventListener(\"nys-step-click\", this._onStepClick);\n super.disconnectedCallback();\n }\n\n private _validateSteps() {\n Array.from(this.children).forEach((child) => {\n const isStep =\n child instanceof HTMLElement &&\n child.tagName.toLowerCase() === \"nys-step\";\n const isSlotActionsContainer =\n child instanceof HTMLElement &&\n child.hasAttribute(\"slot\") &&\n child.getAttribute(\"slot\") === \"actions\";\n\n if (!isStep && !isSlotActionsContainer) {\n console.warn(\n \"Only <nys-step> elements or the <div slot='actions'> container are allowed as direct children of <nys-stepper>. Removing:\",\n child,\n );\n child.remove();\n }\n });\n }\n\n private _validateButtonSlot(event: Event) {\n const slot = event.target as HTMLSlotElement;\n const assignedElements = slot.assignedElements();\n\n // Ensure exactly one direct node in the slot, and it must be a div\n if (\n assignedElements.length !== 1 ||\n assignedElements[0].tagName.toLowerCase() !== \"div\"\n ) {\n console.warn(\n \"The 'actions' slot must have exactly one <div> as a direct child.\",\n );\n return;\n }\n\n const div = assignedElements[0] as HTMLElement;\n\n // Iterate through all buttons and validate\n Array.from(div.children).forEach((button) => {\n const isNysButton =\n button instanceof HTMLElement &&\n button.tagName.toLowerCase() === \"nys-button\";\n\n if (!isNysButton) {\n console.warn(\n \"The <div> inside 'actions' slot only accepts <nys-button> elements. Removing invalid node:\",\n button,\n );\n button.remove();\n } else {\n // Ensure nys-button has correct styles\n button.setAttribute(\"size\", \"sm\");\n if (button.hasAttribute(\"fullWidth\")) {\n button.style.flex = \"1 1 0\";\n }\n }\n });\n }\n\n private _onStepClick = async (event: Event) => {\n const clickedStep = event\n .composedPath()\n .find(\n (el) =>\n el instanceof HTMLElement && el.tagName.toLowerCase() === \"nys-step\",\n ) as HTMLElement | undefined;\n\n if (!clickedStep) return;\n\n const steps = Array.from(this.querySelectorAll(\"nys-step\"));\n const currentIndex = steps.findIndex((step) =>\n step.hasAttribute(\"current\"),\n );\n const clickedIndex = steps.indexOf(clickedStep);\n\n // Can't select past current\n if (currentIndex !== -1 && clickedIndex > currentIndex) return;\n\n // Can't select already selected\n if (clickedStep.hasAttribute(\"selected\")) return;\n\n // Remove selected from previous and move to new selected\n steps.forEach((step) => step.removeAttribute(\"selected\"));\n clickedStep.setAttribute(\"selected\", \"\");\n\n // Update counter immediately\n this._updateCounter();\n\n // Close expanded if it was open\n this.isCompactExpanded = false;\n };\n\n private _updateCounter() {\n let newCounterText: string;\n\n if (this.isCompactExpanded) {\n newCounterText = \"Back to Form\";\n this.style.height = \"-webkit-fit-content\";\n this.style.height = \"-moz-fit-content\";\n this.style.height = \"fit-content\";\n } else {\n this.style.height = \"auto\";\n\n const steps = this.querySelectorAll<HTMLElement>(\"nys-step\");\n const selectedIndex = Array.from(steps).findIndex((step) =>\n step.hasAttribute(\"selected\"),\n );\n const totalSteps = steps.length;\n\n newCounterText =\n selectedIndex >= 0\n ? `Step ${selectedIndex + 1} of ${totalSteps}`\n : `Step 1 of ${totalSteps}`;\n }\n\n if (newCounterText !== this.counterText) {\n this.counterText = newCounterText;\n }\n }\n\n willUpdate() {\n const steps = this.querySelectorAll<any>(\"nys-step\");\n\n if (!this._stepsNumbered) {\n steps.forEach((step, index) => {\n step.stepNumber = index + 1;\n });\n this._stepsNumbered = true;\n }\n\n let foundCurrent = false;\n let selectedAssigned = false;\n let currentAssigned = false;\n\n steps.forEach((step, i) => {\n // Check if multiple \"current\" exist, respect the first instance\n if (step.hasAttribute(\"current\")) {\n if (!currentAssigned) {\n currentAssigned = true;\n } else {\n step.removeAttribute(\"current\");\n }\n }\n\n // Set first\n if (i === 0) {\n step.setAttribute(\"first\", \"\");\n } else {\n step.removeAttribute(\"first\");\n }\n\n // Set previous\n if (step.hasAttribute(\"current\")) {\n foundCurrent = true;\n step.removeAttribute(\"previous\");\n } else if (!foundCurrent) {\n step.setAttribute(\"previous\", \"\");\n } else {\n step.removeAttribute(\"previous\");\n }\n\n // Handle selected, respect first instance\n if (step.hasAttribute(\"selected\")) {\n if (foundCurrent || selectedAssigned) {\n step.removeAttribute(\"selected\");\n } else {\n selectedAssigned = true;\n }\n }\n\n // Handle compact expanded\n if (this.isCompactExpanded) {\n step.setAttribute(\"isCompactExpanded\", \"\");\n } else {\n step.removeAttribute(\"isCompactExpanded\");\n }\n });\n\n // Selected fallback\n if (!selectedAssigned) {\n if (currentAssigned) {\n steps.forEach((step) => {\n if (step.hasAttribute(\"current\") && !selectedAssigned) {\n step.setAttribute(\"selected\", \"\");\n selectedAssigned = true;\n }\n });\n } else if (steps.length > 0) {\n // If no current or selected, mark first as both current and selected\n steps[0].setAttribute(\"current\", \"\");\n steps[0].setAttribute(\"selected\", \"\");\n }\n }\n\n // Always update counter\n this._updateCounter();\n }\n\n private _toggleCompact() {\n this.isCompactExpanded = !this.isCompactExpanded;\n }\n\n private _handleCounterKeydown(event: KeyboardEvent) {\n if (event.key === \" \" || event.key === \"Enter\") {\n event.preventDefault();\n this._toggleCompact();\n }\n }\n\n render() {\n return html`\n <div class=\"nys-stepper\" name=${this.name}>\n <div class=\"nys-stepper__header\">\n <slot name=\"actions\" @slotchange=${this._validateButtonSlot}></slot>\n <div class=\"nys-stepper__headertext\">\n <div class=\"nys-stepper__label\">${this.label}</div>\n <div\n class=\"nys-stepper__counter\"\n @click=${this._toggleCompact}\n @keydown=${this._handleCounterKeydown}\n role=\"button\"\n tabindex=\"0\"\n aria-label=${this.isCompactExpanded\n ? \"Collapse step navigation to view the form\"\n : `Expand step navigation. You are on ${this.counterText}`}\n aria-expanded=${this.isCompactExpanded ? \"true\" : \"false\"}\n >\n ${this.counterText}\n </div>\n </div>\n </div>\n <slot class=\"nys-stepper__steps\"></slot>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-stepper\")) {\n customElements.define(\"nys-stepper\", NysStepper);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-textarea.scss?inline\";\n\nlet textareaIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysTextarea extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String }) placeholder = \"\";\n @property({ type: String }) value = \"\";\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) readonly = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: String }) tooltip = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: Number }) maxlength: number | null = null;\n @property({ type: String, reflect: true }) width:\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"full\" = \"full\";\n @property({ type: Number }) rows = 4;\n @property({ type: String, reflect: true }) resize: \"vertical\" | \"none\" =\n \"vertical\";\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n\n async updated(changedProperties: Map<string | number | symbol, unknown>) {\n await Promise.resolve();\n if (changedProperties.has(\"rows\")) {\n this.rows = this.rows ?? 4;\n }\n }\n\n private _hasUserInteracted = false; // need this flag for \"eager mode\"\n private _internals: ElementInternals;\n\n // Lifecycle updates\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-textarea-${Date.now()}-${textareaIdCounter++}`;\n }\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n // This ensures our element always participates in the form\n this._setValue();\n }\n\n // This callback is automatically called when the parent form is reset.\n formResetCallback() {\n this.value = \"\";\n }\n\n // Form Integration\n private _setValue() {\n this._internals.setFormValue(this.value);\n this._manageRequire();\n }\n\n private _manageRequire() {\n const textarea = this.shadowRoot?.querySelector(\"textarea\");\n\n if (!textarea) return;\n\n const message = this.errorMessage || \"This field is required\";\n const isInvalid = this.required && !this.value;\n\n if (isInvalid) {\n this._internals.ariaRequired = \"true\";\n this._internals.setValidity({ valueMissing: true }, message, textarea);\n } else {\n this._internals.ariaRequired = \"false\"; // Reset when valid\n this._internals.setValidity({});\n this._hasUserInteracted = false; // Reset lazy validation when valid\n }\n }\n\n private _setValidityMessage(message: string = \"\") {\n const textarea = this.shadowRoot?.querySelector(\"textarea\");\n if (!textarea) return;\n\n // Toggle the HTML <div> tag error message\n this.showError = !!message;\n // If user sets errorMessage, this will always override the native validation message\n if (this.errorMessage?.trim() && message !== \"\") {\n message = this.errorMessage;\n }\n\n this._internals.setValidity(\n message ? { customError: true } : {},\n message,\n textarea,\n );\n }\n\n private _validate() {\n const textarea = this.shadowRoot?.querySelector(\"textarea\");\n if (!textarea) return;\n\n // Get the native validation state\n let message = textarea.validationMessage;\n\n this._setValidityMessage(message);\n }\n\n // Functions\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n const textarea = this.shadowRoot?.querySelector(\"textarea\");\n return textarea ? textarea.checkValidity() : true;\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this._hasUserInteracted = true; // Start aggressive mode due to form submission\n this._validate();\n\n const textarea = this.shadowRoot?.querySelector(\"textarea\");\n if (textarea) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n textarea.focus();\n }\n } else {\n // If not part of a form, simply focus.\n textarea.focus();\n }\n }\n }\n\n // Event Handlers\n // Handle input event to check pattern validity\n private _handleInput(event: Event) {\n const textarea = event.target as HTMLInputElement;\n this.value = textarea.value;\n this._internals.setFormValue(this.value);\n\n // Field is invalid after unfocused, validate aggressively on each input (e.g. Eager mode: a combination of aggressive and lazy.)\n if (this._hasUserInteracted) {\n this._validate();\n }\n\n this.dispatchEvent(\n new CustomEvent(\"nys-input\", {\n detail: { id: this.id, value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // Handle focus event\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n // Handle blur event\n private _handleBlur() {\n if (!this._hasUserInteracted) {\n this._hasUserInteracted = true; // At initial unfocus: if textarea is invalid, start aggressive mode\n }\n\n this._validate();\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n private _handleSelect(e: Event) {\n const select = e.target as HTMLSelectElement;\n this.value = select.value;\n this.dispatchEvent(\n new CustomEvent(\"nys-select\", {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _handleSelectionChange(e: Event) {\n const select = e.target as HTMLSelectElement;\n this.value = select.value;\n this.dispatchEvent(\n new CustomEvent(\"nys-selectionchange\", {\n detail: { id: this.id, value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n render() {\n return html`\n <label class=\"nys-textarea\">\n <nys-label\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n <textarea\n class=\"nys-textarea__textarea ${this.resize}\"\n name=${this.name}\n id=${this.id + \"--native\"}\n .value=${this.value}\n ?disabled=${this.disabled}\n ?required=${this.required}\n ?readonly=${this.readonly}\n aria-disabled=${ifDefined(this.disabled ? \"true\" : undefined)}\n aria-required=${ifDefined(this.required ? \"true\" : undefined)}\n aria-label=${ifDefined(this.label || undefined)}\n aria-description=${ifDefined(this.description || undefined)}\n placeholder=${ifDefined(\n this.placeholder ? this.placeholder : undefined,\n )}\n maxlength=${ifDefined(this.maxlength ?? undefined)}\n .rows=${this.rows}\n form=${ifDefined(this.form || undefined)}\n @input=${this._handleInput}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @select=\"${this._handleSelect}\"\n @selectionchange=\"${this._handleSelectionChange}\"\n ></textarea>\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage || this.errorMessage}\n ></nys-errormessage>\n </label>\n `;\n }\n}\n\nif (!customElements.get(\"nys-textarea\")) {\n customElements.define(\"nys-textarea\", NysTextarea);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-textinput.scss?inline\";\n\nlet textinputIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysTextinput extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String, reflect: true }) type:\n | \"email\"\n | \"number\"\n | \"password\"\n | \"search\"\n | \"tel\"\n | \"text\"\n | \"url\" = \"text\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String }) placeholder = \"\";\n @property({ type: String }) value = \"\";\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) readonly = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: String }) tooltip = \"\";\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String }) pattern = \"\";\n @property({ type: Number }) maxlength: number | null = null;\n @property({ type: String, reflect: true }) width:\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"full\" = \"full\";\n @property({ type: Number }) step: number | null = null;\n @property({ type: Number }) min: number | null = null;\n @property({ type: Number }) max: number | null = null;\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @state() private showPassword = false;\n\n private _originalErrorMessage = \"\";\n private _hasUserInteracted = false; // need this flag for \"eager mode\"\n private _internals: ElementInternals;\n\n private _maskPatterns: Record<string, string> = {\n tel: \"(___) ___-____\",\n };\n\n // Lifecycle updates\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-textinput-${Date.now()}-${textinputIdCounter++}`;\n }\n\n this._originalErrorMessage = this.errorMessage ?? \"\";\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n // This ensures our element always participates in the form\n this._setValue();\n }\n\n // Ensure the \"width\" property is valid after updates\n async updated(changedProperties: Map<string | number | symbol, unknown>) {\n if (changedProperties.has(\"disabled\")) {\n this._validateButtonSlot(\"startButton\");\n this._validateButtonSlot(\"endButton\");\n }\n\n if (changedProperties.has(\"type\")) {\n const mask = this._maskPatterns[this.type];\n const input = this.shadowRoot?.querySelector(\"input\");\n\n if (input) {\n if (mask) {\n input.maxLength = mask.length;\n this._updateOverlay(input.value, mask);\n } else {\n input.removeAttribute(\"maxLength\");\n const overlay = this.shadowRoot?.querySelector(\n \".nys-textinput__mask-overlay\",\n );\n if (overlay) overlay.textContent = \"\";\n }\n }\n }\n }\n\n // This callback is automatically called when the parent form is reset.\n formResetCallback() {\n this.value = \"\";\n }\n\n // Form Integration\n private _setValue() {\n this._internals.setFormValue(this.value);\n this._manageRequire(); // Update validation\n }\n\n private _manageRequire() {\n const input = this.shadowRoot?.querySelector(\"input\");\n\n if (!input) return;\n\n const message = this.errorMessage || \"This field is required\";\n const isInvalid =\n this.required && (!this.value || this.value?.trim() === \"\"); // Check for blank as well\n\n if (isInvalid) {\n this._internals.ariaRequired = \"true\";\n this._internals.setValidity({ valueMissing: true }, message, input);\n } else {\n this._internals.ariaRequired = \"false\";\n this._internals.setValidity({});\n this._hasUserInteracted = false; // Reset eager/lazy checking\n }\n }\n\n private _setValidityMessage(message: string = \"\") {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Always show the visual error if there is a message\n this.showError = !!message;\n\n // Use the original errorMessage if defined, or keep the message from validation\n if (this._originalErrorMessage?.trim() && message !== \"\") {\n this.errorMessage = this._originalErrorMessage;\n } else {\n this.errorMessage = message;\n }\n\n const validityState = message ? { customError: true } : {};\n this._internals.setValidity(validityState, this.errorMessage, input);\n }\n\n private _validate() {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Get the native validation state\n const validity = input.validity;\n let message = \"\";\n\n // Check each possible validation error\n if (validity.valueMissing) {\n message = \"This field is required\";\n } else if (validity.typeMismatch) {\n message = \"Invalid format for this type\";\n } else if (validity.patternMismatch) {\n message = \"Invalid format\";\n } else if (validity.tooShort) {\n message = `Value is too short. Minimum length is ${input.minLength}`;\n } else if (validity.tooLong) {\n message = `Value is too long. Maximum length is ${input.maxLength}`;\n } else if (validity.rangeUnderflow) {\n message = `Value must be at least ${input.min}`;\n } else if (validity.rangeOverflow) {\n message = `Value must be at most ${input.max}`;\n } else if (validity.stepMismatch) {\n message = \"Invalid step value\";\n } else {\n message = input.validationMessage;\n }\n\n this._setValidityMessage(message);\n }\n\n // Functions\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n const input = this.shadowRoot?.querySelector(\"input\");\n return input ? input.checkValidity() : true;\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this._hasUserInteracted = true; // Start aggressive mode due to form submission\n this._validate();\n\n const input = this.shadowRoot?.querySelector(\"input\");\n if (input) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n input.focus();\n }\n } else {\n // If not part of a form, simply focus.\n input.focus();\n }\n }\n }\n\n private _togglePasswordVisibility() {\n this.showPassword = !this.showPassword;\n }\n\n private _updateOverlay(value: string, mask: string) {\n const overlay = this.shadowRoot?.querySelector(\n \".nys-textinput__mask-overlay\",\n ) as HTMLElement;\n if (!overlay) return;\n\n const filled = value;\n const remaining = mask.slice(filled.length);\n overlay.textContent = filled + remaining;\n }\n\n private _applyMask(value: string, mask: string): string {\n const digits = value.replace(/\\D/g, \"\");\n let result = \"\";\n\n // Special handling for tel to avoid trailing dash\n if (this.type === \"tel\") {\n if (digits.length > 0) {\n result = \"(\" + digits.substring(0, 3);\n }\n if (digits.length >= 4) {\n result += \") \" + digits.substring(3, 6);\n }\n // Add dash if there are more than 6 digits\n if (digits.length > 6) {\n result += \"-\" + digits.substring(6, 10);\n }\n return result;\n }\n\n // Default generic masking logic\n let digitIndex = 0;\n for (let i = 0; i < mask.length; i++) {\n if (mask[i] === \"_\" || mask[i].match(/[d9]/i)) {\n if (digitIndex < digits.length) {\n result += digits[digitIndex++];\n } else {\n break;\n }\n } else {\n result += mask[i]; // keep formatting symbols\n }\n }\n\n return result;\n }\n\n // Event Handlers\n // Handle input event to check pattern validity\n private _handleInput(event: Event) {\n const input = event.target as HTMLInputElement;\n let newValue = input.value;\n\n const mask = this._maskPatterns[this.type];\n if (mask) {\n newValue = this._applyMask(newValue, mask);\n input.value = newValue; // ensure input reflects masked value\n this._updateOverlay(newValue, mask);\n }\n\n this.value = newValue;\n this._internals.setFormValue(this.value);\n\n // Field is invalid after unfocused, validate aggressively on each input (e.g. Eager mode: a combination of aggressive and lazy.)\n if (this._hasUserInteracted) {\n this._validate();\n }\n\n this.dispatchEvent(\n new CustomEvent(\"nys-input\", {\n detail: { id: this.id, value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // Handle focus event\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n // Handle blur event\n private _handleBlur() {\n if (!this._hasUserInteracted) {\n this._hasUserInteracted = true; // At initial unfocus: if input is invalid, start aggressive mode\n }\n this._validate();\n\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n private _validateButtonSlot(slotName: string) {\n const slot = this.shadowRoot?.querySelector(\n 'slot[name=\"' + slotName + '\"]',\n ) as HTMLSlotElement;\n const container = this.shadowRoot?.querySelector(\n \".nys-textinput__buttoncontainer\",\n );\n\n if (!slot || !container) return;\n\n const assignedElements = slot.assignedElements();\n\n let foundValidButton = false;\n\n assignedElements.forEach((node) => {\n const isNysButton =\n node instanceof HTMLElement &&\n node.tagName.toLowerCase() === \"nys-button\";\n\n if (isNysButton && !foundValidButton) {\n // First valid nys-button found\n foundValidButton = true;\n node.setAttribute(\"size\", \"sm\");\n node.setAttribute(\"variant\", \"primary\");\n //set button to be disabled if the input is disabled\n if (this.disabled) {\n node.setAttribute(\"disabled\", \"true\");\n } else {\n node.removeAttribute(\"disabled\");\n }\n } else {\n console.warn(\n \"The '\" +\n slotName +\n \"' slot only accepts a single <nys-button> element. Removing invalid or extra node:\",\n node,\n );\n node.remove();\n }\n });\n\n if (slotName === \"startButton\") {\n container.classList.toggle(\"has-start-button\", foundValidButton);\n } else if (slotName === \"endButton\") {\n container.classList.toggle(\"has-end-button\", foundValidButton);\n }\n }\n\n render() {\n return html`\n <div class=\"nys-textinput\">\n <nys-label\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n <div class=\"nys-textinput__buttoncontainer\">\n <slot\n name=\"startButton\"\n @slotchange=${() => this._validateButtonSlot(\"startButton\")}\n ></slot>\n <div class=\"nys-textinput__container\">\n <span class=\"nys-textinput__mask-overlay\"></span>\n <input\n class=\"nys-textinput__input\"\n type=${this.type === \"password\"\n ? this.showPassword\n ? \"text\"\n : \"password\"\n : this.type}\n name=${this.name}\n id=${this.id + \"--native\"}\n ?disabled=${this.disabled}\n ?required=${this.required}\n ?readonly=${this.readonly}\n aria-required=${this.required}\n aria-disabled=\"${this.disabled}\"\n aria-label=\"${[this.label, this.description]\n .filter(Boolean)\n .join(\" \")}\"\n .value=${this.value}\n placeholder=${ifDefined(\n this.placeholder ? this.placeholder : undefined,\n )}\n pattern=${ifDefined(this.pattern ? this.pattern : undefined)}\n min=${ifDefined(this.min !== null ? this.min : undefined)}\n maxlength=${ifDefined(\n this.maxlength !== null ? this.maxlength : undefined,\n )}\n step=${ifDefined(this.step !== null ? this.step : undefined)}\n max=${ifDefined(this.max !== null ? this.max : undefined)}\n form=${ifDefined(this.form || undefined)}\n @input=${this._handleInput}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n />\n ${this.type === \"password\"\n ? html` <nys-button\n class=\"eye-icon\"\n id=\"password-toggle\"\n suffixIcon=\"slotted\"\n ariaLabel=\"password toggle\"\n variant=\"ghost\"\n size=\"sm\"\n @nys-click=${() =>\n !this.disabled && this._togglePasswordVisibility()}\n >\n <nys-icon\n slot=\"suffix-icon\"\n size=\"2xl\"\n name=${this.showPassword ? \"visibility_off\" : \"visibility\"}\n ></nys-icon>\n </nys-button>`\n : \"\"}\n </div>\n <slot\n name=\"endButton\"\n @slotchange=${() => this._validateButtonSlot(\"endButton\")}\n ></slot>\n </div>\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this.errorMessage}\n ></nys-errormessage>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-textinput\")) {\n customElements.define(\"nys-textinput\", NysTextinput);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-toggle.scss?inline\";\n\nlet toggleIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysToggle extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) value = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: Boolean, reflect: true }) checked = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean }) noIcon = false;\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" = \"md\";\n\n private _internals: ElementInternals;\n\n // Lifecycle Updates\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-toggle-${Date.now()}-${toggleIdCounter++}`;\n }\n }\n\n // Form Integration\n // Update the internals whenever `checked` or `value` changes.\n updated(changedProperties: Map<string, any>) {\n if (changedProperties.has(\"checked\") || changedProperties.has(\"value\")) {\n this._internals.setFormValue(this.checked ? this.value : null);\n }\n }\n\n //Event Handlers\n private _emitChangeEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: { id: this.id, checked: this.checked },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // Handle focus event\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n // Handle blur event\n private _handleBlur() {\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n private _handleChange(e: Event) {\n const { checked } = e.target as HTMLInputElement;\n this.checked = checked;\n this._emitChangeEvent();\n }\n\n private _handleKeyDown(event: KeyboardEvent) {\n if (!this.disabled && (event.key === \" \" || event.key === \"Enter\")) {\n event.preventDefault();\n\n // Manually toggle the checked state\n this.checked = !this.checked;\n\n /* Dispatch a custom event for the toggle action:\n * allows bubbling up so if developers wish to use the toggle state info.\n */\n this._emitChangeEvent();\n }\n }\n\n render() {\n return html`\n <label class=\"nys-toggle\">\n <div class=\"nys-toggle__content\">\n <div class=\"nys-toggle__toggle\">\n <input\n type=\"checkbox\"\n name=\"${ifDefined(this.name ? this.name : undefined)}\"\n .value=${this.value}\n form=${ifDefined(this.form || undefined)}\n .checked=${this.checked}\n ?disabled=${this.disabled}\n role=\"switch\"\n aria-checked=\"${this.checked ? \"true\" : \"false\"}\"\n aria-disabled=\"${this.disabled ? \"true\" : \"false\"}\"\n @change=${this._handleChange}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n @keydown=${this._handleKeyDown}\n />\n <span class=\"slider\">\n <div class=\"knob\">\n ${this.noIcon\n ? \"\"\n : html`<nys-icon\n class=\"toggle-icon\"\n name=\"${this.checked ? \"check\" : \"close\"}\"\n size=\"2xl\"\n ></nys-icon>`}\n </div>\n </span>\n </div>\n <div class=\"nys-toggle__text ${this.inverted ? \"invert\" : \"\"}\">\n <div class=\"nys-toggle__label\">${this.label}</div>\n <slot name=\"description\">${this.description}</slot>\n </div>\n </div>\n </label>\n `;\n }\n}\n\nif (!customElements.get(\"nys-toggle\")) {\n customElements.define(\"nys-toggle\", NysToggle);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-tooltip.scss?inline\";\n\nlet tooltipIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysTooltip extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String }) text = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String }) for = \"\";\n\n // Track if tooltip is active (hovered or focused)\n @state()\n private _active = false;\n\n // Track if user set position is set explicitly\n private _userHasSetPosition = false;\n private _originalUserPosition: typeof this._position | null = null;\n // Internal flag to prevent dynamic positioning when not needed\n private _internallyUpdatingPosition = false;\n // Flag for hiding the timeout\n private _hideTimeout: number | null = null;\n\n // Position Logic\n private _position: \"top\" | \"bottom\" | \"left\" | \"right\" | null = null;\n\n @property({ type: String, reflect: true })\n get position() {\n return this._position;\n }\n\n set position(value) {\n const oldVal = this._position;\n this._position = value;\n this.requestUpdate(\"position\", oldVal);\n\n // The \"_internallyUpdatingPosition\" flag allows user's set position to take preference\n if (!this._internallyUpdatingPosition) {\n this._userHasSetPosition = value !== null;\n this._originalUserPosition = value;\n }\n }\n\n // Lifecycle Methods\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = `nys-tooltip-${Date.now()}-${tooltipIdCounter++}`;\n }\n\n window.addEventListener(\"keydown\", this._handleEscapeKey);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n const ref = this._getReferenceElement();\n const tooltip = this.shadowRoot?.querySelector(\".nys-tooltip__content\");\n\n if (ref && tooltip) {\n ref.removeEventListener(\"mouseenter\", this._showTooltip);\n ref.removeEventListener(\"mouseenter\", this._cancelFadeOut);\n ref.removeEventListener(\"mouseleave\", this._handleBlurOrMouseLeave);\n ref.removeEventListener(\"focusin\", this._showTooltip);\n ref.removeEventListener(\"focusout\", this._handleBlurOrMouseLeave);\n tooltip.removeEventListener(\"mouseenter\", this._cancelFadeOut);\n tooltip.removeEventListener(\"mouseleave\", this._handleBlurOrMouseLeave);\n }\n window.removeEventListener(\"keydown\", this._handleEscapeKey);\n }\n\n async firstUpdated() {\n await this.updateComplete;\n const ref = this._getReferenceElement();\n const tooltip = this.shadowRoot?.querySelector(\".nys-tooltip__content\");\n\n if (!ref || !tooltip) return;\n\n this.applyInverseTransform();\n this._applyTooltipPropToFormComponent(ref);\n\n if (\n ref.tagName.toLowerCase() === \"nys-button\" ||\n ref.tagName.toLowerCase() === \"nys-icon\"\n ) {\n this._applyFocusBehavior(ref);\n ref.addEventListener(\"mouseenter\", this._showTooltip);\n ref.addEventListener(\"mouseenter\", this._cancelFadeOut);\n ref.addEventListener(\"mouseleave\", this._handleBlurOrMouseLeave);\n ref.addEventListener(\"focusin\", this._showTooltip);\n ref.addEventListener(\"focusout\", this._handleBlurOrMouseLeave);\n tooltip.addEventListener(\"mouseenter\", this._cancelFadeOut);\n tooltip.addEventListener(\"mouseleave\", this._handleBlurOrMouseLeave);\n }\n }\n\n updated(changedProps: Map<string, unknown>) {\n super.updated(changedProps);\n\n const ref = this._getReferenceElement();\n if (!ref) return;\n\n this._positionStartingBase();\n\n // Accounts for tooltip's text change (for code editor changes & VO)\n if (changedProps.has(\"text\")) {\n this._applyTooltipPropToFormComponent(ref);\n }\n }\n\n // Event Handlers\n // When toggling tooltip, check if user has set position to give it preference it space allows. Otherwise dynamically position tooltip.\n private _showTooltip = () => {\n this._active = true;\n this._addScrollListeners();\n\n // Try to honor user's original preference first\n if (this._userHasSetPosition && this._originalUserPosition) {\n if (this._doesPositionFit(this._originalUserPosition)) {\n this.position = this._originalUserPosition;\n // Check if current tooltip position overflows to edge of screen\n this.updateComplete.then(() => {\n this._userPositionTooltip();\n });\n return;\n }\n }\n\n // Otherwise fall back to auto logic\n this._autoPositionTooltip();\n };\n\n private _handleBlurOrMouseLeave = () => {\n const ref = this._getReferenceElement();\n const tooltip = this.shadowRoot?.querySelector(\n \".nys-tooltip__content\",\n ) as HTMLElement;\n\n if (ref === document.activeElement) return;\n if (!ref || !tooltip) return;\n\n this._triggerFadeOut(tooltip);\n };\n\n private _triggerFadeOut(tooltip: HTMLElement) {\n if (!tooltip || this._hideTimeout) return;\n\n tooltip.classList.add(\"fade-out\");\n\n this._hideTimeout = window.setTimeout(() => {\n this._active = false;\n this._removeScrollListeners();\n this._positionStartingBase();\n this._resetTooltipPositioningStyles(tooltip);\n\n tooltip.classList.remove(\"fade-out\");\n this._hideTimeout = null;\n }, 200);\n }\n\n private _cancelFadeOut = () => {\n const tooltip = this.shadowRoot?.querySelector(\n \".nys-tooltip__content\",\n ) as HTMLElement;\n const ref = this._getReferenceElement();\n\n if (!tooltip || !ref) return;\n\n const isPointerInsideTooltip = tooltip.matches(\":hover\");\n const isPointerInsideRef = ref.matches(\":hover\");\n\n const isTouched = document.activeElement === ref;\n\n if (!isPointerInsideTooltip && !isPointerInsideRef && !isTouched) {\n return;\n }\n\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n\n tooltip.classList.remove(\"fade-out\");\n this._active = true;\n };\n\n // Listen to window scroll so a focus tooltip can auto position even when user move across the page\n private _addScrollListeners() {\n window.addEventListener(\"scroll\", this._handleScrollOrResize, true);\n window.addEventListener(\"resize\", this._handleScrollOrResize);\n }\n\n private _removeScrollListeners() {\n window.removeEventListener(\"scroll\", this._handleScrollOrResize, true);\n window.removeEventListener(\"resize\", this._handleScrollOrResize);\n }\n\n private _handleScrollOrResize = () => {\n if (!this._active || this._hideTimeout) return;\n\n this._showTooltip();\n };\n\n private _handleEscapeKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\" && this._active) {\n this._active = false;\n this._removeScrollListeners();\n\n const tooltip = this.shadowRoot?.querySelector(\n \".nys-tooltip__content\",\n ) as HTMLElement;\n if (tooltip) {\n this._resetTooltipPositioningStyles(tooltip);\n }\n }\n };\n\n // Functions\n private _getReferenceElement() {\n const targetId = this.for;\n if (!targetId) return null;\n\n // lightDOM search\n let htmlElement = document.getElementById(targetId);\n if (htmlElement) return htmlElement;\n\n // Search recursively through shadow DOMs (e.g. for nys-label within other component's shadowDOM)\n const findInShadows = (root: ParentNode): HTMLElement | null => {\n for (const el of Array.from(root.querySelectorAll(\"*\"))) {\n const shadowElement = el.shadowRoot;\n if (shadowElement) {\n const found = shadowElement.getElementById(targetId);\n if (found) return found;\n\n const deeper = findInShadows(shadowElement);\n if (deeper) return deeper;\n }\n }\n return null;\n };\n\n return findInShadows(document);\n }\n\n // We need to pass `ariaLabel` or `ariaDescription` to the nys-components so they can announce both their label and the tooltip's text\n private async _passAria(el: HTMLElement) {\n const tagName = el.tagName.toLowerCase();\n\n if (tagName === \"nys-icon\") {\n // For nys-icon, use ariaLabel instead\n el.setAttribute(\"ariaLabel\", `Hint: ${this.text}`);\n } else if (tagName === \"nys-button\") {\n // For other components like nys-button, use ariaDescription\n el.setAttribute(\"ariaDescription\", `, Hint: ${this.text}`);\n }\n }\n\n /**\n * In React, the reference element found is often the native HTML element within the nys-component.\n * Therefore, this function accounts for the closest NYS component ancestor that supports a tooltip prop.\n */\n private _applyTooltipPropToFormComponent(ref: HTMLElement) {\n const tagName = ref.tagName.toLowerCase();\n if (!tagName.startsWith(\"nys-\")) return;\n\n if (tagName === \"nys-button\" || tagName === \"nys-icon\") {\n // Already handled elsewhere in this component; we just ensure we attach listeners\n this._applyFocusBehavior(ref);\n this._passAria(ref);\n return;\n }\n\n if (\"tooltip\" in ref) {\n ref.tooltip = this.text;\n }\n }\n\n // Applies focus behavior to an otherwise non focus element (i.e. nys-icon is non focusable by default)\n private async _applyFocusBehavior(el: HTMLElement) {\n el.style.cursor = \"pointer\";\n const tagName = el.tagName.toLowerCase();\n\n if (tagName === \"nys-icon\") {\n if (\"updateComplete\" in el) {\n await (el as any).updateComplete;\n }\n const svg = el.shadowRoot?.querySelector(\"svg\");\n if (svg) {\n svg.setAttribute(\"tabindex\", \"0\");\n }\n }\n }\n\n /**\n * Checks if the tooltip fits inside the viewport on the given side of the trigger.\n * Used for auto-positioning. Ignores text overflow for now.\n */\n private _doesPositionFit(position: typeof this._position) {\n const ref = this._getReferenceElement();\n const tooltip = this.shadowRoot?.querySelector(\".nys-tooltip__content\");\n\n if (!ref || !tooltip || position == null) return;\n\n const refRect = ref.getBoundingClientRect();\n const tooltipRect = tooltip.getBoundingClientRect();\n\n // Define some margin buffer between tooltip and trigger (to avoid touching the edges too tightly)\n const margin = 8;\n\n // Available space on each side relative to trigger rect and viewport\n const spaceAvailable = {\n top: refRect.top - margin,\n left: refRect.left - margin,\n bottom: window.innerHeight - refRect.bottom - margin,\n right: window.innerWidth - refRect.right - margin,\n };\n\n // Check if tooltip fits on each side (compare available space vs tooltip size)\n const fits = {\n top: spaceAvailable.top >= tooltipRect.height,\n bottom: spaceAvailable.bottom >= tooltipRect.height,\n left: spaceAvailable.left >= tooltipRect.width,\n right: spaceAvailable.right >= tooltipRect.width,\n };\n\n return fits[position];\n }\n\n private _userPositionTooltip() {\n const tooltip = this.shadowRoot?.querySelector(\n \".nys-tooltip__content\",\n ) as HTMLElement;\n const ref = this._getReferenceElement();\n if (tooltip && ref) {\n this._positionTooltipElement(ref, tooltip, this.position);\n this._shiftTooltipIntoViewport(tooltip);\n }\n }\n\n // Calculates the best placement based on available space (flips placement if it doesn't fit)\n private async _autoPositionTooltip() {\n const ref = this._getReferenceElement();\n const tooltip = this.shadowRoot?.querySelector(\n \".nys-tooltip__content\",\n ) as HTMLElement;\n\n if (!ref || !tooltip) return;\n\n const refRect = ref.getBoundingClientRect();\n const margin = 8;\n\n const spaceAvailable = {\n top: refRect.top - margin,\n left: refRect.left - margin,\n bottom: window.innerHeight - refRect.bottom - margin,\n right: window.innerWidth - refRect.right - margin,\n };\n\n // Default tryOrder for auto mode\n let tryOrder: Array<keyof typeof spaceAvailable> = [\n \"top\",\n \"bottom\",\n \"right\",\n \"left\",\n ];\n\n // If user explicitly set a preferred position (even if it didn’t fit),\n // favor it first before trying others\n if (this._userHasSetPosition && this._originalUserPosition) {\n const userPosition = this._originalUserPosition;\n if (userPosition === \"left\") {\n tryOrder = [\"left\", \"right\", \"top\", \"bottom\"];\n } else if (userPosition === \"right\") {\n tryOrder = [\"right\", \"left\", \"top\", \"bottom\"];\n } else if (userPosition === \"top\") {\n tryOrder = [\"top\", \"bottom\", \"right\", \"left\"];\n } else if (userPosition === \"bottom\") {\n tryOrder = [\"bottom\", \"top\", \"right\", \"left\"];\n }\n }\n\n // 1) Try to find the first side that fits\n for (const pos of tryOrder) {\n if (this._doesPositionFit(pos)) {\n this._setInternalPosition(pos);\n await this.updateComplete;\n this._positionTooltipElement(ref, tooltip, pos);\n this._shiftTooltipIntoViewport(tooltip);\n return;\n }\n }\n\n // 2) Fallback: pick the side with the most space\n let bestPosition: keyof typeof spaceAvailable = \"top\";\n let maxSpace = spaceAvailable.top;\n\n for (const pos of tryOrder) {\n if (spaceAvailable[pos] > maxSpace) {\n maxSpace = spaceAvailable[pos];\n bestPosition = pos;\n }\n }\n this._setInternalPosition(bestPosition);\n await this.updateComplete;\n this._positionTooltipElement(ref, tooltip, bestPosition);\n this._shiftTooltipIntoViewport(tooltip);\n }\n\n private _positionStartingBase() {\n const tooltip = this.shadowRoot?.querySelector(\n \".nys-tooltip__content\",\n ) as HTMLElement;\n\n if (!tooltip) return;\n\n tooltip.style.top = \"0px\";\n tooltip.style.left = \"0px\";\n }\n\n private _positionTooltipElement(\n ref: HTMLElement,\n tooltip: HTMLElement,\n bestPosition: typeof this._position,\n ) {\n const refRect = ref.getBoundingClientRect();\n const tooltipRect = tooltip.getBoundingClientRect();\n const margin = 8;\n\n let top = 0;\n let left = 0;\n\n switch (bestPosition) {\n case \"top\":\n top = refRect.top - tooltipRect.height - margin;\n left = refRect.left + refRect.width / 2 - tooltipRect.width / 2;\n break;\n case \"bottom\":\n top = refRect.bottom + margin;\n left = refRect.left + refRect.width / 2 - tooltipRect.width / 2;\n break;\n case \"left\":\n top = refRect.top + refRect.height / 2 - tooltipRect.height / 2;\n left = refRect.left - tooltipRect.width - margin;\n break;\n case \"right\":\n top = refRect.top + refRect.height / 2 - tooltipRect.height / 2;\n left = refRect.right + margin;\n break;\n default:\n // Default to top\n top = refRect.top - tooltipRect.height - margin;\n left = refRect.left + refRect.width / 2 - tooltipRect.width / 2;\n break;\n }\n\n tooltip.style.top = `${top}px`;\n tooltip.style.left = `${left}px`;\n }\n\n // Like storybook, some user's parent container may contain transform styling, which sets a new coordinate system.\n // This function reverse any container of that scale to not interfere with tooltip calculation.\n private applyInverseTransform() {\n document.querySelectorAll('div[scale=\"1\"]').forEach((el) => {\n (el as HTMLElement).style.transform = \"none\";\n });\n }\n\n private _setInternalPosition(bestPosition: typeof this._position) {\n this._internallyUpdatingPosition = true;\n this.position = bestPosition;\n this._internallyUpdatingPosition = false;\n }\n\n // Determines if text of tooltip over-extends outside of viewport edge and adjust tooltip for horizontal overflow\n private _shiftTooltipIntoViewport(tooltip: HTMLElement) {\n const ref = this._getReferenceElement();\n if (!ref) return;\n\n const refRect = ref.getBoundingClientRect();\n const tooltipRect = tooltip.getBoundingClientRect();\n\n const refCenter = refRect.left + refRect.width / 2;\n\n const overflowLeft = tooltipRect.left < 0;\n const overflowRight = tooltipRect.right > window.innerWidth;\n\n // Tooltip is past the viewport edge, shift it inwards\n if (overflowLeft) {\n tooltip.style.left = \"10px\";\n tooltip.style.transform = \"none\";\n } else if (overflowRight) {\n tooltip.style.right = \"0px\";\n tooltip.style.left = \"auto\";\n tooltip.style.transform = \"none\";\n }\n\n // Recalculate tooltip rect after any shift\n const newTooltipRect = tooltip.getBoundingClientRect();\n\n // Arrow offset relative to tooltip width to maintain accuracy on zoom and out-of-bounds\n const arrowOffsetRatio =\n (refCenter - newTooltipRect.left) / newTooltipRect.width;\n const arrowOffsetPercent = Math.max(0, Math.min(1, arrowOffsetRatio)) * 100;\n\n tooltip.style.setProperty(\"--arrow-offset-x\", `${arrowOffsetPercent}%`);\n }\n\n // Reposition tooltip back to original set position (e.g. top, left, bottom, right) to avoid positioning issue base on last position\n private _resetTooltipPositioningStyles(tooltip: HTMLElement) {\n tooltip.style.left = \"\";\n tooltip.style.right = \"\";\n tooltip.style.top = \"\";\n tooltip.style.transform = \"\";\n tooltip.style.removeProperty(\"--arrow-offset-x\");\n }\n\n render() {\n return html`\n <div class=\"nys-tooltip__main\">\n ${this.text?.trim()\n ? html`<div\n id=${this.id}\n class=\"nys-tooltip__content\"\n role=\"tooltip\"\n aria-hidden=${this._active && !this._hideTimeout\n ? \"false\"\n : \"true\"}\n ?active=${this._active}\n style=\"visibility: ${this._active ? \"visible\" : \"hidden\"}; \"\n >\n <div class=\"nys-tooltip__inner\">${this.text}</div>\n <span class=\"nys-tooltip__arrow\"></span>\n </div>`\n : \"\"}\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-tooltip\")) {\n customElements.define(\"nys-tooltip\", NysTooltip);\n}\n","const nysBrandLogoSvg = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"91\" height=\"55\" viewBox=\"0 0 91 55\" fill=\"none\">\n <path d=\"M55.1158 7.50499L58.2905 12.6494V7.5189C58.2905 7.5189 58.6487 7.26356 59.5098 7.26356C60.3708 7.26356 60.7378 7.5189 60.7378 7.5189V16.4327C60.7378 16.4327 60.3942 16.689 59.5215 16.689C58.6487 16.689 58.3295 16.4605 58.3295 16.4605L55.1421 11.3171V16.4337C55.1421 16.4337 54.7848 16.69 53.9111 16.69C53.0374 16.69 52.7065 16.4337 52.7065 16.4337V7.51989C52.7065 7.51989 53.0384 7.26456 53.9248 7.26456C54.8112 7.26456 55.1148 7.50697 55.1148 7.50697L55.1158 7.50499Z\" fill=\"#457AA5\"/>\n <path d=\"M67.2209 12.5948H64.9063V14.8709H68.2538C68.2538 14.8709 68.5047 15.1531 68.5047 15.772C68.5047 16.391 68.2538 16.688 68.2538 16.688H62.4589V7.26257H67.9892C67.9892 7.26257 68.2538 7.54572 68.2538 8.17859C68.2538 8.81146 67.9892 9.09362 67.9892 9.09362H64.9063V10.7637H67.2209C67.2209 10.7637 67.4728 11.0598 67.4728 11.6787C67.4728 12.2977 67.2209 12.5948 67.2209 12.5948Z\" fill=\"#457AA5\"/>\n <path d=\"M71.4802 16.4327L68.9791 7.5189C68.9791 7.5189 69.3491 7.26356 70.2101 7.26356C71.0711 7.26356 71.4275 7.5189 71.4275 7.5189L72.6839 12.0434C72.7766 12.3802 72.8166 12.6365 72.8557 12.7845C72.8557 12.7428 72.9221 12.3663 73.0011 12.0573L74.0984 7.5189C74.0984 7.5189 74.5211 7.26356 75.1176 7.26356C75.7141 7.26356 76.084 7.5189 76.084 7.5189L77.3004 12.7845C77.3004 12.6623 77.3795 12.3255 77.4586 12.0573L78.756 7.5189C78.7686 7.5189 79.1132 7.26356 79.9596 7.26356C80.806 7.26356 81.1897 7.5189 81.1897 7.5189L78.6496 16.4327C78.6496 16.4327 78.2922 16.6751 77.4859 16.689C76.5468 16.689 76.2158 16.4327 76.2158 16.4327L75.223 12.2987C75.1449 11.9887 75.0902 11.6529 75.0785 11.5844L74.9184 12.2987L73.9266 16.4327C73.9266 16.4327 73.583 16.689 72.7092 16.689C71.8355 16.689 71.4802 16.4327 71.4802 16.4327Z\" fill=\"#457AA5\"/>\n <path d=\"M54.3485 19.2195L55.4331 21.1579C55.804 21.8176 56.0022 22.5587 56.0285 22.6521C56.0559 22.5587 56.2404 21.8315 56.624 21.1579L57.735 19.2195C57.735 19.2195 58.0659 18.9771 58.8723 18.9771C59.786 18.9771 60.1697 19.2861 60.1697 19.2861L57.2449 24.4295V28.1453C57.2449 28.1453 56.9013 28.4026 56.0276 28.4026C55.1539 28.4026 54.8239 28.1453 54.8239 28.1453V24.3898L51.8991 19.2871C51.8991 19.2871 52.2965 18.9781 53.2082 18.9781C53.9892 18.9781 54.3465 19.2205 54.3465 19.2205L54.3485 19.2195Z\" fill=\"#457AA5\"/>\n <path d=\"M64.6017 28.497C61.4788 28.497 60.117 26.6381 60.117 23.7033C60.117 20.7684 61.4798 18.8827 64.6017 18.8827C67.7237 18.8827 69.0865 20.7674 69.0865 23.7033C69.0865 26.6391 67.711 28.497 64.6017 28.497ZM64.6017 26.6778C65.9235 26.6778 66.6391 25.4667 66.6391 23.7033C66.6391 21.9398 65.9235 20.7138 64.6017 20.7138C63.2799 20.7138 62.5653 21.9398 62.5653 23.7033C62.5653 25.4667 63.2789 26.6778 64.6017 26.6778Z\" fill=\"#457AA5\"/>\n <path d=\"M72.844 28.1463C72.844 28.1463 72.4867 28.4036 71.6129 28.4036C70.7392 28.4036 70.4083 28.1463 70.4083 28.1463V19.3546C70.4083 19.3546 71.4011 18.8837 73.2266 18.8837C75.9913 18.8837 77.275 19.9607 77.275 21.8454C77.275 23.7301 75.8722 24.4563 75.7004 24.4712L77.8432 28.0936C77.5796 28.2675 76.8523 28.4026 76.3623 28.4026C75.7267 28.4026 75.225 28.1741 75.225 28.1741L73.6113 25.3068C73.5175 25.1041 73.3858 24.9561 73.1612 24.9561H72.844V28.1463ZM73.5322 20.7148C73.1349 20.7148 72.844 20.7952 72.844 20.7952V23.138H73.5049C74.4694 23.138 74.8413 22.4514 74.8413 21.9269C74.8413 21.2403 74.3786 20.7148 73.5322 20.7148Z\" fill=\"#457AA5\"/>\n <path d=\"M87.211 28.0787C87.211 28.0787 86.5901 28.4026 85.5836 28.4026C84.7236 28.4026 84.3663 28.1741 84.3663 28.1741L81.2317 23.8384V28.1463C81.2317 28.1463 80.9007 28.4036 80.027 28.4036C79.1533 28.4036 78.797 28.1463 78.797 28.1463V19.2344C78.797 19.2344 79.1533 18.9781 80.027 18.9781C80.9007 18.9781 81.2317 19.2344 81.2317 19.2344V23.4221L84.2618 19.2205C84.2618 19.2205 84.6182 18.9781 85.4782 18.9781C86.4701 18.9781 86.8684 19.3139 86.8684 19.3139L83.9045 23.4221L87.212 28.0797L87.211 28.0787Z\" fill=\"#457AA5\"/>\n <path d=\"M58.9806 31.3374C59.1515 32.1988 58.7014 32.8853 58.1987 33.0602C57.7096 32.7244 56.9296 32.4273 56.1096 32.4273C55.2895 32.4273 54.8122 32.7502 54.8122 33.2082C54.8122 33.6394 55.1958 33.7874 56.214 34.1252L57.4841 34.5415C58.8479 34.9985 59.6933 35.7 59.6933 37.1803C59.6933 38.8911 58.5823 40.2105 55.8831 40.2105C53.9912 40.2105 52.8256 39.5637 52.4029 39.1335C52.2711 38.5007 52.6137 37.7059 53.1057 37.4505C53.5284 37.7744 54.7848 38.3934 56.0676 38.3934C56.8359 38.3934 57.2596 38.1112 57.2596 37.5986C57.2596 37.2359 57.034 37.0064 56.5049 36.8306L54.3758 36.1719C53.2365 35.8073 52.3775 34.9737 52.3775 33.6126C52.3775 31.6732 53.6729 30.5973 56.0676 30.5973C57.5895 30.5973 58.4779 31.0145 58.9806 31.3374Z\" fill=\"#457AA5\"/>\n <path d=\"M60.3542 32.5227C60.3542 32.5227 60.1023 32.2534 60.1023 31.6067C60.1023 30.9599 60.3542 30.6906 60.3542 30.6906H67.5382C67.5382 30.6906 67.7901 30.9738 67.7901 31.6067C67.7901 32.2395 67.5382 32.5227 67.5382 32.5227H65.1562V39.8608C65.1562 39.8608 64.8136 40.1161 63.9525 40.1161C63.0915 40.1161 62.7088 39.8608 62.7088 39.8608V32.5227H60.3542Z\" fill=\"#457AA5\"/>\n <path d=\"M72.7502 30.9341L76.3232 39.8201C76.3232 39.8201 75.9659 40.1171 75.0658 40.1171C74.2321 40.1171 73.9032 39.8747 73.9032 39.8747L73.254 38.3258H69.8538L69.2446 39.8747C69.2446 39.8747 68.901 40.1171 68.081 40.1171C67.1819 40.1171 66.7972 39.8201 66.7972 39.8201L70.3702 30.9341C70.3702 30.9341 70.7002 30.6916 71.5592 30.6916C72.4183 30.6916 72.7502 30.9341 72.7502 30.9341ZM70.5674 36.5216H72.5394L71.8775 34.9051C71.7457 34.5822 71.5729 33.9226 71.5583 33.855C71.5329 33.9226 71.3337 34.5822 71.2156 34.9051L70.5674 36.5216Z\" fill=\"#457AA5\"/>\n <path d=\"M75.5949 32.5227C75.5949 32.5227 75.3431 32.2534 75.3431 31.6067C75.3431 30.9599 75.5949 30.6906 75.5949 30.6906H82.779C82.779 30.6906 83.0298 30.9738 83.0298 31.6067C83.0298 32.2395 82.779 32.5227 82.779 32.5227H80.397V39.8608C80.397 39.8608 80.0543 40.1161 79.1933 40.1161C78.3323 40.1161 77.9496 39.8608 77.9496 39.8608V32.5227H75.5949Z\" fill=\"#457AA5\"/>\n <path d=\"M88.9047 36.0228H86.5891V38.299H89.9356C89.9356 38.299 90.1875 38.5821 90.1875 39.2001C90.1875 39.8181 89.9356 40.1161 89.9356 40.1161H84.1408V30.6897H89.6711C89.6711 30.6897 89.9356 30.9728 89.9356 31.6057C89.9356 32.2385 89.6711 32.5217 89.6711 32.5217H86.5882V34.1908H88.9038C88.9038 34.1908 89.1547 34.4879 89.1547 35.1078C89.1547 35.7278 88.9038 36.0219 88.9038 36.0219L88.9047 36.0228Z\" fill=\"#457AA5\"/>\n <path d=\"M51.7107 54.9999C51.577 54.9999 51.4335 54.974 51.2939 54.8965C51.085 54.7803 50.9395 54.5876 50.8858 54.3551C50.8233 54.0868 50.8936 53.7868 51.082 53.5116L51.1426 53.4202C51.2041 53.3268 51.2685 53.2354 51.3407 53.1519C51.4218 53.0595 51.5047 52.995 51.5741 52.9493C51.5243 52.6691 51.5418 52.4267 51.5682 52.2061C51.5877 52.0233 51.6346 51.8683 51.6726 51.7451C51.6892 51.6925 51.7058 51.6388 51.7185 51.5812C51.8201 51.145 51.8855 50.7397 51.9206 50.3453C51.9528 49.9916 51.947 49.9846 51.8864 49.9061C51.7 49.6707 51.3847 49.5018 51.0498 49.3229C50.8878 49.2365 50.7286 49.1491 50.5754 49.0557C49.607 48.4536 48.6376 47.8505 47.6701 47.2465L47.3294 47.0339C47.2513 46.9862 47.1147 46.9156 46.9516 46.8282C45.8817 46.2659 45.172 45.8526 45.0539 45.2595C45.0363 45.173 44.9465 44.9644 44.884 44.864C44.8411 44.8611 44.7307 44.8521 44.6546 44.8471C44.3032 44.8183 43.7711 44.7726 43.3484 44.3196C43.2635 44.2272 43.1786 44.1408 43.1005 44.0583C42.5098 43.4443 42.0003 42.9148 41.9329 41.5993C41.9241 41.4275 41.9251 41.2506 41.928 41.0728C41.9339 40.5283 41.927 40.1836 41.7103 39.962C41.6078 39.8567 41.435 39.7862 41.2349 39.7037C40.9889 39.6034 40.7097 39.4881 40.45 39.2686C40.37 39.2 40.2792 39.1007 40.1776 38.9854C40.0712 38.8602 39.9082 38.6724 39.7969 38.6337C38.974 38.3436 37.986 38.3178 36.96 38.3178L3.07245 38.2909C2.85964 38.2909 2.66927 38.3138 2.48477 38.3347C2.07378 38.3823 1.60812 38.437 1.2313 38.0962C0.866192 37.7664 0.815429 37.2607 0.814452 36.8076L0.8125 34.3993C0.8125 34.2722 0.847644 34.147 0.913051 34.0387C1.22544 33.529 1.83265 33.2558 2.3686 33.0144C2.56872 32.924 2.77666 32.8316 2.88795 32.7571C3.17593 32.5623 3.43561 32.302 3.7109 32.0248C3.91688 31.8182 4.13068 31.6046 4.36887 31.4059C4.69786 31.1317 5.07078 30.931 5.43296 30.7372C5.74535 30.5703 6.03821 30.4124 6.24127 30.2395C6.38575 30.1173 6.49216 29.9146 6.61906 29.6792C6.75476 29.4238 6.90998 29.1337 7.15208 28.8804C7.41273 28.6081 7.7427 28.4194 8.03263 28.2535C8.69744 27.871 8.68182 27.8322 8.57736 27.5769C8.52855 27.4577 8.48072 27.3553 8.43972 27.2639C8.24447 26.8357 8.07754 26.4681 8.19078 25.7051C8.2025 25.6306 8.21616 25.5521 8.22983 25.4706C8.25619 25.3325 8.30305 25.0772 8.27571 25.0037C8.27571 25.0037 8.26204 24.9927 8.23471 24.9778C8.21128 24.9659 8.12928 24.9669 8.06875 24.9679C7.87448 24.9659 7.51914 24.9768 7.2497 24.6689C6.98124 24.3629 6.99686 23.9555 7.03982 23.6356C7.08179 23.3127 7.06032 23.1051 7.03982 22.9223C6.95684 22.1453 7.21358 21.7817 8.10097 21.424C10.7524 20.351 12.901 19.9884 14.8613 20.2805C14.9775 20.2974 15.1356 20.2656 15.3182 20.2269C15.5944 20.1702 15.9351 20.1017 16.312 20.1752L18.3952 20.5766C19.2475 20.7415 19.6653 20.9054 20.3047 21.4995C20.6327 21.8046 20.7655 21.7718 21.3327 21.5661C21.6168 21.4638 21.9399 21.3485 22.3323 21.2949C22.9727 21.2084 23.5731 21.2661 24.153 21.3227C24.4136 21.3475 24.6762 21.3734 24.9408 21.3843C25.2356 21.3952 25.6085 21.2561 25.9717 21.121C26.1318 21.0614 26.2889 21.0028 26.4412 20.9541C26.78 20.8468 27.0973 20.7991 27.4038 20.7514C27.5551 20.7266 27.7064 20.7037 27.8607 20.6729C27.8714 20.6531 27.8821 20.6332 27.8939 20.6113C27.9417 20.5249 27.9944 20.4345 28.0598 20.3411C28.3419 19.9497 28.7471 19.7003 29.0722 19.4966L29.2078 19.4122C29.5564 19.1916 29.8629 18.9879 30.105 18.7386C30.5423 18.2796 31.1232 18.3114 31.5108 18.3312C31.6455 18.3392 31.8495 18.3481 31.91 18.3223C32.1678 18.207 31.9413 17.3993 31.8065 16.9165C31.7119 16.5777 31.6299 16.2846 31.6133 16.0183C31.5664 15.2642 31.9764 14.7317 32.3064 14.3045C32.5651 13.9687 32.7213 13.7481 32.7164 13.5355C32.7164 13.4948 32.7027 13.4382 32.6851 13.3845C32.4587 13.4948 32.0955 13.6369 31.6796 13.4421C31.0129 13.1302 30.6468 12.0264 30.8508 11.3985C31.0197 10.8779 31.54 10.5421 31.9198 10.2957L32.0565 10.2053C32.3806 9.98471 32.7242 9.79792 33.0542 9.6181C33.5159 9.36873 33.9513 9.13227 34.2949 8.82726C34.4404 8.69711 34.5761 8.56994 34.7089 8.44376C35.0076 8.1626 35.3161 7.8715 35.6792 7.61319C35.7056 7.5188 35.728 7.34096 35.7437 7.22571C35.7729 7.00714 35.8022 6.78062 35.8803 6.5849C36.2513 5.64304 37.1592 4.90884 37.9597 4.25908C38.2252 4.04448 38.4771 3.84081 38.6743 3.65602C38.7992 3.53878 38.9222 3.42055 39.0452 3.30332C39.6388 2.73701 40.2509 2.15084 40.9967 1.68289C41.601 1.30536 42.3898 0.833439 43.1249 0.552274C44.0972 0.1807 44.5579 0.208518 45.4766 0.262168L45.6474 0.27111C47.3607 0.371455 49.1384 0.32476 50.8575 0.281045C51.7205 0.258194 52.5796 0.235343 53.4347 0.230376C53.6651 0.230376 54.0156 0.185667 54.3836 0.138972C55.6078 -0.0140291 56.994 -0.188888 57.7818 0.503592C58.1118 0.792705 58.2924 1.19806 58.3031 1.67594C58.311 2.05248 58.1567 2.33464 58.0435 2.54129C58.0064 2.60686 57.9527 2.7082 57.9458 2.74297C57.9488 2.73205 57.9849 2.78768 58.0103 2.82742C58.1362 3.01718 58.3686 3.37088 58.2748 3.89843C58.2397 4.10111 58.1811 4.3167 58.1216 4.53528C58.0464 4.81147 57.9693 5.09761 57.9624 5.31419C57.9498 5.69073 57.6335 5.99376 57.2703 5.97289C56.9013 5.95998 56.6104 5.64603 56.6231 5.26849C56.6367 4.89195 56.7392 4.50944 56.831 4.17264C56.8788 3.9948 56.9276 3.82094 56.9569 3.65502C56.9481 3.65502 56.9218 3.62323 56.8993 3.58746C56.791 3.42254 56.6065 3.14535 56.6065 2.73701C56.6065 2.36345 56.7607 2.08328 56.873 1.87862C56.9072 1.81702 56.9589 1.72462 56.9657 1.69084C56.9608 1.58354 56.9267 1.55274 56.9072 1.53685C56.5694 1.23979 55.2544 1.40372 54.5496 1.49313C54.1386 1.5438 53.752 1.59348 53.4435 1.59547C52.5971 1.60043 51.7439 1.62229 50.8907 1.64315C49.1442 1.68886 47.3382 1.73654 45.5722 1.63421L45.3985 1.62328C44.5345 1.57162 44.3022 1.55871 43.5964 1.82894C42.9618 2.07235 42.2101 2.5244 41.7006 2.84431C41.0699 3.23973 40.533 3.75338 39.9648 4.29683C39.8379 4.41804 39.712 4.53925 39.5831 4.65947C39.3479 4.87804 39.0794 5.09661 38.7953 5.32611C38.1237 5.87056 37.3642 6.48555 37.1231 7.09457C37.1065 7.14425 37.085 7.30221 37.0713 7.40753C37.0147 7.84666 36.9424 8.3931 36.5041 8.69016C36.1927 8.90277 35.9145 9.16704 35.6187 9.44523C35.4771 9.57935 35.3317 9.71546 35.1774 9.85257C34.7186 10.2629 34.1924 10.548 33.6838 10.8222C33.3675 10.9931 33.0698 11.1541 32.8033 11.3369C32.7554 11.3707 32.6978 11.4064 32.6373 11.4462C32.5114 11.5276 32.2332 11.7065 32.1346 11.8217C32.1424 11.8992 32.1726 12.0115 32.2117 12.1009C32.3757 12.0214 32.6041 11.924 32.8804 11.9459C33.6633 12.0135 34.0401 12.8937 34.0558 13.4988C34.0743 14.2191 33.677 14.7337 33.3587 15.145C33.0971 15.4868 32.9351 15.7074 32.9487 15.9319C32.9565 16.0511 33.0288 16.3114 33.0932 16.5419C33.3314 17.3933 33.7746 18.978 32.4479 19.5701C32.0965 19.7281 31.7314 19.7082 31.4375 19.6933C31.3126 19.6864 31.1046 19.6764 31.047 19.7023C30.7171 20.051 30.3227 20.3113 29.9166 20.5706L29.7692 20.663C29.5212 20.816 29.2654 20.976 29.1405 21.1488C29.1083 21.1935 29.0819 21.2412 29.0585 21.2859C28.9345 21.5085 28.7256 21.884 28.174 21.9993C27.9827 22.04 27.7943 22.0708 27.6059 22.0996C27.3364 22.1414 27.0807 22.1811 26.8386 22.2566C26.7087 22.2993 26.5711 22.35 26.4334 22.4017C25.9697 22.5745 25.4435 22.7732 24.8871 22.7474C24.5981 22.7355 24.3131 22.7087 24.027 22.6808C23.4989 22.6282 22.9981 22.5805 22.511 22.6481C22.2572 22.6828 22.0258 22.7653 21.7817 22.8537C21.1716 23.0733 20.3369 23.3733 19.4046 22.508C18.9927 22.1265 18.8267 22.049 18.1473 21.9178L16.065 21.5164C15.942 21.4936 15.775 21.5264 15.5818 21.5651C15.3289 21.6168 15.0136 21.6784 14.6719 21.6297C12.9508 21.3724 11.0218 21.7112 8.59689 22.6928C8.49829 22.7325 8.42703 22.7643 8.37431 22.7891C8.39579 22.9779 8.42312 23.2491 8.39091 23.6217C8.53343 23.6416 8.69353 23.6843 8.86047 23.7737C9.81228 24.2834 9.63461 25.256 9.5487 25.724C9.53601 25.7876 9.52528 25.8511 9.51551 25.9127C9.4628 26.2694 9.49501 26.3429 9.65511 26.6917C9.70392 26.798 9.75664 26.9162 9.81326 27.0543C10.3941 28.4681 9.28415 29.1039 8.68865 29.4447C8.46705 29.5719 8.23764 29.701 8.11268 29.8331C7.99944 29.9524 7.89987 30.1372 7.79541 30.3329C7.62945 30.6448 7.44104 30.9975 7.10522 31.2847C6.79088 31.5529 6.41894 31.7536 6.05871 31.9454C5.74144 32.1153 5.44077 32.2762 5.21623 32.464C5.02782 32.6219 4.84527 32.8048 4.65295 32.9985C4.34252 33.3085 4.02524 33.6294 3.62499 33.8976C3.41901 34.0347 3.17203 34.147 2.9104 34.2652C2.69661 34.3606 2.33443 34.5225 2.14992 34.6626L2.15383 36.8096C2.15383 36.8881 2.15578 36.9527 2.15871 37.0023C2.21533 36.9974 2.27586 36.9904 2.32662 36.9835C2.5287 36.9606 2.77959 36.9308 3.06952 36.9308L36.9581 36.9566C38.0573 36.9566 39.2141 36.9884 40.2304 37.3471C40.6755 37.5021 40.9801 37.8538 41.1812 38.0853C41.2281 38.1399 41.2681 38.1896 41.3052 38.2234C41.4018 38.3048 41.5551 38.3674 41.7328 38.441C42.0129 38.5562 42.3615 38.7003 42.6572 39.0043C43.2811 39.6411 43.2713 40.4469 43.2645 41.0927C43.2606 41.2417 43.2606 41.3897 43.2664 41.5328C43.3084 42.3326 43.5261 42.5581 44.0532 43.1055C44.1372 43.1929 44.2251 43.2853 44.3188 43.3847C44.3842 43.4542 44.5287 43.4701 44.761 43.491C45.0412 43.5138 45.3897 43.5417 45.6953 43.7751C46.0291 44.0275 46.2546 44.5888 46.3376 44.8809C46.5455 45.0846 47.2777 45.4711 47.5647 45.6211C47.7639 45.7264 47.9298 45.8158 48.0265 45.8754L48.3672 46.088C49.3346 46.6891 50.3011 47.2922 51.2705 47.8943C51.3993 47.9727 51.533 48.0463 51.6707 48.1188C52.0924 48.3443 52.5698 48.6006 52.9291 49.0567C53.3215 49.5544 53.2942 50.0045 53.259 50.4029C53.3156 50.2936 53.3781 50.1893 53.4513 50.0879C53.5841 49.8982 53.7393 49.7541 53.877 49.626C54.0136 49.4998 54.1073 49.4104 54.1396 49.3388C54.1132 49.2772 54.0527 49.1739 54.0117 49.1034C53.8487 48.8232 53.6271 48.4387 53.7315 47.9857C53.7725 47.8108 53.8789 47.6588 54.0283 47.5634C54.0849 47.5276 54.205 47.4591 54.3631 47.3717C54.5818 47.2495 55.1373 46.9405 55.475 46.71C54.9723 45.5913 55.1392 44.2163 55.2886 42.9843C55.3345 42.6038 55.3784 42.2451 55.3989 41.9222C55.4204 41.5467 55.7337 41.2606 56.1076 41.2834C56.4776 41.3063 56.7588 41.6301 56.7353 42.0057C56.7148 42.3693 56.667 42.7498 56.6182 43.1522C56.4776 44.3166 56.3165 45.637 56.833 46.3911C56.954 46.5669 56.994 46.7895 56.9452 47.0021C56.8417 47.4502 56.3898 47.7879 55.1958 48.4606C55.352 48.7308 55.5395 49.0904 55.4731 49.5167C55.4623 49.5812 55.4487 49.6428 55.4321 49.7015C55.766 49.5793 56.1154 49.464 56.4845 49.3577C57.8775 48.9543 59.3409 48.7745 61.225 48.7745C62.0587 48.7745 62.8006 48.5053 63.5874 48.2211C64.2103 47.9946 64.8546 47.7621 65.576 47.6508C66.1852 47.5555 66.5005 47.7562 66.7728 47.9688C66.8636 48.0403 66.93 48.09 67.0442 48.1357C67.3625 48.2619 67.7325 48.2211 68.1601 48.1754C68.5925 48.1277 69.0836 48.0731 69.5844 48.2042C69.8821 48.2837 70.09 48.5579 70.0861 48.8709C70.0744 50.0571 68.5076 50.5459 67.7549 50.7814L67.0384 51.0099C66.4985 51.1848 65.9567 51.3586 65.41 51.5176C65.1631 51.5881 64.918 51.6587 64.672 51.7223C64.3889 51.7948 64.099 51.9597 63.7944 52.1316C63.481 52.3094 63.1579 52.4922 62.786 52.6174C62.1426 52.83 61.4837 52.9413 60.6471 52.9761C60.4069 52.987 60.1746 53.0943 59.9295 53.2056C59.5674 53.3735 59.1154 53.5801 58.6107 53.4132C58.3949 53.3864 57.5534 53.6775 57.1502 53.8196C56.832 53.9289 56.5577 54.0242 56.3419 54.0759C55.598 54.2528 54.8415 54.3918 54.1103 54.527L53.5968 54.6223C53.1516 54.7058 52.7035 54.7922 52.2613 54.8926L52.2076 54.9085C52.0797 54.9482 51.9021 55.0038 51.7078 55.0038L51.7107 54.9999ZM53.0735 51.6746C53.0569 51.7471 53.0403 51.8196 53.0237 51.8941C53.0032 51.9806 52.9788 52.064 52.9544 52.1455C52.9281 52.2359 52.9066 52.3055 52.8988 52.3651C52.8793 52.5379 52.8773 52.6313 52.8978 52.7247C52.9495 52.9791 52.9388 53.1907 52.8949 53.3645C53.0482 53.3347 53.2024 53.3049 53.3566 53.2751L53.875 53.1808C54.5896 53.0486 55.3296 52.9125 56.0412 52.7436C56.1906 52.7078 56.4483 52.6194 56.7217 52.525C57.7721 52.1604 58.4994 51.9359 59.0295 52.1127C59.0646 52.1058 59.2559 52.0173 59.3828 51.9597C59.7001 51.8137 60.0945 51.6328 60.5924 51.611C61.3021 51.5812 61.8498 51.4908 62.372 51.3169C62.622 51.2345 62.8748 51.0914 63.1442 50.9374C63.5123 50.7298 63.892 50.5142 64.3469 50.3969C64.5793 50.3373 64.8136 50.2707 65.0459 50.2042C65.5789 50.0482 66.11 49.8773 66.6362 49.7064L67.1253 49.5514C66.9388 49.5246 66.7504 49.4779 66.56 49.4014C66.2672 49.2862 66.0836 49.1411 65.9616 49.0457C65.9313 49.0229 65.906 48.999 65.8757 48.9812C65.8737 48.9851 65.8405 48.9851 65.7781 48.9941C65.1845 49.0855 64.6281 49.2862 64.0394 49.4998C63.1794 49.8107 62.293 50.1326 61.2279 50.1326C59.4717 50.1326 58.1235 50.2966 56.8535 50.6642C55.7142 50.992 54.7868 51.3984 54.0166 51.9031C53.7901 52.0521 53.5001 52.0481 53.2776 51.8951C53.1917 51.8365 53.1214 51.76 53.0735 51.6716V51.6746Z\" fill=\"#154973\"/>\n <path d=\"M67.6348 51.8019C67.6348 51.8019 67.6173 51.782 67.6173 51.7303C67.6173 51.6787 67.6348 51.6588 67.6348 51.6588H68.5564C68.5564 51.6588 68.5749 51.6806 68.5749 51.7303C68.5749 51.78 68.5564 51.8019 68.5564 51.8019H68.1932V52.9205C68.1932 52.9205 68.1659 52.9404 68.0976 52.9404C68.0292 52.9404 67.998 52.9205 67.998 52.9205V51.8019H67.6348Z\" fill=\"#154973\"/>\n <path d=\"M69.4282 52.8659C69.4135 52.8748 69.3891 52.8858 69.3471 52.8858C69.3178 52.8858 69.2837 52.8798 69.27 52.8659L68.9889 52.1476C68.9723 52.1088 68.9459 52.0323 68.944 52.0214C68.944 52.0264 68.9371 52.1277 68.9332 52.1565L68.8815 52.9205C68.8815 52.9205 68.8561 52.9404 68.7858 52.9404C68.7155 52.9404 68.6862 52.9205 68.6862 52.9205L68.7839 51.6787C68.7839 51.6787 68.8112 51.6588 68.8776 51.6588C68.9518 51.6588 68.9781 51.6787 68.9781 51.6787L69.3042 52.5162L69.3471 52.6533C69.3481 52.6473 69.3774 52.5559 69.392 52.5162L69.7181 51.6787C69.7181 51.6787 69.7464 51.6588 69.8206 51.6588C69.886 51.6588 69.9124 51.6787 69.9124 51.6787L70.01 52.9205C70.01 52.9205 69.9807 52.9404 69.9104 52.9404C69.8401 52.9404 69.8167 52.9205 69.8167 52.9205L69.763 52.1546L69.7523 52.0194C69.7523 52.0194 69.722 52.1148 69.7093 52.1456L69.4282 52.8659Z\" fill=\"#154973\"/>\n</svg>`;\n\nexport default nysBrandLogoSvg;\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport nysLogo from \"./nys-unav.logo\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-unavheader.scss?inline\";\n\nexport class NysUnavHeader extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: Boolean }) trustbarVisible = false;\n @property({ type: Boolean }) searchDropdownVisible = false;\n @property({ type: Boolean }) languageVisible = false;\n @property({ type: Boolean }) isSearchFocused = false;\n @property({ type: Boolean }) hideTranslate = false;\n @property({ type: Boolean }) hideSearch = false;\n @property({ type: Array, reflect: true })\n private languages: [string, string][] = [\n [\"English\", \"\"],\n [\"Español\", \"es\"],\n [\"中文\", \"zh\"],\n [\"繁體中文\", \"zh-traditional\"],\n [\"Русский\", \"ru\"],\n [\"יידיש\", \"yi\"],\n [\"বাংলা\", \"bn\"],\n [\"한국어\", \"ko\"],\n [\"Kreyòl Ayisyen\", \"ht\"],\n [\"Italiano\", \"it\"],\n [\"العربية\", \"ar\"],\n [\"Polski\", \"pl\"],\n [\"Français\", \"fr\"],\n [\"اردو\", \"ur\"],\n ];\n\n private _getNysLogo() {\n if (!nysLogo) return null;\n\n // Parse the SVG string into an actual SVG DOM element\n const parser = new DOMParser();\n const svgDoc = parser.parseFromString(nysLogo, \"image/svg+xml\");\n const svgElement = svgDoc.documentElement;\n\n return svgElement;\n }\n\n private _toggleTrustbar(clickID?: string) {\n this.trustbarVisible = !this.trustbarVisible;\n\n if (this.trustbarVisible) {\n this.languageVisible = false;\n this.searchDropdownVisible = false;\n }\n\n if (clickID === \"no focus\") return;\n\n const shouldMoveFocus =\n clickID === \"nys-unavheader__know--inline\" || !clickID;\n\n if (shouldMoveFocus) {\n const targetId = this.trustbarVisible\n ? \"nys-unavheader__closetrustbar\"\n : \"nys-unavheader__know--inline\";\n\n this.updateComplete.then(() => {\n const target = this.shadowRoot?.getElementById(targetId);\n target?.focus();\n });\n }\n }\n\n private _toggleLanguageList() {\n this.languageVisible = !this.languageVisible;\n if (this.languageVisible) {\n this.trustbarVisible = false;\n this.searchDropdownVisible = false;\n }\n }\n\n private _toggleSearchDropdown() {\n this.searchDropdownVisible = !this.searchDropdownVisible;\n if (this.searchDropdownVisible) {\n this.trustbarVisible = false;\n this.languageVisible = false;\n }\n }\n\n private _handleSearchFocus() {\n this.isSearchFocused = true;\n this.trustbarVisible = false;\n this.languageVisible = false;\n }\n\n private _handleSearchBlur() {\n this.isSearchFocused = false;\n }\n\n private _handleSearchKeyup(e: KeyboardEvent) {\n if (e.key === \"Escape\") {\n this._handleSearchBlur();\n (e.target as HTMLInputElement).blur();\n }\n if (e.key === \"Enter\") {\n // Handle search\n const searchValue = (e.target as HTMLInputElement).value?.trim();\n if (searchValue !== \"\") this._handleSearch(searchValue);\n }\n }\n\n private _handleSearchButton(searchID: string) {\n const searchInput = this.shadowRoot?.getElementById(\n searchID,\n ) as HTMLInputElement;\n const searchValue = searchInput.value?.trim();\n if (searchValue !== \"\") this._handleSearch(searchValue);\n }\n\n private _handleSearch(searchValue: string) {\n window.location.href = `https://search.its.ny.gov/search/search.html?btnG=Search&client=default_frontend&output=xml_no_dtd&proxystylesheet=default_frontend&ulang=en&sort=date:D:L:d1&entqr=3&entqrm=0&wc=200&wc_mc=1&oe=UTF-8&ie=UTF-8&ud=1&site=default_collection&q=${searchValue}+inurl:${window.location.hostname}&site=default_collection`;\n }\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n\n render() {\n return html`\n <header class=\"nys-unavheader\">\n <div\n class=\"nys-unavheader__trustbar wrapper\"\n @click=\"${(e: MouseEvent) => {\n const target = e.target as HTMLElement;\n\n // Ignore clicks that originated within a nys-button\n if (target.closest(\"nys-button\")) return;\n\n // Only handle direct wrapper clicks (outside of buttons)\n this._toggleTrustbar(\"no focus\");\n }}\"\n >\n <div class=\"content\">\n <label id=\"nys-unavheader__official\"\n >An official website of New York State</label\n >\n <nys-button\n id=\"nys-unavheader__know\"\n label=\"Here's how you know\"\n variant=\"ghost\"\n size=\"sm\"\n suffixIcon=\"slotted\"\n @nys-click=\"${(e: CustomEvent) => {\n e.preventDefault();\n e.stopPropagation();\n this._toggleTrustbar(\"nys-unavheader__know\");\n }}\"\n >\n <nys-icon\n slot=\"suffix-icon\"\n size=\"12\"\n name=\"${this.trustbarVisible ? \"chevron_up\" : \"chevron_down\"}\"\n ></nys-icon>\n </nys-button>\n </div>\n </div>\n <div\n class=\"nys-unavheader__trustpanel wrapper ${this.trustbarVisible\n ? \"show\"\n : \"hide\"}\"\n >\n <div class=\"nys-unavheader__trustpanel content\">\n <nys-button\n id=\"nys-unavheader__closetrustbar\"\n class=\"nys-unavheader__iconbutton\"\n variant=\"ghost\"\n circle\n icon=\"close\"\n size=\"sm\"\n ariaLabel=\"Close this notice\"\n aria-expanded=\"${this.trustbarVisible}\"\n @nys-click=\"${() =>\n this._toggleTrustbar(\"nys-unavheader__know--inline\")}\"\n ></nys-button>\n <div class=\"nys-unavheader__messagewrapper\">\n <div\n class=\"nys-unavheader__trustcontentmessage\"\n id=\"trust_official\"\n >\n <nys-icon size=\"3xl\" name=\"account_balance_filled\"></nys-icon>\n <label><b>Official websites use ny.gov</b></label>\n <label\n >A <b>ny.gov</b> website belongs to an official New York State\n government organization.</label\n >\n </div>\n <div\n class=\"nys-unavheader__trustcontentmessage\"\n id=\"trust_secure\"\n >\n <nys-icon size=\"3xl\" name=\"lock_filled\"></nys-icon>\n <label><b>Secure ny.gov websites use HTTPS</b></label>\n <label\n >A <b>lock icon</b> or <b>https://</b> means you've safely\n connected to the ny.gov website. Share sensitive information\n only on official, secure websites.</label\n >\n </div>\n </div>\n </div>\n </div>\n <div class=\"nys-unavheader__main wrapper\" id=\"nys-universal-navigation\">\n <div class=\"nys-unavheader__main content\">\n <a\n href=\"https://www.ny.gov\"\n id=\"nys-unavheader__logolink\"\n aria-label=\"Visit the NY.gov homepage\"\n >\n <div class=\"nys-unavheader__logo\">${this._getNysLogo()}</div></a\n >\n <div class=\"nys-unavheader__trustbar inline\">\n <label id=\"nys-unavheader__official\"\n >An official website of New York State</label\n >\n <nys-button\n id=\"nys-unavheader__know--inline\"\n label=\"Here's how you know\"\n aria-controls=\"nys-unavheader__closetrustbar\"\n aria-expanded=\"${this.trustbarVisible}\"\n variant=\"ghost\"\n size=\"sm\"\n suffixIcon=\"slotted\"\n @nys-click=\"${() =>\n this._toggleTrustbar(\"nys-unavheader__know--inline\")}\"\n >\n <nys-icon\n slot=\"suffix-icon\"\n size=\"12\"\n name=\"${this.trustbarVisible ? \"chevron_up\" : \"chevron_down\"}\"\n ></nys-icon>\n </nys-button>\n </div>\n <div class=\"nys-unavheader__spacer\"></div>\n ${!this.hideTranslate\n ? html`<div class=\"nys-unavheader__translatewrapper\">\n <nys-button\n variant=\"ghost\"\n circle\n icon=\"slotted\"\n ariaLabel=\"Translate\"\n aria-expanded=\"${this.languageVisible}\"\n id=\"nys-unavheader__translate--mobile\"\n class=\"nys-unavheader__iconbutton\"\n @nys-click=${this._toggleLanguageList}\n >\n <nys-icon\n slot=\"circle-icon\"\n name=\"language\"\n size=\"16\"\n ></nys-icon>\n </nys-button>\n ${!this.isSearchFocused\n ? html`\n <nys-button\n variant=\"ghost\"\n label=\"Translate\"\n aria-expanded=\"${this.languageVisible}\"\n size=\"sm\"\n prefixIcon=\"language\"\n suffixIcon=${this.languageVisible\n ? \"chevron_up\"\n : \"chevron_down\"}\n id=\"nys-unavheader__translate--desktop\"\n @nys-click=\"${this._toggleLanguageList}\"\n ></nys-button>\n `\n : null}\n <div\n class=\"nys-unavheader__languagelist ${this.languageVisible\n ? \"show\"\n : \"hide\"}\"\n >\n ${this.languages.map(\n ([label, code]) =>\n html`<a\n class=\"nys-unavheader__languagelink\"\n target=\"_self\"\n href=\"https://${code ? code + \".\" : \"\"}${window\n .location.hostname}\"\n >${label}</a\n >`,\n )}\n </div>\n </div>`\n : null}\n ${!this.hideSearch\n ? html`\n <nys-button\n variant=\"ghost\"\n circle\n icon=\"search\"\n ariaLabel=\"Search\"\n aria-expanded=\"${this.searchDropdownVisible}\"\n id=\"nys-unavheader__searchbutton\"\n class=\"nys-unavheader__iconbutton\"\n @nys-click=${this._toggleSearchDropdown}\n >\n <nys-icon\n slot=\"circle-icon\"\n name=\"search\"\n size=\"16\"\n ></nys-icon>\n </nys-button>\n <nys-textinput\n class=\"nys-unavheader__search\"\n id=\"nys-unavheader__searchbar\"\n placeholder=\"Search\"\n type=\"search\"\n @focus=\"${this._handleSearchFocus}\"\n @blur=\"${this._handleSearchBlur}\"\n @keyup=\"${this._handleSearchKeyup}\"\n >\n <nys-button\n id=\"nys-unavheader__searchbar--button\"\n slot=\"endButton\"\n type=\"submit\"\n prefixIcon=\"search\"\n ariaLabel=\"Search\"\n @nys-click=${() => {\n this._handleSearchButton(\"nys-unavheader__searchbar\");\n }}\n ></nys-button>\n </nys-textinput>\n `\n : null}\n </div>\n </div>\n <div\n class=\"nys-unavheader__searchdropdown wrapper ${this\n .searchDropdownVisible\n ? \"show\"\n : \"hide\"}\"\n >\n <div class=\"content\">\n <nys-textinput\n class=\"nys-unavheader__search\"\n id=\"nys-unavheader__searchbardropdown\"\n placeholder=\"Search\"\n type=\"search\"\n @focus=\"${this._handleSearchFocus}\"\n @blur=\"${this._handleSearchBlur}\"\n @keyup=\"${this._handleSearchKeyup}\"\n >\n <nys-button\n id=\"nys-unavheader__searchbardropdown--button\"\n slot=\"endButton\"\n type=\"submit\"\n prefixIcon=\"search\"\n ariaLabel=\"Search\"\n @nys-click=${() => {\n this._handleSearchButton(\"nys-unavheader__searchbardropdown\");\n }}\n ></nys-button\n ></nys-textinput>\n </div>\n </div>\n </header>\n `;\n }\n}\n\nif (!customElements.get(\"nys-unavheader\")) {\n customElements.define(\"nys-unavheader\", NysUnavHeader);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-globalheader.scss?inline\";\n\nexport class NysGlobalHeader extends LitElement {\n static styles = unsafeCSS(styles);\n\n // Properties\n @property({ type: String }) appName = \"\";\n @property({ type: String }) agencyName = \"\";\n @property({ type: String }) homepageLink = \"\";\n @state() private slotHasContent = true;\n @state() private isMobileMenuOpen = false;\n\n // Lifecycle Methods\n\n firstUpdated() {\n // Check for slot content after rendering\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n slot?.addEventListener(\"slotchange\", () => this._handleSlotChange());\n this._handleSlotChange(); // run once at startup\n\n this._listenLinkClicks();\n }\n\n // Functions\n // Gets called when the slot content changes and directly appends the slotted elements into the shadow DOM\n private async _handleSlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n if (!slot) return;\n\n const assignedNodes = slot\n ?.assignedNodes({ flatten: true })\n .filter((node) => node.nodeType === Node.ELEMENT_NODE) as Element[]; // Filter to elements only\n\n await Promise.resolve(); // Wait for current update cycle to complete before modifying reactive state (solves the lit issue \"scheduled an update\")\n\n // Update slotHasContent for styling content\n this.slotHasContent = assignedNodes.length > 0;\n\n // Get the container to append the slotted elements\n const container = this.shadowRoot?.querySelector(\n \".nys-globalheader__content\",\n );\n const containerMobile = this.shadowRoot?.querySelector(\n \".nys-globalheader__content-mobile\",\n );\n\n if (container && containerMobile) {\n // Clear existing children in the container\n container.innerHTML = \"\";\n containerMobile.innerHTML = \"\";\n\n const currentUrl = this._normalizePath(\n window.location.pathname + window.location.hash,\n );\n\n // Clone and append slotted elements into the shadow DOM container\n assignedNodes.forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const cleanNode = node.cloneNode(true) as HTMLElement;\n const cleanNodeMobile = node.cloneNode(true) as HTMLElement;\n\n // Remove <script>, <iframe>, <object>, and any potentially dangerous elements XSS\n const dangerousTags = [\"script\", \"iframe\", \"object\", \"embed, img\"];\n dangerousTags.forEach((tag) => {\n (cleanNode as Element)\n .querySelectorAll(tag)\n .forEach((element) => element.remove());\n });\n\n /**\n * Get all user slotted ahref links and for each link, determine the best matching link via the pattern of\n * prioritize the link with the longest match.\n * @param node\n */\n const highlightActiveLink = (node: HTMLElement) => {\n const links = Array.from(node.querySelectorAll(\"a\"));\n\n // Because we can only have one active link at all times, we\n let bestMatch: { li: HTMLElement | null; length: number } = {\n li: null,\n length: 0,\n };\n\n links.forEach((a) => {\n const hrefAttr = a.getAttribute(\"href\");\n const linkPath = this._normalizePath(hrefAttr);\n\n if (!linkPath) return;\n\n // Exact homepage match\n if (linkPath === \"/\" && currentUrl === \"/\") {\n bestMatch = { li: a.closest(\"li\"), length: 1 };\n } else if (\n currentUrl?.startsWith(linkPath) &&\n linkPath.length > bestMatch.length\n ) {\n bestMatch = { li: a.closest(\"li\"), length: linkPath.length };\n }\n\n // Clear old actives\n links.forEach((a) => a.closest(\"li\")?.classList.remove(\"active\"));\n\n // Set the best matched link to active\n bestMatch.li?.classList.add(\"active\");\n });\n };\n\n highlightActiveLink(cleanNode);\n highlightActiveLink(cleanNodeMobile);\n\n container.appendChild(cleanNode);\n containerMobile.appendChild(cleanNodeMobile);\n node.remove(); // Remove from light DOM to avoid duplication\n }\n });\n }\n }\n\n // Normalize paths so that links like \"name\", \"/name/\", and \"/\" match window.location.pathname.\n // This ensures consistent active-link behavior regardless of how hrefs are written.\n private _normalizePath(path: string | null) {\n if (!path) return;\n\n // Checks path always starts with \"/\"\n if (!path.startsWith(\"/\")) {\n path = \"/\" + path;\n }\n\n // Strip trailing slash except for root \"/\"\n if (path.length > 1 && path.endsWith(\"/\")) {\n path = path.slice(0, -1);\n }\n\n return path.toLowerCase();\n }\n\n private _toggleMobileMenu() {\n this.isMobileMenuOpen = !this.isMobileMenuOpen;\n }\n\n /**\n * Handles client-side navigation when links are clicked (no full page refresh).\n */\n // Ensures only the clicked link's <li> is marked active in both desktop and mobile menus.\n private _listenLinkClicks() {\n const containers = this.shadowRoot?.querySelectorAll(\n \".nys-globalheader__content, .nys-globalheader__content-mobile\",\n );\n\n containers?.forEach((container) => {\n container?.addEventListener(\"click\", (event) => {\n const target = event.target as HTMLElement;\n const a = target.closest(\"a\");\n\n if (!a) return;\n\n // Clear all existing active <li>\n container\n .querySelectorAll(\"li.active\")\n .forEach((li) => li.classList.remove(\"active\"));\n\n // Set active on the clicked link's <li>\n const li = a.closest(\"li\");\n if (li) li.classList.add(\"active\");\n });\n });\n }\n\n render() {\n return html`\n <header class=\"nys-globalheader\">\n <div class=\"nys-globalheader__main-container\">\n ${this.slotHasContent\n ? html` <div class=\"nys-globalheader__button-container\">\n <button\n class=\"nys-globalheader__mobile-menu-button\"\n @click=\"${this._toggleMobileMenu}\"\n >\n <nys-icon\n name=\"${this.isMobileMenuOpen ? \"close\" : \"menu\"}\"\n size=\"32\"\n label=\"${this.isMobileMenuOpen ? \"close\" : \"menu\"} icon\"\n ></nys-icon>\n <span class=\"nys-globalheader__mobile-menu-button-text\"\n >${this.isMobileMenuOpen ? \"CLOSE\" : \"MENU\"}</span\n >\n </button>\n </div>`\n : \"\"}\n ${!this.homepageLink?.trim()\n ? html`\n <div class=\"nys-globalheader__name-container\">\n ${this.appName?.trim().length > 0\n ? html`<div\n class=\"nys-globalheader__appName nys-globalheader__name\"\n >\n ${this.appName}\n </div> `\n : \"\"}\n ${this.agencyName?.trim().length > 0\n ? html`<div\n class=\"nys-globalheader__agencyName nys-globalheader__name ${this.appName?.trim()\n .length > 0\n ? \"\"\n : \"main\"}\"\n >\n ${this.agencyName}\n </div> `\n : \"\"}\n </div>\n `\n : html`<a\n class=\"nys-globalheader__name-container-link\"\n href=${this.homepageLink?.trim()}\n >\n <div class=\"nys-globalheader__name-container\">\n ${this.appName?.trim().length > 0\n ? html`<div\n class=\"nys-globalheader__appName nys-globalheader__name\"\n >\n ${this.appName}\n </div> `\n : \"\"}\n ${this.agencyName?.trim().length > 0\n ? html`<div\n class=\"nys-globalheader__agencyName nys-globalheader__name ${this.appName?.trim()\n .length > 0\n ? \"\"\n : \"main\"}\"\n >\n ${this.agencyName}\n </div> `\n : \"\"}\n </div>\n </a>`}\n ${this.slotHasContent\n ? html`<div class=\"nys-globalheader__content\">\n <slot\n style=\"display: hidden\"\n @slotchange=\"${this._handleSlotChange}\"\n ></slot>\n </div>`\n : \"\"}\n </div>\n </header>\n <div\n class=\"nys-globalheader__content-mobile ${this.isMobileMenuOpen\n ? \"\"\n : \"close\"}\"\n ></div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-globalheader\")) {\n customElements.define(\"nys-globalheader\", NysGlobalHeader);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-globalfooter.scss?inline\";\n\nexport class NysGlobalFooter extends LitElement {\n static styles = unsafeCSS(styles);\n\n // Properties\n @property({ type: String }) agencyName = \"\";\n @property({ type: String }) homepageLink = \"\";\n @state() private slotHasContent = true;\n\n // Lifecycle Methods\n\n firstUpdated() {\n // Check for slot content after rendering\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n slot?.addEventListener(\"slotchange\", () => this._handleSlotChange());\n this._handleSlotChange(); // Initial check\n }\n\n // Functions\n // Gets called when the slot content changes and directly appends the slotted elements into the shadow DOM\n private async _handleSlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n if (!slot) return;\n\n const assignedNodes = slot\n ?.assignedNodes({ flatten: true })\n .filter((node) => node.nodeType === Node.ELEMENT_NODE) as Element[]; // Filter to elements only\n\n await Promise.resolve(); // Wait for current update cycle to complete before modifying reactive state (solves the lit issue \"scheduled an update\")\n\n // Update slotHasContent based on assigned elements\n this.slotHasContent = assignedNodes.length > 0;\n\n // Determine layout based on content structure\n const container = this.shadowRoot?.querySelector(\n \".nys-globalfooter__content\",\n );\n const hasMultipleGroups = assignedNodes?.some(\n (node) => node.tagName === \"H4\",\n );\n\n // Toggle layout classes\n if (container) {\n container.classList.toggle(\"columns\", hasMultipleGroups);\n container.classList.toggle(\"small\", !hasMultipleGroups);\n\n // Clear existing children in the container\n container.innerHTML = \"\";\n\n // Clone and append slotted elements into the shadow DOM container\n assignedNodes.forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const cleanNode = node.cloneNode(true);\n\n // Remove <script>, <iframe>, <object>, and any potentially dangerous elements XSS\n const dangerousTags = [\"script\", \"iframe\", \"object\", \"embed\", \"img\"];\n dangerousTags.forEach((tag) => {\n (cleanNode as Element)\n .querySelectorAll(tag)\n .forEach((element) => element.remove());\n });\n container.appendChild(cleanNode);\n node.remove(); // Remove from light DOM to avoid duplication\n }\n });\n\n const spans = container.querySelectorAll(\"span\");\n spans.forEach((span) => {\n const divider = document.createElement(\"nys-divider\");\n divider.classList.add(\"divider\");\n span.insertAdjacentElement(\"afterend\", divider);\n });\n }\n }\n\n render() {\n return html`\n <footer class=\"nys-globalfooter\">\n <div class=\"nys-globalfooter__main-container\">\n ${!this.homepageLink?.trim()\n ? html`<h2 class=\"nys-globalfooter__name\">${this.agencyName}</h2>`\n : html`<a href=${this.homepageLink?.trim()}>\n <h2 class=\"nys-globalfooter__name\">${this.agencyName}</h2>\n </a>`}\n ${this.slotHasContent\n ? html`<div class=\"nys-globalfooter__content\">\n <slot\n style=\"display: hidden\"\n @slotchange=\"${this._handleSlotChange}\"\n ></slot>\n </div>`\n : \"\"}\n </div>\n </footer>\n `;\n }\n}\n\nif (!customElements.get(\"nys-globalfooter\")) {\n customElements.define(\"nys-globalfooter\", NysGlobalFooter);\n}\n","const nysBrandLogoSvg = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"91\" height=\"55\" viewBox=\"0 0 91 55\" fill=\"none\">\n <path d=\"M55.1158 7.50499L58.2905 12.6494V7.5189C58.2905 7.5189 58.6487 7.26356 59.5098 7.26356C60.3708 7.26356 60.7378 7.5189 60.7378 7.5189V16.4327C60.7378 16.4327 60.3942 16.689 59.5215 16.689C58.6487 16.689 58.3295 16.4605 58.3295 16.4605L55.1421 11.3171V16.4337C55.1421 16.4337 54.7848 16.69 53.9111 16.69C53.0374 16.69 52.7065 16.4337 52.7065 16.4337V7.51989C52.7065 7.51989 53.0384 7.26456 53.9248 7.26456C54.8112 7.26456 55.1148 7.50697 55.1148 7.50697L55.1158 7.50499Z\" fill=\"white\"/>\n <path d=\"M67.2209 12.5948H64.9063V14.8709H68.2538C68.2538 14.8709 68.5047 15.1531 68.5047 15.772C68.5047 16.391 68.2538 16.688 68.2538 16.688H62.4589V7.26257H67.9892C67.9892 7.26257 68.2538 7.54572 68.2538 8.17859C68.2538 8.81146 67.9892 9.09362 67.9892 9.09362H64.9063V10.7637H67.2209C67.2209 10.7637 67.4728 11.0598 67.4728 11.6787C67.4728 12.2977 67.2209 12.5948 67.2209 12.5948Z\" fill=\"white\"/>\n <path d=\"M71.4802 16.4327L68.9791 7.5189C68.9791 7.5189 69.3491 7.26356 70.2101 7.26356C71.0711 7.26356 71.4275 7.5189 71.4275 7.5189L72.6839 12.0434C72.7766 12.3802 72.8166 12.6365 72.8557 12.7845C72.8557 12.7428 72.9221 12.3663 73.0011 12.0573L74.0984 7.5189C74.0984 7.5189 74.5211 7.26356 75.1176 7.26356C75.7141 7.26356 76.084 7.5189 76.084 7.5189L77.3004 12.7845C77.3004 12.6623 77.3795 12.3255 77.4586 12.0573L78.756 7.5189C78.7686 7.5189 79.1132 7.26356 79.9596 7.26356C80.806 7.26356 81.1897 7.5189 81.1897 7.5189L78.6496 16.4327C78.6496 16.4327 78.2922 16.6751 77.4859 16.689C76.5468 16.689 76.2158 16.4327 76.2158 16.4327L75.223 12.2987C75.1449 11.9887 75.0902 11.6529 75.0785 11.5844L74.9184 12.2987L73.9266 16.4327C73.9266 16.4327 73.583 16.689 72.7092 16.689C71.8355 16.689 71.4802 16.4327 71.4802 16.4327Z\" fill=\"white\"/>\n <path d=\"M54.3485 19.2195L55.4331 21.1579C55.804 21.8176 56.0022 22.5587 56.0285 22.6521C56.0559 22.5587 56.2404 21.8315 56.624 21.1579L57.735 19.2195C57.735 19.2195 58.0659 18.9771 58.8723 18.9771C59.786 18.9771 60.1697 19.2861 60.1697 19.2861L57.2449 24.4295V28.1453C57.2449 28.1453 56.9013 28.4026 56.0276 28.4026C55.1539 28.4026 54.8239 28.1453 54.8239 28.1453V24.3898L51.8991 19.2871C51.8991 19.2871 52.2965 18.9781 53.2082 18.9781C53.9892 18.9781 54.3465 19.2205 54.3465 19.2205L54.3485 19.2195Z\" fill=\"white\"/>\n <path d=\"M64.6017 28.497C61.4788 28.497 60.117 26.6381 60.117 23.7033C60.117 20.7684 61.4798 18.8827 64.6017 18.8827C67.7237 18.8827 69.0865 20.7674 69.0865 23.7033C69.0865 26.6391 67.711 28.497 64.6017 28.497ZM64.6017 26.6778C65.9235 26.6778 66.6391 25.4667 66.6391 23.7033C66.6391 21.9398 65.9235 20.7138 64.6017 20.7138C63.2799 20.7138 62.5653 21.9398 62.5653 23.7033C62.5653 25.4667 63.2789 26.6778 64.6017 26.6778Z\" fill=\"white\"/>\n <path d=\"M72.844 28.1463C72.844 28.1463 72.4867 28.4036 71.6129 28.4036C70.7392 28.4036 70.4083 28.1463 70.4083 28.1463V19.3546C70.4083 19.3546 71.4011 18.8837 73.2266 18.8837C75.9913 18.8837 77.275 19.9607 77.275 21.8454C77.275 23.7301 75.8722 24.4563 75.7004 24.4712L77.8432 28.0936C77.5796 28.2675 76.8523 28.4026 76.3623 28.4026C75.7267 28.4026 75.225 28.1741 75.225 28.1741L73.6113 25.3068C73.5175 25.1041 73.3858 24.9561 73.1612 24.9561H72.844V28.1463ZM73.5322 20.7148C73.1349 20.7148 72.844 20.7952 72.844 20.7952V23.138H73.5049C74.4694 23.138 74.8413 22.4514 74.8413 21.9269C74.8413 21.2403 74.3786 20.7148 73.5322 20.7148Z\" fill=\"white\"/>\n <path d=\"M87.211 28.0787C87.211 28.0787 86.5901 28.4026 85.5836 28.4026C84.7236 28.4026 84.3663 28.1741 84.3663 28.1741L81.2317 23.8384V28.1463C81.2317 28.1463 80.9007 28.4036 80.027 28.4036C79.1533 28.4036 78.797 28.1463 78.797 28.1463V19.2344C78.797 19.2344 79.1533 18.9781 80.027 18.9781C80.9007 18.9781 81.2317 19.2344 81.2317 19.2344V23.4221L84.2618 19.2205C84.2618 19.2205 84.6182 18.9781 85.4782 18.9781C86.4701 18.9781 86.8684 19.3139 86.8684 19.3139L83.9045 23.4221L87.212 28.0797L87.211 28.0787Z\" fill=\"white\"/>\n <path d=\"M58.9806 31.3374C59.1515 32.1988 58.7014 32.8853 58.1987 33.0602C57.7096 32.7244 56.9296 32.4273 56.1096 32.4273C55.2895 32.4273 54.8122 32.7502 54.8122 33.2082C54.8122 33.6394 55.1958 33.7874 56.214 34.1252L57.4841 34.5415C58.8479 34.9985 59.6933 35.7 59.6933 37.1803C59.6933 38.8911 58.5823 40.2105 55.8831 40.2105C53.9912 40.2105 52.8256 39.5637 52.4029 39.1335C52.2711 38.5007 52.6137 37.7059 53.1057 37.4505C53.5284 37.7744 54.7848 38.3934 56.0676 38.3934C56.8359 38.3934 57.2596 38.1112 57.2596 37.5986C57.2596 37.2359 57.034 37.0064 56.5049 36.8306L54.3758 36.1719C53.2365 35.8073 52.3775 34.9737 52.3775 33.6126C52.3775 31.6732 53.6729 30.5973 56.0676 30.5973C57.5895 30.5973 58.4779 31.0145 58.9806 31.3374Z\" fill=\"white\"/>\n <path d=\"M60.3542 32.5227C60.3542 32.5227 60.1023 32.2534 60.1023 31.6067C60.1023 30.9599 60.3542 30.6906 60.3542 30.6906H67.5382C67.5382 30.6906 67.7901 30.9738 67.7901 31.6067C67.7901 32.2395 67.5382 32.5227 67.5382 32.5227H65.1562V39.8608C65.1562 39.8608 64.8136 40.1161 63.9525 40.1161C63.0915 40.1161 62.7088 39.8608 62.7088 39.8608V32.5227H60.3542Z\" fill=\"white\"/>\n <path d=\"M72.7502 30.9341L76.3232 39.8201C76.3232 39.8201 75.9659 40.1171 75.0658 40.1171C74.2321 40.1171 73.9032 39.8747 73.9032 39.8747L73.254 38.3258H69.8538L69.2446 39.8747C69.2446 39.8747 68.901 40.1171 68.081 40.1171C67.1819 40.1171 66.7972 39.8201 66.7972 39.8201L70.3702 30.9341C70.3702 30.9341 70.7002 30.6916 71.5592 30.6916C72.4183 30.6916 72.7502 30.9341 72.7502 30.9341ZM70.5674 36.5216H72.5394L71.8775 34.9051C71.7457 34.5822 71.5729 33.9226 71.5583 33.855C71.5329 33.9226 71.3337 34.5822 71.2156 34.9051L70.5674 36.5216Z\" fill=\"white\"/>\n <path d=\"M75.5949 32.5227C75.5949 32.5227 75.3431 32.2534 75.3431 31.6067C75.3431 30.9599 75.5949 30.6906 75.5949 30.6906H82.779C82.779 30.6906 83.0298 30.9738 83.0298 31.6067C83.0298 32.2395 82.779 32.5227 82.779 32.5227H80.397V39.8608C80.397 39.8608 80.0543 40.1161 79.1933 40.1161C78.3323 40.1161 77.9496 39.8608 77.9496 39.8608V32.5227H75.5949Z\" fill=\"white\"/>\n <path d=\"M88.9047 36.0228H86.5891V38.299H89.9356C89.9356 38.299 90.1875 38.5821 90.1875 39.2001C90.1875 39.8181 89.9356 40.1161 89.9356 40.1161H84.1408V30.6897H89.6711C89.6711 30.6897 89.9356 30.9728 89.9356 31.6057C89.9356 32.2385 89.6711 32.5217 89.6711 32.5217H86.5882V34.1908H88.9038C88.9038 34.1908 89.1547 34.4879 89.1547 35.1078C89.1547 35.7278 88.9038 36.0219 88.9038 36.0219L88.9047 36.0228Z\" fill=\"white\"/>\n <path d=\"M51.7107 54.9999C51.577 54.9999 51.4335 54.974 51.2939 54.8965C51.085 54.7803 50.9395 54.5876 50.8858 54.3551C50.8233 54.0868 50.8936 53.7868 51.082 53.5116L51.1426 53.4202C51.2041 53.3268 51.2685 53.2354 51.3407 53.1519C51.4218 53.0595 51.5047 52.995 51.5741 52.9493C51.5243 52.6691 51.5418 52.4267 51.5682 52.2061C51.5877 52.0233 51.6346 51.8683 51.6726 51.7451C51.6892 51.6925 51.7058 51.6388 51.7185 51.5812C51.8201 51.145 51.8855 50.7397 51.9206 50.3453C51.9528 49.9916 51.947 49.9846 51.8864 49.9061C51.7 49.6707 51.3847 49.5018 51.0498 49.3229C50.8878 49.2365 50.7286 49.1491 50.5754 49.0557C49.607 48.4536 48.6376 47.8505 47.6701 47.2465L47.3294 47.0339C47.2513 46.9862 47.1147 46.9156 46.9516 46.8282C45.8817 46.2659 45.172 45.8526 45.0539 45.2595C45.0363 45.173 44.9465 44.9644 44.884 44.864C44.8411 44.8611 44.7307 44.8521 44.6546 44.8471C44.3032 44.8183 43.7711 44.7726 43.3484 44.3196C43.2635 44.2272 43.1786 44.1408 43.1005 44.0583C42.5098 43.4443 42.0003 42.9148 41.9329 41.5993C41.9241 41.4275 41.9251 41.2506 41.928 41.0728C41.9339 40.5283 41.927 40.1836 41.7103 39.962C41.6078 39.8567 41.435 39.7862 41.2349 39.7037C40.9889 39.6034 40.7097 39.4881 40.45 39.2686C40.37 39.2 40.2792 39.1007 40.1776 38.9854C40.0712 38.8602 39.9082 38.6724 39.7969 38.6337C38.974 38.3436 37.986 38.3178 36.96 38.3178L3.07245 38.2909C2.85964 38.2909 2.66927 38.3138 2.48477 38.3347C2.07378 38.3823 1.60812 38.437 1.2313 38.0962C0.866192 37.7664 0.815429 37.2607 0.814452 36.8076L0.8125 34.3993C0.8125 34.2722 0.847644 34.147 0.913051 34.0387C1.22544 33.529 1.83265 33.2558 2.3686 33.0144C2.56872 32.924 2.77666 32.8316 2.88795 32.7571C3.17593 32.5623 3.43561 32.302 3.7109 32.0248C3.91688 31.8182 4.13068 31.6046 4.36887 31.4059C4.69786 31.1317 5.07078 30.931 5.43296 30.7372C5.74535 30.5703 6.03821 30.4124 6.24127 30.2395C6.38575 30.1173 6.49216 29.9146 6.61906 29.6792C6.75476 29.4238 6.90998 29.1337 7.15208 28.8804C7.41273 28.6081 7.7427 28.4194 8.03263 28.2535C8.69744 27.871 8.68182 27.8322 8.57736 27.5769C8.52855 27.4577 8.48072 27.3553 8.43972 27.2639C8.24447 26.8357 8.07754 26.4681 8.19078 25.7051C8.2025 25.6306 8.21616 25.5521 8.22983 25.4706C8.25619 25.3325 8.30305 25.0772 8.27571 25.0037C8.27571 25.0037 8.26204 24.9927 8.23471 24.9778C8.21128 24.9659 8.12928 24.9669 8.06875 24.9679C7.87448 24.9659 7.51914 24.9768 7.2497 24.6689C6.98124 24.3629 6.99686 23.9555 7.03982 23.6356C7.08179 23.3127 7.06032 23.1051 7.03982 22.9223C6.95684 22.1453 7.21358 21.7817 8.10097 21.424C10.7524 20.351 12.901 19.9884 14.8613 20.2805C14.9775 20.2974 15.1356 20.2656 15.3182 20.2269C15.5944 20.1702 15.9351 20.1017 16.312 20.1752L18.3952 20.5766C19.2475 20.7415 19.6653 20.9054 20.3047 21.4995C20.6327 21.8046 20.7655 21.7718 21.3327 21.5661C21.6168 21.4638 21.9399 21.3485 22.3323 21.2949C22.9727 21.2084 23.5731 21.2661 24.153 21.3227C24.4136 21.3475 24.6762 21.3734 24.9408 21.3843C25.2356 21.3952 25.6085 21.2561 25.9717 21.121C26.1318 21.0614 26.2889 21.0028 26.4412 20.9541C26.78 20.8468 27.0973 20.7991 27.4038 20.7514C27.5551 20.7266 27.7064 20.7037 27.8607 20.6729C27.8714 20.6531 27.8821 20.6332 27.8939 20.6113C27.9417 20.5249 27.9944 20.4345 28.0598 20.3411C28.3419 19.9497 28.7471 19.7003 29.0722 19.4966L29.2078 19.4122C29.5564 19.1916 29.8629 18.9879 30.105 18.7386C30.5423 18.2796 31.1232 18.3114 31.5108 18.3312C31.6455 18.3392 31.8495 18.3481 31.91 18.3223C32.1678 18.207 31.9413 17.3993 31.8065 16.9165C31.7119 16.5777 31.6299 16.2846 31.6133 16.0183C31.5664 15.2642 31.9764 14.7317 32.3064 14.3045C32.5651 13.9687 32.7213 13.7481 32.7164 13.5355C32.7164 13.4948 32.7027 13.4382 32.6851 13.3845C32.4587 13.4948 32.0955 13.6369 31.6796 13.4421C31.0129 13.1302 30.6468 12.0264 30.8508 11.3985C31.0197 10.8779 31.54 10.5421 31.9198 10.2957L32.0565 10.2053C32.3806 9.98471 32.7242 9.79792 33.0542 9.6181C33.5159 9.36873 33.9513 9.13227 34.2949 8.82726C34.4404 8.69711 34.5761 8.56994 34.7089 8.44376C35.0076 8.1626 35.3161 7.8715 35.6792 7.61319C35.7056 7.5188 35.728 7.34096 35.7437 7.22571C35.7729 7.00714 35.8022 6.78062 35.8803 6.5849C36.2513 5.64304 37.1592 4.90884 37.9597 4.25908C38.2252 4.04448 38.4771 3.84081 38.6743 3.65602C38.7992 3.53878 38.9222 3.42055 39.0452 3.30332C39.6388 2.73701 40.2509 2.15084 40.9967 1.68289C41.601 1.30536 42.3898 0.833439 43.1249 0.552274C44.0972 0.1807 44.5579 0.208518 45.4766 0.262168L45.6474 0.27111C47.3607 0.371455 49.1384 0.32476 50.8575 0.281045C51.7205 0.258194 52.5796 0.235343 53.4347 0.230376C53.6651 0.230376 54.0156 0.185667 54.3836 0.138972C55.6078 -0.0140291 56.994 -0.188888 57.7818 0.503592C58.1118 0.792705 58.2924 1.19806 58.3031 1.67594C58.311 2.05248 58.1567 2.33464 58.0435 2.54129C58.0064 2.60686 57.9527 2.7082 57.9458 2.74297C57.9488 2.73205 57.9849 2.78768 58.0103 2.82742C58.1362 3.01718 58.3686 3.37088 58.2748 3.89843C58.2397 4.10111 58.1811 4.3167 58.1216 4.53528C58.0464 4.81147 57.9693 5.09761 57.9624 5.31419C57.9498 5.69073 57.6335 5.99376 57.2703 5.97289C56.9013 5.95998 56.6104 5.64603 56.6231 5.26849C56.6367 4.89195 56.7392 4.50944 56.831 4.17264C56.8788 3.9948 56.9276 3.82094 56.9569 3.65502C56.9481 3.65502 56.9218 3.62323 56.8993 3.58746C56.791 3.42254 56.6065 3.14535 56.6065 2.73701C56.6065 2.36345 56.7607 2.08328 56.873 1.87862C56.9072 1.81702 56.9589 1.72462 56.9657 1.69084C56.9608 1.58354 56.9267 1.55274 56.9072 1.53685C56.5694 1.23979 55.2544 1.40372 54.5496 1.49313C54.1386 1.5438 53.752 1.59348 53.4435 1.59547C52.5971 1.60043 51.7439 1.62229 50.8907 1.64315C49.1442 1.68886 47.3382 1.73654 45.5722 1.63421L45.3985 1.62328C44.5345 1.57162 44.3022 1.55871 43.5964 1.82894C42.9618 2.07235 42.2101 2.5244 41.7006 2.84431C41.0699 3.23973 40.533 3.75338 39.9648 4.29683C39.8379 4.41804 39.712 4.53925 39.5831 4.65947C39.3479 4.87804 39.0794 5.09661 38.7953 5.32611C38.1237 5.87056 37.3642 6.48555 37.1231 7.09457C37.1065 7.14425 37.085 7.30221 37.0713 7.40753C37.0147 7.84666 36.9424 8.3931 36.5041 8.69016C36.1927 8.90277 35.9145 9.16704 35.6187 9.44523C35.4771 9.57935 35.3317 9.71546 35.1774 9.85257C34.7186 10.2629 34.1924 10.548 33.6838 10.8222C33.3675 10.9931 33.0698 11.1541 32.8033 11.3369C32.7554 11.3707 32.6978 11.4064 32.6373 11.4462C32.5114 11.5276 32.2332 11.7065 32.1346 11.8217C32.1424 11.8992 32.1726 12.0115 32.2117 12.1009C32.3757 12.0214 32.6041 11.924 32.8804 11.9459C33.6633 12.0135 34.0401 12.8937 34.0558 13.4988C34.0743 14.2191 33.677 14.7337 33.3587 15.145C33.0971 15.4868 32.9351 15.7074 32.9487 15.9319C32.9565 16.0511 33.0288 16.3114 33.0932 16.5419C33.3314 17.3933 33.7746 18.978 32.4479 19.5701C32.0965 19.7281 31.7314 19.7082 31.4375 19.6933C31.3126 19.6864 31.1046 19.6764 31.047 19.7023C30.7171 20.051 30.3227 20.3113 29.9166 20.5706L29.7692 20.663C29.5212 20.816 29.2654 20.976 29.1405 21.1488C29.1083 21.1935 29.0819 21.2412 29.0585 21.2859C28.9345 21.5085 28.7256 21.884 28.174 21.9993C27.9827 22.04 27.7943 22.0708 27.6059 22.0996C27.3364 22.1414 27.0807 22.1811 26.8386 22.2566C26.7087 22.2993 26.5711 22.35 26.4334 22.4017C25.9697 22.5745 25.4435 22.7732 24.8871 22.7474C24.5981 22.7355 24.3131 22.7087 24.027 22.6808C23.4989 22.6282 22.9981 22.5805 22.511 22.6481C22.2572 22.6828 22.0258 22.7653 21.7817 22.8537C21.1716 23.0733 20.3369 23.3733 19.4046 22.508C18.9927 22.1265 18.8267 22.049 18.1473 21.9178L16.065 21.5164C15.942 21.4936 15.775 21.5264 15.5818 21.5651C15.3289 21.6168 15.0136 21.6784 14.6719 21.6297C12.9508 21.3724 11.0218 21.7112 8.59689 22.6928C8.49829 22.7325 8.42703 22.7643 8.37431 22.7891C8.39579 22.9779 8.42312 23.2491 8.39091 23.6217C8.53343 23.6416 8.69353 23.6843 8.86047 23.7737C9.81228 24.2834 9.63461 25.256 9.5487 25.724C9.53601 25.7876 9.52528 25.8511 9.51551 25.9127C9.4628 26.2694 9.49501 26.3429 9.65511 26.6917C9.70392 26.798 9.75664 26.9162 9.81326 27.0543C10.3941 28.4681 9.28415 29.1039 8.68865 29.4447C8.46705 29.5719 8.23764 29.701 8.11268 29.8331C7.99944 29.9524 7.89987 30.1372 7.79541 30.3329C7.62945 30.6448 7.44104 30.9975 7.10522 31.2847C6.79088 31.5529 6.41894 31.7536 6.05871 31.9454C5.74144 32.1153 5.44077 32.2762 5.21623 32.464C5.02782 32.6219 4.84527 32.8048 4.65295 32.9985C4.34252 33.3085 4.02524 33.6294 3.62499 33.8976C3.41901 34.0347 3.17203 34.147 2.9104 34.2652C2.69661 34.3606 2.33443 34.5225 2.14992 34.6626L2.15383 36.8096C2.15383 36.8881 2.15578 36.9527 2.15871 37.0023C2.21533 36.9974 2.27586 36.9904 2.32662 36.9835C2.5287 36.9606 2.77959 36.9308 3.06952 36.9308L36.9581 36.9566C38.0573 36.9566 39.2141 36.9884 40.2304 37.3471C40.6755 37.5021 40.9801 37.8538 41.1812 38.0853C41.2281 38.1399 41.2681 38.1896 41.3052 38.2234C41.4018 38.3048 41.5551 38.3674 41.7328 38.441C42.0129 38.5562 42.3615 38.7003 42.6572 39.0043C43.2811 39.6411 43.2713 40.4469 43.2645 41.0927C43.2606 41.2417 43.2606 41.3897 43.2664 41.5328C43.3084 42.3326 43.5261 42.5581 44.0532 43.1055C44.1372 43.1929 44.2251 43.2853 44.3188 43.3847C44.3842 43.4542 44.5287 43.4701 44.761 43.491C45.0412 43.5138 45.3897 43.5417 45.6953 43.7751C46.0291 44.0275 46.2546 44.5888 46.3376 44.8809C46.5455 45.0846 47.2777 45.4711 47.5647 45.6211C47.7639 45.7264 47.9298 45.8158 48.0265 45.8754L48.3672 46.088C49.3346 46.6891 50.3011 47.2922 51.2705 47.8943C51.3993 47.9727 51.533 48.0463 51.6707 48.1188C52.0924 48.3443 52.5698 48.6006 52.9291 49.0567C53.3215 49.5544 53.2942 50.0045 53.259 50.4029C53.3156 50.2936 53.3781 50.1893 53.4513 50.0879C53.5841 49.8982 53.7393 49.7541 53.877 49.626C54.0136 49.4998 54.1073 49.4104 54.1396 49.3388C54.1132 49.2772 54.0527 49.1739 54.0117 49.1034C53.8487 48.8232 53.6271 48.4387 53.7315 47.9857C53.7725 47.8108 53.8789 47.6588 54.0283 47.5634C54.0849 47.5276 54.205 47.4591 54.3631 47.3717C54.5818 47.2495 55.1373 46.9405 55.475 46.71C54.9723 45.5913 55.1392 44.2163 55.2886 42.9843C55.3345 42.6038 55.3784 42.2451 55.3989 41.9222C55.4204 41.5467 55.7337 41.2606 56.1076 41.2834C56.4776 41.3063 56.7588 41.6301 56.7353 42.0057C56.7148 42.3693 56.667 42.7498 56.6182 43.1522C56.4776 44.3166 56.3165 45.637 56.833 46.3911C56.954 46.5669 56.994 46.7895 56.9452 47.0021C56.8417 47.4502 56.3898 47.7879 55.1958 48.4606C55.352 48.7308 55.5395 49.0904 55.4731 49.5167C55.4623 49.5812 55.4487 49.6428 55.4321 49.7015C55.766 49.5793 56.1154 49.464 56.4845 49.3577C57.8775 48.9543 59.3409 48.7745 61.225 48.7745C62.0587 48.7745 62.8006 48.5053 63.5874 48.2211C64.2103 47.9946 64.8546 47.7621 65.576 47.6508C66.1852 47.5555 66.5005 47.7562 66.7728 47.9688C66.8636 48.0403 66.93 48.09 67.0442 48.1357C67.3625 48.2619 67.7325 48.2211 68.1601 48.1754C68.5925 48.1277 69.0836 48.0731 69.5844 48.2042C69.8821 48.2837 70.09 48.5579 70.0861 48.8709C70.0744 50.0571 68.5076 50.5459 67.7549 50.7814L67.0384 51.0099C66.4985 51.1848 65.9567 51.3586 65.41 51.5176C65.1631 51.5881 64.918 51.6587 64.672 51.7223C64.3889 51.7948 64.099 51.9597 63.7944 52.1316C63.481 52.3094 63.1579 52.4922 62.786 52.6174C62.1426 52.83 61.4837 52.9413 60.6471 52.9761C60.4069 52.987 60.1746 53.0943 59.9295 53.2056C59.5674 53.3735 59.1154 53.5801 58.6107 53.4132C58.3949 53.3864 57.5534 53.6775 57.1502 53.8196C56.832 53.9289 56.5577 54.0242 56.3419 54.0759C55.598 54.2528 54.8415 54.3918 54.1103 54.527L53.5968 54.6223C53.1516 54.7058 52.7035 54.7922 52.2613 54.8926L52.2076 54.9085C52.0797 54.9482 51.9021 55.0038 51.7078 55.0038L51.7107 54.9999ZM53.0735 51.6746C53.0569 51.7471 53.0403 51.8196 53.0237 51.8941C53.0032 51.9806 52.9788 52.064 52.9544 52.1455C52.9281 52.2359 52.9066 52.3055 52.8988 52.3651C52.8793 52.5379 52.8773 52.6313 52.8978 52.7247C52.9495 52.9791 52.9388 53.1907 52.8949 53.3645C53.0482 53.3347 53.2024 53.3049 53.3566 53.2751L53.875 53.1808C54.5896 53.0486 55.3296 52.9125 56.0412 52.7436C56.1906 52.7078 56.4483 52.6194 56.7217 52.525C57.7721 52.1604 58.4994 51.9359 59.0295 52.1127C59.0646 52.1058 59.2559 52.0173 59.3828 51.9597C59.7001 51.8137 60.0945 51.6328 60.5924 51.611C61.3021 51.5812 61.8498 51.4908 62.372 51.3169C62.622 51.2345 62.8748 51.0914 63.1442 50.9374C63.5123 50.7298 63.892 50.5142 64.3469 50.3969C64.5793 50.3373 64.8136 50.2707 65.0459 50.2042C65.5789 50.0482 66.11 49.8773 66.6362 49.7064L67.1253 49.5514C66.9388 49.5246 66.7504 49.4779 66.56 49.4014C66.2672 49.2862 66.0836 49.1411 65.9616 49.0457C65.9313 49.0229 65.906 48.999 65.8757 48.9812C65.8737 48.9851 65.8405 48.9851 65.7781 48.9941C65.1845 49.0855 64.6281 49.2862 64.0394 49.4998C63.1794 49.8107 62.293 50.1326 61.2279 50.1326C59.4717 50.1326 58.1235 50.2966 56.8535 50.6642C55.7142 50.992 54.7868 51.3984 54.0166 51.9031C53.7901 52.0521 53.5001 52.0481 53.2776 51.8951C53.1917 51.8365 53.1214 51.76 53.0735 51.6716V51.6746Z\" fill=\"white\"/>\n <path d=\"M67.6348 51.8019C67.6348 51.8019 67.6173 51.782 67.6173 51.7303C67.6173 51.6787 67.6348 51.6588 67.6348 51.6588H68.5564C68.5564 51.6588 68.5749 51.6806 68.5749 51.7303C68.5749 51.78 68.5564 51.8019 68.5564 51.8019H68.1932V52.9205C68.1932 52.9205 68.1659 52.9404 68.0976 52.9404C68.0292 52.9404 67.998 52.9205 67.998 52.9205V51.8019H67.6348Z\" fill=\"white\"/>\n <path d=\"M69.4282 52.8659C69.4135 52.8748 69.3891 52.8858 69.3471 52.8858C69.3178 52.8858 69.2837 52.8798 69.27 52.8659L68.9889 52.1476C68.9723 52.1088 68.9459 52.0323 68.944 52.0214C68.944 52.0264 68.9371 52.1277 68.9332 52.1565L68.8815 52.9205C68.8815 52.9205 68.8561 52.9404 68.7858 52.9404C68.7155 52.9404 68.6862 52.9205 68.6862 52.9205L68.7839 51.6787C68.7839 51.6787 68.8112 51.6588 68.8776 51.6588C68.9518 51.6588 68.9781 51.6787 68.9781 51.6787L69.3042 52.5162L69.3471 52.6533C69.3481 52.6473 69.3774 52.5559 69.392 52.5162L69.7181 51.6787C69.7181 51.6787 69.7464 51.6588 69.8206 51.6588C69.886 51.6588 69.9124 51.6787 69.9124 51.6787L70.01 52.9205C70.01 52.9205 69.9807 52.9404 69.9104 52.9404C69.8401 52.9404 69.8167 52.9205 69.8167 52.9205L69.763 52.1546L69.7523 52.0194C69.7523 52.0194 69.722 52.1148 69.7093 52.1456L69.4282 52.8659Z\" fill=\"white\"/>\n</svg>`;\n\nexport default nysBrandLogoSvg;\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport nysLogo from \"./nys-unav.logo\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-unavfooter.scss?inline\";\n\nexport class NysUnavFooter extends LitElement {\n static styles = unsafeCSS(styles);\n\n // Functions\n private _getNysLogo() {\n if (!nysLogo) return null;\n\n // Parse the SVG string into an actual SVG DOM element\n const parser = new DOMParser();\n const svgDoc = parser.parseFromString(nysLogo, \"image/svg+xml\");\n const svgElement = svgDoc.documentElement;\n\n return svgElement;\n }\n\n render() {\n return html`\n <footer class=\"nys-unavfooter\">\n <div class=\"nys-unavfooter__main-container\">\n <div class=\"nys-unavfooter__container_menu\">\n <div class=\"nys-unavfooter__logo\">\n <a\n href=\"https://www.ny.gov\"\n target=\"_blank\"\n id=\"nys-unavheader__logolink\"\n aria-label=\"logo of New York State\"\n >${this._getNysLogo()}</a\n >\n </div>\n <div class=\"nys-unavfooter__content\">\n <ul>\n <li><a href=\"https://www.ny.gov/agencies\">Agencies</a></li>\n <li>\n <a href=\"https://www.ny.gov/mobileapps\">App Directory</a>\n </li>\n <li><a href=\"https://www.ny.gov/counties\">Counties</a></li>\n <li><a href=\"https://www.ny.gov/events\">Events</a></li>\n <li><a href=\"https://www.ny.gov/programs\">Programs</a></li>\n <li><a href=\"https://www.ny.gov/services\">Services</a></li>\n </ul>\n </div>\n </div>\n </div>\n </footer>\n `;\n }\n}\n\nif (!customElements.get(\"nys-unavfooter\")) {\n customElements.define(\"nys-unavfooter\", NysUnavFooter);\n}\n"],"names":["g","f","exports","t","e","s","o","n$3","r","n","S","c","i","h","a","l","p","d","u","b","y","v","_","m","$","x","T","A","C","P","V","N","H","I","L","k","M","R","z","j","B","accordionItemIdCounter","_NysAccordionItem","LitElement","slot","changedProperties","slotHeight","contentId","html","unsafeCSS","styles","NysAccordionItem","__decorateClass","property","query","accordionIdCounter","_NysAccordion","el","event","accordionId","accordion","NysAccordion","alertIdCounter","_NysAlert","ariaRole","ariaLabel","assignedNodes","node","role","ifDefined","NysAlert","state","avatarIdCounter","_NysAvatar","fgIconDark","fgIconLight","fgInitialDark","fgInitialLight","div","computedColor","match","isDark","NysAvatar","_NysBacktotop","screenHeight","pageHeight","classes","NysBacktotop","buttonIdCounter","_NysButton","linkEl","btnEl","form","onClickAttr","options","innerEl","NysButton","_NysBadge","_a","value","attr","suffixAttr","icon","prefixIconName","suffixIconName","NysBadge","checkboxgroupIdCounter","_NysCheckboxgroup","checkbox","firstCheckbox","message","firstCheckboxInput","checkboxes","nodes","element","customEvent","name","selectedValues","NysCheckboxgroup","checkboxIdCounter","_NysCheckbox","labelEl","inputEl","input","validity","checked","NysCheckbox","_NysDivider","NysDivider","_NysErrorMessage","NysErrorMessage","validateFileHeader","file","accept","acceptItems","filename","fileExt","acceptItem","_NysFileItem","lastDotIndex","extension","startPart","endPart","NysFileItem","fileinputIdCounter","_NysFileinput","hasInvalidFiles","base","fileNames","files","entry","formData","singleFile","hasErrorFiles","isEmpty","innerButton","existingFile","reader","percentage","innerFileItemMainContainer","filenameToRemove","newFiles","NysFileinput","iconLibrary","_NysIcon","iconSVG","svgElement","NysIcon","_NysLabel","NysLabel","componentIdCounter","_NysModal","changeProps","prev","innerBtn","isMobile","btn","ariaDescriptions","dismissBtn","modal","knownFocusableElements","focusableElements","slotElements","assigned","actionBtn","firstFocusableEl","lastFocusableEl","active","activeIndex","prevIndex","prevElement","NysModal","_NysPagination","changedProps","clamped","twoBefore","page","buttons","addPageButton","id","addSpacer","lastPage","next","NysPagination","radiogroupIdCounter","_NysRadiogroup","radioButton","index","firstRadio","radioButtons","radio","checkedRadio","radioBtns","increment","target","radios","NysRadiogroup","radiobuttonIdCounter","_NysRadiobutton","_b","NysRadiobutton","NysOption","selectIdCounter","_NysSelect","select","child","optionElement","original","optionClone","groupClone","option","selectedOption","validityState","selectElement","NysSelect","_NysSkipnav","targetId","targetEl","NysSkipnav","_NysStep","NysStep","_NysStepper","clickedStep","steps","currentIndex","step","clickedIndex","isStep","isSlotActionsContainer","assignedElements","button","newCounterText","selectedIndex","totalSteps","foundCurrent","selectedAssigned","currentAssigned","NysStepper","textareaIdCounter","_NysTextarea","textarea","NysTextarea","textinputIdCounter","_NysTextinput","mask","overlay","filled","remaining","digits","result","digitIndex","newValue","slotName","container","foundValidButton","NysTextinput","toggleIdCounter","_NysToggle","NysToggle","tooltipIdCounter","_NysTooltip","ref","tooltip","isPointerInsideTooltip","isPointerInsideRef","isTouched","oldVal","htmlElement","findInShadows","root","shadowElement","found","deeper","tagName","svg","position","refRect","tooltipRect","margin","spaceAvailable","tryOrder","userPosition","pos","bestPosition","maxSpace","top","left","refCenter","overflowLeft","overflowRight","newTooltipRect","arrowOffsetRatio","arrowOffsetPercent","NysTooltip","nysBrandLogoSvg","_NysUnavHeader","nysLogo","clickID","searchValue","searchID","label","code","NysUnavHeader","_NysGlobalHeader","containerMobile","currentUrl","cleanNode","cleanNodeMobile","tag","highlightActiveLink","links","bestMatch","hrefAttr","linkPath","path","li","NysGlobalHeader","_NysGlobalFooter","hasMultipleGroups","span","divider","NysGlobalFooter","_NysUnavFooter","NysUnavFooter"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,10]}
1
+ {"version":3,"file":"nysds.js","sources":["../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/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","../packages/nys-accordion/src/nys-accordionitem.ts","../packages/nys-accordion/src/nys-accordion.ts","../node_modules/lit-html/directives/if-defined.js","../packages/nys-alert/src/nys-alert.ts","../packages/nys-avatar/src/nys-avatar.ts","../packages/nys-backtotop/src/nys-backtotop.ts","../packages/nys-button/src/nys-button.ts","../packages/nys-badge/src/nys-badge.ts","../packages/nys-checkbox/src/nys-checkboxgroup.ts","../packages/nys-checkbox/src/nys-checkbox.ts","../node_modules/@stencil/core/internal/app-data/index.js","../node_modules/@stencil/core/internal/client/index.js","../node_modules/wc-datepicker/dist/components/wc-datepicker.js","../packages/nys-datepicker/src/nys-datepicker.ts","../packages/nys-divider/src/nys-divider.ts","../packages/nys-errormessage/src/nys-errormessage.ts","../packages/nys-fileinput/src/validateFileHeader.ts","../packages/nys-fileinput/src/nys-fileitem.ts","../packages/nys-fileinput/src/nys-fileinput.ts","../packages/nys-icon/src/nys-icon.library.ts","../packages/nys-icon/src/nys-icon.ts","../packages/nys-label/src/nys-label.ts","../packages/nys-modal/src/nys-modal.ts","../packages/nys-pagination/src/nys-pagination.ts","../packages/nys-radiobutton/src/nys-radiogroup.ts","../packages/nys-radiobutton/src/nys-radiobutton.ts","../packages/nys-select/src/nys-option.ts","../packages/nys-select/src/nys-select.ts","../packages/nys-skipnav/src/nys-skipnav.ts","../packages/nys-stepper/src/nys-step.ts","../packages/nys-stepper/src/nys-stepper.ts","../packages/nys-table/src/nys-table.ts","../packages/nys-textarea/src/nys-textarea.ts","../packages/nys-textinput/src/nys-textinput.ts","../packages/nys-toggle/src/nys-toggle.ts","../packages/nys-tooltip/src/nys-tooltip.ts","../packages/nys-unavheader/src/nys-unav.logo.ts","../packages/nys-unavheader/src/nys-unavheader.ts","../packages/nys-globalheader/src/nys-globalheader.ts","../packages/nys-globalfooter/src/nys-globalfooter.ts","../packages/nys-unavfooter/src/nys-unav.logo.ts","../packages/nys-unavfooter/src/nys-unavfooter.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==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=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>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[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},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{n 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 s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E 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 r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r 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,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, query } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-accordion.scss?inline\";\n\nlet accordionItemIdCounter = 0;\n\n/**\n * `<nys-accordionitem>` represents a single collapsible item inside a `<nys-accordion>`.\n *\n * @slot - Default slot for the content inside the accordion panel.\n *\n * @event nys-accordionitem-toggle - Fired when the item is expanded or collapsed.\n * @type {CustomEvent<{id: string, heading: string, expanded: boolean}>}\n *\n * Features:\n * - Click or keyboard (Enter/Space) toggles expansion.\n * - Animates height changes when expanding/collapsing.\n */\n\nexport class NysAccordionItem extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String }) heading = \"\";\n @property({ type: Boolean, reflect: true }) expanded = false;\n @property({ type: Boolean, reflect: true }) bordered = false; // Code NEED this, don't delete this. This is due to how the <nys-accordion> group is applying bordered to each individual <nys-accordionitem>\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = this._generateUniqueId();\n }\n }\n\n firstUpdated() {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n\n /**\n * When the accordion starts expanded, but the slot is empty\n * the _updateHeight() runs too early and calculates height as 0.\n * Listening for slotchange ensures we recalculate after the slot’s\n * content is rendered so the final height is correct.\n */\n if (this.expanded && slot) {\n slot.addEventListener(\"slotchange\", () => {\n this._updateHeight();\n });\n }\n }\n\n updated(changedProperties: Map<string, any>) {\n if (changedProperties.has(\"expanded\")) {\n this._updateHeight();\n }\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _generateUniqueId() {\n return `nys-accordionitem-${Date.now()}-${accordionItemIdCounter++}`;\n }\n\n private _dispatchEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-accordionitem-toggle\", {\n detail: { id: this.id, heading: this.heading, expanded: this.expanded },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _handleExpand() {\n this.expanded = !this.expanded;\n this._updateHeight();\n this._dispatchEvent();\n }\n\n private _handleKeydown(e: KeyboardEvent) {\n if (e.key === \" \" || e.key === \"Enter\") {\n e.preventDefault(); // prevent page scroll on space\n this._handleExpand();\n }\n }\n\n // Call this after first render and whenever expanded changes\n @query(\".nys-accordionitem__content\") private _contentContainer!: HTMLElement;\n private _updateHeight() {\n if (!this._contentContainer) return;\n\n if (this.expanded) {\n // Slide down the content by setting a calculated max-height, depending on the panel's height on different screen sizes\n const slotHeight = this._contentContainer.scrollHeight;\n this._contentContainer.style.height = `${slotHeight}px`;\n } else {\n // Collapse\n this._contentContainer.style.height = \"0\";\n this._contentContainer.style.overflow = \"hidden\";\n }\n }\n\n render() {\n const contentId = `${this.id}-content`;\n\n return html`\n <div class=\"nys-accordionitem\">\n <button\n class=\"nys-accordionitem__heading\"\n type=\"button\"\n @click=${this._handleExpand}\n @keydown=${this._handleKeydown}\n aria-expanded=${this.expanded ? \"true\" : \"false\"}\n aria-controls=${contentId}\n >\n <p class=\"nys-accordionitem__heading-title\">${this.heading}</p>\n <nys-icon class=\"expand-icon\" name=\"chevron_down\" size=\"24\"></nys-icon>\n </button>\n </div>\n <div id=${contentId} class=\"nys-accordionitem__content ${this.expanded ? \"expanded\" : \"collapsed\"}\" role=\"region\">\n <div class=\"nys-accordionitem__content-slot-container\">\n <div class=\"nys-accordionitem__content-slot-container-text\">\n <slot></slot>\n </div>\n </div>\n </div>\n </div>`;\n }\n}\n\nif (!customElements.get(\"nys-accordionitem\")) {\n customElements.define(\"nys-accordionitem\", NysAccordionItem);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport \"./nys-accordionitem\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-accordion.scss?inline\";\n\nlet accordionIdCounter = 0;\n\n/**\n * `<nys-accordion>` groups one or more `<nys-accordionitem>` elements.\n *\n * Features:\n * - Optionally enforces single-expanded-item behavior via `singleSelect`.\n * - Propagates shared visual `bordered` property to child items.\n * - Generates a stable unique identifier if none is provided.\n *\n * @slot default - Place one or more `<nys-accordionitem>` components here.\n *\n * @fires nys-accordionitem-toggle - Fired when a child `<nys-accordionitem>` is toggled.\n * Event detail includes `{ id: string, heading: string, expanded: boolean }`.\n */\n\nexport class NysAccordion extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: Boolean, reflect: true }) singleSelect = false;\n @property({ type: Boolean, reflect: true }) bordered = false;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = this._generateUniqueId();\n }\n }\n\n updated(changedProperties: Map<string, any>) {\n if (changedProperties.has(\"bordered\")) {\n this._applyBordered();\n }\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _generateUniqueId() {\n return `nys-accordionitem-${Date.now()}-${accordionIdCounter++}`;\n }\n\n private _getAccordionItems() {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const assigned = slot?.assignedElements() || [];\n\n return assigned.filter(\n (el) => el.tagName.toLowerCase() === \"nys-accordionitem\",\n );\n }\n\n private _onAccordionToggle(event: CustomEvent) {\n if (!this.singleSelect) return;\n\n const accordionId = event.detail.id;\n const accordionIsExpanded = event.detail.expanded;\n\n // All accordions that don't match the selected accordion's id is unexpanded.\n // If id match, it is up to the individual accordion to handle the expand logic\n if (accordionIsExpanded) {\n this._getAccordionItems().forEach((accordion: any) => {\n if (accordion.id !== accordionId && accordion.expanded) {\n accordion.expanded = false;\n }\n });\n }\n }\n\n private _applyBordered() {\n this._getAccordionItems().forEach((accordion: any) => {\n accordion.bordered = this.bordered;\n });\n }\n\n render() {\n return html`<div\n class=\"nys-accordion\"\n @nys-accordionitem-toggle=${this._onAccordionToggle}\n >\n <slot></slot>\n </div>`;\n }\n}\n\nif (!customElements.get(\"nys-accordion\")) {\n customElements.define(\"nys-accordion\", NysAccordion);\n}\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-alert.scss?inline\";\n\nlet alertIdCounter = 0;\n\n/**\n * `<nys-alert>` renders an informational, success, warning, or error alert.\n *\n * @slot - Default slot for additional alert content.\n *\n * @event nys-close - Fired when alert is dismissed (manual or timeout).\n * @type {CustomEvent<{id: string, type: string, label: string}>}\n *\n * Features:\n * - Accessible ARIA roles and live-region announcements.\n * - Auto-close via `duration`.\n * - Handles default slot content or fallback `text`.\n * - Optional dismiss button.\n */\n\nexport class NysAlert extends LitElement {\n static styles = unsafeCSS(styles);\n\n // Properties\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String }) heading = \"\";\n @property({ type: String }) icon = \"\";\n @property({ type: Boolean, reflect: true }) dismissible = false;\n @property({ type: Number, reflect: true }) duration = 0;\n @property({ type: String }) text = \"\";\n @property({ type: String }) primaryAction = \"\";\n @property({ type: String }) secondaryAction = \"\";\n @property({ type: String }) primaryLabel = \"Learn more\";\n @property({ type: String }) secondaryLabel = \"Dismiss\";\n @property({ type: String, reflect: true }) type:\n | \"base\"\n | \"info\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"emergency\" = \"base\";\n\n @state() private _alertClosed = false;\n @state() private _slotHasContent = true;\n\n /**\n * Returns ARIA role and label based on alert type.\n * - 'alert' => assertive live region (implied)\n * - 'status' => polite live region\n * - 'region' => generic, requires aria-label\n */\n get ariaAttributes(): {\n role: \"alert\" | \"status\" | \"region\";\n ariaLabel: string;\n } {\n const ariaRole =\n this.type === \"danger\" || this.type === \"emergency\"\n ? \"alert\"\n : this.type === \"success\"\n ? \"status\"\n : \"region\"; // Default role\n\n // Set aria-label only for role=\"region\"\n const ariaLabel = ariaRole === \"region\" ? `${this.type} alert` : \"\";\n\n return { role: ariaRole, ariaLabel };\n }\n\n /**\n * Returns live-region type for screen readers if applicable.\n * - 'polite' for status role\n * - undefined for alert (since it's implicitly assertive) or region\n */\n get liveRegion(): \"polite\" | undefined {\n const role = this.ariaAttributes.role;\n if (role === \"status\") return \"polite\";\n return undefined; // for region. No need to return \"assertive\" as role=\"alert\" implies it\n }\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n private _timeoutId: any = null;\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = this._generateUniqueId();\n }\n\n // For alerts that have durations, we set a timer to close them.\n if (this.duration > 0) {\n this._timeoutId = setTimeout(() => {\n this._closeAlert();\n }, this.duration);\n }\n }\n\n disconnectedCallback() {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n }\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n this._checkSlotContent();\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n private _generateUniqueId() {\n return `nys-alert-${Date.now()}-${alertIdCounter++}`;\n }\n\n private _resolveIconName() {\n return this.icon || this._checkAltNaming();\n }\n\n private _checkAltNaming() {\n // map 'success' to 'check_circle'\n return this.type === \"success\"\n ? \"check_circle\"\n : this.type === \"base\"\n ? \"info\"\n : this.type === \"danger\"\n ? \"error\"\n : this.type === \"emergency\"\n ? \"emergency_home\"\n : this.type;\n }\n\n private _closeAlert() {\n this._alertClosed = true;\n /* Dispatch a custom event for the close action:\n * allows bubbling up so if developers wish to implement a local save to remember closed alerts.\n */\n this.dispatchEvent(\n new CustomEvent(\"nys-close\", {\n detail: { id: this.id, type: this.type, label: this.heading },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n /**\n * Checks whether the default slot has content.\n * Updates `_slotHasContent` accordingly.\n */\n private async _checkSlotContent() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n if (slot) {\n // Check if slot has assigned nodes with content (elements or non-empty text nodes)\n const assignedNodes = slot\n .assignedNodes({ flatten: true })\n .filter(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()),\n );\n\n await Promise.resolve();\n this._slotHasContent = assignedNodes.length > 0;\n } else {\n await Promise.resolve();\n this._slotHasContent = false; // No slot found\n }\n }\n\n render() {\n const { role, ariaLabel } = this.ariaAttributes;\n\n return html`\n ${!this._alertClosed\n ? html` <div\n class=\"nys-alert__container ${this._slotHasContent ||\n this.text?.trim().length > 0\n ? \"\"\n : \"nys-alert--centered\"}\"\n aria-label=${ifDefined(\n ariaLabel.trim() !== \"\" ? ariaLabel : undefined,\n )}\n >\n <div part=\"nys-alert__icon\" class=\"nys-alert__icon\">\n <nys-icon\n name=\"${this._resolveIconName()}\"\n size=\"3xl\"\n label=\"${this.type} icon\"\n ></nys-icon>\n </div>\n <div\n class=\"nys-alert__texts\"\n role=${role}\n aria-live=${ifDefined(this.liveRegion)}\n >\n <p class=\"nys-alert__header\">${this.heading}</p>\n ${this._slotHasContent\n ? html`<slot></slot>`\n : this.text?.trim().length > 0\n ? html`<p class=\"nys-alert__text\">${this.text}</p>`\n : \"\"}\n ${this.primaryAction || this.secondaryAction\n ? html`<div class=\"nys-alert__actions\">\n ${this.primaryAction\n ? html`<a\n href=${ifDefined(this.primaryAction || undefined)}\n class=\"nys-alert__action nys-alert__primary\"\n >\n ${this.primaryLabel}\n </a>`\n : \"\"}\n ${this.secondaryAction\n ? html`<a\n href=${ifDefined(this.secondaryAction || undefined)}\n class=\"nys-alert__action nys-alert__secondary\"\n >\n ${this.secondaryLabel}\n </a>`\n : \"\"}\n </div> `\n : \"\"}\n </div>\n ${this.dismissible\n ? html` <nys-button\n id=\"dismiss-btn\"\n variant=\"ghost\"\n circle\n icon=\"close\"\n size=\"sm\"\n ?inverted=${this.type === \"emergency\"}\n ariaLabel=\"${this.heading}, alert, Close\"\n @nys-click=${this._closeAlert}\n style=${ifDefined(\n this.type === \"emergency\"\n ? \"--_nys-button-outline-color: var(--nys-color-ink-reverse, var(--nys-color-white, #fff));\"\n : undefined,\n )}\n ></nys-button>`\n : \"\"}\n </div>`\n : \"\"}\n `;\n }\n}\n\nif (!customElements.get(\"nys-alert\")) {\n customElements.define(\"nys-alert\", NysAlert);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-avatar.scss?inline\";\n\nlet avatarIdCounter = 0;\n\n/**\n * `<nys-avatar>` displays a user avatar as an image, initials, or icon.\n *\n * @slot - Default slot for custom icon content. Fallback icon is used if slot is empty.\n *\n * Features:\n * - Computes foreground color for sufficient contrast based on background.\n * - Supports interactive avatars with button role.\n * - Fallback to icon when image or initials are missing.\n * - Lazy loading for performance optimization.\n */\n\nexport class NysAvatar extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String }) ariaLabel = \"\";\n @property({ type: String }) image = \"\";\n @property({ type: String }) initials = \"\";\n @property({ type: String }) icon = \"\";\n @property({ type: String }) color = \"\";\n @property({ type: Boolean, reflect: true }) interactive = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) lazy = false;\n @state() private _slotHasContent = false;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-avatar-${Date.now()}-${avatarIdCounter++}`;\n }\n }\n\n private async _handleSlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n if (!slot) {\n this._slotHasContent = false;\n return;\n }\n\n await Promise.resolve();\n\n const assignedNodes = slot\n .assignedNodes({ flatten: true })\n .filter(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()),\n );\n\n this._slotHasContent = assignedNodes.length > 0;\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n /**\n * Computes the appropriate foreground color (icon or initials)\n * based on the avatar's background color for sufficient contrast.\n *\n * @returns CSS color string for foreground\n */\n private getContrastForeground() {\n // Default NYSDS CSS vars for foreground.\n // Contrast must return =>\n // IF icon: \"--nys-color-ink-reverse\" or \"--nys-color-ink\"\n // If initials: \"--nys-color-text-reverse\" or \"--nys-color-text\"\n const fgIconDark = \"var(--nys-color-ink, #000)\";\n const fgIconLight = \"var(--nys-color-ink-reverse, #fff)\";\n const fgInitialDark = \"var(--nys-color-text, #000)\";\n const fgInitialLight = \"var(--nys-color-text-reverse, #fff)\";\n\n if (!this.color) return;\n\n // Create a temporary element to compute luminance (this is in case user pass in \"var(--nys-color-stuff)\")\n const div = document.createElement(\"div\");\n div.style.color = this.color;\n document.body.appendChild(div);\n const computedColor = getComputedStyle(div).color;\n document.body.removeChild(div);\n\n // Parse RGB\n const match = computedColor.match(/\\d+/g);\n if (!match) return;\n\n const r = Number(match[0]);\n const g = Number(match[1]);\n const b = Number(match[2]);\n\n // Calculate relative luminance\n const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;\n\n const isDark = luminance < 0.5;\n if (this.initials?.length > 0) {\n return isDark ? fgInitialLight : fgInitialDark;\n } else {\n return isDark ? fgIconLight : fgIconDark;\n }\n }\n\n render() {\n return html`\n <div class=\"nys-avatar\">\n <div class=\"nys-avatar__content\">\n <div\n part=\"nys-avatar\"\n class=\"nys-avatar__component\"\n style=${this.color\n ? `--_nys-avatar-background-color: ${this.color}; color: ${this.getContrastForeground()}`\n : \"\"}\n role=${ifDefined(\n this.interactive ? \"button\" : this.image ? undefined : \"img\",\n )}\n aria-label=${ifDefined(\n this.image\n ? undefined\n : this.ariaLabel\n ? this.ariaLabel\n : \"avatar\",\n )}\n tabindex=${ifDefined(\n this.interactive && !this.disabled ? 0 : undefined,\n )}\n >\n ${this.image?.length > 0\n ? html`<img\n part=\"nys-avatar__image\"\n class=\"nys-avatar__image\"\n src=${this.image}\n alt=${this.ariaLabel || \"avatar\"}\n loading=${this.lazy ? \"lazy\" : \"eager\"}\n />`\n : this.initials?.length > 0\n ? html`<span\n part=\"nys-avatar__initials\"\n class=\"nys-avatar__initials\"\n aria-hidden=\"true\"\n >${this.initials}</span\n >`\n : html`<div part=\"nys-avatar__icon\">\n <slot @slotchange=${this._handleSlotChange}></slot>\n ${!this._slotHasContent\n ? html`<nys-icon\n label=\"nys-avatar__icon\"\n name=${this.icon?.length > 0\n ? this.icon\n : \"account_circle\"}\n ></nys-icon>`\n : null}\n </div>`}\n </div>\n </div>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-avatar\")) {\n customElements.define(\"nys-avatar\", NysAvatar);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-backtotop.scss?inline\";\n\n/**\n * `<nys-backtotop>` renders a button that scrolls the page to the top.\n *\n * Features:\n * - Automatically appears after scrolling past 1.5 viewport heights\n * if the page is at least 4 screens tall.\n * - Adapts to mobile screens (renders as a circle button when narrow).\n * - Can be explicitly shown with the `visible` attribute.\n *\n * @fires nys-click - Fired when the button is clicked (scrolls page to top).\n */\nexport class NysBacktotop extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String }) position = \"right\";\n @property({ type: Boolean, reflect: true }) visible = false;\n\n @state() private isMobile = false;\n @state() private forceVisible = false;\n\n private mediaQuery: MediaQueryList;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n constructor() {\n super();\n this._handleScroll = this._handleScroll.bind(this);\n this._handleResize = this._handleResize.bind(this);\n this.mediaQuery = window.matchMedia(\"(max-width: 480px)\");\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.forceVisible = this.hasAttribute(\"visible\"); // true only if passed in markup\n window.addEventListener(\"scroll\", this._handleScroll);\n this.mediaQuery.addEventListener(\"change\", this._handleResize);\n this._handleResize(); // Initialize\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"scroll\", this._handleScroll);\n this.mediaQuery.removeEventListener(\"change\", this._handleResize);\n super.disconnectedCallback();\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _handleScroll() {\n // If visible was explicitly set by user, don't override it\n if (this.forceVisible) return;\n\n const screenHeight = window.innerHeight;\n const pageHeight = document.documentElement.scrollHeight;\n\n // Show only if total page height >= 4 screens and scrolled past 1.5 screens\n this.visible =\n pageHeight >= screenHeight * 4 && window.scrollY > screenHeight * 1.5;\n }\n\n private _scrollToTop() {\n window.scrollTo({ top: 0, behavior: \"smooth\" });\n }\n\n private _handleResize() {\n this.isMobile = this.mediaQuery.matches;\n }\n\n render() {\n const classes = [\n \"nys-backtotop\",\n this.position,\n this.visible ? \"visible\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n return html`<nys-button\n id=\"nys-backtotop\"\n prefixIcon=\"chevron_up\"\n variant=\"outline\"\n label=\"Back to top\"\n size=\"sm\"\n class=\"${classes}\"\n ?circle=${this.isMobile}\n @nys-click=${this._scrollToTop}\n ></nys-button>`;\n }\n}\n\nif (!customElements.get(\"nys-backtotop\")) {\n customElements.define(\"nys-backtotop\", NysBacktotop);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-button.scss?inline\";\n\nlet buttonIdCounter = 0;\n\n/**\n * `<nys-button>` is a versatile button component supporting:\n * - Multiple variants (`filled`, `outline`, `ghost`, `text`)\n * - Sizes (`sm`, `md`, `lg`) and full-width layout\n * - Icons (prefix, suffix, or circle) and optional labels\n * - Native `<button>` or link `<a>` behavior with form association\n * - Keyboard and accessibility support (`aria-label`, `aria-controls`, `aria-description`)\n *\n * @fires nys-click - Fired on button click\n * @fires nys-focus - Fired when button receives focus\n * @fires nys-blur - Fired when button loses focus\n */\n\nexport class NysButton extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" | \"lg\" = \"md\";\n @property({ type: Boolean, reflect: true }) fullWidth = false;\n @property({ type: String, reflect: true }) variant:\n | \"filled\"\n | \"outline\"\n | \"ghost\"\n | \"text\" = \"filled\";\n @property({ type: Boolean, reflect: true }) inverted = false; //used on dark text\n @property({ type: String }) label = \"\";\n @property({ type: String }) ariaLabel = \"\";\n @property({ type: String }) ariaControls = \"\";\n @property({ type: String }) prefixIcon = \"\";\n @property({ type: String }) suffixIcon = \"\";\n @property({ type: Boolean, reflect: true }) circle = false;\n @property({ type: String }) icon = \"\";\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String }) value = \"\";\n @property({ type: String }) ariaDescription = \"\";\n @property({ type: String, reflect: true }) type:\n | \"submit\"\n | \"reset\"\n | \"button\" = \"button\";\n @property({ attribute: false }) onClick: ((event: Event) => void) | null =\n null;\n @property({ type: String }) href = \"\";\n @property({ type: String, reflect: true }) target:\n | \"_self\"\n | \"_blank\"\n | \"_parent\"\n | \"_top\"\n | \"framename\" = \"_self\";\n\n public async getButtonElement(): Promise<HTMLElement | null> {\n await this.updateComplete; // Wait for the component to finish rendering\n\n // if it's a link button\n const linkEl =\n this.shadowRoot?.querySelector<HTMLAnchorElement>(\"a.nys-button\") || null;\n if (linkEl) return linkEl;\n\n // Otherwise return the native button\n const btnEl =\n this.shadowRoot?.querySelector<HTMLButtonElement>(\"button.nys-button\") ||\n null;\n if (btnEl) return btnEl;\n\n return null;\n }\n\n private _internals: ElementInternals;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = this._generateUniqueId();\n }\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _generateUniqueId() {\n return `nys-button-${Date.now()}-${buttonIdCounter++}`;\n }\n\n private _manageFormAction() {\n // If an onClick function is provided, call it\n if (typeof this.onClick === \"function\" && this.onClick !== null) {\n this.onClick(new Event(\"click\")); // Call user-provided onClick function with a fake click event\n }\n\n // If part of a form, perform the corresponding action based on button's \"type\"\n const form = this._internals.form;\n\n if (form) {\n switch (this.type) {\n case \"submit\":\n form.requestSubmit();\n break;\n case \"reset\":\n form.reset();\n break;\n case \"button\":\n }\n }\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n private _handleBlur() {\n const button = this.shadowRoot?.querySelector(\".nys-button\");\n button?.classList.remove(\"active-focus\");\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n private _handleClick(event: Event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n this._manageFormAction();\n this.dispatchEvent(new Event(\"nys-click\"));\n }\n\n private _handleKeydown(e: KeyboardEvent) {\n if (\n e.code === \"Space\" ||\n e.code === \"Enter\" ||\n e.key === \" \" ||\n e.key === \"Enter\"\n ) {\n if (this.disabled) return;\n\n e.preventDefault();\n\n if (this.href) {\n // Click the internal <a> so native navigation happens\n const linkEl = this.renderRoot.querySelector(\n \"a.nys-button\",\n ) as HTMLAnchorElement;\n if (linkEl) {\n linkEl.click();\n }\n } else {\n this._handleAnyAttributeFunction();\n this._handleClick(e);\n }\n }\n }\n\n /**\n * Vanilla JS & Native HTML keydown solution:\n * The <nys-button onClick=\"doFunction();\"></nys-button> onClick is an attribute here.\n * Thus, we call it here. Otherwise, at this point, this.onClick is null as it isn't props, but a string attribute\n * In vanilla HTML/JS, clicking with execute the attribute function, BUT now with keydown, hence this solution.\n */\n private _handleAnyAttributeFunction() {\n const onClickAttr = this.getAttribute(\"onClick\");\n if (onClickAttr) {\n const callFunc = new Function(\"return \" + onClickAttr);\n callFunc();\n }\n }\n\n // Public Methods\n public focus(options?: FocusOptions) {\n const innerEl = this.renderRoot.querySelector(\n this.href ? \"a.nys-button\" : \"button.nys-button\",\n ) as HTMLElement | null;\n\n if (innerEl) {\n innerEl.focus(options);\n } else {\n // fallback: focus host\n super.focus(options);\n }\n }\n\n render() {\n return html`\n ${this.href\n ? html`\n <div class=\"nys-button__linkwrapper\">\n <a\n class=\"nys-button\"\n name=${ifDefined(this.name ? this.name : undefined)}\n ?disabled=${this.disabled}\n aria-disabled=\"${this.disabled ? \"true\" : \"false\"}\"\n value=${ifDefined(this.value ? this.value : undefined)}\n href=${this.href}\n target=${this.target}\n @click=${this._handleClick}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @keydown=\"${this._handleKeydown}\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=${ifDefined(\n this.ariaLabel ||\n this.label ||\n (this.circle ? this.icon : null) ||\n \"button\",\n )}\n aria-description=${ifDefined(this.ariaDescription || undefined)}\n >\n ${this.prefixIcon && this.variant !== \"text\"\n ? html`<slot name=\"prefix-icon\">\n <nys-icon size=\"16\" name=${this.prefixIcon}></nys-icon>\n </slot>`\n : \"\"}\n ${this.label && !this.circle\n ? html`<div class=\"nys-button__text\">${this.label}</div>`\n : \"\"}\n ${this.suffixIcon && this.variant !== \"text\"\n ? html`<slot name=\"suffix-icon\">\n <nys-icon size=\"16\" name=${this.suffixIcon}></nys-icon>\n </slot>`\n : \"\"}\n ${this.circle && this.icon\n ? html`<slot name=\"circle-icon\"\n ><nys-icon\n size=${this.size === \"sm\"\n ? \"24\"\n : this.size === \"lg\"\n ? \"40\"\n : \"32\"}\n name=${this.icon}\n ></nys-icon\n ></slot>`\n : \"\"}\n </a>\n </div>\n `\n : html`\n <button\n class=\"nys-button\"\n name=${ifDefined(this.name ? this.name : undefined)}\n ?disabled=${this.disabled}\n form=${ifDefined(this.form || undefined)}\n value=${ifDefined(this.value ? this.value : undefined)}\n type=${this.type}\n aria-controls=${ifDefined(this.ariaControls || undefined)}\n @click=${this._handleClick}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @keydown=\"${this._handleKeydown}\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=${ifDefined(\n this.ariaLabel ||\n this.label ||\n (this.circle ? this.icon : null) ||\n this.prefixIcon ||\n this.suffixIcon ||\n \"button\",\n )}\n aria-description=${ifDefined(this.ariaDescription || undefined)}\n role=\"button\"\n >\n ${this.prefixIcon && this.variant !== \"text\"\n ? html`<slot name=\"prefix-icon\">\n <nys-icon size=\"16\" name=${this.prefixIcon}></nys-icon>\n </slot>`\n : \"\"}\n ${this.label && !this.circle\n ? html`<div class=\"nys-button__text\">${this.label}</div>`\n : \"\"}\n ${this.suffixIcon && this.variant !== \"text\"\n ? html`<slot name=\"suffix-icon\">\n <nys-icon size=\"16\" name=${this.suffixIcon}></nys-icon>\n </slot>`\n : \"\"}\n ${this.circle && this.icon\n ? html`<slot name=\"circle-icon\">\n <nys-icon\n size=${this.size === \"sm\"\n ? \"24\"\n : this.size === \"lg\"\n ? \"40\"\n : \"32\"}\n name=${this.icon}\n ></nys-icon>\n </slot>`\n : \"\"}\n </button>\n `}\n `;\n }\n}\n\nif (!customElements.get(\"nys-button\")) {\n customElements.define(\"nys-button\", NysButton);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-badge.scss?inline\";\n\n/**\n * `<nys-badge>` displays a badge with optional prefix/suffix icons and labels.\n *\n * Features:\n * - Conveys an intent (`neutral`, `error`, `success`, `warning`) which affects default icons and styling.\n * - Supports custom prefix and suffix icons.\n */\n\nexport class NysBadge extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" = \"md\";\n @property({ type: String, reflect: true }) intent:\n | \"neutral\"\n | \"error\"\n | \"success\"\n | \"warning\" = \"neutral\";\n @property({ type: String }) prefixLabel = \"\";\n @property({ type: String }) label = \"\";\n\n // Icons (string or boolean)\n private _prefixIcon: string | boolean = \"\";\n @property({ type: String, attribute: \"prefixicon\" })\n get prefixIcon(): string | boolean {\n return this._prefixIcon;\n }\n set prefixIcon(value: string | boolean) {\n if (value === \"\" || value === null) {\n // boolean attribute without value → true\n this._prefixIcon = true;\n } else if (value === \"false\" || value === false) {\n this._prefixIcon = \"\";\n } else {\n this._prefixIcon = value;\n }\n }\n\n private _suffixIcon: string | boolean = \"\";\n @property({ type: String, attribute: \"suffixicon\" })\n get suffixIcon(): string | boolean {\n return this._suffixIcon;\n }\n set suffixIcon(value: string | boolean) {\n if (value === \"\" || value === null) {\n this._suffixIcon = true;\n } else if (value === \"false\" || value === false) {\n this._suffixIcon = \"\";\n } else {\n this._suffixIcon = value;\n }\n }\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n connectedCallback() {\n super.connectedCallback();\n\n const attr = this.getAttribute(\"prefixicon\");\n if (attr !== null && this.prefixIcon === \"\") {\n this.prefixIcon = attr;\n }\n\n const suffixAttr = this.getAttribute(\"suffixicon\");\n if (suffixAttr !== null && this.suffixIcon === \"\") {\n this.suffixIcon = suffixAttr;\n }\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n // Map of default icons by intent\n private static readonly DEFAULT_ICONS: Record<string, string> = {\n neutral: \"info\",\n error: \"emergency_home\",\n success: \"check_circle\",\n warning: \"warning\",\n };\n\n /**\n * Resolves which icon should be rendered.\n * @param icon The icon property value (string or boolean)\n * @returns Icon name or null if no icon should be rendered\n */\n private resolveIcon(icon: string | boolean): string | null {\n if (icon === true) {\n return NysBadge.DEFAULT_ICONS[this.intent] ?? \"info\";\n }\n if (typeof icon === \"string\" && icon.trim() !== \"\") {\n return icon;\n }\n return null;\n }\n\n render() {\n const prefixIconName = this.resolveIcon(this.prefixIcon);\n const suffixIconName = this.resolveIcon(this.suffixIcon);\n\n return html`\n <div class=\"nys-badge\">\n ${prefixIconName\n ? html`<nys-icon size=\"16\" name=${prefixIconName}></nys-icon>`\n : \"\"}\n ${this.prefixLabel\n ? html`<div class=\"nys-badge__prefix\">${this.prefixLabel}</div>`\n : \"\"}\n <div class=\"nys-badge__label\">${this.label}</div>\n ${suffixIconName\n ? html`<nys-icon size=\"16\" name=${suffixIconName}></nys-icon>`\n : \"\"}\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-badge\")) {\n customElements.define(\"nys-badge\", NysBadge);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-checkbox.scss?inline\";\n\nlet checkboxgroupIdCounter = 0;\n\n/**\n * `<nys-checkboxgroup>` is a form-associated container for multiple `<nys-checkbox>` components.\n * Handles grouping, validation, required constraints, form submission, and accessibility.\n *\n * Features:\n * - Manages multiple checkboxes as a single form field\n * - Supports required/optional flags and error messages\n * - Propagates size, tile, and inverted styling to child checkboxes\n * - Keyboard and screen reader accessible via fieldset/legend\n *\n * @slot default - Slot for child `<nys-checkbox>` elements\n * @slot description - Slot for custom description content\n *\n * @fires nys-change - Fired when any child checkbox changes\n * @fires nys-focus - Fired when any child checkbox gains focus\n * @fires nys-blur - Fired when any child checkbox loses focus\n */\n\nexport class NysCheckboxgroup extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: Boolean, reflect: true }) tile = false;\n @property({ type: String }) tooltip = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" = \"md\";\n\n @state() private _slottedDescriptionText = \"\";\n\n private _internals: ElementInternals;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-checkbox-${Date.now()}-${checkboxgroupIdCounter++}`;\n }\n this.addEventListener(\"nys-change\", this._handleCheckboxChange);\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"nys-change\", this._handleCheckboxChange);\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n // This ensures our checkboxes sets the value only once for formData (not within the individual checkboxes)\n this._setGroupExist();\n this._updateCheckboxSize();\n this._updateCheckboxTile();\n this._updateCheckboxShowError();\n this._getSlotDescriptionForAria();\n }\n\n updated(changedProperties: Map<string | symbol, unknown>) {\n if (changedProperties.has(\"required\")) {\n if (this.required) {\n this._setupCheckboxRequired();\n }\n }\n if (changedProperties.has(\"size\")) {\n this._updateCheckboxSize();\n }\n if (changedProperties.has(\"tile\")) {\n this._updateCheckboxTile();\n }\n if (changedProperties.has(\"inverted\")) {\n this._updateCheckboxInvert();\n }\n if (changedProperties.has(\"showError\")) {\n this._updateCheckboxShowError();\n }\n if (changedProperties.has(\"form\")) {\n this._updateCheckboxForm();\n }\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _setGroupExist() {\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n checkboxes.forEach((checkbox: any) => {\n checkbox.groupExist = true;\n });\n }\n\n // Initial update on checkbox required attribute\n private async _setupCheckboxRequired() {\n const firstCheckbox = this.querySelector(\"nys-checkbox\");\n const message = this.errorMessage || \"This field is required\";\n\n const firstCheckboxInput = firstCheckbox\n ? await (firstCheckbox as any).getInputElement()\n : null;\n\n this._internals.setValidity(\n { valueMissing: true },\n message,\n firstCheckboxInput ? firstCheckboxInput : this,\n );\n }\n\n // Updates the required attribute of each checkbox in the group\n private async _manageRequire() {\n if (this.required) {\n const message = this.errorMessage || \"Please select at least one option.\";\n const firstCheckbox = this.querySelector(\"nys-checkbox\");\n const firstCheckboxInput = firstCheckbox\n ? await (firstCheckbox as any).getInputElement().catch(() => null)\n : null;\n\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n // Loop through each child checkbox to see if one is checked.\n const atLeastOneChecked = Array.from(checkboxes).some(\n (checkbox: any) => checkbox.checked,\n );\n\n if (atLeastOneChecked) {\n this._internals.setValidity({});\n this.showError = false;\n } else {\n this._internals.setValidity(\n { valueMissing: true },\n message,\n firstCheckboxInput ? firstCheckboxInput : this,\n );\n this.showError = true;\n }\n }\n }\n\n // Updates the size of each checkbox in the group\n private _updateCheckboxSize() {\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n checkboxes.forEach((checkbox) => {\n checkbox.setAttribute(\"size\", this.size);\n });\n }\n\n private _updateCheckboxTile() {\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n checkboxes.forEach((checkbox) => {\n if (this.tile) {\n checkbox.toggleAttribute(\"tile\", true);\n } else {\n checkbox.removeAttribute(\"tile\");\n }\n });\n }\n\n private _updateCheckboxInvert() {\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n checkboxes.forEach((checkbox) => {\n if (this.inverted) {\n checkbox.toggleAttribute(\"inverted\", true);\n } else {\n checkbox.removeAttribute(\"inverted\");\n }\n });\n }\n\n private _updateCheckboxShowError() {\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n checkboxes.forEach((checkbox) => {\n if (this.showError) {\n checkbox.setAttribute(\"showError\", \"\");\n } else {\n checkbox.removeAttribute(\"showError\");\n }\n });\n }\n\n private _updateCheckboxForm() {\n const checkboxes = this.querySelectorAll(\"nys-checkbox\");\n checkboxes.forEach((checkbox) => {\n if (this.showError) {\n if (this.form !== null) {\n checkbox.setAttribute(\"form\", this.form);\n } else {\n checkbox.removeAttribute(\"form\");\n }\n } else {\n checkbox.removeAttribute(\"form\");\n }\n });\n }\n\n // Get the slotted text contents so native VO can attempt to announce it within the legend in the fieldset\n private _getSlotDescriptionForAria() {\n const slot = this.shadowRoot?.querySelector(\n 'slot[name=\"description\"]',\n ) as HTMLSlotElement;\n const nodes = slot?.assignedNodes({ flatten: true }) || [];\n\n this._slottedDescriptionText = nodes\n .map((node) => node.textContent?.trim())\n .filter(Boolean)\n .join(\", \");\n }\n\n private async _handleInvalid(event: Event) {\n event.preventDefault();\n\n this.showError = true;\n this._manageRequire(); // Refresh validation message\n\n const firstCheckbox = this.querySelector(\"nys-checkbox\");\n const firstCheckboxInput = firstCheckbox\n ? await (firstCheckbox as any).getInputElement()\n : null;\n\n if (firstCheckboxInput) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find((element) => {\n // If element is checkboxgroup, we see if anyone checkboxes within the group is checked to fulfill required constraint\n if (element.tagName.toLowerCase() === \"nys-checkboxgroup\") {\n const allCheckboxes = Array.from(\n this.querySelectorAll(\"nys-checkbox\"),\n ) as any[];\n const hasCheckedCheckbox = allCheckboxes.filter(\n (checkbox) => checkbox.checked,\n );\n // Required constraint not met, continue logic to have this component be focused\n if (hasCheckedCheckbox.length === 0) {\n return element;\n }\n } else {\n return (\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity()\n );\n }\n });\n\n if (firstInvalidElement === this) {\n firstCheckboxInput.focus();\n }\n } else {\n // If not part of a form, simply focus.\n firstCheckboxInput.focus();\n }\n }\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n // Similar to how native forms handle multiple same-name fields, we group the selected values into a list for FormData.\n private _handleCheckboxChange(event: Event) {\n const customEvent = event as CustomEvent;\n const { name } = customEvent.detail;\n const checkboxes = Array.from(this.querySelectorAll(\"nys-checkbox\"));\n\n // Filter to only the checked ones and extract their values.\n const selectedValues = checkboxes\n .filter((checkbox: any) => checkbox.checked)\n .map((checkbox: any) => checkbox.value);\n\n this.name = name;\n\n this._internals.setFormValue(selectedValues.join(\", \"));\n\n this._manageRequire();\n }\n\n render() {\n return html`\n <div class=\"nys-checkboxgroup\">\n <nys-label\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n <div class=\"nys-checkboxgroup__content\">\n <fieldset>\n <legend class=\"sr-only\">\n ${this.label}${this._slottedDescriptionText\n ? ` ${this._slottedDescriptionText}`\n : this.description\n ? ` ${this.description}`\n : \"\"}\n </legend>\n <slot></slot>\n </fieldset>\n </div>\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage || this.errorMessage}\n .showDivider=${!this.tile}\n ></nys-errormessage>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-checkboxgroup\")) {\n customElements.define(\"nys-checkboxgroup\", NysCheckboxgroup);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport \"./nys-checkboxgroup\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-checkbox.scss?inline\";\n\nlet checkboxIdCounter = 0;\n\n/**\n * `<nys-checkbox>` is an accessible, form-associated checkbox component.\n * Can be used standalone or within a `<nys-checkboxgroup>`.\n *\n * Features:\n * - Supports labels, descriptions, and tooltips\n * - Displays error messages with `showError` and `errorMessage`\n * - Keyboard interaction with spacebar toggle\n * - Form integration via ElementInternals (`checked` value submitted)\n *\n * @fires nys-change - Fired when checkbox value changes\n * @fires nys-focus - Fired on focus\n * @fires nys-blur - Fired on blur\n *\n * @slot description - Slot to provide a custom description element\n */\n\nexport class NysCheckbox extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: Boolean, reflect: true }) checked = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) value = \"\";\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: Boolean }) groupExist = false;\n @property({ type: Boolean, reflect: true }) tile = false;\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String }) tooltip = \"\";\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" = \"md\";\n\n public async getInputElement(): Promise<HTMLInputElement | null> {\n await this.updateComplete; // Wait for the component to finish rendering\n return this.shadowRoot?.querySelector(\"input\") || null;\n }\n\n private _internals: ElementInternals;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-checkbox-${Date.now()}-${checkboxIdCounter++}`;\n }\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n // This ensures our element always participates in the form\n this._setValue();\n this._manageRequire();\n this._manageLabelClick();\n }\n\n /**\n * Form Integration\n * --------------------------------------------------------------------------\n */\n\n private _setValue() {\n if (!this.groupExist) {\n this._internals.setFormValue(this.checked ? this.value : null);\n }\n }\n\n private _manageRequire() {\n const input = this.shadowRoot?.querySelector(\"input\");\n const message = this.errorMessage || \"This field is required\";\n if (!input) return;\n\n if (this.required && !this.checked) {\n this._internals.ariaRequired = \"true\";\n this._internals.setValidity({ valueMissing: true }, message, input);\n } else {\n this._internals.setValidity({});\n }\n }\n\n private _setValidityMessage(message: string = \"\") {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Toggle the HTML <div> tag error message\n this.showError = !!message;\n // If user sets errorMessage, this will always override the native validation message\n if (this.errorMessage?.trim() && message !== \"\") {\n message = this.errorMessage;\n }\n\n this._internals.setValidity(\n message ? { customError: true } : {},\n message,\n input,\n );\n }\n\n private _validate() {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Get the native validation state\n const validity = input.validity;\n let message = \"\";\n\n if (validity.valueMissing) {\n message = \"This field is required\";\n }\n\n this._setValidityMessage(message);\n }\n\n // Called automatically when the parent form is reset\n formResetCallback() {\n this.checked = false;\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n // If the radiogroup is required but no radio is selected, return false.\n if (this.required && !this.checked) {\n return false;\n }\n\n // Otherwise, optionally check the native input's validity if available.\n const input = this.shadowRoot?.querySelector(\"input\");\n return input ? input.checkValidity() : true;\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n\n this.showError = true;\n this._validate(); // Make sure validation message appears\n\n const input = this.shadowRoot?.querySelector(\"input\");\n if (input) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n input.focus();\n }\n } else {\n // If not part of a form, simply focus.\n input.focus();\n }\n }\n }\n\n private _manageLabelClick = () => {\n const wrapper = this.shadowRoot?.querySelector(\".nys-checkbox\");\n const inputEl = this.shadowRoot?.querySelector(\"input\");\n\n if (!wrapper || !inputEl) return;\n\n wrapper.addEventListener(\"click\", (e) => {\n // Avoid double toggling the checkbox. Already handled by input\n if ((e.target as HTMLElement).tagName.toLowerCase() === \"input\") return;\n\n if (!this.disabled) {\n inputEl.click();\n }\n });\n };\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n private _emitChangeEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: {\n id: this.id,\n checked: this.checked,\n name: this.name,\n value: this.value,\n },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // Handle checkbox change event\n private _handleChange(e: Event) {\n const { checked } = e.target as HTMLInputElement;\n this.checked = checked;\n if (!this.groupExist) {\n this._internals.setFormValue(this.checked ? this.value : null);\n }\n this._validate();\n this._emitChangeEvent();\n }\n\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n private _handleBlur() {\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n private async _handleKeydown(e: KeyboardEvent) {\n if (e.code === \"Space\") {\n e.preventDefault();\n if (!this.disabled) {\n this.checked = !this.checked;\n this._internals.setFormValue(this.checked ? this.value : null);\n\n // Wait for DOM updates before validating. This is necessary to ensure the native input validation state is updated before this.validate().\n await this.updateComplete;\n this._validate();\n\n this._emitChangeEvent();\n }\n }\n }\n\n render() {\n return html`\n <div class=\"nys-checkbox\">\n <div class=\"nys-checkbox__checkboxwrapper\">\n <input\n id=${this.id + \"--native\"}\n class=\"nys-checkbox__checkbox\"\n type=\"checkbox\"\n name=\"${ifDefined(this.name ? this.name : undefined)}\"\n .checked=${this.checked}\n ?disabled=${this.disabled}\n .value=${this.value}\n ?required=\"${this.required}\"\n form=${ifDefined(this.form || undefined)}\n aria-checked=\"${this.checked}\"\n aria-disabled=\"${this.disabled ? \"true\" : \"false\"}\"\n aria-required=\"${this.required}\"\n aria-describedby=\"group-info\"\n @change=\"${this._handleChange}\"\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @keydown=\"${this._handleKeydown}\"\n aria-label=\"${this.label}\"\n />\n ${this.checked\n ? html`<nys-icon\n name=\"check\"\n size=\"${this.size === \"md\"\n ? \"4xl\"\n : this.size === \"sm\"\n ? \"2xl\"\n : \"4xl\"}\"\n class=\"nys-checkbox__icon\"\n ></nys-icon>`\n : \"\"}\n </div>\n ${this.label &&\n html`\n <nys-label\n tooltip=${this.tooltip}\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${ifDefined(this.description ?? undefined)}\n flag=${ifDefined(this.required ? \"required\" : undefined)}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\"\n >${this.description}</slot\n >\n </nys-label>\n `}\n </div>\n ${this.parentElement?.tagName.toLowerCase() !== \"nys-checkboxgroup\"\n ? html`<nys-errormessage\n id=\"single-error-message\"\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage ||\n this.errorMessage}\n .showDivider=${!this.tile}\n ></nys-errormessage>`\n : \"\"}\n `;\n }\n}\n\nif (!customElements.get(\"nys-checkbox\")) {\n customElements.define(\"nys-checkbox\", NysCheckbox);\n}\n","const BUILD = {\n allRenderFn: false,\n cmpDidLoad: true,\n cmpDidUnload: false,\n cmpDidUpdate: true,\n cmpDidRender: true,\n cmpWillLoad: true,\n cmpWillUpdate: true,\n cmpWillRender: true,\n connectedCallback: true,\n disconnectedCallback: true,\n element: true,\n event: true,\n hasRenderFn: true,\n lifecycle: true,\n hostListener: true,\n hostListenerTargetWindow: true,\n hostListenerTargetDocument: true,\n hostListenerTargetBody: true,\n hostListenerTargetParent: false,\n hostListenerTarget: true,\n member: true,\n method: true,\n mode: true,\n observeAttribute: true,\n prop: true,\n propMutable: true,\n reflect: true,\n scoped: true,\n shadowDom: true,\n slot: true,\n cssAnnotations: true,\n state: true,\n style: true,\n svg: true,\n updatable: true,\n vdomAttribute: true,\n vdomXlink: true,\n vdomClass: true,\n vdomFunctional: true,\n vdomKey: true,\n vdomListener: true,\n vdomRef: true,\n vdomPropOrAttr: true,\n vdomRender: true,\n vdomStyle: true,\n vdomText: true,\n watchCallback: true,\n taskQueue: true,\n hotModuleReplacement: false,\n isDebug: false,\n isDev: false,\n isTesting: false,\n hydrateServerSide: false,\n hydrateClientSide: false,\n lifecycleDOMEvents: false,\n lazyLoad: false,\n profile: false,\n slotRelocation: true,\n appendChildSlotFix: false,\n cloneNodeFix: false,\n hydratedAttribute: false,\n hydratedClass: true,\n safari10: false,\n scriptDataOpts: false,\n scopedSlotTextContentFix: false,\n shadowDomShim: false,\n slotChildNodesFix: false,\n invisiblePrehydration: true,\n propBoolean: true,\n propNumber: true,\n propString: true,\n cssVarShim: false,\n constructableCSS: true,\n cmpShouldUpdate: true,\n devTools: false,\n dynamicImportShim: false,\n shadowDelegatesFocus: true,\n initializeNextTick: false,\n asyncLoading: false,\n asyncQueue: false,\n transformTagName: false,\n attachStyles: true,\n};\nconst Env = {};\nconst NAMESPACE = /* default */ 'app';\n\nexport { BUILD, Env, NAMESPACE };\n","/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/snabbdom/snabbdom/blob/master/LICENSE\n *\n * Modified for Stencil's renderer and slot projection\n */\nlet scopeId;\nlet contentRef;\nlet hostTagName;\nlet customError;\nlet i = 0;\nlet useNativeShadowDom = false;\nlet checkSlotFallbackVisibility = false;\nlet checkSlotRelocate = false;\nlet isSvgMode = false;\nlet renderingRef = null;\nlet queueCongestion = 0;\nlet queuePending = false;\n/*\n Stencil Client Platform v2.22.3 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nconst Build = {\n isDev: BUILD.isDev ? true : false,\n isBrowser: true,\n isServer: false,\n isTesting: BUILD.isTesting ? true : false,\n};\nconst Context = {};\nconst getAssetPath = (path) => {\n const assetUrl = new URL(path, plt.$resourcesUrl$);\n return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;\n};\nconst setAssetPath = (path) => (plt.$resourcesUrl$ = path);\nconst createTime = (fnName, tagName = '') => {\n if (BUILD.profile && performance.mark) {\n const key = `st:${fnName}:${tagName}:${i++}`;\n // Start\n performance.mark(key);\n // End\n return () => performance.measure(`[Stencil] ${fnName}() <${tagName}>`, key);\n }\n else {\n return () => {\n return;\n };\n }\n};\nconst uniqueTime = (key, measureText) => {\n if (BUILD.profile && performance.mark) {\n if (performance.getEntriesByName(key, 'mark').length === 0) {\n performance.mark(key);\n }\n return () => {\n if (performance.getEntriesByName(measureText, 'measure').length === 0) {\n performance.measure(measureText, key);\n }\n };\n }\n else {\n return () => {\n return;\n };\n }\n};\nconst inspect = (ref) => {\n const hostRef = getHostRef(ref);\n if (!hostRef) {\n return undefined;\n }\n const flags = hostRef.$flags$;\n const hostElement = hostRef.$hostElement$;\n return {\n renderCount: hostRef.$renderCount$,\n flags: {\n hasRendered: !!(flags & 2 /* HOST_FLAGS.hasRendered */),\n hasConnected: !!(flags & 1 /* HOST_FLAGS.hasConnected */),\n isWaitingForChildren: !!(flags & 4 /* HOST_FLAGS.isWaitingForChildren */),\n isConstructingInstance: !!(flags & 8 /* HOST_FLAGS.isConstructingInstance */),\n isQueuedForUpdate: !!(flags & 16 /* HOST_FLAGS.isQueuedForUpdate */),\n hasInitializedComponent: !!(flags & 32 /* HOST_FLAGS.hasInitializedComponent */),\n hasLoadedComponent: !!(flags & 64 /* HOST_FLAGS.hasLoadedComponent */),\n isWatchReady: !!(flags & 128 /* HOST_FLAGS.isWatchReady */),\n isListenReady: !!(flags & 256 /* HOST_FLAGS.isListenReady */),\n needsRerender: !!(flags & 512 /* HOST_FLAGS.needsRerender */),\n },\n instanceValues: hostRef.$instanceValues$,\n ancestorComponent: hostRef.$ancestorComponent$,\n hostElement,\n lazyInstance: hostRef.$lazyInstance$,\n vnode: hostRef.$vnode$,\n modeName: hostRef.$modeName$,\n onReadyPromise: hostRef.$onReadyPromise$,\n onReadyResolve: hostRef.$onReadyResolve$,\n onInstancePromise: hostRef.$onInstancePromise$,\n onInstanceResolve: hostRef.$onInstanceResolve$,\n onRenderResolve: hostRef.$onRenderResolve$,\n queuedListeners: hostRef.$queuedListeners$,\n rmListeners: hostRef.$rmListeners$,\n ['s-id']: hostElement['s-id'],\n ['s-cr']: hostElement['s-cr'],\n ['s-lr']: hostElement['s-lr'],\n ['s-p']: hostElement['s-p'],\n ['s-rc']: hostElement['s-rc'],\n ['s-sc']: hostElement['s-sc'],\n };\n};\nconst installDevTools = () => {\n if (BUILD.devTools) {\n const stencil = (win.stencil = win.stencil || {});\n const originalInspect = stencil.inspect;\n stencil.inspect = (ref) => {\n let result = inspect(ref);\n if (!result && typeof originalInspect === 'function') {\n result = originalInspect(ref);\n }\n return result;\n };\n }\n};\nconst CONTENT_REF_ID = 'r';\nconst ORG_LOCATION_ID = 'o';\nconst SLOT_NODE_ID = 's';\nconst TEXT_NODE_ID = 't';\nconst HYDRATE_ID = 's-id';\nconst HYDRATED_STYLE_ID = 'sty-id';\nconst HYDRATE_CHILD_ID = 'c-id';\nconst HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';\nconst XLINK_NS = 'http://www.w3.org/1999/xlink';\n/**\n * Default style mode id\n */\n/**\n * Reusable empty obj/array\n * Don't add values to these!!\n */\nconst EMPTY_OBJ = {};\n/**\n * Namespaces\n */\nconst SVG_NS = 'http://www.w3.org/2000/svg';\nconst HTML_NS = 'http://www.w3.org/1999/xhtml';\nconst isDef = (v) => v != null;\nconst isComplexType = (o) => {\n // https://jsperf.com/typeof-fn-object/5\n o = typeof o;\n return o === 'object' || o === 'function';\n};\n/**\n * Helper method for querying a `meta` tag that contains a nonce value\n * out of a DOM's head.\n *\n * @param doc The DOM containing the `head` to query against\n * @returns The content of the meta tag representing the nonce value, or `undefined` if no tag\n * exists or the tag has no content.\n */\nfunction queryNonceMetaTagContent(doc) {\n var _a, _b, _c;\n return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name=\"csp-nonce\"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined;\n}\n/**\n * Production h() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;\nconst h = (nodeName, vnodeData, ...children) => {\n let child = null;\n let key = null;\n let slotName = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i = 0; i < c.length; i++) {\n child = c[i];\n if (Array.isArray(child)) {\n walk(child);\n }\n else if (child != null && typeof child !== 'boolean') {\n if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {\n child = String(child);\n }\n else if (BUILD.isDev && typeof nodeName !== 'function' && child.$flags$ === undefined) {\n consoleDevError(`vNode passed as children has unexpected type.\nMake sure it's using the correct h() function.\nEmpty objects can also be the cause, look for JSX comments that became objects.`);\n }\n if (simple && lastSimple) {\n // If the previous child was simple (string), we merge both\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n }\n else {\n // Append a new vNode, if it's text, we create a text vNode\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n if (BUILD.isDev && nodeName === 'input') {\n validateInputProperties(vnodeData);\n }\n // normalize class / classname attributes\n if (BUILD.vdomKey && vnodeData.key) {\n key = vnodeData.key;\n }\n if (BUILD.slotRelocation && vnodeData.name) {\n slotName = vnodeData.name;\n }\n if (BUILD.vdomClass) {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class =\n typeof classData !== 'object'\n ? classData\n : Object.keys(classData)\n .filter((k) => classData[k])\n .join(' ');\n }\n }\n }\n if (BUILD.isDev && vNodeChildren.some(isHost)) {\n consoleDevError(`The <Host> must be the single root component. Make sure:\n- You are NOT using hostData() and <Host> in the same component.\n- <Host> is used once, and it's the single root component of the render() function.`);\n }\n if (BUILD.vdomFunctional && typeof nodeName === 'function') {\n // nodeName is a functional component\n return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n if (BUILD.vdomKey) {\n vnode.$key$ = key;\n }\n if (BUILD.slotRelocation) {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\n/**\n * A utility function for creating a virtual DOM node from a tag and some\n * possible text content.\n *\n * @param tag the tag for this element\n * @param text possible text content for the node\n * @returns a newly-minted virtual DOM node\n */\nconst newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null,\n };\n if (BUILD.vdomAttribute) {\n vnode.$attrs$ = null;\n }\n if (BUILD.vdomKey) {\n vnode.$key$ = null;\n }\n if (BUILD.slotRelocation) {\n vnode.$name$ = null;\n }\n return vnode;\n};\nconst Host = {};\n/**\n * Check whether a given node is a Host node or not\n *\n * @param node the virtual DOM node to check\n * @returns whether it's a Host node or not\n */\nconst isHost = (node) => node && node.$tag$ === Host;\n/**\n * Implementation of {@link d.FunctionalUtilities} for Stencil's VDom.\n *\n * Note that these functions convert from {@link d.VNode} to\n * {@link d.ChildNode} to give functional component developers a friendly\n * interface.\n */\nconst vdomFnUtils = {\n forEach: (children, cb) => children.map(convertToPublic).forEach(cb),\n map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate),\n};\n/**\n * Convert a {@link d.VNode} to a {@link d.ChildNode} in order to present a\n * friendlier public interface (hence, 'convertToPublic').\n *\n * @param node the virtual DOM node to convert\n * @returns a converted child node\n */\nconst convertToPublic = (node) => ({\n vattrs: node.$attrs$,\n vchildren: node.$children$,\n vkey: node.$key$,\n vname: node.$name$,\n vtag: node.$tag$,\n vtext: node.$text$,\n});\n/**\n * Convert a {@link d.ChildNode} back to an equivalent {@link d.VNode} in\n * order to use the resulting object in the virtual DOM. The initial object was\n * likely created as part of presenting a public API, so converting it back\n * involved making it 'private' again (hence, `convertToPrivate`).\n *\n * @param node the child node to convert\n * @returns a converted virtual DOM node\n */\nconst convertToPrivate = (node) => {\n if (typeof node.vtag === 'function') {\n const vnodeData = Object.assign({}, node.vattrs);\n if (node.vkey) {\n vnodeData.key = node.vkey;\n }\n if (node.vname) {\n vnodeData.name = node.vname;\n }\n return h(node.vtag, vnodeData, ...(node.vchildren || []));\n }\n const vnode = newVNode(node.vtag, node.vtext);\n vnode.$attrs$ = node.vattrs;\n vnode.$children$ = node.vchildren;\n vnode.$key$ = node.vkey;\n vnode.$name$ = node.vname;\n return vnode;\n};\n/**\n * Validates the ordering of attributes on an input element\n *\n * @param inputElm the element to validate\n */\nconst validateInputProperties = (inputElm) => {\n const props = Object.keys(inputElm);\n const value = props.indexOf('value');\n if (value === -1) {\n return;\n }\n const typeIndex = props.indexOf('type');\n const minIndex = props.indexOf('min');\n const maxIndex = props.indexOf('max');\n const stepIndex = props.indexOf('step');\n if (value < typeIndex || value < minIndex || value < maxIndex || value < stepIndex) {\n consoleDevWarn(`The \"value\" prop of <input> should be set after \"min\", \"max\", \"type\" and \"step\"`);\n }\n};\nconst initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {\n const endHydrate = createTime('hydrateClient', tagName);\n const shadowRoot = hostElm.shadowRoot;\n const childRenderNodes = [];\n const slotNodes = [];\n const shadowRootNodes = BUILD.shadowDom && shadowRoot ? [] : null;\n const vnode = (hostRef.$vnode$ = newVNode(tagName, null));\n if (!plt.$orgLocNodes$) {\n initializeDocumentHydrate(doc.body, (plt.$orgLocNodes$ = new Map()));\n }\n hostElm[HYDRATE_ID] = hostId;\n hostElm.removeAttribute(HYDRATE_ID);\n clientHydrate(vnode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, hostElm, hostId);\n childRenderNodes.map((c) => {\n const orgLocationId = c.$hostId$ + '.' + c.$nodeId$;\n const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId);\n const node = c.$elm$;\n if (orgLocationNode && supportsShadow && orgLocationNode['s-en'] === '') {\n orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling);\n }\n if (!shadowRoot) {\n node['s-hn'] = tagName;\n if (orgLocationNode) {\n node['s-ol'] = orgLocationNode;\n node['s-ol']['s-nr'] = node;\n }\n }\n plt.$orgLocNodes$.delete(orgLocationId);\n });\n if (BUILD.shadowDom && shadowRoot) {\n shadowRootNodes.map((shadowRootNode) => {\n if (shadowRootNode) {\n shadowRoot.appendChild(shadowRootNode);\n }\n });\n }\n endHydrate();\n};\nconst clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node, hostId) => {\n let childNodeType;\n let childIdSplt;\n let childVNode;\n let i;\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n childNodeType = node.getAttribute(HYDRATE_CHILD_ID);\n if (childNodeType) {\n // got the node data from the element's attribute\n // `${hostId}.${nodeId}.${depth}.${index}`\n childIdSplt = childNodeType.split('.');\n if (childIdSplt[0] === hostId || childIdSplt[0] === '0') {\n childVNode = {\n $flags$: 0,\n $hostId$: childIdSplt[0],\n $nodeId$: childIdSplt[1],\n $depth$: childIdSplt[2],\n $index$: childIdSplt[3],\n $tag$: node.tagName.toLowerCase(),\n $elm$: node,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $text$: null,\n };\n childRenderNodes.push(childVNode);\n node.removeAttribute(HYDRATE_CHILD_ID);\n // this is a new child vnode\n // so ensure its parent vnode has the vchildren array\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n // add our child vnode to a specific index of the vnode's children\n parentVNode.$children$[childVNode.$index$] = childVNode;\n // this is now the new parent vnode for all the next child checks\n parentVNode = childVNode;\n if (shadowRootNodes && childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n }\n // recursively drill down, end to start so we can remove nodes\n for (i = node.childNodes.length - 1; i >= 0; i--) {\n clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.childNodes[i], hostId);\n }\n if (node.shadowRoot) {\n // keep drilling down through the shadow root nodes\n for (i = node.shadowRoot.childNodes.length - 1; i >= 0; i--) {\n clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.shadowRoot.childNodes[i], hostId);\n }\n }\n }\n else if (node.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n // `${COMMENT_TYPE}.${hostId}.${nodeId}.${depth}.${index}`\n childIdSplt = node.nodeValue.split('.');\n if (childIdSplt[1] === hostId || childIdSplt[1] === '0') {\n // comment node for either the host id or a 0 host id\n childNodeType = childIdSplt[0];\n childVNode = {\n $flags$: 0,\n $hostId$: childIdSplt[1],\n $nodeId$: childIdSplt[2],\n $depth$: childIdSplt[3],\n $index$: childIdSplt[4],\n $elm$: node,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $tag$: null,\n $text$: null,\n };\n if (childNodeType === TEXT_NODE_ID) {\n childVNode.$elm$ = node.nextSibling;\n if (childVNode.$elm$ && childVNode.$elm$.nodeType === 3 /* NODE_TYPE.TextNode */) {\n childVNode.$text$ = childVNode.$elm$.textContent;\n childRenderNodes.push(childVNode);\n // remove the text comment since it's no longer needed\n node.remove();\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n if (shadowRootNodes && childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n }\n else if (childVNode.$hostId$ === hostId) {\n // this comment node is specifcally for this host id\n if (childNodeType === SLOT_NODE_ID) {\n // `${SLOT_NODE_ID}.${hostId}.${nodeId}.${depth}.${index}.${slotName}`;\n childVNode.$tag$ = 'slot';\n if (childIdSplt[5]) {\n node['s-sn'] = childVNode.$name$ = childIdSplt[5];\n }\n else {\n node['s-sn'] = '';\n }\n node['s-sr'] = true;\n if (BUILD.shadowDom && shadowRootNodes) {\n // browser support shadowRoot and this is a shadow dom component\n // create an actual slot element\n childVNode.$elm$ = doc.createElement(childVNode.$tag$);\n if (childVNode.$name$) {\n // add the slot name attribute\n childVNode.$elm$.setAttribute('name', childVNode.$name$);\n }\n // insert the new slot element before the slot comment\n node.parentNode.insertBefore(childVNode.$elm$, node);\n // remove the slot comment since it's not needed for shadow\n node.remove();\n if (childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n slotNodes.push(childVNode);\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n }\n else if (childNodeType === CONTENT_REF_ID) {\n // `${CONTENT_REF_ID}.${hostId}`;\n if (BUILD.shadowDom && shadowRootNodes) {\n // remove the content ref comment since it's not needed for shadow\n node.remove();\n }\n else if (BUILD.slotRelocation) {\n hostElm['s-cr'] = node;\n node['s-cn'] = true;\n }\n }\n }\n }\n }\n else if (parentVNode && parentVNode.$tag$ === 'style') {\n const vnode = newVNode(null, node.textContent);\n vnode.$elm$ = node;\n vnode.$index$ = '0';\n parentVNode.$children$ = [vnode];\n }\n};\nconst initializeDocumentHydrate = (node, orgLocNodes) => {\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n let i = 0;\n for (; i < node.childNodes.length; i++) {\n initializeDocumentHydrate(node.childNodes[i], orgLocNodes);\n }\n if (node.shadowRoot) {\n for (i = 0; i < node.shadowRoot.childNodes.length; i++) {\n initializeDocumentHydrate(node.shadowRoot.childNodes[i], orgLocNodes);\n }\n }\n }\n else if (node.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n const childIdSplt = node.nodeValue.split('.');\n if (childIdSplt[0] === ORG_LOCATION_ID) {\n orgLocNodes.set(childIdSplt[1] + '.' + childIdSplt[2], node);\n node.nodeValue = '';\n // useful to know if the original location is\n // the root light-dom of a shadow dom component\n node['s-en'] = childIdSplt[3];\n }\n }\n};\n// Private\nconst computeMode = (elm) => modeResolutionChain.map((h) => h(elm)).find((m) => !!m);\n// Public\nconst setMode = (handler) => modeResolutionChain.push(handler);\nconst getMode = (ref) => getHostRef(ref).$modeName$;\n/**\n * Parse a new property value for a given property type.\n *\n * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,\n * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:\n * 1. `any`, the type given to `propValue` in the function signature\n * 2. the type stored from `propType`.\n *\n * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.\n *\n * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to\n * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is\n * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.\n * ```tsx\n * <my-cmp prop-val={0}></my-cmp>\n * ```\n *\n * HTML prop values on the other hand, will always a string\n *\n * @param propValue the new value to coerce to some type\n * @param propType the type of the prop, expressed as a binary number\n * @returns the parsed/coerced value\n */\nconst parsePropertyValue = (propValue, propType) => {\n // ensure this value is of the correct prop type\n if (propValue != null && !isComplexType(propValue)) {\n if (BUILD.propBoolean && propType & 4 /* MEMBER_FLAGS.Boolean */) {\n // per the HTML spec, any string value means it is a boolean true value\n // but we'll cheat here and say that the string \"false\" is the boolean false\n return propValue === 'false' ? false : propValue === '' || !!propValue;\n }\n if (BUILD.propNumber && propType & 2 /* MEMBER_FLAGS.Number */) {\n // force it to be a number\n return parseFloat(propValue);\n }\n if (BUILD.propString && propType & 1 /* MEMBER_FLAGS.String */) {\n // could have been passed as a number or boolean\n // but we still want it as a string\n return String(propValue);\n }\n // redundant return here for better minification\n return propValue;\n }\n // not sure exactly what type we want\n // so no need to change to a different type\n return propValue;\n};\nconst getElement = (ref) => (BUILD.lazyLoad ? getHostRef(ref).$hostElement$ : ref);\nconst createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n if (BUILD.isDev && !elm.isConnected) {\n consoleDevWarn(`The \"${name}\" event was emitted, but the dispatcher node is no longer connected to the dom.`);\n }\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* EVENT_FLAGS.Bubbles */),\n composed: !!(flags & 2 /* EVENT_FLAGS.Composed */),\n cancelable: !!(flags & 1 /* EVENT_FLAGS.Cancellable */),\n detail,\n });\n },\n };\n};\n/**\n * Helper function to create & dispatch a custom Event on a provided target\n * @param elm the target of the Event\n * @param name the name to give the custom Event\n * @param opts options for configuring a custom Event\n * @returns the custom Event\n */\nconst emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nconst rootAppliedStyles = /*@__PURE__*/ new WeakMap();\nconst registerStyle = (scopeId, cssText, allowCS) => {\n let style = styles.get(scopeId);\n if (supportsConstructableStylesheets && allowCS) {\n style = (style || new CSSStyleSheet());\n if (typeof style === 'string') {\n style = cssText;\n }\n else {\n style.replaceSync(cssText);\n }\n }\n else {\n style = cssText;\n }\n styles.set(scopeId, style);\n};\nconst addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {\n var _a;\n let scopeId = getScopeId(cmpMeta, mode);\n const style = styles.get(scopeId);\n if (!BUILD.attachStyles) {\n return scopeId;\n }\n // if an element is NOT connected then getRootNode() will return the wrong root node\n // so the fallback is to always use the document for the root node in those cases\n styleContainerNode = styleContainerNode.nodeType === 11 /* NODE_TYPE.DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === 'string') {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));\n }\n if (!appliedStyles.has(scopeId)) {\n if (BUILD.hydrateClientSide &&\n styleContainerNode.host &&\n (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}=\"${scopeId}\"]`))) {\n // This is only happening on native shadow-dom, do not needs CSS var shim\n styleElm.innerHTML = style;\n }\n else {\n if (BUILD.cssVarShim && plt.$cssShim$) {\n styleElm = plt.$cssShim$.createHostStyle(hostElm, scopeId, style, !!(cmpMeta.$flags$ & 10 /* CMP_FLAGS.needsScopedEncapsulation */));\n const newScopeId = styleElm['s-sc'];\n if (newScopeId) {\n scopeId = newScopeId;\n // we don't want to add this styleID to the appliedStyles Set\n // since the cssVarShim might need to apply several different\n // stylesheets for the same component\n appliedStyles = null;\n }\n }\n else {\n styleElm = doc.createElement('style');\n styleElm.innerHTML = style;\n }\n // Apply CSP nonce to the style tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n styleElm.setAttribute('nonce', nonce);\n }\n if (BUILD.hydrateServerSide || BUILD.hotModuleReplacement) {\n styleElm.setAttribute(HYDRATED_STYLE_ID, scopeId);\n }\n styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId);\n }\n }\n }\n else if (BUILD.constructableCSS && !styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];\n }\n }\n return scopeId;\n};\nconst attachStyles = (hostRef) => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);\n const scopeId = addStyle(BUILD.shadowDom && supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$, elm);\n if ((BUILD.shadowDom || BUILD.scoped) && BUILD.cssAnnotations && flags & 10 /* CMP_FLAGS.needsScopedEncapsulation */) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n // DOM WRITE!!\n elm['s-sc'] = scopeId;\n elm.classList.add(scopeId + '-h');\n if (BUILD.scoped && flags & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm.classList.add(scopeId + '-s');\n }\n }\n endAttachStyles();\n};\nconst getScopeId = (cmp, mode) => 'sc-' + (BUILD.mode && mode && cmp.$flags$ & 32 /* CMP_FLAGS.hasMode */ ? cmp.$tagName$ + '-' + mode : cmp.$tagName$);\nconst convertScopedToShadow = (css) => css.replace(/\\/\\*!@([^\\/]+)\\*\\/[^\\{]+\\{/g, '$1{');\n/**\n * Production setAccessor() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\nconst setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (BUILD.vdomClass && memberName === 'class') {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n const newClasses = parseClassList(newValue);\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n else if (BUILD.vdomStyle && memberName === 'style') {\n // update style attribute, css properties and values\n if (BUILD.updatable) {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (!BUILD.hydrateServerSide && prop.includes('-')) {\n elm.style.removeProperty(prop);\n }\n else {\n elm.style[prop] = '';\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (!BUILD.hydrateServerSide && prop.includes('-')) {\n elm.style.setProperty(prop, newValue[prop]);\n }\n else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n }\n else if (BUILD.vdomKey && memberName === 'key')\n ;\n else if (BUILD.vdomRef && memberName === 'ref') {\n // minifier will clean this up\n if (newValue) {\n newValue(elm);\n }\n }\n else if (BUILD.vdomListener &&\n (BUILD.lazyLoad ? !isProp : !elm.__lookupSetter__(memberName)) &&\n memberName[0] === 'o' &&\n memberName[1] === 'n') {\n // Event Handlers\n // so if the member name starts with \"on\" and the 3rd characters is\n // a capital letter, and it's not already a member on the element,\n // then we're assuming it's an event listener\n if (memberName[2] === '-') {\n // on- prefixed events\n // allows to be explicit about the dom event to listen without any magic\n // under the hood:\n // <my-cmp on-click> // listens for \"click\"\n // <my-cmp on-Click> // listens for \"Click\"\n // <my-cmp on-ionChange> // listens for \"ionChange\"\n // <my-cmp on-EVENTS> // listens for \"EVENTS\"\n memberName = memberName.slice(3);\n }\n else if (isMemberInElement(win, ln)) {\n // standard event\n // the JSX attribute could have been \"onMouseOver\" and the\n // member name \"onmouseover\" is on the window's prototype\n // so let's add the listener \"mouseover\", which is all lowercased\n memberName = ln.slice(2);\n }\n else {\n // custom event\n // the JSX attribute could have been \"onMyCustomEvent\"\n // so let's trim off the \"on\" prefix and lowercase the first character\n // and add the listener \"myCustomEvent\"\n // except for the first character, we keep the event name case\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, false);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, false);\n }\n }\n else if (BUILD.vdomPropOrAttr) {\n // Set property if it exists and it's not a SVG\n const isComplex = isComplexType(newValue);\n if ((isProp || (isComplex && newValue !== null)) && !isSvg) {\n try {\n if (!elm.tagName.includes('-')) {\n const n = newValue == null ? '' : newValue;\n // Workaround for Safari, moving the <input> caret when re-assigning the same valued\n if (memberName === 'list') {\n isProp = false;\n }\n else if (oldValue == null || elm[memberName] != n) {\n elm[memberName] = n;\n }\n }\n else {\n elm[memberName] = newValue;\n }\n }\n catch (e) { }\n }\n /**\n * Need to manually update attribute if:\n * - memberName is not an attribute\n * - if we are rendering the host element in order to reflect attribute\n * - if it's a SVG, since properties might not work in <svg>\n * - if the newValue is null/undefined or 'false'.\n */\n let xlink = false;\n if (BUILD.vdomXlink) {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, ''))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === '') {\n if (BUILD.vdomXlink && xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n }\n else {\n elm.removeAttribute(memberName);\n }\n }\n }\n else if ((!isProp || flags & 4 /* VNODE_FLAGS.isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? '' : newValue;\n if (BUILD.vdomXlink && xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n }\n else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nconst parseClassListRegex = /\\s/;\nconst parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));\nconst updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {\n // if the element passed in is a shadow root, which is a document fragment\n // then we want to be adding attrs/props to the shadow root's \"host\" element\n // if it's not a shadow root, then we add attrs/props to the same element\n const elm = newVnode.$elm$.nodeType === 11 /* NODE_TYPE.DocumentFragment */ && newVnode.$elm$.host\n ? newVnode.$elm$.host\n : newVnode.$elm$;\n const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;\n const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;\n if (BUILD.updatable) {\n // remove attributes no longer present on the vnode by setting them to undefined\n for (memberName in oldVnodeAttrs) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);\n }\n }\n }\n // add new & update changed attributes\n for (memberName in newVnodeAttrs) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);\n }\n};\n/**\n * Create a DOM Node corresponding to one of the children of a given VNode.\n *\n * @param oldParentVNode the parent VNode from the previous render\n * @param newParentVNode the parent VNode from the current render\n * @param childIndex the index of the VNode, in the _new_ parent node's\n * children, for which we will create a new DOM node\n * @param parentElm the parent DOM node which our new node will be a child of\n * @returns the newly created node\n */\nconst createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {\n // tslint:disable-next-line: prefer-const\n const newVNode = newParentVNode.$children$[childIndex];\n let i = 0;\n let elm;\n let childNode;\n let oldVNode;\n if (BUILD.slotRelocation && !useNativeShadowDom) {\n // remember for later we need to check to relocate nodes\n checkSlotRelocate = true;\n if (newVNode.$tag$ === 'slot') {\n if (scopeId) {\n // scoped css needs to add its scoped id to the parent element\n parentElm.classList.add(scopeId + '-s');\n }\n newVNode.$flags$ |= newVNode.$children$\n ? // slot element has fallback content\n 2 /* VNODE_FLAGS.isSlotFallback */\n : // slot element does not have fallback content\n 1 /* VNODE_FLAGS.isSlotReference */;\n }\n }\n if (BUILD.isDev && newVNode.$elm$) {\n consoleDevError(`The JSX ${newVNode.$text$ !== null ? `\"${newVNode.$text$}\" text` : `\"${newVNode.$tag$}\" element`} node should not be shared within the same renderer. The renderer caches element lookups in order to improve performance. However, a side effect from this is that the exact same JSX node should not be reused. For more information please see https://stenciljs.com/docs/templating-jsx#avoid-shared-jsx-nodes`);\n }\n if (BUILD.vdomText && newVNode.$text$ !== null) {\n // create text node\n elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);\n }\n else if (BUILD.slotRelocation && newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {\n // create a slot reference node\n elm = newVNode.$elm$ =\n BUILD.isDebug || BUILD.hydrateServerSide ? slotReferenceDebugNode(newVNode) : doc.createTextNode('');\n }\n else {\n if (BUILD.svg && !isSvgMode) {\n isSvgMode = newVNode.$tag$ === 'svg';\n }\n // create element\n elm = newVNode.$elm$ = (BUILD.svg\n ? doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, BUILD.slotRelocation && newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$)\n : doc.createElement(BUILD.slotRelocation && newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$));\n if (BUILD.svg && isSvgMode && newVNode.$tag$ === 'foreignObject') {\n isSvgMode = false;\n }\n // add css classes, attrs, props, listeners, etc.\n if (BUILD.vdomAttribute) {\n updateElement(null, newVNode, isSvgMode);\n }\n if ((BUILD.shadowDom || BUILD.scoped) && isDef(scopeId) && elm['s-si'] !== scopeId) {\n // if there is a scopeId and this is the initial render\n // then let's add the scopeId as a css class\n elm.classList.add((elm['s-si'] = scopeId));\n }\n if (newVNode.$children$) {\n for (i = 0; i < newVNode.$children$.length; ++i) {\n // create the node\n childNode = createElm(oldParentVNode, newVNode, i, elm);\n // return node could have been null\n if (childNode) {\n // append our new node\n elm.appendChild(childNode);\n }\n }\n }\n if (BUILD.svg) {\n if (newVNode.$tag$ === 'svg') {\n // Only reset the SVG context when we're exiting <svg> element\n isSvgMode = false;\n }\n else if (elm.tagName === 'foreignObject') {\n // Reenter SVG context when we're exiting <foreignObject> element\n isSvgMode = true;\n }\n }\n }\n if (BUILD.slotRelocation) {\n elm['s-hn'] = hostTagName;\n if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {\n // remember the content reference comment\n elm['s-sr'] = true;\n // remember the content reference comment\n elm['s-cr'] = contentRef;\n // remember the slot name, or empty string for default slot\n elm['s-sn'] = newVNode.$name$ || '';\n // check if we've got an old vnode for this slot\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {\n // we've got an old slot vnode and the wrapper is being replaced\n // so let's move the old slot content back to it's original location\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n return elm;\n};\nconst putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n const oldSlotChildNodes = parentElm.childNodes;\n for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {\n const childNode = oldSlotChildNodes[i];\n if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {\n // // this child node in the old element is from another component\n // // remove this node from the old slot's parent\n // childNode.remove();\n // and relocate it back to it's original location\n parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));\n // remove the old original location comment entirely\n // later on the patch function will know what to do\n // and move this to the correct spot in need be\n childNode['s-ol'].remove();\n childNode['s-ol'] = undefined;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n};\n/**\n * Create DOM nodes corresponding to a list of {@link d.Vnode} objects and\n * add them to the DOM in the appropriate place.\n *\n * @param parentElm the DOM node which should be used as a parent for the new\n * DOM nodes\n * @param before a child of the `parentElm` which the new children should be\n * inserted before (optional)\n * @param parentVNode the parent virtual DOM node\n * @param vnodes the new child virtual DOM nodes to produce DOM nodes for\n * @param startIdx the index in the child virtual DOM nodes at which to start\n * creating DOM nodes (inclusive)\n * @param endIdx the index in the child virtual DOM nodes at which to stop\n * creating DOM nodes (inclusive)\n */\nconst addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = ((BUILD.slotRelocation && parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);\n let childNode;\n if (BUILD.shadowDom && containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx, parentElm);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n containerElm.insertBefore(childNode, BUILD.slotRelocation ? referenceNode(before) : before);\n }\n }\n }\n};\n/**\n * Remove the DOM elements corresponding to a list of {@link d.VNode} objects.\n * This can be used to, for instance, clean up after a list of children which\n * should no longer be shown.\n *\n * This function also handles some of Stencil's slot relocation logic.\n *\n * @param vnodes a list of virtual DOM nodes to remove\n * @param startIdx the index at which to start removing nodes (inclusive)\n * @param endIdx the index at which to stop removing nodes (inclusive)\n * @param vnode a VNode\n * @param elm an element\n */\nconst removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => {\n for (; startIdx <= endIdx; ++startIdx) {\n if ((vnode = vnodes[startIdx])) {\n elm = vnode.$elm$;\n callNodeRefs(vnode);\n if (BUILD.slotRelocation) {\n // we're removing this element\n // so it's possible we need to show slot fallback content now\n checkSlotFallbackVisibility = true;\n if (elm['s-ol']) {\n // remove the original location comment\n elm['s-ol'].remove();\n }\n else {\n // it's possible that child nodes of the node\n // that's being removed are slot nodes\n putBackInOriginalLocation(elm, true);\n }\n }\n // remove the vnode's element from the dom\n elm.remove();\n }\n }\n};\n/**\n * Reconcile the children of a new VNode with the children of an old VNode by\n * traversing the two collections of children, identifying nodes that are\n * conserved or changed, calling out to `patch` to make any necessary\n * updates to the DOM, and rearranging DOM nodes as needed.\n *\n * The algorithm for reconciling children works by analyzing two 'windows' onto\n * the two arrays of children (`oldCh` and `newCh`). We keep track of the\n * 'windows' by storing start and end indices and references to the\n * corresponding array entries. Initially the two 'windows' are basically equal\n * to the entire array, but we progressively narrow the windows until there are\n * no children left to update by doing the following:\n *\n * 1. Skip any `null` entries at the beginning or end of the two arrays, so\n * that if we have an initial array like the following we'll end up dealing\n * only with a window bounded by the highlighted elements:\n *\n * [null, null, VNode1 , ... , VNode2, null, null]\n * ^^^^^^ ^^^^^^\n *\n * 2. Check to see if the elements at the head and tail positions are equal\n * across the windows. This will basically detect elements which haven't\n * been added, removed, or changed position, i.e. if you had the following\n * VNode elements (represented as HTML):\n *\n * oldVNode: `<div><p><span>HEY</span></p></div>`\n * newVNode: `<div><p><span>THERE</span></p></div>`\n *\n * Then when comparing the children of the `<div>` tag we check the equality\n * of the VNodes corresponding to the `<p>` tags and, since they are the\n * same tag in the same position, we'd be able to avoid completely\n * re-rendering the subtree under them with a new DOM element and would just\n * call out to `patch` to handle reconciling their children and so on.\n *\n * 3. Check, for both windows, to see if the element at the beginning of the\n * window corresponds to the element at the end of the other window. This is\n * a heuristic which will let us identify _some_ situations in which\n * elements have changed position, for instance it _should_ detect that the\n * children nodes themselves have not changed but merely moved in the\n * following example:\n *\n * oldVNode: `<div><element-one /><element-two /></div>`\n * newVNode: `<div><element-two /><element-one /></div>`\n *\n * If we find cases like this then we also need to move the concrete DOM\n * elements corresponding to the moved children to write the re-order to the\n * DOM.\n *\n * 4. Finally, if VNodes have the `key` attribute set on them we check for any\n * nodes in the old children which have the same key as the first element in\n * our window on the new children. If we find such a node we handle calling\n * out to `patch`, moving relevant DOM nodes, and so on, in accordance with\n * what we find.\n *\n * Finally, once we've narrowed our 'windows' to the point that either of them\n * collapse (i.e. they have length 0) we then handle any remaining VNode\n * insertion or deletion that needs to happen to get a DOM state that correctly\n * reflects the new child VNodes. If, for instance, after our window on the old\n * children has collapsed we still have more nodes on the new children that\n * we haven't dealt with yet then we need to add them, or if the new children\n * collapse but we still have unhandled _old_ children then we need to make\n * sure the corresponding DOM nodes are removed.\n *\n * @param parentElm the node into which the parent VNode is rendered\n * @param oldCh the old children of the parent node\n * @param newVNode the new VNode which will replace the parent\n * @param newCh the new children of the parent node\n */\nconst updateChildren = (parentElm, oldCh, newVNode, newCh) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n // VNode might have been moved left\n oldStartVnode = oldCh[++oldStartIdx];\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newStartVnode)) {\n // if the start nodes are the same then we should patch the new VNode\n // onto the old one, and increment our `newStartIdx` and `oldStartIdx`\n // indices to reflect that. We don't need to move any DOM Nodes around\n // since things are matched up in order.\n patch(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n // likewise, if the end nodes are the same we patch new onto old and\n // decrement our end indices, and also likewise in this case we don't\n // need to move any DOM Nodes.\n patch(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newEndVnode)) {\n // case: \"Vnode moved right\"\n //\n // We've found that the last node in our window on the new children is\n // the same VNode as the _first_ node in our window on the old children\n // we're dealing with now. Visually, this is the layout of these two\n // nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^^^\n //\n // In this situation we need to patch `newEndVnode` onto `oldStartVnode`\n // and move the DOM element for `oldStartVnode`.\n if (BUILD.slotRelocation && (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode);\n // We need to move the element for `oldStartVnode` into a position which\n // will be appropriate for `newEndVnode`. For this we can use\n // `.insertBefore` and `oldEndVnode.$elm$.nextSibling`. If there is a\n // sibling for `oldEndVnode.$elm$` then we want to move the DOM node for\n // `oldStartVnode` between `oldEndVnode` and it's sibling, like so:\n //\n // <old-start-node />\n // <some-intervening-node />\n // <old-end-node />\n // <!-- -> <-- `oldStartVnode.$elm$` should be inserted here\n // <next-sibling />\n //\n // If instead `oldEndVnode.$elm$` has no sibling then we just want to put\n // the node for `oldStartVnode` at the end of the children of\n // `parentElm`. Luckily, `Node.nextSibling` will return `null` if there\n // aren't any siblings, and passing `null` to `Node.insertBefore` will\n // append it to the children of the parent element.\n parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldEndVnode, newStartVnode)) {\n // case: \"Vnode moved left\"\n //\n // We've found that the first node in our window on the new children is\n // the same VNode as the _last_ node in our window on the old children.\n // Visually, this is the layout of these two nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^\n //\n // In this situation we need to patch `newStartVnode` onto `oldEndVnode`\n // (which will handle updating any changed attributes, reconciling their\n // children etc) but we also need to move the DOM node to which\n // `oldEndVnode` corresponds.\n if (BUILD.slotRelocation && (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode);\n // We've already checked above if `oldStartVnode` and `newStartVnode` are\n // the same node, so since we're here we know that they are not. Thus we\n // can move the element for `oldEndVnode` _before_ the element for\n // `oldStartVnode`, leaving `oldStartVnode` to be reconciled in the\n // future.\n parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // Here we do some checks to match up old and new nodes based on the\n // `$key$` attribute, which is set by putting a `key=\"my-key\"` attribute\n // in the JSX for a DOM element in the implementation of a Stencil\n // component.\n //\n // First we check to see if there are any nodes in the array of old\n // children which have the same key as the first node in the new\n // children.\n idxInOld = -1;\n if (BUILD.vdomKey) {\n for (i = oldStartIdx; i <= oldEndIdx; ++i) {\n if (oldCh[i] && oldCh[i].$key$ !== null && oldCh[i].$key$ === newStartVnode.$key$) {\n idxInOld = i;\n break;\n }\n }\n }\n if (BUILD.vdomKey && idxInOld >= 0) {\n // We found a node in the old children which matches up with the first\n // node in the new children! So let's deal with that\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n // the tag doesn't match so we'll need a new DOM element\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);\n }\n else {\n patch(elmToMove, newStartVnode);\n // invalidate the matching old node so that we won't try to update it\n // again later on\n oldCh[idxInOld] = undefined;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // We either didn't find an element in the old children that matches\n // the key of the first new child OR the build is not using `key`\n // attributes at all. In either case we need to create a new element\n // for the new node.\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n // if we created a new node then handle inserting it to the DOM\n if (BUILD.slotRelocation) {\n parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));\n }\n else {\n oldStartVnode.$elm$.parentNode.insertBefore(node, oldStartVnode.$elm$);\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n // we have some more new nodes to add which don't match up with old nodes\n addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);\n }\n else if (BUILD.updatable && newStartIdx > newEndIdx) {\n // there are nodes in the `oldCh` array which no longer correspond to nodes\n // in the new array, so lets remove them (which entails cleaning up the\n // relevant DOM nodes)\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\n/**\n * Compare two VNodes to determine if they are the same\n *\n * **NB**: This function is an equality _heuristic_ based on the available\n * information set on the two VNodes and can be misleading under certain\n * circumstances. In particular, if the two nodes do not have `key` attrs\n * (available under `$key$` on VNodes) then the function falls back on merely\n * checking that they have the same tag.\n *\n * So, in other words, if `key` attrs are not set on VNodes which may be\n * changing order within a `children` array or something along those lines then\n * we could obtain a false negative and then have to do needless re-rendering\n * (i.e. we'd say two VNodes aren't equal when in fact they should be).\n *\n * @param leftVNode the first VNode to check\n * @param rightVNode the second VNode to check\n * @returns whether they're equal or not\n */\nconst isSameVnode = (leftVNode, rightVNode) => {\n // compare if two vnode to see if they're \"technically\" the same\n // need to have the same element tag, and same key to be the same\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (BUILD.slotRelocation && leftVNode.$tag$ === 'slot') {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n // this will be set if components in the build have `key` attrs set on them\n if (BUILD.vdomKey) {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n return true;\n }\n return false;\n};\nconst referenceNode = (node) => {\n // this node was relocated to a new location in the dom\n // because of some other component's slot\n // but we still have an html comment in place of where\n // it's original location was according to it's original vdom\n return (node && node['s-ol']) || node;\n};\nconst parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode;\n/**\n * Handle reconciling an outdated VNode with a new one which corresponds to\n * it. This function handles flushing updates to the DOM and reconciling the\n * children of the two nodes (if any).\n *\n * @param oldVNode an old VNode whose DOM element and children we want to update\n * @param newVNode a new VNode representing an updated version of the old one\n */\nconst patch = (oldVNode, newVNode) => {\n const elm = (newVNode.$elm$ = oldVNode.$elm$);\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode.$children$;\n const tag = newVNode.$tag$;\n const text = newVNode.$text$;\n let defaultHolder;\n if (!BUILD.vdomText || text === null) {\n if (BUILD.svg) {\n // test if we're rendering an svg element, or still rendering nodes inside of one\n // only add this to the when the compiler sees we're using an svg somewhere\n isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;\n }\n if (BUILD.vdomAttribute || BUILD.reflect) {\n if (BUILD.slot && tag === 'slot')\n ;\n else {\n // either this is the first render of an element OR it's an update\n // AND we already know it's possible it could have changed\n // this updates the element's css classes, attrs, props, listeners, etc.\n updateElement(oldVNode, newVNode, isSvgMode);\n }\n }\n if (BUILD.updatable && oldChildren !== null && newChildren !== null) {\n // looks like there's child vnodes for both the old and new vnodes\n // so we need to call `updateChildren` to reconcile them\n updateChildren(elm, oldChildren, newVNode, newChildren);\n }\n else if (newChildren !== null) {\n // no old child vnodes, but there are new child vnodes to add\n if (BUILD.updatable && BUILD.vdomText && oldVNode.$text$ !== null) {\n // the old vnode was text, so be sure to clear it out\n elm.textContent = '';\n }\n // add the new vnode children\n addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1);\n }\n else if (BUILD.updatable && oldChildren !== null) {\n // no new child vnodes, but there are old child vnodes to remove\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (BUILD.svg && isSvgMode && tag === 'svg') {\n isSvgMode = false;\n }\n }\n else if (BUILD.vdomText && BUILD.slotRelocation && (defaultHolder = elm['s-cr'])) {\n // this element has slotted content\n defaultHolder.parentNode.textContent = text;\n }\n else if (BUILD.vdomText && oldVNode.$text$ !== text) {\n // update the text content for the text only vnode\n // and also only if the text is different than before\n elm.data = text;\n }\n};\nconst updateFallbackSlotVisibility = (elm) => {\n // tslint:disable-next-line: prefer-const\n const childNodes = elm.childNodes;\n let childNode;\n let i;\n let ilen;\n let j;\n let slotNameAttr;\n let nodeType;\n for (i = 0, ilen = childNodes.length; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (childNode['s-sr']) {\n // this is a slot fallback node\n // get the slot name for this slot reference node\n slotNameAttr = childNode['s-sn'];\n // by default always show a fallback slot node\n // then hide it if there are other slots in the light dom\n childNode.hidden = false;\n for (j = 0; j < ilen; j++) {\n nodeType = childNodes[j].nodeType;\n if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {\n // this sibling node is from a different component OR is a named fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {\n childNode.hidden = true;\n break;\n }\n }\n else {\n // this is a default fallback slot node\n // any element or text node (with content)\n // should hide the default fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||\n (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {\n childNode.hidden = true;\n break;\n }\n }\n }\n }\n // keep drilling down\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nconst relocateNodes = [];\nconst relocateSlotContent = (elm) => {\n // tslint:disable-next-line: prefer-const\n let childNode;\n let node;\n let hostContentNodes;\n let slotNameAttr;\n let relocateNodeData;\n let j;\n let i = 0;\n const childNodes = elm.childNodes;\n const ilen = childNodes.length;\n for (; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {\n // first got the content reference comment node\n // then we got it's parent, which is where all the host content is in now\n hostContentNodes = node.parentNode.childNodes;\n slotNameAttr = childNode['s-sn'];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {\n // let's do some relocating to its new home\n // but never relocate a content reference node\n // that is suppose to always represent the original content location\n if (isNodeLocatedInSlot(node, slotNameAttr)) {\n // it's possible we've already decided to relocate this node\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n // made some changes to slots\n // let's make sure we also double check\n // fallbacks are correctly hidden or shown\n checkSlotFallbackVisibility = true;\n node['s-sn'] = node['s-sn'] || slotNameAttr;\n if (relocateNodeData) {\n // previously we never found a slot home for this node\n // but turns out we did, so let's remember it now\n relocateNodeData.$slotRefNode$ = childNode;\n }\n else {\n // add to our list of nodes to relocate\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node,\n });\n }\n if (node['s-sr']) {\n relocateNodes.map((relocateNode) => {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n }\n else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {\n // so far this element does not have a slot home, not setting slotRefNode on purpose\n // if we never find a home for this element then we'll need to hide it\n relocateNodes.push({\n $nodeToRelocate$: node,\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n relocateSlotContent(childNode);\n }\n }\n};\nconst isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {\n return true;\n }\n if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate['s-sn'] === slotNameAttr) {\n return true;\n }\n return slotNameAttr === '';\n};\nconst callNodeRefs = (vNode) => {\n if (BUILD.vdomRef) {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(callNodeRefs);\n }\n};\n/**\n * The main entry point for Stencil's virtual DOM-based rendering engine\n *\n * Given a {@link d.HostRef} container and some virtual DOM nodes, this\n * function will handle creating a virtual DOM tree with a single root, patching\n * the current virtual DOM tree onto an old one (if any), dealing with slot\n * relocation, and reflecting attributes.\n *\n * @param hostRef data needed to root and render the virtual DOM tree, such as\n * the DOM node into which it should be rendered.\n * @param renderFnResults the virtual DOM nodes to be rendered\n */\nconst renderVdom = (hostRef, renderFnResults) => {\n const hostElm = hostRef.$hostElement$;\n const cmpMeta = hostRef.$cmpMeta$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n // <Host> runtime check\n if (BUILD.isDev && Array.isArray(renderFnResults) && renderFnResults.some(isHost)) {\n throw new Error(`The <Host> must be the single root component.\nLooks like the render() function of \"${hostTagName.toLowerCase()}\" is returning an array that contains the <Host>.\n\nThe render() function should look like this instead:\n\nrender() {\n // Do not return an array\n return (\n <Host>{content}</Host>\n );\n}\n `);\n }\n if (BUILD.reflect && cmpMeta.$attrsToReflect$) {\n rootVnode.$attrs$ = rootVnode.$attrs$ || {};\n cmpMeta.$attrsToReflect$.map(([propName, attribute]) => (rootVnode.$attrs$[attribute] = hostElm[propName]));\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* VNODE_FLAGS.isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = (BUILD.shadowDom ? hostElm.shadowRoot || hostElm : hostElm);\n if (BUILD.scoped || BUILD.shadowDom) {\n scopeId = hostElm['s-sc'];\n }\n if (BUILD.slotRelocation) {\n contentRef = hostElm['s-cr'];\n useNativeShadowDom = supportsShadow && (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;\n // always reset\n checkSlotFallbackVisibility = false;\n }\n // synchronous patch\n patch(oldVNode, rootVnode);\n if (BUILD.slotRelocation) {\n // while we're moving nodes around existing nodes, temporarily disable\n // the disconnectCallback from working\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n if (checkSlotRelocate) {\n relocateSlotContent(rootVnode.$elm$);\n let relocateData;\n let nodeToRelocate;\n let orgLocationNode;\n let parentNodeRef;\n let insertBeforeNode;\n let refNode;\n let i = 0;\n for (; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate['s-ol']) {\n // add a reference node marking this node's original location\n // keep a reference to this node for later lookups\n orgLocationNode =\n BUILD.isDebug || BUILD.hydrateServerSide\n ? originalLocationDebugNode(nodeToRelocate)\n : doc.createTextNode('');\n orgLocationNode['s-nr'] = nodeToRelocate;\n nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);\n }\n }\n for (i = 0; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (relocateData.$slotRefNode$) {\n // by default we're just going to insert it directly\n // after the slot reference node\n parentNodeRef = relocateData.$slotRefNode$.parentNode;\n insertBeforeNode = relocateData.$slotRefNode$.nextSibling;\n orgLocationNode = nodeToRelocate['s-ol'];\n while ((orgLocationNode = orgLocationNode.previousSibling)) {\n refNode = orgLocationNode['s-nr'];\n if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {\n refNode = refNode.nextSibling;\n if (!refNode || !refNode['s-nr']) {\n insertBeforeNode = refNode;\n break;\n }\n }\n }\n if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||\n nodeToRelocate.nextSibling !== insertBeforeNode) {\n // we've checked that it's worth while to relocate\n // since that the node to relocate\n // has a different next sibling or parent relocated\n if (nodeToRelocate !== insertBeforeNode) {\n if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {\n // probably a component in the index.html that doesn't have it's hostname set\n nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;\n }\n // add it back to the dom but in its new home\n parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);\n }\n }\n }\n else {\n // this node doesn't have a slot home to go to, so let's hide it\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n // done moving nodes around\n // allow the disconnect callback to work again\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n // always reset\n relocateNodes.length = 0;\n }\n};\n// slot comment debug nodes only created with the `--debug` flag\n// otherwise these nodes are text nodes w/out content\nconst slotReferenceDebugNode = (slotVNode) => doc.createComment(`<slot${slotVNode.$name$ ? ' name=\"' + slotVNode.$name$ + '\"' : ''}> (host=${hostTagName.toLowerCase()})`);\nconst originalLocationDebugNode = (nodeToRelocate) => doc.createComment(`org-location for ` +\n (nodeToRelocate.localName\n ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate['s-hn']})`\n : `[${nodeToRelocate.textContent}]`));\nconst attachToAncestor = (hostRef, ancestorComponent) => {\n if (BUILD.asyncLoading && ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {\n ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r)));\n }\n};\nconst scheduleUpdate = (hostRef, isInitialLoad) => {\n if (BUILD.taskQueue && BUILD.updatable) {\n hostRef.$flags$ |= 16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n if (BUILD.asyncLoading && hostRef.$flags$ & 4 /* HOST_FLAGS.isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* HOST_FLAGS.needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n // there is no ancestor component or the ancestor component\n // has already fired off its lifecycle update then\n // fire off the initial update\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n return BUILD.taskQueue ? writeTask(dispatch) : dispatch();\n};\nconst dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n let promise;\n if (isInitialLoad) {\n if (BUILD.lazyLoad && BUILD.hostListener) {\n hostRef.$flags$ |= 256 /* HOST_FLAGS.isListenReady */;\n if (hostRef.$queuedListeners$) {\n hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event));\n hostRef.$queuedListeners$ = null;\n }\n }\n emitLifecycleEvent(elm, 'componentWillLoad');\n if (BUILD.cmpWillLoad) {\n promise = safeCall(instance, 'componentWillLoad');\n }\n }\n else {\n emitLifecycleEvent(elm, 'componentWillUpdate');\n if (BUILD.cmpWillUpdate) {\n promise = safeCall(instance, 'componentWillUpdate');\n }\n }\n emitLifecycleEvent(elm, 'componentWillRender');\n if (BUILD.cmpWillRender) {\n promise = then(promise, () => safeCall(instance, 'componentWillRender'));\n }\n endSchedule();\n return then(promise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\nconst updateComponent = async (hostRef, instance, isInitialLoad) => {\n // updateComponent\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);\n const rc = elm['s-rc'];\n if (BUILD.style && isInitialLoad) {\n // DOM WRITE!\n attachStyles(hostRef);\n }\n const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n if (BUILD.hydrateServerSide) {\n await callRender(hostRef, instance, elm);\n }\n else {\n callRender(hostRef, instance, elm);\n }\n if (BUILD.cssVarShim && plt.$cssShim$) {\n plt.$cssShim$.updateHost(elm);\n }\n if (BUILD.isDev) {\n hostRef.$renderCount$++;\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n if (BUILD.hydrateServerSide) {\n try {\n // manually connected child components during server-side hydrate\n serverSideConnected(elm);\n if (isInitialLoad) {\n // using only during server-side hydrate\n if (hostRef.$cmpMeta$.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n elm['s-en'] = '';\n }\n else if (hostRef.$cmpMeta$.$flags$ & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm['s-en'] = 'c';\n }\n }\n }\n catch (e) {\n consoleError(e, elm);\n }\n }\n if (BUILD.asyncLoading && rc) {\n // ok, so turns out there are some child host elements\n // waiting on this parent element to load\n // let's fire off all update callbacks waiting\n rc.map((cb) => cb());\n elm['s-rc'] = undefined;\n }\n endRender();\n endUpdate();\n if (BUILD.asyncLoading) {\n const childrenPromises = elm['s-p'];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n }\n else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* HOST_FLAGS.isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n else {\n postUpdateComponent(hostRef);\n }\n};\nconst callRender = (hostRef, instance, elm) => {\n // in order for bundlers to correctly treeshake the BUILD object\n // we need to ensure BUILD is not deoptimized within a try/catch\n // https://rollupjs.org/guide/en/#treeshake tryCatchDeoptimization\n const allRenderFn = BUILD.allRenderFn ? true : false;\n const lazyLoad = BUILD.lazyLoad ? true : false;\n const taskQueue = BUILD.taskQueue ? true : false;\n const updatable = BUILD.updatable ? true : false;\n try {\n renderingRef = instance;\n instance = allRenderFn ? instance.render() : instance.render && instance.render();\n if (updatable && taskQueue) {\n hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n if (updatable || lazyLoad) {\n hostRef.$flags$ |= 2 /* HOST_FLAGS.hasRendered */;\n }\n if (BUILD.hasRenderFn || BUILD.reflect) {\n if (BUILD.vdomRender || BUILD.reflect) {\n // looks like we've got child nodes to render into this host element\n // or we need to update the css class/attrs on the host element\n // DOM WRITE!\n if (BUILD.hydrateServerSide) {\n return Promise.resolve(instance).then((value) => renderVdom(hostRef, value));\n }\n else {\n renderVdom(hostRef, instance);\n }\n }\n else {\n elm.textContent = instance;\n }\n }\n }\n catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n renderingRef = null;\n return null;\n};\nconst getRenderingRef = () => renderingRef;\nconst postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime('postUpdate', tagName);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n const ancestorComponent = hostRef.$ancestorComponent$;\n if (BUILD.cmpDidRender) {\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n safeCall(instance, 'componentDidRender');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidRender');\n if (!(hostRef.$flags$ & 64 /* HOST_FLAGS.hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* HOST_FLAGS.hasLoadedComponent */;\n if (BUILD.asyncLoading && BUILD.cssAnnotations) {\n // DOM WRITE!\n addHydratedFlag(elm);\n }\n if (BUILD.cmpDidLoad) {\n if (BUILD.isDev) {\n hostRef.$flags$ |= 2048 /* HOST_FLAGS.devOnDidLoad */;\n }\n safeCall(instance, 'componentDidLoad');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~2048 /* HOST_FLAGS.devOnDidLoad */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidLoad');\n endPostUpdate();\n if (BUILD.asyncLoading) {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad(tagName);\n }\n }\n }\n else {\n if (BUILD.cmpDidUpdate) {\n // we've already loaded this component\n // fire off the user's componentDidUpdate method (if one was provided)\n // componentDidUpdate runs AFTER render() has been called\n // and all child components have finished updating\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n safeCall(instance, 'componentDidUpdate');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidUpdate');\n endPostUpdate();\n }\n if (BUILD.hotModuleReplacement) {\n elm['s-hmr-load'] && elm['s-hmr-load']();\n }\n if (BUILD.method && BUILD.lazyLoad) {\n hostRef.$onInstanceResolve$(elm);\n }\n // load events fire from bottom to top\n // the deepest elements load first then bubbles up\n if (BUILD.asyncLoading) {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = undefined;\n }\n if (hostRef.$flags$ & 512 /* HOST_FLAGS.needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= ~(4 /* HOST_FLAGS.isWaitingForChildren */ | 512 /* HOST_FLAGS.needsRerender */);\n }\n // ( •_•)\n // ( •_•)>⌐■-■\n // (⌐■_■)\n};\nconst forceUpdate = (ref) => {\n if (BUILD.updatable) {\n const hostRef = getHostRef(ref);\n const isConnected = hostRef.$hostElement$.isConnected;\n if (isConnected &&\n (hostRef.$flags$ & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n // Returns \"true\" when the forced update was successfully scheduled\n return isConnected;\n }\n return false;\n};\nconst appDidLoad = (who) => {\n // on appload\n // we have finish the first big initial render\n if (BUILD.cssAnnotations) {\n addHydratedFlag(doc.documentElement);\n }\n if (BUILD.asyncQueue) {\n plt.$flags$ |= 2 /* PLATFORM_FLAGS.appLoaded */;\n }\n nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));\n if (BUILD.profile && performance.measure) {\n performance.measure(`[Stencil] ${NAMESPACE} initial load (by ${who})`, 'st:app:start');\n }\n};\nconst safeCall = (instance, method, arg) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n }\n catch (e) {\n consoleError(e);\n }\n }\n return undefined;\n};\nconst then = (promise, thenFn) => {\n return promise && promise.then ? promise.then(thenFn) : thenFn();\n};\nconst emitLifecycleEvent = (elm, lifecycleName) => {\n if (BUILD.lifecycleDOMEvents) {\n emitEvent(elm, 'stencil_' + lifecycleName, {\n bubbles: true,\n composed: true,\n detail: {\n namespace: NAMESPACE,\n },\n });\n }\n};\nconst addHydratedFlag = (elm) => BUILD.hydratedClass\n ? elm.classList.add('hydrated')\n : BUILD.hydratedAttribute\n ? elm.setAttribute('hydrated', '')\n : undefined;\nconst serverSideConnected = (elm) => {\n const children = elm.children;\n if (children != null) {\n for (let i = 0, ii = children.length; i < ii; i++) {\n const childElm = children[i];\n if (typeof childElm.connectedCallback === 'function') {\n childElm.connectedCallback();\n }\n serverSideConnected(childElm);\n }\n }\n};\nconst getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nconst setValue = (ref, propName, newVal, cmpMeta) => {\n // check our new property value against our internal value\n const hostRef = getHostRef(ref);\n const elm = BUILD.lazyLoad ? hostRef.$hostElement$ : ref;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n // explicitly check for NaN on both sides, as `NaN === NaN` is always false\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if ((!BUILD.lazyLoad || !(flags & 8 /* HOST_FLAGS.isConstructingInstance */) || oldVal === undefined) && didValueChange) {\n // gadzooks! the property's value has changed!!\n // set our new value!\n hostRef.$instanceValues$.set(propName, newVal);\n if (BUILD.isDev) {\n if (hostRef.$flags$ & 1024 /* HOST_FLAGS.devOnRender */) {\n consoleDevWarn(`The state/prop \"${propName}\" changed during rendering. This can potentially lead to infinite-loops and other bugs.`, '\\nElement', elm, '\\nNew value', newVal, '\\nOld value', oldVal);\n }\n else if (hostRef.$flags$ & 2048 /* HOST_FLAGS.devOnDidLoad */) {\n consoleDevWarn(`The state/prop \"${propName}\" changed during \"componentDidLoad()\", this triggers extra re-renders, try to setup on \"componentWillLoad()\"`, '\\nElement', elm, '\\nNew value', newVal, '\\nOld value', oldVal);\n }\n }\n if (!BUILD.lazyLoad || instance) {\n // get an array of method names of watch functions to call\n if (BUILD.watchCallback && cmpMeta.$watchers$ && flags & 128 /* HOST_FLAGS.isWatchReady */) {\n const watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n // this instance is watching for when this property changed\n watchMethods.map((watchMethodName) => {\n try {\n // fire off each of the watch methods that are watching this property\n instance[watchMethodName](newVal, oldVal, propName);\n }\n catch (e) {\n consoleError(e, elm);\n }\n });\n }\n }\n if (BUILD.updatable &&\n (flags & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n if (BUILD.cmpShouldUpdate && instance.componentShouldUpdate) {\n if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {\n return;\n }\n }\n // looks like this value actually changed, so we've got work to do!\n // but only if we've already rendered, otherwise just chill out\n // queue that we need to do an update, but don't worry about queuing\n // up millions cuz this function ensures it only runs once\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\n/**\n * Attach a series of runtime constructs to a compiled Stencil component\n * constructor, including getters and setters for the `@Prop` and `@State`\n * decorators, callbacks for when attributes change, and so on.\n *\n * @param Cstr the constructor for a component that we need to process\n * @param cmpMeta metadata collected previously about the component\n * @param flags a number used to store a series of bit flags\n * @returns a reference to the same constructor passed in (but now mutated)\n */\nconst proxyComponent = (Cstr, cmpMeta, flags) => {\n if (BUILD.member && cmpMeta.$members$) {\n if (BUILD.watchCallback && Cstr.watchers) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n // It's better to have a const than two Object.entries()\n const members = Object.entries(cmpMeta.$members$);\n const prototype = Cstr.prototype;\n members.map(([memberName, [memberFlags]]) => {\n if ((BUILD.prop || BUILD.state) &&\n (memberFlags & 31 /* MEMBER_FLAGS.Prop */ ||\n ((!BUILD.lazyLoad || flags & 2 /* PROXY_FLAGS.proxyState */) && memberFlags & 32 /* MEMBER_FLAGS.State */))) {\n // proxyComponent - prop\n Object.defineProperty(prototype, memberName, {\n get() {\n // proxyComponent, get value\n return getValue(this, memberName);\n },\n set(newValue) {\n // only during dev time\n if (BUILD.isDev) {\n const ref = getHostRef(this);\n if (\n // we are proxying the instance (not element)\n (flags & 1 /* PROXY_FLAGS.isElementConstructor */) === 0 &&\n // the element is not constructing\n (ref.$flags$ & 8 /* HOST_FLAGS.isConstructingInstance */) === 0 &&\n // the member is a prop\n (memberFlags & 31 /* MEMBER_FLAGS.Prop */) !== 0 &&\n // the member is not mutable\n (memberFlags & 1024 /* MEMBER_FLAGS.Mutable */) === 0) {\n consoleDevWarn(`@Prop() \"${memberName}\" on <${cmpMeta.$tagName$}> is immutable but was modified from within the component.\\nMore information: https://stenciljs.com/docs/properties#prop-mutability`);\n }\n }\n // proxyComponent, set value\n setValue(this, memberName, newValue, cmpMeta);\n },\n configurable: true,\n enumerable: true,\n });\n }\n else if (BUILD.lazyLoad &&\n BUILD.method &&\n flags & 1 /* PROXY_FLAGS.isElementConstructor */ &&\n memberFlags & 64 /* MEMBER_FLAGS.Method */) {\n // proxyComponent - method\n Object.defineProperty(prototype, memberName, {\n value(...args) {\n const ref = getHostRef(this);\n return ref.$onInstancePromise$.then(() => ref.$lazyInstance$[memberName](...args));\n },\n });\n }\n });\n if (BUILD.observeAttribute && (!BUILD.lazyLoad || flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {\n const attrNameToPropName = new Map();\n prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {\n plt.jmp(() => {\n const propName = attrNameToPropName.get(attrName);\n // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback\n // in the case where an attribute was set inline.\n // ```html\n // <my-component some-attribute=\"some-value\"></my-component>\n // ```\n //\n // There is an edge case where a developer sets the attribute inline on a custom element and then\n // programmatically changes it before it has been upgraded as shown below:\n //\n // ```html\n // <!-- this component has _not_ been upgraded yet -->\n // <my-component id=\"test\" some-attribute=\"some-value\"></my-component>\n // <script>\n // // grab non-upgraded component\n // el = document.querySelector(\"#test\");\n // el.someAttribute = \"another-value\";\n // // upgrade component\n // customElements.define('my-component', MyComponent);\n // </script>\n // ```\n // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback\n // will be called with `newValue = \"some-value\"` and will set the shadowed property (this.someAttribute = \"another-value\")\n // to the value that was set inline i.e. \"some-value\" from above example. When\n // the connectedCallback attempts to unshadow it will use \"some-value\" as the initial value rather than \"another-value\"\n //\n // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed\n // by connectedCallback as this attributeChangedCallback will not fire.\n //\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n //\n // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to\n // properties here given that this goes against best practices outlined here\n // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy\n if (this.hasOwnProperty(propName)) {\n newValue = this[propName];\n delete this[propName];\n }\n else if (prototype.hasOwnProperty(propName) &&\n typeof this[propName] === 'number' &&\n this[propName] == newValue) {\n // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native\n // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in\n // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.\n return;\n }\n this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;\n });\n };\n // create an array of attributes to observe\n // and also create a map of html attribute name to js property name\n Cstr.observedAttributes = members\n .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes\n .map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n if (BUILD.reflect && m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {\n cmpMeta.$attrsToReflect$.push([propName, attrName]);\n }\n return attrName;\n });\n }\n }\n return Cstr;\n};\nconst initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {\n // initializeComponent\n if ((BUILD.lazyLoad || BUILD.hydrateServerSide || BUILD.style) &&\n (hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {\n if (BUILD.lazyLoad || BUILD.hydrateClientSide) {\n // we haven't initialized this element yet\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n // lazy loaded components\n // request the component's implementation to be\n // wired up with the host element\n Cstr = loadModule(cmpMeta, hostRef, hmrVersionId);\n if (Cstr.then) {\n // Await creates a micro-task avoid if possible\n const endLoad = uniqueTime(`st:load:${cmpMeta.$tagName$}:${hostRef.$modeName$}`, `[Stencil] Load module for <${cmpMeta.$tagName$}>`);\n Cstr = await Cstr;\n endLoad();\n }\n if ((BUILD.isDev || BUILD.isDebug) && !Cstr) {\n throw new Error(`Constructor for \"${cmpMeta.$tagName$}#${hostRef.$modeName$}\" was not found`);\n }\n if (BUILD.member && !Cstr.isProxied) {\n // we've never proxied this Constructor before\n // let's add the getters/setters to its prototype before\n // the first time we create an instance of the implementation\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* PROXY_FLAGS.proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime('createInstance', cmpMeta.$tagName$);\n // ok, time to construct the instance\n // but let's keep track of when we start and stop\n // so that the getters/setters don't incorrectly step on data\n if (BUILD.member) {\n hostRef.$flags$ |= 8 /* HOST_FLAGS.isConstructingInstance */;\n }\n // construct the lazy-loaded component implementation\n // passing the hostRef is very important during\n // construction in order to directly wire together the\n // host element and the lazy-loaded instance\n try {\n new Cstr(hostRef);\n }\n catch (e) {\n consoleError(e);\n }\n if (BUILD.member) {\n hostRef.$flags$ &= ~8 /* HOST_FLAGS.isConstructingInstance */;\n }\n if (BUILD.watchCallback) {\n hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */;\n }\n endNewInstance();\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n else {\n // sync constructor component\n Cstr = elm.constructor;\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n // wait for the CustomElementRegistry to mark the component as ready before setting `isWatchReady`. Otherwise,\n // watchers may fire prematurely if `customElements.get()`/`customElements.whenDefined()` resolves _before_\n // Stencil has completed instantiating the component.\n customElements.whenDefined(cmpMeta.$tagName$).then(() => (hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */));\n }\n if (BUILD.style && Cstr.style) {\n // this component has styles but we haven't registered them yet\n let style = Cstr.style;\n if (BUILD.mode && typeof style !== 'string') {\n style = style[(hostRef.$modeName$ = computeMode(elm))];\n if (BUILD.hydrateServerSide && hostRef.$modeName$) {\n elm.setAttribute('s-mode', hostRef.$modeName$);\n }\n }\n const scopeId = getScopeId(cmpMeta, hostRef.$modeName$);\n if (!styles.has(scopeId)) {\n const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);\n if (!BUILD.hydrateServerSide &&\n BUILD.shadowDom &&\n BUILD.shadowDomShim &&\n cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) {\n style = await import('./shadow-css.js').then((m) => m.scopeCss(style, scopeId, false));\n }\n registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n // we've successfully created a lazy instance\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (BUILD.asyncLoading && ancestorComponent && ancestorComponent['s-rc']) {\n // this is the initial load and this component it has an ancestor component\n // but the ancestor component has NOT fired its will update lifecycle yet\n // so let's just cool our jets and wait for the ancestor to continue first\n // this will get fired off when the ancestor component\n // finally gets around to rendering its lazy self\n // fire off the initial update\n ancestorComponent['s-rc'].push(schedule);\n }\n else {\n schedule();\n }\n};\nconst fireConnectedCallback = (instance) => {\n if (BUILD.lazyLoad && BUILD.connectedCallback) {\n safeCall(instance, 'connectedCallback');\n }\n};\nconst connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime('connectedCallback', cmpMeta.$tagName$);\n if (BUILD.hostListenerTargetParent) {\n // only run if we have listeners being attached to a parent\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, true);\n }\n if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {\n // first time this component has connected\n hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;\n let hostId;\n if (BUILD.hydrateClientSide) {\n hostId = elm.getAttribute(HYDRATE_ID);\n if (hostId) {\n if (BUILD.shadowDom && supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n const scopeId = BUILD.mode\n ? addStyle(elm.shadowRoot, cmpMeta, elm.getAttribute('s-mode'))\n : addStyle(elm.shadowRoot, cmpMeta);\n elm.classList.remove(scopeId + '-h', scopeId + '-s');\n }\n initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef);\n }\n }\n if (BUILD.slotRelocation && !hostId) {\n // initUpdate\n // if the slot polyfill is required we'll need to put some nodes\n // in here to act as original content anchors as we move nodes around\n // host element has been connected to the DOM\n if (BUILD.hydrateServerSide ||\n ((BUILD.slot || BUILD.shadowDom) &&\n cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {\n setContentReference(elm);\n }\n }\n if (BUILD.asyncLoading) {\n // find the first ancestor component (if there is one) and register\n // this component as one of the actively loading child components for its ancestor\n let ancestorComponent = elm;\n while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {\n // climb up the ancestors looking for the first\n // component that hasn't finished its lifecycle update yet\n if ((BUILD.hydrateClientSide &&\n ancestorComponent.nodeType === 1 /* NODE_TYPE.ElementNode */ &&\n ancestorComponent.hasAttribute('s-id') &&\n ancestorComponent['s-p']) ||\n ancestorComponent['s-p']) {\n // we found this components first ancestor component\n // keep a reference to this component's ancestor component\n attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));\n break;\n }\n }\n }\n // Lazy properties\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n if (BUILD.prop && !BUILD.hydrateServerSide && cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* MEMBER_FLAGS.Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n if (BUILD.initializeNextTick) {\n // connectedCallback, taskQueue, initialLoad\n // angular sets attribute AFTER connectCallback\n // https://github.com/angular/angular/issues/18909\n // https://github.com/angular/angular/issues/19940\n nextTick(() => initializeComponent(elm, hostRef, cmpMeta));\n }\n else {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n }\n else {\n // not the first time this has connected\n // reattach any event listeners to the host\n // since they would have been removed when disconnected\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false);\n // fire off connectedCallback() on component instance\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n endConnected();\n }\n};\nconst setContentReference = (elm) => {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n const contentRefElm = (elm['s-cr'] = doc.createComment(BUILD.isDebug ? `content-ref (host=${elm.localName})` : ''));\n contentRefElm['s-cn'] = true;\n elm.insertBefore(contentRefElm, elm.firstChild);\n};\nconst disconnectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n if (BUILD.hostListener) {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map((rmListener) => rmListener());\n hostRef.$rmListeners$ = undefined;\n }\n }\n // clear CSS var-shim tracking\n if (BUILD.cssVarShim && plt.$cssShim$) {\n plt.$cssShim$.removeHost(elm);\n }\n if (BUILD.lazyLoad && BUILD.disconnectedCallback) {\n safeCall(instance, 'disconnectedCallback');\n }\n if (BUILD.cmpDidUnload) {\n safeCall(instance, 'componentDidUnload');\n }\n }\n};\nconst defineCustomElement = (Cstr, compactMeta) => {\n customElements.define(compactMeta[1], proxyCustomElement(Cstr, compactMeta));\n};\nconst proxyCustomElement = (Cstr, compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n };\n if (BUILD.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = Cstr.$watchers$;\n }\n if (BUILD.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */;\n }\n const originalConnectedCallback = Cstr.prototype.connectedCallback;\n const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback;\n Object.assign(Cstr.prototype, {\n __registerHost() {\n registerHost(this, cmpMeta);\n },\n connectedCallback() {\n connectedCallback(this);\n if (BUILD.connectedCallback && originalConnectedCallback) {\n originalConnectedCallback.call(this);\n }\n },\n disconnectedCallback() {\n disconnectedCallback(this);\n if (BUILD.disconnectedCallback && originalDisconnectedCallback) {\n originalDisconnectedCallback.call(this);\n }\n },\n __attachShadow() {\n if (supportsShadow) {\n if (BUILD.shadowDelegatesFocus) {\n this.attachShadow({\n mode: 'open',\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */),\n });\n }\n else {\n this.attachShadow({ mode: 'open' });\n }\n }\n else {\n this.shadowRoot = this;\n }\n },\n });\n Cstr.is = cmpMeta.$tagName$;\n return proxyComponent(Cstr, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */ | 2 /* PROXY_FLAGS.proxyState */);\n};\nconst forceModeUpdate = (elm) => {\n if (BUILD.style && BUILD.mode && !BUILD.lazyLoad) {\n const mode = computeMode(elm);\n const hostRef = getHostRef(elm);\n if (hostRef.$modeName$ !== mode) {\n const cmpMeta = hostRef.$cmpMeta$;\n const oldScopeId = elm['s-sc'];\n const scopeId = getScopeId(cmpMeta, mode);\n const style = elm.constructor.style[mode];\n const flags = cmpMeta.$flags$;\n if (style) {\n if (!styles.has(scopeId)) {\n registerStyle(scopeId, style, !!(flags & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n }\n hostRef.$modeName$ = mode;\n elm.classList.remove(oldScopeId + '-h', oldScopeId + '-s');\n attachStyles(hostRef);\n forceUpdate(elm);\n }\n }\n }\n};\nconst patchCloneNode = (HostElementPrototype) => {\n const orgCloneNode = HostElementPrototype.cloneNode;\n HostElementPrototype.cloneNode = function (deep) {\n const srcNode = this;\n const isShadowDom = BUILD.shadowDom ? srcNode.shadowRoot && supportsShadow : false;\n const clonedNode = orgCloneNode.call(srcNode, isShadowDom ? deep : false);\n if (BUILD.slot && !isShadowDom && deep) {\n let i = 0;\n let slotted, nonStencilNode;\n const stencilPrivates = [\n 's-id',\n 's-cr',\n 's-lr',\n 's-rc',\n 's-sc',\n 's-p',\n 's-cn',\n 's-sr',\n 's-sn',\n 's-hn',\n 's-ol',\n 's-nr',\n 's-si',\n ];\n for (; i < srcNode.childNodes.length; i++) {\n slotted = srcNode.childNodes[i]['s-nr'];\n nonStencilNode = stencilPrivates.every((privateField) => !srcNode.childNodes[i][privateField]);\n if (slotted) {\n if (BUILD.appendChildSlotFix && clonedNode.__appendChild) {\n clonedNode.__appendChild(slotted.cloneNode(true));\n }\n else {\n clonedNode.appendChild(slotted.cloneNode(true));\n }\n }\n if (nonStencilNode) {\n clonedNode.appendChild(srcNode.childNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nconst patchSlotAppendChild = (HostElementPrototype) => {\n HostElementPrototype.__appendChild = HostElementPrototype.appendChild;\n HostElementPrototype.appendChild = function (newChild) {\n const slotName = (newChild['s-sn'] = getSlotName(newChild));\n const slotNode = getHostSlotNode(this.childNodes, slotName);\n if (slotNode) {\n const slotChildNodes = getHostSlotChildNodes(slotNode, slotName);\n const appendAfter = slotChildNodes[slotChildNodes.length - 1];\n return appendAfter.parentNode.insertBefore(newChild, appendAfter.nextSibling);\n }\n return this.__appendChild(newChild);\n };\n};\n/**\n * Patches the text content of an unnamed slotted node inside a scoped component\n * @param hostElementPrototype the `Element` to be patched\n * @param cmpMeta component runtime metadata used to determine if the component should be patched or not\n */\nconst patchTextContent = (hostElementPrototype, cmpMeta) => {\n if (BUILD.scoped && cmpMeta.$flags$ & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n const descriptor = Object.getOwnPropertyDescriptor(Node.prototype, 'textContent');\n Object.defineProperty(hostElementPrototype, '__textContent', descriptor);\n Object.defineProperty(hostElementPrototype, 'textContent', {\n get() {\n var _a;\n // get the 'default slot', which would be the first slot in a shadow tree (if we were using one), whose name is\n // the empty string\n const slotNode = getHostSlotNode(this.childNodes, '');\n // when a slot node is found, the textContent _may_ be found in the next sibling (text) node, depending on how\n // nodes were reordered during the vdom render. first try to get the text content from the sibling.\n if (((_a = slotNode === null || slotNode === void 0 ? void 0 : slotNode.nextSibling) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* NODE_TYPES.TEXT_NODE */) {\n return slotNode.nextSibling.textContent;\n }\n else if (slotNode) {\n return slotNode.textContent;\n }\n else {\n // fallback to the original implementation\n return this.__textContent;\n }\n },\n set(value) {\n var _a;\n // get the 'default slot', which would be the first slot in a shadow tree (if we were using one), whose name is\n // the empty string\n const slotNode = getHostSlotNode(this.childNodes, '');\n // when a slot node is found, the textContent _may_ need to be placed in the next sibling (text) node,\n // depending on how nodes were reordered during the vdom render. first try to set the text content on the\n // sibling.\n if (((_a = slotNode === null || slotNode === void 0 ? void 0 : slotNode.nextSibling) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* NODE_TYPES.TEXT_NODE */) {\n slotNode.nextSibling.textContent = value;\n }\n else if (slotNode) {\n slotNode.textContent = value;\n }\n else {\n // we couldn't find a slot, but that doesn't mean that there isn't one. if this check ran before the DOM\n // loaded, we could have missed it. check for a content reference element on the scoped component and insert\n // it there\n this.__textContent = value;\n const contentRefElm = this['s-cr'];\n if (contentRefElm) {\n this.insertBefore(contentRefElm, this.firstChild);\n }\n }\n },\n });\n }\n};\nconst patchChildSlotNodes = (elm, cmpMeta) => {\n class FakeNodeList extends Array {\n item(n) {\n return this[n];\n }\n }\n if (cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) {\n const childNodesFn = elm.__lookupGetter__('childNodes');\n Object.defineProperty(elm, 'children', {\n get() {\n return this.childNodes.map((n) => n.nodeType === 1);\n },\n });\n Object.defineProperty(elm, 'childElementCount', {\n get() {\n return elm.children.length;\n },\n });\n Object.defineProperty(elm, 'childNodes', {\n get() {\n const childNodes = childNodesFn.call(this);\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0 &&\n getHostRef(this).$flags$ & 2 /* HOST_FLAGS.hasRendered */) {\n const result = new FakeNodeList();\n for (let i = 0; i < childNodes.length; i++) {\n const slot = childNodes[i]['s-nr'];\n if (slot) {\n result.push(slot);\n }\n }\n return result;\n }\n return FakeNodeList.from(childNodes);\n },\n });\n }\n};\nconst getSlotName = (node) => node['s-sn'] || (node.nodeType === 1 && node.getAttribute('slot')) || '';\n/**\n * Recursively searches a series of child nodes for a slot with the provided name.\n * @param childNodes the nodes to search for a slot with a specific name.\n * @param slotName the name of the slot to match on.\n * @returns a reference to the slot node that matches the provided name, `null` otherwise\n */\nconst getHostSlotNode = (childNodes, slotName) => {\n let i = 0;\n let childNode;\n for (; i < childNodes.length; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && childNode['s-sn'] === slotName) {\n return childNode;\n }\n childNode = getHostSlotNode(childNode.childNodes, slotName);\n if (childNode) {\n return childNode;\n }\n }\n return null;\n};\nconst getHostSlotChildNodes = (n, slotName) => {\n const childNodes = [n];\n while ((n = n.nextSibling) && n['s-sn'] === slotName) {\n childNodes.push(n);\n }\n return childNodes;\n};\nconst hmrStart = (elm, cmpMeta, hmrVersionId) => {\n // ¯\\_(ツ)_/¯\n const hostRef = getHostRef(elm);\n // reset state flags to only have been connected\n hostRef.$flags$ = 1 /* HOST_FLAGS.hasConnected */;\n // TODO\n // detatch any event listeners that may have been added\n // because we're not passing an exact event name it'll\n // remove all of this element's event, which is good\n // create a callback for when this component finishes hmr\n elm['s-hmr-load'] = () => {\n // finished hmr for this element\n delete elm['s-hmr-load'];\n };\n // re-initialize the component\n initializeComponent(elm, hostRef, cmpMeta, hmrVersionId);\n};\nconst bootstrapLazy = (lazyBundles, options = {}) => {\n var _a;\n if (BUILD.profile && performance.mark) {\n performance.mark('st:app:start');\n }\n installDevTools();\n const endBootstrap = createTime('bootstrapLazy');\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements = win.customElements;\n const head = doc.head;\n const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');\n const visibilityStyle = /*@__PURE__*/ doc.createElement('style');\n const deferredConnectedCallbacks = [];\n const styles = /*@__PURE__*/ doc.querySelectorAll(`[${HYDRATED_STYLE_ID}]`);\n let appLoadFallback;\n let isBootstrapping = true;\n let i = 0;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;\n if (BUILD.asyncQueue) {\n if (options.syncQueue) {\n plt.$flags$ |= 4 /* PLATFORM_FLAGS.queueSync */;\n }\n }\n if (BUILD.hydrateClientSide) {\n // If the app is already hydrated there is not point to disable the\n // async queue. This will improve the first input delay\n plt.$flags$ |= 2 /* PLATFORM_FLAGS.appLoaded */;\n }\n if (BUILD.hydrateClientSide && BUILD.shadowDom) {\n for (; i < styles.length; i++) {\n registerStyle(styles[i].getAttribute(HYDRATED_STYLE_ID), convertScopedToShadow(styles[i].innerHTML), true);\n }\n }\n lazyBundles.map((lazyBundle) => {\n lazyBundle[1].map((compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3],\n };\n if (BUILD.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = {};\n }\n if (BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */;\n }\n const tagName = BUILD.transformTagName && options.transformTagName\n ? options.transformTagName(cmpMeta.$tagName$)\n : cmpMeta.$tagName$;\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n // @ts-ignore\n super(self);\n self = this;\n registerHost(self, cmpMeta);\n if (BUILD.shadowDom && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n // this component is using shadow dom\n // and this browser supports shadow dom\n // add the read-only property \"shadowRoot\" to the host element\n // adding the shadow root build conditionals to minimize runtime\n if (supportsShadow) {\n if (BUILD.shadowDelegatesFocus) {\n self.attachShadow({\n mode: 'open',\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */),\n });\n }\n else {\n self.attachShadow({ mode: 'open' });\n }\n }\n else if (!BUILD.hydrateServerSide && !('shadowRoot' in self)) {\n self.shadowRoot = self;\n }\n }\n if (BUILD.slotChildNodesFix) {\n patchChildSlotNodes(self, cmpMeta);\n }\n }\n connectedCallback() {\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n // connectedCallback will be processed once all components have been registered\n deferredConnectedCallbacks.push(this);\n }\n else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n }\n componentOnReady() {\n return getHostRef(this).$onReadyPromise$;\n }\n };\n if (BUILD.cloneNodeFix) {\n patchCloneNode(HostElement.prototype);\n }\n if (BUILD.appendChildSlotFix) {\n patchSlotAppendChild(HostElement.prototype);\n }\n if (BUILD.hotModuleReplacement) {\n HostElement.prototype['s-hmr'] = function (hmrVersionId) {\n hmrStart(this, cmpMeta, hmrVersionId);\n };\n }\n if (BUILD.scopedSlotTextContentFix) {\n patchTextContent(HostElement.prototype, cmpMeta);\n }\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements.get(tagName)) {\n cmpTags.push(tagName);\n customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */));\n }\n });\n });\n if (BUILD.invisiblePrehydration && (BUILD.hydratedClass || BUILD.hydratedAttribute)) {\n visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;\n visibilityStyle.setAttribute('data-styles', '');\n // Apply CSP nonce to the style tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n visibilityStyle.setAttribute('nonce', nonce);\n }\n head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n // Process deferred connectedCallbacks now all components have been registered\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map((host) => host.connectedCallback());\n }\n else {\n if (BUILD.profile) {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30, 'timeout')));\n }\n else {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30)));\n }\n }\n // Fallback appLoad event\n endBootstrap();\n};\nconst getConnect = (_ref, tagName) => {\n const componentOnReady = () => {\n let elm = doc.querySelector(tagName);\n if (!elm) {\n elm = doc.createElement(tagName);\n doc.body.appendChild(elm);\n }\n return typeof elm.componentOnReady === 'function' ? elm.componentOnReady() : Promise.resolve(elm);\n };\n const create = (...args) => {\n return componentOnReady().then((el) => el.create(...args));\n };\n return {\n create,\n componentOnReady,\n };\n};\nconst getContext = (_elm, context) => {\n if (context in Context) {\n return Context[context];\n }\n else if (context === 'window') {\n return win;\n }\n else if (context === 'document') {\n return doc;\n }\n else if (context === 'isServer' || context === 'isPrerender') {\n return BUILD.hydrateServerSide ? true : false;\n }\n else if (context === 'isClient') {\n return BUILD.hydrateServerSide ? false : true;\n }\n else if (context === 'resourcesUrl' || context === 'publicPath') {\n return getAssetPath('.');\n }\n else if (context === 'queue') {\n return {\n write: writeTask,\n read: readTask,\n tick: {\n then(cb) {\n return nextTick(cb);\n },\n },\n };\n }\n return undefined;\n};\nconst Fragment = (_, children) => children;\nconst addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {\n if (BUILD.hostListener && listeners) {\n // this is called immediately within the element's constructor\n // initialize our event listeners on the host element\n // we do this now so that we can listen to events that may\n // have fired even before the instance is ready\n if (BUILD.hostListenerTargetParent) {\n // this component may have event listeners that should be attached to the parent\n if (attachParentListeners) {\n // this is being ran from within the connectedCallback\n // which is important so that we know the host element actually has a parent element\n // filter out the listeners to only have the ones that ARE being attached to the parent\n listeners = listeners.filter(([flags]) => flags & 32 /* LISTENER_FLAGS.TargetParent */);\n }\n else {\n // this is being ran from within the component constructor\n // everything BUT the parent element listeners should be attached at this time\n // filter out the listeners that are NOT being attached to the parent\n listeners = listeners.filter(([flags]) => !(flags & 32 /* LISTENER_FLAGS.TargetParent */));\n }\n }\n listeners.map(([flags, name, method]) => {\n const target = BUILD.hostListenerTarget ? getHostListenerTarget(elm, flags) : elm;\n const handler = hostListenerProxy(hostRef, method);\n const opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));\n });\n }\n};\nconst hostListenerProxy = (hostRef, methodName) => (ev) => {\n try {\n if (BUILD.lazyLoad) {\n if (hostRef.$flags$ & 256 /* HOST_FLAGS.isListenReady */) {\n // instance is ready, let's call it's member method for this event\n hostRef.$lazyInstance$[methodName](ev);\n }\n else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n }\n else {\n hostRef.$hostElement$[methodName](ev);\n }\n }\n catch (e) {\n consoleError(e);\n }\n};\nconst getHostListenerTarget = (elm, flags) => {\n if (BUILD.hostListenerTargetDocument && flags & 4 /* LISTENER_FLAGS.TargetDocument */)\n return doc;\n if (BUILD.hostListenerTargetWindow && flags & 8 /* LISTENER_FLAGS.TargetWindow */)\n return win;\n if (BUILD.hostListenerTargetBody && flags & 16 /* LISTENER_FLAGS.TargetBody */)\n return doc.body;\n if (BUILD.hostListenerTargetParent && flags & 32 /* LISTENER_FLAGS.TargetParent */)\n return elm.parentElement;\n return elm;\n};\n// prettier-ignore\nconst hostListenerOpts = (flags) => supportsListenerOptions\n ? ({\n passive: (flags & 1 /* LISTENER_FLAGS.Passive */) !== 0,\n capture: (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0,\n })\n : (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;\n/**\n * Assigns the given value to the nonce property on the runtime platform object.\n * During runtime, this value is used to set the nonce attribute on all dynamically created script and style tags.\n * @param nonce The value to be assigned to the platform nonce property.\n * @returns void\n */\nconst setNonce = (nonce) => (plt.$nonce$ = nonce);\nconst setPlatformOptions = (opts) => Object.assign(plt, opts);\nconst insertVdomAnnotations = (doc, staticComponents) => {\n if (doc != null) {\n const docData = {\n hostIds: 0,\n rootLevelIds: 0,\n staticComponents: new Set(staticComponents),\n };\n const orgLocationNodes = [];\n parseVNodeAnnotations(doc, doc.body, docData, orgLocationNodes);\n orgLocationNodes.forEach((orgLocationNode) => {\n if (orgLocationNode != null) {\n const nodeRef = orgLocationNode['s-nr'];\n let hostId = nodeRef['s-host-id'];\n let nodeId = nodeRef['s-node-id'];\n let childId = `${hostId}.${nodeId}`;\n if (hostId == null) {\n hostId = 0;\n docData.rootLevelIds++;\n nodeId = docData.rootLevelIds;\n childId = `${hostId}.${nodeId}`;\n if (nodeRef.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n nodeRef.setAttribute(HYDRATE_CHILD_ID, childId);\n }\n else if (nodeRef.nodeType === 3 /* NODE_TYPE.TextNode */) {\n if (hostId === 0) {\n const textContent = nodeRef.nodeValue.trim();\n if (textContent === '') {\n // useless whitespace node at the document root\n orgLocationNode.remove();\n return;\n }\n }\n const commentBeforeTextNode = doc.createComment(childId);\n commentBeforeTextNode.nodeValue = `${TEXT_NODE_ID}.${childId}`;\n nodeRef.parentNode.insertBefore(commentBeforeTextNode, nodeRef);\n }\n }\n let orgLocationNodeId = `${ORG_LOCATION_ID}.${childId}`;\n const orgLocationParentNode = orgLocationNode.parentElement;\n if (orgLocationParentNode) {\n if (orgLocationParentNode['s-en'] === '') {\n // ending with a \".\" means that the parent element\n // of this node's original location is a SHADOW dom element\n // and this node is apart of the root level light dom\n orgLocationNodeId += `.`;\n }\n else if (orgLocationParentNode['s-en'] === 'c') {\n // ending with a \".c\" means that the parent element\n // of this node's original location is a SCOPED element\n // and this node is apart of the root level light dom\n orgLocationNodeId += `.c`;\n }\n }\n orgLocationNode.nodeValue = orgLocationNodeId;\n }\n });\n }\n};\nconst parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {\n if (node == null) {\n return;\n }\n if (node['s-nr'] != null) {\n orgLocationNodes.push(node);\n }\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n node.childNodes.forEach((childNode) => {\n const hostRef = getHostRef(childNode);\n if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {\n const cmpData = {\n nodeIds: 0,\n };\n insertVNodeAnnotations(doc, childNode, hostRef.$vnode$, docData, cmpData);\n }\n parseVNodeAnnotations(doc, childNode, docData, orgLocationNodes);\n });\n }\n};\nconst insertVNodeAnnotations = (doc, hostElm, vnode, docData, cmpData) => {\n if (vnode != null) {\n const hostId = ++docData.hostIds;\n hostElm.setAttribute(HYDRATE_ID, hostId);\n if (hostElm['s-cr'] != null) {\n hostElm['s-cr'].nodeValue = `${CONTENT_REF_ID}.${hostId}`;\n }\n if (vnode.$children$ != null) {\n const depth = 0;\n vnode.$children$.forEach((vnodeChild, index) => {\n insertChildVNodeAnnotations(doc, vnodeChild, cmpData, hostId, depth, index);\n });\n }\n if (hostElm && vnode && vnode.$elm$ && !hostElm.hasAttribute('c-id')) {\n const parent = hostElm.parentElement;\n if (parent && parent.childNodes) {\n const parentChildNodes = Array.from(parent.childNodes);\n const comment = parentChildNodes.find((node) => node.nodeType === 8 /* NODE_TYPE.CommentNode */ && node['s-sr']);\n if (comment) {\n const index = parentChildNodes.indexOf(hostElm) - 1;\n vnode.$elm$.setAttribute(HYDRATE_CHILD_ID, `${comment['s-host-id']}.${comment['s-node-id']}.0.${index}`);\n }\n }\n }\n }\n};\nconst insertChildVNodeAnnotations = (doc, vnodeChild, cmpData, hostId, depth, index) => {\n const childElm = vnodeChild.$elm$;\n if (childElm == null) {\n return;\n }\n const nodeId = cmpData.nodeIds++;\n const childId = `${hostId}.${nodeId}.${depth}.${index}`;\n childElm['s-host-id'] = hostId;\n childElm['s-node-id'] = nodeId;\n if (childElm.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n childElm.setAttribute(HYDRATE_CHILD_ID, childId);\n }\n else if (childElm.nodeType === 3 /* NODE_TYPE.TextNode */) {\n const parentNode = childElm.parentNode;\n const nodeName = parentNode.nodeName;\n if (nodeName !== 'STYLE' && nodeName !== 'SCRIPT') {\n const textNodeId = `${TEXT_NODE_ID}.${childId}`;\n const commentBeforeTextNode = doc.createComment(textNodeId);\n parentNode.insertBefore(commentBeforeTextNode, childElm);\n }\n }\n else if (childElm.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n if (childElm['s-sr']) {\n const slotName = childElm['s-sn'] || '';\n const slotNodeId = `${SLOT_NODE_ID}.${childId}.${slotName}`;\n childElm.nodeValue = slotNodeId;\n }\n }\n if (vnodeChild.$children$ != null) {\n const childDepth = depth + 1;\n vnodeChild.$children$.forEach((vnode, index) => {\n insertChildVNodeAnnotations(doc, vnode, cmpData, hostId, childDepth, index);\n });\n }\n};\nconst hostRefs = /*@__PURE__*/ new WeakMap();\nconst getHostRef = (ref) => hostRefs.get(ref);\nconst registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);\nconst registerHost = (elm, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: elm,\n $cmpMeta$: cmpMeta,\n $instanceValues$: new Map(),\n };\n if (BUILD.isDev) {\n hostRef.$renderCount$ = 0;\n }\n if (BUILD.method && BUILD.lazyLoad) {\n hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r));\n }\n if (BUILD.asyncLoading) {\n hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));\n elm['s-p'] = [];\n elm['s-rc'] = [];\n }\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false);\n return hostRefs.set(elm, hostRef);\n};\nconst isMemberInElement = (elm, memberName) => memberName in elm;\nconst consoleError = (e, el) => (customError || console.error)(e, el);\nconst STENCIL_DEV_MODE = BUILD.isTesting\n ? ['STENCIL:'] // E2E testing\n : [\n '%cstencil',\n 'color: white;background:#4c47ff;font-weight: bold; font-size:10px; padding:2px 6px; border-radius: 5px',\n ];\nconst consoleDevError = (...m) => console.error(...STENCIL_DEV_MODE, ...m);\nconst consoleDevWarn = (...m) => console.warn(...STENCIL_DEV_MODE, ...m);\nconst consoleDevInfo = (...m) => console.info(...STENCIL_DEV_MODE, ...m);\nconst setErrorHandler = (handler) => (customError = handler);\nconst cmpModules = /*@__PURE__*/ new Map();\nconst loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n // loadModuleImport\n const exportName = cmpMeta.$tagName$.replace(/-/g, '_');\n const bundleId = cmpMeta.$lazyBundleId$;\n if (BUILD.isDev && typeof bundleId !== 'string') {\n consoleDevError(`Trying to lazily load component <${cmpMeta.$tagName$}> with style mode \"${hostRef.$modeName$}\", but it does not exist.`);\n return undefined;\n }\n const module = !BUILD.hotModuleReplacement ? cmpModules.get(bundleId) : false;\n if (module) {\n return module[exportName];\n }\n /*!__STENCIL_STATIC_IMPORT_SWITCH__*/\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n `./${bundleId}.entry.js${BUILD.hotModuleReplacement && hmrVersionId ? '?s-hmr=' + hmrVersionId : ''}`).then((importedModule) => {\n if (!BUILD.hotModuleReplacement) {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n }, consoleError);\n};\nconst styles = /*@__PURE__*/ new Map();\nconst modeResolutionChain = [];\nconst win = typeof window !== 'undefined' ? window : {};\nconst CSS = BUILD.cssVarShim ? win.CSS : null;\nconst doc = win.document || { head: {} };\nconst H = (win.HTMLElement || class {\n});\nconst plt = {\n $flags$: 0,\n $resourcesUrl$: '',\n jmp: (h) => h(),\n raf: (h) => requestAnimationFrame(h),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts),\n};\nconst setPlatformHelpers = (helpers) => {\n Object.assign(plt, helpers);\n};\nconst supportsShadow = BUILD.shadowDomShim && BUILD.shadowDom\n ? /*@__PURE__*/ (() => (doc.head.attachShadow + '').indexOf('[native') > -1)()\n : true;\nconst supportsListenerOptions = /*@__PURE__*/ (() => {\n let supportsListenerOptions = false;\n try {\n doc.addEventListener('e', null, Object.defineProperty({}, 'passive', {\n get() {\n supportsListenerOptions = true;\n },\n }));\n }\n catch (e) { }\n return supportsListenerOptions;\n})();\nconst promiseResolve = (v) => Promise.resolve(v);\nconst supportsConstructableStylesheets = BUILD.constructableCSS\n ? /*@__PURE__*/ (() => {\n try {\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === 'function';\n }\n catch (e) { }\n return false;\n })()\n : false;\nconst queueDomReads = [];\nconst queueDomWrites = [];\nconst queueDomWritesLow = [];\nconst queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* PLATFORM_FLAGS.queueSync */) {\n nextTick(flush);\n }\n else {\n plt.raf(flush);\n }\n }\n};\nconst consume = (queue) => {\n for (let i = 0; i < queue.length; i++) {\n try {\n queue[i](performance.now());\n }\n catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nconst consumeTimeout = (queue, timeout) => {\n let i = 0;\n let ts = 0;\n while (i < queue.length && (ts = performance.now()) < timeout) {\n try {\n queue[i++](ts);\n }\n catch (e) {\n consoleError(e);\n }\n }\n if (i === queue.length) {\n queue.length = 0;\n }\n else if (i !== 0) {\n queue.splice(0, i);\n }\n};\nconst flush = () => {\n if (BUILD.asyncQueue) {\n queueCongestion++;\n }\n // always force a bunch of medium callbacks to run, but still have\n // a throttle on how many can run in a certain time\n // DOM READS!!!\n consume(queueDomReads);\n // DOM WRITES!!!\n if (BUILD.asyncQueue) {\n const timeout = (plt.$flags$ & 6 /* PLATFORM_FLAGS.queueMask */) === 2 /* PLATFORM_FLAGS.appLoaded */\n ? performance.now() + 14 * Math.ceil(queueCongestion * (1.0 / 10.0))\n : Infinity;\n consumeTimeout(queueDomWrites, timeout);\n consumeTimeout(queueDomWritesLow, timeout);\n if (queueDomWrites.length > 0) {\n queueDomWritesLow.push(...queueDomWrites);\n queueDomWrites.length = 0;\n }\n if ((queuePending = queueDomReads.length + queueDomWrites.length + queueDomWritesLow.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n else {\n queueCongestion = 0;\n }\n }\n else {\n consume(queueDomWrites);\n if ((queuePending = queueDomReads.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n }\n};\nconst nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);\nconst readTask = /*@__PURE__*/ queueTask(queueDomReads, false);\nconst writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);\nexport { BUILD, Env, NAMESPACE } from '@stencil/core/internal/app-data';\nexport { Build, CSS, Context, Fragment, H, H as HTMLElement, Host, STENCIL_DEV_MODE, addHostEventListeners, bootstrapLazy, cmpModules, connectedCallback, consoleDevError, consoleDevInfo, consoleDevWarn, consoleError, createEvent, defineCustomElement, disconnectedCallback, doc, forceModeUpdate, forceUpdate, getAssetPath, getConnect, getContext, getElement, getHostRef, getMode, getRenderingRef, getValue, h, insertVdomAnnotations, isMemberInElement, loadModule, modeResolutionChain, nextTick, parsePropertyValue, plt, postUpdateComponent, promiseResolve, proxyComponent, proxyCustomElement, readTask, registerHost, registerInstance, renderVdom, setAssetPath, setErrorHandler, setMode, setNonce, setPlatformHelpers, setPlatformOptions, setValue, styles, supportsConstructableStylesheets, supportsListenerOptions, supportsShadow, win, writeTask };\n","import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\n\nfunction addDays(date, days) {\n const newDate = new Date(date);\n newDate.setDate(newDate.getDate() + days);\n return newDate;\n}\nfunction getDaysOfMonth(date, padded, firstDayOfWeek) {\n const days = [];\n const firstOfMonth = getFirstOfMonth(date);\n const firstDayMonth = firstOfMonth.getDay() === 0 ? 7 : firstOfMonth.getDay();\n const lastOfMonth = getLastOfMonth(date);\n const lastDayOfMonth = lastOfMonth.getDay() === 0 ? 7 : lastOfMonth.getDay();\n const lastDayOfWeek = firstDayOfWeek === 1 ? 7 : firstDayOfWeek - 1;\n const leftPaddingDays = [];\n const rightPaddingDays = [];\n if (padded) {\n const leftPadding = (7 - firstDayOfWeek + firstDayMonth) % 7;\n let leftPaddingAmount = leftPadding;\n let leftPaddingDay = getPreviousDay(firstOfMonth);\n while (leftPaddingAmount > 0) {\n leftPaddingDays.push(leftPaddingDay);\n leftPaddingDay = getPreviousDay(leftPaddingDay);\n leftPaddingAmount -= 1;\n }\n leftPaddingDays.reverse();\n const rightPadding = (7 - lastDayOfMonth + lastDayOfWeek) % 7;\n let rightPaddingAmount = rightPadding;\n let rightPaddingDay = getNextDay(lastOfMonth);\n while (rightPaddingAmount > 0) {\n rightPaddingDays.push(rightPaddingDay);\n rightPaddingDay = getNextDay(rightPaddingDay);\n rightPaddingAmount -= 1;\n }\n }\n let currentDay = firstOfMonth;\n while (currentDay.getMonth() === date.getMonth()) {\n days.push(currentDay);\n currentDay = getNextDay(currentDay);\n }\n return [...leftPaddingDays, ...days, ...rightPaddingDays];\n}\nfunction getFirstOfMonth(date) {\n const firstOfMonth = removeTimezoneOffset(new Date(`${String(getYear(date)).padStart(4, '0')}-${String(getMonth(date)).padStart(2, '0')}-01`));\n return firstOfMonth;\n}\nfunction getISODateString(date) {\n if (!(date instanceof Date)) {\n return;\n }\n return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;\n}\nfunction getLastOfMonth(date) {\n const newDate = getFirstOfMonth(date);\n newDate.setMonth(newDate.getMonth() + 1);\n newDate.setDate(newDate.getDate() - 1);\n return newDate;\n}\nfunction getMonth(date) {\n return date.getMonth() + 1;\n}\nfunction getMonths(locale) {\n return new Array(12).fill(undefined).map((_, month) => {\n const date = removeTimezoneOffset(new Date(`2006-${String(month + 1).padStart(2, '0')}-01`));\n return Intl.DateTimeFormat(locale, {\n month: 'long'\n }).format(date);\n });\n}\nfunction getNextDay(date) {\n return addDays(date, 1);\n}\nfunction getNextMonth(date) {\n const newDate = new Date(date);\n newDate.setDate(1);\n newDate.setMonth(newDate.getMonth() + 1);\n return newDate;\n}\nfunction getNextYear(date) {\n const newDate = new Date(date);\n newDate.setFullYear(newDate.getFullYear() + 1);\n return newDate;\n}\nfunction getPreviousDay(date) {\n return subDays(date, 1);\n}\nfunction getPreviousMonth(date) {\n const newDate = new Date(date);\n newDate.setDate(1);\n newDate.setMonth(newDate.getMonth() - 1);\n return newDate;\n}\nfunction getPreviousYear(date) {\n const newDate = new Date(date);\n newDate.setFullYear(newDate.getFullYear() - 1);\n return newDate;\n}\nfunction getWeekDays(firstDayOfWeek, locale) {\n return new Array(7)\n .fill(undefined)\n .map((_, index) => ((firstDayOfWeek + index) % 7) + 1)\n .map((day) => {\n const date = removeTimezoneOffset(new Date(`2006-01-0${day}`));\n return [\n Intl.DateTimeFormat(locale, {\n weekday: 'short'\n })\n .format(date)\n .slice(0, 3),\n Intl.DateTimeFormat(locale, {\n weekday: 'long'\n }).format(date)\n ];\n });\n}\nfunction getYear(date) {\n return date.getFullYear();\n}\nfunction isDateInRange(date, range) {\n if (!date || !range || !range.from || !range.to) {\n return false;\n }\n const earlyDate = range.from < range.to ? range.from : range.to;\n const laterDate = range.from < range.to ? range.to : range.from;\n return date >= earlyDate && date <= laterDate;\n}\nfunction isSameDay(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return (date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate());\n}\nfunction removeTimezoneOffset(date) {\n const newDate = new Date(date);\n newDate.setMinutes(newDate.getMinutes() + newDate.getTimezoneOffset());\n return newDate;\n}\nfunction subDays(date, days) {\n const newDate = new Date(date);\n newDate.setDate(newDate.getDate() - days);\n return newDate;\n}\n\nconst wcDatepickerCss = \".visually-hidden.sc-wc-datepicker{position:absolute;overflow:hidden;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%)}\";\n\nconst defaultLabels = {\n clearButton: 'Clear value',\n monthSelect: 'Select month',\n nextMonthButton: 'Next month',\n nextYearButton: 'Next year',\n picker: 'Choose date',\n previousMonthButton: 'Previous month',\n previousYearButton: 'Previous year',\n todayButton: 'Show today',\n yearSelect: 'Select year'\n};\nconst WCDatepicker = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.selectDate = createEvent(this, \"selectDate\", 7);\n this.changeMonth = createEvent(this, \"changeMonth\", 7);\n this.disabled = false;\n this.disableDate = () => false;\n this.elementClassName = 'wc-datepicker';\n this.firstDayOfWeek = 0;\n this.labels = defaultLabels;\n this.locale = (navigator === null || navigator === void 0 ? void 0 : navigator.language) || 'en-US';\n this.showClearButton = false;\n this.showMonthStepper = true;\n this.showTodayButton = false;\n this.showYearStepper = false;\n this.startDate = getISODateString(new Date());\n this.maxSearchDays = 365;\n this.goToRangeStartOnSelect = true;\n this.init = () => {\n this.currentDate = this.startDate\n ? removeTimezoneOffset(new Date(this.startDate))\n : new Date();\n this.updateWeekdays();\n };\n this.getAvailableDate = (date, direction) => {\n let potentialDate;\n let outOfRange = false;\n switch (direction) {\n case 'previousDay':\n potentialDate = getPreviousDay(date);\n break;\n case 'nextDay':\n potentialDate = getNextDay(date);\n break;\n case 'previousSameWeekDay':\n potentialDate = subDays(date, 7);\n break;\n case 'nextSameWeekDay':\n potentialDate = addDays(date, 7);\n break;\n case 'firstOfMonth':\n potentialDate = getFirstOfMonth(date);\n break;\n case 'lastOfMonth':\n potentialDate = getLastOfMonth(date);\n break;\n case 'previousMonth':\n potentialDate = getPreviousMonth(date);\n break;\n case 'nextMonth':\n potentialDate = getNextMonth(date);\n break;\n case 'previousYear':\n potentialDate = getPreviousYear(date);\n break;\n case 'nextYear':\n potentialDate = getNextYear(date);\n break;\n }\n while (this.disableDate(potentialDate) && !outOfRange) {\n switch (direction) {\n case 'previousDay':\n case 'lastOfMonth':\n potentialDate = getPreviousDay(potentialDate);\n break;\n case 'nextDay':\n case 'firstOfMonth':\n case 'previousMonth':\n case 'nextMonth':\n case 'previousYear':\n case 'nextYear':\n potentialDate = getNextDay(potentialDate);\n break;\n case 'previousSameWeekDay':\n potentialDate = subDays(potentialDate, 7);\n break;\n case 'nextSameWeekDay':\n potentialDate = addDays(potentialDate, 7);\n break;\n }\n switch (direction) {\n case 'firstOfMonth':\n case 'lastOfMonth':\n case 'previousYear':\n case 'nextYear':\n outOfRange = potentialDate.getMonth() !== date.getMonth();\n break;\n case 'previousMonth':\n outOfRange = potentialDate.getMonth() !== date.getMonth() - 1;\n break;\n case 'nextMonth':\n outOfRange = potentialDate.getMonth() !== date.getMonth() + 1;\n break;\n default:\n outOfRange = !isDateInRange(potentialDate, {\n from: subDays(date, this.maxSearchDays),\n to: addDays(date, this.maxSearchDays)\n });\n break;\n }\n }\n if (outOfRange) {\n return date;\n }\n return potentialDate;\n };\n this.nextMonth = () => {\n this.updateCurrentDate(getNextMonth(this.currentDate));\n };\n this.nextYear = () => {\n this.updateCurrentDate(getNextYear(this.currentDate));\n };\n this.previousMonth = () => {\n this.updateCurrentDate(getPreviousMonth(this.currentDate));\n };\n this.previousYear = () => {\n this.updateCurrentDate(getPreviousYear(this.currentDate));\n };\n this.showToday = () => {\n this.updateCurrentDate(new Date());\n };\n this.clear = () => {\n this.value = undefined;\n this.selectDate.emit(undefined);\n };\n this.onClick = (event) => {\n if (this.disabled) {\n return;\n }\n const target = event.target.closest('[data-date]');\n if (!Boolean(target)) {\n return;\n }\n const date = removeTimezoneOffset(new Date(target.dataset.date));\n this.updateCurrentDate(date);\n this.onSelectDate(date);\n };\n this.onMonthSelect = (event) => {\n const month = +event.target.value - 1;\n const currentDay = this.currentDate.getDate();\n const targetDate = new Date(this.currentDate.getFullYear(), month, 1);\n const lastDayOfTargetMonth = getLastOfMonth(targetDate).getDate();\n const clampedDay = Math.min(currentDay, lastDayOfTargetMonth);\n const updatedDate = new Date(this.currentDate.getFullYear(), month, clampedDay);\n this.updateCurrentDate(updatedDate);\n };\n this.onYearSelect = (event) => {\n let year = +event.target.value;\n const input = event.target;\n if (isNaN(year)) {\n year = new Date().getFullYear();\n input.value = String(year);\n }\n else if (year < 0) {\n year = 0;\n input.value = String(year);\n }\n else if (year > 9999) {\n year = 9999;\n input.value = String(year);\n }\n const currentDay = this.currentDate.getDate();\n const currentMonth = this.currentDate.getMonth();\n const targetDate = new Date();\n targetDate.setFullYear(year, currentMonth, 1);\n const lastDayOfTargetMonth = getLastOfMonth(targetDate).getDate();\n const clampedDay = Math.min(currentDay, lastDayOfTargetMonth);\n const updatedDate = new Date();\n updatedDate.setFullYear(year, currentMonth, clampedDay);\n this.updateCurrentDate(updatedDate);\n };\n this.onKeyDown = (event) => {\n if (this.disabled) {\n return;\n }\n if (event.code === 'ArrowLeft') {\n event.preventDefault();\n this.updateCurrentDate(this.getAvailableDate(this.currentDate, 'previousDay'), true);\n }\n else if (event.code === 'ArrowRight') {\n event.preventDefault();\n this.updateCurrentDate(this.getAvailableDate(this.currentDate, 'nextDay'), true);\n }\n else if (event.code === 'ArrowUp') {\n event.preventDefault();\n this.updateCurrentDate(this.getAvailableDate(this.currentDate, 'previousSameWeekDay'), true);\n }\n else if (event.code === 'ArrowDown') {\n event.preventDefault();\n this.updateCurrentDate(this.getAvailableDate(this.currentDate, 'nextSameWeekDay'), true);\n }\n else if (event.code === 'PageUp') {\n event.preventDefault();\n if (event.shiftKey) {\n this.updateCurrentDate(this.getAvailableDate(this.currentDate, 'previousYear'), true);\n }\n else {\n this.updateCurrentDate(this.getAvailableDate(this.currentDate, 'previousMonth'), true);\n }\n }\n else if (event.code === 'PageDown') {\n event.preventDefault();\n if (event.shiftKey) {\n this.updateCurrentDate(this.getAvailableDate(this.currentDate, 'nextYear'), true);\n }\n else {\n this.updateCurrentDate(this.getAvailableDate(this.currentDate, 'nextMonth'), true);\n }\n }\n else if (event.code === 'Home') {\n event.preventDefault();\n this.updateCurrentDate(this.getAvailableDate(this.currentDate, 'firstOfMonth'), true);\n }\n else if (event.code === 'End') {\n event.preventDefault();\n this.updateCurrentDate(this.getAvailableDate(this.currentDate, 'lastOfMonth'), true);\n }\n else if (event.code === 'Space' || event.code === 'Enter') {\n event.preventDefault();\n this.onSelectDate(this.currentDate);\n }\n };\n this.onMouseEnter = (event) => {\n if (this.disabled) {\n return;\n }\n const date = removeTimezoneOffset(new Date(event.target.closest('td').dataset.date));\n this.hoveredDate = date;\n };\n this.onMouseLeave = () => {\n this.hoveredDate = undefined;\n };\n }\n componentWillLoad() {\n this.init();\n }\n watchFirstDayOfWeek() {\n this.updateWeekdays();\n }\n watchLocale() {\n if (!Boolean(this.locale)) {\n this.locale = (navigator === null || navigator === void 0 ? void 0 : navigator.language) || 'en-US';\n }\n this.updateWeekdays();\n }\n watchRange() {\n this.value = undefined;\n this.selectDate.emit(undefined);\n }\n watchStartDate() {\n this.currentDate = this.startDate\n ? removeTimezoneOffset(new Date(this.startDate))\n : new Date();\n }\n watchValue() {\n if (!Boolean(this.value)) {\n return;\n }\n if (Array.isArray(this.value)) {\n this.currentDate =\n this.value.length > 1 && !this.goToRangeStartOnSelect\n ? this.value[1]\n : this.value[0];\n }\n else if (this.value instanceof Date) {\n this.currentDate = this.value;\n }\n }\n componentDidRender() {\n if (this.moveFocusAfterMonthChanged) {\n this.focusDate(this.currentDate);\n this.moveFocusAfterMonthChanged = false;\n }\n }\n updateWeekdays() {\n this.weekdays = getWeekDays(this.firstDayOfWeek === 0 ? 7 : this.firstDayOfWeek, this.locale);\n }\n getClassName(element) {\n return Boolean(element)\n ? `${this.elementClassName}__${element}`\n : this.elementClassName;\n }\n getCalendarRows() {\n const daysOfMonth = getDaysOfMonth(this.currentDate, true, this.firstDayOfWeek === 0 ? 7 : this.firstDayOfWeek);\n const calendarRows = [];\n for (let i = 0; i < daysOfMonth.length; i += 7) {\n const row = daysOfMonth.slice(i, i + 7);\n calendarRows.push(row);\n }\n return calendarRows;\n }\n getTitle() {\n if (!Boolean(this.value)) {\n return;\n }\n if (this.isRangeValue(this.value)) {\n const startDate = Intl.DateTimeFormat(this.locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric'\n }).format(this.value[0]);\n const endDate = this.value[1]\n ? Intl.DateTimeFormat(this.locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric'\n }).format(this.value[1])\n : undefined;\n if (Boolean(endDate)) {\n return `${startDate} - ${endDate}`;\n }\n else {\n return startDate;\n }\n }\n else {\n return Intl.DateTimeFormat(this.locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric'\n }).format(this.value);\n }\n }\n focusDate(date) {\n var _a;\n (_a = this.el\n .querySelector(`[data-date=\"${getISODateString(date)}\"]`)) === null || _a === void 0 ? void 0 : _a.focus();\n }\n updateCurrentDate(date, moveFocus) {\n const month = date.getMonth();\n const year = date.getFullYear();\n if (year > 9999 || year < 0) {\n return;\n }\n const monthChanged = month !== this.currentDate.getMonth() ||\n year !== this.currentDate.getFullYear();\n if (monthChanged) {\n this.changeMonth.emit({\n month: getMonth(date),\n year: getYear(date),\n day: date.getDate()\n });\n if (moveFocus) {\n this.moveFocusAfterMonthChanged = true;\n }\n }\n this.currentDate = date;\n if (moveFocus) {\n this.focusDate(this.currentDate);\n }\n }\n onSelectDate(date) {\n var _a, _b;\n if (this.disableDate(date)) {\n return;\n }\n if (this.isRangeValue(this.value)) {\n const newValue = ((_a = this.value) === null || _a === void 0 ? void 0 : _a[0]) === undefined || this.value.length === 2\n ? [date]\n : [this.value[0], date];\n if (newValue.length === 2 && newValue[0] > newValue[1]) {\n newValue.reverse();\n }\n const isoValue = newValue[1] === undefined\n ? [getISODateString(newValue[0])]\n : [getISODateString(newValue[0]), getISODateString(newValue[1])];\n this.value = newValue;\n this.selectDate.emit(isoValue);\n }\n else {\n if (((_b = this.value) === null || _b === void 0 ? void 0 : _b.getTime()) === date.getTime()) {\n return;\n }\n this.value = date;\n this.selectDate.emit(getISODateString(date));\n }\n }\n // @ts-ignore\n isRangeValue(value) {\n return this.range;\n }\n render() {\n const showFooter = this.showTodayButton || this.showClearButton;\n return (h(Host, null, h(\"div\", { \"aria-disabled\": String(this.disabled), \"aria-label\": this.labels.picker, class: {\n [this.getClassName()]: true,\n [`${this.getClassName()}--disabled`]: this.disabled\n }, role: \"group\" }, h(\"div\", { class: this.getClassName('header') }, h(\"span\", { \"aria-atomic\": \"true\", \"aria-live\": \"polite\", class: \"visually-hidden\" }, this.getTitle()), this.showYearStepper && (h(\"button\", { \"aria-label\": this.labels.previousYearButton, class: this.getClassName('previous-year-button'), disabled: this.disabled, innerHTML: this.previousYearButtonContent || undefined, onClick: this.previousYear, type: \"button\" }, h(\"svg\", { fill: \"none\", height: \"24\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\", \"stroke-width\": \"2\", stroke: \"currentColor\", viewBox: \"0 0 24 24\", width: \"24\" }, h(\"polyline\", { points: \"11 17 6 12 11 7\" }), h(\"polyline\", { points: \"18 17 13 12 18 7\" })))), this.showMonthStepper && (h(\"button\", { \"aria-label\": this.labels.previousMonthButton, class: this.getClassName('previous-month-button'), disabled: this.disabled, innerHTML: this.previousMonthButtonContent || undefined, onClick: this.previousMonth, type: \"button\" }, h(\"svg\", { fill: \"none\", height: \"24\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\", \"stroke-width\": \"2\", stroke: \"currentColor\", viewBox: \"0 0 24 24\", width: \"24\" }, h(\"polyline\", { points: \"15 18 9 12 15 6\" })))), h(\"span\", { class: this.getClassName('current-month') }, h(\"select\", { title: this.labels.monthSelect, \"aria-label\": this.labels.monthSelect, class: this.getClassName('month-select'), disabled: this.disabled, name: \"month\", onChange: this.onMonthSelect }, getMonths(this.locale).map((month, index) => (h(\"option\", { key: month, selected: this.currentDate.getMonth() === index, value: index + 1 }, month)))), h(\"input\", { title: this.labels.yearSelect, \"aria-label\": this.labels.yearSelect, class: this.getClassName('year-select'), disabled: this.disabled, max: 9999, maxLength: 4, min: 1, name: \"year\", onChange: this.onYearSelect, type: \"number\", value: this.currentDate.getFullYear() })), this.showMonthStepper && (h(\"button\", { \"aria-label\": this.labels.nextMonthButton, class: this.getClassName('next-month-button'), disabled: this.disabled, innerHTML: this.nextMonthButtonContent || undefined, onClick: this.nextMonth, type: \"button\" }, h(\"svg\", { fill: \"none\", height: \"24\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\", \"stroke-width\": \"2\", stroke: \"currentColor\", viewBox: \"0 0 24 24\", width: \"24\" }, h(\"polyline\", { points: \"9 18 15 12 9 6\" })))), this.showYearStepper && (h(\"button\", { \"aria-label\": this.labels.nextYearButton, class: this.getClassName('next-year-button'), disabled: this.disabled, innerHTML: this.nextYearButtonContent || undefined, onClick: this.nextYear, type: \"button\" }, h(\"svg\", { fill: \"none\", height: \"24\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\", \"stroke-width\": \"2\", stroke: \"currentColor\", viewBox: \"0 0 24 24\", width: \"24\" }, h(\"polyline\", { points: \"13 17 18 12 13 7\" }), h(\"polyline\", { points: \"6 17 11 12 6 7\" }))))), h(\"div\", { class: this.getClassName('body') }, h(\"table\", { class: this.getClassName('calendar'), onKeyDown: this.onKeyDown, role: \"grid\" }, h(\"thead\", { class: this.getClassName('calendar-header') }, h(\"tr\", { class: this.getClassName('weekday-row') }, this.weekdays.map((weekday) => (h(\"th\", { \"aria-label\": weekday[1], abbr: weekday[1], class: this.getClassName('weekday'), key: weekday[0], scope: \"col\" }, h(\"span\", null, weekday[0])))))), h(\"tbody\", null, this.getCalendarRows().map((calendarRow) => {\n const rowKey = `row-${calendarRow[0].getMonth()}-${calendarRow[0].getDate()}`;\n return (h(\"tr\", { class: this.getClassName('calendar-row'), key: rowKey }, calendarRow.map((day) => {\n var _a, _b, _c, _d, _e;\n const isCurrent = isSameDay(day, this.currentDate);\n const isOverflowing = day.getMonth() !== this.currentDate.getMonth();\n const isSelected = Array.isArray(this.value)\n ? isSameDay(day, this.value[0]) ||\n isSameDay(day, this.value[1])\n : isSameDay(day, this.value);\n const isInRange = !this.isRangeValue\n ? false\n : isDateInRange(day, {\n from: (_a = this.value) === null || _a === void 0 ? void 0 : _a[0],\n to: ((_b = this.value) === null || _b === void 0 ? void 0 : _b[1]) ||\n this.hoveredDate ||\n this.currentDate\n });\n const orderedValues = Boolean((_c = this.value) === null || _c === void 0 ? void 0 : _c[0])\n ? [\n (_d = this.value) === null || _d === void 0 ? void 0 : _d[0],\n ((_e = this.value) === null || _e === void 0 ? void 0 : _e[1]) || this.hoveredDate\n ].sort((a, b) => a - b)\n : [];\n const isStart = this.range && isSameDay(orderedValues[0], day);\n const isEnd = this.range && isSameDay(orderedValues[1], day);\n const isToday = isSameDay(day, new Date());\n const isDisabled = this.disableDate(day);\n const cellKey = `cell-${day.getMonth()}-${day.getDate()}`;\n const className = {\n [this.getClassName('date')]: true,\n [this.getClassName('date--current')]: isCurrent,\n [this.getClassName('date--disabled')]: isDisabled,\n [this.getClassName('date--overflowing')]: isOverflowing,\n [this.getClassName('date--today')]: isToday,\n [this.getClassName('date--selected')]: isSelected,\n [this.getClassName('date--in-range')]: isInRange,\n [this.getClassName('date--start')]: isStart,\n [this.getClassName('date--end')]: isEnd\n };\n const Tag = isSelected\n ? 'strong'\n : isToday\n ? 'em'\n : 'span';\n return (h(\"td\", { \"aria-disabled\": String(isDisabled), \"aria-selected\": isSelected ? 'true' : undefined, \"aria-current\": isToday ? 'date' : undefined, class: className, \"data-date\": getISODateString(day), key: cellKey, onClick: this.onClick, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, role: \"gridcell\", tabIndex: isSameDay(day, this.currentDate) && !this.disabled\n ? 0\n : -1 }, h(Tag, { \"aria-hidden\": \"true\" }, day.getDate()), h(\"span\", { class: \"visually-hidden\" }, Intl.DateTimeFormat(this.locale, {\n day: 'numeric',\n month: 'long'\n }).format(day))));\n })));\n })))), showFooter && (h(\"div\", { class: this.getClassName('footer') }, this.showTodayButton && (h(\"button\", { class: this.getClassName('today-button'), disabled: this.disabled, innerHTML: this.todayButtonContent || undefined, onClick: this.showToday, type: \"button\" }, this.labels.todayButton)), this.showClearButton && (h(\"button\", { class: this.getClassName('clear-button'), disabled: this.disabled, innerHTML: this.clearButtonContent || undefined, onClick: this.clear, type: \"button\" }, this.labels.clearButton)))))));\n }\n get el() { return this; }\n static get watchers() { return {\n \"firstDayOfWeek\": [\"watchFirstDayOfWeek\"],\n \"locale\": [\"watchLocale\"],\n \"range\": [\"watchRange\"],\n \"startDate\": [\"watchStartDate\"],\n \"value\": [\"watchValue\"]\n }; }\n static get style() { return wcDatepickerCss; }\n}, [2, \"wc-datepicker\", {\n \"clearButtonContent\": [1, \"clear-button-content\"],\n \"disabled\": [4],\n \"disableDate\": [16],\n \"elementClassName\": [1, \"element-class-name\"],\n \"firstDayOfWeek\": [2, \"first-day-of-week\"],\n \"range\": [4],\n \"labels\": [16],\n \"locale\": [1],\n \"nextMonthButtonContent\": [1, \"next-month-button-content\"],\n \"nextYearButtonContent\": [1, \"next-year-button-content\"],\n \"previousMonthButtonContent\": [1, \"previous-month-button-content\"],\n \"previousYearButtonContent\": [1, \"previous-year-button-content\"],\n \"showClearButton\": [4, \"show-clear-button\"],\n \"showMonthStepper\": [4, \"show-month-stepper\"],\n \"showTodayButton\": [4, \"show-today-button\"],\n \"showYearStepper\": [4, \"show-year-stepper\"],\n \"startDate\": [1, \"start-date\"],\n \"todayButtonContent\": [1, \"today-button-content\"],\n \"value\": [1040],\n \"maxSearchDays\": [2, \"max-search-days\"],\n \"goToRangeStartOnSelect\": [4, \"go-to-range-start-on-select\"],\n \"currentDate\": [32],\n \"hoveredDate\": [32],\n \"weekdays\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"wc-datepicker\"];\n components.forEach(tagName => { switch (tagName) {\n case \"wc-datepicker\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, WCDatepicker);\n }\n break;\n } });\n}\n\nconst WcDatepicker = WCDatepicker;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { WcDatepicker, defineCustomElement };\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-datepicker.scss?inline\";\n\nimport { WcDatepicker } from \"wc-datepicker/dist/components/wc-datepicker\";\n\n// Register the WC datepicker\nif (!customElements.get(\"wc-datepicker\")) {\n customElements.define(\"wc-datepicker\", WcDatepicker);\n}\n\nlet componentIdCounter = 0;\n\n/**\n * `<nys-datepicker>` is a form-associated, accessible date picker component.\n * Optionally wraps a `<wc-datepicker>` for custom calendar UI.\n *\n * Events:\n * @fires nys-blur - Dispatched when input or calendar loses focus\n * @fires nys-input - Dispatched when user selects or types a valid date\n *\n * Notes:\n * - Uses native date input on Safari or mobile devices (custom calendar removed for these scenarios)\n */\n\nexport class NysDatepicker extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String, reflect: true }) width: \"md\" | \"lg\" | \"full\" = \"md\";\n @property({ type: Boolean }) hideTodayButton = false;\n @property({ type: Boolean }) hideClearButton = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String }) tooltip = \"\";\n\n @property({ type: String }) type = \"date\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String }) startDate = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n\n // Datepicker accepts both string and Date, but internally normalize it to Date\n @property({\n type: Object,\n converter: {\n fromAttribute: (value: string | null) =>\n value ? NysDatepicker.prototype._parseLocalDate(value) : undefined,\n toAttribute: (value: Date | string | undefined) => {\n if (!value) return \"\";\n if (typeof value === \"string\") return value; // accept ISO string directly\n return value.toISOString().split(\"T\")[0];\n },\n },\n })\n value: string | Date | undefined = undefined;\n\n private _hasUserInteracted = false; // need this flag for \"eager mode\"\n private _internals: ElementInternals;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-datepicker-${Date.now()}-${componentIdCounter++}`;\n }\n\n this.addEventListener(\"invalid\", this._handleInvalid);\n this.addEventListener(\"focusout\", this._handleBlur);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n this.removeEventListener(\"focusout\", this._handleBlur);\n }\n\n async firstUpdated() {\n // This ensures our element always participates in the form\n this._setValue(this.value);\n\n if (this._shouldUseNativeDatepicker()) return;\n\n const datepicker = await this._whenWcDatepickerReady();\n if (!datepicker) return;\n\n // setTimeout is needed because the wc-datepicker needs to be rendered in first for the logics to work\n setTimeout(() => this._replaceButtonSVG(), 0);\n setTimeout(() => this._addMonthDropdownIcon(), 0);\n setTimeout(() => this._handleDateChange(), 0);\n setTimeout(() => this._onDocumentClick(), 0);\n }\n\n private async _whenWcDatepickerReady(): Promise<WcDatepicker | null> {\n await customElements.whenDefined(\"wc-datepicker\");\n\n const datepicker = this.shadowRoot?.querySelector(\n \"wc-datepicker\",\n ) as WcDatepicker | null;\n\n if (!datepicker) return null;\n\n if (\"updateComplete\" in datepicker) {\n await (datepicker as any).updateComplete;\n }\n\n // Wait one frame to ensure layout and slot text are painted\n await new Promise((resolve) => requestAnimationFrame(resolve));\n\n return datepicker;\n }\n\n /**\n * Form Integration\n * --------------------------------------------------------------------------\n */\n\n /**\n * Form helper methods:\n * - _setValue: set internal value and trigger validation\n * - _manageRequire: handle required state\n * - _validate: actively validate and show errors\n * - checkValidity: passive boolean check without UI\n * - _setValidityMessage: sync validation message with UI and internals\n * - _handleInvalid: handle form invalid event and focus first invalid field\n */\n\n private _setValue(value: Date | string | undefined) {\n if (!value) {\n this.value = undefined;\n this._internals.setFormValue(\"\");\n this._manageRequire();\n return;\n }\n\n const date = value instanceof Date ? value : this._parseLocalDate(value);\n\n const yyyyMmDd = [\n date.getFullYear(),\n String(date.getMonth() + 1).padStart(2, \"0\"),\n String(date.getDate()).padStart(2, \"0\"),\n ].join(\"-\");\n\n this.value = date;\n this._internals.setFormValue(yyyyMmDd);\n\n const input = this.shadowRoot?.querySelector(\"input\");\n if (input) {\n input.value = yyyyMmDd;\n }\n\n const datepicker = this.shadowRoot?.querySelector(\"wc-datepicker\");\n if (datepicker) {\n datepicker.value = date;\n }\n\n this._manageRequire();\n }\n\n // Called to internally set the initial internalElement required flag.\n private _manageRequire() {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n const message = this.errorMessage || \"This field is required.\";\n const isInvalid = this.required && !this.value;\n\n if (isInvalid) {\n this._internals.ariaRequired = \"true\";\n this._internals.setValidity({ valueMissing: true }, message, input);\n } else {\n this._internals.ariaRequired = \"false\";\n this._internals.setValidity({});\n }\n }\n\n /**\n * Actively validates the component:\n * - Updates internal validity state\n * - Updates UI (e.g. showError)\n * - Called on blur/change or form submission\n */\n private _validate() {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n this._manageRequire();\n\n const message = input.validationMessage;\n this._setValidityMessage(message);\n }\n\n /**\n * Passive check of validity:\n * - Returns true/false\n * - Does NOT update UI or show errors\n * - Used in form submission checks\n */\n checkValidity(): boolean {\n const input = this.shadowRoot?.querySelector(\"input\");\n return input ? input.checkValidity() : true;\n }\n\n // Sets custom validity message\n private _setValidityMessage(message: string = \"\") {\n if (!this._internals) return;\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Toggle the HTML <div> tag error message\n this.showError = !!message;\n // If user sets errorMessage, this will always override the native validation message\n if (this.errorMessage?.trim() && message !== \"\") {\n message = this.errorMessage;\n }\n\n this._internals.setValidity(\n message ? { customError: true } : {},\n message,\n input,\n );\n }\n\n // Handles native 'invalid' events\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this._hasUserInteracted = true; // Start aggressive mode due to form submission\n this._validate();\n\n const innerInput = this.shadowRoot?.querySelector(\"input\");\n if (innerInput) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n innerInput.focus();\n }\n } else {\n // If not part of a form, simply focus.\n innerInput.focus();\n }\n }\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n /**\n * Replaces the default wc-datepicker month navigation buttons\n * with NYS icon components for previous and next month.\n */\n private _replaceButtonSVG() {\n const datePicker = this.shadowRoot?.querySelector(\"wc-datepicker\");\n if (!datePicker) return;\n\n const nextBtn = datePicker.querySelector(\n \".wc-datepicker__next-month-button\",\n ) as HTMLButtonElement;\n\n const prevBtn = datePicker.querySelector(\n \".wc-datepicker__previous-month-button\",\n ) as HTMLButtonElement;\n\n if (!nextBtn || !prevBtn) return;\n prevBtn.innerHTML = `\n <nys-icon name=\"arrow_back\" size=\"18\"></nys-icon>\n `;\n nextBtn.innerHTML = `\n <nys-icon name=\"arrow_forward\" size=\"18\"></nys-icon>\n `;\n }\n\n private _addMonthDropdownIcon() {\n const datePicker = this.shadowRoot?.querySelector(\"wc-datepicker\");\n if (!datePicker) return;\n\n const select = datePicker.querySelector(\n \".wc-datepicker__month-select\",\n ) as HTMLSelectElement;\n\n if (select && !select.parentElement?.classList.contains(\"month-wrapper\")) {\n const wrapper = document.createElement(\"span\");\n wrapper.className = \"month-wrapper\";\n select.parentNode?.insertBefore(wrapper, select);\n wrapper.appendChild(select);\n\n const icon = document.createElement(\"nys-icon\");\n icon.setAttribute(\"name\", \"chevron_down\");\n icon.setAttribute(\"id\", \"wc-month-dropdown-icon\");\n icon.setAttribute(\"size\", \"20\");\n wrapper.appendChild(icon);\n }\n }\n\n // Creates a Date at local midnight to avoid UTC timezone shifting\n private _parseLocalDate(dateString: string) {\n const [year, month, day] = dateString.split(\"-\").map(Number);\n // month is 0-indexed\n return new Date(year, month - 1, day);\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n private _handleInputKeydown(event: KeyboardEvent) {\n if (this.disabled || this._shouldUseNativeDatepicker()) return;\n\n if (event.key == \" \" || event.code == \"Space\") {\n event.preventDefault();\n this._openDatepicker();\n }\n }\n\n private _handleBlur(event: FocusEvent) {\n const nextFocused = event.relatedTarget as Node | null;\n\n const stillInside =\n nextFocused &&\n (this.contains(nextFocused) || this.shadowRoot?.contains(nextFocused));\n\n if (stillInside) return;\n\n if (!this._hasUserInteracted) {\n this._hasUserInteracted = true;\n }\n\n const datepicker = this.shadowRoot?.querySelector(\"wc-datepicker\");\n datepicker?.classList.remove(\"active\");\n this._validate();\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n // For when users click outside of the datepicker, we remove the calendar popup\n private _onDocumentClick() {\n if (this._shouldUseNativeDatepicker()) return;\n\n const onClick = (event: MouseEvent) => {\n const path = event.composedPath();\n\n const input = this.shadowRoot?.querySelector(\n \".nys-datepicker--input-container\",\n );\n const container = this.shadowRoot?.querySelector(\n \".wc-datepicker--container\",\n );\n const datepicker = this.shadowRoot?.querySelector(\"wc-datepicker\");\n\n const clickedInside =\n (input && path.includes(input)) ||\n (container && path.includes(container)) ||\n (datepicker && path.includes(datepicker));\n\n if (!clickedInside) {\n datepicker?.classList.remove(\"active\");\n }\n };\n\n document.addEventListener(\"click\", onClick);\n }\n\n private _toggleDatepicker() {\n if (this.disabled) return;\n if (this._shouldUseNativeDatepicker()) {\n const input = this.shadowRoot?.querySelector(\n \"input\",\n ) as HTMLInputElement | null;\n\n if (input) input.focus();\n return;\n }\n\n const dateInput = this.shadowRoot?.querySelector(\"wc-datepicker\");\n dateInput?.classList.toggle(\"active\");\n }\n\n private _openDatepicker() {\n if (this.disabled || this._shouldUseNativeDatepicker()) return;\n\n const dateInput = this.shadowRoot?.querySelector(\"wc-datepicker\");\n dateInput?.classList.add(\"active\");\n }\n\n private _handleDateChange() {\n const datepicker = this.shadowRoot?.querySelector(\"wc-datepicker\");\n if (!datepicker) return;\n\n datepicker.addEventListener(\"selectDate\", (event: Event) => {\n const dateString = (event as CustomEvent).detail; // format: YYYY-MM-DD\n const dateValue = this._parseLocalDate(dateString);\n this._setValue(dateValue);\n this._validate();\n\n datepicker.classList.remove(\"active\");\n });\n }\n\n private _handleTodayClick() {\n if (this.disabled) return;\n\n const today = new Date();\n today.setHours(0, 0, 0, 0); // force midnight consistency. Setting date start time is at 00:00:00\n this._setValue(today);\n\n if (this._hasUserInteracted) {\n this._validate();\n }\n }\n\n private _handleClearClick() {\n if (this.disabled) return;\n\n this.value = undefined;\n this._internals.setFormValue(\"\");\n const input = this.shadowRoot?.querySelector(\"input\");\n if (input) {\n input.value = \"\";\n }\n\n if (this._hasUserInteracted) {\n this._validate();\n }\n }\n\n private _handleInputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n if (!input) return;\n\n const date = this._getValidDateFromInput(input.value);\n if (!date) return;\n\n this._setValue(date);\n\n // Much like nys-textinput, we validate with eager mode for user's input\n if (this._hasUserInteracted) {\n this._validate();\n }\n\n this.dispatchEvent(\n new CustomEvent(\"nys-input\", {\n detail: { id: this.id, value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _getValidDateFromInput(value: string): Date | null {\n const dateRegex = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\n const match = dateRegex.exec(value);\n if (!match) return null;\n\n const year = Number(match[1]);\n\n // Reject partial / nonsense years caused by autocomplete (like 0002, 0190, etc).\n // Reasoning: without this check, autocomplete will occur for the 1st digit of the datepicker YYYY\n // (i.e. user starts typing 20.. but autocompletes as YYYY = 0002)\n if (year < 1000) return null;\n\n return this._parseLocalDate(value);\n }\n\n private _isSafari(): boolean {\n const ua = navigator.userAgent;\n return /Safari/.test(ua) && !/Chrome|Chromium|Edg/.test(ua);\n }\n\n /**\n * Determines whether the current device uses a coarse pointer.\n * A coarse pointer usually means touch-based input where precise pointing\n * is not expected, such as fingers on phones and most tablets.\n *\n * Note: This is not a guarantee of a mobile device.\n * Some non-mobile devices may also report a coarse pointer,\n * and some mobile devices may not.\n *\n * @returns `true` if the device reports a coarse pointer, otherwise `false`.\n */\n private _isMobile(): boolean {\n return window.matchMedia(\"(pointer: coarse)\").matches;\n }\n\n private _shouldUseNativeDatepicker(): boolean {\n return this._isSafari() || this._isMobile();\n }\n\n render() {\n const useNative = this._shouldUseNativeDatepicker();\n\n return html` <div class=\"nys-datepicker--container\">\n <nys-label\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n ></nys-label>\n <div\n class=\"nys-datepicker--input-container ${this.disabled\n ? \"disabled\"\n : \"\"}\"\n >\n <input\n id=\"nys-datepicker--input\"\n type=\"date\"\n max=\"9999-12-31\"\n ?required=${this.required}\n .value=${this.value instanceof Date\n ? this.value.toISOString().split(\"T\")[0]\n : this.value || \"\"}\n ?disabled=${this.disabled}\n aria-disabled=${ifDefined(this.disabled ? \"true\" : undefined)}\n aria-required=${ifDefined(this.required ? \"true\" : undefined)}\n aria-label=${ifDefined(this.label || undefined)}\n aria-description=${ifDefined(this.description || undefined)}\n @click=${this._openDatepicker}\n @input=${this._handleInputChange}\n @blur=${this._handleBlur}\n @keydown=${this._handleInputKeydown}\n />\n ${!useNative\n ? html`\n <button\n id=\"calendar-button\"\n @click=${this._toggleDatepicker}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n ?disabled=${this.disabled}\n aria-label=\"Open calendar\"\n >\n <nys-icon name=\"calendar_month\" size=\"24\"></nys-icon>\n </button>\n `\n : null}\n </div>\n\n <div class=\"wc-datepicker--container\">\n <wc-datepicker\n .value=${this.value instanceof Date\n ? this.value\n : this.value\n ? this._parseLocalDate(this.value)\n : undefined}\n ?disabled=${this.disabled}\n start-date=${ifDefined(this.startDate ? this.startDate : undefined)}\n >\n ${!this.hideTodayButton || !this.hideClearButton\n ? html`\n <div class=\"wc-datepicker--button-container\">\n ${!this.hideTodayButton\n ? html`\n <nys-button\n label=\"Today\"\n size=\"sm\"\n fullWidth\n variant=\"outline\"\n ?disabled=${this.disabled}\n @nys-click=${this._handleTodayClick}\n ></nys-button>\n `\n : null}\n ${!this.hideClearButton\n ? html`\n <nys-button\n label=\"Clear\"\n size=\"sm\"\n fullWidth\n variant=\"outline\"\n ?disabled=${this.disabled}\n @nys-click=${this._handleClearClick}\n ></nys-button>\n `\n : null}\n </div>\n `\n : null}\n </wc-datepicker>\n </div>\n </div>\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage || this.errorMessage}\n ></nys-errormessage>`;\n }\n}\n\nif (!customElements.get(\"nys-datepicker\")) {\n customElements.define(\"nys-datepicker\", NysDatepicker);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-divider.scss?inline\";\n\n/**\n * `<nys-divider>` renders a horizontal rule `<hr>` element with optional styling.\n * Can be inverted for dark backgrounds.\n */\nexport class NysDivider extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: Boolean, reflect: true }) inverted = false;\n\n constructor() {\n super();\n }\n\n render() {\n return html`<hr class=\"nys-divider\" />`;\n }\n}\n\nif (!customElements.get(\"nys-divider\")) {\n customElements.define(\"nys-divider\", NysDivider);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-errormessage.scss?inline\";\n\n/**\n * THIS IS A PRIVATE COMPONENT!\n * `<nys-errormessage>` displays an error message for form elements.\n * Can optionally show a divider and supports native form validation messages.\n */\nexport class NysErrorMessage extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: Boolean }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: Boolean, reflect: true }) showDivider = false;\n private _internals: ElementInternals;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n render() {\n return html`${this.showError\n ? html`<div\n class=\"nys-errormessage\"\n ?showDivider=${this.showDivider}\n role=\"alert\"\n >\n <nys-icon name=\"error\" size=\"2xl\"></nys-icon>\n ${this._internals.validationMessage || this.errorMessage}\n </div>`\n : \"\"}`;\n }\n}\n\nif (!customElements.get(\"nys-errormessage\")) {\n customElements.define(\"nys-errormessage\", NysErrorMessage);\n}\n","// The main function for file validation based only on extension and `accept` attribute.\nexport async function validateFileHeader(\n file: File,\n accept: string,\n): Promise<boolean> {\n // 1) If no accept attribute is defined, assume anything is allowed\n if (!accept || accept.trim() === \"\") return true;\n\n // 2) Normalize and parse the accept attribute\n const acceptItems = accept\n .toLowerCase()\n .split(\",\")\n .map((a) => a.trim());\n\n // 3) Get the file extension\n const filename = file.name.toLowerCase();\n const fileExt = filename.includes(\".\") ? filename.split(\".\").pop()! : \"\";\n\n // 4) Check if extension matches any of the accept items\n for (const acceptItem of acceptItems) {\n // Direct extension match (e.g. \".pdf\")\n if (acceptItem.startsWith(\".\") && acceptItem.slice(1) === fileExt) {\n return true;\n }\n\n // Wildcard /* (e.g. \"image/*\") -> match common prefixes\n if (\n acceptItem.endsWith(\"/*\") &&\n file.type.startsWith(acceptItem.slice(0, -1))\n ) {\n return true;\n }\n\n // Exact MIME match\n if (file.type === acceptItem) {\n return true;\n }\n }\n\n // 5) Not matched\n return false;\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-fileitem.scss?inline\";\n\n/**\n * `<nys-fileitem>` displays an individual file in a file input component.\n * It shows the file name, upload status, progress bar, and error messages.\n */\nexport class NysFileItem extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String }) filename = \"\";\n @property({ type: String }) status:\n | \"pending\"\n | \"processing\"\n | \"done\"\n | \"error\" = \"pending\";\n @property({ type: Number }) progress = 0;\n @property({ type: String }) errorMessage = \"\";\n\n private _handleRemove() {\n this.dispatchEvent(\n new CustomEvent(\"nys-fileRemove\", {\n detail: { filename: this.filename },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private splitFilename(filename: string) {\n const lastDotIndex = filename.lastIndexOf(\".\");\n const extension = lastDotIndex !== -1 ? filename.slice(lastDotIndex) : \"\"; // e.g. \".pdf\"\n const name =\n lastDotIndex !== -1 ? filename.slice(0, lastDotIndex) : filename;\n\n const startPart = name.slice(0, name.length - 3);\n const endPart = name.slice(-3);\n\n return { startPart, endPart, extension };\n }\n\n render() {\n const { startPart, endPart, extension } = this.splitFilename(this.filename);\n\n return html`\n <div\n class=\"file-item ${this.status}\"\n aria-busy=${this.status === \"processing\" ? \"true\" : \"false\"}\n aria-label=\"You have selected ${this.filename}\"\n >\n <div class=\"file-item__main\" role=\"group\">\n <nys-icon\n class=\"file-icon\"\n name=${this.status === \"processing\"\n ? \"progress_activity\"\n : this.status === \"error\"\n ? \"error\"\n : \"attach_file\"}\n size=\"2xl\"\n ></nys-icon>\n <div class=\"file-item__info\">\n <div class=\"file-item__info-name\">\n <span class=\"file-item__info-name-start\">${startPart}</span>\n <span class=\"file-item__info-name-end\"\n >${endPart}${extension}</span\n >\n </div>\n ${this.errorMessage\n ? html`<p\n class=\"file-item__error\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-invalid=\"true\"\n aria-errormessage=${this.errorMessage}\n id=\"${this.filename}-error\"\n >\n ${this.errorMessage}\n </p>`\n : null}\n </div>\n <nys-button\n circle\n icon=\"close\"\n ariaLabel=\"close button\"\n size=\"sm\"\n variant=\"ghost\"\n @nys-click=${this._handleRemove}\n ariaLabel=\"Remove file: ${this.filename}\"\n ></nys-button>\n </div>\n ${this.status === \"processing\"\n ? html`<div\n class=\"file-item__progress-container\"\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow=\"${this.progress}\"\n aria-label=\"Upload progress for ${this.filename}\"\n >\n <progress value=${this.progress} max=\"100\"></progress>\n </div>`\n : null}\n </div>\n `;\n }\n}\n\ncustomElements.define(\"nys-fileitem\", NysFileItem);\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { validateFileHeader } from \"./validateFileHeader\";\nimport \"./nys-fileitem\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-fileinput.scss?inline\";\n\nlet fileinputIdCounter = 0;\n\ninterface FileWithProgress {\n file: File;\n progress: number;\n status: \"pending\" | \"processing\" | \"done\" | \"error\";\n errorMsg?: string;\n}\n\n/**\n * `<nys-fileinput>` provides accessible file selection with optional\n * drag-and-drop support, progress tracking, validation, and form submission.\n *\n * Features:\n * - Supports single or multiple file uploads\n * - Optional drag-and-drop dropzone\n * - File type validation and upload progress\n * - Form-associated with native validation behavior\n * - Keyboard and screen reader accessible\n *\n * @slot description - Custom description content under the label\n *\n * @fires nys-change - Fired when files are added or removed\n *\n * @returns {boolean} checkValidity - Returns validity state for form validation\n */\n\nexport class NysFileinput extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: Boolean }) multiple = false;\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String }) tooltip = \"\";\n @property({ type: String }) accept = \"\"; // e.g. \"image/*,.pdf\"\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: Boolean }) dropzone = false;\n @property({ type: String, reflect: true }) width: \"lg\" | \"full\" = \"full\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n\n private _selectedFiles: FileWithProgress[] = [];\n private _dragActive = false;\n private get _isDropDisabled(): boolean {\n return this.disabled || (!this.multiple && this._selectedFiles.length > 0);\n }\n\n private get _buttonAriaLabel(): string {\n if (this._selectedFiles.length === 0) {\n return this.multiple ? \"Choose files: \" : \"Choose file: \";\n }\n\n return this.multiple ? \"Change files: \" : \"Change file: \";\n }\n\n private get _buttonAriaDescription(): string {\n if (this._selectedFiles.length === 0)\n return `${this.label + \" \" + this.description}`;\n\n const hasInvalidFiles = this._selectedFiles.some(\n (file) => file.status === \"error\",\n );\n\n let base = \"\";\n\n if (this._selectedFiles.length === 1) {\n base = `You have selected ${this._selectedFiles[0].file.name}.`;\n } else {\n const fileNames = this._selectedFiles.map((f) => f.file.name).join(\", \");\n base = `You have selected ${this._selectedFiles.length} files: ${fileNames}`;\n }\n\n const error = hasInvalidFiles\n ? \" Error: One or more files are not valid file types.\"\n : \"\";\n\n return `${base}${error}`;\n }\n\n private get _innerNysButton(): HTMLElement | null {\n const nysButton = this.renderRoot.querySelector(\n '[name=\"file-btn\"]',\n ) as HTMLButtonElement | null;\n const innerButton = nysButton?.shadowRoot?.querySelector(\n \"button\",\n ) as HTMLElement | null;\n return innerButton;\n }\n\n private _internals: ElementInternals;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-fileinput-${Date.now()}-${fileinputIdCounter++}`;\n }\n\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n // This ensures our element always participates in the form\n this._setValue();\n }\n\n /**\n * Form Integration\n * --------------------------------------------------------------------------\n */\n private _setValue() {\n // for multiple file uploads, we upload File object as an array\n if (this.multiple) {\n const files = this._selectedFiles.map((entry) => entry.file);\n\n if (files.length > 0) {\n const formData = new FormData();\n files.forEach((file) => {\n formData.append(this.name, file);\n });\n this._internals.setFormValue(formData);\n } else {\n this._internals.setFormValue(null);\n }\n } else {\n const singleFile = this._selectedFiles[0]?.file || null;\n this._internals.setFormValue(singleFile);\n }\n\n this._manageRequire(); // Check validation when value is set\n }\n\n // Called to internally set the initial internalElement required flag.\n private _manageRequire() {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n const message = this.errorMessage || \"Please upload a file.\";\n const isInvalid = this.required && this._selectedFiles.length == 0;\n\n if (isInvalid) {\n this._internals.ariaRequired = \"true\"; // Screen readers should announce error\n this._internals.setValidity({ valueMissing: true }, message, input);\n } else {\n this._internals.ariaRequired = \"false\"; // Reset when valid\n this._internals.setValidity({}, \"\", input);\n }\n }\n\n private _setValidityMessage(message: string = \"\") {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Toggle the HTML <div> tag error message\n this.showError = message === (this.errorMessage || \"Please upload a file.\");\n\n // If user sets errorMessage, this will always override the native validation message\n if (this.errorMessage?.trim() && message !== \"\") {\n message = this.errorMessage;\n }\n\n this._internals.setValidity(\n message ? { customError: true } : {},\n message,\n input,\n );\n }\n\n private _validate() {\n const hasErrorFiles = this._selectedFiles.some(\n (entry) => entry.status === \"error\",\n );\n const isEmpty = this.required && this._selectedFiles.length === 0;\n\n let message = \"\";\n if (isEmpty) {\n message = this.errorMessage || \"Please upload a file.\";\n } else if (hasErrorFiles) {\n message = \"One or more files are invalid.\";\n }\n\n this._setValidityMessage(message);\n }\n\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n const input = this.shadowRoot?.querySelector(\"input\");\n return input ? input.checkValidity() : true;\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this._validate();\n\n const innerButton = this._innerNysButton;\n if (innerButton) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n innerButton.focus();\n innerButton.classList.add(\"active-focus\"); // This class styling is found within <nys-button>\n }\n } else {\n // If not part of a form, simply focus.\n innerButton.focus();\n innerButton.classList.add(\"active-focus\"); // This class styling is found within <nys-button>\n }\n }\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n // Store the files to be displayed\n private async _saveSelectedFiles(file: File) {\n const isDuplicate = this._selectedFiles.some(\n (existingFile) => existingFile.file.name == file.name,\n );\n if (isDuplicate) return;\n\n if (!this.multiple && this._selectedFiles.length >= 1) return;\n\n const entry: FileWithProgress = {\n file,\n progress: 0,\n status: \"pending\",\n };\n\n this._selectedFiles.push(entry);\n await this._processFile(entry);\n\n // Now that the file is added, update form value and validation\n this._setValue();\n this._validate();\n }\n\n // Read the contents of stored files, this will indicate loading progress of the uploaded files\n private async _processFile(entry: FileWithProgress) {\n entry.status = \"processing\";\n\n try {\n const isValid = await validateFileHeader(entry.file, this.accept);\n if (!isValid) {\n entry.status = \"error\";\n entry.errorMsg = \"File type is invalid.\";\n this.requestUpdate();\n return;\n }\n\n const reader = new FileReader();\n\n reader.onprogress = (e) => {\n if (e.lengthComputable) {\n const percentage = Math.round((e.loaded * 100) / e.total);\n entry.progress = percentage;\n this.requestUpdate();\n }\n };\n\n reader.onload = () => {\n entry.progress = 100;\n entry.status = \"done\";\n this.requestUpdate();\n };\n\n reader.onerror = () => {\n entry.status = \"error\";\n entry.errorMsg = \"Failed to load file.\";\n this.requestUpdate();\n };\n\n reader.readAsArrayBuffer(entry.file);\n } catch {\n entry.status = \"error\";\n entry.errorMsg = \"Error validating file.\";\n this.requestUpdate();\n }\n }\n\n private _dispatchChangeEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: { id: this.id, files: this._selectedFiles },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _openFileDialog() {\n const input = this.renderRoot.querySelector(\n \".hidden-file-input\",\n ) as HTMLInputElement;\n\n input?.click();\n }\n\n private _handlePostFileSelectionFocus() {\n if (this.multiple) {\n const innerButton = this._innerNysButton;\n\n if (innerButton) {\n innerButton.focus();\n }\n } else {\n this._focusFirstFileItemIfSingleMode();\n }\n }\n\n private async _focusFirstFileItemIfSingleMode() {\n if (!this.multiple) {\n await this.updateComplete;\n const fileItem = this.renderRoot.querySelector(\n \"nys-fileitem\",\n ) as HTMLElement;\n\n const innerFileItemMainContainer = fileItem?.shadowRoot?.querySelector(\n \".file-item\",\n ) as HTMLElement | null;\n\n if (innerFileItemMainContainer) {\n innerFileItemMainContainer.setAttribute(\"tabindex\", \"-1\");\n innerFileItemMainContainer.focus();\n }\n }\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n // Access the selected files & add new files to the internal list via the hidden <input type=\"file\">\n private _handleFileChange(e: Event) {\n const input = e.target as HTMLInputElement;\n const files = input.files;\n const newFiles = files ? Array.from(files) : []; // changes FileList to array\n\n // Store the uploaded files\n newFiles.map((file) => {\n this._saveSelectedFiles(file);\n });\n\n this.requestUpdate();\n this._dispatchChangeEvent();\n this._handlePostFileSelectionFocus();\n }\n\n private _handleFileRemove(e: CustomEvent) {\n const filenameToRemove = e.detail.filename;\n\n // Remove selected files\n this._selectedFiles = this._selectedFiles.filter(\n (existingFile) => existingFile.file.name !== filenameToRemove,\n );\n\n if (this._selectedFiles.length === 0) {\n const input = this.shadowRoot?.querySelector(\n \"input\",\n ) as HTMLInputElement | null;\n if (input) input.value = \"\";\n }\n\n this._setValue();\n this._validate();\n\n this.requestUpdate();\n this._dispatchChangeEvent();\n }\n\n private _onDragOver(e: DragEvent) {\n if (this.disabled) return;\n\n e.stopPropagation();\n e.preventDefault();\n if (!this._dragActive) {\n this._dragActive = true; // For styling purpose\n this.requestUpdate();\n }\n }\n\n // Mostly used for styling purpose\n private _onDragLeave(e: DragEvent) {\n if (this.disabled) return;\n\n e.stopPropagation();\n e.preventDefault();\n // Only reset if leaving the dropzone itself (not children)\n if (e.currentTarget === e.target) {\n this._dragActive = false; // For styling purpose\n this.requestUpdate();\n }\n }\n\n private _onDrop(e: DragEvent) {\n if (this.disabled) return;\n\n e.preventDefault();\n this._dragActive = false; // For styling purpose\n this.requestUpdate();\n\n const files = e.dataTransfer?.files;\n if (!files) return;\n\n const newFiles = Array.from(files);\n\n if (this.multiple) {\n newFiles.forEach((file) => {\n this._saveSelectedFiles(file);\n });\n } else {\n this._saveSelectedFiles(newFiles[0]);\n }\n\n this.requestUpdate();\n this._dispatchChangeEvent();\n }\n\n render() {\n return html`<div\n class=\"nys-fileinput\"\n @nys-fileRemove=${this._handleFileRemove}\n >\n <nys-label\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n\n <input\n class=\"hidden-file-input\"\n tabindex=\"-1\"\n type=\"file\"\n name=${this.name}\n accept=${this.accept}\n form=${ifDefined(this.form || undefined)}\n ?multiple=${this.multiple}\n ?required=${this.required}\n ?disabled=${this.disabled ||\n (!this.multiple && this._selectedFiles.length > 0)}\n aria-disabled=\"${this.disabled}\"\n aria-hidden=\"true\"\n @change=${this._handleFileChange}\n hidden\n />\n\n ${!this.dropzone\n ? html`<nys-button\n id=\"choose-files-btn\"\n name=\"file-btn\"\n label=${this.multiple ? \"Choose files\" : \"Choose file\"}\n variant=\"outline\"\n ariaLabel=${this._buttonAriaLabel}\n ariaDescription=${this._buttonAriaDescription}\n ?disabled=${this.disabled ||\n (!this.multiple && this._selectedFiles.length > 0)}\n @nys-click=${this._openFileDialog}\n ></nys-button>`\n : html`<div\n class=\"nys-fileinput__dropzone\n ${this._dragActive ? \"drag-active\" : \"\"}\n ${this._isDropDisabled ? \"disabled\" : \"\"}\n ${this.showError && !this._isDropDisabled ? \"error\" : \"\"}\"\n @click=${this._isDropDisabled\n ? null\n : (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n\n // Ignore clicks that originated within a nys-button\n if (target.closest(\"nys-button\")) return;\n\n // Only handle direct wrapper clicks (outside of buttons)\n this._openFileDialog();\n }}\n @dragover=${this._isDropDisabled ? null : this._onDragOver}\n @dragleave=${this._isDropDisabled ? null : this._onDragLeave}\n @drop=${this._isDropDisabled ? null : this._onDrop}\n aria-label=\"Drag files here or choose from folder\"\n >\n ${this._dragActive\n ? html`<p>Drop file to upload</p>`\n : html` <nys-button\n id=\"choose-files-btn-drag\"\n name=\"file-btn\"\n label=${this.multiple ? \"Choose files\" : \"Choose file\"}\n variant=\"outline\"\n ariaLabel=${this._buttonAriaLabel}\n ariaDescription=${this._buttonAriaDescription}\n ?disabled=${this._isDropDisabled}\n @nys-click=\"${(e: CustomEvent) => {\n e.preventDefault();\n e.stopPropagation();\n this._openFileDialog();\n }}\"\n ></nys-button>\n <p>or drag here</p>`}\n </div>`}\n ${this.showError\n ? html`\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage ||\n this.errorMessage}\n ></nys-errormessage>\n `\n : null}\n ${this._selectedFiles.length > 0\n ? html`\n <ul>\n ${this._selectedFiles.map(\n (entry) =>\n html`<li>\n <nys-fileitem\n filename=${entry.file.name}\n status=${entry.status}\n progress=${entry.progress}\n errorMessage=${entry.errorMsg || \"\"}\n ></nys-fileitem>\n </li>`,\n )}\n </ul>\n `\n : null}\n </div>`;\n }\n}\n\nif (!customElements.get(\"nys-fileinput\")) {\n customElements.define(\"nys-fileinput\", NysFileinput);\n}\n","const iconLibrary: Record<string, string> = {\n // --------- UX Team Main Library (below) --------- //\n // *** CORE *** //\n account_circle: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_781\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_781)\">\n <path d=\"M5.85 17.1C6.7 16.45 7.65 15.9375 8.7 15.5625C9.75 15.1875 10.85 15 12 15C13.15 15 14.25 15.1875 15.3 15.5625C16.35 15.9375 17.3 16.45 18.15 17.1C18.7333 16.4167 19.1875 15.6417 19.5125 14.775C19.8375 13.9083 20 12.9833 20 12C20 9.78333 19.2208 7.89583 17.6625 6.3375C16.1042 4.77917 14.2167 4 12 4C9.78333 4 7.89583 4.77917 6.3375 6.3375C4.77917 7.89583 4 9.78333 4 12C4 12.9833 4.1625 13.9083 4.4875 14.775C4.8125 15.6417 5.26667 16.4167 5.85 17.1ZM12 13C11.0167 13 10.1875 12.6625 9.5125 11.9875C8.8375 11.3125 8.5 10.4833 8.5 9.5C8.5 8.51667 8.8375 7.6875 9.5125 7.0125C10.1875 6.3375 11.0167 6 12 6C12.9833 6 13.8125 6.3375 14.4875 7.0125C15.1625 7.6875 15.5 8.51667 15.5 9.5C15.5 10.4833 15.1625 11.3125 14.4875 11.9875C13.8125 12.6625 12.9833 13 12 13ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n attach_file: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_4782_213\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_4782_213)\">\n <path d=\"M18 15.75C18 17.4833 17.3917 18.9583 16.175 20.175C14.9583 21.3917 13.4833 22 11.75 22C10.0167 22 8.54167 21.3917 7.325 20.175C6.10833 18.9583 5.5 17.4833 5.5 15.75V6.5C5.5 5.25 5.9375 4.1875 6.8125 3.3125C7.6875 2.4375 8.75 2 10 2C11.25 2 12.3125 2.4375 13.1875 3.3125C14.0625 4.1875 14.5 5.25 14.5 6.5V15.25C14.5 16.0167 14.2333 16.6667 13.7 17.2C13.1667 17.7333 12.5167 18 11.75 18C10.9833 18 10.3333 17.7333 9.8 17.2C9.26667 16.6667 9 16.0167 9 15.25V7C9 6.71667 9.09583 6.47917 9.2875 6.2875C9.47917 6.09583 9.71667 6 10 6C10.2833 6 10.5208 6.09583 10.7125 6.2875C10.9042 6.47917 11 6.71667 11 7V15.25C11 15.4667 11.0708 15.6458 11.2125 15.7875C11.3542 15.9292 11.5333 16 11.75 16C11.9667 16 12.1458 15.9292 12.2875 15.7875C12.4292 15.6458 12.5 15.4667 12.5 15.25V6.5C12.4833 5.8 12.2375 5.20833 11.7625 4.725C11.2875 4.24167 10.7 4 10 4C9.3 4 8.70833 4.24167 8.225 4.725C7.74167 5.20833 7.5 5.8 7.5 6.5V15.75C7.48333 16.9333 7.89167 17.9375 8.725 18.7625C9.55833 19.5875 10.5667 20 11.75 20C12.9167 20 13.9083 19.5875 14.725 18.7625C15.5417 17.9375 15.9667 16.9333 16 15.75V7C16 6.71667 16.0958 6.47917 16.2875 6.2875C16.4792 6.09583 16.7167 6 17 6C17.2833 6 17.5208 6.09583 17.7125 6.2875C17.9042 6.47917 18 6.71667 18 7V15.75Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n calendar_month: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_304\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_304)\">\n <path d=\"M5 22C4.45 22 3.97917 21.8042 3.5875 21.4125C3.19583 21.0208 3 20.55 3 20V6C3 5.45 3.19583 4.97917 3.5875 4.5875C3.97917 4.19583 4.45 4 5 4H6V3C6 2.71667 6.09583 2.47917 6.2875 2.2875C6.47917 2.09583 6.71667 2 7 2C7.28333 2 7.52083 2.09583 7.7125 2.2875C7.90417 2.47917 8 2.71667 8 3V4H16V3C16 2.71667 16.0958 2.47917 16.2875 2.2875C16.4792 2.09583 16.7167 2 17 2C17.2833 2 17.5208 2.09583 17.7125 2.2875C17.9042 2.47917 18 2.71667 18 3V4H19C19.55 4 20.0208 4.19583 20.4125 4.5875C20.8042 4.97917 21 5.45 21 6V20C21 20.55 20.8042 21.0208 20.4125 21.4125C20.0208 21.8042 19.55 22 19 22H5ZM5 20H19V10H5V20ZM5 8H19V6H5V8ZM12 14C11.7167 14 11.4792 13.9042 11.2875 13.7125C11.0958 13.5208 11 13.2833 11 13C11 12.7167 11.0958 12.4792 11.2875 12.2875C11.4792 12.0958 11.7167 12 12 12C12.2833 12 12.5208 12.0958 12.7125 12.2875C12.9042 12.4792 13 12.7167 13 13C13 13.2833 12.9042 13.5208 12.7125 13.7125C12.5208 13.9042 12.2833 14 12 14ZM8 14C7.71667 14 7.47917 13.9042 7.2875 13.7125C7.09583 13.5208 7 13.2833 7 13C7 12.7167 7.09583 12.4792 7.2875 12.2875C7.47917 12.0958 7.71667 12 8 12C8.28333 12 8.52083 12.0958 8.7125 12.2875C8.90417 12.4792 9 12.7167 9 13C9 13.2833 8.90417 13.5208 8.7125 13.7125C8.52083 13.9042 8.28333 14 8 14ZM16 14C15.7167 14 15.4792 13.9042 15.2875 13.7125C15.0958 13.5208 15 13.2833 15 13C15 12.7167 15.0958 12.4792 15.2875 12.2875C15.4792 12.0958 15.7167 12 16 12C16.2833 12 16.5208 12.0958 16.7125 12.2875C16.9042 12.4792 17 12.7167 17 13C17 13.2833 16.9042 13.5208 16.7125 13.7125C16.5208 13.9042 16.2833 14 16 14ZM12 18C11.7167 18 11.4792 17.9042 11.2875 17.7125C11.0958 17.5208 11 17.2833 11 17C11 16.7167 11.0958 16.4792 11.2875 16.2875C11.4792 16.0958 11.7167 16 12 16C12.2833 16 12.5208 16.0958 12.7125 16.2875C12.9042 16.4792 13 16.7167 13 17C13 17.2833 12.9042 17.5208 12.7125 17.7125C12.5208 17.9042 12.2833 18 12 18ZM8 18C7.71667 18 7.47917 17.9042 7.2875 17.7125C7.09583 17.5208 7 17.2833 7 17C7 16.7167 7.09583 16.4792 7.2875 16.2875C7.47917 16.0958 7.71667 16 8 16C8.28333 16 8.52083 16.0958 8.7125 16.2875C8.90417 16.4792 9 16.7167 9 17C9 17.2833 8.90417 17.5208 8.7125 17.7125C8.52083 17.9042 8.28333 18 8 18ZM16 18C15.7167 18 15.4792 17.9042 15.2875 17.7125C15.0958 17.5208 15 17.2833 15 17C15 16.7167 15.0958 16.4792 15.2875 16.2875C15.4792 16.0958 15.7167 16 16 16C16.2833 16 16.5208 16.0958 16.7125 16.2875C16.9042 16.4792 17 16.7167 17 17C17 17.2833 16.9042 17.5208 16.7125 17.7125C16.5208 17.9042 16.2833 18 16 18Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n cancel: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_659\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_659)\">\n <path d=\"M12 13.4L14.9 16.3C15.0833 16.4833 15.3167 16.575 15.6 16.575C15.8833 16.575 16.1167 16.4833 16.3 16.3C16.4833 16.1167 16.575 15.8833 16.575 15.6C16.575 15.3167 16.4833 15.0833 16.3 14.9L13.4 12L16.3 9.1C16.4833 8.91667 16.575 8.68333 16.575 8.4C16.575 8.11667 16.4833 7.88333 16.3 7.7C16.1167 7.51667 15.8833 7.425 15.6 7.425C15.3167 7.425 15.0833 7.51667 14.9 7.7L12 10.6L9.1 7.7C8.91667 7.51667 8.68333 7.425 8.4 7.425C8.11667 7.425 7.88333 7.51667 7.7 7.7C7.51667 7.88333 7.425 8.11667 7.425 8.4C7.425 8.68333 7.51667 8.91667 7.7 9.1L10.6 12L7.7 14.9C7.51667 15.0833 7.425 15.3167 7.425 15.6C7.425 15.8833 7.51667 16.1167 7.7 16.3C7.88333 16.4833 8.11667 16.575 8.4 16.575C8.68333 16.575 8.91667 16.4833 9.1 16.3L12 13.4ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n check: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_648\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_648)\">\n <path d=\"M9.54996 15.15L18.025 6.675C18.225 6.475 18.4583 6.375 18.725 6.375C18.9916 6.375 19.225 6.475 19.425 6.675C19.625 6.875 19.725 7.1125 19.725 7.3875C19.725 7.6625 19.625 7.9 19.425 8.1L10.25 17.3C10.05 17.5 9.81663 17.6 9.54996 17.6C9.2833 17.6 9.04996 17.5 8.84996 17.3L4.54996 13C4.34996 12.8 4.25413 12.5625 4.26246 12.2875C4.2708 12.0125 4.37496 11.775 4.57496 11.575C4.77496 11.375 5.01246 11.275 5.28746 11.275C5.56246 11.275 5.79996 11.375 5.99996 11.575L9.54996 15.15Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n close: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12383_539\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12383_539)\">\n <path d=\"M12 13.4L7.10005 18.3C6.91672 18.4833 6.68338 18.575 6.40005 18.575C6.11672 18.575 5.88338 18.4833 5.70005 18.3C5.51672 18.1167 5.42505 17.8833 5.42505 17.6C5.42505 17.3167 5.51672 17.0833 5.70005 16.9L10.6 12L5.70005 7.09999C5.51672 6.91665 5.42505 6.68332 5.42505 6.39999C5.42505 6.11665 5.51672 5.88332 5.70005 5.69999C5.88338 5.51665 6.11672 5.42499 6.40005 5.42499C6.68338 5.42499 6.91672 5.51665 7.10005 5.69999L12 10.6L16.9 5.69999C17.0834 5.51665 17.3167 5.42499 17.6 5.42499C17.8834 5.42499 18.1167 5.51665 18.3 5.69999C18.4834 5.88332 18.575 6.11665 18.575 6.39999C18.575 6.68332 18.4834 6.91665 18.3 7.09999L13.4 12L18.3 16.9C18.4834 17.0833 18.575 17.3167 18.575 17.6C18.575 17.8833 18.4834 18.1167 18.3 18.3C18.1167 18.4833 17.8834 18.575 17.6 18.575C17.3167 18.575 17.0834 18.4833 16.9 18.3L12 13.4Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n code: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_8115_296\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_8115_296)\">\n <path d=\"M4.82505 12.025L8.70005 15.9C8.88338 16.0834 8.97505 16.3167 8.97505 16.6C8.97505 16.8834 8.88338 17.1167 8.70005 17.3C8.51672 17.4834 8.28338 17.575 8.00005 17.575C7.71672 17.575 7.48338 17.4834 7.30005 17.3L2.70005 12.7C2.60005 12.6 2.52922 12.4917 2.48755 12.375C2.44588 12.2584 2.42505 12.1334 2.42505 12C2.42505 11.8667 2.44588 11.7417 2.48755 11.625C2.52922 11.5084 2.60005 11.4 2.70005 11.3L7.30005 6.70002C7.50005 6.50002 7.73755 6.40002 8.01255 6.40002C8.28755 6.40002 8.52505 6.50002 8.72505 6.70002C8.92505 6.90002 9.02505 7.13752 9.02505 7.41252C9.02505 7.68752 8.92505 7.92502 8.72505 8.12502L4.82505 12.025ZM19.175 11.975L15.3 8.10002C15.1167 7.91669 15.025 7.68336 15.025 7.40002C15.025 7.11669 15.1167 6.88336 15.3 6.70002C15.4834 6.51669 15.7167 6.42502 16 6.42502C16.2834 6.42502 16.5167 6.51669 16.7 6.70002L21.3 11.3C21.4 11.4 21.4709 11.5084 21.5125 11.625C21.5542 11.7417 21.575 11.8667 21.575 12C21.575 12.1334 21.5542 12.2584 21.5125 12.375C21.4709 12.4917 21.4 12.6 21.3 12.7L16.7 17.3C16.5 17.5 16.2667 17.5959 16 17.5875C15.7334 17.5792 15.5 17.475 15.3 17.275C15.1 17.075 15 16.8375 15 16.5625C15 16.2875 15.1 16.05 15.3 15.85L19.175 11.975Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n download: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_255\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_255)\">\n <path d=\"M12 15.575C11.8667 15.575 11.7417 15.5542 11.625 15.5125C11.5083 15.4708 11.4 15.4 11.3 15.3L7.7 11.7C7.5 11.5 7.40417 11.2667 7.4125 11C7.42083 10.7333 7.51667 10.5 7.7 10.3C7.9 10.1 8.1375 9.99583 8.4125 9.9875C8.6875 9.97917 8.925 10.075 9.125 10.275L11 12.15V5C11 4.71667 11.0958 4.47917 11.2875 4.2875C11.4792 4.09583 11.7167 4 12 4C12.2833 4 12.5208 4.09583 12.7125 4.2875C12.9042 4.47917 13 4.71667 13 5V12.15L14.875 10.275C15.075 10.075 15.3125 9.97917 15.5875 9.9875C15.8625 9.99583 16.1 10.1 16.3 10.3C16.4833 10.5 16.5792 10.7333 16.5875 11C16.5958 11.2667 16.5 11.5 16.3 11.7L12.7 15.3C12.6 15.4 12.4917 15.4708 12.375 15.5125C12.2583 15.5542 12.1333 15.575 12 15.575ZM6 20C5.45 20 4.97917 19.8042 4.5875 19.4125C4.19583 19.0208 4 18.55 4 18V16C4 15.7167 4.09583 15.4792 4.2875 15.2875C4.47917 15.0958 4.71667 15 5 15C5.28333 15 5.52083 15.0958 5.7125 15.2875C5.90417 15.4792 6 15.7167 6 16V18H18V16C18 15.7167 18.0958 15.4792 18.2875 15.2875C18.4792 15.0958 18.7167 15 19 15C19.2833 15 19.5208 15.0958 19.7125 15.2875C19.9042 15.4792 20 15.7167 20 16V18C20 18.55 19.8042 19.0208 19.4125 19.4125C19.0208 19.8042 18.55 20 18 20H6Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n download_done: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_634\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_634)\">\n <path d=\"M9.54999 13.15L18 4.70002C18.2 4.50002 18.4375 4.40002 18.7125 4.40002C18.9875 4.40002 19.225 4.50002 19.425 4.70002C19.625 4.90002 19.725 5.13752 19.725 5.41252C19.725 5.68752 19.625 5.92502 19.425 6.12502L10.25 15.3C10.05 15.5 9.81665 15.6 9.54999 15.6C9.28332 15.6 9.04999 15.5 8.84999 15.3L4.57499 11.025C4.37499 10.825 4.27915 10.5875 4.28749 10.3125C4.29582 10.0375 4.39999 9.80002 4.59999 9.60002C4.79999 9.40002 5.03749 9.30002 5.31249 9.30002C5.58749 9.30002 5.82499 9.40002 6.02499 9.60002L9.54999 13.15ZM5.99999 20C5.71665 20 5.47915 19.9042 5.28749 19.7125C5.09582 19.5209 4.99999 19.2834 4.99999 19C4.99999 18.7167 5.09582 18.4792 5.28749 18.2875C5.47915 18.0959 5.71665 18 5.99999 18H18C18.2833 18 18.5208 18.0959 18.7125 18.2875C18.9042 18.4792 19 18.7167 19 19C19 19.2834 18.9042 19.5209 18.7125 19.7125C18.5208 19.9042 18.2833 20 18 20H12H5.99999Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n drive_folder_upload: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_546\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_546)\">\n <path d=\"M4 20C3.45 20 2.97917 19.8042 2.5875 19.4125C2.19583 19.0208 2 18.55 2 18V6C2 5.45 2.19583 4.97917 2.5875 4.5875C2.97917 4.19583 3.45 4 4 4H9.175C9.44167 4 9.69583 4.05 9.9375 4.15C10.1792 4.25 10.3917 4.39167 10.575 4.575L12 6H20C20.55 6 21.0208 6.19583 21.4125 6.5875C21.8042 6.97917 22 7.45 22 8V18C22 18.55 21.8042 19.0208 21.4125 19.4125C21.0208 19.8042 20.55 20 20 20H4ZM4 18H20V8H11.175L9.175 6H4V18ZM12 17C12.2833 17 12.5208 16.9042 12.7125 16.7125C12.9042 16.5208 13 16.2833 13 16V12.8L13.9 13.7C14.0833 13.8833 14.3167 13.975 14.6 13.975C14.8833 13.975 15.1167 13.8833 15.3 13.7C15.4833 13.5167 15.575 13.2833 15.575 13C15.575 12.7167 15.4833 12.4833 15.3 12.3L12.7 9.7C12.5 9.5 12.2667 9.4 12 9.4C11.7333 9.4 11.5 9.5 11.3 9.7L8.7 12.3C8.51667 12.4833 8.425 12.7167 8.425 13C8.425 13.2833 8.51667 13.5167 8.7 13.7C8.88333 13.8833 9.11667 13.975 9.4 13.975C9.68333 13.975 9.91667 13.8833 10.1 13.7L11 12.8V16C11 16.2833 11.0958 16.5208 11.2875 16.7125C11.4792 16.9042 11.7167 17 12 17Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n edit_square: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_616\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_616)\">\n <path d=\"M5 21C4.45 21 3.97917 20.8041 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V4.99998C3 4.44998 3.19583 3.97914 3.5875 3.58748C3.97917 3.19581 4.45 2.99998 5 2.99998H11.525C11.8583 2.99998 12.1083 3.10414 12.275 3.31248C12.4417 3.52081 12.525 3.74998 12.525 3.99998C12.525 4.24998 12.4375 4.47914 12.2625 4.68748C12.0875 4.89581 11.8333 4.99998 11.5 4.99998H5V19H19V12.475C19 12.1416 19.1042 11.8916 19.3125 11.725C19.5208 11.5583 19.75 11.475 20 11.475C20.25 11.475 20.4792 11.5583 20.6875 11.725C20.8958 11.8916 21 12.1416 21 12.475V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8041 19.55 21 19 21H5ZM9 14V11.575C9 11.3083 9.05 11.0541 9.15 10.8125C9.25 10.5708 9.39167 10.3583 9.575 10.175L18.175 1.57498C18.375 1.37498 18.6 1.22498 18.85 1.12498C19.1 1.02498 19.35 0.974976 19.6 0.974976C19.8667 0.974976 20.1208 1.02498 20.3625 1.12498C20.6042 1.22498 20.825 1.37498 21.025 1.57498L22.425 2.99998C22.6083 3.19998 22.75 3.42081 22.85 3.66248C22.95 3.90414 23 4.14998 23 4.39998C23 4.64998 22.9542 4.89581 22.8625 5.13748C22.7708 5.37914 22.625 5.59998 22.425 5.79998L13.825 14.4C13.6417 14.5833 13.4292 14.7291 13.1875 14.8375C12.9458 14.9458 12.6917 15 12.425 15H10C9.71667 15 9.47917 14.9041 9.2875 14.7125C9.09583 14.5208 9 14.2833 9 14ZM11 13H12.4L18.2 7.19998L17.5 6.49998L16.775 5.79998L11 11.575V13Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n expand_all: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_13942_344\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_13942_344)\">\n <path d=\"M12 19.15L15.875 15.275C16.075 15.075 16.3083 14.975 16.575 14.975C16.8417 14.975 17.075 15.075 17.275 15.275C17.475 15.475 17.575 15.7125 17.575 15.9875C17.575 16.2625 17.475 16.5 17.275 16.7L13.425 20.575C13.0417 20.9583 12.5667 21.15 12 21.15C11.4333 21.15 10.9583 20.9583 10.575 20.575L6.69999 16.7C6.49999 16.5 6.40415 16.2625 6.41249 15.9875C6.42082 15.7125 6.52499 15.475 6.72499 15.275C6.92499 15.075 7.16249 14.975 7.43749 14.975C7.71249 14.975 7.94999 15.075 8.14999 15.275L12 19.15ZM12 4.84998L8.14999 8.69998C7.94999 8.89998 7.71665 8.99581 7.44999 8.98748C7.18332 8.97914 6.94999 8.88331 6.74999 8.69998C6.54999 8.49998 6.44582 8.26248 6.43749 7.98748C6.42915 7.71248 6.52499 7.47498 6.72499 7.27498L10.575 3.42498C10.9583 3.04164 11.4333 2.84998 12 2.84998C12.5667 2.84998 13.0417 3.04164 13.425 3.42498L17.275 7.27498C17.475 7.47498 17.5708 7.71248 17.5625 7.98748C17.5542 8.26248 17.45 8.49998 17.25 8.69998C17.05 8.88331 16.8167 8.97914 16.55 8.98748C16.2833 8.99581 16.05 8.89998 15.85 8.69998L12 4.84998Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n help: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_153\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_153)\">\n <path d=\"M11.95 18C12.3 18 12.5958 17.8792 12.8375 17.6375C13.0792 17.3958 13.2 17.1 13.2 16.75C13.2 16.4 13.0792 16.1042 12.8375 15.8625C12.5958 15.6208 12.3 15.5 11.95 15.5C11.6 15.5 11.3042 15.6208 11.0625 15.8625C10.8208 16.1042 10.7 16.4 10.7 16.75C10.7 17.1 10.8208 17.3958 11.0625 17.6375C11.3042 17.8792 11.6 18 11.95 18ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20ZM12.1 7.7C12.5167 7.7 12.8792 7.83333 13.1875 8.1C13.4958 8.36667 13.65 8.7 13.65 9.1C13.65 9.46667 13.5375 9.79167 13.3125 10.075C13.0875 10.3583 12.8333 10.625 12.55 10.875C12.1667 11.2083 11.8292 11.575 11.5375 11.975C11.2458 12.375 11.1 12.825 11.1 13.325C11.1 13.5583 11.1875 13.7542 11.3625 13.9125C11.5375 14.0708 11.7417 14.15 11.975 14.15C12.225 14.15 12.4375 14.0667 12.6125 13.9C12.7875 13.7333 12.9 13.525 12.95 13.275C13.0167 12.925 13.1667 12.6125 13.4 12.3375C13.6333 12.0625 13.8833 11.8 14.15 11.55C14.5333 11.1833 14.8625 10.7833 15.1375 10.35C15.4125 9.91667 15.55 9.43333 15.55 8.9C15.55 8.05 15.2042 7.35417 14.5125 6.8125C13.8208 6.27083 13.0167 6 12.1 6C11.4667 6 10.8625 6.13333 10.2875 6.4C9.7125 6.66667 9.275 7.075 8.975 7.625C8.85833 7.825 8.82083 8.0375 8.8625 8.2625C8.90417 8.4875 9.01667 8.65833 9.2 8.775C9.43333 8.90833 9.675 8.95 9.925 8.9C10.175 8.85 10.3833 8.70833 10.55 8.475C10.7333 8.225 10.9625 8.03333 11.2375 7.9C11.5125 7.76667 11.8 7.7 12.1 7.7Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n language: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_211\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_211)\">\n <path d=\"M12 22C10.6333 22 9.34167 21.7375 8.125 21.2125C6.90833 20.6875 5.84583 19.9708 4.9375 19.0625C4.02917 18.1542 3.3125 17.0917 2.7875 15.875C2.2625 14.6583 2 13.3667 2 12C2 10.6167 2.2625 9.32083 2.7875 8.1125C3.3125 6.90417 4.02917 5.84583 4.9375 4.9375C5.84583 4.02917 6.90833 3.3125 8.125 2.7875C9.34167 2.2625 10.6333 2 12 2C13.3833 2 14.6792 2.2625 15.8875 2.7875C17.0958 3.3125 18.1542 4.02917 19.0625 4.9375C19.9708 5.84583 20.6875 6.90417 21.2125 8.1125C21.7375 9.32083 22 10.6167 22 12C22 13.3667 21.7375 14.6583 21.2125 15.875C20.6875 17.0917 19.9708 18.1542 19.0625 19.0625C18.1542 19.9708 17.0958 20.6875 15.8875 21.2125C14.6792 21.7375 13.3833 22 12 22ZM12 19.95C12.4333 19.35 12.8083 18.725 13.125 18.075C13.4417 17.425 13.7 16.7333 13.9 16H10.1C10.3 16.7333 10.5583 17.425 10.875 18.075C11.1917 18.725 11.5667 19.35 12 19.95ZM9.4 19.55C9.1 19 8.8375 18.4292 8.6125 17.8375C8.3875 17.2458 8.2 16.6333 8.05 16H5.1C5.58333 16.8333 6.1875 17.5583 6.9125 18.175C7.6375 18.7917 8.46667 19.25 9.4 19.55ZM14.6 19.55C15.5333 19.25 16.3625 18.7917 17.0875 18.175C17.8125 17.5583 18.4167 16.8333 18.9 16H15.95C15.8 16.6333 15.6125 17.2458 15.3875 17.8375C15.1625 18.4292 14.9 19 14.6 19.55ZM4.25 14H7.65C7.6 13.6667 7.5625 13.3375 7.5375 13.0125C7.5125 12.6875 7.5 12.35 7.5 12C7.5 11.65 7.5125 11.3125 7.5375 10.9875C7.5625 10.6625 7.6 10.3333 7.65 10H4.25C4.16667 10.3333 4.10417 10.6625 4.0625 10.9875C4.02083 11.3125 4 11.65 4 12C4 12.35 4.02083 12.6875 4.0625 13.0125C4.10417 13.3375 4.16667 13.6667 4.25 14ZM9.65 14H14.35C14.4 13.6667 14.4375 13.3375 14.4625 13.0125C14.4875 12.6875 14.5 12.35 14.5 12C14.5 11.65 14.4875 11.3125 14.4625 10.9875C14.4375 10.6625 14.4 10.3333 14.35 10H9.65C9.6 10.3333 9.5625 10.6625 9.5375 10.9875C9.5125 11.3125 9.5 11.65 9.5 12C9.5 12.35 9.5125 12.6875 9.5375 13.0125C9.5625 13.3375 9.6 13.6667 9.65 14ZM16.35 14H19.75C19.8333 13.6667 19.8958 13.3375 19.9375 13.0125C19.9792 12.6875 20 12.35 20 12C20 11.65 19.9792 11.3125 19.9375 10.9875C19.8958 10.6625 19.8333 10.3333 19.75 10H16.35C16.4 10.3333 16.4375 10.6625 16.4625 10.9875C16.4875 11.3125 16.5 11.65 16.5 12C16.5 12.35 16.4875 12.6875 16.4625 13.0125C16.4375 13.3375 16.4 13.6667 16.35 14ZM15.95 8H18.9C18.4167 7.16667 17.8125 6.44167 17.0875 5.825C16.3625 5.20833 15.5333 4.75 14.6 4.45C14.9 5 15.1625 5.57083 15.3875 6.1625C15.6125 6.75417 15.8 7.36667 15.95 8ZM10.1 8H13.9C13.7 7.26667 13.4417 6.575 13.125 5.925C12.8083 5.275 12.4333 4.65 12 4.05C11.5667 4.65 11.1917 5.275 10.875 5.925C10.5583 6.575 10.3 7.26667 10.1 8ZM5.1 8H8.05C8.2 7.36667 8.3875 6.75417 8.6125 6.1625C8.8375 5.57083 9.1 5 9.4 4.45C8.46667 4.75 7.6375 5.20833 6.9125 5.825C6.1875 6.44167 5.58333 7.16667 5.1 8Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n link: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_7578_270\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_7578_270)\">\n <path d=\"M7 17C5.61667 17 4.4375 16.5125 3.4625 15.5375C2.4875 14.5625 2 13.3833 2 12C2 10.6167 2.4875 9.4375 3.4625 8.4625C4.4375 7.4875 5.61667 7 7 7H10C10.2833 7 10.5208 7.09583 10.7125 7.2875C10.9042 7.47917 11 7.71667 11 8C11 8.28333 10.9042 8.52083 10.7125 8.7125C10.5208 8.90417 10.2833 9 10 9H7C6.16667 9 5.45833 9.29167 4.875 9.875C4.29167 10.4583 4 11.1667 4 12C4 12.8333 4.29167 13.5417 4.875 14.125C5.45833 14.7083 6.16667 15 7 15H10C10.2833 15 10.5208 15.0958 10.7125 15.2875C10.9042 15.4792 11 15.7167 11 16C11 16.2833 10.9042 16.5208 10.7125 16.7125C10.5208 16.9042 10.2833 17 10 17H7ZM9 13C8.71667 13 8.47917 12.9042 8.2875 12.7125C8.09583 12.5208 8 12.2833 8 12C8 11.7167 8.09583 11.4792 8.2875 11.2875C8.47917 11.0958 8.71667 11 9 11H15C15.2833 11 15.5208 11.0958 15.7125 11.2875C15.9042 11.4792 16 11.7167 16 12C16 12.2833 15.9042 12.5208 15.7125 12.7125C15.5208 12.9042 15.2833 13 15 13H9ZM14 17C13.7167 17 13.4792 16.9042 13.2875 16.7125C13.0958 16.5208 13 16.2833 13 16C13 15.7167 13.0958 15.4792 13.2875 15.2875C13.4792 15.0958 13.7167 15 14 15H17C17.8333 15 18.5417 14.7083 19.125 14.125C19.7083 13.5417 20 12.8333 20 12C20 11.1667 19.7083 10.4583 19.125 9.875C18.5417 9.29167 17.8333 9 17 9H14C13.7167 9 13.4792 8.90417 13.2875 8.7125C13.0958 8.52083 13 8.28333 13 8C13 7.71667 13.0958 7.47917 13.2875 7.2875C13.4792 7.09583 13.7167 7 14 7H17C18.3833 7 19.5625 7.4875 20.5375 8.4625C21.5125 9.4375 22 10.6167 22 12C22 13.3833 21.5125 14.5625 20.5375 15.5375C19.5625 16.5125 18.3833 17 17 17H14Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n mail: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_7578_308\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_7578_308)\">\n <path d=\"M4 20C3.45 20 2.97917 19.8042 2.5875 19.4125C2.19583 19.0208 2 18.55 2 18V6C2 5.45 2.19583 4.97917 2.5875 4.5875C2.97917 4.19583 3.45 4 4 4H20C20.55 4 21.0208 4.19583 21.4125 4.5875C21.8042 4.97917 22 5.45 22 6V18C22 18.55 21.8042 19.0208 21.4125 19.4125C21.0208 19.8042 20.55 20 20 20H4ZM20 8L12.525 12.675C12.4417 12.725 12.3542 12.7625 12.2625 12.7875C12.1708 12.8125 12.0833 12.825 12 12.825C11.9167 12.825 11.8292 12.8125 11.7375 12.7875C11.6458 12.7625 11.5583 12.725 11.475 12.675L4 8V18H20V8ZM12 11L20 6H4L12 11ZM4 8.25V6.775V6.8V6.7875V8.25Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n menu: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_150\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_150)\">\n <path d=\"M4 18C3.71667 18 3.47917 17.9042 3.2875 17.7125C3.09583 17.5208 3 17.2833 3 17C3 16.7167 3.09583 16.4792 3.2875 16.2875C3.47917 16.0958 3.71667 16 4 16H20C20.2833 16 20.5208 16.0958 20.7125 16.2875C20.9042 16.4792 21 16.7167 21 17C21 17.2833 20.9042 17.5208 20.7125 17.7125C20.5208 17.9042 20.2833 18 20 18H4ZM4 13C3.71667 13 3.47917 12.9042 3.2875 12.7125C3.09583 12.5208 3 12.2833 3 12C3 11.7167 3.09583 11.4792 3.2875 11.2875C3.47917 11.0958 3.71667 11 4 11H20C20.2833 11 20.5208 11.0958 20.7125 11.2875C20.9042 11.4792 21 11.7167 21 12C21 12.2833 20.9042 12.5208 20.7125 12.7125C20.5208 12.9042 20.2833 13 20 13H4ZM4 8C3.71667 8 3.47917 7.90417 3.2875 7.7125C3.09583 7.52083 3 7.28333 3 7C3 6.71667 3.09583 6.47917 3.2875 6.2875C3.47917 6.09583 3.71667 6 4 6H20C20.2833 6 20.5208 6.09583 20.7125 6.2875C20.9042 6.47917 21 6.71667 21 7C21 7.28333 20.9042 7.52083 20.7125 7.7125C20.5208 7.90417 20.2833 8 20 8H4Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n more_vert: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_728\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_728)\">\n <path d=\"M12 20C11.45 20 10.9792 19.8042 10.5875 19.4125C10.1958 19.0208 10 18.55 10 18C10 17.45 10.1958 16.9792 10.5875 16.5875C10.9792 16.1958 11.45 16 12 16C12.55 16 13.0208 16.1958 13.4125 16.5875C13.8042 16.9792 14 17.45 14 18C14 18.55 13.8042 19.0208 13.4125 19.4125C13.0208 19.8042 12.55 20 12 20ZM12 14C11.45 14 10.9792 13.8042 10.5875 13.4125C10.1958 13.0208 10 12.55 10 12C10 11.45 10.1958 10.9792 10.5875 10.5875C10.9792 10.1958 11.45 10 12 10C12.55 10 13.0208 10.1958 13.4125 10.5875C13.8042 10.9792 14 11.45 14 12C14 12.55 13.8042 13.0208 13.4125 13.4125C13.0208 13.8042 12.55 14 12 14ZM12 8C11.45 8 10.9792 7.80417 10.5875 7.4125C10.1958 7.02083 10 6.55 10 6C10 5.45 10.1958 4.97917 10.5875 4.5875C10.9792 4.19583 11.45 4 12 4C12.55 4 13.0208 4.19583 13.4125 4.5875C13.8042 4.97917 14 5.45 14 6C14 6.55 13.8042 7.02083 13.4125 7.4125C13.0208 7.80417 12.55 8 12 8Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n open_in_new: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_351\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_351)\">\n <path d=\"M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H11C11.2833 3 11.5208 3.09583 11.7125 3.2875C11.9042 3.47917 12 3.71667 12 4C12 4.28333 11.9042 4.52083 11.7125 4.7125C11.5208 4.90417 11.2833 5 11 5H5V19H19V13C19 12.7167 19.0958 12.4792 19.2875 12.2875C19.4792 12.0958 19.7167 12 20 12C20.2833 12 20.5208 12.0958 20.7125 12.2875C20.9042 12.4792 21 12.7167 21 13V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5ZM19 6.4L10.4 15C10.2167 15.1833 9.98333 15.275 9.7 15.275C9.41667 15.275 9.18333 15.1833 9 15C8.81667 14.8167 8.725 14.5833 8.725 14.3C8.725 14.0167 8.81667 13.7833 9 13.6L17.6 5H15C14.7167 5 14.4792 4.90417 14.2875 4.7125C14.0958 4.52083 14 4.28333 14 4C14 3.71667 14.0958 3.47917 14.2875 3.2875C14.4792 3.09583 14.7167 3 15 3H20C20.2833 3 20.5208 3.09583 20.7125 3.2875C20.9042 3.47917 21 3.71667 21 4V9C21 9.28333 20.9042 9.52083 20.7125 9.7125C20.5208 9.90417 20.2833 10 20 10C19.7167 10 19.4792 9.90417 19.2875 9.7125C19.0958 9.52083 19 9.28333 19 9V6.4Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n print: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_5058_681\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_5058_681)\">\n <path d=\"M8 21C7.45 21 6.97917 20.8042 6.5875 20.4125C6.19583 20.0208 6 19.55 6 19V17H4C3.45 17 2.97917 16.8042 2.5875 16.4125C2.19583 16.0208 2 15.55 2 15V11C2 10.15 2.29167 9.4375 2.875 8.8625C3.45833 8.2875 4.16667 8 5 8H19C19.85 8 20.5625 8.2875 21.1375 8.8625C21.7125 9.4375 22 10.15 22 11V15C22 15.55 21.8042 16.0208 21.4125 16.4125C21.0208 16.8042 20.55 17 20 17H18V19C18 19.55 17.8042 20.0208 17.4125 20.4125C17.0208 20.8042 16.55 21 16 21H8ZM4 15H6C6 14.45 6.19583 13.9792 6.5875 13.5875C6.97917 13.1958 7.45 13 8 13H16C16.55 13 17.0208 13.1958 17.4125 13.5875C17.8042 13.9792 18 14.45 18 15H20V11C20 10.7167 19.9042 10.4792 19.7125 10.2875C19.5208 10.0958 19.2833 10 19 10H5C4.71667 10 4.47917 10.0958 4.2875 10.2875C4.09583 10.4792 4 10.7167 4 11V15ZM16 8V5H8V8H6V5C6 4.45 6.19583 3.97917 6.5875 3.5875C6.97917 3.19583 7.45 3 8 3H16C16.55 3 17.0208 3.19583 17.4125 3.5875C17.8042 3.97917 18 4.45 18 5V8H16ZM18 12.5C18.2833 12.5 18.5208 12.4042 18.7125 12.2125C18.9042 12.0208 19 11.7833 19 11.5C19 11.2167 18.9042 10.9792 18.7125 10.7875C18.5208 10.5958 18.2833 10.5 18 10.5C17.7167 10.5 17.4792 10.5958 17.2875 10.7875C17.0958 10.9792 17 11.2167 17 11.5C17 11.7833 17.0958 12.0208 17.2875 12.2125C17.4792 12.4042 17.7167 12.5 18 12.5ZM16 19V15H8V19H16Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n phone_in_talk: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_10908_589\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_10908_589)\">\n <path d=\"M20 12C19.7333 12 19.4958 11.9042 19.2875 11.7125C19.0792 11.5208 18.9583 11.2833 18.925 11C18.7083 9.45 18.0542 8.12917 16.9625 7.0375C15.8708 5.94583 14.55 5.29167 13 5.075C12.7167 5.04167 12.4792 4.925 12.2875 4.725C12.0958 4.525 12 4.28333 12 4C12 3.71667 12.1 3.47917 12.3 3.2875C12.5 3.09583 12.7333 3.01667 13 3.05C15.1 3.28333 16.8917 4.14167 18.375 5.625C19.8583 7.10833 20.7167 8.9 20.95 11C20.9833 11.2667 20.9042 11.5 20.7125 11.7C20.5208 11.9 20.2833 12 20 12ZM15.825 12C15.6083 12 15.4167 11.925 15.25 11.775C15.0833 11.625 14.9583 11.425 14.875 11.175C14.7417 10.6917 14.4875 10.2625 14.1125 9.8875C13.7375 9.5125 13.3083 9.25833 12.825 9.125C12.575 9.04167 12.375 8.91667 12.225 8.75C12.075 8.58333 12 8.38333 12 8.15C12 7.81667 12.1167 7.54583 12.35 7.3375C12.5833 7.12917 12.8417 7.05833 13.125 7.125C14.0583 7.34167 14.8625 7.7875 15.5375 8.4625C16.2125 9.1375 16.6583 9.94167 16.875 10.875C16.9417 11.1583 16.8667 11.4167 16.65 11.65C16.4333 11.8833 16.1583 12 15.825 12ZM19.95 21C17.8667 21 15.8083 20.5458 13.775 19.6375C11.7417 18.7292 9.89167 17.4417 8.225 15.775C6.55833 14.1083 5.27083 12.2583 4.3625 10.225C3.45417 8.19167 3 6.13333 3 4.05C3 3.75 3.1 3.5 3.3 3.3C3.5 3.1 3.75 3 4.05 3H8.1C8.33333 3 8.54167 3.07917 8.725 3.2375C8.90833 3.39583 9.01667 3.58333 9.05 3.8L9.7 7.3C9.73333 7.56667 9.725 7.79167 9.675 7.975C9.625 8.15833 9.53333 8.31667 9.4 8.45L6.975 10.9C7.30833 11.5167 7.70417 12.1125 8.1625 12.6875C8.62083 13.2625 9.125 13.8167 9.675 14.35C10.1917 14.8667 10.7333 15.3458 11.3 15.7875C11.8667 16.2292 12.4667 16.6333 13.1 17L15.45 14.65C15.6 14.5 15.7958 14.3875 16.0375 14.3125C16.2792 14.2375 16.5167 14.2167 16.75 14.25L20.2 14.95C20.4333 15.0167 20.625 15.1375 20.775 15.3125C20.925 15.4875 21 15.6833 21 15.9V19.95C21 20.25 20.9 20.5 20.7 20.7C20.5 20.9 20.25 21 19.95 21ZM6.025 9L7.675 7.35L7.25 5H5.025C5.10833 5.68333 5.225 6.35833 5.375 7.025C5.525 7.69167 5.74167 8.35 6.025 9ZM14.975 17.95C15.625 18.2333 16.2875 18.4583 16.9625 18.625C17.6375 18.7917 18.3167 18.9 19 18.95V16.75L16.65 16.275L14.975 17.95Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n progress_activity: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_4782_166\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_4782_166)\">\n <path d=\"M12 22C10.6333 22 9.34167 21.7375 8.125 21.2125C6.90833 20.6875 5.84583 19.9708 4.9375 19.0625C4.02917 18.1542 3.3125 17.0917 2.7875 15.875C2.2625 14.6583 2 13.3667 2 12C2 10.6167 2.2625 9.32083 2.7875 8.1125C3.3125 6.90417 4.02917 5.84583 4.9375 4.9375C5.84583 4.02917 6.90833 3.3125 8.125 2.7875C9.34167 2.2625 10.6333 2 12 2C12.2833 2 12.5208 2.09583 12.7125 2.2875C12.9042 2.47917 13 2.71667 13 3C13 3.28333 12.9042 3.52083 12.7125 3.7125C12.5208 3.90417 12.2833 4 12 4C9.78333 4 7.89583 4.77917 6.3375 6.3375C4.77917 7.89583 4 9.78333 4 12C4 14.2167 4.77917 16.1042 6.3375 17.6625C7.89583 19.2208 9.78333 20 12 20C14.2167 20 16.1042 19.2208 17.6625 17.6625C19.2208 16.1042 20 14.2167 20 12C20 11.7167 20.0958 11.4792 20.2875 11.2875C20.4792 11.0958 20.7167 11 21 11C21.2833 11 21.5208 11.0958 21.7125 11.2875C21.9042 11.4792 22 11.7167 22 12C22 13.3667 21.7375 14.6583 21.2125 15.875C20.6875 17.0917 19.9708 18.1542 19.0625 19.0625C18.1542 19.9708 17.0958 20.6875 15.8875 21.2125C14.6792 21.7375 13.3833 22 12 22Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n publish: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_447\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_447)\">\n <path d=\"M11 11.85L9.125 13.725C8.925 13.925 8.6875 14.0208 8.4125 14.0125C8.1375 14.0042 7.9 13.9 7.7 13.7C7.51667 13.5 7.42083 13.2667 7.4125 13C7.40417 12.7333 7.5 12.5 7.7 12.3L11.3 8.7C11.4 8.6 11.5083 8.52917 11.625 8.4875C11.7417 8.44583 11.8667 8.425 12 8.425C12.1333 8.425 12.2583 8.44583 12.375 8.4875C12.4917 8.52917 12.6 8.6 12.7 8.7L16.3 12.3C16.5 12.5 16.5958 12.7333 16.5875 13C16.5792 13.2667 16.4833 13.5 16.3 13.7C16.1 13.9 15.8625 14.0042 15.5875 14.0125C15.3125 14.0208 15.075 13.925 14.875 13.725L13 11.85V19C13 19.2833 12.9042 19.5208 12.7125 19.7125C12.5208 19.9042 12.2833 20 12 20C11.7167 20 11.4792 19.9042 11.2875 19.7125C11.0958 19.5208 11 19.2833 11 19V11.85ZM4 8V6C4 5.45 4.19583 4.97917 4.5875 4.5875C4.97917 4.19583 5.45 4 6 4H18C18.55 4 19.0208 4.19583 19.4125 4.5875C19.8042 4.97917 20 5.45 20 6V8C20 8.28333 19.9042 8.52083 19.7125 8.7125C19.5208 8.90417 19.2833 9 19 9C18.7167 9 18.4792 8.90417 18.2875 8.7125C18.0958 8.52083 18 8.28333 18 8V6H6V8C6 8.28333 5.90417 8.52083 5.7125 8.7125C5.52083 8.90417 5.28333 9 5 9C4.71667 9 4.47917 8.90417 4.2875 8.7125C4.09583 8.52083 4 8.28333 4 8Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n search: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_692\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_692)\">\n <path d=\"M9.5 16C7.68333 16 6.14583 15.3708 4.8875 14.1125C3.62917 12.8542 3 11.3167 3 9.5C3 7.68333 3.62917 6.14583 4.8875 4.8875C6.14583 3.62917 7.68333 3 9.5 3C11.3167 3 12.8542 3.62917 14.1125 4.8875C15.3708 6.14583 16 7.68333 16 9.5C16 10.2333 15.8833 10.925 15.65 11.575C15.4167 12.225 15.1 12.8 14.7 13.3L20.3 18.9C20.4833 19.0833 20.575 19.3167 20.575 19.6C20.575 19.8833 20.4833 20.1167 20.3 20.3C20.1167 20.4833 19.8833 20.575 19.6 20.575C19.3167 20.575 19.0833 20.4833 18.9 20.3L13.3 14.7C12.8 15.1 12.225 15.4167 11.575 15.65C10.925 15.8833 10.2333 16 9.5 16ZM9.5 14C10.75 14 11.8125 13.5625 12.6875 12.6875C13.5625 11.8125 14 10.75 14 9.5C14 8.25 13.5625 7.1875 12.6875 6.3125C11.8125 5.4375 10.75 5 9.5 5C8.25 5 7.1875 5.4375 6.3125 6.3125C5.4375 7.1875 5 8.25 5 9.5C5 10.75 5.4375 11.8125 6.3125 12.6875C7.1875 13.5625 8.25 14 9.5 14Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n share: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_689\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_689)\">\n <path d=\"M17 22C16.1667 22 15.4583 21.7083 14.875 21.125C14.2917 20.5417 14 19.8333 14 19C14 18.9 14.025 18.6667 14.075 18.3L7.05 14.2C6.78333 14.45 6.475 14.6458 6.125 14.7875C5.775 14.9292 5.4 15 5 15C4.16667 15 3.45833 14.7083 2.875 14.125C2.29167 13.5417 2 12.8333 2 12C2 11.1667 2.29167 10.4583 2.875 9.875C3.45833 9.29167 4.16667 9 5 9C5.4 9 5.775 9.07083 6.125 9.2125C6.475 9.35417 6.78333 9.55 7.05 9.8L14.075 5.7C14.0417 5.58333 14.0208 5.47083 14.0125 5.3625C14.0042 5.25417 14 5.13333 14 5C14 4.16667 14.2917 3.45833 14.875 2.875C15.4583 2.29167 16.1667 2 17 2C17.8333 2 18.5417 2.29167 19.125 2.875C19.7083 3.45833 20 4.16667 20 5C20 5.83333 19.7083 6.54167 19.125 7.125C18.5417 7.70833 17.8333 8 17 8C16.6 8 16.225 7.92917 15.875 7.7875C15.525 7.64583 15.2167 7.45 14.95 7.2L7.925 11.3C7.95833 11.4167 7.97917 11.5292 7.9875 11.6375C7.99583 11.7458 8 11.8667 8 12C8 12.1333 7.99583 12.2542 7.9875 12.3625C7.97917 12.4708 7.95833 12.5833 7.925 12.7L14.95 16.8C15.2167 16.55 15.525 16.3542 15.875 16.2125C16.225 16.0708 16.6 16 17 16C17.8333 16 18.5417 16.2917 19.125 16.875C19.7083 17.4583 20 18.1667 20 19C20 19.8333 19.7083 20.5417 19.125 21.125C18.5417 21.7083 17.8333 22 17 22ZM17 20C17.2833 20 17.5208 19.9042 17.7125 19.7125C17.9042 19.5208 18 19.2833 18 19C18 18.7167 17.9042 18.4792 17.7125 18.2875C17.5208 18.0958 17.2833 18 17 18C16.7167 18 16.4792 18.0958 16.2875 18.2875C16.0958 18.4792 16 18.7167 16 19C16 19.2833 16.0958 19.5208 16.2875 19.7125C16.4792 19.9042 16.7167 20 17 20ZM5 13C5.28333 13 5.52083 12.9042 5.7125 12.7125C5.90417 12.5208 6 12.2833 6 12C6 11.7167 5.90417 11.4792 5.7125 11.2875C5.52083 11.0958 5.28333 11 5 11C4.71667 11 4.47917 11.0958 4.2875 11.2875C4.09583 11.4792 4 11.7167 4 12C4 12.2833 4.09583 12.5208 4.2875 12.7125C4.47917 12.9042 4.71667 13 5 13ZM17 6C17.2833 6 17.5208 5.90417 17.7125 5.7125C17.9042 5.52083 18 5.28333 18 5C18 4.71667 17.9042 4.47917 17.7125 4.2875C17.5208 4.09583 17.2833 4 17 4C16.7167 4 16.4792 4.09583 16.2875 4.2875C16.0958 4.47917 16 4.71667 16 5C16 5.28333 16.0958 5.52083 16.2875 5.7125C16.4792 5.90417 16.7167 6 17 6Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n sms: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_651\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_651)\">\n <path d=\"M6 18L3.7 20.3C3.38333 20.6167 3.02083 20.6875 2.6125 20.5125C2.20417 20.3375 2 20.025 2 19.575V4C2 3.45 2.19583 2.97917 2.5875 2.5875C2.97917 2.19583 3.45 2 4 2H20C20.55 2 21.0208 2.19583 21.4125 2.5875C21.8042 2.97917 22 3.45 22 4V16C22 16.55 21.8042 17.0208 21.4125 17.4125C21.0208 17.8042 20.55 18 20 18H6ZM5.15 16H20V4H4V17.125L5.15 16ZM8 11C8.28333 11 8.52083 10.9042 8.7125 10.7125C8.90417 10.5208 9 10.2833 9 10C9 9.71667 8.90417 9.47917 8.7125 9.2875C8.52083 9.09583 8.28333 9 8 9C7.71667 9 7.47917 9.09583 7.2875 9.2875C7.09583 9.47917 7 9.71667 7 10C7 10.2833 7.09583 10.5208 7.2875 10.7125C7.47917 10.9042 7.71667 11 8 11ZM12 11C12.2833 11 12.5208 10.9042 12.7125 10.7125C12.9042 10.5208 13 10.2833 13 10C13 9.71667 12.9042 9.47917 12.7125 9.2875C12.5208 9.09583 12.2833 9 12 9C11.7167 9 11.4792 9.09583 11.2875 9.2875C11.0958 9.47917 11 9.71667 11 10C11 10.2833 11.0958 10.5208 11.2875 10.7125C11.4792 10.9042 11.7167 11 12 11ZM16 11C16.2833 11 16.5208 10.9042 16.7125 10.7125C16.9042 10.5208 17 10.2833 17 10C17 9.71667 16.9042 9.47917 16.7125 9.2875C16.5208 9.09583 16.2833 9 16 9C15.7167 9 15.4792 9.09583 15.2875 9.2875C15.0958 9.47917 15 9.71667 15 10C15 10.2833 15.0958 10.5208 15.2875 10.7125C15.4792 10.9042 15.7167 11 16 11Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n thumb_down: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_558\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_558)\">\n <path d=\"M3 16C2.46667 16 2 15.8 1.6 15.4C1.2 15 1 14.5333 1 14V12C1 11.8833 1.0125 11.7583 1.0375 11.625C1.0625 11.4917 1.1 11.3667 1.15 11.25L4.15 4.2C4.3 3.86667 4.55 3.58333 4.9 3.35C5.25 3.11667 5.61667 3 6 3H14C14.55 3 15.0208 3.19583 15.4125 3.5875C15.8042 3.97917 16 4.45 16 5V15.175C16 15.4417 15.9458 15.6958 15.8375 15.9375C15.7292 16.1792 15.5833 16.3917 15.4 16.575L9.975 21.975C9.725 22.2083 9.42917 22.35 9.0875 22.4C8.74583 22.45 8.41667 22.3917 8.1 22.225C7.78333 22.0583 7.55417 21.825 7.4125 21.525C7.27083 21.225 7.24167 20.9167 7.325 20.6L8.45 16H3ZM20 3C20.55 3 21.0208 3.19583 21.4125 3.5875C21.8042 3.97917 22 4.45 22 5V14C22 14.55 21.8042 15.0208 21.4125 15.4125C21.0208 15.8042 20.55 16 20 16C19.45 16 18.9792 15.8042 18.5875 15.4125C18.1958 15.0208 18 14.55 18 14V5C18 4.45 18.1958 3.97917 18.5875 3.5875C18.9792 3.19583 19.45 3 20 3Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n thumb_up: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_583\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_583)\">\n <path d=\"M21 8.00007C21.5333 8.00007 22 8.20007 22.4 8.60007C22.8 9.00007 23 9.46674 23 10.0001V12.0001C23 12.1167 22.9875 12.2417 22.9625 12.3751C22.9375 12.5084 22.9 12.6334 22.85 12.7501L19.85 19.8001C19.7 20.1334 19.45 20.4167 19.1 20.6501C18.75 20.8834 18.3833 21.0001 18 21.0001H10C9.45 21.0001 8.97917 20.8042 8.5875 20.4126C8.19583 20.0209 8 19.5501 8 19.0001V8.82507C8 8.5584 8.05417 8.30424 8.1625 8.06257C8.27083 7.82091 8.41667 7.6084 8.6 7.42507L14.025 2.02507C14.275 1.79174 14.5708 1.65007 14.9125 1.60007C15.2542 1.55007 15.5833 1.6084 15.9 1.77507C16.2167 1.94174 16.4458 2.17507 16.5875 2.47507C16.7292 2.77507 16.7583 3.0834 16.675 3.40007L15.55 8.00007H21ZM4 21.0001C3.45 21.0001 2.97917 20.8042 2.5875 20.4126C2.19583 20.0209 2 19.5501 2 19.0001V10.0001C2 9.45007 2.19583 8.97924 2.5875 8.58757C2.97917 8.1959 3.45 8.00007 4 8.00007C4.55 8.00007 5.02083 8.1959 5.4125 8.58757C5.80417 8.97924 6 9.45007 6 10.0001V19.0001C6 19.5501 5.80417 20.0209 5.4125 20.4126C5.02083 20.8042 4.55 21.0001 4 21.0001Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n upload_file: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_596\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_596)\">\n <path d=\"M11 14.825V18C11 18.2833 11.0958 18.5208 11.2875 18.7125C11.4792 18.9042 11.7167 19 12 19C12.2833 19 12.5208 18.9042 12.7125 18.7125C12.9042 18.5208 13 18.2833 13 18V14.825L13.9 15.725C14 15.825 14.1125 15.9 14.2375 15.95C14.3625 16 14.4875 16.0208 14.6125 16.0125C14.7375 16.0042 14.8583 15.975 14.975 15.925C15.0917 15.875 15.2 15.8 15.3 15.7C15.4833 15.5 15.5792 15.2667 15.5875 15C15.5958 14.7333 15.5 14.5 15.3 14.3L12.7 11.7C12.6 11.6 12.4917 11.5292 12.375 11.4875C12.2583 11.4458 12.1333 11.425 12 11.425C11.8667 11.425 11.7417 11.4458 11.625 11.4875C11.5083 11.5292 11.4 11.6 11.3 11.7L8.7 14.3C8.5 14.5 8.40417 14.7333 8.4125 15C8.42083 15.2667 8.525 15.5 8.725 15.7C8.925 15.8833 9.15833 15.9792 9.425 15.9875C9.69167 15.9958 9.925 15.9 10.125 15.7L11 14.825ZM6 22C5.45 22 4.97917 21.8042 4.5875 21.4125C4.19583 21.0208 4 20.55 4 20V4C4 3.45 4.19583 2.97917 4.5875 2.5875C4.97917 2.19583 5.45 2 6 2H13.175C13.4417 2 13.6958 2.05 13.9375 2.15C14.1792 2.25 14.3917 2.39167 14.575 2.575L19.425 7.425C19.6083 7.60833 19.75 7.82083 19.85 8.0625C19.95 8.30417 20 8.55833 20 8.825V20C20 20.55 19.8042 21.0208 19.4125 21.4125C19.0208 21.8042 18.55 22 18 22H6ZM13 8V4H6V20H18V9H14C13.7167 9 13.4792 8.90417 13.2875 8.7125C13.0958 8.52083 13 8.28333 13 8Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n visibility: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_393\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_393)\">\n <path d=\"M12 16C13.25 16 14.3125 15.5625 15.1875 14.6875C16.0625 13.8125 16.5 12.75 16.5 11.5C16.5 10.25 16.0625 9.1875 15.1875 8.3125C14.3125 7.4375 13.25 7 12 7C10.75 7 9.68752 7.4375 8.81252 8.3125C7.93752 9.1875 7.50002 10.25 7.50002 11.5C7.50002 12.75 7.93752 13.8125 8.81252 14.6875C9.68752 15.5625 10.75 16 12 16ZM12 14.2C11.25 14.2 10.6125 13.9375 10.0875 13.4125C9.56252 12.8875 9.30002 12.25 9.30002 11.5C9.30002 10.75 9.56252 10.1125 10.0875 9.5875C10.6125 9.0625 11.25 8.8 12 8.8C12.75 8.8 13.3875 9.0625 13.9125 9.5875C14.4375 10.1125 14.7 10.75 14.7 11.5C14.7 12.25 14.4375 12.8875 13.9125 13.4125C13.3875 13.9375 12.75 14.2 12 14.2ZM12 19C9.76669 19 7.72919 18.4 5.88752 17.2C4.04586 16 2.59169 14.4167 1.52502 12.45C1.44169 12.3 1.37919 12.1458 1.33752 11.9875C1.29586 11.8292 1.27502 11.6667 1.27502 11.5C1.27502 11.3333 1.29586 11.1708 1.33752 11.0125C1.37919 10.8542 1.44169 10.7 1.52502 10.55C2.59169 8.58333 4.04586 7 5.88752 5.8C7.72919 4.6 9.76669 4 12 4C14.2334 4 16.2709 4.6 18.1125 5.8C19.9542 7 21.4084 8.58333 22.475 10.55C22.5584 10.7 22.6209 10.8542 22.6625 11.0125C22.7042 11.1708 22.725 11.3333 22.725 11.5C22.725 11.6667 22.7042 11.8292 22.6625 11.9875C22.6209 12.1458 22.5584 12.3 22.475 12.45C21.4084 14.4167 19.9542 16 18.1125 17.2C16.2709 18.4 14.2334 19 12 19ZM12 17C13.8834 17 15.6125 16.5042 17.1875 15.5125C18.7625 14.5208 19.9667 13.1833 20.8 11.5C19.9667 9.81667 18.7625 8.47917 17.1875 7.4875C15.6125 6.49583 13.8834 6 12 6C10.1167 6 8.38752 6.49583 6.81252 7.4875C5.23752 8.47917 4.03336 9.81667 3.20002 11.5C4.03336 13.1833 5.23752 14.5208 6.81252 15.5125C8.38752 16.5042 10.1167 17 12 17Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>\n`,\n visibility_off: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_398\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_398)\">\n <path d=\"M15.175 8.32498C15.6583 8.80831 16.0125 9.35831 16.2375 9.97498C16.4625 10.5916 16.5417 11.225 16.475 11.875C16.475 12.125 16.3833 12.3375 16.2 12.5125C16.0167 12.6875 15.8 12.775 15.55 12.775C15.3 12.775 15.0875 12.6875 14.9125 12.5125C14.7375 12.3375 14.65 12.125 14.65 11.875C14.7333 11.4416 14.7083 11.025 14.575 10.625C14.4417 10.225 14.2333 9.88331 13.95 9.59998C13.6667 9.31664 13.325 9.09998 12.925 8.94998C12.525 8.79998 12.1 8.76664 11.65 8.84998C11.4 8.84998 11.1875 8.75831 11.0125 8.57498C10.8375 8.39164 10.75 8.17498 10.75 7.92498C10.75 7.67498 10.8375 7.46248 11.0125 7.28748C11.1875 7.11248 11.4 7.02498 11.65 7.02498C12.2833 6.95831 12.9083 7.03748 13.525 7.26248C14.1417 7.48748 14.6917 7.84164 15.175 8.32498ZM12 5.99998C11.6833 5.99998 11.375 6.01248 11.075 6.03748C10.775 6.06248 10.475 6.10831 10.175 6.17498C9.89167 6.22498 9.6375 6.18331 9.4125 6.04998C9.1875 5.91664 9.03333 5.71664 8.95 5.44998C8.86667 5.18331 8.89583 4.92498 9.0375 4.67498C9.17917 4.42498 9.38333 4.27498 9.65 4.22498C10.0333 4.14164 10.4208 4.08331 10.8125 4.04998C11.2042 4.01664 11.6 3.99998 12 3.99998C14.2833 3.99998 16.3708 4.59998 18.2625 5.79998C20.1542 6.99998 21.6 8.61664 22.6 10.65C22.6667 10.7833 22.7167 10.9208 22.75 11.0625C22.7833 11.2041 22.8 11.35 22.8 11.5C22.8 11.65 22.7875 11.7958 22.7625 11.9375C22.7375 12.0791 22.6917 12.2166 22.625 12.35C22.325 13.0166 21.9542 13.6416 21.5125 14.225C21.0708 14.8083 20.5833 15.3416 20.05 15.825C19.85 16.0083 19.6167 16.0833 19.35 16.05C19.0833 16.0166 18.8667 15.8833 18.7 15.65C18.5333 15.4166 18.4625 15.1625 18.4875 14.8875C18.5125 14.6125 18.625 14.3833 18.825 14.2C19.225 13.8166 19.5917 13.4 19.925 12.95C20.2583 12.5 20.55 12.0166 20.8 11.5C19.9667 9.81664 18.7625 8.47914 17.1875 7.48748C15.6125 6.49581 13.8833 5.99998 12 5.99998ZM12 19C9.76667 19 7.725 18.3958 5.875 17.1875C4.025 15.9791 2.56667 14.3916 1.5 12.425C1.41667 12.2916 1.35417 12.1458 1.3125 11.9875C1.27083 11.8291 1.25 11.6666 1.25 11.5C1.25 11.3333 1.26667 11.175 1.3 11.025C1.33333 10.875 1.39167 10.725 1.475 10.575C1.80833 9.90831 2.19583 9.27081 2.6375 8.66248C3.07917 8.05414 3.58333 7.49998 4.15 6.99998L2.075 4.89998C1.89167 4.69998 1.80417 4.46248 1.8125 4.18748C1.82083 3.91248 1.91667 3.68331 2.1 3.49998C2.28333 3.31664 2.51667 3.22498 2.8 3.22498C3.08333 3.22498 3.31667 3.31664 3.5 3.49998L20.5 20.5C20.6833 20.6833 20.7792 20.9125 20.7875 21.1875C20.7958 21.4625 20.7 21.7 20.5 21.9C20.3167 22.0833 20.0833 22.175 19.8 22.175C19.5167 22.175 19.2833 22.0833 19.1 21.9L15.6 18.45C15.0167 18.6333 14.425 18.7708 13.825 18.8625C13.225 18.9541 12.6167 19 12 19ZM5.55 8.39998C5.06667 8.83331 4.625 9.30831 4.225 9.82498C3.825 10.3416 3.48333 10.9 3.2 11.5C4.03333 13.1833 5.2375 14.5208 6.8125 15.5125C8.3875 16.5041 10.1167 17 12 17C12.3333 17 12.6583 16.9791 12.975 16.9375C13.2917 16.8958 13.6167 16.85 13.95 16.8L13.05 15.85C12.8667 15.9 12.6917 15.9375 12.525 15.9625C12.3583 15.9875 12.1833 16 12 16C10.75 16 9.6875 15.5625 8.8125 14.6875C7.9375 13.8125 7.5 12.75 7.5 11.5C7.5 11.3166 7.5125 11.1416 7.5375 10.975C7.5625 10.8083 7.6 10.6333 7.65 10.45L5.55 8.39998Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>\n`,\n notifications: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_409\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_409)\">\n <path d=\"M5 19C4.71667 19 4.47917 18.9042 4.2875 18.7125C4.09583 18.5208 4 18.2833 4 18C4 17.7167 4.09583 17.4792 4.2875 17.2875C4.47917 17.0958 4.71667 17 5 17H6V10C6 8.61667 6.41667 7.3875 7.25 6.3125C8.08333 5.2375 9.16667 4.53333 10.5 4.2V3.5C10.5 3.08333 10.6458 2.72917 10.9375 2.4375C11.2292 2.14583 11.5833 2 12 2C12.4167 2 12.7708 2.14583 13.0625 2.4375C13.3542 2.72917 13.5 3.08333 13.5 3.5V4.2C14.8333 4.53333 15.9167 5.2375 16.75 6.3125C17.5833 7.3875 18 8.61667 18 10V17H19C19.2833 17 19.5208 17.0958 19.7125 17.2875C19.9042 17.4792 20 17.7167 20 18C20 18.2833 19.9042 18.5208 19.7125 18.7125C19.5208 18.9042 19.2833 19 19 19H5ZM12 22C11.45 22 10.9792 21.8042 10.5875 21.4125C10.1958 21.0208 10 20.55 10 20H14C14 20.55 13.8042 21.0208 13.4125 21.4125C13.0208 21.8042 12.55 22 12 22ZM8 17H16V10C16 8.9 15.6083 7.95833 14.825 7.175C14.0417 6.39167 13.1 6 12 6C10.9 6 9.95833 6.39167 9.175 7.175C8.39167 7.95833 8 8.9 8 10V17Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n add: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_14011_362\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_14011_362)\">\n <path d=\"M11 13H6C5.71667 13 5.47917 12.9042 5.2875 12.7125C5.09583 12.5208 5 12.2833 5 12C5 11.7167 5.09583 11.4792 5.2875 11.2875C5.47917 11.0958 5.71667 11 6 11H11V6C11 5.71667 11.0958 5.47917 11.2875 5.2875C11.4792 5.09583 11.7167 5 12 5C12.2833 5 12.5208 5.09583 12.7125 5.2875C12.9042 5.47917 13 5.71667 13 6V11H18C18.2833 11 18.5208 11.0958 18.7125 11.2875C18.9042 11.4792 19 11.7167 19 12C19 12.2833 18.9042 12.5208 18.7125 12.7125C18.5208 12.9042 18.2833 13 18 13H13V18C13 18.2833 12.9042 18.5208 12.7125 18.7125C12.5208 18.9042 12.2833 19 12 19C11.7167 19 11.4792 18.9042 11.2875 18.7125C11.0958 18.5208 11 18.2833 11 18V13Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n remove: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_14011_713\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_14011_713)\">\n <path d=\"M6 13C5.71667 13 5.47917 12.9042 5.2875 12.7125C5.09583 12.5208 5 12.2833 5 12C5 11.7167 5.09583 11.4792 5.2875 11.2875C5.47917 11.0958 5.71667 11 6 11H18C18.2833 11 18.5208 11.0958 18.7125 11.2875C18.9042 11.4792 19 11.7167 19 12C19 12.2833 18.9042 12.5208 18.7125 12.7125C18.5208 12.9042 18.2833 13 18 13H6Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n content_copy: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_525_15\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_525_15)\">\n <path d=\"M9 18C8.45 18 7.97917 17.8042 7.5875 17.4125C7.19583 17.0208 7 16.55 7 16V4C7 3.45 7.19583 2.97917 7.5875 2.5875C7.97917 2.19583 8.45 2 9 2H18C18.55 2 19.0208 2.19583 19.4125 2.5875C19.8042 2.97917 20 3.45 20 4V16C20 16.55 19.8042 17.0208 19.4125 17.4125C19.0208 17.8042 18.55 18 18 18H9ZM9 16H18V4H9V16ZM5 22C4.45 22 3.97917 21.8042 3.5875 21.4125C3.19583 21.0208 3 20.55 3 20V7C3 6.71667 3.09583 6.47917 3.2875 6.2875C3.47917 6.09583 3.71667 6 4 6C4.28333 6 4.52083 6.09583 4.7125 6.2875C4.90417 6.47917 5 6.71667 5 7V20H15C15.2833 20 15.5208 20.0958 15.7125 20.2875C15.9042 20.4792 16 20.7167 16 21C16 21.2833 15.9042 21.5208 15.7125 21.7125C15.5208 21.9042 15.2833 22 15 22H5Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n // *** Arrows *** //\n arrow_back: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_673\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_673)\">\n <path d=\"M7.82505 13L12.725 17.9C12.925 18.1 13.0209 18.3334 13.0125 18.6C13.0042 18.8667 12.9 19.1 12.7 19.3C12.5 19.4834 12.2667 19.5792 12 19.5875C11.7334 19.5959 11.5 19.5 11.3 19.3L4.70005 12.7C4.60005 12.6 4.52922 12.4917 4.48755 12.375C4.44588 12.2584 4.42505 12.1334 4.42505 12C4.42505 11.8667 4.44588 11.7417 4.48755 11.625C4.52922 11.5084 4.60005 11.4 4.70005 11.3L11.3 4.70005C11.4834 4.51672 11.7125 4.42505 11.9875 4.42505C12.2625 4.42505 12.5 4.51672 12.7 4.70005C12.9 4.90005 13 5.13755 13 5.41255C13 5.68755 12.9 5.92505 12.7 6.12505L7.82505 11H19C19.2834 11 19.5209 11.0959 19.7125 11.2875C19.9042 11.4792 20 11.7167 20 12C20 12.2834 19.9042 12.5209 19.7125 12.7125C19.5209 12.9042 19.2834 13 19 13H7.82505Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n arrow_downward: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_7578_114\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_7578_114)\">\n <path d=\"M11 16.175V5C11 4.71667 11.0959 4.47917 11.2875 4.2875C11.4792 4.09583 11.7167 4 12 4C12.2834 4 12.5209 4.09583 12.7125 4.2875C12.9042 4.47917 13 4.71667 13 5V16.175L17.9 11.275C18.1 11.075 18.3334 10.9792 18.6 10.9875C18.8667 10.9958 19.1 11.1 19.3 11.3C19.4834 11.5 19.5792 11.7333 19.5875 12C19.5959 12.2667 19.5 12.5 19.3 12.7L12.7 19.3C12.6 19.4 12.4917 19.4708 12.375 19.5125C12.2584 19.5542 12.1334 19.575 12 19.575C11.8667 19.575 11.7417 19.5542 11.625 19.5125C11.5084 19.4708 11.4 19.4 11.3 19.3L4.70005 12.7C4.51672 12.5167 4.42505 12.2875 4.42505 12.0125C4.42505 11.7375 4.51672 11.5 4.70005 11.3C4.90005 11.1 5.13755 11 5.41255 11C5.68755 11 5.92505 11.1 6.12505 11.3L11 16.175Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n arrow_forward: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_7578_474\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_7578_474)\">\n <path d=\"M16.175 13H5C4.71667 13 4.47917 12.9042 4.2875 12.7125C4.09583 12.5208 4 12.2833 4 12C4 11.7167 4.09583 11.4792 4.2875 11.2875C4.47917 11.0958 4.71667 11 5 11H16.175L11.275 6.1C11.075 5.9 10.9792 5.66667 10.9875 5.4C10.9958 5.13334 11.1 4.9 11.3 4.7C11.5 4.51667 11.7333 4.42084 12 4.4125C12.2667 4.40417 12.5 4.5 12.7 4.7L19.3 11.3C19.4 11.4 19.4708 11.5083 19.5125 11.625C19.5542 11.7417 19.575 11.8667 19.575 12C19.575 12.1333 19.5542 12.2583 19.5125 12.375C19.4708 12.4917 19.4 12.6 19.3 12.7L12.7 19.3C12.5167 19.4833 12.2875 19.575 12.0125 19.575C11.7375 19.575 11.5 19.4833 11.3 19.3C11.1 19.1 11 18.8625 11 18.5875C11 18.3125 11.1 18.075 11.3 17.875L16.175 13Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n arrow_upward: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_7578_90\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_7578_90)\">\n <path d=\"M11 7.825L6.09999 12.725C5.89999 12.925 5.66665 13.0208 5.39999 13.0125C5.13332 13.0042 4.89999 12.9 4.69999 12.7C4.51665 12.5 4.42082 12.2667 4.41249 12C4.40415 11.7333 4.49999 11.5 4.69999 11.3L11.3 4.7C11.4 4.6 11.5083 4.52917 11.625 4.4875C11.7417 4.44584 11.8667 4.425 12 4.425C12.1333 4.425 12.2583 4.44584 12.375 4.4875C12.4917 4.52917 12.6 4.6 12.7 4.7L19.3 11.3C19.4833 11.4833 19.575 11.7125 19.575 11.9875C19.575 12.2625 19.4833 12.5 19.3 12.7C19.1 12.9 18.8625 13 18.5875 13C18.3125 13 18.075 12.9 17.875 12.7L13 7.825V19C13 19.2833 12.9042 19.5208 12.7125 19.7125C12.5208 19.9042 12.2833 20 12 20C11.7167 20 11.4792 19.9042 11.2875 19.7125C11.0958 19.5208 11 19.2833 11 19V7.825Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n height: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_14209_585\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_14209_585)\">\n <path d=\"M11 17.175V6.82505L10.1 7.72505C9.91665 7.90838 9.68749 8.00005 9.41249 8.00005C9.13749 8.00005 8.89999 7.90005 8.69999 7.70005C8.51665 7.51672 8.42499 7.28338 8.42499 7.00005C8.42499 6.71672 8.51665 6.48338 8.69999 6.30005L11.3 3.70005C11.4 3.60005 11.5083 3.52922 11.625 3.48755C11.7417 3.44588 11.8667 3.42505 12 3.42505C12.1333 3.42505 12.2583 3.44588 12.375 3.48755C12.4917 3.52922 12.6 3.60005 12.7 3.70005L15.3 6.30005C15.4833 6.48338 15.575 6.71255 15.575 6.98755C15.575 7.26255 15.4833 7.50005 15.3 7.70005C15.1 7.90005 14.8625 8.00005 14.5875 8.00005C14.3125 8.00005 14.075 7.90005 13.875 7.70005L13 6.82505V17.175L13.9 16.275C14.0833 16.0917 14.3125 16 14.5875 16C14.8625 16 15.1 16.1 15.3 16.3C15.4833 16.4834 15.575 16.7167 15.575 17C15.575 17.2834 15.4833 17.5167 15.3 17.7L12.7 20.3C12.6 20.4 12.4917 20.4709 12.375 20.5125C12.2583 20.5542 12.1333 20.575 12 20.575C11.8667 20.575 11.7417 20.5542 11.625 20.5125C11.5083 20.4709 11.4 20.4 11.3 20.3L8.69999 17.7C8.51665 17.5167 8.42082 17.2875 8.41249 17.0125C8.40415 16.7375 8.49999 16.5 8.69999 16.3C8.88332 16.1167 9.11665 16.025 9.39999 16.025C9.68332 16.025 9.91665 16.1167 10.1 16.3L11 17.175Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n straight: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n<mask id=\"mask0_14209_599\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n<rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n</mask>\n<g mask=\"url(#mask0_14209_599)\">\n<path d=\"M11 6.8249L10.1 7.7249C9.91672 7.90824 9.68755 7.9999 9.41255 7.9999C9.13755 7.9999 8.90005 7.8999 8.70005 7.6999C8.51672 7.51657 8.42505 7.28324 8.42505 6.9999C8.42505 6.71657 8.51672 6.48324 8.70005 6.2999L11.3 3.6999C11.5 3.4999 11.7334 3.3999 12 3.3999C12.2667 3.3999 12.5 3.4999 12.7 3.6999L15.3 6.2999C15.4834 6.48324 15.5792 6.7124 15.5875 6.9874C15.5959 7.2624 15.5 7.4999 15.3 7.6999C15.1167 7.88324 14.8834 7.9749 14.6 7.9749C14.3167 7.9749 14.0834 7.88324 13.9 7.6999L13 6.8249V19.9999C13 20.2832 12.9042 20.5207 12.7125 20.7124C12.5209 20.9041 12.2834 20.9999 12 20.9999C11.7167 20.9999 11.4792 20.9041 11.2875 20.7124C11.0959 20.5207 11 20.2832 11 19.9999V6.8249Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n</g>\n</svg>`,\n // *** Chevrons *** //\n chevron_down: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_190\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_190)\">\n <path d=\"M12 14.725L19.35 7.375C19.6 7.125 19.8917 7.00417 20.225 7.0125C20.5583 7.02083 20.85 7.15 21.1 7.4C21.35 7.65 21.475 7.94167 21.475 8.275C21.475 8.60833 21.35 8.9 21.1 9.15L13.425 16.85C13.225 17.05 13 17.2 12.75 17.3C12.5 17.4 12.25 17.45 12 17.45C11.75 17.45 11.5 17.4 11.25 17.3C11 17.2 10.775 17.05 10.575 16.85L2.87499 9.15C2.62499 8.9 2.50415 8.60417 2.51249 8.2625C2.52082 7.92083 2.64999 7.625 2.89999 7.375C3.14999 7.125 3.44165 7 3.77499 7C4.10832 7 4.39999 7.125 4.64999 7.375L12 14.725Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n chevron_up: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_435\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_435)\">\n <path d=\"M12 9.82485L4.65002 17.1749C4.40002 17.4249 4.10836 17.5457 3.77502 17.5374C3.44169 17.529 3.15002 17.3999 2.90002 17.1499C2.65002 16.8999 2.52502 16.6082 2.52502 16.2749C2.52502 15.9415 2.65002 15.6499 2.90002 15.3999L10.575 7.69985C10.775 7.49985 11 7.34985 11.25 7.24985C11.5 7.14985 11.75 7.09985 12 7.09985C12.25 7.09985 12.5 7.14985 12.75 7.24985C13 7.34985 13.225 7.49985 13.425 7.69985L21.125 15.3999C21.375 15.6499 21.4959 15.9457 21.4875 16.2874C21.4792 16.629 21.35 16.9249 21.1 17.1749C20.85 17.4249 20.5584 17.5499 20.225 17.5499C19.8917 17.5499 19.6 17.4249 19.35 17.1749L12 9.82485Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n chevron_left: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_376\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_376)\">\n <path d=\"M9.54995 12.0001L16.9 19.3501C17.15 19.6001 17.2708 19.8918 17.2625 20.2251C17.2541 20.5584 17.125 20.8501 16.875 21.1001C16.625 21.3501 16.3333 21.4751 16 21.4751C15.6666 21.4751 15.375 21.3501 15.125 21.1001L7.42495 13.4251C7.22495 13.2251 7.07495 13.0001 6.97495 12.7501C6.87495 12.5001 6.82495 12.2501 6.82495 12.0001C6.82495 11.7501 6.87495 11.5001 6.97495 11.2501C7.07495 11.0001 7.22495 10.7751 7.42495 10.5751L15.125 2.87511C15.375 2.62511 15.6708 2.50428 16.0125 2.51261C16.3541 2.52094 16.65 2.65011 16.9 2.90011C17.15 3.15011 17.275 3.44178 17.275 3.77511C17.275 4.10844 17.15 4.40011 16.9 4.65011L9.54995 12.0001Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n chevron_right: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_247\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_247)\">\n <path d=\"M14.7238 12.4865L7.37494 19.8353C7.12498 20.0853 7.00417 20.3769 7.0125 20.7102C7.02083 21.0435 7.14998 21.3351 7.39994 21.5851C7.6499 21.835 7.94152 21.96 8.2748 21.96C8.60809 21.96 8.89971 21.835 9.14967 21.5851L16.8485 13.9112C17.0485 13.7113 17.1984 13.4863 17.2984 13.2363C17.3984 12.9864 17.4484 12.7364 17.4484 12.4865C17.4484 12.2365 17.3984 11.9865 17.2984 11.7366C17.1984 11.4866 17.0485 11.2616 16.8485 11.0617L9.14967 3.36285C8.89971 3.11289 8.60392 2.99207 8.26231 3.0004C7.92069 3.00874 7.6249 3.13788 7.37494 3.38784C7.12498 3.63781 7 3.92943 7 4.26271C7 4.59599 7.12498 4.88761 7.37494 5.13758L14.7238 12.4865Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n // *** Environmental *** //\n ac_unit: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_444\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_444)\">\n <path d=\"M11 17.85L8.425 20.375C8.24167 20.5583 8.0125 20.65 7.7375 20.65C7.4625 20.65 7.23333 20.55 7.05 20.35C6.85 20.1667 6.75 19.9375 6.75 19.6625C6.75 19.3875 6.85 19.15 7.05 18.95L11 15V13H9L5.025 16.975C4.84167 17.1583 4.6125 17.25 4.3375 17.25C4.0625 17.25 3.825 17.15 3.625 16.95C3.44167 16.7667 3.35 16.5375 3.35 16.2625C3.35 15.9875 3.44167 15.7583 3.625 15.575L6.15 13H2.975C2.69167 13 2.45833 12.9042 2.275 12.7125C2.09167 12.5208 2 12.2833 2 12C2 11.7167 2.09583 11.4792 2.2875 11.2875C2.47917 11.0958 2.71667 11 3 11H6.15L3.625 8.45C3.44167 8.26667 3.35 8.0375 3.35 7.7625C3.35 7.4875 3.45 7.25 3.65 7.05C3.83333 6.86667 4.0625 6.775 4.3375 6.775C4.6125 6.775 4.85 6.86667 5.05 7.05L9 11H11V9L7.025 5.05C6.84167 4.86667 6.75 4.6375 6.75 4.3625C6.75 4.0875 6.85 3.85 7.05 3.65C7.23333 3.46667 7.4625 3.375 7.7375 3.375C8.0125 3.375 8.24167 3.46667 8.425 3.65L11 6.15V3C11 2.71667 11.0958 2.47917 11.2875 2.2875C11.4792 2.09583 11.7167 2 12 2C12.2833 2 12.5208 2.09583 12.7125 2.2875C12.9042 2.47917 13 2.71667 13 3V6.15L15.55 3.65C15.7333 3.46667 15.9625 3.375 16.2375 3.375C16.5125 3.375 16.75 3.46667 16.95 3.65C17.1333 3.85 17.225 4.0875 17.225 4.3625C17.225 4.6375 17.1333 4.86667 16.95 5.05L13 9V11H15L18.95 7.05C19.1333 6.86667 19.3625 6.775 19.6375 6.775C19.9125 6.775 20.15 6.875 20.35 7.075C20.5333 7.25833 20.625 7.4875 20.625 7.7625C20.625 8.0375 20.5333 8.26667 20.35 8.45L17.85 11H21C21.2833 11 21.5208 11.0958 21.7125 11.2875C21.9042 11.4792 22 11.7167 22 12C22 12.2833 21.9042 12.5208 21.7125 12.7125C21.5208 12.9042 21.2833 13 21 13H17.85L20.35 15.575C20.5333 15.7583 20.625 15.9875 20.625 16.2625C20.625 16.5375 20.5333 16.7667 20.35 16.95C20.15 17.15 19.9125 17.25 19.6375 17.25C19.3625 17.25 19.1333 17.15 18.95 16.95L15 13H13V15L16.95 18.975C17.1333 19.1583 17.225 19.3875 17.225 19.6625C17.225 19.9375 17.125 20.175 16.925 20.375C16.7417 20.5583 16.5125 20.65 16.2375 20.65C15.9625 20.65 15.7333 20.5583 15.55 20.375L13 17.85V21.025C13 21.3083 12.9042 21.5417 12.7125 21.725C12.5208 21.9083 12.2833 22 12 22C11.7167 22 11.4792 21.9042 11.2875 21.7125C11.0958 21.5208 11 21.2833 11 21V17.85Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n air: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_423\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_423)\">\n <path d=\"M11.5 20C10.9667 20 10.4708 19.8667 10.0125 19.6C9.55417 19.3333 9.18333 18.9667 8.9 18.5C8.71667 18.1667 8.7125 17.8333 8.8875 17.5C9.0625 17.1667 9.33333 17 9.7 17C9.91667 17 10.1083 17.0667 10.275 17.2C10.4417 17.3333 10.5917 17.4833 10.725 17.65C10.8083 17.7667 10.9208 17.8542 11.0625 17.9125C11.2042 17.9708 11.35 18 11.5 18C11.7833 18 12.0208 17.9042 12.2125 17.7125C12.4042 17.5208 12.5 17.2833 12.5 17C12.5 16.7167 12.4042 16.4792 12.2125 16.2875C12.0208 16.0958 11.7833 16 11.5 16H3C2.71667 16 2.47917 15.9042 2.2875 15.7125C2.09583 15.5208 2 15.2833 2 15C2 14.7167 2.09583 14.4792 2.2875 14.2875C2.47917 14.0958 2.71667 14 3 14H11.5C12.3333 14 13.0417 14.2917 13.625 14.875C14.2083 15.4583 14.5 16.1667 14.5 17C14.5 17.8333 14.2083 18.5417 13.625 19.125C13.0417 19.7083 12.3333 20 11.5 20ZM3 10C2.71667 10 2.47917 9.90417 2.2875 9.7125C2.09583 9.52083 2 9.28333 2 9C2 8.71667 2.09583 8.47917 2.2875 8.2875C2.47917 8.09583 2.71667 8 3 8H15.5C15.9167 8 16.2708 7.85417 16.5625 7.5625C16.8542 7.27083 17 6.91667 17 6.5C17 6.08333 16.8542 5.72917 16.5625 5.4375C16.2708 5.14583 15.9167 5 15.5 5C15.2333 5 14.9833 5.0625 14.75 5.1875C14.5167 5.3125 14.3333 5.49167 14.2 5.725C14.0833 5.925 13.9417 6.10417 13.775 6.2625C13.6083 6.42083 13.4083 6.5 13.175 6.5C12.8417 6.5 12.5708 6.375 12.3625 6.125C12.1542 5.875 12.1 5.60833 12.2 5.325C12.4333 4.625 12.8542 4.0625 13.4625 3.6375C14.0708 3.2125 14.75 3 15.5 3C16.4667 3 17.2917 3.34167 17.975 4.025C18.6583 4.70833 19 5.53333 19 6.5C19 7.46667 18.6583 8.29167 17.975 8.975C17.2917 9.65833 16.4667 10 15.5 10H3ZM19.95 17.7C19.6167 17.85 19.2917 17.8292 18.975 17.6375C18.6583 17.4458 18.5 17.1667 18.5 16.8C18.5 16.5667 18.5792 16.3708 18.7375 16.2125C18.8958 16.0542 19.075 15.9167 19.275 15.8C19.5083 15.6667 19.6875 15.4833 19.8125 15.25C19.9375 15.0167 20 14.7667 20 14.5C20 14.0833 19.8542 13.7292 19.5625 13.4375C19.2708 13.1458 18.9167 13 18.5 13H3C2.71667 13 2.47917 12.9042 2.2875 12.7125C2.09583 12.5208 2 12.2833 2 12C2 11.7167 2.09583 11.4792 2.2875 11.2875C2.47917 11.0958 2.71667 11 3 11H18.5C19.4667 11 20.2917 11.3417 20.975 12.025C21.6583 12.7083 22 13.5333 22 14.5C22 15.2 21.8167 15.8375 21.45 16.4125C21.0833 16.9875 20.5833 17.4167 19.95 17.7Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n clear_day: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_705\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_705)\">\n <path d=\"M12 5C11.7167 5 11.4792 4.90417 11.2875 4.7125C11.0958 4.52083 11 4.28333 11 4V2C11 1.71667 11.0958 1.47917 11.2875 1.2875C11.4792 1.09583 11.7167 1 12 1C12.2833 1 12.5208 1.09583 12.7125 1.2875C12.9042 1.47917 13 1.71667 13 2V4C13 4.28333 12.9042 4.52083 12.7125 4.7125C12.5208 4.90417 12.2833 5 12 5ZM16.95 7.05C16.7667 6.86667 16.675 6.6375 16.675 6.3625C16.675 6.0875 16.7667 5.85 16.95 5.65L18.35 4.225C18.55 4.025 18.7875 3.925 19.0625 3.925C19.3375 3.925 19.575 4.025 19.775 4.225C19.9583 4.40833 20.05 4.64167 20.05 4.925C20.05 5.20833 19.9583 5.44167 19.775 5.625L18.35 7.05C18.1667 7.23333 17.9333 7.325 17.65 7.325C17.3667 7.325 17.1333 7.23333 16.95 7.05ZM20 13C19.7167 13 19.4792 12.9042 19.2875 12.7125C19.0958 12.5208 19 12.2833 19 12C19 11.7167 19.0958 11.4792 19.2875 11.2875C19.4792 11.0958 19.7167 11 20 11H22C22.2833 11 22.5208 11.0958 22.7125 11.2875C22.9042 11.4792 23 11.7167 23 12C23 12.2833 22.9042 12.5208 22.7125 12.7125C22.5208 12.9042 22.2833 13 22 13H20ZM12 23C11.7167 23 11.4792 22.9042 11.2875 22.7125C11.0958 22.5208 11 22.2833 11 22V20C11 19.7167 11.0958 19.4792 11.2875 19.2875C11.4792 19.0958 11.7167 19 12 19C12.2833 19 12.5208 19.0958 12.7125 19.2875C12.9042 19.4792 13 19.7167 13 20V22C13 22.2833 12.9042 22.5208 12.7125 22.7125C12.5208 22.9042 12.2833 23 12 23ZM5.65 7.05L4.225 5.65C4.025 5.45 3.925 5.20833 3.925 4.925C3.925 4.64167 4.025 4.40833 4.225 4.225C4.40833 4.04167 4.64167 3.95 4.925 3.95C5.20833 3.95 5.44167 4.04167 5.625 4.225L7.05 5.65C7.23333 5.83333 7.325 6.06667 7.325 6.35C7.325 6.63333 7.23333 6.86667 7.05 7.05C6.85 7.23333 6.61667 7.325 6.35 7.325C6.08333 7.325 5.85 7.23333 5.65 7.05ZM18.35 19.775L16.95 18.35C16.7667 18.15 16.675 17.9125 16.675 17.6375C16.675 17.3625 16.7667 17.1333 16.95 16.95C17.1333 16.7667 17.3625 16.675 17.6375 16.675C17.9125 16.675 18.15 16.7667 18.35 16.95L19.775 18.35C19.975 18.5333 20.0708 18.7667 20.0625 19.05C20.0542 19.3333 19.9583 19.575 19.775 19.775C19.575 19.975 19.3333 20.075 19.05 20.075C18.7667 20.075 18.5333 19.975 18.35 19.775ZM2 13C1.71667 13 1.47917 12.9042 1.2875 12.7125C1.09583 12.5208 1 12.2833 1 12C1 11.7167 1.09583 11.4792 1.2875 11.2875C1.47917 11.0958 1.71667 11 2 11H4C4.28333 11 4.52083 11.0958 4.7125 11.2875C4.90417 11.4792 5 11.7167 5 12C5 12.2833 4.90417 12.5208 4.7125 12.7125C4.52083 12.9042 4.28333 13 4 13H2ZM4.225 19.775C4.04167 19.5917 3.95 19.3583 3.95 19.075C3.95 18.7917 4.04167 18.5583 4.225 18.375L5.65 16.95C5.83333 16.7667 6.0625 16.675 6.3375 16.675C6.6125 16.675 6.85 16.7667 7.05 16.95C7.25 17.15 7.35 17.3875 7.35 17.6625C7.35 17.9375 7.25 18.175 7.05 18.375L5.65 19.775C5.45 19.975 5.20833 20.075 4.925 20.075C4.64167 20.075 4.40833 19.975 4.225 19.775ZM12 18C10.3333 18 8.91667 17.4167 7.75 16.25C6.58333 15.0833 6 13.6667 6 12C6 10.3333 6.58333 8.91667 7.75 7.75C8.91667 6.58333 10.3333 6 12 6C13.6667 6 15.0833 6.58333 16.25 7.75C17.4167 8.91667 18 10.3333 18 12C18 13.6667 17.4167 15.0833 16.25 16.25C15.0833 17.4167 13.6667 18 12 18ZM12 16C13.1 16 14.0417 15.6083 14.825 14.825C15.6083 14.0417 16 13.1 16 12C16 10.9 15.6083 9.95833 14.825 9.175C14.0417 8.39167 13.1 8 12 8C10.9 8 9.95833 8.39167 9.175 9.175C8.39167 9.95833 8 10.9 8 12C8 13.1 8.39167 14.0417 9.175 14.825C9.95833 15.6083 10.9 16 12 16Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n coronavirus: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_778\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_778)\">\n <path d=\"M11.25 22C11.05 22 10.875 21.925 10.725 21.775C10.575 21.625 10.5 21.45 10.5 21.25C10.5 21.05 10.575 20.875 10.725 20.725C10.875 20.575 11.05 20.5 11.25 20.5V18.95C10.55 18.8667 9.89167 18.7 9.275 18.45C8.65833 18.2 8.1 17.8667 7.6 17.45L6.525 18.55C6.675 18.7 6.75 18.875 6.75 19.075C6.75 19.275 6.675 19.45 6.525 19.6C6.375 19.75 6.2 19.825 6 19.825C5.8 19.825 5.625 19.75 5.475 19.6L4.4 18.55C4.25 18.4 4.175 18.2208 4.175 18.0125C4.175 17.8042 4.25 17.625 4.4 17.475C4.55 17.325 4.725 17.2542 4.925 17.2625C5.125 17.2708 5.3 17.3417 5.45 17.475L6.55 16.375C6.13333 15.8583 5.8 15.3 5.55 14.7C5.3 14.1 5.13333 13.45 5.05 12.75H3.5C3.5 12.95 3.425 13.125 3.275 13.275C3.125 13.425 2.95 13.5 2.75 13.5C2.55 13.5 2.375 13.425 2.225 13.275C2.075 13.125 2 12.95 2 12.75V11.25C2 11.05 2.075 10.875 2.225 10.725C2.375 10.575 2.55 10.5 2.75 10.5C2.95 10.5 3.125 10.575 3.275 10.725C3.425 10.875 3.5 11.05 3.5 11.25H5.05C5.13333 10.55 5.30417 9.9 5.5625 9.3C5.82083 8.7 6.15 8.14167 6.55 7.625L5.45 6.525C5.3 6.65833 5.125 6.72917 4.925 6.7375C4.725 6.74583 4.55 6.675 4.4 6.525C4.25 6.375 4.175 6.19583 4.175 5.9875C4.175 5.77917 4.25 5.6 4.4 5.45L5.45 4.4C5.6 4.25 5.77917 4.175 5.9875 4.175C6.19583 4.175 6.375 4.25 6.525 4.4C6.675 4.55 6.75 4.72917 6.75 4.9375C6.75 5.14583 6.675 5.325 6.525 5.475L7.6 6.55C8.11667 6.13333 8.675 5.8 9.275 5.55C9.875 5.3 10.525 5.13333 11.225 5.05V3.5C11.025 3.5 10.8542 3.425 10.7125 3.275C10.5708 3.125 10.5 2.95 10.5 2.75C10.5 2.55 10.575 2.375 10.725 2.225C10.875 2.075 11.05 2 11.25 2H12.75C12.95 2 13.125 2.075 13.275 2.225C13.425 2.375 13.5 2.55 13.5 2.75C13.5 2.95 13.425 3.125 13.275 3.275C13.125 3.425 12.95 3.5 12.75 3.5V5.05C13.45 5.13333 14.1 5.3 14.7 5.55C15.3 5.8 15.8583 6.13333 16.375 6.55L17.475 5.45C17.325 5.3 17.25 5.125 17.25 4.925C17.25 4.725 17.325 4.55 17.475 4.4C17.625 4.25 17.8042 4.175 18.0125 4.175C18.2208 4.175 18.4 4.25 18.55 4.4L19.6 5.475C19.75 5.625 19.825 5.8 19.825 6C19.825 6.2 19.75 6.375 19.6 6.525C19.45 6.675 19.2708 6.75 19.0625 6.75C18.8542 6.75 18.675 6.675 18.525 6.525L17.45 7.6C17.8667 8.11667 18.2 8.67917 18.45 9.2875C18.7 9.89583 18.8667 10.55 18.95 11.25H20.5C20.5 11.05 20.575 10.875 20.725 10.725C20.875 10.575 21.05 10.5 21.25 10.5C21.45 10.5 21.625 10.575 21.775 10.725C21.925 10.875 22 11.05 22 11.25V12.75C22 12.95 21.925 13.125 21.775 13.275C21.625 13.425 21.45 13.5 21.25 13.5C21.05 13.5 20.875 13.425 20.725 13.275C20.575 13.125 20.5 12.95 20.5 12.75H18.95C18.8667 13.45 18.7 14.1042 18.45 14.7125C18.2 15.3208 17.8667 15.8833 17.45 16.4L18.525 17.475C18.675 17.325 18.8542 17.25 19.0625 17.25C19.2708 17.25 19.45 17.325 19.6 17.475C19.75 17.625 19.825 17.8042 19.825 18.0125C19.825 18.2208 19.75 18.4 19.6 18.55L18.55 19.6C18.4 19.75 18.2208 19.825 18.0125 19.825C17.8042 19.825 17.625 19.75 17.475 19.6C17.325 19.45 17.2542 19.275 17.2625 19.075C17.2708 18.875 17.3417 18.7 17.475 18.55L16.375 17.45C15.8583 17.8667 15.3 18.2042 14.7 18.4625C14.1 18.7208 13.45 18.8917 12.75 18.975V20.5C12.95 20.5 13.125 20.575 13.275 20.725C13.425 20.875 13.5 21.05 13.5 21.25C13.5 21.45 13.425 21.625 13.275 21.775C13.125 21.925 12.95 22 12.75 22H11.25ZM12 17C13.3833 17 14.5625 16.5125 15.5375 15.5375C16.5125 14.5625 17 13.3833 17 12C17 10.6167 16.5125 9.4375 15.5375 8.4625C14.5625 7.4875 13.3833 7 12 7C10.6167 7 9.4375 7.4875 8.4625 8.4625C7.4875 9.4375 7 10.6167 7 12C7 13.3833 7.4875 14.5625 8.4625 15.5375C9.4375 16.5125 10.6167 17 12 17ZM10.25 16C10.5333 16 10.7708 15.9042 10.9625 15.7125C11.1542 15.5208 11.25 15.2833 11.25 15C11.25 14.7167 11.1542 14.4792 10.9625 14.2875C10.7708 14.0958 10.5333 14 10.25 14C9.96667 14 9.72917 14.0958 9.5375 14.2875C9.34583 14.4792 9.25 14.7167 9.25 15C9.25 15.2833 9.34583 15.5208 9.5375 15.7125C9.72917 15.9042 9.96667 16 10.25 16ZM13.75 16C14.0333 16 14.2708 15.9042 14.4625 15.7125C14.6542 15.5208 14.75 15.2833 14.75 15C14.75 14.7167 14.6542 14.4792 14.4625 14.2875C14.2708 14.0958 14.0333 14 13.75 14C13.4667 14 13.2292 14.0958 13.0375 14.2875C12.8458 14.4792 12.75 14.7167 12.75 15C12.75 15.2833 12.8458 15.5208 13.0375 15.7125C13.2292 15.9042 13.4667 16 13.75 16ZM8.5 13C8.78333 13 9.02083 12.9042 9.2125 12.7125C9.40417 12.5208 9.5 12.2833 9.5 12C9.5 11.7167 9.40417 11.4792 9.2125 11.2875C9.02083 11.0958 8.78333 11 8.5 11C8.21667 11 7.97917 11.0958 7.7875 11.2875C7.59583 11.4792 7.5 11.7167 7.5 12C7.5 12.2833 7.59583 12.5208 7.7875 12.7125C7.97917 12.9042 8.21667 13 8.5 13ZM12 13C12.2833 13 12.5208 12.9042 12.7125 12.7125C12.9042 12.5208 13 12.2833 13 12C13 11.7167 12.9042 11.4792 12.7125 11.2875C12.5208 11.0958 12.2833 11 12 11C11.7167 11 11.4792 11.0958 11.2875 11.2875C11.0958 11.4792 11 11.7167 11 12C11 12.2833 11.0958 12.5208 11.2875 12.7125C11.4792 12.9042 11.7167 13 12 13ZM15.5 13C15.7833 13 16.0208 12.9042 16.2125 12.7125C16.4042 12.5208 16.5 12.2833 16.5 12C16.5 11.7167 16.4042 11.4792 16.2125 11.2875C16.0208 11.0958 15.7833 11 15.5 11C15.2167 11 14.9792 11.0958 14.7875 11.2875C14.5958 11.4792 14.5 11.7167 14.5 12C14.5 12.2833 14.5958 12.5208 14.7875 12.7125C14.9792 12.9042 15.2167 13 15.5 13ZM10.25 10C10.5333 10 10.7708 9.90417 10.9625 9.7125C11.1542 9.52083 11.25 9.28333 11.25 9C11.25 8.71667 11.1542 8.47917 10.9625 8.2875C10.7708 8.09583 10.5333 8 10.25 8C9.96667 8 9.72917 8.09583 9.5375 8.2875C9.34583 8.47917 9.25 8.71667 9.25 9C9.25 9.28333 9.34583 9.52083 9.5375 9.7125C9.72917 9.90417 9.96667 10 10.25 10ZM13.75 10C14.0333 10 14.2708 9.90417 14.4625 9.7125C14.6542 9.52083 14.75 9.28333 14.75 9C14.75 8.71667 14.6542 8.47917 14.4625 8.2875C14.2708 8.09583 14.0333 8 13.75 8C13.4667 8 13.2292 8.09583 13.0375 8.2875C12.8458 8.47917 12.75 8.71667 12.75 9C12.75 9.28333 12.8458 9.52083 13.0375 9.7125C13.2292 9.90417 13.4667 10 13.75 10Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n rainy: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_566\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_566)\">\n <path d=\"M13.95 21.9C13.7 22.0333 13.4458 22.0542 13.1875 21.9625C12.9292 21.8708 12.7333 21.7 12.6 21.45L11.1 18.45C10.9667 18.2 10.9458 17.9458 11.0375 17.6875C11.1292 17.4292 11.3 17.2333 11.55 17.1C11.8 16.9667 12.0542 16.9458 12.3125 17.0375C12.5708 17.1292 12.7667 17.3 12.9 17.55L14.4 20.55C14.5333 20.8 14.5542 21.0542 14.4625 21.3125C14.3708 21.5708 14.2 21.7667 13.95 21.9ZM19.95 21.9C19.7 22.0333 19.4458 22.0542 19.1875 21.9625C18.9292 21.8708 18.7333 21.7 18.6 21.45L17.1 18.45C16.9667 18.2 16.9458 17.9458 17.0375 17.6875C17.1292 17.4292 17.3 17.2333 17.55 17.1C17.8 16.9667 18.0542 16.9458 18.3125 17.0375C18.5708 17.1292 18.7667 17.3 18.9 17.55L20.4 20.55C20.5333 20.8 20.5542 21.0542 20.4625 21.3125C20.3708 21.5708 20.2 21.7667 19.95 21.9ZM7.95 21.9C7.7 22.0333 7.44583 22.0542 7.1875 21.9625C6.92917 21.8708 6.73333 21.7 6.6 21.45L5.1 18.45C4.96667 18.2 4.94583 17.9458 5.0375 17.6875C5.12917 17.4292 5.3 17.2333 5.55 17.1C5.8 16.9667 6.05417 16.9458 6.3125 17.0375C6.57083 17.1292 6.76667 17.3 6.9 17.55L8.4 20.55C8.53333 20.8 8.55417 21.0542 8.4625 21.3125C8.37083 21.5708 8.2 21.7667 7.95 21.9ZM7.5 16C5.98333 16 4.6875 15.4625 3.6125 14.3875C2.5375 13.3125 2 12.0167 2 10.5C2 9.11667 2.45833 7.90833 3.375 6.875C4.29167 5.84167 5.425 5.23333 6.775 5.05C7.30833 4.1 8.0375 3.35417 8.9625 2.8125C9.8875 2.27083 10.9 2 12 2C13.5 2 14.8042 2.47917 15.9125 3.4375C17.0208 4.39583 17.6917 5.59167 17.925 7.025C19.075 7.125 20.0417 7.6 20.825 8.45C21.6083 9.3 22 10.3167 22 11.5C22 12.75 21.5625 13.8125 20.6875 14.6875C19.8125 15.5625 18.75 16 17.5 16H7.5ZM7.5 14H17.5C18.2 14 18.7917 13.7583 19.275 13.275C19.7583 12.7917 20 12.2 20 11.5C20 10.8 19.7583 10.2083 19.275 9.725C18.7917 9.24167 18.2 9 17.5 9H16V8C16 6.9 15.6083 5.95833 14.825 5.175C14.0417 4.39167 13.1 4 12 4C11.2 4 10.4708 4.21667 9.8125 4.65C9.15417 5.08333 8.65833 5.66667 8.325 6.4L8.075 7H7.45C6.5 7.03333 5.6875 7.3875 5.0125 8.0625C4.3375 8.7375 4 9.55 4 10.5C4 11.4667 4.34167 12.2917 5.025 12.975C5.70833 13.6583 6.53333 14 7.5 14Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n // *** Intent *** //\n check_circle: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_373\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_373)\">\n <path d=\"M10.6 13.8L8.45 11.65C8.26667 11.4667 8.03333 11.375 7.75 11.375C7.46667 11.375 7.23333 11.4667 7.05 11.65C6.86667 11.8333 6.775 12.0667 6.775 12.35C6.775 12.6333 6.86667 12.8667 7.05 13.05L9.9 15.9C10.1 16.1 10.3333 16.2 10.6 16.2C10.8667 16.2 11.1 16.1 11.3 15.9L16.95 10.25C17.1333 10.0667 17.225 9.83333 17.225 9.55C17.225 9.26667 17.1333 9.03333 16.95 8.85C16.7667 8.66667 16.5333 8.575 16.25 8.575C15.9667 8.575 15.7333 8.66667 15.55 8.85L10.6 13.8ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n emergency_home: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_416\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_416)\">\n <path d=\"M12 22.0251C11.7333 22.0251 11.4791 21.9751 11.2375 21.8751C10.9958 21.7751 10.775 21.6334 10.575 21.4501L2.54998 13.4251C2.36664 13.2251 2.22498 13.0043 2.12498 12.7626C2.02498 12.5209 1.97498 12.2668 1.97498 12.0001C1.97498 11.7334 2.02498 11.4751 2.12498 11.2251C2.22498 10.9751 2.36664 10.7584 2.54998 10.5751L10.575 2.5501C10.775 2.3501 10.9958 2.20426 11.2375 2.1126C11.4791 2.02093 11.7333 1.9751 12 1.9751C12.2666 1.9751 12.525 2.02093 12.775 2.1126C13.025 2.20426 13.2416 2.3501 13.425 2.5501L21.45 10.5751C21.65 10.7584 21.7958 10.9751 21.8875 11.2251C21.9791 11.4751 22.025 11.7334 22.025 12.0001C22.025 12.2668 21.9791 12.5209 21.8875 12.7626C21.7958 13.0043 21.65 13.2251 21.45 13.4251L13.425 21.4501C13.2416 21.6334 13.025 21.7751 12.775 21.8751C12.525 21.9751 12.2666 22.0251 12 22.0251ZM12 20.0251L20.025 12.0001L12 3.9751L3.97498 12.0001L12 20.0251ZM12 13.0001C12.2833 13.0001 12.5208 12.9043 12.7125 12.7126C12.9041 12.5209 13 12.2834 13 12.0001V8.0001C13 7.71676 12.9041 7.47926 12.7125 7.2876C12.5208 7.09593 12.2833 7.0001 12 7.0001C11.7166 7.0001 11.4791 7.09593 11.2875 7.2876C11.0958 7.47926 11 7.71676 11 8.0001V12.0001C11 12.2834 11.0958 12.5209 11.2875 12.7126C11.4791 12.9043 11.7166 13.0001 12 13.0001ZM12 16.0001C12.2833 16.0001 12.5208 15.9043 12.7125 15.7126C12.9041 15.5209 13 15.2834 13 15.0001C13 14.7168 12.9041 14.4793 12.7125 14.2876C12.5208 14.0959 12.2833 14.0001 12 14.0001C11.7166 14.0001 11.4791 14.0959 11.2875 14.2876C11.0958 14.4793 11 14.7168 11 15.0001C11 15.2834 11.0958 15.5209 11.2875 15.7126C11.4791 15.9043 11.7166 16.0001 12 16.0001Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n error: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_472\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_472)\">\n <path d=\"M12 17C12.2833 17 12.5208 16.9042 12.7125 16.7125C12.9042 16.5208 13 16.2833 13 16C13 15.7167 12.9042 15.4792 12.7125 15.2875C12.5208 15.0958 12.2833 15 12 15C11.7167 15 11.4792 15.0958 11.2875 15.2875C11.0958 15.4792 11 15.7167 11 16C11 16.2833 11.0958 16.5208 11.2875 16.7125C11.4792 16.9042 11.7167 17 12 17ZM12 13C12.2833 13 12.5208 12.9042 12.7125 12.7125C12.9042 12.5208 13 12.2833 13 12V8C13 7.71667 12.9042 7.47917 12.7125 7.2875C12.5208 7.09583 12.2833 7 12 7C11.7167 7 11.4792 7.09583 11.2875 7.2875C11.0958 7.47917 11 7.71667 11 8V12C11 12.2833 11.0958 12.5208 11.2875 12.7125C11.4792 12.9042 11.7167 13 12 13ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n info: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_603\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_603)\">\n <path d=\"M12 17C12.2833 17 12.5208 16.9042 12.7125 16.7125C12.9042 16.5208 13 16.2833 13 16V12C13 11.7167 12.9042 11.4792 12.7125 11.2875C12.5208 11.0958 12.2833 11 12 11C11.7167 11 11.4792 11.0958 11.2875 11.2875C11.0958 11.4792 11 11.7167 11 12V16C11 16.2833 11.0958 16.5208 11.2875 16.7125C11.4792 16.9042 11.7167 17 12 17ZM12 9C12.2833 9 12.5208 8.90417 12.7125 8.7125C12.9042 8.52083 13 8.28333 13 8C13 7.71667 12.9042 7.47917 12.7125 7.2875C12.5208 7.09583 12.2833 7 12 7C11.7167 7 11.4792 7.09583 11.2875 7.2875C11.0958 7.47917 11 7.71667 11 8C11 8.28333 11.0958 8.52083 11.2875 8.7125C11.4792 8.90417 11.7167 9 12 9ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n warning: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_475\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_475)\">\n <path d=\"M2.72503 21C2.5417 21 2.37503 20.9542 2.22503 20.8625C2.07503 20.7708 1.95837 20.65 1.87503 20.5C1.7917 20.35 1.74587 20.1875 1.73753 20.0125C1.7292 19.8375 1.77503 19.6667 1.87503 19.5L11.125 3.5C11.225 3.33333 11.3542 3.20833 11.5125 3.125C11.6709 3.04167 11.8334 3 12 3C12.1667 3 12.3292 3.04167 12.4875 3.125C12.6459 3.20833 12.775 3.33333 12.875 3.5L22.125 19.5C22.225 19.6667 22.2709 19.8375 22.2625 20.0125C22.2542 20.1875 22.2084 20.35 22.125 20.5C22.0417 20.65 21.925 20.7708 21.775 20.8625C21.625 20.9542 21.4584 21 21.275 21H2.72503ZM4.45003 19H19.55L12 6L4.45003 19ZM12 18C12.2834 18 12.5209 17.9042 12.7125 17.7125C12.9042 17.5208 13 17.2833 13 17C13 16.7167 12.9042 16.4792 12.7125 16.2875C12.5209 16.0958 12.2834 16 12 16C11.7167 16 11.4792 16.0958 11.2875 16.2875C11.0959 16.4792 11 16.7167 11 17C11 17.2833 11.0959 17.5208 11.2875 17.7125C11.4792 17.9042 11.7167 18 12 18ZM12 15C12.2834 15 12.5209 14.9042 12.7125 14.7125C12.9042 14.5208 13 14.2833 13 14V11C13 10.7167 12.9042 10.4792 12.7125 10.2875C12.5209 10.0958 12.2834 10 12 10C11.7167 10 11.4792 10.0958 11.2875 10.2875C11.0959 10.4792 11 10.7167 11 11V14C11 14.2833 11.0959 14.5208 11.2875 14.7125C11.4792 14.9042 11.7167 15 12 15Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n // *** Social *** //\n social_bluesky: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_8703_408\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_8703_408)\">\n <path d=\"M17.6652 3.95118C15.3724 5.71095 12.906 9.27859 12.0004 11.1932C11.0952 9.27859 8.62837 5.71095 6.33557 3.95118C4.68117 2.68168 2.00037 1.69909 2.00037 4.82495C2.00037 5.4489 2.35037 10.0696 2.55597 10.8195C3.26957 13.4274 5.87117 14.0921 8.18517 13.6898C4.14037 14.3937 3.11157 16.724 5.33357 19.0548C9.55397 23.4815 11.3996 17.9442 11.872 16.5255C11.9596 16.2635 12 16.142 12 16.2496C12 16.142 12.0404 16.2635 12.128 16.5255C12.6004 17.9442 14.446 23.4815 18.6664 19.0548C20.8884 16.724 19.86 14.3937 15.8148 13.6898C18.1288 14.0925 20.7304 13.4274 21.444 10.8195C21.6496 10.0692 21.9996 5.4489 21.9996 4.82495C21.9996 1.69909 19.3188 2.68168 17.6644 3.95077L17.6652 3.95118Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_facebook: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_332\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_332)\">\n <path d=\"M12.0367 2C6.49365 2 2 6.49365 2 12.0367C2 16.7436 5.24066 20.6932 9.61226 21.778V15.104H7.54269V12.0367H9.61226V10.7151C9.61226 7.29899 11.1583 5.7156 14.5122 5.7156C15.1481 5.7156 16.2453 5.84046 16.6942 5.96491V8.74509C16.4573 8.7202 16.0458 8.70775 15.5347 8.70775C13.8891 8.70775 13.2532 9.33123 13.2532 10.952V12.0367H16.5316L15.9683 15.104H13.2532V22C18.223 21.3998 22.0739 17.1683 22.0739 12.0367C22.0735 6.49365 17.5798 2 12.0367 2Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_flickr: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_698\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_698)\">\n <path d=\"M20.4375 2H3.5625C2.69922 2 2 2.69922 2 3.5625V20.4375C2 21.3008 2.69922 22 3.5625 22H20.4375C21.3008 22 22 21.3008 22 20.4375V3.5625C22 2.69922 21.3008 2 20.4375 2ZM9.20313 14.2031C7.98828 14.2031 7 13.2148 7 12C7 10.7852 7.98438 9.79688 9.20313 9.79688C10.4219 9.79688 11.4063 10.7852 11.4063 12C11.4063 13.2148 10.4219 14.2031 9.20313 14.2031ZM14.7969 14.2031C13.5781 14.2031 12.5938 13.2148 12.5938 12C12.5938 10.7852 13.5781 9.79688 14.7969 9.79688C16.0117 9.79688 17 10.7852 17 12C17 13.2148 16.0156 14.2031 14.7969 14.2031Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_google_play: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_532\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_532)\">\n <path d=\"M6.1202 2.50833L17.0372 8.79667L14.6972 11.1408L6.1202 2.50833ZM3.85845 2L13.8795 12L3.85928 22C3.34937 21.7742 3 21.2717 3 20.6875C3 20.6683 3 20.6492 3.00083 20.6308V20.6333V3.3675C3 3.35167 3 3.3325 3 3.31333C3 2.72917 3.34937 2.22667 3.85013 2.00417L3.85928 2.00083L3.85845 2ZM20.4302 10.8283C20.7746 11.0842 20.995 11.4908 20.995 11.9483C20.995 11.9667 20.995 11.9842 20.9942 12.0025V12C20.9975 12.0358 21 12.0783 21 12.1208C21 12.5508 20.792 12.9325 20.471 13.1692L20.4676 13.1717L18.1277 14.4992L15.5939 12L18.1285 9.46083L20.4302 10.8283ZM6.1202 21.4917L14.698 12.8592L17.038 15.2033L6.1202 21.4917Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_instagram: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_637\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_637)\">\n <path d=\"M12.002 3.80113C14.6744 3.80113 14.9908 3.81285 16.0418 3.85974C17.0186 3.90272 17.546 4.06681 17.8976 4.20356C18.3626 4.38328 18.6986 4.60207 19.0463 4.9498C19.3979 5.30143 19.6128 5.63352 19.7925 6.09846C19.9293 6.45009 20.0934 6.98144 20.1364 7.95429C20.1832 9.00918 20.195 9.32565 20.195 11.9941C20.195 14.6665 20.1832 14.983 20.1364 16.034C20.0934 17.0107 19.9293 17.5382 19.7925 17.8898C19.6128 18.3548 19.394 18.6908 19.0463 19.0385C18.6947 19.3901 18.3626 19.605 17.8976 19.7847C17.546 19.9215 17.0147 20.0856 16.0418 20.1285C14.9869 20.1754 14.6704 20.1871 12.002 20.1871C9.32956 20.1871 9.01309 20.1754 7.9621 20.1285C6.98535 20.0856 6.4579 19.9215 6.10627 19.7847C5.64134 19.605 5.30533 19.3862 4.95761 19.0385C4.60598 18.6869 4.39109 18.3548 4.21137 17.8898C4.07462 17.5382 3.91053 17.0068 3.86755 16.034C3.82067 14.9791 3.80895 14.6626 3.80895 11.9941C3.80895 9.32174 3.82067 9.00527 3.86755 7.95429C3.91053 6.97753 4.07462 6.45009 4.21137 6.09846C4.39109 5.63352 4.60988 5.29752 4.95761 4.9498C5.30924 4.59816 5.64134 4.38328 6.10627 4.20356C6.4579 4.06681 6.98926 3.90272 7.9621 3.85974C9.01309 3.81285 9.32956 3.80113 12.002 3.80113ZM12.002 2C9.28658 2 8.94667 2.01172 7.88006 2.05861C6.81735 2.10549 6.08674 2.2774 5.4538 2.52354C4.79351 2.7814 4.23481 3.12131 3.68002 3.68002C3.12131 4.23481 2.7814 4.79351 2.52354 5.44989C2.2774 6.08674 2.10549 6.81344 2.05861 7.87615C2.01172 8.94667 2 9.28658 2 12.002C2 14.7173 2.01172 15.0572 2.05861 16.1239C2.10549 17.1866 2.2774 17.9172 2.52354 18.5501C2.7814 19.2104 3.12131 19.7691 3.68002 20.3239C4.23481 20.8787 4.79351 21.2225 5.44989 21.4765C6.08674 21.7226 6.81344 21.8945 7.87615 21.9414C8.94276 21.9883 9.28267 22 11.998 22C14.7134 22 15.0533 21.9883 16.1199 21.9414C17.1827 21.8945 17.9133 21.7226 18.5462 21.4765C19.2026 21.2225 19.7613 20.8787 20.3161 20.3239C20.8709 19.7691 21.2147 19.2104 21.4686 18.554C21.7148 17.9172 21.8867 17.1905 21.9336 16.1278C21.9805 15.0611 21.9922 14.7212 21.9922 12.0059C21.9922 9.29049 21.9805 8.95058 21.9336 7.88396C21.8867 6.82125 21.7148 6.09064 21.4686 5.45771C21.2225 4.79351 20.8826 4.23481 20.3239 3.68002C19.7691 3.12522 19.2104 2.7814 18.554 2.52745C17.9172 2.2813 17.1905 2.1094 16.1278 2.06251C15.0572 2.01172 14.7173 2 12.002 2Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M12.002 6.86423C9.16546 6.86423 6.86423 9.16546 6.86423 12.002C6.86423 14.8384 9.16546 17.1397 12.002 17.1397C14.8384 17.1397 17.1397 14.8384 17.1397 12.002C17.1397 9.16546 14.8384 6.86423 12.002 6.86423ZM12.002 15.3346C10.1618 15.3346 8.66927 13.8422 8.66927 12.002C8.66927 10.1618 10.1618 8.66927 12.002 8.66927C13.8422 8.66927 15.3346 10.1618 15.3346 12.002C15.3346 13.8422 13.8422 15.3346 12.002 15.3346Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M18.5423 6.66103C18.5423 7.32522 18.0031 7.86048 17.3428 7.86048C16.6786 7.86048 16.1434 7.32131 16.1434 6.66103C16.1434 5.99683 16.6826 5.46157 17.3428 5.46157C18.0031 5.46157 18.5423 6.00074 18.5423 6.66103Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_linkedin: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_708\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_708)\">\n <path d=\"M20.5195 2H3.47656C2.66016 2 2 2.64453 2 3.44141V20.5547C2 21.3516 2.66016 22 3.47656 22H20.5195C21.3359 22 22 21.3516 22 20.5586V3.44141C22 2.64453 21.3359 2 20.5195 2ZM7.93359 19.043H4.96484V9.49609H7.93359V19.043ZM6.44922 8.19531C5.49609 8.19531 4.72656 7.42578 4.72656 6.47656C4.72656 5.52734 5.49609 4.75781 6.44922 4.75781C7.39844 4.75781 8.16797 5.52734 8.16797 6.47656C8.16797 7.42188 7.39844 8.19531 6.44922 8.19531ZM19.043 19.043H16.0781V14.4023C16.0781 13.2969 16.0586 11.8711 14.5352 11.8711C12.9922 11.8711 12.7578 13.0781 12.7578 14.3242V19.043H9.79688V9.49609H12.6406V10.8008H12.6797C13.0742 10.0508 14.043 9.25781 15.4844 9.25781C18.4883 9.25781 19.043 11.2344 19.043 13.8047V19.043Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_pinterest: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_656\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_656)\">\n <path d=\"M12 2C6.47656 2 2 6.47656 2 12C2 16.2383 4.63672 19.8555 8.35547 21.3125C8.26953 20.5195 8.1875 19.3086 8.39063 18.4453C8.57422 17.6641 9.5625 13.4766 9.5625 13.4766C9.5625 13.4766 9.26172 12.8789 9.26172 11.9922C9.26172 10.6016 10.0664 9.5625 11.0703 9.5625C11.9219 9.5625 12.3359 10.2031 12.3359 10.9727C12.3359 11.832 11.7891 13.1133 11.5078 14.3008C11.2734 15.2969 12.0078 16.1094 12.9883 16.1094C14.7656 16.1094 16.1328 14.2344 16.1328 11.5312C16.1328 9.13672 14.4141 7.46094 11.957 7.46094C9.11328 7.46094 7.44141 9.59375 7.44141 11.8008C7.44141 12.6602 7.77344 13.582 8.1875 14.082C8.26953 14.1797 8.28125 14.2695 8.25781 14.3672C8.18359 14.6836 8.01172 15.3633 7.98047 15.5C7.9375 15.6836 7.83594 15.7227 7.64453 15.6328C6.39453 15.0508 5.61328 13.2266 5.61328 11.7578C5.61328 8.60156 7.90625 5.70703 12.2188 5.70703C15.6875 5.70703 18.3828 8.17969 18.3828 11.4844C18.3828 14.9297 16.2109 17.7031 13.1953 17.7031C12.1836 17.7031 11.2305 17.1758 10.9023 16.5547C10.9023 16.5547 10.4023 18.4648 10.2812 18.9336C10.0547 19.8008 9.44531 20.8906 9.03906 21.5547C9.97656 21.8438 10.9687 22 12 22C17.5234 22 22 17.5234 22 12C22 6.47656 17.5234 2 12 2Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_rss: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_723\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_723)\">\n <path d=\"M2 8.79688V12.6172C4.49219 12.6172 6.85156 13.6016 8.61719 15.3672C10.3828 17.1328 11.3594 19.4922 11.3594 21.9922V22H15.1953C15.1953 18.3594 13.7109 15.0703 11.3203 12.6719C8.9375 10.2812 5.64062 8.80469 2 8.79688Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M4.65625 16.6797C3.92188 16.6797 3.26562 16.9766 2.78125 17.4609C2.29688 17.9453 2 18.6016 2 19.3359C2 20.0625 2.29688 20.7188 2.78125 21.2031C3.26562 21.6797 3.92188 21.9766 4.65625 21.9766C5.39062 21.9766 6.04688 21.6875 6.53125 21.2031C7.01562 20.7188 7.3125 20.0625 7.3125 19.3359C7.3125 18.6016 7.01562 17.9453 6.53125 17.4609C6.04688 16.9766 5.39062 16.6797 4.65625 16.6797Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M16.1328 7.86719C12.5156 4.24219 7.52344 2 2.00781 2V5.82031C10.9219 5.82812 18.1641 13.0859 18.1719 22H22C22 16.4844 19.7578 11.4922 16.1328 7.86719Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_snapchat: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_686\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_686)\">\n <path d=\"M20.581 16.7331C17.4839 15.2334 16.9903 12.9179 16.9683 12.7462C16.9417 12.5381 16.9116 12.3746 17.141 12.163C17.3623 11.9585 18.3439 11.3508 18.6162 11.1606C19.0664 10.8457 19.2647 10.5314 19.1185 10.145C19.0163 9.87763 18.7675 9.77694 18.5053 9.77694C18.4227 9.77719 18.3402 9.78645 18.2596 9.80454C17.7649 9.91188 17.2846 10.1598 17.0066 10.2267C16.9732 10.2354 16.9389 10.24 16.9044 10.2405C16.7562 10.2405 16.7 10.1746 16.7143 9.99622C16.7491 9.45543 16.8226 8.39991 16.7373 7.41391C16.6203 6.05733 16.1829 5.38517 15.6642 4.79071C15.4133 4.50242 14.2483 3.26392 11.9999 3.26392C9.75152 3.26392 8.58799 4.50242 8.33862 4.78713C7.81843 5.38159 7.38153 6.05375 7.26554 7.41033C7.1802 8.39633 7.25685 9.45134 7.28853 9.99264C7.29875 10.1623 7.24663 10.237 7.09844 10.237C7.06395 10.2364 7.02965 10.2317 6.99624 10.2232C6.71877 10.1562 6.23844 9.9083 5.7438 9.80096C5.66311 9.78287 5.5807 9.77361 5.49801 9.77336C5.23485 9.77336 4.98702 9.87559 4.88482 10.1414C4.73867 10.5278 4.93592 10.8422 5.38764 11.157C5.66 11.3472 6.64161 11.9544 6.86287 12.1594C7.0918 12.371 7.06216 12.5346 7.03559 12.7426C7.01362 12.9169 6.51949 15.2324 3.42287 16.7295C3.24146 16.8175 2.93282 17.0035 3.47703 17.3041C4.33141 17.7764 4.90015 17.7258 5.34216 18.0105C5.71723 18.2522 5.49546 18.7736 5.76833 18.9617C6.10354 19.1933 7.09435 18.9454 8.37439 19.3681C9.44748 19.7218 10.0995 20.7211 12.0024 20.7211C13.9054 20.7211 14.5763 19.7172 15.6305 19.3681C16.908 18.9454 17.9008 19.1933 18.2366 18.9617C18.5089 18.7736 18.2877 18.2522 18.6627 18.0105C19.1047 17.7258 19.673 17.7764 20.5279 17.3041C21.071 17.0071 20.7624 16.821 20.581 16.7331Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_soundcloud: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_645\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_645)\">\n <path d=\"M2.9661 12.6702C2.92334 12.6702 2.88837 12.7054 2.88284 12.7539L2.68627 14.6152L2.88284 16.4351C2.88837 16.4837 2.92334 16.5191 2.9661 16.5191C3.00823 16.5191 3.04239 16.4843 3.04914 16.4353L3.27292 14.615L3.04914 12.7537C3.04239 12.7043 3.00823 12.6702 2.9661 12.6702Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M2.22664 13.3833C2.18512 13.3833 2.15198 13.4163 2.14646 13.4644L2 14.6152L2.14646 15.7464C2.15178 15.7943 2.18491 15.8274 2.22664 15.8274C2.26714 15.8274 2.30008 15.7943 2.30662 15.7469L2.47988 14.6152L2.30662 13.4634C2.30008 13.4163 2.26714 13.3833 2.22664 13.3833Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M3.75178 12.3052C3.699 12.3052 3.65687 12.348 3.65155 12.4069L3.46479 14.6152L3.65155 16.7427C3.65687 16.8018 3.699 16.8444 3.75178 16.8444C3.80353 16.8444 3.84567 16.8018 3.8518 16.7429L4.06372 14.615L3.8518 12.4067C3.84567 12.348 3.80353 12.3052 3.75178 12.3052Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M4.544 12.2272C4.48182 12.2272 4.4313 12.2785 4.42639 12.3468L4.25006 14.6158L4.42639 16.8105C4.4313 16.8783 4.48182 16.9298 4.544 16.9298C4.60516 16.9298 4.65548 16.8783 4.66121 16.8105L4.86147 14.6158L4.66121 12.3463C4.65548 12.2785 4.60516 12.2272 4.544 12.2272Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M5.47655 12.5102C5.47164 12.4328 5.41355 12.3737 5.34237 12.3737C5.27016 12.3737 5.21248 12.4326 5.20798 12.5108L5.04147 14.6156L5.20798 16.8287C5.21248 16.9065 5.27037 16.9657 5.34237 16.9657C5.41376 16.9657 5.47164 16.9067 5.47655 16.8289L5.66535 14.6156L5.47655 12.5102Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M6.14748 11.037C6.06648 11.037 6.0002 11.1053 5.99611 11.1924L5.83984 14.6167L5.99611 16.8296C6.00041 16.9156 6.06668 16.9841 6.14748 16.9841C6.22767 16.9841 6.29394 16.9159 6.29885 16.8289V16.8298L6.47558 14.6169L6.29885 11.1924C6.29374 11.1053 6.22746 11.037 6.14748 11.037Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M6.94625 10.2483C6.85564 10.2483 6.78179 10.3242 6.7777 10.4211C6.7777 10.4215 6.63145 14.6285 6.63145 14.6285L6.77791 16.8277C6.782 16.9241 6.85564 17 6.94625 17C7.03626 17 7.11071 16.9241 7.1146 16.8273V16.8285L7.28008 14.6285L7.1146 10.4211C7.11071 10.3242 7.03626 10.2483 6.94625 10.2483Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M7.77673 9.86804C7.6763 9.86804 7.59468 9.95198 7.5912 10.0588L7.45518 14.6177L7.5912 16.7942C7.59489 16.9002 7.6763 16.9839 7.77673 16.9839C7.87655 16.9839 7.95817 16.9002 7.96226 16.7935V16.7948L8.11588 14.6179L7.96226 10.0588C7.95796 9.95198 7.87655 9.86804 7.77673 9.86804Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M8.80337 9.90556C8.7999 9.78855 8.71092 9.69677 8.60107 9.69677C8.49041 9.69677 8.40143 9.78877 8.39836 9.90556L8.27236 14.6177L8.39857 16.7806C8.40164 16.8964 8.49041 16.9879 8.60107 16.9879C8.71092 16.9879 8.8001 16.8964 8.80337 16.78L8.94533 14.6184L8.80337 9.90556Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M9.43176 9.8C9.31107 9.8 9.21473 9.89941 9.21186 10.0264L9.09609 14.6186L9.21227 16.7605C9.21493 16.8862 9.31107 16.986 9.43176 16.986C9.55162 16.986 9.64797 16.886 9.65124 16.7592V16.7609L9.78174 14.6182L9.65124 10.0257C9.64797 9.89899 9.55162 9.8 9.43176 9.8Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M10.269 9.94986C10.1389 9.94986 10.0346 10.0573 10.0321 10.1943L9.92636 14.6186L10.0321 16.7478C10.0346 16.8834 10.1389 16.9905 10.269 16.9905C10.3989 16.9905 10.503 16.8834 10.5054 16.7463V16.748L10.6241 14.6192L10.5054 10.1945C10.503 10.0573 10.3989 9.94986 10.269 9.94986Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M11.2529 9.13676C11.2128 9.10857 11.1643 9.09204 11.1126 9.09204C11.0622 9.09204 11.0154 9.10794 10.9759 9.13464C10.9066 9.18149 10.8601 9.26225 10.8589 9.35424L10.8581 9.40384L10.7628 14.6177C10.7628 14.6207 10.8589 16.734 10.8589 16.734C10.8589 16.7374 10.8593 16.7397 10.8595 16.7429C10.8624 16.8018 10.8839 16.8561 10.9184 16.8991C10.9653 16.957 11.035 16.9943 11.1126 16.9943C11.1815 16.9943 11.2443 16.9648 11.2901 16.9173C11.3361 16.8701 11.3652 16.8048 11.3664 16.7323L11.4734 14.619L11.3666 9.35403C11.365 9.26352 11.32 9.18382 11.2529 9.13676Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M12.0903 8.63759C12.0502 8.61215 12.0028 8.59732 11.9526 8.59732C11.888 8.59732 11.8285 8.62148 11.7816 8.66133C11.7215 8.71284 11.6826 8.79041 11.6814 8.87732L11.6808 8.90615L11.5703 14.6199L11.6814 16.7039C11.6837 16.8559 11.805 16.9818 11.9526 16.9818C12.0997 16.9818 12.221 16.8559 12.2231 16.702V16.7045L12.3437 14.6201L12.2235 8.8769C12.222 8.77537 12.1684 8.68655 12.0903 8.63759Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path d=\"M19.5399 11.9014C19.2032 11.9014 18.8812 11.9722 18.5887 12.0992C18.3925 9.80212 16.5336 8 14.2659 8C13.7108 8 13.1701 8.11319 12.6923 8.30459C12.5068 8.3792 12.4577 8.45551 12.4558 8.60431V16.6946C12.4577 16.8504 12.5743 16.9718 12.7213 16.9869C12.7277 16.9877 19.5403 16.9869 19.5403 16.9869C20.8989 16.9869 22 15.8584 22 14.4503C21.9998 13.0426 20.8987 11.9014 19.5399 11.9014Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_tiktok: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_642\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_642)\">\n <path d=\"M17.883 6.27729C17.7506 6.20752 17.6217 6.13104 17.4968 6.04813C17.1337 5.80333 16.8007 5.51489 16.5051 5.18901C15.7655 4.32613 15.4893 3.45076 15.3876 2.83787H15.3917C15.3067 2.32915 15.3418 2 15.3471 2H11.9785V15.2818C11.9785 15.4602 11.9785 15.6364 11.9712 15.8106C11.9712 15.8322 11.9691 15.8522 11.9679 15.8756C11.9679 15.8851 11.9679 15.8951 11.9658 15.9051C11.9658 15.9076 11.9658 15.9101 11.9658 15.9126C11.9303 16.3892 11.7805 16.8495 11.5296 17.2532C11.2786 17.6568 10.9342 17.9914 10.5267 18.2275C10.102 18.4739 9.62159 18.6032 9.13293 18.6025C7.56344 18.6025 6.29143 17.2976 6.29143 15.686C6.29143 14.0744 7.56344 12.7695 9.13293 12.7695C9.43002 12.7692 9.72529 12.8169 10.0078 12.9107L10.0119 9.41338C9.15432 9.30043 8.28314 9.36992 7.45327 9.61747C6.62339 9.86502 5.85284 10.2852 5.19021 10.8516C4.6096 11.366 4.12148 11.9798 3.74781 12.6653C3.60561 12.9153 3.0691 13.9198 3.00413 15.5502C2.96327 16.4755 3.23582 17.4342 3.36575 17.8305V17.8388C3.44748 18.0721 3.76415 18.8683 4.28023 19.5395C4.69638 20.078 5.18804 20.5509 5.73939 20.9432V20.9349L5.74756 20.9432C7.37834 22.0732 9.18645 21.999 9.18645 21.999C9.49945 21.9861 10.548 21.999 11.7387 21.4236C13.0593 20.7857 13.8111 19.8354 13.8111 19.8354C14.2915 19.2675 14.6734 18.6204 14.9405 17.9217C15.2454 17.1047 15.3471 16.1247 15.3471 15.7331V8.68675C15.388 8.71175 15.9323 9.07881 15.9323 9.07881C15.9323 9.07881 16.7164 9.59129 17.9398 9.92502C18.8175 10.1625 20 10.2125 20 10.2125V6.80268C19.5857 6.84851 18.7443 6.71518 17.883 6.27729Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_threads: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_8703_592\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_8703_592)\">\n <path d=\"M12.6885 11.9189C13.0794 11.9258 13.4486 11.9685 13.791 12.0469C13.7832 12.134 13.7735 12.2225 13.7617 12.3115C13.697 12.7932 13.5053 13.4354 12.9629 13.7637C12.5851 13.992 12.0197 14.0489 11.5566 13.9033C11.3229 13.8298 11.0137 13.673 10.8672 13.3447C10.6962 12.962 10.8025 12.5488 11.1377 12.292C11.466 12.0406 11.9426 11.918 12.5928 11.918C12.6241 11.918 12.6561 11.918 12.6885 11.9189Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 1.73926C17.5141 1.73926 22 6.22519 22 11.7393C21.9998 17.2532 17.514 21.7393 12 21.7393C6.48604 21.7393 2.00017 17.2532 2 11.7393C2 6.22519 6.48594 1.73926 12 1.73926ZM11.8076 5.15039C10.4347 5.2205 9.30138 5.60456 8.43945 6.29199C7.32998 7.17703 6.78999 8.51263 6.53223 9.47754C6.0476 11.2917 6.18684 13.3229 6.91602 15.0508C7.57804 16.6203 8.82441 17.7118 10.4248 18.125C10.9349 18.2568 11.5227 18.3389 12.1387 18.3389C13.3215 18.3389 14.6081 18.0365 15.6455 17.2051C16.5957 16.4435 17.1204 15.4692 17.1621 14.3867C17.2042 13.2995 16.8238 12.3987 16.0625 11.7812C15.7563 11.5334 15.4109 11.3248 15.0342 11.1592C15.0013 10.6574 14.8983 10.1062 14.6572 9.625C14.2368 8.78705 13.3903 8.24879 12.3916 8.18457C11.3066 8.11449 10.2369 8.61512 9.66797 9.45898L10.6943 10.1504C11.0222 9.66385 11.6583 9.37631 12.3125 9.41895C12.8754 9.4553 13.3274 9.73236 13.5518 10.1797C13.635 10.3457 13.6986 10.5482 13.7422 10.7764C13.412 10.7196 13.0671 10.688 12.709 10.6816C11.7223 10.666 10.9595 10.8697 10.3848 11.3096C9.59047 11.9177 9.33024 12.9382 9.73633 13.8486C9.99698 14.4336 10.5115 14.8727 11.1855 15.084C11.9916 15.3368 12.9179 15.2368 13.6025 14.8232C14.341 14.3769 14.8295 13.5622 14.9805 12.5264C15.0866 12.5929 15.1873 12.6649 15.2822 12.7422C15.7355 13.1092 15.9522 13.6469 15.9258 14.3389C15.8978 15.0621 15.5433 15.7012 14.8721 16.2393C13.8655 17.0459 12.2408 17.3154 10.7334 16.9268C9.51525 16.6126 8.5643 15.7748 8.05566 14.5693C7.43137 13.0899 7.31198 11.3508 7.72754 9.79688C8.02402 8.68694 8.55085 7.78607 9.21094 7.25977C9.86663 6.73688 10.7616 6.4421 11.8711 6.38574C14.2878 6.26097 16.0368 7.49129 16.5469 9.6709L17.752 9.3877C17.1039 6.6202 14.8261 4.99652 11.8076 5.15039Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_tumblr: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_356\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_356)\">\n <path d=\"M14.1667 22C11.1667 22 8.91675 20.4583 8.91675 16.75V10.8333H6.16675V7.625C9.16675 6.83333 10.4167 4.25 10.5834 2H13.7084V7.08333H17.3334V10.8333H13.7084V16C13.7084 17.5417 14.5001 18.0833 15.7501 18.0833H17.5001V22H14.1667Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_vimeo: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_631\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_631)\">\n <path d=\"M21.8881 4.69862C21.5362 3.22947 19.8797 2.81423 18.2069 3.07121C17.3489 3.20497 14.4525 4.49916 13.4656 7.60025C15.2117 7.46356 16.1279 7.72713 15.9598 9.67303C15.8886 10.4885 15.4838 11.3805 15.0286 12.2362C14.5054 13.2241 13.5212 15.1601 12.2329 13.7655C11.0727 12.5073 11.1617 10.1053 10.8975 8.5037C10.7477 7.60315 10.5914 6.48589 10.3004 5.56221C10.0519 4.76626 9.47709 3.80956 8.77407 3.59995C8.01998 3.37796 7.08804 3.72783 6.54143 4.05518C4.83909 5.06578 3.56386 6.45811 2.10226 7.65849C1.91782 7.84616 2.02704 8.00379 2.08913 8.14342C2.29904 8.47202 2.38014 8.67144 2.78041 8.73002C3.81954 8.88433 4.8077 7.74937 5.4963 8.93241C5.9175 9.65239 6.0489 10.4421 6.31772 11.2177C6.67544 12.2568 6.95332 13.3843 7.2476 14.5768C7.74663 16.592 8.35542 19.6046 10.0787 20.3458C10.9563 20.7212 12.276 20.218 12.9437 19.8167C14.7553 18.7305 16.2286 17.2052 17.375 15.5542C20.3584 11.2609 21.7887 6.94699 21.9442 6.12531C22.0548 5.52978 21.9823 5.0383 21.8881 4.69862Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_x: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_289\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_289)\">\n <path d=\"M18.4256 2H21.8185L14.4062 10.4718L23.1262 22H16.2985L10.9508 15.0082L4.83179 22H1.43692L9.36513 12.9385L1 2H8.00103L12.8349 8.39077L18.4256 2ZM17.2349 19.9692H19.1149L6.97949 3.9241H4.96205L17.2349 19.9692Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n social_youtube: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_535\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_535)\">\n <path d=\"M21.8008 8.03516C21.8008 8.03516 21.6055 6.65625 21.0039 6.05078C20.2422 5.25391 19.3906 5.25 19 5.20312C16.2031 5 12.0039 5 12.0039 5H11.9961C11.9961 5 7.79688 5 5 5.20312C4.60938 5.25 3.75781 5.25391 2.99609 6.05078C2.39453 6.65625 2.20312 8.03516 2.20312 8.03516C2.20312 8.03516 2 9.65625 2 11.2734V12.7891C2 14.4062 2.19922 16.0273 2.19922 16.0273C2.19922 16.0273 2.39453 17.4062 2.99219 18.0117C3.75391 18.8086 4.75391 18.7812 5.19922 18.8672C6.80078 19.0195 12 19.0664 12 19.0664C12 19.0664 16.2031 19.0586 19 18.8594C19.3906 18.8125 20.2422 18.8086 21.0039 18.0117C21.6055 17.4062 21.8008 16.0273 21.8008 16.0273C21.8008 16.0273 22 14.4102 22 12.7891V11.2734C22 9.65625 21.8008 8.03516 21.8008 8.03516ZM9.93359 14.6289V9.00781L15.3359 11.8281L9.93359 14.6289Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n // *** Filled *** //\n account_balance_filled: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_695\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_695)\">\n <path d=\"M4.22502 15.875V11.65C4.22502 11.2666 4.36252 10.9416 4.63752 10.675C4.91252 10.4083 5.24169 10.275 5.62502 10.275C6.00836 10.275 6.33336 10.4083 6.60002 10.675C6.86669 10.9416 7.00002 11.2666 7.00002 11.65V15.9C7.00002 16.2833 6.86669 16.6083 6.60002 16.875C6.33336 17.1416 6.00836 17.275 5.62502 17.275C5.24169 17.275 4.91252 17.1375 4.63752 16.8625C4.36252 16.5875 4.22502 16.2583 4.22502 15.875ZM10.625 15.9V11.65C10.625 11.2666 10.7584 10.9416 11.025 10.675C11.2917 10.4083 11.6167 10.275 12 10.275C12.3834 10.275 12.7084 10.4083 12.975 10.675C13.2417 10.9416 13.375 11.2666 13.375 11.65V15.9C13.375 16.2833 13.2417 16.6083 12.975 16.875C12.7084 17.1416 12.3834 17.275 12 17.275C11.6167 17.275 11.2917 17.1416 11.025 16.875C10.7584 16.6083 10.625 16.2833 10.625 15.9ZM2.72502 21.65C2.29169 21.65 1.92086 21.4958 1.61252 21.1875C1.30419 20.8791 1.15002 20.5083 1.15002 20.075C1.15002 19.6416 1.30419 19.2708 1.61252 18.9625C1.92086 18.6541 2.29169 18.5 2.72502 18.5H21.275C21.7084 18.5 22.0792 18.6541 22.3875 18.9625C22.6959 19.2708 22.85 19.6416 22.85 20.075C22.85 20.5083 22.6959 20.8791 22.3875 21.1875C22.0792 21.4958 21.7084 21.65 21.275 21.65H2.72502ZM17 15.875V11.65C17 11.2666 17.1375 10.9416 17.4125 10.675C17.6875 10.4083 18.0167 10.275 18.4 10.275C18.7834 10.275 19.1084 10.4083 19.375 10.675C19.6417 10.9416 19.775 11.2666 19.775 11.65V15.9C19.775 16.2833 19.6417 16.6083 19.375 16.875C19.1084 17.1416 18.7834 17.275 18.4 17.275C18.0167 17.275 17.6875 17.1375 17.4125 16.8625C17.1375 16.5875 17 16.2583 17 15.875ZM21.175 9.02495H2.65002C2.23336 9.02495 1.87919 8.87912 1.58752 8.58745C1.29586 8.29578 1.15002 7.94162 1.15002 7.52495V6.57495C1.15002 6.29162 1.22502 6.02912 1.37502 5.78745C1.52502 5.54578 1.72502 5.35828 1.97502 5.22495L10.6 0.924951C11.0334 0.691618 11.5 0.574951 12 0.574951C12.5 0.574951 12.9667 0.691618 13.4 0.924951L21.925 5.17495C22.2084 5.30828 22.4334 5.51245 22.6 5.78745C22.7667 6.06245 22.85 6.36662 22.85 6.69995V7.32495C22.85 7.79162 22.6875 8.19162 22.3625 8.52495C22.0375 8.85828 21.6417 9.02495 21.175 9.02495Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n cancel_filled: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_549\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_549)\">\n <path d=\"M11.9242 13.3033L14.8242 16.2033C15.0075 16.3867 15.2409 16.4783 15.5242 16.4783C15.8075 16.4783 16.0409 16.3867 16.2242 16.2033C16.4075 16.02 16.4992 15.7867 16.4992 15.5033C16.4992 15.22 16.4075 14.9867 16.2242 14.8033L13.3242 11.9033L16.2242 9.00332C16.4075 8.81999 16.4992 8.58665 16.4992 8.30332C16.4992 8.01999 16.4075 7.78665 16.2242 7.60332C16.0409 7.41999 15.8075 7.32832 15.5242 7.32832C15.2409 7.32832 15.0075 7.41999 14.8242 7.60332L11.9242 10.5033L9.02419 7.60332C8.84086 7.41999 8.60753 7.32832 8.32419 7.32832C8.04086 7.32832 7.80753 7.41999 7.62419 7.60332C7.44086 7.78665 7.34919 8.01999 7.34919 8.30332C7.34919 8.58665 7.44086 8.81999 7.62419 9.00332L10.5242 11.9033L7.62419 14.8033C7.44086 14.9867 7.34919 15.22 7.34919 15.5033C7.34919 15.7867 7.44086 16.02 7.62419 16.2033C7.80753 16.3867 8.04086 16.4783 8.32419 16.4783C8.60753 16.4783 8.84086 16.3867 9.02419 16.2033L11.9242 13.3033ZM11.9242 21.9033C10.5409 21.9033 9.24086 21.6408 8.02419 21.1158C6.80753 20.5908 5.74919 19.8783 4.84919 18.9783C3.94919 18.0783 3.23669 17.02 2.71169 15.8033C2.18669 14.5867 1.92419 13.2867 1.92419 11.9033C1.92419 10.52 2.18669 9.21999 2.71169 8.00332C3.23669 6.78665 3.94919 5.72832 4.84919 4.82832C5.74919 3.92832 6.80753 3.21582 8.02419 2.69082C9.24086 2.16582 10.5409 1.90332 11.9242 1.90332C13.3075 1.90332 14.6075 2.16582 15.8242 2.69082C17.0409 3.21582 18.0992 3.92832 18.9992 4.82832C19.8992 5.72832 20.6117 6.78665 21.1367 8.00332C21.6617 9.21999 21.9242 10.52 21.9242 11.9033C21.9242 13.2867 21.6617 14.5867 21.1367 15.8033C20.6117 17.02 19.8992 18.0783 18.9992 18.9783C18.0992 19.8783 17.0409 20.5908 15.8242 21.1158C14.6075 21.6408 13.3075 21.9033 11.9242 21.9033Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n language_filled: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_563\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_563)\">\n <path d=\"M12 22.8499C10.5167 22.8499 9.11669 22.5624 7.80002 21.9874C6.48336 21.4124 5.33336 20.6332 4.35002 19.6499C3.36669 18.6666 2.58752 17.5166 2.01252 16.1999C1.43752 14.8832 1.15002 13.4832 1.15002 11.9999C1.15002 10.5166 1.43752 9.11657 2.01252 7.7999C2.58752 6.48324 3.36669 5.33324 4.35002 4.3499C5.33336 3.36657 6.48336 2.5874 7.80002 2.0124C9.11669 1.4374 10.5167 1.1499 12 1.1499C13.4834 1.1499 14.8834 1.4374 16.2 2.0124C17.5167 2.5874 18.6667 3.36657 19.65 4.3499C20.6334 5.33324 21.4125 6.48324 21.9875 7.7999C22.5625 9.11657 22.85 10.5166 22.85 11.9999C22.85 13.4832 22.5625 14.8832 21.9875 16.1999C21.4125 17.5166 20.6334 18.6666 19.65 19.6499C18.6667 20.6332 17.5167 21.4124 16.2 21.9874C14.8834 22.5624 13.4834 22.8499 12 22.8499ZM11.95 19.6749C12.3167 19.1082 12.6584 18.5041 12.975 17.8624C13.2917 17.2207 13.55 16.5499 13.75 15.8499H10.225C10.425 16.5499 10.6709 17.2207 10.9625 17.8624C11.2542 18.5041 11.5834 19.1082 11.95 19.6749ZM9.47502 19.2749C9.14169 18.7582 8.87919 18.2041 8.68752 17.6124C8.49586 17.0207 8.32502 16.4332 8.17502 15.8499H5.37502C5.80836 16.6499 6.37502 17.3499 7.07502 17.9499C7.77502 18.5499 8.57502 18.9916 9.47502 19.2749ZM14.45 19.2749C15.35 18.9916 16.1584 18.5499 16.875 17.9499C17.5917 17.3499 18.1667 16.6499 18.6 15.8499H15.8C15.65 16.4332 15.4709 17.0207 15.2625 17.6124C15.0542 18.2041 14.7834 18.7582 14.45 19.2749ZM4.55002 13.9249H7.77502C7.72502 13.5916 7.68752 13.2707 7.66252 12.9624C7.63752 12.6541 7.62502 12.3332 7.62502 11.9999C7.62502 11.6499 7.63752 11.3249 7.66252 11.0249C7.68752 10.7249 7.72502 10.4082 7.77502 10.0749H4.55002C4.46669 10.3916 4.40419 10.7041 4.36252 11.0124C4.32086 11.3207 4.30002 11.6499 4.30002 11.9999C4.30002 12.3332 4.32086 12.6582 4.36252 12.9749C4.40419 13.2916 4.46669 13.6082 4.55002 13.9249ZM9.77502 13.9249H14.2C14.25 13.5916 14.2792 13.2707 14.2875 12.9624C14.2959 12.6541 14.3 12.3332 14.3 11.9999C14.3 11.6499 14.2959 11.3249 14.2875 11.0249C14.2792 10.7249 14.25 10.4082 14.2 10.0749H9.77502C9.72502 10.4082 9.68752 10.7249 9.66252 11.0249C9.63752 11.3249 9.62502 11.6499 9.62502 11.9999C9.62502 12.3332 9.63752 12.6541 9.66252 12.9624C9.68752 13.2707 9.72502 13.5916 9.77502 13.9249ZM16.2 13.9249H19.4C19.4834 13.6082 19.5459 13.2916 19.5875 12.9749C19.6292 12.6582 19.65 12.3332 19.65 11.9999C19.65 11.6499 19.6292 11.3207 19.5875 11.0124C19.5459 10.7041 19.4834 10.3916 19.4 10.0749H16.2C16.2334 10.4082 16.2584 10.7249 16.275 11.0249C16.2917 11.3249 16.3 11.6499 16.3 11.9999C16.3 12.3332 16.2917 12.6541 16.275 12.9624C16.2584 13.2707 16.2334 13.5916 16.2 13.9249ZM15.8 8.1249H18.6C18.1667 7.3249 17.5917 6.62907 16.875 6.0374C16.1584 5.44574 15.35 5.00824 14.45 4.7249C14.7834 5.24157 15.0542 5.79157 15.2625 6.3749C15.4709 6.95824 15.65 7.54157 15.8 8.1249ZM10.225 8.1249H13.75C13.5667 7.4249 13.3167 6.75824 13 6.1249C12.6834 5.49157 12.3334 4.89157 11.95 4.3249C11.5834 4.89157 11.2542 5.49157 10.9625 6.1249C10.6709 6.75824 10.425 7.4249 10.225 8.1249ZM5.37502 8.1249H8.17502C8.32502 7.54157 8.49586 6.95824 8.68752 6.3749C8.87919 5.79157 9.14169 5.24157 9.47502 4.7249C8.57502 5.00824 7.77502 5.44574 7.07502 6.0374C6.37502 6.62907 5.80836 7.3249 5.37502 8.1249Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n lock_filled: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <mask id=\"mask0_12372_621\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"24\" height=\"24\">\n <rect width=\"24\" height=\"24\" fill=\"#D9D9D9\"/>\n </mask>\n <g mask=\"url(#mask0_12372_621)\">\n <path d=\"M6.30002 22.7751C5.43369 22.7751 4.69211 22.4667 4.07527 21.8498C3.45844 21.2328 3.15002 20.4913 3.15002 19.6251V10.2251C3.15002 9.35893 3.45844 8.61735 4.07527 8.00035C4.69211 7.38351 5.43369 7.0751 6.30002 7.0751H6.62502V5.8001C6.62502 4.28343 7.14586 2.99593 8.18752 1.9376C9.22919 0.879264 10.5 0.350098 12 0.350098C13.5 0.350098 14.7709 0.879264 15.8125 1.9376C16.8542 2.99593 17.375 4.28343 17.375 5.8001V7.0751H17.7C18.5662 7.0751 19.3078 7.38351 19.9248 8.00035C20.5416 8.61735 20.85 9.35893 20.85 10.2251V19.6251C20.85 20.4913 20.5416 21.2328 19.9248 21.8498C19.3078 22.4667 18.5662 22.7751 17.7 22.7751H6.30002ZM12 16.9251C12.55 16.9251 13.0209 16.7293 13.4125 16.3376C13.8042 15.9459 14 15.4751 14 14.9251C14 14.3751 13.8042 13.9043 13.4125 13.5126C13.0209 13.1209 12.55 12.9251 12 12.9251C11.45 12.9251 10.9792 13.1209 10.5875 13.5126C10.1959 13.9043 10 14.3751 10 14.9251C10 15.4751 10.1959 15.9459 10.5875 16.3376C10.9792 16.7293 11.45 16.9251 12 16.9251ZM9.77502 7.0751H14.225V5.8001C14.225 5.16126 14.0125 4.61818 13.5875 4.17085C13.1625 3.72368 12.6334 3.5001 12 3.5001C11.3667 3.5001 10.8375 3.72368 10.4125 4.17085C9.98752 4.61818 9.77502 5.16126 9.77502 5.8001V7.0751Z\" fill=\"var(--nys-icon-color, currentcolor)\"/>\n </g>\n</svg>`,\n};\n\nexport default iconLibrary;\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport iconLibrary from \"./nys-icon.library\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-icon.scss?inline\";\n\n/**\n * `<nys-icon>` renders an SVG icon from the internal icon library.\n *\n * Icons are inline SVGs and support sizing, rotation, flipping, color,\n * and accessibility labeling.\n */\n\nexport class NysIcon extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) ariaLabel = \"\";\n @property({ type: String }) rotate = \"0\";\n @property({ type: String }) flip = \"\";\n @property({ type: String }) color = \"\";\n @property({ type: String }) size:\n | \"xs\"\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"xl\"\n | \"2xl\"\n | \"3xl\"\n | \"4xl\"\n | \"5xl\"\n | \"12\"\n | \"14\"\n | \"16\"\n | \"18\"\n | \"20\"\n | \"24\"\n | \"32\"\n | \"40\"\n | \"50\" = \"md\";\n\n /**\n * Retrieves the SVG element for the given icon name and applies\n * accessibility, rotation, flip, color, and size classes.\n * @returns SVGElement | null\n */\n private getIcon(): SVGElement | null {\n const iconSVG = iconLibrary[this.name];\n\n if (!iconSVG) return null;\n\n // Parse the SVG string into an actual SVG DOM element\n const parser = new DOMParser();\n const svgDoc = parser.parseFromString(iconSVG, \"image/svg+xml\");\n const svgElement = svgDoc.documentElement;\n\n // Ensure the parsed element is an SVGElement\n if (!(svgElement instanceof SVGElement)) {\n return null;\n }\n\n // Add accessibility attributes directly to the <svg>\n svgElement.setAttribute(\"role\", \"img\");\n if (this.ariaLabel) {\n svgElement.setAttribute(\"aria-label\", this.ariaLabel);\n svgElement.removeAttribute(\"aria-hidden\");\n } else {\n svgElement.setAttribute(\"aria-hidden\", \"true\");\n svgElement.removeAttribute(\"aria-label\");\n }\n\n // Add styles\n svgElement.style.rotate = `${this.rotate}deg`;\n svgElement.style.color = this.color || \"currentcolor\";\n svgElement.classList.add(`nys-icon--${this.size}`);\n svgElement.classList.add(`nys-icon--svg`);\n\n if (this.flip) {\n svgElement.classList.add(`nys-icon--flip-${this.flip}`);\n }\n\n return svgElement;\n }\n\n render() {\n const icon = this.getIcon();\n return icon ? html`${icon}` : null;\n }\n}\n\n/*\n Conditionally register the custom element.\n This ensure the custom element is registered only once to avoid duplication, especially in environments like Storybook where this component may be used as a dependency.\n */\nif (!customElements.get(\"nys-icon\")) {\n customElements.define(\"nys-icon\", NysIcon);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-label.scss?inline\";\n\n/**\n * THIS IS A PRIVATE COMPONENT!\n * `NysLabel` is a component for rendering form labels with optional\n * descriptions, flags (required/optional), and tooltips.\n */\nexport class NysLabel extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String }) for = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String }) flag = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String })\n get tooltip() {\n return this._tooltip;\n }\n set tooltip(value: string) {\n this._tooltip = value;\n }\n private _tooltip: string = \"\";\n\n render() {\n return html`\n <div class=\"nys-label ${this.inverted ? \"invert\" : \"\"}\">\n <div class=\"nys-label__tooltip-wrapper\">\n <label for=${this.for} class=\"nys-label__label\"\n >${this.label}\n ${this.flag === \"required\"\n ? html`<div class=\"nys-label__required\">*</div>`\n : \"\"}\n ${this.flag === \"optional\"\n ? html`<div class=\"nys-label__optional\">(Optional)</div>`\n : \"\"}</label\n >\n ${this._tooltip\n ? html`<nys-tooltip\n text=\"${this._tooltip}\"\n position=\"top\"\n focusable\n ?inverted=${this.inverted}\n for=\"tooltip-icon-${this.for}\"\n >\n </nys-tooltip>\n <nys-icon\n id=\"tooltip-icon-${this.for}\"\n name=\"info\"\n size=\"3xl\"\n ></nys-icon> `\n : \"\"}\n </div>\n <label for=${this.for} class=\"nys-label__description\">\n <slot name=\"description\">${this.description}</slot>\n </label>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-label\")) {\n customElements.define(\"nys-label\", NysLabel);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-modal.scss?inline\";\n\nlet componentIdCounter = 0;\n\n/**\n * `<nys-modal>` renders an accessible modal dialog.\n *\n * Supports headings, optional subheading, body content, and action buttons.\n * Manages focus trapping, escape key handling, and body scroll locking.\n *\n * @slot - Modal body content\n * @slot actions - Action buttons shown in the footer\n *\n * @fires nys-open - Emitted when the modal opens\n * @fires nys-close - Emitted when the modal closes\n */\n\nexport class NysModal extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String }) heading = \"\";\n @property({ type: String }) subheading = \"\";\n @property({ type: Boolean, reflect: true }) open = false;\n @property({ type: Boolean, reflect: true }) mandatory = false;\n @property({ type: String, reflect: true }) width: \"sm\" | \"md\" | \"lg\" = \"md\";\n\n private _actionButtonSlot: HTMLSlotElement | null = null; // cache action button slots (if given) so we can manipulate their widths for mobile vs desktop\n private _prevFocusedElement: HTMLElement | null = null;\n private _originalBodyOverflow: string | null = null;\n\n // Track slot contents to control what HTML is rendered\n @state() private hasBodySlots = false;\n @state() private hasActionSlots = false;\n\n /**\n * Lifecycle Methods\n * --------------------------------------------------------------------------\n */\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-{{componentName}}-${Date.now()}-${componentIdCounter++}`;\n }\n window.addEventListener(\"resize\", () => this._updateSlottedButtonWidth());\n window.addEventListener(\"keydown\", (e) => this._handleKeydown(e));\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._restoreBodyScroll(); // make sure scroll is restored when modal is removed\n window.removeEventListener(\"keydown\", (e) => this._handleKeydown(e));\n }\n\n async updated(changeProps: Map<string, any>) {\n // Hide main body's scroll bar if modal is open/active\n if (changeProps.has(\"open\")) {\n if (this.open) {\n this._hideBodyScroll();\n this._dispatchOpenEvent();\n await this.updateComplete;\n this._savePrevFocused();\n this._focusOnModal();\n this._updateDismissAria();\n } else {\n this._restorePrevFocused();\n this._restoreBodyScroll();\n this._dispatchCloseEvent();\n this._updateDismissAria();\n }\n }\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _hideBodyScroll() {\n if (this._originalBodyOverflow === null) {\n this._originalBodyOverflow = document.body.style.overflow;\n }\n document.body.style.overflow = \"hidden\";\n }\n\n private _restoreBodyScroll() {\n if (this._originalBodyOverflow !== null) {\n document.body.style.overflow = this._originalBodyOverflow;\n this._originalBodyOverflow = null;\n }\n }\n\n private _savePrevFocused() {\n this._prevFocusedElement = document.activeElement as HTMLElement;\n }\n\n private _focusOnModal() {\n const modal = this.shadowRoot?.querySelector<HTMLElement>(\".nys-modal\");\n modal?.focus();\n }\n\n private async _restorePrevFocused() {\n const prev = this._prevFocusedElement;\n\n if (prev && prev.tagName.toLowerCase() === \"nys-button\") {\n const nysButton = prev as HTMLElement & {\n getButtonElement: () => Promise<HTMLButtonElement>;\n };\n const innerBtn = await nysButton.getButtonElement();\n if (innerBtn) {\n innerBtn.focus();\n return;\n }\n } else {\n this._prevFocusedElement?.focus();\n }\n this._prevFocusedElement = null;\n }\n\n // Check if the slot contains stuff (aka user add texts & action buttons), and render visibility accordingly\n private async _handleBodySlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n if (!slot) return;\n this.hasBodySlots = slot\n .assignedNodes({ flatten: true })\n .some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE || node.textContent?.trim(),\n );\n }\n\n // Determines whether we hide the action buttons slot container based on if user put in action buttons\n private async _handleActionSlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\n 'slot[name=\"actions\"]',\n );\n if (!slot) return;\n this.hasActionSlots = slot\n .assignedNodes({ flatten: true })\n .some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE || node.textContent?.trim(),\n );\n\n // Cached the action button slot container so we can use it continuously for _updateSlottedButtonWidth() during screen resize\n this._actionButtonSlot = slot;\n // Update button widths immediately\n this._updateSlottedButtonWidth();\n }\n\n // Design has it that the slotted action buttons should be fullWidth and display:column direction for mobile view.\n // Therefore, we need to account for mobile size and screen resizes\n private _updateSlottedButtonWidth() {\n if (!this._actionButtonSlot) return; // use the cached variable\n const isMobile = window.innerWidth <= 480;\n\n this._actionButtonSlot.assignedElements().forEach((el) => {\n el.querySelectorAll(\"nys-button\").forEach((btn) => {\n if (isMobile) {\n btn?.setAttribute(\"fullWidth\", \"\");\n } else {\n btn?.removeAttribute(\"fullWidth\");\n }\n });\n });\n }\n\n private _dispatchOpenEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-open\", {\n detail: { id: this.id },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _dispatchCloseEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-close\", {\n detail: { id: this.id },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _getAriaDescribedBy() {\n // Handling what aria-describedby needs to announce in VO based on if the subheading or slot contents exists\n const ariaDescriptions: string[] = [];\n if (this.subheading) {\n ariaDescriptions.push(`${this.id}-subheading`);\n }\n if (this.hasBodySlots) {\n ariaDescriptions.push(`${this.id}-desc`);\n }\n return ariaDescriptions.join(\" \");\n }\n\n /**\n * This exist to prevent the VO for dismiss button from announcing itself between the heading & subheading/slot content.\n * We add the \"Close this window\" ariaLabel after the initial VO is done\n */\n private _updateDismissAria() {\n const dismissBtn = this.shadowRoot?.querySelector(\"nys-button\");\n if (!dismissBtn) return;\n\n // Hide from VO initially\n dismissBtn.setAttribute(\"ariaLabel\", \" \");\n\n if (this.open) {\n // After focus is moved into modal, update label\n setTimeout(() => {\n dismissBtn.setAttribute(\"ariaLabel\", \"Close this window\");\n }, 100);\n }\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n private async _handleKeydown(e: KeyboardEvent) {\n if (!this.open) return;\n\n // Exit the modal for \"escape\" key\n if (e.key === \"Escape\" && !this.mandatory) {\n e.preventDefault();\n this._closeModal();\n }\n\n // Trap focus to be within the modal only\n if (e.key === \"Tab\") {\n const modal = this.shadowRoot?.querySelector(\".nys-modal\");\n if (!modal) return;\n\n // Gather all elements from slots + dismissible btn\n const knownFocusableElements =\n 'a[href], area[href], button:not([disabled]), details, iframe, object, input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [contentEditable=\"true\"], [tabindex]:not([tabindex^=\"-\"])';\n const focusableElements: HTMLElement[] = [];\n const dismissBtn = modal.querySelector(\"nys-button\") as HTMLElement;\n\n if (dismissBtn) {\n focusableElements.push(dismissBtn);\n }\n\n // Gather from slot elements to store the focusable elements in focusableElements for focus trapping\n const slotElements = Array.from(modal.querySelectorAll(\"slot\"));\n for (const slot of slotElements) {\n const assigned = slot.assignedElements({ flatten: true });\n for (const el of assigned) {\n if (el instanceof HTMLElement && el.matches(knownFocusableElements)) {\n focusableElements.push(el);\n }\n // also account for the action slot container that has nys-buttons\n el.querySelectorAll<HTMLElement>(\"nys-button\").forEach(\n (actionBtn) => {\n focusableElements.push(actionBtn);\n },\n );\n }\n }\n\n if (focusableElements.length > 0) {\n // Laying out the starting (i.e. dismiss btn) and ending elements for looping focus elements\n const firstFocusableEl = focusableElements[0];\n const lastFocusableEl = focusableElements[focusableElements.length - 1];\n let active = document.activeElement as HTMLElement | null;\n let activeIndex = focusableElements.indexOf(active as HTMLElement);\n\n /**\n * Move focus backward when Shift+Tab is pressed.\n * Focus goes to the previous element in focusableElements.\n * If currently at the first element, wrap around to the last element.\n * For <nys-button>, focus the internal button. For other elements, focus directly.\n */\n if (e.shiftKey) {\n e.preventDefault();\n\n let prevIndex = activeIndex - 1;\n if (prevIndex < 0) {\n prevIndex = focusableElements.length - 1; // wrap back to lastFocusableEl\n }\n\n const prevElement = focusableElements[prevIndex];\n const isNysButton =\n focusableElements[prevIndex].tagName.toLowerCase() === \"nys-button\";\n\n // When users slot in \"nys-button\", we have to call focus for the native button within its shadowDOM.\n // Hence the condition statement below\n if (isNysButton) {\n const nysButton = prevElement as HTMLElement & {\n getButtonElement: () => Promise<HTMLButtonElement>;\n };\n const innerBtn = await nysButton.getButtonElement();\n innerBtn?.focus();\n } else {\n prevElement.focus();\n }\n } else {\n // Tab (go back to first focusable element if we're at last)\n if (active === lastFocusableEl) {\n e.preventDefault();\n if (firstFocusableEl.tagName.toLowerCase() === \"nys-button\") {\n const nysButton = firstFocusableEl as HTMLElement & {\n getButtonElement: () => Promise<HTMLButtonElement>;\n };\n const innerBtn = await nysButton.getButtonElement();\n innerBtn?.focus();\n } else {\n firstFocusableEl.focus();\n }\n }\n }\n }\n }\n }\n\n private _closeModal() {\n this.open = false;\n this._dispatchCloseEvent();\n }\n\n render() {\n return this.open\n ? html`<div\n class=\"nys-modal-overlay\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"${this.id}-heading\"\n aria-describedby=\"${this._getAriaDescribedBy()}\"\n >\n <div class=\"nys-modal\" tabindex=\"-1\">\n <div class=\"nys-modal_header\">\n <div class=\"nys-modal_header-inner\">\n <h2 id=\"${this.id}-heading\">${this.heading}</h2>\n ${!this.mandatory\n ? html`<nys-button\n id=\"dismiss-modal\"\n circle\n icon=\"close\"\n variant=\"ghost\"\n @nys-click=${this._closeModal}\n ></nys-button>`\n : \"\"}\n </div>\n ${this.subheading\n ? html`<p id=\"${this.id}-subheading\">${this.subheading}</p>`\n : \"\"}\n </div>\n\n <div\n id=\"${this.id}-desc\"\n class=\"nys-modal_body ${!this.hasBodySlots ? \"hidden\" : \"\"}\"\n >\n <div class=\"nys-modal_body-inner\">\n <slot @slotchange=${this._handleBodySlotChange}></slot>\n </div>\n </div>\n\n <div\n class=\"nys-modal_footer ${!this.hasActionSlots ? \"hidden\" : \"\"}\"\n >\n <slot\n name=\"actions\"\n @slotchange=${this._handleActionSlotChange}\n ></slot>\n </div>\n </div>\n </div>`\n : \"\";\n }\n}\n\nif (!customElements.get(\"nys-modal\")) {\n customElements.define(\"nys-modal\", NysModal);\n}\n","import { LitElement, TemplateResult, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-pagination.scss?inline\";\n\nlet componentIdCounter = 0;\n\n/**\n * `<nys-pagination>` renders page navigation controls.\n *\n * Displays previous and next buttons, page numbers, and ellipses\n * when pages are skipped. Handles page bounds automatically.\n *\n * @fires nys-change - Fired when the page changes\n * detail: { page: number }\n */\n\nexport class NysPagination extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: Number, reflect: true }) currentPage = 1;\n @property({ type: Number, reflect: true }) totalPages = 1;\n @property({ type: Boolean, reflect: true }) _twoBeforeLast = false;\n\n /**\n * Lifecycle Methods\n * --------------------------------------------------------------------------\n */\n\n constructor() {\n super();\n }\n\n willUpdate(changedProps: Map<string, unknown>) {\n if (this.totalPages < 1) this.totalPages = 1; //ensure totalPages is at least 1\n\n if (changedProps.has(\"currentPage\") || changedProps.has(\"totalPages\")) {\n const clamped = this._clampPage(this.currentPage);\n if (clamped !== this.currentPage) {\n this.currentPage = clamped;\n }\n\n const twoBefore = this.currentPage === this.totalPages - 2;\n if (twoBefore !== this._twoBeforeLast) {\n this._twoBeforeLast = twoBefore;\n }\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-pagination-${Date.now()}-${componentIdCounter++}`;\n }\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _clampPage(page: number): number {\n if (page < 1) return 1;\n if (page > this.totalPages) return this.totalPages;\n return page;\n }\n\n private renderPageButtons() {\n const buttons: TemplateResult[] = [];\n\n const addPageButton = (page: number, id?: string) => {\n buttons.push(html`\n <nys-button\n label=${String(page)}\n ariaLabel=\"Page ${page}\"\n id=${ifDefined(id)}\n variant=${this.currentPage === page ? \"filled\" : \"outline\"}\n @nys-click=\"${() => this._handlePageClick(page)}\"\n ></nys-button>\n `);\n };\n\n const addSpacer = (id: string) => {\n buttons.push(\n html`<nys-button\n label=\"...\"\n class=\"spacer\"\n tabindex=\"-1\"\n id=${id}\n ></nys-button>`,\n );\n };\n\n const firstPage = 1;\n const lastPage = this.totalPages;\n const prev = this.currentPage - 1;\n const next = this.currentPage + 1;\n\n // Always show first page\n addPageButton(firstPage);\n\n // Spacer if there's a gap between first and current/prev\n if (this.currentPage > 2) {\n addSpacer(\"first-spacer\");\n }\n\n // Show prev neighbor (desktop; can be hidden via CSS at mobile)\n if (prev > firstPage) {\n addPageButton(prev, \"prev-page\");\n }\n\n // Show current (only if not first/last, since they’re already rendered)\n if (this.currentPage !== firstPage && this.currentPage !== lastPage) {\n addPageButton(this.currentPage, \"current-page\");\n }\n\n // Show next neighbor (desktop; can be hidden via CSS at mobile)\n if (next < lastPage) {\n addPageButton(next, \"next-page\");\n }\n\n // Spacer if there's a gap between current/next and last\n if (this.currentPage < lastPage - 1) {\n addSpacer(\"last-spacer\");\n }\n\n // Always show last page if more than one\n if (lastPage > firstPage) {\n addPageButton(lastPage);\n }\n\n return buttons;\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n private _handlePageClick(page: number) {\n this.currentPage = this._clampPage(page);\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: { page: this.currentPage },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n render() {\n // If only one page, render nothing\n if (this.totalPages <= 1) {\n return null;\n }\n\n return html`<div class=\"nys-pagination\">\n <nys-button\n id=\"previous\"\n label=\"Previous\"\n prefixIcon=\"chevron_left\"\n variant=\"outline\"\n ?disabled=${this.currentPage === 1}\n @nys-click=\"${() => this._handlePageClick(this.currentPage - 1)}\"\n ></nys-button>\n <nys-button\n id=\"previous--mobile\"\n prefixIcon=\"chevron_left\"\n ariaLabel=\"Previous Page\"\n variant=\"outline\"\n ?disabled=${this.currentPage === 1}\n @nys-click=\"${() => this._handlePageClick(this.currentPage - 1)}\"\n ></nys-button>\n ${this.renderPageButtons()}\n <nys-button\n id=\"next\"\n label=\"Next\"\n suffixIcon=\"chevron_right\"\n variant=\"outline\"\n ?disabled=${this.currentPage === this.totalPages}\n @nys-click=\"${() => this._handlePageClick(this.currentPage + 1)}\"\n ></nys-button>\n <nys-button\n id=\"next--mobile\"\n suffixIcon=\"chevron_right\"\n ariaLabel=\"Next Page\"\n variant=\"outline\"\n ?disabled=${this.currentPage === this.totalPages}\n @nys-click=\"${() => this._handlePageClick(this.currentPage + 1)}\"\n ></nys-button>\n </div>`;\n }\n /****************** 🪡 in the Haystack Release ******/\n /****************** designsystem@its.ny.gov ********/\n}\n\nif (!customElements.get(\"nys-pagination\")) {\n customElements.define(\"nys-pagination\", NysPagination);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport type { NysRadiobutton } from \"./nys-radiobutton\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-radiobutton.scss?inline\";\n\nlet radiogroupIdCounter = 0;\n\n/**\n * `<nys-radiogroup>` groups `<nys-radiobutton>` elements into a single\n * selectable control.\n *\n * Supports keyboard navigation, validation, and native form submission\n * through ElementInternals.\n *\n * @slot default - One or more `<nys-radiobutton>` elements\n * @slot description - Optional descriptive text announced to screen readers\n *\n * @fires nys-change - Fired when selection changes\n * detail: { name: string; value: string }\n */\n\nexport class NysRadiogroup extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\"; // while not use by users, this prop is needed for internalElement form logic\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: Boolean, reflect: true }) tile = false;\n @property({ type: String }) tooltip = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" = \"md\";\n\n @state() private selectedValue: string | null = null;\n @state() private _slottedDescriptionText = \"\";\n\n private _internals: ElementInternals;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-radiogroup-${Date.now()}-${radiogroupIdCounter++}`;\n }\n this.addEventListener(\"nys-change\", this._handleRadioButtonChange);\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"nys-change\", this._handleRadioButtonChange);\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n async firstUpdated() {\n await this.updateComplete;\n this._initializeCheckedRadioValue();\n this._setValue(); // This ensures our element always participates in the form\n this._setRadioButtonRequire();\n this._updateRadioButtonsSize();\n this._updateRadioButtonsTile();\n this._updateRadioButtonsShowError();\n this._getSlotDescriptionForAria();\n\n this._initializeChildAttributes();\n this._updateGroupTabIndex();\n }\n\n updated(changedProperties: Map<string | symbol, unknown>) {\n if (\n changedProperties.has(\"required\") ||\n changedProperties.has(\"selectedValue\")\n ) {\n this._manageRequire();\n }\n if (changedProperties.has(\"size\")) {\n this._updateRadioButtonsSize();\n }\n if (changedProperties.has(\"tile\")) {\n this._updateRadioButtonsTile();\n }\n if (changedProperties.has(\"inverted\")) {\n this._updateRadioButtonsInvert();\n }\n if (changedProperties.has(\"showError\")) {\n this._updateRadioButtonsShowError();\n }\n if (changedProperties.has(\"form\")) {\n this._updateRadioButtonsForm();\n }\n }\n\n /**\n * Form Integration\n * --------------------------------------------------------------------------\n */\n\n private _setValue() {\n this._internals.setFormValue(this.selectedValue);\n }\n\n // Updates the \"require\" attribute of the first radiobutton underneath a radiogroup.\n // This will make sure there's a requirement for all radiobutton under the same name/group\n private _setRadioButtonRequire() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton, index) => {\n if (this.required && index === 0) {\n radioButton.setAttribute(\"required\", \"required\");\n }\n });\n }\n\n private async _manageRequire() {\n const message = this.errorMessage || \"Please select an option.\";\n\n const radioButtons = Array.from(this.querySelectorAll(\"nys-radiobutton\"));\n const firstRadio = radioButtons[0] as HTMLElement;\n\n if (firstRadio) {\n if (this.required && !this.selectedValue) {\n this._internals.setValidity(\n { valueMissing: true },\n message,\n firstRadio, // pass the custom element, not shadow input\n );\n } else {\n this.showError = false;\n this._internals.setValidity({}, \"\", firstRadio);\n }\n }\n }\n\n checkValidity() {\n const radioButtons = Array.from(this.querySelectorAll(\"nys-radiobutton\"));\n const valid =\n !this.required ||\n radioButtons.some((radio) => (radio as NysRadiobutton).checked);\n return valid;\n }\n\n // Need to account for if radiogroup already have a radiobutton checked at initialization\n private _initializeCheckedRadioValue() {\n const checkedRadio = this.querySelector(\"nys-radiobutton[checked]\");\n if (checkedRadio) {\n this.selectedValue = checkedRadio.getAttribute(\"value\");\n this._internals.setFormValue(this.selectedValue);\n }\n }\n\n // Core Keyboard & Click Logic\n private _getAllRadios() {\n return Array.from(\n this.querySelectorAll(\"nys-radiobutton\"),\n ) as NysRadiobutton[];\n }\n\n // Arrow / Space / Enter navigation at group level\n private async _handleKeyDown(event: KeyboardEvent) {\n const keys = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \" \",\n \"Enter\",\n ];\n\n if (!keys.includes(event.key)) return;\n event.preventDefault();\n\n const radioBtns = this._getAllRadios().filter((radio) => !radio.disabled);\n const checkedRadio =\n radioBtns.find((radio) => radio.checked) || radioBtns[0];\n\n // Computing the new index based on the keydown event\n const increment =\n event.key === \" \" || event.key === \"Enter\"\n ? 0\n : [\"ArrowUp\", \"ArrowLeft\"].includes(event.key)\n ? -1\n : 1;\n\n let index = radioBtns.indexOf(checkedRadio) + increment;\n // Handles the wrap around ends if user is at first or last radiobutton\n if (index < 0) {\n index = radioBtns.length - 1;\n }\n if (index >= radioBtns.length) {\n index = 0;\n }\n\n // The target is the new radiobutton the user want to choose given the keydown type.\n // We let the target's <input/> dispatch the clickEvent and call _handleRadioButtonChange() directly to make form integration work\n const target = radioBtns[index];\n const input = await target.getInputElement();\n input?.click();\n\n this._updateGroupTabIndex();\n target.focus();\n }\n\n private _updateGroupTabIndex() {\n const radios = this._getAllRadios();\n const active = radios.find((radio) => radio.checked) || radios[0]; // If none checked, make first radiobutton tabbable\n\n radios.forEach((radio) => {\n if (radio.disabled) {\n radio.tabIndex = -1;\n } else {\n radio.tabIndex = radio === active ? 0 : -1;\n }\n\n // Need to update ARIA state due to the new tabindex\n radio.setAttribute(\"aria-checked\", radio.checked ? \"true\" : \"false\");\n radio.setAttribute(\"aria-disabled\", radio.disabled ? \"true\" : \"false\");\n radio.setAttribute(\"aria-required\", this.required ? \"true\" : \"false\");\n });\n }\n\n // This callback is automatically called when the parent form is reset.\n formResetCallback() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton) => {\n (radioButton as NysRadiobutton).formResetUpdate();\n });\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n // Apply ARIA & initial tabindex to each child radio\n private _initializeChildAttributes() {\n const radios = this._getAllRadios();\n radios.forEach((radio) => {\n radio.setAttribute(\"role\", \"radio\");\n radio.setAttribute(\"aria-checked\", String(radio.checked));\n radio.setAttribute(\"aria-required\", String(radio.required));\n radio.setAttribute(\"aria-disabled\", String(radio.disabled));\n radio.setAttribute(\"tabindex\", \"-1\");\n });\n }\n\n // Updates the size of each radiobutton underneath a radiogroup to ensure size standardization\n private _updateRadioButtonsSize() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton) => {\n radioButton.setAttribute(\"size\", this.size);\n });\n }\n\n private _updateRadioButtonsTile() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton) => {\n if (this.tile) {\n radioButton.toggleAttribute(\"tile\", true);\n } else {\n radioButton.removeAttribute(\"tile\");\n }\n });\n }\n\n private _updateRadioButtonsInvert() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton) => {\n if (this.inverted) {\n radioButton.toggleAttribute(\"inverted\", true);\n } else {\n radioButton.removeAttribute(\"inverted\");\n }\n });\n }\n\n private _updateRadioButtonsShowError() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton) => {\n if (this.showError) {\n radioButton.setAttribute(\"showError\", \"\");\n } else {\n radioButton.removeAttribute(\"showError\");\n }\n });\n }\n\n private _updateRadioButtonsForm() {\n const radioButtons = this.querySelectorAll(\"nys-radiobutton\");\n radioButtons.forEach((radioButton) => {\n if (this.showError) {\n if (this.form !== null) {\n radioButton.setAttribute(\"form\", this.form);\n } else {\n radioButton.removeAttribute(\"form\");\n }\n } else {\n radioButton.removeAttribute(\"form\");\n }\n });\n }\n\n // Get the slotted text contents so native VO can attempt to announce it within the legend in the fieldset\n private _getSlotDescriptionForAria() {\n const slot = this.shadowRoot?.querySelector(\n 'slot[name=\"description\"]',\n ) as HTMLSlotElement;\n const nodes = slot?.assignedNodes({ flatten: true }) || [];\n\n this._slottedDescriptionText = nodes\n .map((node) => node.textContent?.trim())\n .filter(Boolean)\n .join(\", \");\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n // Keeps radiogroup informed of the name and value of its current selected radiobutton at each change\n private _handleRadioButtonChange(event: Event) {\n const customEvent = event as CustomEvent;\n const { name, value } = customEvent.detail;\n\n this.name = name;\n this.selectedValue = value;\n this._internals.setFormValue(this.selectedValue);\n\n // Accounts for tabindex & ARIA on every click/space select\n this._updateGroupTabIndex();\n }\n\n private async _handleInvalid(event: Event) {\n event.preventDefault();\n\n // Check if the radio group is invalid and set `showError` accordingly\n if (this._internals.validity.valueMissing) {\n this.showError = true;\n this._manageRequire(); // Refresh validation message\n\n const firstRadio = this.querySelector(\n \"nys-radiobutton\",\n ) as NysRadiobutton;\n\n if (firstRadio) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n firstRadio.focus();\n firstRadio.classList.add(\"active-focus\"); // Needed to show focus outline; will be removed if user clicks to select\n }\n } else {\n // If not part of a form, simply focus.\n firstRadio.focus();\n firstRadio.classList.add(\"active-focus\");\n }\n }\n }\n }\n\n render() {\n return html`<div class=\"nys-radiogroup\">\n <nys-label\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n <div class=\"nys-radiogroup__content\">\n <fieldset role=\"radiogroup\" @keydown=${this._handleKeyDown}>\n <legend class=\"sr-only\">\n ${this.label}${this._slottedDescriptionText\n ? ` ${this._slottedDescriptionText}`\n : this.description\n ? ` ${this.description}`\n : \"\"}\n </legend>\n <slot></slot>\n </fieldset>\n </div>\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage || this.errorMessage}\n .showDivider=${!this.tile}\n ></nys-errormessage>\n </div>`;\n }\n}\n\nif (!customElements.get(\"nys-radiogroup\")) {\n customElements.define(\"nys-radiogroup\", NysRadiogroup);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport \"./nys-radiogroup\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-radiobutton.scss?inline\";\n\nlet radiobuttonIdCounter = 0;\n\n/**\n * `<nys-radiobutton>` represents a single radio button for use in a `<nys-radiogroup>`.\n *\n * Features:\n * - Single selection per group\n * - Supports labels, descriptions, tile layout, inverted style, and size variants\n * - Integrates with forms and dispatches `nys-change` events on selection\n *\n * @slot description - Optional description text announced to screen readers\n *\n * @fires nys-change - Fired when the radio is selected or deselected\n * detail: { id: string, checked: boolean, name: string, value: string }\n * @fires nys-focus - Fired when the radio gains focus\n * @fires nys-blur - Fired when the radio loses focus\n */\n\nexport class NysRadiobutton extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: Boolean, reflect: true }) checked = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) value = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" = \"md\";\n @property({ type: Boolean, reflect: true }) tile = false;\n\n public async getInputElement(): Promise<HTMLInputElement | null> {\n await this.updateComplete; // Wait for the component to finish rendering\n return this.shadowRoot?.querySelector(\"input\") || null;\n }\n\n // This callback is automatically called when the parent form is reset.\n public formResetUpdate() {\n this.checked = false;\n }\n\n static buttonGroup: Record<string, NysRadiobutton> = {};\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-radiobutton-${Date.now()}-${radiobuttonIdCounter++}`;\n }\n\n // If this button is initially checked, set it as the current button in its group\n if (this.checked) {\n if (NysRadiobutton.buttonGroup[this.name]) {\n NysRadiobutton.buttonGroup[this.name].checked = false;\n NysRadiobutton.buttonGroup[this.name].requestUpdate();\n }\n NysRadiobutton.buttonGroup[this.name] = this;\n }\n\n this.addEventListener(\"focus\", this._handleFocus);\n this.addEventListener(\"blur\", this._handleBlur);\n this.addEventListener(\"click\", this._handleChange);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.removeEventListener(\"focus\", this._handleFocus);\n this.removeEventListener(\"blur\", this._handleBlur);\n }\n\n updated(changedProperties: Map<string | number | symbol, unknown>) {\n // When \"checked\" changes, update the internals.\n if (changedProperties.has(\"checked\")) {\n // Ensure only one radiobutton per group is checked.\n if (this.checked && NysRadiobutton.buttonGroup[this.name] !== this) {\n if (NysRadiobutton.buttonGroup[this.name]) {\n NysRadiobutton.buttonGroup[this.name].checked = false;\n NysRadiobutton.buttonGroup[this.name].requestUpdate();\n }\n NysRadiobutton.buttonGroup[this.name] = this;\n }\n }\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n // If the radiogroup is required but no radio is selected, return false.\n if (this.required && !this.checked) {\n return false;\n }\n\n // Otherwise, optionally check the native input's validity if available.\n const input = this.shadowRoot?.querySelector(\"input\");\n return input ? input.checkValidity() : true;\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n private _emitChangeEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: {\n id: this.id,\n checked: this.checked,\n name: this.name,\n value: this.value,\n },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // Handle radiobutton change event & unselection of other options in group\n private _handleChange() {\n // Remove active-focus so the focus outline doesn't linger\n // when the user selects a choice, since form focus is no longer needed\n this.classList.remove(\"active-focus\");\n\n if (!this.checked && !this.disabled) {\n if (NysRadiobutton.buttonGroup[this.name]) {\n NysRadiobutton.buttonGroup[this.name].checked = false;\n NysRadiobutton.buttonGroup[this.name].requestUpdate();\n }\n\n NysRadiobutton.buttonGroup[this.name] = this;\n this.checked = true;\n\n // Dispatch a change event with the name and value\n this._emitChangeEvent();\n }\n }\n\n // Handle focus event\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n // Handle blur event\n private _handleBlur() {\n this.classList.remove(\"active-focus\"); // removing this classList so the focus ring for handleInvalid() at radiogroup level will disappear\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n private _callInputHandling() {\n if (this.disabled) return;\n\n // Find the hidden input and trigger a click to toggle selection\n const input = this.shadowRoot?.querySelector(\n 'input[type=\"radio\"]',\n ) as HTMLInputElement;\n\n if (input) {\n input.focus();\n input.click();\n }\n }\n\n render() {\n return html`\n <input\n type=\"radio\"\n name=\"${ifDefined(this.name ? this.name : undefined)}\"\n .checked=${this.checked}\n ?disabled=${this.disabled}\n .value=${this.value}\n ?required=\"${this.required}\"\n form=${ifDefined(this.form || undefined)}\n @change=\"${this._handleChange}\"\n hidden\n aria-hidden=\"true\"\n />\n <div\n class=\"nys-radiobutton\"\n @click=\"${this._callInputHandling}\"\n aria-label=${this.label}\n >\n <span class=\"nys-radiobutton__radio\"></span>\n ${this.label &&\n html`<nys-label\n label=${this.label}\n description=${ifDefined(this.description || undefined)}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label> `}\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-radiobutton\")) {\n customElements.define(\"nys-radiobutton\", NysRadiobutton);\n}\n","import { LitElement, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\nexport class NysOption extends LitElement {\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) selected = false;\n @property({ type: String }) value = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: Boolean, reflect: true }) hidden = false;\n\n firstUpdated() {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n if (slot) {\n slot.addEventListener(\"slotchange\", () => {\n const assignedNodes = slot.assignedNodes({ flatten: true });\n if (assignedNodes.length > 0) {\n this.label = assignedNodes[0].textContent?.trim() || \"\";\n }\n });\n }\n }\n\n render() {\n return html`\n <option\n ?disabled=${this.disabled}\n ?selected=${this.selected}\n value=${this.value}\n label=${this.label}\n ?hidden=${this.hidden}\n >\n <slot>${this.label}</slot>\n </option>\n `;\n }\n}\n\ncustomElements.define(\"nys-option\", NysOption);\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { NysOption } from \"./nys-option\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-select.scss?inline\";\n\nlet selectIdCounter = 0;\n\n/**\n * `<nys-select>` is a custom select/dropdown component.\n *\n * Features:\n * - Supports slotted `<nys-option>` elements, native `<option>` and `<optgroup>`\n * - Integrates with forms via ElementInternals\n * - Handles validation, error messages, and required/optional states\n * - Inverted style and width variants supported\n *\n * @slot description - Optional description text announced to screen readers\n * @slot default - Options (<nys-option>, <option>, <optgroup>) to populate the dropdown\n *\n * @fires nys-change - Fired when the selected value changes\n * detail: { id: string, value: string }\n * @fires nys-focus - Fired when the select gains focus\n * @fires nys-blur - Fired when the select loses focus\n */\n\nexport class NysSelect extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String }) value = \"\";\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: String }) tooltip = \"\";\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: String, reflect: true }) width:\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"full\" = \"full\";\n\n private _originalErrorMessage = \"\";\n\n private _hasUserInteracted = false; // need this flag for \"eager mode\"\n private _internals: ElementInternals;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-select-${Date.now()}-${selectIdCounter++}`;\n }\n\n this._originalErrorMessage = this.errorMessage ?? \"\";\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n //read in slotted options\n const slot = this.shadowRoot?.querySelector(\n 'slot:not([name=\"description\"])',\n ) as HTMLSlotElement | null;\n\n if (slot) {\n this._handleSlotChange();\n }\n\n // This ensures our element always participates in the form\n this._setValue();\n }\n\n private _handleSlotChange() {\n const slot = this.shadowRoot?.querySelector(\n 'slot:not([name=\"description\"])',\n ) as HTMLSlotElement | null;\n const select = this.shadowRoot?.querySelector(\"select\");\n\n if (!slot || !select) return;\n\n // Clean up any previously cloned <option> or <optgroup> elements so we don't get duplicates\n Array.from(select.children).forEach((child) => {\n if (!(child as HTMLElement).hasAttribute(\"data-native\")) {\n child.remove();\n }\n });\n\n const assignedElements = slot.assignedElements({ flatten: true });\n\n assignedElements.forEach((node) => {\n // ---- Handle <nys-option> ----\n if (node instanceof NysOption) {\n const optionElement = document.createElement(\"option\");\n optionElement.value = node.value;\n optionElement.textContent =\n node.label || node.textContent?.trim() || \"\";\n optionElement.disabled = node.disabled;\n optionElement.selected = node.selected;\n select.appendChild(optionElement);\n return;\n }\n\n // ---- Handle native <option> ----\n if (node.tagName === \"OPTION\") {\n const original = node as HTMLOptionElement;\n const optionClone = original.cloneNode(true) as HTMLOptionElement;\n\n optionClone.setAttribute(\"data-native\", \"true\");\n optionClone.disabled = original.disabled;\n optionClone.selected = original.selected;\n\n select.appendChild(optionClone);\n return;\n }\n\n // ---- Handle <optgroup> ----\n if (node.tagName === \"OPTGROUP\") {\n const groupClone = document.createElement(\"optgroup\");\n groupClone.label = (node as HTMLOptGroupElement).label;\n if ((node as HTMLOptGroupElement).disabled) {\n groupClone.disabled = true;\n }\n\n // iterate children inside optgroup (could be nys-option or native option)\n Array.from(node.children).forEach((child) => {\n if (child instanceof NysOption) {\n const option = document.createElement(\"option\");\n option.value = child.value;\n option.textContent = child.label || child.textContent?.trim() || \"\";\n option.disabled = child.disabled;\n option.selected = child.selected;\n groupClone.appendChild(option);\n } else if (child.tagName === \"OPTION\") {\n const optionClone = child.cloneNode(true) as HTMLOptionElement;\n groupClone.appendChild(optionClone);\n }\n });\n\n select.appendChild(groupClone);\n return;\n }\n });\n\n // Sync initial selected state into component value\n const selectedOption = Array.from(select.options).find((o) => o.selected);\n\n if (selectedOption) {\n this.value = selectedOption.value;\n this._internals.setFormValue(this.value);\n }\n }\n\n /**\n * Form Integration\n * --------------------------------------------------------------------------\n */\n\n private _setValue() {\n // // set value to the option that is selected by default\n // const select = this.shadowRoot?.querySelector(\"select\");\n // if (!select) return;\n\n // // for each option, see if it's selected\n // Array.from(select.options).forEach((option) => {\n // if (option.selected) {\n // this.value = option.value;\n // }\n // });\n\n this._internals.setFormValue(this.value);\n this._manageRequire(); // Check validation when value is set\n }\n\n private _manageRequire() {\n const select = this.shadowRoot?.querySelector(\"select\");\n if (!select) return;\n\n const message = this.errorMessage || \"This field is required.\";\n const isInvalid = this.required && !this.value;\n\n if (isInvalid) {\n this._internals.ariaRequired = \"true\"; // Screen readers should announce error\n this._internals.setValidity({ valueMissing: true }, message, select);\n } else {\n this._internals.ariaRequired = \"false\"; // Reset when valid\n this._internals.setValidity({});\n this._hasUserInteracted = false; // Reset the interaction flag, make lazy again\n }\n }\n\n private _setValidityMessage(message: string = \"\") {\n const select = this.shadowRoot?.querySelector(\"select\");\n if (!select) return;\n\n // Toggle the HTML <div> tag error message\n this.showError = !!message;\n\n // If user sets errorMessage, this will always override the native validation message\n if (this._originalErrorMessage?.trim() && message !== \"\") {\n this.errorMessage = this._originalErrorMessage;\n } else {\n this.errorMessage = message;\n }\n\n const validityState = message ? { customError: true } : {};\n this._internals.setValidity(validityState, this.errorMessage, select);\n }\n\n private _validate() {\n const select = this.shadowRoot?.querySelector(\"select\");\n if (!select) return;\n\n // Get the native validation state\n let message = select.validationMessage;\n this._manageRequire(); // Makes sure the required state is checked\n\n this._setValidityMessage(message);\n }\n\n // This callback is automatically called when the parent form is reset.\n formResetCallback() {\n this.value = \"\";\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n const select = this.shadowRoot?.querySelector(\"select\");\n return select ? select.checkValidity() : true;\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this._hasUserInteracted = true; // Start aggressive mode due to form submission\n this._validate();\n this.showError = true;\n\n const select = this.shadowRoot?.querySelector(\"select\");\n if (select) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n select.focus();\n }\n } else {\n // If not part of a form, simply focus.\n select.focus();\n }\n }\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n // Handle change event to bubble up selected value\n private _handleChange(e: Event) {\n const select = e.target as HTMLSelectElement;\n this.value = select.value;\n this._internals.setFormValue(this.value);\n\n // Clear error immediately if value is now valid\n if (this.required && this.value) {\n this.showError = false;\n this.errorMessage = \"\";\n this._internals.setValidity({});\n }\n\n // Validate aggressively if the user has already interacted\n if (this._hasUserInteracted) {\n this._validate();\n }\n\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: { id: this.id, value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // Handle focus event\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n // Handle blur event\n private _handleBlur() {\n if (!this._hasUserInteracted) {\n this._hasUserInteracted = true;\n }\n this._validate();\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n // Check if the current value matches any option, and if so, set it as selected\n updated(changedProperties: Map<string, unknown>): void {\n super.updated(changedProperties);\n\n // This ensures the value is set correctly after the component renders\n if (changedProperties.has(\"value\")) {\n const selectElement = this.shadowRoot?.querySelector(\"select\");\n if (selectElement) {\n selectElement.value = this.value;\n }\n }\n }\n\n render() {\n return html`\n <div class=\"nys-select\">\n <nys-label\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n <div class=\"nys-select__selectwrapper\">\n <select\n class=\"nys-select__select\"\n name=${this.name}\n id=${this.id + \"--native\"}\n form=${ifDefined(this.form || undefined)}\n ?disabled=${this.disabled}\n ?required=${this.required}\n aria-disabled=\"${this.disabled}\"\n aria-label=\"${[this.label, this.description]\n .filter(Boolean)\n .join(\" \")}\"\n .value=${this.value}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @change=\"${this._handleChange}\"\n >\n <option data-native hidden disabled value=\"\"></option>\n </select>\n <slot style=\"display: none;\"></slot>\n <nys-icon\n name=\"expand_all\"\n size=\"2xl\"\n class=\"nys-select__icon\"\n ></nys-icon>\n </div>\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this.errorMessage}\n ></nys-errormessage>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-select\")) {\n customElements.define(\"nys-select\", NysSelect);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-skipnav.scss?inline\";\n\n/**\n * `<nys-skipnav>` provides an accessible skip navigation link for keyboard\n * and screen reader users to jump directly to the main content of a page.\n *\n * Features:\n * - Default target is `#main-content` if `href` is not provided\n * - Link becomes visible on focus and hides on blur\n * - Ensures the target element is focusable for accessibility\n */\n\nexport class NysSkipnav extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String }) href = \"\";\n\n constructor() {\n super();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-skipnav-${Date.now()}`;\n }\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n private _handleFocus() {\n const linkElement = this.shadowRoot?.querySelector(\".nys-skipnav__link\");\n\n linkElement?.classList.add(\"show\");\n }\n\n private _handleBlur() {\n const linkElement = this.shadowRoot?.querySelector(\".nys-skipnav__link\");\n\n linkElement?.classList.remove(\"show\"); // Link is hidden whenever not focused\n }\n\n private _handleClick() {\n // Use href or default to #main-content\n const targetId = (this.href || \"#main-content\").replace(\"#\", \"\");\n const targetEl = document.getElementById(targetId);\n\n if (targetEl) {\n // Make sure it's focusable for screen readers rather than just scrolling to it\n targetEl.setAttribute(\"tabindex\", \"-1\");\n targetEl.focus();\n // Remove the blue outline that is applied to focused elements since we don't want the blue outline on the main container\n targetEl.style.outline = \"none\";\n }\n }\n\n render() {\n return html`\n <div class=\"nys-skipnav\">\n <a\n href=${this.href ? this.href : \"#main-content\"}\n tabindex=\"0\"\n class=\"nys-skipnav__link\"\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @click=\"${this._handleClick}\"\n >\n Skip to main content\n </a>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-skipnav\")) {\n customElements.define(\"nys-skipnav\", NysSkipnav);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-stepper.scss?inline\";\n\nexport class NysStep extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: Boolean, reflect: true }) selected = false;\n @property({ type: Boolean, reflect: true }) current = false;\n @property({ type: String }) label = \"\";\n @property({ type: String }) href = \"\";\n @property({ type: Boolean }) isCompactExpanded = false;\n @property({ attribute: false }) onClick?: (e: Event) => void;\n @property({ type: Number }) stepNumber = 0;\n\n private _handleActivate(e: Event) {\n // Run user-supplied onClick first (if present)\n if (typeof this.onClick === \"function\") {\n this.onClick(e);\n }\n\n // Dispatch event as cancelable so user can prevent navigation\n const event = new CustomEvent(\"nys-step-click\", {\n bubbles: true,\n composed: true,\n cancelable: true,\n detail: { href: this.href, label: this.label },\n });\n\n if ((this.hasAttribute(\"previous\") || this.current) && !this.selected) {\n this.dispatchEvent(event);\n\n // Only navigate if event was not canceled\n if (!event.defaultPrevented && this.href) {\n window.location.href = this.href;\n }\n }\n }\n\n private _handleKeydown(e: KeyboardEvent) {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n this._handleActivate(e);\n }\n }\n\n render() {\n return html`\n <div class=\"nys-step\">\n <div class=\"nys-step__linewrapper\">\n <div class=\"nys-step__line\"></div>\n </div>\n <div\n class=\"nys-step__contentwrapper\"\n @click=${this._handleActivate}\n @keydown=${this._handleKeydown}\n ?disabled=${!(\n this.selected ||\n this.current ||\n this.hasAttribute(\"previous\")\n )}\n >\n <div class=\"nys-step__number\" tabindex=\"-1\" aria-hidden=\"true\">\n ${this.stepNumber}\n </div>\n <div class=\"nys-step__content\" tabindex=\"-1\" aria-hidden=\"true\">\n <div\n class=\"nys-step__label\"\n role=\"button\"\n aria-label=\"${this.label} Step\"\n tabindex=${!(\n this.selected ||\n this.current ||\n this.hasAttribute(\"previous\")\n )\n ? \"-1\"\n : \"0\"}\n aria-hidden=\"true\"\n >\n ${this.label}\n </div>\n </div>\n </div>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-step\")) {\n customElements.define(\"nys-step\", NysStep);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport \"./nys-step\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-stepper.scss?inline\";\n\n/**\n * `<nys-stepper>` manages a sequence of `<nys-step>` elements, providing\n * multi-step navigation for forms or workflows.\n *\n * Features:\n * - Tracks selected and current steps\n * - Displays a step counter (e.g., \"Step 2 of 5\")\n * - Supports compact/expanded view toggle\n * - Validates that only `<nys-step>` or `<div slot=\"actions\">` children are used\n *\n * @fires nys-step-click - Fired when a step is clicked; bubbles with the event path\n *\n * @example\n * <div class=\"nys-grid-row\">\n * <nys-stepper\n * id=\"stepper\"\n * name=\"stepper\"\n * label=\"Register for Design System Office Hours\"\n * class=\"nys-desktop:nys-grid-col-3\"\n * >\n * <nys-step label=\"Personal Details\"></nys-step>\n * <nys-step label=\"Team Info\" selected></nys-step>\n * <nys-step label=\"Usage Survey\" current></nys-step>\n * <div slot=\"actions\">\n * <nys-button variant=\"outline\" label=\"Save & Exit\" fullWidth></nys-button>\n * </div>\n * </nys-stepper>\n * <div class=\"nys-desktop:nys-grid-col-9\" id=\"stepper-content\">\n * Page content for the selected step\n * </div>\n * </div>\n */\n\nexport class NysStepper extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) counterText = \"initial\";\n @property({ type: Boolean, reflect: true })\n isCompactExpanded = false;\n\n private _stepsNumbered = false;\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"nys-step-click\", this._onStepClick);\n // Defer step validation to next tick to ensure children are upgraded\n requestAnimationFrame(() => this._validateSteps());\n }\n\n disconnectedCallback() {\n this.removeEventListener(\"nys-step-click\", this._onStepClick);\n super.disconnectedCallback();\n }\n\n private _validateSteps() {\n Array.from(this.children).forEach((child) => {\n const isStep =\n child instanceof HTMLElement &&\n child.tagName.toLowerCase() === \"nys-step\";\n const isSlotActionsContainer =\n child instanceof HTMLElement &&\n child.hasAttribute(\"slot\") &&\n child.getAttribute(\"slot\") === \"actions\";\n\n if (!isStep && !isSlotActionsContainer) {\n console.warn(\n \"Only <nys-step> elements or the <div slot='actions'> container are allowed as direct children of <nys-stepper>. Removing:\",\n child,\n );\n child.remove();\n }\n });\n }\n\n private _validateButtonSlot(event: Event) {\n const slot = event.target as HTMLSlotElement;\n const assignedElements = slot.assignedElements();\n\n // Ensure exactly one direct node in the slot, and it must be a div\n if (\n assignedElements.length !== 1 ||\n assignedElements[0].tagName.toLowerCase() !== \"div\"\n ) {\n console.warn(\n \"The 'actions' slot must have exactly one <div> as a direct child.\",\n );\n return;\n }\n\n const div = assignedElements[0] as HTMLElement;\n\n // Iterate through all buttons and validate\n Array.from(div.children).forEach((button) => {\n const isNysButton =\n button instanceof HTMLElement &&\n button.tagName.toLowerCase() === \"nys-button\";\n\n if (!isNysButton) {\n console.warn(\n \"The <div> inside 'actions' slot only accepts <nys-button> elements. Removing invalid node:\",\n button,\n );\n button.remove();\n } else {\n // Ensure nys-button has correct styles\n button.setAttribute(\"size\", \"sm\");\n if (button.hasAttribute(\"fullWidth\")) {\n button.style.flex = \"1 1 0\";\n }\n }\n });\n }\n\n private _onStepClick = async (event: Event) => {\n const clickedStep = event\n .composedPath()\n .find(\n (el) =>\n el instanceof HTMLElement && el.tagName.toLowerCase() === \"nys-step\",\n ) as HTMLElement | undefined;\n\n if (!clickedStep) return;\n\n const steps = Array.from(this.querySelectorAll(\"nys-step\"));\n const currentIndex = steps.findIndex((step) =>\n step.hasAttribute(\"current\"),\n );\n const clickedIndex = steps.indexOf(clickedStep);\n\n // Can't select past current\n if (currentIndex !== -1 && clickedIndex > currentIndex) return;\n\n // Can't select already selected\n if (clickedStep.hasAttribute(\"selected\")) return;\n\n // Remove selected from previous and move to new selected\n steps.forEach((step) => step.removeAttribute(\"selected\"));\n clickedStep.setAttribute(\"selected\", \"\");\n\n // Update counter immediately\n this._updateCounter();\n\n // Close expanded if it was open\n this.isCompactExpanded = false;\n };\n\n private _updateCounter() {\n let newCounterText: string;\n\n if (this.isCompactExpanded) {\n newCounterText = \"Back to Form\";\n this.style.height = \"-webkit-fit-content\";\n this.style.height = \"-moz-fit-content\";\n this.style.height = \"fit-content\";\n } else {\n this.style.height = \"auto\";\n\n const steps = this.querySelectorAll<HTMLElement>(\"nys-step\");\n const selectedIndex = Array.from(steps).findIndex((step) =>\n step.hasAttribute(\"selected\"),\n );\n const totalSteps = steps.length;\n\n newCounterText =\n selectedIndex >= 0\n ? `Step ${selectedIndex + 1} of ${totalSteps}`\n : `Step 1 of ${totalSteps}`;\n }\n\n if (newCounterText !== this.counterText) {\n this.counterText = newCounterText;\n }\n }\n\n willUpdate() {\n const steps = this.querySelectorAll<any>(\"nys-step\");\n\n if (!this._stepsNumbered) {\n steps.forEach((step, index) => {\n step.stepNumber = index + 1;\n });\n this._stepsNumbered = true;\n }\n\n let foundCurrent = false;\n let selectedAssigned = false;\n let currentAssigned = false;\n\n steps.forEach((step, i) => {\n // Check if multiple \"current\" exist, respect the first instance\n if (step.hasAttribute(\"current\")) {\n if (!currentAssigned) {\n currentAssigned = true;\n } else {\n step.removeAttribute(\"current\");\n }\n }\n\n // Set first\n if (i === 0) {\n step.setAttribute(\"first\", \"\");\n } else {\n step.removeAttribute(\"first\");\n }\n\n // Set previous\n if (step.hasAttribute(\"current\")) {\n foundCurrent = true;\n step.removeAttribute(\"previous\");\n } else if (!foundCurrent) {\n step.setAttribute(\"previous\", \"\");\n } else {\n step.removeAttribute(\"previous\");\n }\n\n // Handle selected, respect first instance\n if (step.hasAttribute(\"selected\")) {\n if (foundCurrent || selectedAssigned) {\n step.removeAttribute(\"selected\");\n } else {\n selectedAssigned = true;\n }\n }\n\n // Handle compact expanded\n if (this.isCompactExpanded) {\n step.setAttribute(\"isCompactExpanded\", \"\");\n } else {\n step.removeAttribute(\"isCompactExpanded\");\n }\n });\n\n // Selected fallback\n if (!selectedAssigned) {\n if (currentAssigned) {\n steps.forEach((step) => {\n if (step.hasAttribute(\"current\") && !selectedAssigned) {\n step.setAttribute(\"selected\", \"\");\n selectedAssigned = true;\n }\n });\n } else if (steps.length > 0) {\n // If no current or selected, mark first as both current and selected\n steps[0].setAttribute(\"current\", \"\");\n steps[0].setAttribute(\"selected\", \"\");\n }\n }\n\n // Always update counter\n this._updateCounter();\n }\n\n private _toggleCompact() {\n this.isCompactExpanded = !this.isCompactExpanded;\n }\n\n private _handleCounterKeydown(event: KeyboardEvent) {\n if (event.key === \" \" || event.key === \"Enter\") {\n event.preventDefault();\n this._toggleCompact();\n }\n }\n\n render() {\n return html`\n <div class=\"nys-stepper\" name=${this.name}>\n <div class=\"nys-stepper__header\">\n <slot name=\"actions\" @slotchange=${this._validateButtonSlot}></slot>\n <div class=\"nys-stepper__headertext\">\n <div class=\"nys-stepper__label\">${this.label}</div>\n <div\n class=\"nys-stepper__counter\"\n @click=${this._toggleCompact}\n @keydown=${this._handleCounterKeydown}\n role=\"button\"\n tabindex=\"0\"\n aria-label=${this.isCompactExpanded\n ? \"Collapse step navigation to view the form\"\n : `Expand step navigation. You are on ${this.counterText}`}\n aria-expanded=${this.isCompactExpanded ? \"true\" : \"false\"}\n >\n ${this.counterText}\n </div>\n </div>\n </div>\n <slot class=\"nys-stepper__steps\"></slot>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-stepper\")) {\n customElements.define(\"nys-stepper\", NysStepper);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-table.scss?inline\";\n\nlet componentIdCounter = 0;\n\n/**\n * `<nys-table>` is a responsive table component that can display native HTML tables,\n * supports striped and bordered styling, sortable columns, and CSV download.\n *\n * @slot - Accepts a `<table>` element. Only the first table is rendered.\n *\n * @fires nys-click - Fired when the download button or sortable headers are clicked.\n *\n * @method downloadFile - Triggers download of the CSV file if `download` is set.\n */\nexport class NysTable extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: Boolean, reflect: true }) striped = false;\n @property({ type: Boolean, reflect: true }) sortable = false;\n @property({ type: Boolean, reflect: true }) bordered = false;\n @property({ type: String, reflect: true }) download = \"\";\n\n @state() private _sortColumn: number | null = null;\n @state() private _sortDirection: \"asc\" | \"desc\" | \"none\" = \"none\";\n @state() private _captionText = \"\";\n\n /**************** Lifecycle Methods ****************/\n constructor() {\n super();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-table-${Date.now()}-${componentIdCounter++}`;\n }\n }\n\n /******************** Functions ********************/\n // Placeholder for generic functions (component-specific)\n\n firstUpdated() {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n slot?.addEventListener(\"slotchange\", () => this._handleSlotChange());\n this._handleSlotChange();\n }\n\n _handleSlotChange() {\n const slot = this.shadowRoot?.querySelector(\n \"slot\",\n ) as HTMLSlotElement | null;\n const container = this.shadowRoot?.querySelector(\n \".nys-table\",\n ) as HTMLElement | null;\n if (!slot || !container) return;\n\n container.innerHTML = \"\";\n\n const assigned = slot.assignedElements({ flatten: true });\n\n assigned.forEach((node) => {\n if (node.tagName === \"TABLE\") {\n const table = node.cloneNode(true) as HTMLTableElement;\n this._normalizeTable(table);\n if (this.sortable) {\n this._addSortIcons(table);\n }\n container.appendChild(table);\n }\n });\n }\n\n _normalizeTable(table: HTMLTableElement) {\n const hasThead = table.querySelector(\"thead\");\n const hasTbody = table.querySelector(\"tbody\");\n\n if (hasThead && hasTbody) return;\n\n // Pull caption first\n let caption = table.querySelector(\n \"caption\",\n ) as HTMLTableCaptionElement | null;\n\n // Save caption text if it exists\n if (caption?.textContent?.trim()) {\n this._captionText = caption.textContent.trim();\n } else {\n this._captionText = \"\";\n }\n\n // Collect all rows\n const rows = Array.from(table.querySelectorAll(\"tr\"));\n if (rows.length === 0) return;\n\n const thead = document.createElement(\"thead\");\n const tbody = document.createElement(\"tbody\");\n\n // Find first row containing th\n const headerRowIndex = rows.findIndex((r) => r.querySelector(\"th\"));\n\n if (headerRowIndex === -1) {\n rows.forEach((r) => tbody.appendChild(r));\n } else {\n const headerRow = rows[headerRowIndex];\n\n // Wrap text nodes in <p> for each <th>\n headerRow.querySelectorAll(\"th\").forEach((th) => {\n // Only wrap text nodes, leave icons or other children\n Array.from(th.childNodes).forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()) {\n const p = document.createElement(\"p\");\n p.textContent = node.textContent;\n th.replaceChild(p, node);\n }\n });\n });\n\n thead.appendChild(headerRow);\n\n // Move remaining rows to tbody\n rows.forEach((r, i) => {\n if (i !== headerRowIndex) tbody.appendChild(r);\n });\n }\n\n // Wipe original table content\n table.innerHTML = \"\";\n\n // Handle caption and sortable message\n if (this.sortable) {\n if (!caption) {\n caption = document.createElement(\"caption\");\n caption.style.padding = \"0\";\n }\n\n const srOnly = document.createElement(\"span\");\n srOnly.setAttribute(\"class\", \"sr-only\");\n srOnly.textContent = \"Column headers with buttons are sortable.\";\n\n caption.appendChild(srOnly);\n }\n\n if (caption) table.appendChild(caption);\n\n table.appendChild(thead);\n table.appendChild(tbody);\n }\n\n _addSortIcons(table: HTMLTableElement) {\n const ths = Array.from(table.querySelectorAll(\"thead th\"));\n if (ths.length === 0) return;\n\n ths.forEach((th, index) => {\n // Prevent duplicates on slotchange or re-render\n if (th.querySelector(\"nys-button[part='sort-button']\")) return;\n\n // Get existing text content\n const label = th.textContent?.trim();\n if (!label) return;\n\n // Clear existing content\n th.textContent = \"\";\n\n const button = document.createElement(\"nys-button\");\n button.setAttribute(\"part\", \"sort-button\");\n button.setAttribute(\"variant\", \"ghost\");\n button.setAttribute(\"label\", label);\n button.setAttribute(\"suffixIcon\", \"slotted\");\n button.setAttribute(\"fullWidth\", \"true\");\n\n const icon = document.createElement(\"nys-icon\");\n icon.setAttribute(\"slot\", \"suffix-icon\");\n icon.setAttribute(\"name\", \"height\");\n icon.setAttribute(\"size\", \"24\");\n icon.setAttribute(\"color\", \"var(--nys-color-text-weak, #4a4d4f)\");\n\n button.appendChild(icon);\n\n button.addEventListener(\"nys-click\", (e) => {\n e.stopPropagation();\n this._onSortClick(index, table);\n });\n\n th.appendChild(button);\n });\n }\n\n _updateSortIcons(table: HTMLTableElement) {\n const ths = table.querySelectorAll(\"thead th\");\n\n ths.forEach((th, index) => {\n const button = th.querySelector(\"nys-button[part='sort-button']\");\n const icon = button?.querySelector(\n \"nys-icon[slot='suffix-icon']\",\n ) as HTMLElement | null;\n\n if (!button || !icon) return;\n\n if (index === this._sortColumn) {\n th.classList.add(\"nys-table__sortedcolumn\");\n switch (this._sortDirection) {\n case \"asc\":\n icon.setAttribute(\"name\", \"straight\");\n icon.setAttribute(\"color\", \"var(--nys-color-ink, #1b1b1b)\");\n icon.style.transform = \"rotate(0deg)\";\n th.setAttribute(\"aria-sort\", \"ascending\");\n break;\n case \"desc\":\n icon.setAttribute(\"name\", \"straight\");\n icon.setAttribute(\"color\", \"var(--nys-color-ink, #1b1b1b)\");\n icon.style.transform = \"rotate(180deg)\";\n th.setAttribute(\"aria-sort\", \"descending\");\n break;\n }\n } else {\n // Reset for all other columns\n th.classList.remove(\"nys-table__sortedcolumn\");\n icon.setAttribute(\"name\", \"height\");\n icon.setAttribute(\"color\", \"var(--nys-color-text-weak, #4a4d4f)\");\n icon.style.transform = \"\";\n th.removeAttribute(\"aria-sort\");\n }\n });\n }\n\n _onSortClick(columnIndex: number, table: HTMLTableElement) {\n if (this._sortColumn !== columnIndex) {\n // New column → start with ascending\n this._sortColumn = columnIndex;\n this._sortDirection = \"asc\";\n } else {\n // Same column → toggle\n this._sortDirection = this._sortDirection === \"asc\" ? \"desc\" : \"asc\";\n }\n\n this._updateSortIcons(table);\n this._sortTable(table, columnIndex, this._sortDirection);\n }\n\n _sortTable(\n table: HTMLTableElement,\n columnIndex: number,\n direction: \"asc\" | \"desc\",\n ) {\n const tbody = table.querySelector(\"tbody\");\n if (!tbody) return;\n\n const rows = Array.from(tbody.querySelectorAll(\"tr\"));\n\n rows.sort((a, b) => {\n const aText = a.children[columnIndex]?.textContent?.trim() ?? \"\";\n const bText = b.children[columnIndex]?.textContent?.trim() ?? \"\";\n\n const aNum = Number(aText);\n const bNum = Number(bText);\n\n let result;\n\n if (!isNaN(aNum) && !isNaN(bNum)) {\n result = aNum - bNum;\n } else {\n result = aText.localeCompare(bText);\n }\n\n return direction === \"asc\" ? result : -result;\n });\n\n // Re-append sorted rows\n rows.forEach((r) => tbody.appendChild(r));\n this._updateSortedColumnStyles(table);\n }\n\n _updateSortedColumnStyles(table: HTMLTableElement) {\n const rows = table.querySelectorAll(\"tbody tr\");\n\n rows.forEach((row) => {\n Array.from(row.children).forEach((cell, index) => {\n if (index === this._sortColumn) {\n cell.classList.add(\"nys-table__sortedcolumn\");\n } else {\n cell.classList.remove(\"nys-table__sortedcolumn\");\n }\n });\n });\n }\n\n downloadFile() {\n // read file from this.download and trigger download\n const link = document.createElement(\"a\");\n link.href = this.download;\n link.download = this.download.split(\"/\").pop() || \"table-data.csv\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n\n /****************** Event Handlers ******************/\n // Placeholder for event handlers if needed\n\n render() {\n return html`\n <div class=\"nys-table\">\n <div class=\"table-container\"></div>\n </div>\n ${this.download\n ? html` <nys-button\n id=\"${this.id}-download-button\"\n label=\"Download table\"\n aria-label=${this._captionText\n ? `Download ${this._captionText}`\n : \"Download table\"}\n size=\"sm\"\n variant=\"outline\"\n prefixIcon=\"download\"\n @nys-click=${this.downloadFile}\n ></nys-button>`\n : \"\"}\n <slot style=\"display:none\"></slot>\n `;\n }\n}\n\nif (!customElements.get(\"nys-table\")) {\n customElements.define(\"nys-table\", NysTable);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-textarea.scss?inline\";\n\nlet textareaIdCounter = 0;\n\n/**\n * `<nys-textarea>` is a form-enabled textarea with validation, accessibility support,\n * and live error messages. Integrates with forms via ElementInternals.\n *\n * @slot description - Optional slot for custom description content below the label.\n *\n * @fires nys-input - Fired on input, detail: `{ id, value }`\n * @fires nys-focus - Fired on focus.\n * @fires nys-blur - Fired on blur.\n * @fires nys-select - Fired on text selection, detail: `{ id, value }`\n * @fires nys-selectionchange - Fired on selection change, detail: `{ id, value }`\n */\n\nexport class NysTextarea extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String }) placeholder = \"\";\n @property({ type: String }) value = \"\";\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) readonly = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: String }) tooltip = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: Number }) maxlength: number | null = null;\n @property({ type: String, reflect: true }) width:\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"full\" = \"full\";\n @property({ type: Number }) rows = 4;\n @property({ type: String, reflect: true }) resize: \"vertical\" | \"none\" =\n \"vertical\";\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n\n async updated(changedProperties: Map<string | number | symbol, unknown>) {\n await Promise.resolve();\n if (changedProperties.has(\"rows\")) {\n this.rows = this.rows ?? 4;\n }\n if (\n changedProperties.has(\"readonly\") ||\n changedProperties.has(\"required\")\n ) {\n const input = this.shadowRoot?.querySelector(\"textarea\");\n\n if (input) input.required = this.required && !this.readonly;\n }\n }\n\n private _hasUserInteracted = false; // need this flag for \"eager mode\"\n private _internals: ElementInternals;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-textarea-${Date.now()}-${textareaIdCounter++}`;\n }\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n // This ensures our element always participates in the form\n this._setValue();\n }\n\n /**\n * Form Integration\n * --------------------------------------------------------------------------\n */\n\n private _setValue() {\n this._internals.setFormValue(this.value);\n this._manageRequire();\n }\n\n private _manageRequire() {\n const textarea = this.shadowRoot?.querySelector(\"textarea\");\n\n if (!textarea) return;\n\n const message = this.errorMessage || \"This field is required\";\n const isInvalid = this.required && !this.value;\n\n if (isInvalid) {\n this._internals.ariaRequired = \"true\";\n this._internals.setValidity({ valueMissing: true }, message, textarea);\n } else {\n this._internals.ariaRequired = \"false\"; // Reset when valid\n this._internals.setValidity({});\n this._hasUserInteracted = false; // Reset lazy validation when valid\n }\n }\n\n private _setValidityMessage(message: string = \"\") {\n const textarea = this.shadowRoot?.querySelector(\"textarea\");\n if (!textarea) return;\n\n // Toggle the HTML <div> tag error message\n this.showError = !!message;\n // If user sets errorMessage, this will always override the native validation message\n if (this.errorMessage?.trim() && message !== \"\") {\n message = this.errorMessage;\n }\n\n this._internals.setValidity(\n message ? { customError: true } : {},\n message,\n textarea,\n );\n }\n\n private _validate() {\n const textarea = this.shadowRoot?.querySelector(\"textarea\");\n if (!textarea) return;\n\n // Get the native validation state\n let message = textarea.validationMessage;\n\n this._setValidityMessage(message);\n }\n\n // This callback is automatically called when the parent form is reset.\n formResetCallback() {\n this.value = \"\";\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n const textarea = this.shadowRoot?.querySelector(\"textarea\");\n return textarea ? textarea.checkValidity() : true;\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this._hasUserInteracted = true; // Start aggressive mode due to form submission\n this._validate();\n\n const textarea = this.shadowRoot?.querySelector(\"textarea\");\n if (textarea) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n textarea.focus();\n }\n } else {\n // If not part of a form, simply focus.\n textarea.focus();\n }\n }\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n // Handle input event to check pattern validity\n private _handleInput(event: Event) {\n const textarea = event.target as HTMLInputElement;\n this.value = textarea.value;\n this._internals.setFormValue(this.value);\n\n // Field is invalid after unfocused, validate aggressively on each input (e.g. Eager mode: a combination of aggressive and lazy.)\n if (this._hasUserInteracted) {\n this._validate();\n }\n\n this.dispatchEvent(\n new CustomEvent(\"nys-input\", {\n detail: { id: this.id, value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // Handle focus event\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n // Handle blur event\n private _handleBlur() {\n if (!this._hasUserInteracted) {\n this._hasUserInteracted = true; // At initial unfocus: if textarea is invalid, start aggressive mode\n }\n\n this._validate();\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n private _handleSelect(e: Event) {\n const select = e.target as HTMLSelectElement;\n this.value = select.value;\n this.dispatchEvent(\n new CustomEvent(\"nys-select\", {\n detail: { id: this.id, value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _handleSelectionChange(e: Event) {\n const select = e.target as HTMLSelectElement;\n this.value = select.value;\n this.dispatchEvent(\n new CustomEvent(\"nys-selectionchange\", {\n detail: { id: this.id, value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n render() {\n return html`\n <label class=\"nys-textarea\">\n <nys-label\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${this.description}\n flag=${this.required && !this.readonly\n ? \"required\"\n : this.optional\n ? \"optional\"\n : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n <textarea\n class=\"nys-textarea__textarea ${this.resize}\"\n name=${this.name}\n id=${this.id + \"--native\"}\n .value=${this.value}\n ?disabled=${this.disabled}\n ?required=${this.required && !this.readonly}\n ?readonly=${this.readonly}\n aria-disabled=${ifDefined(this.disabled ? \"true\" : undefined)}\n aria-required=${ifDefined(this.required ? \"true\" : undefined)}\n aria-label=${ifDefined(this.label || undefined)}\n aria-description=${ifDefined(this.description || undefined)}\n placeholder=${ifDefined(\n this.placeholder ? this.placeholder : undefined,\n )}\n maxlength=${ifDefined(this.maxlength ?? undefined)}\n .rows=${this.rows}\n form=${ifDefined(this.form || undefined)}\n @input=${this._handleInput}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n @select=\"${this._handleSelect}\"\n @selectionchange=\"${this._handleSelectionChange}\"\n ></textarea>\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage || this.errorMessage}\n ></nys-errormessage>\n </label>\n `;\n }\n}\n\nif (!customElements.get(\"nys-textarea\")) {\n customElements.define(\"nys-textarea\", NysTextarea);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-textinput.scss?inline\";\n\nlet textinputIdCounter = 0;\n\n/**\n * `<nys-textinput>` is a form-enabled text input with validation, optional\n * masking, password toggle, accessibility support, and live error messages.\n * Works with forms via ElementInternals.\n *\n * @slot description - Optional custom description content below the label.\n * @slot startButton - Slot for a single <nys-button> at the start of the input.\n * @slot endButton - Slot for a single <nys-button> at the end of the input.\n *\n * @fires nys-input - Fired on input change. Detail: `{ id, value }`.\n * @fires nys-focus - Fired when input receives focus.\n * @fires nys-blur - Fired when input loses focus.\n */\n\nexport class NysTextinput extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String, reflect: true }) type:\n | \"email\"\n | \"number\"\n | \"password\"\n | \"search\"\n | \"tel\"\n | \"text\"\n | \"url\" = \"text\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String }) placeholder = \"\";\n @property({ type: String }) value = \"\";\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) readonly = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: String }) tooltip = \"\";\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: String }) pattern = \"\";\n @property({ type: Number }) maxlength: number | null = null;\n @property({ type: String, reflect: true }) width:\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"full\" = \"full\";\n @property({ type: Number }) step: number | null = null;\n @property({ type: Number }) min: number | null = null;\n @property({ type: Number }) max: number | null = null;\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @state() private showPassword = false;\n\n private _originalErrorMessage = \"\";\n private _hasUserInteracted = false; // need this flag for \"eager mode\"\n private _internals: ElementInternals;\n\n private _maskPatterns: Record<string, string> = {\n tel: \"(___) ___-____\",\n };\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-textinput-${Date.now()}-${textinputIdCounter++}`;\n }\n\n this._originalErrorMessage = this.errorMessage ?? \"\";\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n // This ensures our element always participates in the form\n this._setValue();\n }\n\n // Ensure the \"width\" property is valid after updates\n async updated(changedProperties: Map<string | number | symbol, unknown>) {\n if (changedProperties.has(\"disabled\")) {\n this._validateButtonSlot(\"startButton\");\n this._validateButtonSlot(\"endButton\");\n }\n\n if (changedProperties.has(\"type\")) {\n const mask = this._maskPatterns[this.type];\n const input = this.shadowRoot?.querySelector(\"input\");\n\n if (input) {\n if (mask) {\n input.maxLength = mask.length;\n this._updateOverlay(input.value, mask);\n } else {\n input.removeAttribute(\"maxLength\");\n const overlay = this.shadowRoot?.querySelector(\n \".nys-textinput__mask-overlay\",\n );\n if (overlay) overlay.textContent = \"\";\n }\n }\n }\n if (\n changedProperties.has(\"readonly\") ||\n changedProperties.has(\"required\")\n ) {\n const input = this.shadowRoot?.querySelector(\"input\");\n\n if (input) input.required = this.required && !this.readonly;\n }\n }\n\n /**\n * Form Integration\n * --------------------------------------------------------------------------\n */\n\n private _setValue() {\n this._internals.setFormValue(this.value);\n this._manageRequire(); // Update validation\n }\n\n private _manageRequire() {\n const input = this.shadowRoot?.querySelector(\"input\");\n\n if (!input) return;\n\n const message = this.errorMessage || \"This field is required\";\n const isInvalid =\n this.required && (!this.value || this.value?.trim() === \"\"); // Check for blank as well\n\n if (isInvalid) {\n this._internals.ariaRequired = \"true\";\n this._internals.setValidity({ valueMissing: true }, message, input);\n } else {\n this._internals.ariaRequired = \"false\";\n this._internals.setValidity({});\n this._hasUserInteracted = false; // Reset eager/lazy checking\n }\n }\n\n private _setValidityMessage(message: string = \"\") {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Always show the visual error if there is a message\n this.showError = !!message;\n\n // Use the original errorMessage if defined, or keep the message from validation\n if (this._originalErrorMessage?.trim() && message !== \"\") {\n this.errorMessage = this._originalErrorMessage;\n } else {\n this.errorMessage = message;\n }\n\n const validityState = message ? { customError: true } : {};\n this._internals.setValidity(validityState, this.errorMessage, input);\n }\n\n private _validate() {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Get the native validation state\n const validity = input.validity;\n let message = \"\";\n\n // Check each possible validation error\n if (validity.valueMissing) {\n message = \"This field is required\";\n } else if (validity.typeMismatch) {\n message = \"Invalid format for this type\";\n } else if (validity.patternMismatch) {\n message = \"Invalid format\";\n } else if (validity.tooShort) {\n message = `Value is too short. Minimum length is ${input.minLength}`;\n } else if (validity.tooLong) {\n message = `Value is too long. Maximum length is ${input.maxLength}`;\n } else if (validity.rangeUnderflow) {\n message = `Value must be at least ${input.min}`;\n } else if (validity.rangeOverflow) {\n message = `Value must be at most ${input.max}`;\n } else if (validity.stepMismatch) {\n message = \"Invalid step value\";\n } else {\n message = input.validationMessage;\n }\n\n this._setValidityMessage(message);\n }\n\n // This callback is automatically called when the parent form is reset.\n formResetCallback() {\n this.value = \"\";\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n const input = this.shadowRoot?.querySelector(\"input\");\n return input ? input.checkValidity() : true;\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this._hasUserInteracted = true; // Start aggressive mode due to form submission\n this._validate();\n\n const input = this.shadowRoot?.querySelector(\"input\");\n if (input) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n input.focus();\n }\n } else {\n // If not part of a form, simply focus.\n input.focus();\n }\n }\n }\n\n private _togglePasswordVisibility() {\n this.showPassword = !this.showPassword;\n }\n\n private _updateOverlay(value: string, mask: string) {\n const overlay = this.shadowRoot?.querySelector(\n \".nys-textinput__mask-overlay\",\n ) as HTMLElement;\n if (!overlay) return;\n\n const filled = value;\n const remaining = mask.slice(filled.length);\n overlay.textContent = filled + remaining;\n }\n\n private _applyMask(value: string, mask: string): string {\n const digits = value.replace(/\\D/g, \"\");\n let result = \"\";\n\n // Special handling for tel to avoid trailing dash\n if (this.type === \"tel\") {\n if (digits.length > 0) {\n result = \"(\" + digits.substring(0, 3);\n }\n if (digits.length >= 4) {\n result += \") \" + digits.substring(3, 6);\n }\n // Add dash if there are more than 6 digits\n if (digits.length > 6) {\n result += \"-\" + digits.substring(6, 10);\n }\n return result;\n }\n\n // Default generic masking logic\n let digitIndex = 0;\n for (let i = 0; i < mask.length; i++) {\n if (mask[i] === \"_\" || mask[i].match(/[d9]/i)) {\n if (digitIndex < digits.length) {\n result += digits[digitIndex++];\n } else {\n break;\n }\n } else {\n result += mask[i]; // keep formatting symbols\n }\n }\n\n return result;\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n // Handle input event to check pattern validity\n private _handleInput(event: Event) {\n const input = event.target as HTMLInputElement;\n let newValue = input.value;\n\n const mask = this._maskPatterns[this.type];\n if (mask) {\n newValue = this._applyMask(newValue, mask);\n input.value = newValue; // ensure input reflects masked value\n this._updateOverlay(newValue, mask);\n }\n\n this.value = newValue;\n this._internals.setFormValue(this.value);\n\n // Field is invalid after unfocused, validate aggressively on each input (e.g. Eager mode: a combination of aggressive and lazy.)\n if (this._hasUserInteracted) {\n this._validate();\n }\n\n this.dispatchEvent(\n new CustomEvent(\"nys-input\", {\n detail: { id: this.id, value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // Handle focus event\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n // Handle blur event\n private _handleBlur() {\n if (!this._hasUserInteracted) {\n this._hasUserInteracted = true; // At initial unfocus: if input is invalid, start aggressive mode\n }\n this._validate();\n\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n private _validateButtonSlot(slotName: string) {\n const slot = this.shadowRoot?.querySelector(\n 'slot[name=\"' + slotName + '\"]',\n ) as HTMLSlotElement;\n const container = this.shadowRoot?.querySelector(\n \".nys-textinput__buttoncontainer\",\n );\n\n if (!slot || !container) return;\n\n const assignedElements = slot.assignedElements();\n\n let foundValidButton = false;\n\n assignedElements.forEach((node) => {\n const isNysButton =\n node instanceof HTMLElement &&\n node.tagName.toLowerCase() === \"nys-button\";\n\n if (isNysButton && !foundValidButton) {\n // First valid nys-button found\n foundValidButton = true;\n node.setAttribute(\"size\", \"sm\");\n node.setAttribute(\"variant\", \"primary\");\n //set button to be disabled if the input is disabled\n if (this.disabled) {\n node.setAttribute(\"disabled\", \"true\");\n } else {\n node.removeAttribute(\"disabled\");\n }\n } else {\n console.warn(\n \"The '\" +\n slotName +\n \"' slot only accepts a single <nys-button> element. Removing invalid or extra node:\",\n node,\n );\n node.remove();\n }\n });\n\n if (slotName === \"startButton\") {\n container.classList.toggle(\"has-start-button\", foundValidButton);\n } else if (slotName === \"endButton\") {\n container.classList.toggle(\"has-end-button\", foundValidButton);\n }\n }\n\n render() {\n return html`\n <div class=\"nys-textinput\">\n <nys-label\n for=${this.id + \"--native\"}\n label=${this.label}\n description=${this.description}\n flag=${this.required && !this.readonly\n ? \"required\"\n : this.optional\n ? \"optional\"\n : \"\"}\n tooltip=${this.tooltip}\n ?inverted=${this.inverted}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n <div class=\"nys-textinput__buttoncontainer\">\n <slot\n name=\"startButton\"\n @slotchange=${() => this._validateButtonSlot(\"startButton\")}\n ></slot>\n <div class=\"nys-textinput__container\">\n <span class=\"nys-textinput__mask-overlay\"></span>\n <input\n class=\"nys-textinput__input\"\n type=${this.type === \"password\"\n ? this.showPassword\n ? \"text\"\n : \"password\"\n : this.type}\n name=${this.name}\n id=${this.id + \"--native\"}\n ?disabled=${this.disabled}\n ?required=${this.required && !this.readonly}\n ?readonly=${this.readonly}\n aria-required=${this.required}\n aria-disabled=\"${this.disabled}\"\n aria-label=\"${[this.label, this.description]\n .filter(Boolean)\n .join(\" \")}\"\n .value=${this.value}\n placeholder=${ifDefined(\n this.placeholder ? this.placeholder : undefined,\n )}\n pattern=${ifDefined(this.pattern ? this.pattern : undefined)}\n min=${ifDefined(this.min !== null ? this.min : undefined)}\n maxlength=${ifDefined(\n this.maxlength !== null ? this.maxlength : undefined,\n )}\n step=${ifDefined(this.step !== null ? this.step : undefined)}\n max=${ifDefined(this.max !== null ? this.max : undefined)}\n form=${ifDefined(this.form || undefined)}\n @input=${this._handleInput}\n @focus=\"${this._handleFocus}\"\n @blur=\"${this._handleBlur}\"\n />\n ${this.type === \"password\"\n ? html` <nys-button\n class=\"eye-icon\"\n id=\"password-toggle\"\n suffixIcon=\"slotted\"\n ariaLabel=\"password toggle\"\n variant=\"ghost\"\n size=\"sm\"\n @nys-click=${() =>\n !this.disabled && this._togglePasswordVisibility()}\n >\n <nys-icon\n slot=\"suffix-icon\"\n size=\"2xl\"\n name=${this.showPassword ? \"visibility_off\" : \"visibility\"}\n ></nys-icon>\n </nys-button>`\n : \"\"}\n </div>\n <slot\n name=\"endButton\"\n @slotchange=${() => this._validateButtonSlot(\"endButton\")}\n ></slot>\n </div>\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this.errorMessage}\n ></nys-errormessage>\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-textinput\")) {\n customElements.define(\"nys-textinput\", NysTextinput);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-toggle.scss?inline\";\n\nlet toggleIdCounter = 0;\n\n/**\n * `<nys-toggle>` is a form-associated toggle switch with label, description,\n * size variants, inverted styles, and optional icons. Supports keyboard\n * interaction and integrates with forms via ElementInternals.\n *\n * @slot description - Optional slot to provide additional description below the label.\n *\n * @fires nys-change - Fired when toggle changes state. Detail: `{ id, checked }`.\n * @fires nys-focus - Fired when toggle receives focus.\n * @fires nys-blur - Fired when toggle loses focus.\n */\n\nexport class NysToggle extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) value = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: String, reflect: true }) form: string | null = null;\n @property({ type: Boolean, reflect: true }) checked = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean }) noIcon = false;\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" = \"md\";\n\n private _internals: ElementInternals;\n\n /**\n * Lifecycle methods\n * --------------------------------------------------------------------------\n */\n\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-toggle-${Date.now()}-${toggleIdCounter++}`;\n }\n }\n\n /**\n * Form Integration\n * --------------------------------------------------------------------------\n */\n\n // Update the internals whenever `checked` or `value` changes.\n updated(changedProperties: Map<string, any>) {\n if (changedProperties.has(\"checked\") || changedProperties.has(\"value\")) {\n this._internals.setFormValue(this.checked ? this.value : null);\n }\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n private _emitChangeEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: { id: this.id, checked: this.checked },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // Handle focus event\n private _handleFocus() {\n this.dispatchEvent(new Event(\"nys-focus\"));\n }\n\n // Handle blur event\n private _handleBlur() {\n this.dispatchEvent(new Event(\"nys-blur\"));\n }\n\n private _handleChange(e: Event) {\n const { checked } = e.target as HTMLInputElement;\n this.checked = checked;\n this._emitChangeEvent();\n }\n\n private _handleKeyDown(event: KeyboardEvent) {\n if (!this.disabled && (event.key === \" \" || event.key === \"Enter\")) {\n event.preventDefault();\n\n // Manually toggle the checked state\n this.checked = !this.checked;\n\n this._emitChangeEvent();\n }\n }\n\n render() {\n return html`\n <label class=\"nys-toggle\">\n <div class=\"nys-toggle__content\">\n <div class=\"nys-toggle__toggle\">\n <input\n type=\"checkbox\"\n name=\"${ifDefined(this.name ? this.name : undefined)}\"\n .value=${this.value}\n form=${ifDefined(this.form || undefined)}\n .checked=${this.checked}\n ?disabled=${this.disabled}\n role=\"switch\"\n aria-checked=\"${this.checked ? \"true\" : \"false\"}\"\n aria-disabled=\"${this.disabled ? \"true\" : \"false\"}\"\n @change=${this._handleChange}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n @keydown=${this._handleKeyDown}\n />\n <span class=\"slider\">\n <div class=\"knob\">\n ${this.noIcon\n ? \"\"\n : html`<nys-icon\n class=\"toggle-icon\"\n name=\"${this.checked ? \"check\" : \"close\"}\"\n size=\"2xl\"\n ></nys-icon>`}\n </div>\n </span>\n </div>\n <div class=\"nys-toggle__text ${this.inverted ? \"invert\" : \"\"}\">\n <div class=\"nys-toggle__label\">${this.label}</div>\n <slot name=\"description\">${this.description}</slot>\n </div>\n </div>\n </label>\n `;\n }\n}\n\nif (!customElements.get(\"nys-toggle\")) {\n customElements.define(\"nys-toggle\", NysToggle);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-tooltip.scss?inline\";\n\nlet tooltipIdCounter = 0;\n\n/**\n * `<nys-tooltip>` is a custom tooltip component for NYS design system elements.\n * It supports dynamic positioning, screen-reader accessibility, keyboard interaction,\n * and viewport overflow handling.\n *\n * The tooltip automatically positions itself relative to a target element specified\n * via the `for` attribute, but can also respect a user-defined position.\n *\n * @fires nys-focus - Dispatched when the reference element receives focus (via keyboard or programmatically).\n * @fires nys-blur - Dispatched when the reference element loses focus or mouse leaves the tooltip.\n *\n * Notes:\n * - Tooltip visibility is automatically managed on hover/focus of the reference element.\n * - The component adjusts position dynamically to prevent overflow off-screen.\n * - Supports keyboard dismissal with the Escape key.\n */\n\nexport class NysTooltip extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String, reflect: true }) id = \"\";\n @property({ type: String }) text = \"\";\n @property({ type: Boolean, reflect: true }) inverted = false;\n @property({ type: String }) for = \"\";\n\n // Track if tooltip is active (hovered or focused)\n @state()\n private _active = false;\n\n // Track if user set position is set explicitly\n private _userHasSetPosition = false;\n private _originalUserPosition: typeof this._position | null = null;\n // Internal flag to prevent dynamic positioning when not needed\n private _internallyUpdatingPosition = false;\n // Flag for hiding the timeout\n private _hideTimeout: number | null = null;\n\n // Position Logic\n private _position: \"top\" | \"bottom\" | \"left\" | \"right\" | null = null;\n\n @property({ type: String, reflect: true })\n get position() {\n return this._position;\n }\n\n set position(value) {\n const oldVal = this._position;\n this._position = value;\n this.requestUpdate(\"position\", oldVal);\n\n // The \"_internallyUpdatingPosition\" flag allows user's set position to take preference\n if (!this._internallyUpdatingPosition) {\n this._userHasSetPosition = value !== null;\n this._originalUserPosition = value;\n }\n }\n\n /**\n * Lifecycle Methods\n * --------------------------------------------------------------------------\n */\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = `nys-tooltip-${Date.now()}-${tooltipIdCounter++}`;\n }\n\n window.addEventListener(\"keydown\", this._handleEscapeKey);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n const ref = this._getReferenceElement();\n const tooltip = this.shadowRoot?.querySelector(\".nys-tooltip__content\");\n\n if (ref && tooltip) {\n ref.removeEventListener(\"mouseenter\", this._showTooltip);\n ref.removeEventListener(\"mouseenter\", this._cancelFadeOut);\n ref.removeEventListener(\"mouseleave\", this._handleBlurOrMouseLeave);\n ref.removeEventListener(\"focusin\", this._showTooltip);\n ref.removeEventListener(\"focusout\", this._handleBlurOrMouseLeave);\n tooltip.removeEventListener(\"mouseenter\", this._cancelFadeOut);\n tooltip.removeEventListener(\"mouseleave\", this._handleBlurOrMouseLeave);\n }\n window.removeEventListener(\"keydown\", this._handleEscapeKey);\n }\n\n async firstUpdated() {\n await this.updateComplete;\n const ref = this._getReferenceElement();\n const tooltip = this.shadowRoot?.querySelector(\".nys-tooltip__content\");\n\n if (!ref || !tooltip) return;\n\n this.applyInverseTransform();\n this._applyTooltipPropToFormComponent(ref);\n\n if (\n ref.tagName.toLowerCase() === \"nys-button\" ||\n ref.tagName.toLowerCase() === \"nys-icon\"\n ) {\n this._applyFocusBehavior(ref);\n ref.addEventListener(\"mouseenter\", this._showTooltip);\n ref.addEventListener(\"mouseenter\", this._cancelFadeOut);\n ref.addEventListener(\"mouseleave\", this._handleBlurOrMouseLeave);\n ref.addEventListener(\"focusin\", this._showTooltip);\n ref.addEventListener(\"focusout\", this._handleBlurOrMouseLeave);\n tooltip.addEventListener(\"mouseenter\", this._cancelFadeOut);\n tooltip.addEventListener(\"mouseleave\", this._handleBlurOrMouseLeave);\n }\n }\n\n updated(changedProps: Map<string, unknown>) {\n super.updated(changedProps);\n\n const ref = this._getReferenceElement();\n if (!ref) return;\n\n this._positionStartingBase();\n\n // Accounts for tooltip's text change (for code editor changes & VO)\n if (changedProps.has(\"text\")) {\n this._applyTooltipPropToFormComponent(ref);\n }\n }\n\n /**\n * Event Handlers\n * --------------------------------------------------------------------------\n */\n\n // When toggling tooltip, check if user has set position to give it preference it space allows. Otherwise dynamically position tooltip.\n private _showTooltip = () => {\n this._active = true;\n this._addScrollListeners();\n\n // Try to honor user's original preference first\n if (this._userHasSetPosition && this._originalUserPosition) {\n if (this._doesPositionFit(this._originalUserPosition)) {\n this.position = this._originalUserPosition;\n // Check if current tooltip position overflows to edge of screen\n this.updateComplete.then(() => {\n this._userPositionTooltip();\n });\n return;\n }\n }\n\n // Otherwise fall back to auto logic\n this._autoPositionTooltip();\n };\n\n private _handleBlurOrMouseLeave = () => {\n const ref = this._getReferenceElement();\n const tooltip = this.shadowRoot?.querySelector(\n \".nys-tooltip__content\",\n ) as HTMLElement;\n\n if (ref === document.activeElement) return;\n if (!ref || !tooltip) return;\n\n this._triggerFadeOut(tooltip);\n };\n\n private _triggerFadeOut(tooltip: HTMLElement) {\n if (!tooltip || this._hideTimeout) return;\n\n tooltip.classList.add(\"fade-out\");\n\n this._hideTimeout = window.setTimeout(() => {\n this._active = false;\n this._removeScrollListeners();\n this._positionStartingBase();\n this._resetTooltipPositioningStyles(tooltip);\n\n tooltip.classList.remove(\"fade-out\");\n this._hideTimeout = null;\n }, 200);\n }\n\n private _cancelFadeOut = () => {\n const tooltip = this.shadowRoot?.querySelector(\n \".nys-tooltip__content\",\n ) as HTMLElement;\n const ref = this._getReferenceElement();\n\n if (!tooltip || !ref) return;\n\n const isPointerInsideTooltip = tooltip.matches(\":hover\");\n const isPointerInsideRef = ref.matches(\":hover\");\n\n const isTouched = document.activeElement === ref;\n\n if (!isPointerInsideTooltip && !isPointerInsideRef && !isTouched) {\n return;\n }\n\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n\n tooltip.classList.remove(\"fade-out\");\n this._active = true;\n };\n\n // Listen to window scroll so a focus tooltip can auto position even when user move across the page\n private _addScrollListeners() {\n window.addEventListener(\"scroll\", this._handleScrollOrResize, true);\n window.addEventListener(\"resize\", this._handleScrollOrResize);\n }\n\n private _removeScrollListeners() {\n window.removeEventListener(\"scroll\", this._handleScrollOrResize, true);\n window.removeEventListener(\"resize\", this._handleScrollOrResize);\n }\n\n private _handleScrollOrResize = () => {\n if (!this._active || this._hideTimeout) return;\n\n this._showTooltip();\n };\n\n private _handleEscapeKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\" && this._active) {\n this._active = false;\n this._removeScrollListeners();\n\n const tooltip = this.shadowRoot?.querySelector(\n \".nys-tooltip__content\",\n ) as HTMLElement;\n if (tooltip) {\n this._resetTooltipPositioningStyles(tooltip);\n }\n }\n };\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _getReferenceElement() {\n const targetId = this.for;\n if (!targetId) return null;\n\n // lightDOM search\n let htmlElement = document.getElementById(targetId);\n if (htmlElement) return htmlElement;\n\n // Search recursively through shadow DOMs (e.g. for nys-label within other component's shadowDOM)\n const findInShadows = (root: ParentNode): HTMLElement | null => {\n for (const el of Array.from(root.querySelectorAll(\"*\"))) {\n const shadowElement = el.shadowRoot;\n if (shadowElement) {\n const found = shadowElement.getElementById(targetId);\n if (found) return found;\n\n const deeper = findInShadows(shadowElement);\n if (deeper) return deeper;\n }\n }\n return null;\n };\n\n return findInShadows(document);\n }\n\n // We need to pass `ariaLabel` or `ariaDescription` to the nys-components so they can announce both their label and the tooltip's text\n private async _passAria(el: HTMLElement) {\n const tagName = el.tagName.toLowerCase();\n\n if (tagName === \"nys-icon\") {\n // For nys-icon, use ariaLabel instead\n el.setAttribute(\"ariaLabel\", `Hint: ${this.text}`);\n } else if (tagName === \"nys-button\") {\n // For other components like nys-button, use ariaDescription\n el.setAttribute(\"ariaDescription\", `, Hint: ${this.text}`);\n }\n }\n\n /**\n * In React, the reference element found is often the native HTML element within the nys-component.\n * Therefore, this function accounts for the closest NYS component ancestor that supports a tooltip prop.\n */\n private _applyTooltipPropToFormComponent(ref: HTMLElement) {\n const tagName = ref.tagName.toLowerCase();\n if (!tagName.startsWith(\"nys-\")) return;\n\n if (tagName === \"nys-button\" || tagName === \"nys-icon\") {\n // Already handled elsewhere in this component; we just ensure we attach listeners\n this._applyFocusBehavior(ref);\n this._passAria(ref);\n return;\n }\n\n if (\"tooltip\" in ref) {\n ref.tooltip = this.text;\n }\n }\n\n // Applies focus behavior to an otherwise non focus element (i.e. nys-icon is non focusable by default)\n private async _applyFocusBehavior(el: HTMLElement) {\n el.style.cursor = \"pointer\";\n const tagName = el.tagName.toLowerCase();\n\n if (tagName === \"nys-icon\") {\n if (\"updateComplete\" in el) {\n await (el as any).updateComplete;\n }\n const svg = el.shadowRoot?.querySelector(\"svg\");\n if (svg) {\n svg.setAttribute(\"tabindex\", \"0\");\n }\n }\n }\n\n /**\n * Checks if the tooltip fits inside the viewport on the given side of the trigger.\n * Used for auto-positioning. Ignores text overflow for now.\n */\n private _doesPositionFit(position: typeof this._position) {\n const ref = this._getReferenceElement();\n const tooltip = this.shadowRoot?.querySelector(\".nys-tooltip__content\");\n\n if (!ref || !tooltip || position == null) return;\n\n const refRect = ref.getBoundingClientRect();\n const tooltipRect = tooltip.getBoundingClientRect();\n\n // Define some margin buffer between tooltip and trigger (to avoid touching the edges too tightly)\n const margin = 8;\n\n // Available space on each side relative to trigger rect and viewport\n const spaceAvailable = {\n top: refRect.top - margin,\n left: refRect.left - margin,\n bottom: window.innerHeight - refRect.bottom - margin,\n right: window.innerWidth - refRect.right - margin,\n };\n\n // Check if tooltip fits on each side (compare available space vs tooltip size)\n const fits = {\n top: spaceAvailable.top >= tooltipRect.height,\n bottom: spaceAvailable.bottom >= tooltipRect.height,\n left: spaceAvailable.left >= tooltipRect.width,\n right: spaceAvailable.right >= tooltipRect.width,\n };\n\n return fits[position];\n }\n\n private _userPositionTooltip() {\n const tooltip = this.shadowRoot?.querySelector(\n \".nys-tooltip__content\",\n ) as HTMLElement;\n const ref = this._getReferenceElement();\n if (tooltip && ref) {\n this._positionTooltipElement(ref, tooltip, this.position);\n this._shiftTooltipIntoViewport(tooltip);\n }\n }\n\n // Calculates the best placement based on available space (flips placement if it doesn't fit)\n private async _autoPositionTooltip() {\n const ref = this._getReferenceElement();\n const tooltip = this.shadowRoot?.querySelector(\n \".nys-tooltip__content\",\n ) as HTMLElement;\n\n if (!ref || !tooltip) return;\n\n const refRect = ref.getBoundingClientRect();\n const margin = 8;\n\n const spaceAvailable = {\n top: refRect.top - margin,\n left: refRect.left - margin,\n bottom: window.innerHeight - refRect.bottom - margin,\n right: window.innerWidth - refRect.right - margin,\n };\n\n // Default tryOrder for auto mode\n let tryOrder: Array<keyof typeof spaceAvailable> = [\n \"top\",\n \"bottom\",\n \"right\",\n \"left\",\n ];\n\n // If user explicitly set a preferred position (even if it didn’t fit),\n // favor it first before trying others\n if (this._userHasSetPosition && this._originalUserPosition) {\n const userPosition = this._originalUserPosition;\n if (userPosition === \"left\") {\n tryOrder = [\"left\", \"right\", \"top\", \"bottom\"];\n } else if (userPosition === \"right\") {\n tryOrder = [\"right\", \"left\", \"top\", \"bottom\"];\n } else if (userPosition === \"top\") {\n tryOrder = [\"top\", \"bottom\", \"right\", \"left\"];\n } else if (userPosition === \"bottom\") {\n tryOrder = [\"bottom\", \"top\", \"right\", \"left\"];\n }\n }\n\n // 1) Try to find the first side that fits\n for (const pos of tryOrder) {\n if (this._doesPositionFit(pos)) {\n this._setInternalPosition(pos);\n await this.updateComplete;\n this._positionTooltipElement(ref, tooltip, pos);\n this._shiftTooltipIntoViewport(tooltip);\n return;\n }\n }\n\n // 2) Fallback: pick the side with the most space\n let bestPosition: keyof typeof spaceAvailable = \"top\";\n let maxSpace = spaceAvailable.top;\n\n for (const pos of tryOrder) {\n if (spaceAvailable[pos] > maxSpace) {\n maxSpace = spaceAvailable[pos];\n bestPosition = pos;\n }\n }\n this._setInternalPosition(bestPosition);\n await this.updateComplete;\n this._positionTooltipElement(ref, tooltip, bestPosition);\n this._shiftTooltipIntoViewport(tooltip);\n }\n\n private _positionStartingBase() {\n const tooltip = this.shadowRoot?.querySelector(\n \".nys-tooltip__content\",\n ) as HTMLElement;\n\n if (!tooltip) return;\n\n tooltip.style.top = \"0px\";\n tooltip.style.left = \"0px\";\n }\n\n private _positionTooltipElement(\n ref: HTMLElement,\n tooltip: HTMLElement,\n bestPosition: typeof this._position,\n ) {\n const refRect = ref.getBoundingClientRect();\n const tooltipRect = tooltip.getBoundingClientRect();\n const margin = 8;\n\n let top = 0;\n let left = 0;\n\n switch (bestPosition) {\n case \"top\":\n top = refRect.top - tooltipRect.height - margin;\n left = refRect.left + refRect.width / 2 - tooltipRect.width / 2;\n break;\n case \"bottom\":\n top = refRect.bottom + margin;\n left = refRect.left + refRect.width / 2 - tooltipRect.width / 2;\n break;\n case \"left\":\n top = refRect.top + refRect.height / 2 - tooltipRect.height / 2;\n left = refRect.left - tooltipRect.width - margin;\n break;\n case \"right\":\n top = refRect.top + refRect.height / 2 - tooltipRect.height / 2;\n left = refRect.right + margin;\n break;\n default:\n // Default to top\n top = refRect.top - tooltipRect.height - margin;\n left = refRect.left + refRect.width / 2 - tooltipRect.width / 2;\n break;\n }\n\n tooltip.style.top = `${top}px`;\n tooltip.style.left = `${left}px`;\n }\n\n // Like storybook, some user's parent container may contain transform styling, which sets a new coordinate system.\n // This function reverse any container of that scale to not interfere with tooltip calculation.\n private applyInverseTransform() {\n document.querySelectorAll('div[scale=\"1\"]').forEach((el) => {\n (el as HTMLElement).style.transform = \"none\";\n });\n }\n\n private _setInternalPosition(bestPosition: typeof this._position) {\n this._internallyUpdatingPosition = true;\n this.position = bestPosition;\n this._internallyUpdatingPosition = false;\n }\n\n // Determines if text of tooltip over-extends outside of viewport edge and adjust tooltip for horizontal overflow\n private _shiftTooltipIntoViewport(tooltip: HTMLElement) {\n const ref = this._getReferenceElement();\n if (!ref) return;\n\n const refRect = ref.getBoundingClientRect();\n const tooltipRect = tooltip.getBoundingClientRect();\n\n const refCenter = refRect.left + refRect.width / 2;\n\n const overflowLeft = tooltipRect.left < 0;\n const overflowRight = tooltipRect.right > window.innerWidth;\n\n // Tooltip is past the viewport edge, shift it inwards\n if (overflowLeft) {\n tooltip.style.left = \"10px\";\n tooltip.style.transform = \"none\";\n } else if (overflowRight) {\n tooltip.style.right = \"0px\";\n tooltip.style.left = \"auto\";\n tooltip.style.transform = \"none\";\n }\n\n // Recalculate tooltip rect after any shift\n const newTooltipRect = tooltip.getBoundingClientRect();\n\n // Arrow offset relative to tooltip width to maintain accuracy on zoom and out-of-bounds\n const arrowOffsetRatio =\n (refCenter - newTooltipRect.left) / newTooltipRect.width;\n const arrowOffsetPercent = Math.max(0, Math.min(1, arrowOffsetRatio)) * 100;\n\n tooltip.style.setProperty(\"--arrow-offset-x\", `${arrowOffsetPercent}%`);\n }\n\n // Reposition tooltip back to original set position (e.g. top, left, bottom, right) to avoid positioning issue base on last position\n private _resetTooltipPositioningStyles(tooltip: HTMLElement) {\n tooltip.style.left = \"\";\n tooltip.style.right = \"\";\n tooltip.style.top = \"\";\n tooltip.style.transform = \"\";\n tooltip.style.removeProperty(\"--arrow-offset-x\");\n }\n\n render() {\n return html`\n <div class=\"nys-tooltip__main\">\n ${this.text?.trim()\n ? html`<div\n id=${this.id}\n class=\"nys-tooltip__content\"\n role=\"tooltip\"\n aria-hidden=${this._active && !this._hideTimeout\n ? \"false\"\n : \"true\"}\n ?active=${this._active}\n style=\"visibility: ${this._active ? \"visible\" : \"hidden\"}; \"\n >\n <div class=\"nys-tooltip__inner\">${this.text}</div>\n <span class=\"nys-tooltip__arrow\"></span>\n </div>`\n : \"\"}\n </div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-tooltip\")) {\n customElements.define(\"nys-tooltip\", NysTooltip);\n}\n","const nysBrandLogoSvg = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"91\" height=\"55\" viewBox=\"0 0 91 55\" fill=\"none\">\n <path d=\"M55.1158 7.50499L58.2905 12.6494V7.5189C58.2905 7.5189 58.6487 7.26356 59.5098 7.26356C60.3708 7.26356 60.7378 7.5189 60.7378 7.5189V16.4327C60.7378 16.4327 60.3942 16.689 59.5215 16.689C58.6487 16.689 58.3295 16.4605 58.3295 16.4605L55.1421 11.3171V16.4337C55.1421 16.4337 54.7848 16.69 53.9111 16.69C53.0374 16.69 52.7065 16.4337 52.7065 16.4337V7.51989C52.7065 7.51989 53.0384 7.26456 53.9248 7.26456C54.8112 7.26456 55.1148 7.50697 55.1148 7.50697L55.1158 7.50499Z\" fill=\"#457AA5\"/>\n <path d=\"M67.2209 12.5948H64.9063V14.8709H68.2538C68.2538 14.8709 68.5047 15.1531 68.5047 15.772C68.5047 16.391 68.2538 16.688 68.2538 16.688H62.4589V7.26257H67.9892C67.9892 7.26257 68.2538 7.54572 68.2538 8.17859C68.2538 8.81146 67.9892 9.09362 67.9892 9.09362H64.9063V10.7637H67.2209C67.2209 10.7637 67.4728 11.0598 67.4728 11.6787C67.4728 12.2977 67.2209 12.5948 67.2209 12.5948Z\" fill=\"#457AA5\"/>\n <path d=\"M71.4802 16.4327L68.9791 7.5189C68.9791 7.5189 69.3491 7.26356 70.2101 7.26356C71.0711 7.26356 71.4275 7.5189 71.4275 7.5189L72.6839 12.0434C72.7766 12.3802 72.8166 12.6365 72.8557 12.7845C72.8557 12.7428 72.9221 12.3663 73.0011 12.0573L74.0984 7.5189C74.0984 7.5189 74.5211 7.26356 75.1176 7.26356C75.7141 7.26356 76.084 7.5189 76.084 7.5189L77.3004 12.7845C77.3004 12.6623 77.3795 12.3255 77.4586 12.0573L78.756 7.5189C78.7686 7.5189 79.1132 7.26356 79.9596 7.26356C80.806 7.26356 81.1897 7.5189 81.1897 7.5189L78.6496 16.4327C78.6496 16.4327 78.2922 16.6751 77.4859 16.689C76.5468 16.689 76.2158 16.4327 76.2158 16.4327L75.223 12.2987C75.1449 11.9887 75.0902 11.6529 75.0785 11.5844L74.9184 12.2987L73.9266 16.4327C73.9266 16.4327 73.583 16.689 72.7092 16.689C71.8355 16.689 71.4802 16.4327 71.4802 16.4327Z\" fill=\"#457AA5\"/>\n <path d=\"M54.3485 19.2195L55.4331 21.1579C55.804 21.8176 56.0022 22.5587 56.0285 22.6521C56.0559 22.5587 56.2404 21.8315 56.624 21.1579L57.735 19.2195C57.735 19.2195 58.0659 18.9771 58.8723 18.9771C59.786 18.9771 60.1697 19.2861 60.1697 19.2861L57.2449 24.4295V28.1453C57.2449 28.1453 56.9013 28.4026 56.0276 28.4026C55.1539 28.4026 54.8239 28.1453 54.8239 28.1453V24.3898L51.8991 19.2871C51.8991 19.2871 52.2965 18.9781 53.2082 18.9781C53.9892 18.9781 54.3465 19.2205 54.3465 19.2205L54.3485 19.2195Z\" fill=\"#457AA5\"/>\n <path d=\"M64.6017 28.497C61.4788 28.497 60.117 26.6381 60.117 23.7033C60.117 20.7684 61.4798 18.8827 64.6017 18.8827C67.7237 18.8827 69.0865 20.7674 69.0865 23.7033C69.0865 26.6391 67.711 28.497 64.6017 28.497ZM64.6017 26.6778C65.9235 26.6778 66.6391 25.4667 66.6391 23.7033C66.6391 21.9398 65.9235 20.7138 64.6017 20.7138C63.2799 20.7138 62.5653 21.9398 62.5653 23.7033C62.5653 25.4667 63.2789 26.6778 64.6017 26.6778Z\" fill=\"#457AA5\"/>\n <path d=\"M72.844 28.1463C72.844 28.1463 72.4867 28.4036 71.6129 28.4036C70.7392 28.4036 70.4083 28.1463 70.4083 28.1463V19.3546C70.4083 19.3546 71.4011 18.8837 73.2266 18.8837C75.9913 18.8837 77.275 19.9607 77.275 21.8454C77.275 23.7301 75.8722 24.4563 75.7004 24.4712L77.8432 28.0936C77.5796 28.2675 76.8523 28.4026 76.3623 28.4026C75.7267 28.4026 75.225 28.1741 75.225 28.1741L73.6113 25.3068C73.5175 25.1041 73.3858 24.9561 73.1612 24.9561H72.844V28.1463ZM73.5322 20.7148C73.1349 20.7148 72.844 20.7952 72.844 20.7952V23.138H73.5049C74.4694 23.138 74.8413 22.4514 74.8413 21.9269C74.8413 21.2403 74.3786 20.7148 73.5322 20.7148Z\" fill=\"#457AA5\"/>\n <path d=\"M87.211 28.0787C87.211 28.0787 86.5901 28.4026 85.5836 28.4026C84.7236 28.4026 84.3663 28.1741 84.3663 28.1741L81.2317 23.8384V28.1463C81.2317 28.1463 80.9007 28.4036 80.027 28.4036C79.1533 28.4036 78.797 28.1463 78.797 28.1463V19.2344C78.797 19.2344 79.1533 18.9781 80.027 18.9781C80.9007 18.9781 81.2317 19.2344 81.2317 19.2344V23.4221L84.2618 19.2205C84.2618 19.2205 84.6182 18.9781 85.4782 18.9781C86.4701 18.9781 86.8684 19.3139 86.8684 19.3139L83.9045 23.4221L87.212 28.0797L87.211 28.0787Z\" fill=\"#457AA5\"/>\n <path d=\"M58.9806 31.3374C59.1515 32.1988 58.7014 32.8853 58.1987 33.0602C57.7096 32.7244 56.9296 32.4273 56.1096 32.4273C55.2895 32.4273 54.8122 32.7502 54.8122 33.2082C54.8122 33.6394 55.1958 33.7874 56.214 34.1252L57.4841 34.5415C58.8479 34.9985 59.6933 35.7 59.6933 37.1803C59.6933 38.8911 58.5823 40.2105 55.8831 40.2105C53.9912 40.2105 52.8256 39.5637 52.4029 39.1335C52.2711 38.5007 52.6137 37.7059 53.1057 37.4505C53.5284 37.7744 54.7848 38.3934 56.0676 38.3934C56.8359 38.3934 57.2596 38.1112 57.2596 37.5986C57.2596 37.2359 57.034 37.0064 56.5049 36.8306L54.3758 36.1719C53.2365 35.8073 52.3775 34.9737 52.3775 33.6126C52.3775 31.6732 53.6729 30.5973 56.0676 30.5973C57.5895 30.5973 58.4779 31.0145 58.9806 31.3374Z\" fill=\"#457AA5\"/>\n <path d=\"M60.3542 32.5227C60.3542 32.5227 60.1023 32.2534 60.1023 31.6067C60.1023 30.9599 60.3542 30.6906 60.3542 30.6906H67.5382C67.5382 30.6906 67.7901 30.9738 67.7901 31.6067C67.7901 32.2395 67.5382 32.5227 67.5382 32.5227H65.1562V39.8608C65.1562 39.8608 64.8136 40.1161 63.9525 40.1161C63.0915 40.1161 62.7088 39.8608 62.7088 39.8608V32.5227H60.3542Z\" fill=\"#457AA5\"/>\n <path d=\"M72.7502 30.9341L76.3232 39.8201C76.3232 39.8201 75.9659 40.1171 75.0658 40.1171C74.2321 40.1171 73.9032 39.8747 73.9032 39.8747L73.254 38.3258H69.8538L69.2446 39.8747C69.2446 39.8747 68.901 40.1171 68.081 40.1171C67.1819 40.1171 66.7972 39.8201 66.7972 39.8201L70.3702 30.9341C70.3702 30.9341 70.7002 30.6916 71.5592 30.6916C72.4183 30.6916 72.7502 30.9341 72.7502 30.9341ZM70.5674 36.5216H72.5394L71.8775 34.9051C71.7457 34.5822 71.5729 33.9226 71.5583 33.855C71.5329 33.9226 71.3337 34.5822 71.2156 34.9051L70.5674 36.5216Z\" fill=\"#457AA5\"/>\n <path d=\"M75.5949 32.5227C75.5949 32.5227 75.3431 32.2534 75.3431 31.6067C75.3431 30.9599 75.5949 30.6906 75.5949 30.6906H82.779C82.779 30.6906 83.0298 30.9738 83.0298 31.6067C83.0298 32.2395 82.779 32.5227 82.779 32.5227H80.397V39.8608C80.397 39.8608 80.0543 40.1161 79.1933 40.1161C78.3323 40.1161 77.9496 39.8608 77.9496 39.8608V32.5227H75.5949Z\" fill=\"#457AA5\"/>\n <path d=\"M88.9047 36.0228H86.5891V38.299H89.9356C89.9356 38.299 90.1875 38.5821 90.1875 39.2001C90.1875 39.8181 89.9356 40.1161 89.9356 40.1161H84.1408V30.6897H89.6711C89.6711 30.6897 89.9356 30.9728 89.9356 31.6057C89.9356 32.2385 89.6711 32.5217 89.6711 32.5217H86.5882V34.1908H88.9038C88.9038 34.1908 89.1547 34.4879 89.1547 35.1078C89.1547 35.7278 88.9038 36.0219 88.9038 36.0219L88.9047 36.0228Z\" fill=\"#457AA5\"/>\n <path d=\"M51.7107 54.9999C51.577 54.9999 51.4335 54.974 51.2939 54.8965C51.085 54.7803 50.9395 54.5876 50.8858 54.3551C50.8233 54.0868 50.8936 53.7868 51.082 53.5116L51.1426 53.4202C51.2041 53.3268 51.2685 53.2354 51.3407 53.1519C51.4218 53.0595 51.5047 52.995 51.5741 52.9493C51.5243 52.6691 51.5418 52.4267 51.5682 52.2061C51.5877 52.0233 51.6346 51.8683 51.6726 51.7451C51.6892 51.6925 51.7058 51.6388 51.7185 51.5812C51.8201 51.145 51.8855 50.7397 51.9206 50.3453C51.9528 49.9916 51.947 49.9846 51.8864 49.9061C51.7 49.6707 51.3847 49.5018 51.0498 49.3229C50.8878 49.2365 50.7286 49.1491 50.5754 49.0557C49.607 48.4536 48.6376 47.8505 47.6701 47.2465L47.3294 47.0339C47.2513 46.9862 47.1147 46.9156 46.9516 46.8282C45.8817 46.2659 45.172 45.8526 45.0539 45.2595C45.0363 45.173 44.9465 44.9644 44.884 44.864C44.8411 44.8611 44.7307 44.8521 44.6546 44.8471C44.3032 44.8183 43.7711 44.7726 43.3484 44.3196C43.2635 44.2272 43.1786 44.1408 43.1005 44.0583C42.5098 43.4443 42.0003 42.9148 41.9329 41.5993C41.9241 41.4275 41.9251 41.2506 41.928 41.0728C41.9339 40.5283 41.927 40.1836 41.7103 39.962C41.6078 39.8567 41.435 39.7862 41.2349 39.7037C40.9889 39.6034 40.7097 39.4881 40.45 39.2686C40.37 39.2 40.2792 39.1007 40.1776 38.9854C40.0712 38.8602 39.9082 38.6724 39.7969 38.6337C38.974 38.3436 37.986 38.3178 36.96 38.3178L3.07245 38.2909C2.85964 38.2909 2.66927 38.3138 2.48477 38.3347C2.07378 38.3823 1.60812 38.437 1.2313 38.0962C0.866192 37.7664 0.815429 37.2607 0.814452 36.8076L0.8125 34.3993C0.8125 34.2722 0.847644 34.147 0.913051 34.0387C1.22544 33.529 1.83265 33.2558 2.3686 33.0144C2.56872 32.924 2.77666 32.8316 2.88795 32.7571C3.17593 32.5623 3.43561 32.302 3.7109 32.0248C3.91688 31.8182 4.13068 31.6046 4.36887 31.4059C4.69786 31.1317 5.07078 30.931 5.43296 30.7372C5.74535 30.5703 6.03821 30.4124 6.24127 30.2395C6.38575 30.1173 6.49216 29.9146 6.61906 29.6792C6.75476 29.4238 6.90998 29.1337 7.15208 28.8804C7.41273 28.6081 7.7427 28.4194 8.03263 28.2535C8.69744 27.871 8.68182 27.8322 8.57736 27.5769C8.52855 27.4577 8.48072 27.3553 8.43972 27.2639C8.24447 26.8357 8.07754 26.4681 8.19078 25.7051C8.2025 25.6306 8.21616 25.5521 8.22983 25.4706C8.25619 25.3325 8.30305 25.0772 8.27571 25.0037C8.27571 25.0037 8.26204 24.9927 8.23471 24.9778C8.21128 24.9659 8.12928 24.9669 8.06875 24.9679C7.87448 24.9659 7.51914 24.9768 7.2497 24.6689C6.98124 24.3629 6.99686 23.9555 7.03982 23.6356C7.08179 23.3127 7.06032 23.1051 7.03982 22.9223C6.95684 22.1453 7.21358 21.7817 8.10097 21.424C10.7524 20.351 12.901 19.9884 14.8613 20.2805C14.9775 20.2974 15.1356 20.2656 15.3182 20.2269C15.5944 20.1702 15.9351 20.1017 16.312 20.1752L18.3952 20.5766C19.2475 20.7415 19.6653 20.9054 20.3047 21.4995C20.6327 21.8046 20.7655 21.7718 21.3327 21.5661C21.6168 21.4638 21.9399 21.3485 22.3323 21.2949C22.9727 21.2084 23.5731 21.2661 24.153 21.3227C24.4136 21.3475 24.6762 21.3734 24.9408 21.3843C25.2356 21.3952 25.6085 21.2561 25.9717 21.121C26.1318 21.0614 26.2889 21.0028 26.4412 20.9541C26.78 20.8468 27.0973 20.7991 27.4038 20.7514C27.5551 20.7266 27.7064 20.7037 27.8607 20.6729C27.8714 20.6531 27.8821 20.6332 27.8939 20.6113C27.9417 20.5249 27.9944 20.4345 28.0598 20.3411C28.3419 19.9497 28.7471 19.7003 29.0722 19.4966L29.2078 19.4122C29.5564 19.1916 29.8629 18.9879 30.105 18.7386C30.5423 18.2796 31.1232 18.3114 31.5108 18.3312C31.6455 18.3392 31.8495 18.3481 31.91 18.3223C32.1678 18.207 31.9413 17.3993 31.8065 16.9165C31.7119 16.5777 31.6299 16.2846 31.6133 16.0183C31.5664 15.2642 31.9764 14.7317 32.3064 14.3045C32.5651 13.9687 32.7213 13.7481 32.7164 13.5355C32.7164 13.4948 32.7027 13.4382 32.6851 13.3845C32.4587 13.4948 32.0955 13.6369 31.6796 13.4421C31.0129 13.1302 30.6468 12.0264 30.8508 11.3985C31.0197 10.8779 31.54 10.5421 31.9198 10.2957L32.0565 10.2053C32.3806 9.98471 32.7242 9.79792 33.0542 9.6181C33.5159 9.36873 33.9513 9.13227 34.2949 8.82726C34.4404 8.69711 34.5761 8.56994 34.7089 8.44376C35.0076 8.1626 35.3161 7.8715 35.6792 7.61319C35.7056 7.5188 35.728 7.34096 35.7437 7.22571C35.7729 7.00714 35.8022 6.78062 35.8803 6.5849C36.2513 5.64304 37.1592 4.90884 37.9597 4.25908C38.2252 4.04448 38.4771 3.84081 38.6743 3.65602C38.7992 3.53878 38.9222 3.42055 39.0452 3.30332C39.6388 2.73701 40.2509 2.15084 40.9967 1.68289C41.601 1.30536 42.3898 0.833439 43.1249 0.552274C44.0972 0.1807 44.5579 0.208518 45.4766 0.262168L45.6474 0.27111C47.3607 0.371455 49.1384 0.32476 50.8575 0.281045C51.7205 0.258194 52.5796 0.235343 53.4347 0.230376C53.6651 0.230376 54.0156 0.185667 54.3836 0.138972C55.6078 -0.0140291 56.994 -0.188888 57.7818 0.503592C58.1118 0.792705 58.2924 1.19806 58.3031 1.67594C58.311 2.05248 58.1567 2.33464 58.0435 2.54129C58.0064 2.60686 57.9527 2.7082 57.9458 2.74297C57.9488 2.73205 57.9849 2.78768 58.0103 2.82742C58.1362 3.01718 58.3686 3.37088 58.2748 3.89843C58.2397 4.10111 58.1811 4.3167 58.1216 4.53528C58.0464 4.81147 57.9693 5.09761 57.9624 5.31419C57.9498 5.69073 57.6335 5.99376 57.2703 5.97289C56.9013 5.95998 56.6104 5.64603 56.6231 5.26849C56.6367 4.89195 56.7392 4.50944 56.831 4.17264C56.8788 3.9948 56.9276 3.82094 56.9569 3.65502C56.9481 3.65502 56.9218 3.62323 56.8993 3.58746C56.791 3.42254 56.6065 3.14535 56.6065 2.73701C56.6065 2.36345 56.7607 2.08328 56.873 1.87862C56.9072 1.81702 56.9589 1.72462 56.9657 1.69084C56.9608 1.58354 56.9267 1.55274 56.9072 1.53685C56.5694 1.23979 55.2544 1.40372 54.5496 1.49313C54.1386 1.5438 53.752 1.59348 53.4435 1.59547C52.5971 1.60043 51.7439 1.62229 50.8907 1.64315C49.1442 1.68886 47.3382 1.73654 45.5722 1.63421L45.3985 1.62328C44.5345 1.57162 44.3022 1.55871 43.5964 1.82894C42.9618 2.07235 42.2101 2.5244 41.7006 2.84431C41.0699 3.23973 40.533 3.75338 39.9648 4.29683C39.8379 4.41804 39.712 4.53925 39.5831 4.65947C39.3479 4.87804 39.0794 5.09661 38.7953 5.32611C38.1237 5.87056 37.3642 6.48555 37.1231 7.09457C37.1065 7.14425 37.085 7.30221 37.0713 7.40753C37.0147 7.84666 36.9424 8.3931 36.5041 8.69016C36.1927 8.90277 35.9145 9.16704 35.6187 9.44523C35.4771 9.57935 35.3317 9.71546 35.1774 9.85257C34.7186 10.2629 34.1924 10.548 33.6838 10.8222C33.3675 10.9931 33.0698 11.1541 32.8033 11.3369C32.7554 11.3707 32.6978 11.4064 32.6373 11.4462C32.5114 11.5276 32.2332 11.7065 32.1346 11.8217C32.1424 11.8992 32.1726 12.0115 32.2117 12.1009C32.3757 12.0214 32.6041 11.924 32.8804 11.9459C33.6633 12.0135 34.0401 12.8937 34.0558 13.4988C34.0743 14.2191 33.677 14.7337 33.3587 15.145C33.0971 15.4868 32.9351 15.7074 32.9487 15.9319C32.9565 16.0511 33.0288 16.3114 33.0932 16.5419C33.3314 17.3933 33.7746 18.978 32.4479 19.5701C32.0965 19.7281 31.7314 19.7082 31.4375 19.6933C31.3126 19.6864 31.1046 19.6764 31.047 19.7023C30.7171 20.051 30.3227 20.3113 29.9166 20.5706L29.7692 20.663C29.5212 20.816 29.2654 20.976 29.1405 21.1488C29.1083 21.1935 29.0819 21.2412 29.0585 21.2859C28.9345 21.5085 28.7256 21.884 28.174 21.9993C27.9827 22.04 27.7943 22.0708 27.6059 22.0996C27.3364 22.1414 27.0807 22.1811 26.8386 22.2566C26.7087 22.2993 26.5711 22.35 26.4334 22.4017C25.9697 22.5745 25.4435 22.7732 24.8871 22.7474C24.5981 22.7355 24.3131 22.7087 24.027 22.6808C23.4989 22.6282 22.9981 22.5805 22.511 22.6481C22.2572 22.6828 22.0258 22.7653 21.7817 22.8537C21.1716 23.0733 20.3369 23.3733 19.4046 22.508C18.9927 22.1265 18.8267 22.049 18.1473 21.9178L16.065 21.5164C15.942 21.4936 15.775 21.5264 15.5818 21.5651C15.3289 21.6168 15.0136 21.6784 14.6719 21.6297C12.9508 21.3724 11.0218 21.7112 8.59689 22.6928C8.49829 22.7325 8.42703 22.7643 8.37431 22.7891C8.39579 22.9779 8.42312 23.2491 8.39091 23.6217C8.53343 23.6416 8.69353 23.6843 8.86047 23.7737C9.81228 24.2834 9.63461 25.256 9.5487 25.724C9.53601 25.7876 9.52528 25.8511 9.51551 25.9127C9.4628 26.2694 9.49501 26.3429 9.65511 26.6917C9.70392 26.798 9.75664 26.9162 9.81326 27.0543C10.3941 28.4681 9.28415 29.1039 8.68865 29.4447C8.46705 29.5719 8.23764 29.701 8.11268 29.8331C7.99944 29.9524 7.89987 30.1372 7.79541 30.3329C7.62945 30.6448 7.44104 30.9975 7.10522 31.2847C6.79088 31.5529 6.41894 31.7536 6.05871 31.9454C5.74144 32.1153 5.44077 32.2762 5.21623 32.464C5.02782 32.6219 4.84527 32.8048 4.65295 32.9985C4.34252 33.3085 4.02524 33.6294 3.62499 33.8976C3.41901 34.0347 3.17203 34.147 2.9104 34.2652C2.69661 34.3606 2.33443 34.5225 2.14992 34.6626L2.15383 36.8096C2.15383 36.8881 2.15578 36.9527 2.15871 37.0023C2.21533 36.9974 2.27586 36.9904 2.32662 36.9835C2.5287 36.9606 2.77959 36.9308 3.06952 36.9308L36.9581 36.9566C38.0573 36.9566 39.2141 36.9884 40.2304 37.3471C40.6755 37.5021 40.9801 37.8538 41.1812 38.0853C41.2281 38.1399 41.2681 38.1896 41.3052 38.2234C41.4018 38.3048 41.5551 38.3674 41.7328 38.441C42.0129 38.5562 42.3615 38.7003 42.6572 39.0043C43.2811 39.6411 43.2713 40.4469 43.2645 41.0927C43.2606 41.2417 43.2606 41.3897 43.2664 41.5328C43.3084 42.3326 43.5261 42.5581 44.0532 43.1055C44.1372 43.1929 44.2251 43.2853 44.3188 43.3847C44.3842 43.4542 44.5287 43.4701 44.761 43.491C45.0412 43.5138 45.3897 43.5417 45.6953 43.7751C46.0291 44.0275 46.2546 44.5888 46.3376 44.8809C46.5455 45.0846 47.2777 45.4711 47.5647 45.6211C47.7639 45.7264 47.9298 45.8158 48.0265 45.8754L48.3672 46.088C49.3346 46.6891 50.3011 47.2922 51.2705 47.8943C51.3993 47.9727 51.533 48.0463 51.6707 48.1188C52.0924 48.3443 52.5698 48.6006 52.9291 49.0567C53.3215 49.5544 53.2942 50.0045 53.259 50.4029C53.3156 50.2936 53.3781 50.1893 53.4513 50.0879C53.5841 49.8982 53.7393 49.7541 53.877 49.626C54.0136 49.4998 54.1073 49.4104 54.1396 49.3388C54.1132 49.2772 54.0527 49.1739 54.0117 49.1034C53.8487 48.8232 53.6271 48.4387 53.7315 47.9857C53.7725 47.8108 53.8789 47.6588 54.0283 47.5634C54.0849 47.5276 54.205 47.4591 54.3631 47.3717C54.5818 47.2495 55.1373 46.9405 55.475 46.71C54.9723 45.5913 55.1392 44.2163 55.2886 42.9843C55.3345 42.6038 55.3784 42.2451 55.3989 41.9222C55.4204 41.5467 55.7337 41.2606 56.1076 41.2834C56.4776 41.3063 56.7588 41.6301 56.7353 42.0057C56.7148 42.3693 56.667 42.7498 56.6182 43.1522C56.4776 44.3166 56.3165 45.637 56.833 46.3911C56.954 46.5669 56.994 46.7895 56.9452 47.0021C56.8417 47.4502 56.3898 47.7879 55.1958 48.4606C55.352 48.7308 55.5395 49.0904 55.4731 49.5167C55.4623 49.5812 55.4487 49.6428 55.4321 49.7015C55.766 49.5793 56.1154 49.464 56.4845 49.3577C57.8775 48.9543 59.3409 48.7745 61.225 48.7745C62.0587 48.7745 62.8006 48.5053 63.5874 48.2211C64.2103 47.9946 64.8546 47.7621 65.576 47.6508C66.1852 47.5555 66.5005 47.7562 66.7728 47.9688C66.8636 48.0403 66.93 48.09 67.0442 48.1357C67.3625 48.2619 67.7325 48.2211 68.1601 48.1754C68.5925 48.1277 69.0836 48.0731 69.5844 48.2042C69.8821 48.2837 70.09 48.5579 70.0861 48.8709C70.0744 50.0571 68.5076 50.5459 67.7549 50.7814L67.0384 51.0099C66.4985 51.1848 65.9567 51.3586 65.41 51.5176C65.1631 51.5881 64.918 51.6587 64.672 51.7223C64.3889 51.7948 64.099 51.9597 63.7944 52.1316C63.481 52.3094 63.1579 52.4922 62.786 52.6174C62.1426 52.83 61.4837 52.9413 60.6471 52.9761C60.4069 52.987 60.1746 53.0943 59.9295 53.2056C59.5674 53.3735 59.1154 53.5801 58.6107 53.4132C58.3949 53.3864 57.5534 53.6775 57.1502 53.8196C56.832 53.9289 56.5577 54.0242 56.3419 54.0759C55.598 54.2528 54.8415 54.3918 54.1103 54.527L53.5968 54.6223C53.1516 54.7058 52.7035 54.7922 52.2613 54.8926L52.2076 54.9085C52.0797 54.9482 51.9021 55.0038 51.7078 55.0038L51.7107 54.9999ZM53.0735 51.6746C53.0569 51.7471 53.0403 51.8196 53.0237 51.8941C53.0032 51.9806 52.9788 52.064 52.9544 52.1455C52.9281 52.2359 52.9066 52.3055 52.8988 52.3651C52.8793 52.5379 52.8773 52.6313 52.8978 52.7247C52.9495 52.9791 52.9388 53.1907 52.8949 53.3645C53.0482 53.3347 53.2024 53.3049 53.3566 53.2751L53.875 53.1808C54.5896 53.0486 55.3296 52.9125 56.0412 52.7436C56.1906 52.7078 56.4483 52.6194 56.7217 52.525C57.7721 52.1604 58.4994 51.9359 59.0295 52.1127C59.0646 52.1058 59.2559 52.0173 59.3828 51.9597C59.7001 51.8137 60.0945 51.6328 60.5924 51.611C61.3021 51.5812 61.8498 51.4908 62.372 51.3169C62.622 51.2345 62.8748 51.0914 63.1442 50.9374C63.5123 50.7298 63.892 50.5142 64.3469 50.3969C64.5793 50.3373 64.8136 50.2707 65.0459 50.2042C65.5789 50.0482 66.11 49.8773 66.6362 49.7064L67.1253 49.5514C66.9388 49.5246 66.7504 49.4779 66.56 49.4014C66.2672 49.2862 66.0836 49.1411 65.9616 49.0457C65.9313 49.0229 65.906 48.999 65.8757 48.9812C65.8737 48.9851 65.8405 48.9851 65.7781 48.9941C65.1845 49.0855 64.6281 49.2862 64.0394 49.4998C63.1794 49.8107 62.293 50.1326 61.2279 50.1326C59.4717 50.1326 58.1235 50.2966 56.8535 50.6642C55.7142 50.992 54.7868 51.3984 54.0166 51.9031C53.7901 52.0521 53.5001 52.0481 53.2776 51.8951C53.1917 51.8365 53.1214 51.76 53.0735 51.6716V51.6746Z\" fill=\"#154973\"/>\n <path d=\"M67.6348 51.8019C67.6348 51.8019 67.6173 51.782 67.6173 51.7303C67.6173 51.6787 67.6348 51.6588 67.6348 51.6588H68.5564C68.5564 51.6588 68.5749 51.6806 68.5749 51.7303C68.5749 51.78 68.5564 51.8019 68.5564 51.8019H68.1932V52.9205C68.1932 52.9205 68.1659 52.9404 68.0976 52.9404C68.0292 52.9404 67.998 52.9205 67.998 52.9205V51.8019H67.6348Z\" fill=\"#154973\"/>\n <path d=\"M69.4282 52.8659C69.4135 52.8748 69.3891 52.8858 69.3471 52.8858C69.3178 52.8858 69.2837 52.8798 69.27 52.8659L68.9889 52.1476C68.9723 52.1088 68.9459 52.0323 68.944 52.0214C68.944 52.0264 68.9371 52.1277 68.9332 52.1565L68.8815 52.9205C68.8815 52.9205 68.8561 52.9404 68.7858 52.9404C68.7155 52.9404 68.6862 52.9205 68.6862 52.9205L68.7839 51.6787C68.7839 51.6787 68.8112 51.6588 68.8776 51.6588C68.9518 51.6588 68.9781 51.6787 68.9781 51.6787L69.3042 52.5162L69.3471 52.6533C69.3481 52.6473 69.3774 52.5559 69.392 52.5162L69.7181 51.6787C69.7181 51.6787 69.7464 51.6588 69.8206 51.6588C69.886 51.6588 69.9124 51.6787 69.9124 51.6787L70.01 52.9205C70.01 52.9205 69.9807 52.9404 69.9104 52.9404C69.8401 52.9404 69.8167 52.9205 69.8167 52.9205L69.763 52.1546L69.7523 52.0194C69.7523 52.0194 69.722 52.1148 69.7093 52.1456L69.4282 52.8659Z\" fill=\"#154973\"/>\n</svg>`;\n\nexport default nysBrandLogoSvg;\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport nysLogo from \"./nys-unav.logo\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-unavheader.scss?inline\";\n\n/**\n * `<nys-unavheader>` is a universal header for New York State websites.\n *\n * Features:\n * - Trust bar indicating official NYS site status, with expandable details\n * - NYS logo linking to the homepage\n * - Search bar with dropdown behavior for mobile and desktop\n * - Language translation dropdown supporting multiple languages\n * - Accessible interactions with ARIA attributes and keyboard handling\n */\n\nexport class NysUnavHeader extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: Boolean }) trustbarVisible = false;\n @property({ type: Boolean }) searchDropdownVisible = false;\n @property({ type: Boolean }) languageVisible = false;\n @property({ type: Boolean }) isSearchFocused = false;\n @property({ type: Boolean }) hideTranslate = false;\n @property({ type: Boolean }) hideSearch = false;\n @property({ type: Array, reflect: true })\n private languages: [string, string][] = [\n [\"English\", \"\"],\n [\"Español\", \"es\"],\n [\"中文\", \"zh\"],\n [\"繁體中文\", \"zh-traditional\"],\n [\"Русский\", \"ru\"],\n [\"יידיש\", \"yi\"],\n [\"বাংলা\", \"bn\"],\n [\"한국어\", \"ko\"],\n [\"Kreyòl Ayisyen\", \"ht\"],\n [\"Italiano\", \"it\"],\n [\"العربية\", \"ar\"],\n [\"Polski\", \"pl\"],\n [\"Français\", \"fr\"],\n [\"اردو\", \"ur\"],\n ];\n\n /**\n * Lifecycle Methods\n * --------------------------------------------------------------------------\n */\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _getNysLogo() {\n if (!nysLogo) return null;\n\n // Parse the SVG string into an actual SVG DOM element\n const parser = new DOMParser();\n const svgDoc = parser.parseFromString(nysLogo, \"image/svg+xml\");\n const svgElement = svgDoc.documentElement;\n\n return svgElement;\n }\n\n private _toggleTrustbar(clickID?: string) {\n this.trustbarVisible = !this.trustbarVisible;\n\n if (this.trustbarVisible) {\n this.languageVisible = false;\n this.searchDropdownVisible = false;\n }\n\n if (clickID === \"no focus\") return;\n\n const shouldMoveFocus =\n clickID === \"nys-unavheader__know--inline\" || !clickID;\n\n if (shouldMoveFocus) {\n const targetId = this.trustbarVisible\n ? \"nys-unavheader__closetrustbar\"\n : \"nys-unavheader__know--inline\";\n\n this.updateComplete.then(() => {\n const target = this.shadowRoot?.getElementById(targetId);\n target?.focus();\n });\n }\n }\n\n private _toggleLanguageList() {\n this.languageVisible = !this.languageVisible;\n if (this.languageVisible) {\n this.trustbarVisible = false;\n this.searchDropdownVisible = false;\n }\n }\n\n private _toggleSearchDropdown() {\n this.searchDropdownVisible = !this.searchDropdownVisible;\n if (this.searchDropdownVisible) {\n this.trustbarVisible = false;\n this.languageVisible = false;\n }\n }\n\n private _handleSearchFocus() {\n this.isSearchFocused = true;\n this.trustbarVisible = false;\n this.languageVisible = false;\n }\n\n private _handleSearchBlur() {\n this.isSearchFocused = false;\n }\n\n private _handleSearchKeyup(e: KeyboardEvent) {\n if (e.key === \"Escape\") {\n this._handleSearchBlur();\n (e.target as HTMLInputElement).blur();\n }\n if (e.key === \"Enter\") {\n // Handle search\n const searchValue = (e.target as HTMLInputElement).value?.trim();\n if (searchValue !== \"\") this._handleSearch(searchValue);\n }\n }\n\n private _handleSearchButton(searchID: string) {\n const searchInput = this.shadowRoot?.getElementById(\n searchID,\n ) as HTMLInputElement;\n const searchValue = searchInput.value?.trim();\n if (searchValue !== \"\") this._handleSearch(searchValue);\n }\n\n private _handleSearch(searchValue: string) {\n window.location.href = `https://search.its.ny.gov/search/search.html?btnG=Search&client=default_frontend&output=xml_no_dtd&proxystylesheet=default_frontend&ulang=en&sort=date:D:L:d1&entqr=3&entqrm=0&wc=200&wc_mc=1&oe=UTF-8&ie=UTF-8&ud=1&site=default_collection&q=${searchValue}+inurl:${window.location.hostname}&site=default_collection`;\n }\n\n render() {\n return html`\n <header class=\"nys-unavheader\">\n <div\n class=\"nys-unavheader__trustbar wrapper\"\n @click=\"${(e: MouseEvent) => {\n const target = e.target as HTMLElement;\n\n // Ignore clicks that originated within a nys-button\n if (target.closest(\"nys-button\")) return;\n\n // Only handle direct wrapper clicks (outside of buttons)\n this._toggleTrustbar(\"no focus\");\n }}\"\n >\n <div class=\"content\">\n <label id=\"nys-unavheader__official\"\n >An official website of New York State</label\n >\n <nys-button\n id=\"nys-unavheader__know\"\n label=\"Here's how you know\"\n variant=\"ghost\"\n size=\"sm\"\n suffixIcon=\"slotted\"\n @nys-click=\"${(e: CustomEvent) => {\n e.preventDefault();\n e.stopPropagation();\n this._toggleTrustbar(\"nys-unavheader__know\");\n }}\"\n >\n <nys-icon\n slot=\"suffix-icon\"\n size=\"12\"\n name=\"${this.trustbarVisible ? \"chevron_up\" : \"chevron_down\"}\"\n ></nys-icon>\n </nys-button>\n </div>\n </div>\n <div\n class=\"nys-unavheader__trustpanel wrapper ${this.trustbarVisible\n ? \"show\"\n : \"hide\"}\"\n >\n <div class=\"nys-unavheader__trustpanel content\">\n <nys-button\n id=\"nys-unavheader__closetrustbar\"\n class=\"nys-unavheader__iconbutton\"\n variant=\"ghost\"\n circle\n icon=\"close\"\n size=\"sm\"\n ariaLabel=\"Close this notice\"\n aria-expanded=\"${this.trustbarVisible}\"\n @nys-click=\"${() =>\n this._toggleTrustbar(\"nys-unavheader__know--inline\")}\"\n ></nys-button>\n <div class=\"nys-unavheader__messagewrapper\">\n <div\n class=\"nys-unavheader__trustcontentmessage\"\n id=\"trust_official\"\n >\n <nys-icon size=\"3xl\" name=\"account_balance_filled\"></nys-icon>\n <label><b>Official websites use ny.gov</b></label>\n <label\n >A <b>ny.gov</b> website belongs to an official New York State\n government organization.</label\n >\n </div>\n <div\n class=\"nys-unavheader__trustcontentmessage\"\n id=\"trust_secure\"\n >\n <nys-icon size=\"3xl\" name=\"lock_filled\"></nys-icon>\n <label><b>Secure ny.gov websites use HTTPS</b></label>\n <label\n >A <b>lock icon</b> or <b>https://</b> means you've safely\n connected to the ny.gov website. Share sensitive information\n only on official, secure websites.</label\n >\n </div>\n </div>\n </div>\n </div>\n <div class=\"nys-unavheader__main wrapper\" id=\"nys-universal-navigation\">\n <div class=\"nys-unavheader__main content\">\n <a\n href=\"https://www.ny.gov\"\n id=\"nys-unavheader__logolink\"\n aria-label=\"Visit the NY.gov homepage\"\n >\n <div class=\"nys-unavheader__logo\">${this._getNysLogo()}</div></a\n >\n <div class=\"nys-unavheader__trustbar inline\">\n <label id=\"nys-unavheader__official\"\n >An official website of New York State</label\n >\n <nys-button\n id=\"nys-unavheader__know--inline\"\n label=\"Here's how you know\"\n aria-controls=\"nys-unavheader__closetrustbar\"\n aria-expanded=\"${this.trustbarVisible}\"\n variant=\"ghost\"\n size=\"sm\"\n suffixIcon=\"slotted\"\n @nys-click=\"${() =>\n this._toggleTrustbar(\"nys-unavheader__know--inline\")}\"\n >\n <nys-icon\n slot=\"suffix-icon\"\n size=\"12\"\n name=\"${this.trustbarVisible ? \"chevron_up\" : \"chevron_down\"}\"\n ></nys-icon>\n </nys-button>\n </div>\n <div class=\"nys-unavheader__spacer\"></div>\n ${!this.hideTranslate\n ? html`<div class=\"nys-unavheader__translatewrapper\">\n <nys-button\n variant=\"ghost\"\n circle\n icon=\"slotted\"\n ariaLabel=\"Translate\"\n aria-expanded=\"${this.languageVisible}\"\n id=\"nys-unavheader__translate--mobile\"\n class=\"nys-unavheader__iconbutton\"\n @nys-click=${this._toggleLanguageList}\n >\n <nys-icon\n slot=\"circle-icon\"\n name=\"language\"\n size=\"16\"\n ></nys-icon>\n </nys-button>\n ${!this.isSearchFocused\n ? html`\n <nys-button\n variant=\"ghost\"\n label=\"Translate\"\n aria-expanded=\"${this.languageVisible}\"\n size=\"sm\"\n prefixIcon=\"language\"\n suffixIcon=${this.languageVisible\n ? \"chevron_up\"\n : \"chevron_down\"}\n id=\"nys-unavheader__translate--desktop\"\n @nys-click=\"${this._toggleLanguageList}\"\n ></nys-button>\n `\n : null}\n <div\n class=\"nys-unavheader__languagelist ${this.languageVisible\n ? \"show\"\n : \"hide\"}\"\n >\n ${this.languages.map(\n ([label, code]) =>\n html`<a\n class=\"nys-unavheader__languagelink\"\n target=\"_self\"\n href=\"https://${code ? code + \".\" : \"\"}${window\n .location.hostname}\"\n >${label}</a\n >`,\n )}\n </div>\n </div>`\n : null}\n ${!this.hideSearch\n ? html`\n <nys-button\n variant=\"ghost\"\n circle\n icon=\"search\"\n ariaLabel=\"Search\"\n aria-expanded=\"${this.searchDropdownVisible}\"\n id=\"nys-unavheader__searchbutton\"\n class=\"nys-unavheader__iconbutton\"\n @nys-click=${this._toggleSearchDropdown}\n >\n <nys-icon\n slot=\"circle-icon\"\n name=\"search\"\n size=\"16\"\n ></nys-icon>\n </nys-button>\n <nys-textinput\n class=\"nys-unavheader__search\"\n id=\"nys-unavheader__searchbar\"\n placeholder=\"Search\"\n type=\"search\"\n @focus=\"${this._handleSearchFocus}\"\n @blur=\"${this._handleSearchBlur}\"\n @keyup=\"${this._handleSearchKeyup}\"\n >\n <nys-button\n id=\"nys-unavheader__searchbar--button\"\n slot=\"endButton\"\n type=\"submit\"\n prefixIcon=\"search\"\n ariaLabel=\"Search\"\n @nys-click=${() => {\n this._handleSearchButton(\"nys-unavheader__searchbar\");\n }}\n ></nys-button>\n </nys-textinput>\n `\n : null}\n </div>\n </div>\n <div\n class=\"nys-unavheader__searchdropdown wrapper ${this\n .searchDropdownVisible\n ? \"show\"\n : \"hide\"}\"\n >\n <div class=\"content\">\n <nys-textinput\n class=\"nys-unavheader__search\"\n id=\"nys-unavheader__searchbardropdown\"\n placeholder=\"Search\"\n type=\"search\"\n @focus=\"${this._handleSearchFocus}\"\n @blur=\"${this._handleSearchBlur}\"\n @keyup=\"${this._handleSearchKeyup}\"\n >\n <nys-button\n id=\"nys-unavheader__searchbardropdown--button\"\n slot=\"endButton\"\n type=\"submit\"\n prefixIcon=\"search\"\n ariaLabel=\"Search\"\n @nys-click=${() => {\n this._handleSearchButton(\"nys-unavheader__searchbardropdown\");\n }}\n ></nys-button\n ></nys-textinput>\n </div>\n </div>\n </header>\n `;\n }\n}\n\nif (!customElements.get(\"nys-unavheader\")) {\n customElements.define(\"nys-unavheader\", NysUnavHeader);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-globalheader.scss?inline\";\n\n/**\n * `<nys-globalheader>` renders a New York State–style global header.\n *\n * Displays an optional application name, agency name, and homepage link.\n * Supports slotted navigation content with automatic active-link detection\n * and a responsive mobile menu.\n *\n * @slot default - Primary navigation list, typically a `<ul>` with links\n * @slot user-actions - Optional user action elements such as login or profile\n *\n * Behavior:\n * - Automatically highlights the best matching link based on the current URL\n * - Duplicates navigation content for desktop and mobile layouts\n * - Provides a toggleable mobile menu when navigation content exists\n */\n\nexport class NysGlobalHeader extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String }) appName = \"\";\n @property({ type: String }) agencyName = \"\";\n @property({ type: String }) homepageLink = \"\";\n @state() private isMobileMenuOpen = false;\n @state() private hasLinkContent = false;\n\n /**\n * Lifecycle Methods\n * --------------------------------------------------------------------------\n */\n\n firstUpdated() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n slot?.addEventListener(\"slotchange\", () => this._handleListSlotChange());\n this._handleListSlotChange(); // run once at startup\n\n this._listenLinkClicks();\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _highlightActiveLink(container: HTMLElement) {\n const links = Array.from(container.querySelectorAll(\"a\"));\n const currentUrl = window.location.pathname.replace(/\\/+$/, \"\") || \"/\";\n\n let bestMatch: { li: HTMLElement | null; length: number } = {\n li: null,\n length: 0,\n };\n\n links.forEach((a) => {\n const linkPath = this._normalizePath(a.getAttribute(\"href\"));\n if (!linkPath) return;\n\n if (linkPath === \"/\" && currentUrl === \"/\") {\n bestMatch = { li: a.closest(\"li\"), length: 1 };\n } else if (\n currentUrl.startsWith(linkPath) &&\n linkPath.length > bestMatch.length\n ) {\n bestMatch = {\n li: a.closest(\"li\"),\n length: linkPath.length,\n };\n }\n });\n\n // Clear all previous actives\n links.forEach((a) => a.closest(\"li\")?.classList.remove(\"active\"));\n\n // Apply best match\n bestMatch.li?.classList.add(\"active\");\n }\n\n // Gets called when the slot content changes and directly appends the slotted elements into the shadow DOM\n private async _handleListSlotChange() {\n const slot = this.shadowRoot?.querySelector(\n 'slot:not([name=\"user-actions\"])',\n ) as HTMLSlotElement | null;\n\n if (!slot) return;\n\n const assignedNodes = slot\n .assignedNodes({ flatten: true })\n .filter((node) => node.nodeType === Node.ELEMENT_NODE) as Element[]; // Filter to elements only\n\n this.hasLinkContent = assignedNodes.length > 0;\n\n await Promise.resolve(); // Wait for current update cycle to complete before modifying reactive state (solves the lit issue \"scheduled an update\")\n\n // Get the containers to append the slotted elements\n const container = this.shadowRoot?.querySelector(\n \".nys-globalheader__content\",\n ) as HTMLElement | null;\n\n const containerMobile = this.shadowRoot?.querySelector(\n \".nys-globalheader__content-mobile\",\n ) as HTMLElement | null;\n\n if (!container || !containerMobile) return;\n\n // Clear existing children in the container\n container.innerHTML = \"\";\n containerMobile.innerHTML = \"\";\n\n // Clone and append slotted elements into the shadow DOM container\n assignedNodes.forEach((node) => {\n if (node instanceof HTMLElement) {\n // need to clone the node because cannot have same node in two places in DOM\n const nodeInline = node.cloneNode(true) as HTMLElement;\n const nodeMobile = node.cloneNode(true) as HTMLElement;\n\n container.appendChild(nodeInline);\n containerMobile.appendChild(nodeMobile);\n }\n });\n\n // Highlight active links AFTER DOM is finalized\n this._highlightActiveLink(container);\n this._highlightActiveLink(containerMobile);\n }\n\n // Normalize paths so that links like \"name\", \"/name/\", and \"/\" match window.location.pathname.\n // This ensures consistent active-link behavior regardless of how hrefs are written.\n private _normalizePath(href: string | null): string | null {\n if (!href) return null;\n\n try {\n const url = new URL(href, window.location.origin);\n return url.pathname.replace(/\\/+$/, \"\") || \"/\";\n } catch {\n return null;\n }\n }\n\n private _toggleMobileMenu() {\n this.isMobileMenuOpen = !this.isMobileMenuOpen;\n }\n\n // Listens for click events on links to mark them active\n private _listenLinkClicks() {\n const containers = this.shadowRoot?.querySelectorAll(\n \".nys-globalheader__content, .nys-globalheader__content-mobile\",\n );\n\n containers?.forEach((container) => {\n container?.addEventListener(\"click\", (event) => {\n const target = event.target as HTMLElement;\n const ahref = target.closest(\"a\");\n\n if (!ahref) return;\n\n // Clear all existing active <li>\n container\n .querySelectorAll(\"li.active\")\n .forEach((li) => li.classList.remove(\"active\"));\n\n // Set active on the clicked link's <li>\n const li = ahref.closest(\"li\");\n if (li) li.classList.add(\"active\");\n });\n });\n }\n\n render() {\n return html`\n <header class=\"nys-globalheader\">\n <div class=\"nys-globalheader__main-container\">\n ${this.hasLinkContent\n ? html` <div class=\"nys-globalheader__button-container\">\n <button\n class=\"nys-globalheader__mobile-menu-button\"\n @click=\"${this._toggleMobileMenu}\"\n >\n <nys-icon\n name=\"${this.isMobileMenuOpen ? \"close\" : \"menu\"}\"\n size=\"32\"\n label=\"${this.isMobileMenuOpen ? \"close\" : \"menu\"} icon\"\n ></nys-icon>\n <span class=\"nys-globalheader__mobile-menu-button-text\"\n >${this.isMobileMenuOpen ? \"CLOSE\" : \"MENU\"}</span\n >\n </button>\n </div>`\n : \"\"}\n ${!this.homepageLink?.trim()\n ? html`\n <div class=\"nys-globalheader__name-container\">\n ${this.appName?.trim().length > 0\n ? html`<div\n class=\"nys-globalheader__appName nys-globalheader__name\"\n >\n ${this.appName}\n </div> `\n : \"\"}\n ${this.agencyName?.trim().length > 0\n ? html`<div\n class=\"nys-globalheader__agencyName nys-globalheader__name ${this.appName?.trim()\n .length > 0\n ? \"\"\n : \"main\"}\"\n >\n ${this.agencyName}\n </div> `\n : \"\"}\n </div>\n `\n : html`<a\n class=\"nys-globalheader__name-container-link\"\n href=${this.homepageLink?.trim()}\n >\n <div class=\"nys-globalheader__name-container\">\n ${this.appName?.trim().length > 0\n ? html`<div\n class=\"nys-globalheader__appName nys-globalheader__name\"\n >\n ${this.appName}\n </div> `\n : \"\"}\n ${this.agencyName?.trim().length > 0\n ? html`<div\n class=\"nys-globalheader__agencyName nys-globalheader__name ${this.appName?.trim()\n .length > 0\n ? \"\"\n : \"main\"}\"\n >\n ${this.agencyName}\n </div> `\n : \"\"}\n </div>\n </a>`}\n <div class=\"nys-globalheader__content\"></div>\n <slot\n style=\"display: none;\"\n @slotchange=\"${this._handleListSlotChange}\"\n ></slot>\n <slot name=\"user-actions\"></slot>\n </div>\n </header>\n <div\n class=\"nys-globalheader__content-mobile ${this.isMobileMenuOpen\n ? \"\"\n : \"close\"}\"\n ></div>\n `;\n }\n}\n\nif (!customElements.get(\"nys-globalheader\")) {\n customElements.define(\"nys-globalheader\", NysGlobalHeader);\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-globalfooter.scss?inline\";\n\n/**\n * `<nys-globalfooter>` renders a New York State–style global footer.\n *\n * Displays an agency name with an optional homepage link and supports\n * structured footer content via slots.\n *\n * @slot default - Footer content such as headings, links, or groups\n *\n * Layout behavior:\n * - Multiple `<h4>` elements trigger a multi-column layout\n * - Single group content renders in a compact layout\n */\n\nexport class NysGlobalFooter extends LitElement {\n static styles = unsafeCSS(styles);\n\n @property({ type: String }) agencyName = \"\";\n @property({ type: String }) homepageLink = \"\";\n @state() private slotHasContent = true;\n\n /**\n * Lifecycle Methods\n * --------------------------------------------------------------------------\n */\n\n firstUpdated() {\n // Check for slot content after rendering\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n slot?.addEventListener(\"slotchange\", () => this._handleSlotChange());\n this._handleSlotChange(); // Initial check\n }\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n // Gets called when the slot content changes and directly appends the slotted elements into the shadow DOM\n private async _handleSlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n if (!slot) return;\n\n const assignedNodes = slot\n ?.assignedNodes({ flatten: true })\n .filter((node) => node.nodeType === Node.ELEMENT_NODE) as Element[]; // Filter to elements only\n\n await Promise.resolve(); // Wait for current update cycle to complete before modifying reactive state (solves the lit issue \"scheduled an update\")\n\n this.slotHasContent = assignedNodes.length > 0;\n\n // Determine layout based on content structure\n const container = this.shadowRoot?.querySelector(\n \".nys-globalfooter__content\",\n );\n const hasMultipleGroups = assignedNodes?.some(\n (node) => node.tagName === \"H4\",\n );\n\n // Toggle layout classes\n if (container) {\n container.classList.toggle(\"columns\", hasMultipleGroups);\n container.classList.toggle(\"small\", !hasMultipleGroups);\n\n container.innerHTML = \"\";\n\n // Clone and append slotted elements into the shadow DOM container\n assignedNodes.forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const cleanNode = node.cloneNode(true);\n\n // Remove <script>, <iframe>, <object>, and any potentially dangerous elements XSS\n const dangerousTags = [\"script\", \"iframe\", \"object\", \"embed\", \"img\"];\n dangerousTags.forEach((tag) => {\n (cleanNode as Element)\n .querySelectorAll(tag)\n .forEach((element) => element.remove());\n });\n container.appendChild(cleanNode);\n node.remove(); // Remove from light DOM to avoid duplication\n }\n });\n\n const spans = container.querySelectorAll(\"span\");\n spans.forEach((span) => {\n const divider = document.createElement(\"nys-divider\");\n divider.classList.add(\"divider\");\n span.insertAdjacentElement(\"afterend\", divider);\n });\n }\n }\n\n render() {\n return html`\n <footer class=\"nys-globalfooter\">\n <div class=\"nys-globalfooter__main-container\">\n ${!this.homepageLink?.trim()\n ? html`<h2 class=\"nys-globalfooter__name\">${this.agencyName}</h2>`\n : html`<a href=${this.homepageLink?.trim()}>\n <h2 class=\"nys-globalfooter__name\">${this.agencyName}</h2>\n </a>`}\n ${this.slotHasContent\n ? html`<div class=\"nys-globalfooter__content\">\n <slot\n style=\"display: hidden\"\n @slotchange=\"${this._handleSlotChange}\"\n ></slot>\n </div>`\n : \"\"}\n </div>\n </footer>\n `;\n }\n}\n\nif (!customElements.get(\"nys-globalfooter\")) {\n customElements.define(\"nys-globalfooter\", NysGlobalFooter);\n}\n","const nysBrandLogoSvg = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"91\" height=\"55\" viewBox=\"0 0 91 55\" fill=\"none\">\n <path d=\"M55.1158 7.50499L58.2905 12.6494V7.5189C58.2905 7.5189 58.6487 7.26356 59.5098 7.26356C60.3708 7.26356 60.7378 7.5189 60.7378 7.5189V16.4327C60.7378 16.4327 60.3942 16.689 59.5215 16.689C58.6487 16.689 58.3295 16.4605 58.3295 16.4605L55.1421 11.3171V16.4337C55.1421 16.4337 54.7848 16.69 53.9111 16.69C53.0374 16.69 52.7065 16.4337 52.7065 16.4337V7.51989C52.7065 7.51989 53.0384 7.26456 53.9248 7.26456C54.8112 7.26456 55.1148 7.50697 55.1148 7.50697L55.1158 7.50499Z\" fill=\"white\"/>\n <path d=\"M67.2209 12.5948H64.9063V14.8709H68.2538C68.2538 14.8709 68.5047 15.1531 68.5047 15.772C68.5047 16.391 68.2538 16.688 68.2538 16.688H62.4589V7.26257H67.9892C67.9892 7.26257 68.2538 7.54572 68.2538 8.17859C68.2538 8.81146 67.9892 9.09362 67.9892 9.09362H64.9063V10.7637H67.2209C67.2209 10.7637 67.4728 11.0598 67.4728 11.6787C67.4728 12.2977 67.2209 12.5948 67.2209 12.5948Z\" fill=\"white\"/>\n <path d=\"M71.4802 16.4327L68.9791 7.5189C68.9791 7.5189 69.3491 7.26356 70.2101 7.26356C71.0711 7.26356 71.4275 7.5189 71.4275 7.5189L72.6839 12.0434C72.7766 12.3802 72.8166 12.6365 72.8557 12.7845C72.8557 12.7428 72.9221 12.3663 73.0011 12.0573L74.0984 7.5189C74.0984 7.5189 74.5211 7.26356 75.1176 7.26356C75.7141 7.26356 76.084 7.5189 76.084 7.5189L77.3004 12.7845C77.3004 12.6623 77.3795 12.3255 77.4586 12.0573L78.756 7.5189C78.7686 7.5189 79.1132 7.26356 79.9596 7.26356C80.806 7.26356 81.1897 7.5189 81.1897 7.5189L78.6496 16.4327C78.6496 16.4327 78.2922 16.6751 77.4859 16.689C76.5468 16.689 76.2158 16.4327 76.2158 16.4327L75.223 12.2987C75.1449 11.9887 75.0902 11.6529 75.0785 11.5844L74.9184 12.2987L73.9266 16.4327C73.9266 16.4327 73.583 16.689 72.7092 16.689C71.8355 16.689 71.4802 16.4327 71.4802 16.4327Z\" fill=\"white\"/>\n <path d=\"M54.3485 19.2195L55.4331 21.1579C55.804 21.8176 56.0022 22.5587 56.0285 22.6521C56.0559 22.5587 56.2404 21.8315 56.624 21.1579L57.735 19.2195C57.735 19.2195 58.0659 18.9771 58.8723 18.9771C59.786 18.9771 60.1697 19.2861 60.1697 19.2861L57.2449 24.4295V28.1453C57.2449 28.1453 56.9013 28.4026 56.0276 28.4026C55.1539 28.4026 54.8239 28.1453 54.8239 28.1453V24.3898L51.8991 19.2871C51.8991 19.2871 52.2965 18.9781 53.2082 18.9781C53.9892 18.9781 54.3465 19.2205 54.3465 19.2205L54.3485 19.2195Z\" fill=\"white\"/>\n <path d=\"M64.6017 28.497C61.4788 28.497 60.117 26.6381 60.117 23.7033C60.117 20.7684 61.4798 18.8827 64.6017 18.8827C67.7237 18.8827 69.0865 20.7674 69.0865 23.7033C69.0865 26.6391 67.711 28.497 64.6017 28.497ZM64.6017 26.6778C65.9235 26.6778 66.6391 25.4667 66.6391 23.7033C66.6391 21.9398 65.9235 20.7138 64.6017 20.7138C63.2799 20.7138 62.5653 21.9398 62.5653 23.7033C62.5653 25.4667 63.2789 26.6778 64.6017 26.6778Z\" fill=\"white\"/>\n <path d=\"M72.844 28.1463C72.844 28.1463 72.4867 28.4036 71.6129 28.4036C70.7392 28.4036 70.4083 28.1463 70.4083 28.1463V19.3546C70.4083 19.3546 71.4011 18.8837 73.2266 18.8837C75.9913 18.8837 77.275 19.9607 77.275 21.8454C77.275 23.7301 75.8722 24.4563 75.7004 24.4712L77.8432 28.0936C77.5796 28.2675 76.8523 28.4026 76.3623 28.4026C75.7267 28.4026 75.225 28.1741 75.225 28.1741L73.6113 25.3068C73.5175 25.1041 73.3858 24.9561 73.1612 24.9561H72.844V28.1463ZM73.5322 20.7148C73.1349 20.7148 72.844 20.7952 72.844 20.7952V23.138H73.5049C74.4694 23.138 74.8413 22.4514 74.8413 21.9269C74.8413 21.2403 74.3786 20.7148 73.5322 20.7148Z\" fill=\"white\"/>\n <path d=\"M87.211 28.0787C87.211 28.0787 86.5901 28.4026 85.5836 28.4026C84.7236 28.4026 84.3663 28.1741 84.3663 28.1741L81.2317 23.8384V28.1463C81.2317 28.1463 80.9007 28.4036 80.027 28.4036C79.1533 28.4036 78.797 28.1463 78.797 28.1463V19.2344C78.797 19.2344 79.1533 18.9781 80.027 18.9781C80.9007 18.9781 81.2317 19.2344 81.2317 19.2344V23.4221L84.2618 19.2205C84.2618 19.2205 84.6182 18.9781 85.4782 18.9781C86.4701 18.9781 86.8684 19.3139 86.8684 19.3139L83.9045 23.4221L87.212 28.0797L87.211 28.0787Z\" fill=\"white\"/>\n <path d=\"M58.9806 31.3374C59.1515 32.1988 58.7014 32.8853 58.1987 33.0602C57.7096 32.7244 56.9296 32.4273 56.1096 32.4273C55.2895 32.4273 54.8122 32.7502 54.8122 33.2082C54.8122 33.6394 55.1958 33.7874 56.214 34.1252L57.4841 34.5415C58.8479 34.9985 59.6933 35.7 59.6933 37.1803C59.6933 38.8911 58.5823 40.2105 55.8831 40.2105C53.9912 40.2105 52.8256 39.5637 52.4029 39.1335C52.2711 38.5007 52.6137 37.7059 53.1057 37.4505C53.5284 37.7744 54.7848 38.3934 56.0676 38.3934C56.8359 38.3934 57.2596 38.1112 57.2596 37.5986C57.2596 37.2359 57.034 37.0064 56.5049 36.8306L54.3758 36.1719C53.2365 35.8073 52.3775 34.9737 52.3775 33.6126C52.3775 31.6732 53.6729 30.5973 56.0676 30.5973C57.5895 30.5973 58.4779 31.0145 58.9806 31.3374Z\" fill=\"white\"/>\n <path d=\"M60.3542 32.5227C60.3542 32.5227 60.1023 32.2534 60.1023 31.6067C60.1023 30.9599 60.3542 30.6906 60.3542 30.6906H67.5382C67.5382 30.6906 67.7901 30.9738 67.7901 31.6067C67.7901 32.2395 67.5382 32.5227 67.5382 32.5227H65.1562V39.8608C65.1562 39.8608 64.8136 40.1161 63.9525 40.1161C63.0915 40.1161 62.7088 39.8608 62.7088 39.8608V32.5227H60.3542Z\" fill=\"white\"/>\n <path d=\"M72.7502 30.9341L76.3232 39.8201C76.3232 39.8201 75.9659 40.1171 75.0658 40.1171C74.2321 40.1171 73.9032 39.8747 73.9032 39.8747L73.254 38.3258H69.8538L69.2446 39.8747C69.2446 39.8747 68.901 40.1171 68.081 40.1171C67.1819 40.1171 66.7972 39.8201 66.7972 39.8201L70.3702 30.9341C70.3702 30.9341 70.7002 30.6916 71.5592 30.6916C72.4183 30.6916 72.7502 30.9341 72.7502 30.9341ZM70.5674 36.5216H72.5394L71.8775 34.9051C71.7457 34.5822 71.5729 33.9226 71.5583 33.855C71.5329 33.9226 71.3337 34.5822 71.2156 34.9051L70.5674 36.5216Z\" fill=\"white\"/>\n <path d=\"M75.5949 32.5227C75.5949 32.5227 75.3431 32.2534 75.3431 31.6067C75.3431 30.9599 75.5949 30.6906 75.5949 30.6906H82.779C82.779 30.6906 83.0298 30.9738 83.0298 31.6067C83.0298 32.2395 82.779 32.5227 82.779 32.5227H80.397V39.8608C80.397 39.8608 80.0543 40.1161 79.1933 40.1161C78.3323 40.1161 77.9496 39.8608 77.9496 39.8608V32.5227H75.5949Z\" fill=\"white\"/>\n <path d=\"M88.9047 36.0228H86.5891V38.299H89.9356C89.9356 38.299 90.1875 38.5821 90.1875 39.2001C90.1875 39.8181 89.9356 40.1161 89.9356 40.1161H84.1408V30.6897H89.6711C89.6711 30.6897 89.9356 30.9728 89.9356 31.6057C89.9356 32.2385 89.6711 32.5217 89.6711 32.5217H86.5882V34.1908H88.9038C88.9038 34.1908 89.1547 34.4879 89.1547 35.1078C89.1547 35.7278 88.9038 36.0219 88.9038 36.0219L88.9047 36.0228Z\" fill=\"white\"/>\n <path d=\"M51.7107 54.9999C51.577 54.9999 51.4335 54.974 51.2939 54.8965C51.085 54.7803 50.9395 54.5876 50.8858 54.3551C50.8233 54.0868 50.8936 53.7868 51.082 53.5116L51.1426 53.4202C51.2041 53.3268 51.2685 53.2354 51.3407 53.1519C51.4218 53.0595 51.5047 52.995 51.5741 52.9493C51.5243 52.6691 51.5418 52.4267 51.5682 52.2061C51.5877 52.0233 51.6346 51.8683 51.6726 51.7451C51.6892 51.6925 51.7058 51.6388 51.7185 51.5812C51.8201 51.145 51.8855 50.7397 51.9206 50.3453C51.9528 49.9916 51.947 49.9846 51.8864 49.9061C51.7 49.6707 51.3847 49.5018 51.0498 49.3229C50.8878 49.2365 50.7286 49.1491 50.5754 49.0557C49.607 48.4536 48.6376 47.8505 47.6701 47.2465L47.3294 47.0339C47.2513 46.9862 47.1147 46.9156 46.9516 46.8282C45.8817 46.2659 45.172 45.8526 45.0539 45.2595C45.0363 45.173 44.9465 44.9644 44.884 44.864C44.8411 44.8611 44.7307 44.8521 44.6546 44.8471C44.3032 44.8183 43.7711 44.7726 43.3484 44.3196C43.2635 44.2272 43.1786 44.1408 43.1005 44.0583C42.5098 43.4443 42.0003 42.9148 41.9329 41.5993C41.9241 41.4275 41.9251 41.2506 41.928 41.0728C41.9339 40.5283 41.927 40.1836 41.7103 39.962C41.6078 39.8567 41.435 39.7862 41.2349 39.7037C40.9889 39.6034 40.7097 39.4881 40.45 39.2686C40.37 39.2 40.2792 39.1007 40.1776 38.9854C40.0712 38.8602 39.9082 38.6724 39.7969 38.6337C38.974 38.3436 37.986 38.3178 36.96 38.3178L3.07245 38.2909C2.85964 38.2909 2.66927 38.3138 2.48477 38.3347C2.07378 38.3823 1.60812 38.437 1.2313 38.0962C0.866192 37.7664 0.815429 37.2607 0.814452 36.8076L0.8125 34.3993C0.8125 34.2722 0.847644 34.147 0.913051 34.0387C1.22544 33.529 1.83265 33.2558 2.3686 33.0144C2.56872 32.924 2.77666 32.8316 2.88795 32.7571C3.17593 32.5623 3.43561 32.302 3.7109 32.0248C3.91688 31.8182 4.13068 31.6046 4.36887 31.4059C4.69786 31.1317 5.07078 30.931 5.43296 30.7372C5.74535 30.5703 6.03821 30.4124 6.24127 30.2395C6.38575 30.1173 6.49216 29.9146 6.61906 29.6792C6.75476 29.4238 6.90998 29.1337 7.15208 28.8804C7.41273 28.6081 7.7427 28.4194 8.03263 28.2535C8.69744 27.871 8.68182 27.8322 8.57736 27.5769C8.52855 27.4577 8.48072 27.3553 8.43972 27.2639C8.24447 26.8357 8.07754 26.4681 8.19078 25.7051C8.2025 25.6306 8.21616 25.5521 8.22983 25.4706C8.25619 25.3325 8.30305 25.0772 8.27571 25.0037C8.27571 25.0037 8.26204 24.9927 8.23471 24.9778C8.21128 24.9659 8.12928 24.9669 8.06875 24.9679C7.87448 24.9659 7.51914 24.9768 7.2497 24.6689C6.98124 24.3629 6.99686 23.9555 7.03982 23.6356C7.08179 23.3127 7.06032 23.1051 7.03982 22.9223C6.95684 22.1453 7.21358 21.7817 8.10097 21.424C10.7524 20.351 12.901 19.9884 14.8613 20.2805C14.9775 20.2974 15.1356 20.2656 15.3182 20.2269C15.5944 20.1702 15.9351 20.1017 16.312 20.1752L18.3952 20.5766C19.2475 20.7415 19.6653 20.9054 20.3047 21.4995C20.6327 21.8046 20.7655 21.7718 21.3327 21.5661C21.6168 21.4638 21.9399 21.3485 22.3323 21.2949C22.9727 21.2084 23.5731 21.2661 24.153 21.3227C24.4136 21.3475 24.6762 21.3734 24.9408 21.3843C25.2356 21.3952 25.6085 21.2561 25.9717 21.121C26.1318 21.0614 26.2889 21.0028 26.4412 20.9541C26.78 20.8468 27.0973 20.7991 27.4038 20.7514C27.5551 20.7266 27.7064 20.7037 27.8607 20.6729C27.8714 20.6531 27.8821 20.6332 27.8939 20.6113C27.9417 20.5249 27.9944 20.4345 28.0598 20.3411C28.3419 19.9497 28.7471 19.7003 29.0722 19.4966L29.2078 19.4122C29.5564 19.1916 29.8629 18.9879 30.105 18.7386C30.5423 18.2796 31.1232 18.3114 31.5108 18.3312C31.6455 18.3392 31.8495 18.3481 31.91 18.3223C32.1678 18.207 31.9413 17.3993 31.8065 16.9165C31.7119 16.5777 31.6299 16.2846 31.6133 16.0183C31.5664 15.2642 31.9764 14.7317 32.3064 14.3045C32.5651 13.9687 32.7213 13.7481 32.7164 13.5355C32.7164 13.4948 32.7027 13.4382 32.6851 13.3845C32.4587 13.4948 32.0955 13.6369 31.6796 13.4421C31.0129 13.1302 30.6468 12.0264 30.8508 11.3985C31.0197 10.8779 31.54 10.5421 31.9198 10.2957L32.0565 10.2053C32.3806 9.98471 32.7242 9.79792 33.0542 9.6181C33.5159 9.36873 33.9513 9.13227 34.2949 8.82726C34.4404 8.69711 34.5761 8.56994 34.7089 8.44376C35.0076 8.1626 35.3161 7.8715 35.6792 7.61319C35.7056 7.5188 35.728 7.34096 35.7437 7.22571C35.7729 7.00714 35.8022 6.78062 35.8803 6.5849C36.2513 5.64304 37.1592 4.90884 37.9597 4.25908C38.2252 4.04448 38.4771 3.84081 38.6743 3.65602C38.7992 3.53878 38.9222 3.42055 39.0452 3.30332C39.6388 2.73701 40.2509 2.15084 40.9967 1.68289C41.601 1.30536 42.3898 0.833439 43.1249 0.552274C44.0972 0.1807 44.5579 0.208518 45.4766 0.262168L45.6474 0.27111C47.3607 0.371455 49.1384 0.32476 50.8575 0.281045C51.7205 0.258194 52.5796 0.235343 53.4347 0.230376C53.6651 0.230376 54.0156 0.185667 54.3836 0.138972C55.6078 -0.0140291 56.994 -0.188888 57.7818 0.503592C58.1118 0.792705 58.2924 1.19806 58.3031 1.67594C58.311 2.05248 58.1567 2.33464 58.0435 2.54129C58.0064 2.60686 57.9527 2.7082 57.9458 2.74297C57.9488 2.73205 57.9849 2.78768 58.0103 2.82742C58.1362 3.01718 58.3686 3.37088 58.2748 3.89843C58.2397 4.10111 58.1811 4.3167 58.1216 4.53528C58.0464 4.81147 57.9693 5.09761 57.9624 5.31419C57.9498 5.69073 57.6335 5.99376 57.2703 5.97289C56.9013 5.95998 56.6104 5.64603 56.6231 5.26849C56.6367 4.89195 56.7392 4.50944 56.831 4.17264C56.8788 3.9948 56.9276 3.82094 56.9569 3.65502C56.9481 3.65502 56.9218 3.62323 56.8993 3.58746C56.791 3.42254 56.6065 3.14535 56.6065 2.73701C56.6065 2.36345 56.7607 2.08328 56.873 1.87862C56.9072 1.81702 56.9589 1.72462 56.9657 1.69084C56.9608 1.58354 56.9267 1.55274 56.9072 1.53685C56.5694 1.23979 55.2544 1.40372 54.5496 1.49313C54.1386 1.5438 53.752 1.59348 53.4435 1.59547C52.5971 1.60043 51.7439 1.62229 50.8907 1.64315C49.1442 1.68886 47.3382 1.73654 45.5722 1.63421L45.3985 1.62328C44.5345 1.57162 44.3022 1.55871 43.5964 1.82894C42.9618 2.07235 42.2101 2.5244 41.7006 2.84431C41.0699 3.23973 40.533 3.75338 39.9648 4.29683C39.8379 4.41804 39.712 4.53925 39.5831 4.65947C39.3479 4.87804 39.0794 5.09661 38.7953 5.32611C38.1237 5.87056 37.3642 6.48555 37.1231 7.09457C37.1065 7.14425 37.085 7.30221 37.0713 7.40753C37.0147 7.84666 36.9424 8.3931 36.5041 8.69016C36.1927 8.90277 35.9145 9.16704 35.6187 9.44523C35.4771 9.57935 35.3317 9.71546 35.1774 9.85257C34.7186 10.2629 34.1924 10.548 33.6838 10.8222C33.3675 10.9931 33.0698 11.1541 32.8033 11.3369C32.7554 11.3707 32.6978 11.4064 32.6373 11.4462C32.5114 11.5276 32.2332 11.7065 32.1346 11.8217C32.1424 11.8992 32.1726 12.0115 32.2117 12.1009C32.3757 12.0214 32.6041 11.924 32.8804 11.9459C33.6633 12.0135 34.0401 12.8937 34.0558 13.4988C34.0743 14.2191 33.677 14.7337 33.3587 15.145C33.0971 15.4868 32.9351 15.7074 32.9487 15.9319C32.9565 16.0511 33.0288 16.3114 33.0932 16.5419C33.3314 17.3933 33.7746 18.978 32.4479 19.5701C32.0965 19.7281 31.7314 19.7082 31.4375 19.6933C31.3126 19.6864 31.1046 19.6764 31.047 19.7023C30.7171 20.051 30.3227 20.3113 29.9166 20.5706L29.7692 20.663C29.5212 20.816 29.2654 20.976 29.1405 21.1488C29.1083 21.1935 29.0819 21.2412 29.0585 21.2859C28.9345 21.5085 28.7256 21.884 28.174 21.9993C27.9827 22.04 27.7943 22.0708 27.6059 22.0996C27.3364 22.1414 27.0807 22.1811 26.8386 22.2566C26.7087 22.2993 26.5711 22.35 26.4334 22.4017C25.9697 22.5745 25.4435 22.7732 24.8871 22.7474C24.5981 22.7355 24.3131 22.7087 24.027 22.6808C23.4989 22.6282 22.9981 22.5805 22.511 22.6481C22.2572 22.6828 22.0258 22.7653 21.7817 22.8537C21.1716 23.0733 20.3369 23.3733 19.4046 22.508C18.9927 22.1265 18.8267 22.049 18.1473 21.9178L16.065 21.5164C15.942 21.4936 15.775 21.5264 15.5818 21.5651C15.3289 21.6168 15.0136 21.6784 14.6719 21.6297C12.9508 21.3724 11.0218 21.7112 8.59689 22.6928C8.49829 22.7325 8.42703 22.7643 8.37431 22.7891C8.39579 22.9779 8.42312 23.2491 8.39091 23.6217C8.53343 23.6416 8.69353 23.6843 8.86047 23.7737C9.81228 24.2834 9.63461 25.256 9.5487 25.724C9.53601 25.7876 9.52528 25.8511 9.51551 25.9127C9.4628 26.2694 9.49501 26.3429 9.65511 26.6917C9.70392 26.798 9.75664 26.9162 9.81326 27.0543C10.3941 28.4681 9.28415 29.1039 8.68865 29.4447C8.46705 29.5719 8.23764 29.701 8.11268 29.8331C7.99944 29.9524 7.89987 30.1372 7.79541 30.3329C7.62945 30.6448 7.44104 30.9975 7.10522 31.2847C6.79088 31.5529 6.41894 31.7536 6.05871 31.9454C5.74144 32.1153 5.44077 32.2762 5.21623 32.464C5.02782 32.6219 4.84527 32.8048 4.65295 32.9985C4.34252 33.3085 4.02524 33.6294 3.62499 33.8976C3.41901 34.0347 3.17203 34.147 2.9104 34.2652C2.69661 34.3606 2.33443 34.5225 2.14992 34.6626L2.15383 36.8096C2.15383 36.8881 2.15578 36.9527 2.15871 37.0023C2.21533 36.9974 2.27586 36.9904 2.32662 36.9835C2.5287 36.9606 2.77959 36.9308 3.06952 36.9308L36.9581 36.9566C38.0573 36.9566 39.2141 36.9884 40.2304 37.3471C40.6755 37.5021 40.9801 37.8538 41.1812 38.0853C41.2281 38.1399 41.2681 38.1896 41.3052 38.2234C41.4018 38.3048 41.5551 38.3674 41.7328 38.441C42.0129 38.5562 42.3615 38.7003 42.6572 39.0043C43.2811 39.6411 43.2713 40.4469 43.2645 41.0927C43.2606 41.2417 43.2606 41.3897 43.2664 41.5328C43.3084 42.3326 43.5261 42.5581 44.0532 43.1055C44.1372 43.1929 44.2251 43.2853 44.3188 43.3847C44.3842 43.4542 44.5287 43.4701 44.761 43.491C45.0412 43.5138 45.3897 43.5417 45.6953 43.7751C46.0291 44.0275 46.2546 44.5888 46.3376 44.8809C46.5455 45.0846 47.2777 45.4711 47.5647 45.6211C47.7639 45.7264 47.9298 45.8158 48.0265 45.8754L48.3672 46.088C49.3346 46.6891 50.3011 47.2922 51.2705 47.8943C51.3993 47.9727 51.533 48.0463 51.6707 48.1188C52.0924 48.3443 52.5698 48.6006 52.9291 49.0567C53.3215 49.5544 53.2942 50.0045 53.259 50.4029C53.3156 50.2936 53.3781 50.1893 53.4513 50.0879C53.5841 49.8982 53.7393 49.7541 53.877 49.626C54.0136 49.4998 54.1073 49.4104 54.1396 49.3388C54.1132 49.2772 54.0527 49.1739 54.0117 49.1034C53.8487 48.8232 53.6271 48.4387 53.7315 47.9857C53.7725 47.8108 53.8789 47.6588 54.0283 47.5634C54.0849 47.5276 54.205 47.4591 54.3631 47.3717C54.5818 47.2495 55.1373 46.9405 55.475 46.71C54.9723 45.5913 55.1392 44.2163 55.2886 42.9843C55.3345 42.6038 55.3784 42.2451 55.3989 41.9222C55.4204 41.5467 55.7337 41.2606 56.1076 41.2834C56.4776 41.3063 56.7588 41.6301 56.7353 42.0057C56.7148 42.3693 56.667 42.7498 56.6182 43.1522C56.4776 44.3166 56.3165 45.637 56.833 46.3911C56.954 46.5669 56.994 46.7895 56.9452 47.0021C56.8417 47.4502 56.3898 47.7879 55.1958 48.4606C55.352 48.7308 55.5395 49.0904 55.4731 49.5167C55.4623 49.5812 55.4487 49.6428 55.4321 49.7015C55.766 49.5793 56.1154 49.464 56.4845 49.3577C57.8775 48.9543 59.3409 48.7745 61.225 48.7745C62.0587 48.7745 62.8006 48.5053 63.5874 48.2211C64.2103 47.9946 64.8546 47.7621 65.576 47.6508C66.1852 47.5555 66.5005 47.7562 66.7728 47.9688C66.8636 48.0403 66.93 48.09 67.0442 48.1357C67.3625 48.2619 67.7325 48.2211 68.1601 48.1754C68.5925 48.1277 69.0836 48.0731 69.5844 48.2042C69.8821 48.2837 70.09 48.5579 70.0861 48.8709C70.0744 50.0571 68.5076 50.5459 67.7549 50.7814L67.0384 51.0099C66.4985 51.1848 65.9567 51.3586 65.41 51.5176C65.1631 51.5881 64.918 51.6587 64.672 51.7223C64.3889 51.7948 64.099 51.9597 63.7944 52.1316C63.481 52.3094 63.1579 52.4922 62.786 52.6174C62.1426 52.83 61.4837 52.9413 60.6471 52.9761C60.4069 52.987 60.1746 53.0943 59.9295 53.2056C59.5674 53.3735 59.1154 53.5801 58.6107 53.4132C58.3949 53.3864 57.5534 53.6775 57.1502 53.8196C56.832 53.9289 56.5577 54.0242 56.3419 54.0759C55.598 54.2528 54.8415 54.3918 54.1103 54.527L53.5968 54.6223C53.1516 54.7058 52.7035 54.7922 52.2613 54.8926L52.2076 54.9085C52.0797 54.9482 51.9021 55.0038 51.7078 55.0038L51.7107 54.9999ZM53.0735 51.6746C53.0569 51.7471 53.0403 51.8196 53.0237 51.8941C53.0032 51.9806 52.9788 52.064 52.9544 52.1455C52.9281 52.2359 52.9066 52.3055 52.8988 52.3651C52.8793 52.5379 52.8773 52.6313 52.8978 52.7247C52.9495 52.9791 52.9388 53.1907 52.8949 53.3645C53.0482 53.3347 53.2024 53.3049 53.3566 53.2751L53.875 53.1808C54.5896 53.0486 55.3296 52.9125 56.0412 52.7436C56.1906 52.7078 56.4483 52.6194 56.7217 52.525C57.7721 52.1604 58.4994 51.9359 59.0295 52.1127C59.0646 52.1058 59.2559 52.0173 59.3828 51.9597C59.7001 51.8137 60.0945 51.6328 60.5924 51.611C61.3021 51.5812 61.8498 51.4908 62.372 51.3169C62.622 51.2345 62.8748 51.0914 63.1442 50.9374C63.5123 50.7298 63.892 50.5142 64.3469 50.3969C64.5793 50.3373 64.8136 50.2707 65.0459 50.2042C65.5789 50.0482 66.11 49.8773 66.6362 49.7064L67.1253 49.5514C66.9388 49.5246 66.7504 49.4779 66.56 49.4014C66.2672 49.2862 66.0836 49.1411 65.9616 49.0457C65.9313 49.0229 65.906 48.999 65.8757 48.9812C65.8737 48.9851 65.8405 48.9851 65.7781 48.9941C65.1845 49.0855 64.6281 49.2862 64.0394 49.4998C63.1794 49.8107 62.293 50.1326 61.2279 50.1326C59.4717 50.1326 58.1235 50.2966 56.8535 50.6642C55.7142 50.992 54.7868 51.3984 54.0166 51.9031C53.7901 52.0521 53.5001 52.0481 53.2776 51.8951C53.1917 51.8365 53.1214 51.76 53.0735 51.6716V51.6746Z\" fill=\"white\"/>\n <path d=\"M67.6348 51.8019C67.6348 51.8019 67.6173 51.782 67.6173 51.7303C67.6173 51.6787 67.6348 51.6588 67.6348 51.6588H68.5564C68.5564 51.6588 68.5749 51.6806 68.5749 51.7303C68.5749 51.78 68.5564 51.8019 68.5564 51.8019H68.1932V52.9205C68.1932 52.9205 68.1659 52.9404 68.0976 52.9404C68.0292 52.9404 67.998 52.9205 67.998 52.9205V51.8019H67.6348Z\" fill=\"white\"/>\n <path d=\"M69.4282 52.8659C69.4135 52.8748 69.3891 52.8858 69.3471 52.8858C69.3178 52.8858 69.2837 52.8798 69.27 52.8659L68.9889 52.1476C68.9723 52.1088 68.9459 52.0323 68.944 52.0214C68.944 52.0264 68.9371 52.1277 68.9332 52.1565L68.8815 52.9205C68.8815 52.9205 68.8561 52.9404 68.7858 52.9404C68.7155 52.9404 68.6862 52.9205 68.6862 52.9205L68.7839 51.6787C68.7839 51.6787 68.8112 51.6588 68.8776 51.6588C68.9518 51.6588 68.9781 51.6787 68.9781 51.6787L69.3042 52.5162L69.3471 52.6533C69.3481 52.6473 69.3774 52.5559 69.392 52.5162L69.7181 51.6787C69.7181 51.6787 69.7464 51.6588 69.8206 51.6588C69.886 51.6588 69.9124 51.6787 69.9124 51.6787L70.01 52.9205C70.01 52.9205 69.9807 52.9404 69.9104 52.9404C69.8401 52.9404 69.8167 52.9205 69.8167 52.9205L69.763 52.1546L69.7523 52.0194C69.7523 52.0194 69.722 52.1148 69.7093 52.1456L69.4282 52.8659Z\" fill=\"white\"/>\n</svg>`;\n\nexport default nysBrandLogoSvg;\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport nysLogo from \"./nys-unav.logo\";\n// @ts-ignore: SCSS module imported via bundler as inline\nimport styles from \"./nys-unavfooter.scss?inline\";\n\n/**\n * `<nys-unavfooter>` is a footer component for New York State websites.\n * It displays the official NYS logo linking to ny.gov and a set of primary navigation links.\n *\n * Features:\n * - Renders the NYS logo as an inline SVG linking to https://www.ny.gov\n * - Provides key navigation links\n */\n\nexport class NysUnavFooter extends LitElement {\n static styles = unsafeCSS(styles);\n\n /**\n * Functions\n * --------------------------------------------------------------------------\n */\n\n private _getNysLogo() {\n if (!nysLogo) return null;\n\n // Parse the SVG string into an actual SVG DOM element\n const parser = new DOMParser();\n const svgDoc = parser.parseFromString(nysLogo, \"image/svg+xml\");\n const svgElement = svgDoc.documentElement;\n\n return svgElement;\n }\n\n render() {\n return html`\n <footer class=\"nys-unavfooter\">\n <div class=\"nys-unavfooter__main-container\">\n <div class=\"nys-unavfooter__container_menu\">\n <div class=\"nys-unavfooter__logo\">\n <a\n href=\"https://www.ny.gov\"\n target=\"_blank\"\n id=\"nys-unavheader__logolink\"\n aria-label=\"logo of New York State\"\n >${this._getNysLogo()}</a\n >\n </div>\n <div class=\"nys-unavfooter__content\">\n <ul>\n <li><a href=\"https://www.ny.gov/agencies\">Agencies</a></li>\n <li>\n <a href=\"https://www.ny.gov/mobileapps\">App Directory</a>\n </li>\n <li><a href=\"https://www.ny.gov/counties\">Counties</a></li>\n <li><a href=\"https://www.ny.gov/events\">Events</a></li>\n <li><a href=\"https://www.ny.gov/programs\">Programs</a></li>\n <li><a href=\"https://www.ny.gov/services\">Services</a></li>\n </ul>\n </div>\n </div>\n </div>\n </footer>\n `;\n }\n}\n\nif (!customElements.get(\"nys-unavfooter\")) {\n customElements.define(\"nys-unavfooter\", NysUnavFooter);\n}\n"],"names":["g","f","exports","t","e","s","o","n$3","r","n","S","c","i","h","a","l","p","d","u","b","y","v","_","m","$","x","T","E","A","C","P","V","N","H","I","L","k","M","R","z","H$1","j","B","accordionItemIdCounter","_NysAccordionItem","LitElement","slot","changedProperties","slotHeight","contentId","html","unsafeCSS","styles","NysAccordionItem","__decorateClass","property","query","accordionIdCounter","_NysAccordion","el","event","accordionId","accordion","NysAccordion","alertIdCounter","_NysAlert","ariaRole","ariaLabel","assignedNodes","node","role","ifDefined","NysAlert","state","avatarIdCounter","_NysAvatar","fgIconDark","fgIconLight","fgInitialDark","fgInitialLight","div","computedColor","match","isDark","NysAvatar","_NysBacktotop","screenHeight","pageHeight","classes","NysBacktotop","buttonIdCounter","_NysButton","linkEl","btnEl","form","onClickAttr","options","innerEl","NysButton","_NysBadge","_a","value","attr","suffixAttr","icon","prefixIconName","suffixIconName","NysBadge","checkboxgroupIdCounter","_NysCheckboxgroup","checkbox","firstCheckbox","message","firstCheckboxInput","checkboxes","nodes","element","customEvent","name","selectedValues","NysCheckboxgroup","checkboxIdCounter","_NysCheckbox","wrapper","inputEl","input","validity","checked","NysCheckbox","BUILD","scopeId","contentRef","hostTagName","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","renderingRef","queuePending","createTime","fnName","tagName","XLINK_NS","EMPTY_OBJ","SVG_NS","HTML_NS","isDef","isComplexType","queryNonceMetaTagContent","doc","_b","_c","nodeName","vnodeData","children","child","key","slotName","simple","lastSimple","vNodeChildren","walk","newVNode","classData","vdomFnUtils","vnode","tag","text","Host","isHost","cb","convertToPublic","convertToPrivate","computeMode","elm","modeResolutionChain","parsePropertyValue","propValue","propType","getElement","ref","createEvent","flags","detail","emitEvent","opts","ev","plt","rootAppliedStyles","registerStyle","cssText","allowCS","style","supportsConstructableStylesheets","addStyle","styleContainerNode","cmpMeta","mode","hostElm","getScopeId","appliedStyles","styleElm","nonce","attachStyles","hostRef","endAttachStyles","cmp","setAccessor","memberName","oldValue","newValue","isSvg","isProp","isMemberInElement","ln","classList","oldClasses","parseClassList","newClasses","prop","win","isComplex","xlink","parseClassListRegex","updateElement","oldVnode","newVnode","oldVnodeAttrs","newVnodeAttrs","createElm","oldParentVNode","newParentVNode","childIndex","parentElm","childNode","oldVNode","putBackInOriginalLocation","recursive","oldSlotChildNodes","parentReferenceNode","referenceNode","addVnodes","before","parentVNode","vnodes","startIdx","endIdx","containerElm","removeVnodes","callNodeRefs","updateChildren","oldCh","newCh","oldStartIdx","newStartIdx","idxInOld","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","elmToMove","isSameVnode","patch","leftVNode","rightVNode","oldChildren","newChildren","defaultHolder","updateFallbackSlotVisibility","childNodes","ilen","slotNameAttr","nodeType","relocateNodes","relocateSlotContent","hostContentNodes","relocateNodeData","isNodeLocatedInSlot","relocateNode","nodeToRelocate","vNode","renderVdom","renderFnResults","rootVnode","propName","attribute","relocateData","orgLocationNode","parentNodeRef","insertBeforeNode","refNode","attachToAncestor","ancestorComponent","scheduleUpdate","isInitialLoad","writeTask","dispatchHooks","endSchedule","instance","promise","safeCall","then","updateComponent","endUpdate","endRender","callRender","postUpdateComponent","consoleError","endPostUpdate","method","arg","thenFn","getValue","getHostRef","setValue","newVal","oldVal","areBothNaN","watchMethods","watchMethodName","proxyComponent","Cstr","members","prototype","memberFlags","attrNameToPropName","attrName","_oldValue","initializeComponent","hmrVersionId","endRegisterStyles","fireConnectedCallback","connectedCallback","endConnected","addHostEventListeners","setContentReference","contentRefElm","disconnectedCallback","rmListener","proxyCustomElement","compactMeta","originalConnectedCallback","originalDisconnectedCallback","registerHost","listeners","attachParentListeners","target","getHostListenerTarget","handler","hostListenerProxy","hostListenerOpts","methodName","supportsListenerOptions","hostRefs","eventName","listener","promiseResolve","queueDomReads","queueDomWrites","queueTask","queue","write","nextTick","flush","consume","addDays","date","days","newDate","getDaysOfMonth","padded","firstDayOfWeek","firstOfMonth","getFirstOfMonth","firstDayMonth","lastOfMonth","getLastOfMonth","lastDayOfMonth","lastDayOfWeek","leftPaddingDays","rightPaddingDays","leftPaddingAmount","leftPaddingDay","getPreviousDay","rightPaddingAmount","rightPaddingDay","getNextDay","currentDay","removeTimezoneOffset","getYear","getMonth","getISODateString","getMonths","locale","month","getNextMonth","getNextYear","subDays","getPreviousMonth","getPreviousYear","getWeekDays","index","day","isDateInRange","range","earlyDate","laterDate","isSameDay","date1","date2","wcDatepickerCss","defaultLabels","WcDatepicker","HTMLElement","direction","potentialDate","outOfRange","targetDate","lastDayOfTargetMonth","clampedDay","updatedDate","year","currentMonth","daysOfMonth","calendarRows","row","startDate","endDate","moveFocus","isoValue","showFooter","weekday","calendarRow","rowKey","_d","_e","isCurrent","isOverflowing","isSelected","isInRange","orderedValues","isStart","isEnd","isToday","isDisabled","cellKey","className","Tag","componentIdCounter","_NysDatepicker","datepicker","resolve","yyyyMmDd","innerInput","datePicker","nextBtn","prevBtn","select","dateString","nextFocused","onClick","path","container","dateValue","today","ua","useNative","NysDatepicker","_NysDivider","NysDivider","_NysErrorMessage","NysErrorMessage","validateFileHeader","file","accept","acceptItems","filename","fileExt","acceptItem","_NysFileItem","lastDotIndex","extension","startPart","endPart","NysFileItem","fileinputIdCounter","_NysFileinput","hasInvalidFiles","base","fileNames","files","entry","formData","singleFile","hasErrorFiles","isEmpty","innerButton","existingFile","reader","percentage","innerFileItemMainContainer","filenameToRemove","newFiles","NysFileinput","iconLibrary","_NysIcon","iconSVG","svgElement","NysIcon","_NysLabel","NysLabel","_NysModal","changeProps","prev","innerBtn","isMobile","btn","ariaDescriptions","dismissBtn","modal","knownFocusableElements","focusableElements","slotElements","assigned","actionBtn","firstFocusableEl","lastFocusableEl","active","activeIndex","prevIndex","prevElement","NysModal","_NysPagination","changedProps","clamped","twoBefore","page","buttons","addPageButton","id","addSpacer","lastPage","next","NysPagination","radiogroupIdCounter","_NysRadiogroup","radioButton","firstRadio","radioButtons","radio","checkedRadio","radioBtns","increment","radios","NysRadiogroup","radiobuttonIdCounter","_NysRadiobutton","NysRadiobutton","NysOption","selectIdCounter","_NysSelect","optionElement","original","optionClone","groupClone","option","selectedOption","validityState","selectElement","NysSelect","_NysSkipnav","targetId","targetEl","NysSkipnav","_NysStep","NysStep","_NysStepper","clickedStep","steps","currentIndex","step","clickedIndex","isStep","isSlotActionsContainer","assignedElements","button","newCounterText","selectedIndex","totalSteps","foundCurrent","selectedAssigned","currentAssigned","NysStepper","_NysTable","table","hasThead","hasTbody","caption","rows","thead","tbody","headerRowIndex","headerRow","th","srOnly","ths","label","columnIndex","aText","bText","aNum","bNum","result","cell","link","NysTable","textareaIdCounter","_NysTextarea","textarea","NysTextarea","textinputIdCounter","_NysTextinput","mask","overlay","filled","remaining","digits","digitIndex","foundValidButton","NysTextinput","toggleIdCounter","_NysToggle","NysToggle","tooltipIdCounter","_NysTooltip","tooltip","isPointerInsideTooltip","isPointerInsideRef","isTouched","htmlElement","findInShadows","root","shadowElement","found","deeper","svg","position","refRect","tooltipRect","margin","spaceAvailable","tryOrder","userPosition","pos","bestPosition","maxSpace","top","left","refCenter","overflowLeft","overflowRight","newTooltipRect","arrowOffsetRatio","arrowOffsetPercent","NysTooltip","nysBrandLogoSvg","_NysUnavHeader","nysLogo","clickID","searchValue","searchID","code","NysUnavHeader","_NysGlobalHeader","links","currentUrl","bestMatch","linkPath","containerMobile","nodeInline","nodeMobile","href","ahref","li","NysGlobalHeader","_NysGlobalFooter","hasMultipleGroups","cleanNode","span","divider","NysGlobalFooter","_NysUnavFooter","NysUnavFooter"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,10,18,19,20]}