{"version":3,"file":"PdsIcon.chunk-DQGD59WX.js","sources":["../../../../../node_modules/lit-html/directive.js","../../../../../node_modules/lit-html/directives/unsafe-html.js","../../../../../node_modules/@lit/reactive-element/decorators/state.js","../../../../../packages/icons-web/src/lib/icons/PdsIcon.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.it=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import{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","import { themedefault } from '@principal/design-system-tokens';\nimport { LitElement, PropertyValueMap } from 'lit';\nimport { property, state } from 'lit/decorators.js';\n\nexport const iconSizes = ['xs', 'sm', 'default', 'lg', 'xl', 'xxl'];\n\ntype ArrayValues = T[number];\n\nexport type IconSize = ArrayValues;\n\nexport const validIconColors = [\n themedefault.SemanticBorderIconDefault,\n themedefault.SemanticBorderInvertedDefault,\n themedefault.SemanticBorderDisabled,\n themedefault.SemanticBorderInfo,\n themedefault.SemanticBorderInvertedInfo,\n themedefault.SemanticBorderSuccess,\n themedefault.SemanticBorderInvertedSuccess,\n themedefault.SemanticBorderWarning,\n themedefault.SemanticBorderError,\n themedefault.SemanticBorderInvertedError,\n themedefault.SemanticBorderInteractiveDefault,\n themedefault.SemanticBorderInteractiveStrong,\n themedefault.SemanticBorderInteractiveXstrong,\n themedefault.SemanticBorderInteractiveInvertedStrong,\n themedefault.SemanticBorderInteractiveInvertedXstrong,\n] as const;\n\nexport type ValidIconColor = ArrayValues;\n\n/**\n * A base element.\n */\nexport abstract class PdsIcon extends LitElement {\n /**\n * ICON SIZE\n * xs - 12x12\n * sm - 16x16\n * default - 20x20\n * lg - 24x24\n * xl - 32x32\n * xxl - 40x40\n */\n getSize(size: IconSize): Number {\n switch (size) {\n case 'xs':\n return 12;\n case 'sm':\n return 16;\n case 'lg':\n return 24;\n case 'xl':\n return 32;\n case 'xxl':\n return 40;\n default:\n return 20;\n }\n }\n\n isValidColor(color: ValidIconColor | string): boolean {\n const isValid = validIconColors.includes(color as ValidIconColor);\n\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error(\n 'The color you passed in is not a valid icon color. Refer to PDS border tokens for valid icon colors.',\n );\n }\n\n return isValid;\n }\n\n @property({ type: String })\n size: IconSize = 'default';\n\n @property({ type: String })\n color?: ValidIconColor;\n\n @state()\n icon: string;\n\n updated(\n changedProperties: PropertyValueMap | Map,\n ): void {\n // We need to convert changedProperties to an Object\n // because size is always a property of a map and will\n // always return true otherwise\n const changedPropertiesObject = Object.fromEntries(changedProperties);\n\n if (changedPropertiesObject['size'] || changedPropertiesObject['color']) {\n this.setIconAttributes();\n }\n }\n\n setIconAttributes() {\n let iconWithCustomAttributes = this.icon\n .replace(/ width=\"\\d*\"/, ` width=\"${this.getSize(this.size).toString()}\"`)\n .replace(\n / height=\"\\d*\"/,\n ` height=\"${this.getSize(this.size).toString()}\"`,\n )\n .replace(/>/, `display=\"block\"\\naria-hidden=\"true\"\\n>`);\n\n if (this.color && this.isValidColor(this.color)) {\n iconWithCustomAttributes = iconWithCustomAttributes.replace(\n / stroke=\".*?\"/g,\n ` stroke=\"${this.color}\"`,\n );\n }\n\n return iconWithCustomAttributes;\n }\n}\n"],"names":["t","e","i","r","s","o","n","validIconColors","themedefault.SemanticBorderIconDefault","themedefault.SemanticBorderInvertedDefault","themedefault.SemanticBorderDisabled","themedefault.SemanticBorderInfo","themedefault.SemanticBorderInvertedInfo","themedefault.SemanticBorderSuccess","themedefault.SemanticBorderInvertedSuccess","themedefault.SemanticBorderWarning","themedefault.SemanticBorderError","themedefault.SemanticBorderInvertedError","themedefault.SemanticBorderInteractiveDefault","themedefault.SemanticBorderInteractiveStrong","themedefault.SemanticBorderInteractiveXstrong","themedefault.SemanticBorderInteractiveInvertedStrong","themedefault.SemanticBorderInteractiveInvertedXstrong","PdsIcon","LitElement","size","color","isValid","changedProperties","changedPropertiesObject","iconWithCustomAttributes","__decorateClass","property","state"],"mappings":";;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,MAAMA,IAAE,EAAa,OAAM,EAAkD,GAAEC,IAAE,CAAAD,MAAG,IAAIC,OAAK,EAAC,iBAAgBD,GAAE,QAAOC,EAAC;AAAG,MAAMC,EAAC;AAAA,EAAC,YAAY,GAAE;AAAA,EAAE;AAAA,EAAA,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAE,GAAEA,GAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAK,GAAE,KAAK,OAAKA;AAAA,EAAC;AAAA,EAAC,KAAK,GAAE,GAAE;AAAC,WAAO,KAAK,OAAO,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO,GAAE,GAAE;AAAC,WAAO,KAAK,OAAO,GAAG,CAAC;AAAA,EAAC;AAAC;ACJ3S;AAAA;AAAA;AAAA;AAAA;AAIG,MAAMD,UAAUE,EAAC;AAAA,EAAC,YAAYD,GAAE;AAAC,QAAG,MAAMA,CAAC,GAAE,KAAK,KAAGF,GAAEE,EAAE,SAAOE,EAAE,MAAM,OAAM,MAAM,KAAK,YAAY,gBAAc,uCAAuC;AAAA,EAAC;AAAA,EAAC,OAAOD,GAAE;AAAC,QAAGA,MAAIH,KAASG,KAAN,KAAQ,QAAO,KAAK,KAAG,QAAO,KAAK,KAAGA;AAAE,QAAGA,MAAID,EAAE,QAAOC;AAAE,QAAa,OAAOA,KAAjB,SAAmB,OAAM,MAAM,KAAK,YAAY,gBAAc,mCAAmC;AAAE,QAAGA,MAAI,KAAK,GAAG,QAAO,KAAK;AAAG,SAAK,KAAGA;AAAE,UAAMC,IAAE,CAACD,CAAC;AAAE,WAAOC,EAAE,MAAIA,GAAE,KAAK,KAAG,EAAC,YAAW,KAAK,YAAY,YAAW,SAAQA,GAAE,QAAO,CAAA,EAAE;AAAA,EAAC;AAAC;AAACH,EAAE,gBAAc,cAAaA,EAAE,aAAW;AAAO,MAACI,IAAEC,EAAEL,CAAC;ACJnhB;AAAA;AAAA;AAAA;AAAA;AAIG,SAASE,EAAE,GAAE;AAAC,SAAOH,EAAE,EAAC,GAAG,GAAE,OAAM,IAAG,WAAU,GAAE,CAAC;AAAC;;;;;;ACKhD,MAAMO,IAAkB;AAAA,EAC7BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AACF;AAOO,MAAeC,UAAgBC,EAAW;AAAA,EAA1C,cAAA;AAAA,UAAA,GAAA,SAAA,GAyCY,KAAA,OAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA/BjB,QAAQC,GAAwB;AAC9B,YAAQA,GAAM;AAAA,MACZ,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT;AACS,eAAA;AAAA,IAAA;AAAA,EACX;AAAA,EAGF,aAAaC,GAAyC;AAC9C,UAAAC,IAAUpB,EAAgB,SAASmB,CAAuB;AAEhE,WAAKC,KAEK,QAAA;AAAA,MACN;AAAA,IACF,GAGKA;AAAA,EAAA;AAAA,EAYT,QACEC,GACM;AAIA,UAAAC,IAA0B,OAAO,YAAYD,CAAiB;AAEpE,KAAIC,EAAwB,QAAWA,EAAwB,UAC7D,KAAK,kBAAkB;AAAA,EACzB;AAAA,EAGF,oBAAoB;AAClB,QAAIC,IAA2B,KAAK,KACjC,QAAQ,gBAAgB,WAAW,KAAK,QAAQ,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EACxE;AAAA,MACC;AAAA,MACA,YAAY,KAAK,QAAQ,KAAK,IAAI,EAAE,UAAU;AAAA,IAAA,EAE/C,QAAQ,KAAK;AAAA;AAAA,EAAwC;AAExD,WAAI,KAAK,SAAS,KAAK,aAAa,KAAK,KAAK,MAC5CA,IAA2BA,EAAyB;AAAA,MAClD;AAAA,MACA,YAAY,KAAK,KAAK;AAAA,IACxB,IAGKA;AAAA,EAAA;AAEX;AAvCEC,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GAxCNT,EAyCpB,WAAA,MAAA;AAGAQ,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GA3CNT,EA4CpB,WAAA,OAAA;AAGAQ,EAAA;AAAA,EADCE,EAAM;AAAA,GA9CaV,EA+CpB,WAAA,MAAA;","x_google_ignoreList":[0,1,2]}