@descope/web-components-ui 3.15.2 → 3.16.1

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.
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[461,2294,4292,4551],{53557(t,e,n){n.r(e),n.d(e,{AvatarClass:()=>h,componentName:()=>a});var o=n(88961),r=n(72270),i=n(63200),s=n(25964);const a=(0,s.xE)("avatar");class l extends((0,r.qu)({componentName:a,baseSelector:":host > .wrapper"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="wrapper">\n <vaadin-avatar></vaadin-avatar>\n <div class="editableBadge">\n <vaadin-icon icon="vaadin:pencil"></vaadin-icon>\n </div>\n </div>\n\t\t',(0,s.fz)("\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n .editableBadge {\n border: 1px solid;\n border-radius: 100%;\n height: fit-content;\n width: 25%;\n height: 25%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5%;\n box-sizing: border-box;\n position: absolute;\n bottom: 0;\n inset-inline-end: 0;\n }\n\n vaadin-icon {\n color: currentcolor;\n }\n\n vaadin-avatar {\n width: 100%;\n height: 100%;\n margin: 0;\n border: none\n }\n\n .wrapper {\n display: inline-flex;\n position: relative;\n width: 100%;\n height: 100%;\n }\n ",this),this.avatarComponent=this.shadowRoot.querySelector("vaadin-avatar"),(0,s.EA)(this,this.avatarComponent,{includeAttrs:["display-name","img","abbr"],mapAttrs:{"display-name":"name"}});const t=this.shadowRoot.querySelector(".editableBadge");(0,s.mx)(this,()=>{t.style.display=this.isEditable?"":"none"},{includeAttrs:["editable"]})}get isEditable(){return"true"===this.getAttribute("editable")}}const{host:d,editableBadge:c,avatar:p}={host:{selector:()=>":host"},editableBadge:{selector:"> .editableBadge"},avatar:{selector:"vaadin-avatar"}},h=(0,i.Zz)((0,o.RF)({mappings:{hostWidth:[{...d,property:"width"},{...d,property:"min-width"}],hostHeight:{...d,property:"height"},cursor:[p,d],hostDirection:{...d,property:"direction"},avatarTextColor:{...p,property:"color"},avatarBackgroundColor:{...p,property:"background-color"},editableIconColor:{...c,property:"color"},editableBorderColor:{...c,property:"border-color"},editableBackgroundColor:{...c,property:"background-color"}}}),o.VO,o.tQ)(l);n(87133),n(95260),n(37182),customElements.define(a,h)},19624(t,e,n){n.d(e,{J:()=>m,T:()=>l});var o=n(63200),r=n(25964),i=n(88961),s=n(98538),a=n(10767);const l=(0,r.xE)("button"),{host:d,label:c,slottedIcon:p}={host:{selector:()=>":host"},label:{selector:"::part(label)"},slottedIcon:{selector:()=>"::slotted(descope-icon)"}};let h;const m=(0,o.Zz)((0,i.DM)({triggers:[{attr:"full-width",value:"true"}]}),(0,i.RF)({mappings:{hostWidth:{property:"width"},hostMaxWidth:{...d,property:"max-width"},hostHeight:{property:"height"},hostDirection:{...d,property:"direction"},fontSize:{},fontFamily:{},fontWeight:{},cursor:{},backgroundColor:{},outlineOffset:{},outlineColor:{},outlineStyle:{},outlineWidth:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-right",fallback:"0.875em"},{property:"padding-left",fallback:"0.875em"}],labelTextColor:{property:"color"},iconColor:{selector:()=>"::slotted(*)",property:s.S.cssVarList.fill},labelTextDecoration:{...c,property:"text-decoration"},labelSpacing:{...c,property:"gap"},textAlign:{...c,property:"justify-content",fallback:"center"},iconSize:[{...p,property:"width"},{...p,property:"height"}]}}),a.G,i.VO,i.tQ)((0,i.tz)({slots:["","prefix","label","suffix"],wrappedEleName:"vaadin-button",style:()=>`\n\t\t\t\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n\n\t\t\t\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t\t\t${h}\n\t\t\tvaadin-button::part(label) { pointer-events: none; }\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${m.cssVarList.outlineWidth}) + var(${m.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width="true"]) {\n width: var(${m.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${m.cssVarList.hostHeight}) - var(${m.cssVarList.outlineWidth}) - var(${m.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square="true"]:not([full-width="true"]) {\n\t\t\t\twidth: calc(var(${m.cssVarList.hostWidth}) - var(${m.cssVarList.outlineWidth}) - var(${m.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,excludeAttrsSync:["tabindex","class","style"],componentName:l})),{color:u,fontSize:g}=m.cssVarList;h=`\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading="true"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${u});\n\t\ttop: calc(50% - (var(${g}) / 2));\n\t\tleft: calc(50% - (var(${g}) / 2));\n\t\tborder-width: calc(var(${g}) / 10);\n\t\twidth: var(${g});\n\t\theight: var(${g});\n\t}\n\t:host([disabled="true"]),\n\t:host([loading="true"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading="true"]) ::part(prefix),\n\t:host([loading="true"]) ::part(label) {\n\t\tvisibility: hidden;\n\t}\n`},10767(t,e,n){n.d(e,{G:()=>o});const o=t=>class extends t{get isLoading(){return"true"===this.getAttribute("loading")}click(){this.isLoading||super.click()}}},30576(t,e,n){n.r(e),n.d(e,{ButtonClass:()=>o.J,componentName:()=>o.T});var o=n(19624);n(83799),customElements.define(o.T,o.J)},98538(t,e,n){n.d(e,{S:()=>l,T:()=>a});var o=n(88961),r=n(25964),i=n(8512),s=n(63200);const a=(0,r.xE)("icon"),l=(0,s.Zz)((0,o.RF)({mappings:{fill:[{},{property:i.q.cssVarList.fill}],height:{selector:()=>":host"},width:{selector:()=>":host"}}}),o.VO,o.tQ)((0,o.tz)({slots:[],wrappedEleName:"descope-image",style:()=>"\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n max-height: 100%;\n }\n ",excludeAttrsSync:["tabindex","class","style","st-height","st-width"],componentName:a}))},8512(t,e,n){n.d(e,{T:()=>l,q:()=>p});var o=n(88961),r=n(72270),i=n(63200),s=n(25964),a=n(18782);const l=(0,s.xE)("image"),d=["src","src-dark"];class c extends((0,r.qu)({componentName:l,baseSelector:"slot"})){static get observedAttributes(){return d}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<slot></slot>\n\t",(0,s.fz)("\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n ",this)}init(){super.init?.(),this.toggleVisibility(this.getSrc)}onThemeChange(){this.renderImage()}toggleVisibility(t){t?this.classList.remove("hidden"):this.classList.add("hidden")}get altText(){return this.getAttribute("alt")||""}get legacySrc(){return this.getAttribute("src")}get themeSrc(){return this.getAttribute(`src-${this.currentThemeName}`)}get getSrc(){return this.themeSrc||this.legacySrc}updateFillColor(t){[t,...t.querySelectorAll("*[fill]")].forEach(t=>{t.setAttribute("fill",`var(${p.cssVarList.fill}, ${t.getAttribute("fill")||"''"})`)})}renderImage(){this.toggleVisibility(this.getSrc),(0,a.m)(this.getSrc,this.altText).then(t=>{this.innerHTML="",t&&(this.updateFillColor(t),this.appendChild(t))})}shouldRender(t){const e=this.getAttribute(t);return this.getSrc===e}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&this.shouldRender(t)&&this.renderImage()}}const p=(0,i.Zz)((0,o.RF)({mappings:{fill:{},height:{selector:()=>":host"},width:{selector:()=>":host"}}}),o.VO,o.tQ)(c)},18782(t,e,n){n.d(e,{m:()=>i});var o=n(25414);const r=t=>{const e=o.A.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:["image"],FORBID_TAGS:["defs"]});return(new DOMParser).parseFromString(e,"image/svg+xml").querySelector("svg")},i=async(t,e)=>{try{let n;if((t=>t.startsWith("data:image/svg+xml;base64,"))(t)){const e=atob(t.slice(26));n=r(e)}else if("svg"===(t=>{const e=t.match(/\.([0-9a-z]+)(?:[\\?#]|$)/i);return e?e[1]:null})(t)){const e=await fetch(t),o=await e.text();n=r(o)}else n=((t,e)=>{const n=document.createElement("img");return n.setAttribute("src",t),n.setAttribute("alt",e),n})(t,e);return n.style.setProperty("max-width","100%"),n.style.setProperty("max-height","100%"),n}catch{return null}}},93895(t,e,n){n.d(e,{O:()=>l,T:()=>a});var o=n(88961),r=n(63200),i=n(25964),s=n(72270);const a=(0,i.xE)("list-item"),l=(0,r.Zz)((0,o.RF)({mappings:{verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],backgroundColor:{},borderColor:{},borderStyle:{},borderWidth:{},borderRadius:{},outline:{},cursor:{},gap:{},maxWidth:{selector:()=>":host"},alignItems:{},flexDirection:{},transition:{}}}),o.VO,o.tQ,t=>class extends t{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n <slot></slot>\n ",(0,i.fz)("\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n ",this)}},o.y)((0,s.qu)({componentName:a,baseSelector:"slot"}))},24542(t,e,n){n.r(e),n.d(e,{ListItemClass:()=>o.O,componentName:()=>o.T});var o=n(93895);customElements.define(o.T,o.O)},7720(t,e,n){n.d(e,{T:()=>l,x:()=>c});var o=n(88961),r=n(63200),i=n(25964),s=n(93895),a=n(72270);const l=(0,i.xE)("list");class d extends((0,a.qu)({componentName:l,baseSelector:".wrapper"})){static get observedAttributes(){return["variant","readonly"]}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="wrapper">\n <slot></slot>\n <slot name="empty-state">\n No item...\n </slot>\n </div>\n\t',(0,i.fz)('\n .wrapper {\n overflow: auto;\n display: grid;\n max-height: 100%;\n width: 100%;\n }\n\n :host {\n display: inline-flex;\n width: 100%;\n }\n slot[name="empty-state"] {\n justify-content: center;\n align-items: center;\n display: flex;\n flex-grow: 1;\n }\n\n :host slot[name="empty-state"] {\n display: none;\n }\n :host([empty]) slot[name="empty-state"] {\n display: flex;\n }\n ::slotted(:not([slot])) {\n width: 100%;\n }\n ',this)}get items(){return this.shadowRoot.querySelector("slot").assignedElements()}#t(){0===this.items.length?this.setAttribute("empty","true"):this.removeAttribute("empty")}get variant(){return this.getAttribute("variant")||"list"}#e(){this.items.forEach(t=>{let e=t;e.localName!==s.O.componentName&&(e=t.querySelector(s.O.componentName));const n="tiles"===this.variant?"tile":"row";e?.setAttribute("variant",n)})}init(){super.init?.(),(0,i.Ge)(this,()=>{this.#t(),this.#e(),this.#n()})}get isReadOnly(){return"true"===this.getAttribute("readonly")}#n(){this.items.forEach(t=>{this.isReadOnly?t.setAttribute("inert",""):t.removeAttribute("inert")})}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),n!==e&&("variant"===t?this.#e():"readonly"===t&&this.#n())}}const c=(0,r.Zz)((0,o.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},maxHeight:{selector:()=>":host"},minHeight:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],hostDirection:{selector:()=>":host",property:"direction"},fontFamily:{},gap:{},backgroundColor:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},boxShadow:{},gridTemplateColumns:{},maxItemsWidth:{selector:()=>"::slotted(:not([slot]))",property:"max-width"},minItemsWidth:{selector:()=>"::slotted(:not([slot]))",property:"min-width"},maxRowItems:{property:"max-row-items"},itemsHorizontalAlign:{selector:()=>"::slotted(*)",property:"justify-self"},emptyStateTextColor:{selector:()=>'slot[name="empty-state"]',property:"color"},emptyStateTextFontFamily:{selector:()=>'slot[name="empty-state"]',property:"font-family"},emptyStateVerticalPadding:[{selector:()=>'slot[name="empty-state"]',property:"padding-top"},{selector:()=>'slot[name="empty-state"]',property:"padding-bottom"}]}}),o.VO,o.tQ)(d)},45400(t,e,n){n.r(e),n.d(e,{ListClass:()=>o.x,componentName:()=>o.T}),n(24542);var o=n(7720);customElements.define(o.T,o.x)},58204(t,e,n){n.r(e),n.d(e,{OutboundAppsClass:()=>g,componentName:()=>p}),n(45400),n(24542),n(63595),n(53557),n(30576);var o=n(63200),r=n(25964),i=n(88961),s=n(72270),a=n(98538),l=n(66434),d=n(7720),c=n(93895);const p=(0,r.xE)("outbound-apps"),h=({name:t,description:e,logo:n,appId:o,isConnected:i},s,a)=>{const l=i?"disconnect":"connect";return`\n <descope-list-item>\n <descope-avatar\n ${n?`img="${n}"`:""}\n ${t?`display-name="${t}" abbr=${(0,r.ie)(t)}`:""}\n size=${a.size}\n ${n?'st-avatar-background-color="none"':""}\n class="app-logo"\n ></descope-avatar>\n\n <div class="content">\n <descope-text\n class="app-title"\n variant="subtitle1"\n mode="primary"\n >${t}</descope-text>\n ${e?`\n <descope-text\n class="app-description"\n variant="body2"\n mode="primary"\n >${e}</descope-text>\n `:""}\n </div>\n <div class="controls">\n <descope-button variant="link" mode="primary" size=${a.size} data-action="${l}" data-outbound-app-id="${o}" data-id="${l}">\n ${i?a.disconnectButtonLabel:a.connectButtonLabel}\n </descope-button>\n </div>\n </descope-list-item>\n`},m=(0,s.qu)({componentName:p,baseSelector:"descope-list"}),{host:u}={host:{selector:()=>":host"}},g=(0,o.Zz)((0,i.RF)({mappings:{hostWidth:{...u,property:"width"},minHeight:{selector:()=>":host"},hostDirection:[{...u,property:"direction"},{selector:"descope-list",property:"direction"},{selector:"descope-list-item",property:"direction"}],iconColor:{selector:()=>" descope-icon",property:a.S.cssVarList.fill},errorIconColor:{selector:()=>" descope-icon.error-icon",property:a.S.cssVarList.fill},fontSize:{selector:l.s.componentName,property:l.s.cssVarList.fontSize},appLogoGap:{selector:()=>" .app-logo",property:"margin-inline-end"},contentGap:{selector:()=>" .content",property:"gap"},itemsTextAlign:{selector:l.s.componentName,property:l.s.cssVarList.textAlign},itemCursor:{selector:c.O.componentName,property:c.O.cssVarList.cursor},itemOutline:{selector:c.O.componentName,property:c.O.cssVarList.outline},itemBorderColor:{selector:c.O.componentName,property:c.O.cssVarList.borderColor},itemBackgroundColor:{selector:c.O.componentName,property:c.O.cssVarList.backgroundColor},listBorderWidth:{selector:()=>d.x.componentName,property:d.x.cssVarList.borderWidth},listBoxShadow:{selector:()=>d.x.componentName,property:d.x.cssVarList.boxShadow},listPadding:[{selector:()=>d.x.componentName,property:d.x.cssVarList.verticalPadding},{selector:()=>d.x.componentName,property:d.x.cssVarList.horizontalPadding}],emptyStateMinHeight:{selector:()=>d.x.componentName,property:d.x.cssVarList.minHeight},emptyStateVerticalPadding:{selector:()=>d.x.componentName,property:d.x.cssVarList.emptyStateVerticalPadding}}}),i.VO,(0,i.t$)({itemRenderer:h,rerenderAttrsList:["size","connect-button-label","disconnect-button-label"]}),i.tQ)(class extends m{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <descope-list>\n <slot name="empty-state" slot="empty-state"></slot>\n </descope-list>\n ',this.appsList=this.shadowRoot.querySelector("descope-list"),(0,r.fz)("\n :host {\n width: 100%;\n }\n .controls {\n display: flex;\n min-width: 8em;\n justify-content: end;\n }\n .content {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n .app-title,\n .app-description {\n display: flex;\n direction: inherit;\n }\n descope-list {\n display: block;\n }\n ",this)}init(){super.init?.(),this.appsList.itemRenderer=h,this.appsList.addEventListener("click",this.onAppsListClick.bind(this))}get readonly(){return"true"===this.getAttribute("readonly")}onAppsListClick(t){if(!this.readonly){const e=t.srcElement.getAttribute("data-outbound-app-id"),n=t.srcElement.getAttribute("data-action");e&&n&&this.dispatchEvent(new CustomEvent(`${n}-clicked`,{bubbles:!0,detail:{id:e,action:n}}))}}get size(){return this.getAttribute("size")||"sm"}get connectButtonLabel(){return this.getAttribute("connect-button-label")||"Connect"}get disconnectButtonLabel(){return this.getAttribute("disconnect-button-label")||"Disconnect"}});customElements.define(p,g)},66434(t,e,n){n.d(e,{T:()=>a,s:()=>c});var o=n(88961),r=n(63200),i=n(25964),s=n(72270);const a=(0,i.xE)("text");class l extends((0,s.qu)({componentName:a,baseSelector:":host > slot"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <slot part="text-wrapper"></slot>\n ',(0,i.fz)("\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n ",this)}get hideWhenEmpty(){return"true"===this.getAttribute("hide-when-empty")}init(){super.init(),(0,i.Ge)(this,()=>{const t=!!this.childNodes.length;this.style.display=!t&&this.hideWhenEmpty?"none":""})}}const{host:d}={host:{selector:()=>":host"}},c=(0,r.Zz)((0,o.RF)({mappings:{hostWidth:{...d,property:"width"},hostDirection:{...d,property:"direction"},fontSize:{},textColor:[{property:"color"}],textLineHeight:{property:"line-height"},textLetterSpacing:{property:"letter-spacing"},textShadow:{},textAlign:{},textTransform:{},fontFamily:{},fontStyle:{},fontWeight:{},borderWidth:{},borderStyle:{},borderColor:{}}}),(0,o.DM)({triggers:[{attr:"full-width",value:"true"}]}),o.VO,o.tQ)(l)},63595(t,e,n){n.r(e),n.d(e,{TextClass:()=>o.s,componentName:()=>o.T});var o=n(66434);customElements.define(o.T,o.s)}}]);
1
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[461,2294,4292,4551],{44666(t,e,n){n.d(e,{E:()=>h,T:()=>a});var o=n(88961),r=n(72270),i=n(63200),s=n(25964);const a=(0,s.xE)("avatar");class l extends((0,r.qu)({componentName:a,baseSelector:":host > .wrapper"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="wrapper">\n <vaadin-avatar></vaadin-avatar>\n <div class="editableBadge">\n <vaadin-icon icon="vaadin:pencil"></vaadin-icon>\n </div>\n </div>\n\t\t',(0,s.fz)("\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n .editableBadge {\n border: 1px solid;\n border-radius: 100%;\n height: fit-content;\n width: 25%;\n height: 25%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5%;\n box-sizing: border-box;\n position: absolute;\n bottom: 0;\n inset-inline-end: 0;\n }\n\n vaadin-icon {\n color: currentcolor;\n }\n\n vaadin-avatar {\n width: 100%;\n height: 100%;\n margin: 0;\n border: none\n }\n\n .wrapper {\n display: inline-flex;\n position: relative;\n width: 100%;\n height: 100%;\n }\n ",this),this.avatarComponent=this.shadowRoot.querySelector("vaadin-avatar"),(0,s.EA)(this,this.avatarComponent,{includeAttrs:["display-name","img","abbr"],mapAttrs:{"display-name":"name"}});const t=this.shadowRoot.querySelector(".editableBadge");(0,s.mx)(this,()=>{t.style.display=this.isEditable?"":"none"},{includeAttrs:["editable"]})}get isEditable(){return"true"===this.getAttribute("editable")}}const{host:d,editableBadge:c,avatar:p}={host:{selector:()=>":host"},editableBadge:{selector:"> .editableBadge"},avatar:{selector:"vaadin-avatar"}},h=(0,i.Zz)((0,o.RF)({mappings:{hostWidth:[{...d,property:"width"},{...d,property:"min-width"}],hostHeight:{...d,property:"height"},cursor:[p,d],hostDirection:{...d,property:"direction"},avatarTextColor:{...p,property:"color"},avatarBackgroundColor:{...p,property:"background-color"},editableIconColor:{...c,property:"color"},editableBorderColor:{...c,property:"border-color"},editableBackgroundColor:{...c,property:"background-color"}}}),o.VO,o.tQ)(l)},64309(t,e,n){n.r(e),n.d(e,{AvatarClass:()=>o.E,componentName:()=>o.T});var o=n(44666);n(87133),n(95260),n(37182),customElements.define(o.T,o.E)},19624(t,e,n){n.d(e,{J:()=>m,T:()=>l});var o=n(63200),r=n(25964),i=n(88961),s=n(98538),a=n(10767);const l=(0,r.xE)("button"),{host:d,label:c,slottedIcon:p}={host:{selector:()=>":host"},label:{selector:"::part(label)"},slottedIcon:{selector:()=>"::slotted(descope-icon)"}};let h;const m=(0,o.Zz)((0,i.DM)({triggers:[{attr:"full-width",value:"true"}]}),(0,i.RF)({mappings:{hostWidth:{property:"width"},hostMaxWidth:{...d,property:"max-width"},hostHeight:{property:"height"},hostDirection:{...d,property:"direction"},fontSize:{},fontFamily:{},fontWeight:{},cursor:{},backgroundColor:{},outlineOffset:{},outlineColor:{},outlineStyle:{},outlineWidth:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-right",fallback:"0.875em"},{property:"padding-left",fallback:"0.875em"}],labelTextColor:{property:"color"},iconColor:{selector:()=>"::slotted(*)",property:s.S.cssVarList.fill},labelTextDecoration:{...c,property:"text-decoration"},labelSpacing:{...c,property:"gap"},textAlign:{...c,property:"justify-content",fallback:"center"},iconSize:[{...p,property:"width"},{...p,property:"height"}]}}),a.G,i.VO,i.tQ)((0,i.tz)({slots:["","prefix","label","suffix"],wrappedEleName:"vaadin-button",style:()=>`\n\t\t\t\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n\n\t\t\t\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t\t\t${h}\n\t\t\tvaadin-button::part(label) { pointer-events: none; }\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${m.cssVarList.outlineWidth}) + var(${m.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width="true"]) {\n width: var(${m.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${m.cssVarList.hostHeight}) - var(${m.cssVarList.outlineWidth}) - var(${m.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square="true"]:not([full-width="true"]) {\n\t\t\t\twidth: calc(var(${m.cssVarList.hostWidth}) - var(${m.cssVarList.outlineWidth}) - var(${m.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,excludeAttrsSync:["tabindex","class","style"],componentName:l})),{color:u,fontSize:g}=m.cssVarList;h=`\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading="true"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${u});\n\t\ttop: calc(50% - (var(${g}) / 2));\n\t\tleft: calc(50% - (var(${g}) / 2));\n\t\tborder-width: calc(var(${g}) / 10);\n\t\twidth: var(${g});\n\t\theight: var(${g});\n\t}\n\t:host([disabled="true"]),\n\t:host([loading="true"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading="true"]) ::part(prefix),\n\t:host([loading="true"]) ::part(label) {\n\t\tvisibility: hidden;\n\t}\n`},10767(t,e,n){n.d(e,{G:()=>o});const o=t=>class extends t{get isLoading(){return"true"===this.getAttribute("loading")}click(){this.isLoading||super.click()}}},30576(t,e,n){n.r(e),n.d(e,{ButtonClass:()=>o.J,componentName:()=>o.T});var o=n(19624);n(83799),customElements.define(o.T,o.J)},98538(t,e,n){n.d(e,{S:()=>l,T:()=>a});var o=n(88961),r=n(25964),i=n(8512),s=n(63200);const a=(0,r.xE)("icon"),l=(0,s.Zz)((0,o.RF)({mappings:{fill:[{},{property:i.q.cssVarList.fill}],height:{selector:()=>":host"},width:{selector:()=>":host"}}}),o.VO,o.tQ)((0,o.tz)({slots:[],wrappedEleName:"descope-image",style:()=>"\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n max-height: 100%;\n }\n ",excludeAttrsSync:["tabindex","class","style","st-height","st-width"],componentName:a}))},8512(t,e,n){n.d(e,{T:()=>l,q:()=>p});var o=n(88961),r=n(72270),i=n(63200),s=n(25964),a=n(18782);const l=(0,s.xE)("image"),d=["src","src-dark"];class c extends((0,r.qu)({componentName:l,baseSelector:"slot"})){static get observedAttributes(){return d}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<slot></slot>\n\t",(0,s.fz)("\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n ",this)}init(){super.init?.(),this.toggleVisibility(this.getSrc)}onThemeChange(){this.renderImage()}toggleVisibility(t){t?this.classList.remove("hidden"):this.classList.add("hidden")}get altText(){return this.getAttribute("alt")||""}get legacySrc(){return this.getAttribute("src")}get themeSrc(){return this.getAttribute(`src-${this.currentThemeName}`)}get getSrc(){return this.themeSrc||this.legacySrc}updateFillColor(t){[t,...t.querySelectorAll("*[fill]")].forEach(t=>{t.setAttribute("fill",`var(${p.cssVarList.fill}, ${t.getAttribute("fill")||"''"})`)})}renderImage(){this.toggleVisibility(this.getSrc),(0,a.m)(this.getSrc,this.altText).then(t=>{this.innerHTML="",t&&(this.updateFillColor(t),this.appendChild(t))})}shouldRender(t){const e=this.getAttribute(t);return this.getSrc===e}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&this.shouldRender(t)&&this.renderImage()}}const p=(0,i.Zz)((0,o.RF)({mappings:{fill:{},height:{selector:()=>":host"},width:{selector:()=>":host"}}}),o.VO,o.tQ)(c)},18782(t,e,n){n.d(e,{m:()=>i});var o=n(25414);const r=t=>{const e=o.A.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:["image"],FORBID_TAGS:["defs"]});return(new DOMParser).parseFromString(e,"image/svg+xml").querySelector("svg")},i=async(t,e)=>{try{let n;if((t=>t.startsWith("data:image/svg+xml;base64,"))(t)){const e=atob(t.slice(26));n=r(e)}else if("svg"===(t=>{const e=t.match(/\.([0-9a-z]+)(?:[\\?#]|$)/i);return e?e[1]:null})(t)){const e=await fetch(t),o=await e.text();n=r(o)}else n=((t,e)=>{const n=document.createElement("img");return n.setAttribute("src",t),n.setAttribute("alt",e),n})(t,e);return n.style.setProperty("max-width","100%"),n.style.setProperty("max-height","100%"),n}catch{return null}}},93895(t,e,n){n.d(e,{O:()=>l,T:()=>a});var o=n(88961),r=n(63200),i=n(25964),s=n(72270);const a=(0,i.xE)("list-item"),l=(0,r.Zz)((0,o.RF)({mappings:{verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],backgroundColor:{},borderColor:{},borderStyle:{},borderWidth:{},borderRadius:{},outline:{},cursor:{},gap:{},maxWidth:{selector:()=>":host"},alignItems:{},flexDirection:{},transition:{}}}),o.VO,o.tQ,t=>class extends t{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n <slot></slot>\n ",(0,i.fz)("\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n ",this)}},o.y)((0,s.qu)({componentName:a,baseSelector:"slot"}))},24542(t,e,n){n.r(e),n.d(e,{ListItemClass:()=>o.O,componentName:()=>o.T});var o=n(93895);customElements.define(o.T,o.O)},7720(t,e,n){n.d(e,{T:()=>l,x:()=>c});var o=n(88961),r=n(63200),i=n(25964),s=n(93895),a=n(72270);const l=(0,i.xE)("list");class d extends((0,a.qu)({componentName:l,baseSelector:".wrapper"})){static get observedAttributes(){return["variant","readonly"]}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="wrapper">\n <slot></slot>\n <slot name="empty-state">\n No item...\n </slot>\n </div>\n\t',(0,i.fz)('\n .wrapper {\n overflow: auto;\n display: grid;\n max-height: 100%;\n width: 100%;\n }\n\n :host {\n display: inline-flex;\n width: 100%;\n }\n slot[name="empty-state"] {\n justify-content: center;\n align-items: center;\n display: flex;\n flex-grow: 1;\n }\n\n :host slot[name="empty-state"] {\n display: none;\n }\n :host([empty]) slot[name="empty-state"] {\n display: flex;\n }\n ::slotted(:not([slot])) {\n width: 100%;\n }\n ',this)}get items(){return this.shadowRoot.querySelector("slot").assignedElements()}#t(){0===this.items.length?this.setAttribute("empty","true"):this.removeAttribute("empty")}get variant(){return this.getAttribute("variant")||"list"}#e(){this.items.forEach(t=>{let e=t;e.localName!==s.O.componentName&&(e=t.querySelector(s.O.componentName));const n="tiles"===this.variant?"tile":"row";e?.setAttribute("variant",n)})}init(){super.init?.(),(0,i.Ge)(this,()=>{this.#t(),this.#e(),this.#n()})}get isReadOnly(){return"true"===this.getAttribute("readonly")}#n(){this.items.forEach(t=>{this.isReadOnly?t.setAttribute("inert",""):t.removeAttribute("inert")})}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),n!==e&&("variant"===t?this.#e():"readonly"===t&&this.#n())}}const c=(0,r.Zz)((0,o.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},maxHeight:{selector:()=>":host"},minHeight:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],hostDirection:{selector:()=>":host",property:"direction"},fontFamily:{},gap:{},backgroundColor:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},boxShadow:{},gridTemplateColumns:{},maxItemsWidth:{selector:()=>"::slotted(:not([slot]))",property:"max-width"},minItemsWidth:{selector:()=>"::slotted(:not([slot]))",property:"min-width"},maxRowItems:{property:"max-row-items"},itemsHorizontalAlign:{selector:()=>"::slotted(*)",property:"justify-self"},emptyStateTextColor:{selector:()=>'slot[name="empty-state"]',property:"color"},emptyStateTextFontFamily:{selector:()=>'slot[name="empty-state"]',property:"font-family"},emptyStateVerticalPadding:[{selector:()=>'slot[name="empty-state"]',property:"padding-top"},{selector:()=>'slot[name="empty-state"]',property:"padding-bottom"}]}}),o.VO,o.tQ)(d)},45400(t,e,n){n.r(e),n.d(e,{ListClass:()=>o.x,componentName:()=>o.T}),n(24542);var o=n(7720);customElements.define(o.T,o.x)},58204(t,e,n){n.r(e),n.d(e,{OutboundAppsClass:()=>g,componentName:()=>p}),n(45400),n(24542),n(63595),n(64309),n(30576);var o=n(63200),r=n(25964),i=n(88961),s=n(72270),a=n(98538),l=n(66434),d=n(7720),c=n(93895);const p=(0,r.xE)("outbound-apps"),h=({name:t,description:e,logo:n,appId:o,isConnected:i},s,a)=>{const l=i?"disconnect":"connect";return`\n <descope-list-item>\n <descope-avatar\n ${n?`img="${n}"`:""}\n ${t?`display-name="${t}" abbr=${(0,r.ie)(t)}`:""}\n size=${a.size}\n ${n?'st-avatar-background-color="none"':""}\n class="app-logo"\n ></descope-avatar>\n\n <div class="content">\n <descope-text\n class="app-title"\n variant="subtitle1"\n mode="primary"\n >${t}</descope-text>\n ${e?`\n <descope-text\n class="app-description"\n variant="body2"\n mode="primary"\n >${e}</descope-text>\n `:""}\n </div>\n <div class="controls">\n <descope-button variant="link" mode="primary" size=${a.size} data-action="${l}" data-outbound-app-id="${o}" data-id="${l}">\n ${i?a.disconnectButtonLabel:a.connectButtonLabel}\n </descope-button>\n </div>\n </descope-list-item>\n`},m=(0,s.qu)({componentName:p,baseSelector:"descope-list"}),{host:u}={host:{selector:()=>":host"}},g=(0,o.Zz)((0,i.RF)({mappings:{hostWidth:{...u,property:"width"},minHeight:{selector:()=>":host"},hostDirection:[{...u,property:"direction"},{selector:"descope-list",property:"direction"},{selector:"descope-list-item",property:"direction"}],iconColor:{selector:()=>" descope-icon",property:a.S.cssVarList.fill},errorIconColor:{selector:()=>" descope-icon.error-icon",property:a.S.cssVarList.fill},fontSize:{selector:l.s.componentName,property:l.s.cssVarList.fontSize},appLogoGap:{selector:()=>" .app-logo",property:"margin-inline-end"},contentGap:{selector:()=>" .content",property:"gap"},itemsTextAlign:{selector:l.s.componentName,property:l.s.cssVarList.textAlign},itemCursor:{selector:c.O.componentName,property:c.O.cssVarList.cursor},itemOutline:{selector:c.O.componentName,property:c.O.cssVarList.outline},itemBorderColor:{selector:c.O.componentName,property:c.O.cssVarList.borderColor},itemBackgroundColor:{selector:c.O.componentName,property:c.O.cssVarList.backgroundColor},listBorderWidth:{selector:()=>d.x.componentName,property:d.x.cssVarList.borderWidth},listBoxShadow:{selector:()=>d.x.componentName,property:d.x.cssVarList.boxShadow},listPadding:[{selector:()=>d.x.componentName,property:d.x.cssVarList.verticalPadding},{selector:()=>d.x.componentName,property:d.x.cssVarList.horizontalPadding}],emptyStateMinHeight:{selector:()=>d.x.componentName,property:d.x.cssVarList.minHeight},emptyStateVerticalPadding:{selector:()=>d.x.componentName,property:d.x.cssVarList.emptyStateVerticalPadding}}}),i.VO,(0,i.t$)({itemRenderer:h,rerenderAttrsList:["size","connect-button-label","disconnect-button-label"]}),i.tQ)(class extends m{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <descope-list>\n <slot name="empty-state" slot="empty-state"></slot>\n </descope-list>\n ',this.appsList=this.shadowRoot.querySelector("descope-list"),(0,r.fz)("\n :host {\n width: 100%;\n }\n .controls {\n display: flex;\n min-width: 8em;\n justify-content: end;\n }\n .content {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n .app-title,\n .app-description {\n display: flex;\n direction: inherit;\n }\n descope-list {\n display: block;\n }\n ",this)}init(){super.init?.(),this.appsList.itemRenderer=h,this.appsList.addEventListener("click",this.onAppsListClick.bind(this))}get readonly(){return"true"===this.getAttribute("readonly")}onAppsListClick(t){if(!this.readonly){const e=t.srcElement.getAttribute("data-outbound-app-id"),n=t.srcElement.getAttribute("data-action");e&&n&&this.dispatchEvent(new CustomEvent(`${n}-clicked`,{bubbles:!0,detail:{id:e,action:n}}))}}get size(){return this.getAttribute("size")||"sm"}get connectButtonLabel(){return this.getAttribute("connect-button-label")||"Connect"}get disconnectButtonLabel(){return this.getAttribute("disconnect-button-label")||"Disconnect"}});customElements.define(p,g)},66434(t,e,n){n.d(e,{T:()=>a,s:()=>c});var o=n(88961),r=n(63200),i=n(25964),s=n(72270);const a=(0,i.xE)("text");class l extends((0,s.qu)({componentName:a,baseSelector:":host > slot"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <slot part="text-wrapper"></slot>\n ',(0,i.fz)("\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n ",this)}get hideWhenEmpty(){return"true"===this.getAttribute("hide-when-empty")}init(){super.init(),(0,i.Ge)(this,()=>{const t=!!this.childNodes.length;this.style.display=!t&&this.hideWhenEmpty?"none":""})}}const{host:d}={host:{selector:()=>":host"}},c=(0,r.Zz)((0,o.RF)({mappings:{hostWidth:{...d,property:"width"},hostDirection:{...d,property:"direction"},fontSize:{},textColor:[{property:"color"}],textLineHeight:{property:"line-height"},textLetterSpacing:{property:"letter-spacing"},textShadow:{},textAlign:{},textTransform:{},fontFamily:{},fontStyle:{},fontWeight:{},borderWidth:{},borderStyle:{},borderColor:{}}}),(0,o.DM)({triggers:[{attr:"full-width",value:"true"}]}),o.VO,o.tQ)(l)},63595(t,e,n){n.r(e),n.d(e,{TextClass:()=>o.s,componentName:()=>o.T});var o=n(66434);customElements.define(o.T,o.s)}}]);
2
2
  //# sourceMappingURL=descope-outbound-apps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"descope-outbound-apps.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-avatar/src/component/AvatarClass.js","webpack://@descope/web-components-ui/../components/descope-avatar/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/ImageClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/ListItemClass.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/ListClass.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-outbound-apps/src/component/OutboundAppsClass.js","webpack://@descope/web-components-ui/../components/descope-outbound-apps/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/TextClass.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/index.js"],"sourcesContent":["import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n forwardAttrs,\n getComponentName,\n injectStyle,\n observeAttributes,\n} from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('avatar');\nclass RawAvatar extends createBaseClass({\n componentName,\n baseSelector: ':host > .wrapper',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"wrapper\">\n <vaadin-avatar></vaadin-avatar>\n <div class=\"editableBadge\">\n <vaadin-icon icon=\"vaadin:pencil\"></vaadin-icon>\n </div>\n </div>\n\t\t`;\n\n injectStyle(`\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n .editableBadge {\n border: 1px solid;\n border-radius: 100%;\n height: fit-content;\n width: 25%;\n height: 25%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5%;\n box-sizing: border-box;\n position: absolute;\n bottom: 0;\n inset-inline-end: 0;\n }\n\n vaadin-icon {\n color: currentcolor;\n }\n\n vaadin-avatar {\n width: 100%;\n height: 100%;\n margin: 0;\n border: none\n }\n\n .wrapper {\n display: inline-flex;\n position: relative;\n width: 100%;\n height: 100%;\n }\n `, this);\n\n this.avatarComponent = this.shadowRoot.querySelector('vaadin-avatar');\n\n forwardAttrs(this, this.avatarComponent, {\n includeAttrs: ['display-name', 'img', 'abbr'],\n mapAttrs: { 'display-name': 'name' },\n });\n\n const editableIcon = this.shadowRoot.querySelector('.editableBadge');\n\n observeAttributes(\n this,\n () => {\n editableIcon.style.display = this.isEditable ? '' : 'none';\n },\n { includeAttrs: ['editable'] },\n );\n }\n\n get isEditable() {\n return this.getAttribute('editable') === 'true';\n }\n}\n\nconst { host, editableBadge, avatar } = {\n host: { selector: () => ':host' },\n editableBadge: { selector: '> .editableBadge' },\n avatar: { selector: 'vaadin-avatar' },\n};\n\nexport const AvatarClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [\n { ...host, property: 'width' },\n { ...host, property: 'min-width' },\n ],\n hostHeight: { ...host, property: 'height' },\n cursor: [avatar, host],\n hostDirection: { ...host, property: 'direction' },\n avatarTextColor: { ...avatar, property: 'color' },\n avatarBackgroundColor: { ...avatar, property: 'background-color' },\n editableIconColor: { ...editableBadge, property: 'color' },\n editableBorderColor: { ...editableBadge, property: 'border-color' },\n editableBackgroundColor: {\n ...editableBadge,\n property: 'background-color',\n },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawAvatar);\n","import { componentName, AvatarClass } from './AvatarClass';\nimport '@vaadin/avatar';\nimport '@vaadin/icon';\nimport '@vaadin/icons';\n\ncustomElements.define(componentName, AvatarClass);\n\nexport { AvatarClass, componentName };\n","import { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n stretchMixin,\n} from '@descope-ui/common/components-mixins';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostMaxWidth: { ...host, property: 'max-width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n fontWeight: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(*)`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex', 'class', 'style'],\n componentName,\n }),\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"]) ::part(prefix),\n\t:host([loading=\"true\"]) ::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","import {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { ImageClass } from '@descope-ui/descope-image/class';\nimport { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('icon');\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: [{}, { property: ImageClass.cssVarList.fill }],\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'descope-image',\n style: () => `\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n max-height: 100%;\n }\n `,\n excludeAttrsSync: ['tabindex', 'class', 'style', 'st-height', 'st-width'],\n componentName,\n }),\n);\n"," \nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { createImage } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('image');\n\nconst srcAttrs = ['src', 'src-dark'];\n\nclass RawImage extends createBaseClass({\n componentName,\n baseSelector: 'slot',\n}) {\n static get observedAttributes() {\n return srcAttrs;\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.getSrc);\n }\n\n onThemeChange() {\n this.renderImage();\n }\n\n toggleVisibility(isVisible) {\n if (isVisible) {\n this.classList.remove('hidden');\n } else {\n this.classList.add('hidden');\n }\n }\n\n get altText() {\n return this.getAttribute('alt') || '';\n }\n\n get legacySrc() {\n return this.getAttribute('src');\n }\n\n get themeSrc() {\n return this.getAttribute(`src-${this.currentThemeName}`);\n }\n\n get getSrc() {\n return this.themeSrc || this.legacySrc;\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n \n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${ImageClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`,\n );\n });\n }\n\n renderImage() {\n this.toggleVisibility(this.getSrc);\n\n createImage(this.getSrc, this.altText).then((res) => {\n this.innerHTML = '';\n if (res) {\n this.updateFillColor(res);\n this.appendChild(res);\n }\n });\n }\n\n // render only when src attribute matches current theme\n shouldRender(src) {\n const srcVal = this.getAttribute(src);\n return this.getSrc === srcVal;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (this.shouldRender(attrName)) {\n this.renderImage();\n }\n }\n}\n\nexport const ImageClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawImage);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src, altText) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n ele.setAttribute('alt', altText);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, {\n USE_PROFILES: { svg: true, svgFilters: true },\n // allow image to render\n ADD_TAGS: ['image'],\n // forbid interactiviy via `use` tags (which are sanitized by default)\n FORBID_TAGS: ['defs']\n });\n\n const parser = new DOMParser();\n const ele = parser\n .parseFromString(clean, 'image/svg+xml')\n .querySelector('svg');\n return ele;\n};\n\nexport const createImage = async (src, altText) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src, altText);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n activeableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list-item');\n\nconst customMixin = (superclass) =>\n class ListItemMixinClass extends superclass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot></slot>\n `;\n\n injectStyle(\n `\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n `,\n this,\n );\n }\n };\n\nexport const ListItemClass = compose(\n createStyleMixin({\n mappings: {\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n backgroundColor: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n borderRadius: {},\n outline: {},\n cursor: {},\n gap: {},\n maxWidth: { selector: () => ':host' },\n alignItems: {},\n flexDirection: {},\n transition: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin,\n activeableMixin,\n)(createBaseClass({ componentName, baseSelector: 'slot' }));\n","import { componentName, ListItemClass } from './ListItemClass';\n\ncustomElements.define(componentName, ListItemClass);\n\nexport { ListItemClass, componentName };\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list');\n\nclass RawList extends createBaseClass({\n componentName,\n baseSelector: '.wrapper',\n}) {\n static get observedAttributes() {\n return ['variant', 'readonly'];\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"wrapper\">\n <slot></slot>\n <slot name=\"empty-state\">\n No item...\n </slot>\n </div>\n\t`;\n\n injectStyle(\n `\n .wrapper {\n overflow: auto;\n display: grid;\n max-height: 100%;\n width: 100%;\n }\n\n :host {\n display: inline-flex;\n width: 100%;\n }\n slot[name=\"empty-state\"] {\n justify-content: center;\n align-items: center;\n display: flex;\n flex-grow: 1;\n }\n\n :host slot[name=\"empty-state\"] {\n display: none;\n }\n :host([empty]) slot[name=\"empty-state\"] {\n display: flex;\n }\n ::slotted(:not([slot])) {\n width: 100%;\n }\n `,\n this,\n );\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n #handleEmptyState() {\n if (this.items.length === 0) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n }\n\n get variant() {\n return this.getAttribute('variant') || 'list';\n }\n\n #handleItemsVariant() {\n this.items.forEach((item) => {\n let listItem = item;\n if (listItem.localName !== ListItemClass.componentName) {\n listItem = item.querySelector(ListItemClass.componentName);\n }\n\n const listItemVariant = this.variant === 'tiles' ? 'tile' : 'row';\n listItem?.setAttribute('variant', listItemVariant);\n });\n }\n\n init() {\n super.init?.();\n\n // we want new items to get the size\n observeChildren(this, () => {\n this.#handleEmptyState();\n this.#handleItemsVariant();\n this.#handleReadOnly();\n });\n }\n\n get isReadOnly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n #handleReadOnly() {\n this.items.forEach((item) => {\n if (this.isReadOnly) item.setAttribute('inert', '');\n else item.removeAttribute('inert');\n });\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (newValue === oldValue) return;\n\n if (name === 'variant') {\n this.#handleItemsVariant();\n } else if (name === 'readonly') {\n this.#handleReadOnly();\n }\n }\n}\n\nexport const ListClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n maxHeight: { selector: () => ':host' },\n minHeight: {},\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontFamily: {},\n gap: {},\n\n backgroundColor: {},\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n boxShadow: {},\n gridTemplateColumns: {},\n maxItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'max-width',\n },\n minItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'min-width',\n },\n maxRowItems: {\n property: 'max-row-items',\n },\n itemsHorizontalAlign: {\n selector: () => '::slotted(*)',\n property: 'justify-self',\n },\n emptyStateTextColor: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'color',\n },\n emptyStateTextFontFamily: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'font-family',\n },\n // allow overriding empty state height and padding from parent list components:\n emptyStateVerticalPadding: [\n {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'padding-top',\n },\n {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'padding-bottom',\n },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawList);\n","import '@descope-ui/descope-list-item';\n\nimport { componentName, ListClass } from './ListClass';\n\ncustomElements.define(componentName, ListClass);\n\nexport { ListClass, componentName };\n","import { compose } from '@descope-ui/common/utils';\nimport {\n limitAbbreviation,\n getComponentName,\n injectStyle,\n} from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n createDynamicDataMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { TextClass } from '@descope-ui/descope-text/class';\nimport { ListClass } from '@descope-ui/descope-list/class';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\n\nexport const componentName = getComponentName('outbound-apps');\n\nconst itemRenderer = (\n { name, description, logo, appId, isConnected },\n _,\n ref,\n) => {\n const action = isConnected ? 'disconnect' : 'connect';\n return `\n <descope-list-item>\n <descope-avatar\n ${logo ? `img=\"${logo}\"` : ''}\n ${name ? `display-name=\"${name}\" abbr=${limitAbbreviation(name)}` : ''}\n size=${ref.size}\n ${logo ? 'st-avatar-background-color=\"none\"' : ''}\n class=\"app-logo\"\n ></descope-avatar>\n\n <div class=\"content\">\n <descope-text\n class=\"app-title\"\n variant=\"subtitle1\"\n mode=\"primary\"\n >${name}</descope-text>\n ${\n description\n ? `\n <descope-text\n class=\"app-description\"\n variant=\"body2\"\n mode=\"primary\"\n >${description}</descope-text>\n `\n : ''\n }\n </div>\n <div class=\"controls\">\n <descope-button variant=\"link\" mode=\"primary\" size=${ref.size} data-action=\"${action}\" data-outbound-app-id=\"${appId}\" data-id=\"${action}\">\n ${isConnected ? ref.disconnectButtonLabel : ref.connectButtonLabel}\n </descope-button>\n </div>\n </descope-list-item>\n`;\n};\n\nconst BaseClass = createBaseClass({\n componentName,\n baseSelector: 'descope-list',\n});\n\nclass RawOutboundAppsClass extends BaseClass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <descope-list>\n <slot name=\"empty-state\" slot=\"empty-state\"></slot>\n </descope-list>\n `;\n\n this.appsList = this.shadowRoot.querySelector('descope-list');\n\n injectStyle(\n `\n :host {\n width: 100%;\n }\n .controls {\n display: flex;\n min-width: 8em;\n justify-content: end;\n }\n .content {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n .app-title,\n .app-description {\n display: flex;\n direction: inherit;\n }\n descope-list {\n display: block;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n\n this.appsList.itemRenderer = itemRenderer;\n\n this.appsList.addEventListener('click', this.onAppsListClick.bind(this));\n }\n\n get readonly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n onAppsListClick(e) {\n if (!this.readonly) {\n const id = e.srcElement.getAttribute('data-outbound-app-id');\n const action = e.srcElement.getAttribute('data-action');\n if (id && action) {\n this.dispatchEvent(\n new CustomEvent(`${action}-clicked`, {\n bubbles: true,\n detail: { id, action },\n }),\n );\n }\n }\n }\n\n get size() {\n return this.getAttribute('size') || 'sm';\n }\n\n get connectButtonLabel() {\n return this.getAttribute('connect-button-label') || 'Connect';\n }\n\n get disconnectButtonLabel() {\n return this.getAttribute('disconnect-button-label') || 'Disconnect';\n }\n}\n\nconst { host } = {\n host: { selector: () => ':host' },\n};\n\nexport const OutboundAppsClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n minHeight: { selector: () => ':host' },\n hostDirection: [\n { ...host, property: 'direction' },\n {\n selector: 'descope-list',\n property: 'direction',\n },\n {\n selector: 'descope-list-item',\n property: 'direction',\n },\n ],\n iconColor: {\n selector: () => ' descope-icon',\n property: IconClass.cssVarList.fill,\n },\n errorIconColor: {\n selector: () => ' descope-icon.error-icon',\n property: IconClass.cssVarList.fill,\n },\n fontSize: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontSize,\n },\n appLogoGap: {\n selector: () => ' .app-logo',\n property: 'margin-inline-end',\n },\n contentGap: {\n selector: () => ' .content',\n property: 'gap',\n },\n itemsTextAlign: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.textAlign,\n },\n itemCursor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.cursor,\n },\n itemOutline: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.outline,\n },\n itemBorderColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.borderColor,\n },\n itemBackgroundColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.backgroundColor,\n },\n listBorderWidth: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.borderWidth,\n },\n listBoxShadow: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.boxShadow,\n },\n listPadding: [\n {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.verticalPadding,\n },\n {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.horizontalPadding,\n },\n ],\n emptyStateMinHeight: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.minHeight,\n },\n emptyStateVerticalPadding: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.emptyStateVerticalPadding,\n },\n },\n }),\n draggableMixin,\n createDynamicDataMixin({\n itemRenderer,\n rerenderAttrsList: [\n 'size',\n 'connect-button-label',\n 'disconnect-button-label',\n ],\n }),\n componentNameValidationMixin,\n)(RawOutboundAppsClass);\n","import '@descope-ui/descope-list';\nimport '@descope-ui/descope-list-item';\nimport '@descope-ui/descope-text';\nimport '@descope-ui/descope-avatar';\nimport '@descope-ui/descope-button';\nimport { componentName, OutboundAppsClass } from './OutboundAppsClass';\n\ncustomElements.define(componentName, OutboundAppsClass);\n\nexport { OutboundAppsClass, componentName };\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n stretchMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n injectStyle,\n observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('text');\n\nclass RawText extends createBaseClass({\n componentName,\n baseSelector: ':host > slot',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot part=\"text-wrapper\"></slot>\n `;\n\n injectStyle(\n `\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n `,\n this,\n );\n }\n\n get hideWhenEmpty() {\n return this.getAttribute('hide-when-empty') === 'true';\n }\n\n init() {\n super.init();\n\n observeChildren(this, () => {\n const hasChildren = !!this.childNodes.length;\n this.style.display = !hasChildren && this.hideWhenEmpty ? 'none' : '';\n });\n }\n}\n\nconst { host } = {\n host: { selector: () => ':host' },\n};\n\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n textColor: [{ property: 'color' }],\n textLineHeight: { property: 'line-height' },\n textLetterSpacing: { property: 'letter-spacing' },\n textShadow: {},\n textAlign: {},\n textTransform: {},\n fontFamily: {},\n fontStyle: {},\n fontWeight: {},\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n },\n }),\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawText);\n","import { componentName, TextClass } from './TextClass';\n\ncustomElements.define(componentName, TextClass);\n\nexport { TextClass, componentName };\n"],"names":["componentName","RawAvatar","baseSelector","constructor","super","this","attachShadow","mode","innerHTML","avatarComponent","shadowRoot","querySelector","includeAttrs","mapAttrs","editableIcon","style","display","isEditable","getAttribute","host","editableBadge","avatar","selector","AvatarClass","mappings","hostWidth","property","hostHeight","cursor","hostDirection","avatarTextColor","avatarBackgroundColor","editableIconColor","editableBorderColor","editableBackgroundColor","customElements","define","label","slottedIcon","loadingIndicatorStyles","ButtonClass","triggers","attr","value","hostMaxWidth","fontSize","fontFamily","fontWeight","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","slots","wrappedEleName","excludeAttrsSync","color","clickableMixin","superclass","isLoading","click","IconClass","height","width","srcAttrs","RawImage","observedAttributes","init","toggleVisibility","getSrc","onThemeChange","renderImage","isVisible","classList","remove","add","altText","legacySrc","themeSrc","currentThemeName","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","ImageClass","then","res","appendChild","shouldRender","src","srcVal","attributeChangedCallback","attrName","oldValue","newValue","createSvgEle","text","clean","sanitize","USE_PROFILES","svg","svgFilters","ADD_TAGS","FORBID_TAGS","DOMParser","parseFromString","createImage","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","setProperty","ListItemClass","outline","gap","maxWidth","alignItems","flexDirection","transition","RawList","items","assignedElements","length","removeAttribute","variant","item","listItem","localName","listItemVariant","isReadOnly","name","ListClass","maxHeight","minHeight","boxShadow","gridTemplateColumns","maxItemsWidth","minItemsWidth","maxRowItems","itemsHorizontalAlign","emptyStateTextColor","emptyStateTextFontFamily","emptyStateVerticalPadding","itemRenderer","description","logo","appId","isConnected","_","ref","action","size","disconnectButtonLabel","connectButtonLabel","BaseClass","OutboundAppsClass","errorIconColor","TextClass","appLogoGap","contentGap","itemsTextAlign","itemCursor","itemOutline","itemBorderColor","itemBackgroundColor","listBorderWidth","listBoxShadow","listPadding","emptyStateMinHeight","rerenderAttrsList","appsList","addEventListener","onAppsListClick","bind","readonly","e","id","srcElement","dispatchEvent","CustomEvent","bubbles","detail","RawText","hideWhenEmpty","hasChildren","childNodes","textColor","textLineHeight","textLetterSpacing","textShadow","textTransform","fontStyle"],"sourceRoot":""}
1
+ {"version":3,"file":"descope-outbound-apps.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-avatar/src/component/AvatarClass.js","webpack://@descope/web-components-ui/../components/descope-avatar/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/ImageClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/ListItemClass.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/ListClass.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-outbound-apps/src/component/OutboundAppsClass.js","webpack://@descope/web-components-ui/../components/descope-outbound-apps/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/TextClass.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/index.js"],"sourcesContent":["import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n forwardAttrs,\n getComponentName,\n injectStyle,\n observeAttributes,\n} from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('avatar');\nclass RawAvatar extends createBaseClass({\n componentName,\n baseSelector: ':host > .wrapper',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"wrapper\">\n <vaadin-avatar></vaadin-avatar>\n <div class=\"editableBadge\">\n <vaadin-icon icon=\"vaadin:pencil\"></vaadin-icon>\n </div>\n </div>\n\t\t`;\n\n injectStyle(`\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n .editableBadge {\n border: 1px solid;\n border-radius: 100%;\n height: fit-content;\n width: 25%;\n height: 25%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5%;\n box-sizing: border-box;\n position: absolute;\n bottom: 0;\n inset-inline-end: 0;\n }\n\n vaadin-icon {\n color: currentcolor;\n }\n\n vaadin-avatar {\n width: 100%;\n height: 100%;\n margin: 0;\n border: none\n }\n\n .wrapper {\n display: inline-flex;\n position: relative;\n width: 100%;\n height: 100%;\n }\n `, this);\n\n this.avatarComponent = this.shadowRoot.querySelector('vaadin-avatar');\n\n forwardAttrs(this, this.avatarComponent, {\n includeAttrs: ['display-name', 'img', 'abbr'],\n mapAttrs: { 'display-name': 'name' },\n });\n\n const editableIcon = this.shadowRoot.querySelector('.editableBadge');\n\n observeAttributes(\n this,\n () => {\n editableIcon.style.display = this.isEditable ? '' : 'none';\n },\n { includeAttrs: ['editable'] },\n );\n }\n\n get isEditable() {\n return this.getAttribute('editable') === 'true';\n }\n}\n\nconst { host, editableBadge, avatar } = {\n host: { selector: () => ':host' },\n editableBadge: { selector: '> .editableBadge' },\n avatar: { selector: 'vaadin-avatar' },\n};\n\nexport const AvatarClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [\n { ...host, property: 'width' },\n { ...host, property: 'min-width' },\n ],\n hostHeight: { ...host, property: 'height' },\n cursor: [avatar, host],\n hostDirection: { ...host, property: 'direction' },\n avatarTextColor: { ...avatar, property: 'color' },\n avatarBackgroundColor: { ...avatar, property: 'background-color' },\n editableIconColor: { ...editableBadge, property: 'color' },\n editableBorderColor: { ...editableBadge, property: 'border-color' },\n editableBackgroundColor: {\n ...editableBadge,\n property: 'background-color',\n },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawAvatar);\n","import { componentName, AvatarClass } from './AvatarClass';\nimport '@vaadin/avatar';\nimport '@vaadin/icon';\nimport '@vaadin/icons';\n\ncustomElements.define(componentName, AvatarClass);\n\nexport { AvatarClass, componentName };\n","import { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n stretchMixin,\n} from '@descope-ui/common/components-mixins';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostMaxWidth: { ...host, property: 'max-width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n fontWeight: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(*)`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex', 'class', 'style'],\n componentName,\n }),\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"]) ::part(prefix),\n\t:host([loading=\"true\"]) ::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","import {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { ImageClass } from '@descope-ui/descope-image/class';\nimport { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('icon');\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: [{}, { property: ImageClass.cssVarList.fill }],\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'descope-image',\n style: () => `\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n max-height: 100%;\n }\n `,\n excludeAttrsSync: ['tabindex', 'class', 'style', 'st-height', 'st-width'],\n componentName,\n }),\n);\n"," \nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { createImage } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('image');\n\nconst srcAttrs = ['src', 'src-dark'];\n\nclass RawImage extends createBaseClass({\n componentName,\n baseSelector: 'slot',\n}) {\n static get observedAttributes() {\n return srcAttrs;\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.getSrc);\n }\n\n onThemeChange() {\n this.renderImage();\n }\n\n toggleVisibility(isVisible) {\n if (isVisible) {\n this.classList.remove('hidden');\n } else {\n this.classList.add('hidden');\n }\n }\n\n get altText() {\n return this.getAttribute('alt') || '';\n }\n\n get legacySrc() {\n return this.getAttribute('src');\n }\n\n get themeSrc() {\n return this.getAttribute(`src-${this.currentThemeName}`);\n }\n\n get getSrc() {\n return this.themeSrc || this.legacySrc;\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n \n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${ImageClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`,\n );\n });\n }\n\n renderImage() {\n this.toggleVisibility(this.getSrc);\n\n createImage(this.getSrc, this.altText).then((res) => {\n this.innerHTML = '';\n if (res) {\n this.updateFillColor(res);\n this.appendChild(res);\n }\n });\n }\n\n // render only when src attribute matches current theme\n shouldRender(src) {\n const srcVal = this.getAttribute(src);\n return this.getSrc === srcVal;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (this.shouldRender(attrName)) {\n this.renderImage();\n }\n }\n}\n\nexport const ImageClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawImage);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src, altText) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n ele.setAttribute('alt', altText);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, {\n USE_PROFILES: { svg: true, svgFilters: true },\n // allow image to render\n ADD_TAGS: ['image'],\n // forbid interactiviy via `use` tags (which are sanitized by default)\n FORBID_TAGS: ['defs']\n });\n\n const parser = new DOMParser();\n const ele = parser\n .parseFromString(clean, 'image/svg+xml')\n .querySelector('svg');\n return ele;\n};\n\nexport const createImage = async (src, altText) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src, altText);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n activeableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list-item');\n\nconst customMixin = (superclass) =>\n class ListItemMixinClass extends superclass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot></slot>\n `;\n\n injectStyle(\n `\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n `,\n this,\n );\n }\n };\n\nexport const ListItemClass = compose(\n createStyleMixin({\n mappings: {\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n backgroundColor: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n borderRadius: {},\n outline: {},\n cursor: {},\n gap: {},\n maxWidth: { selector: () => ':host' },\n alignItems: {},\n flexDirection: {},\n transition: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin,\n activeableMixin,\n)(createBaseClass({ componentName, baseSelector: 'slot' }));\n","import { componentName, ListItemClass } from './ListItemClass';\n\ncustomElements.define(componentName, ListItemClass);\n\nexport { ListItemClass, componentName };\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list');\n\nclass RawList extends createBaseClass({\n componentName,\n baseSelector: '.wrapper',\n}) {\n static get observedAttributes() {\n return ['variant', 'readonly'];\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"wrapper\">\n <slot></slot>\n <slot name=\"empty-state\">\n No item...\n </slot>\n </div>\n\t`;\n\n injectStyle(\n `\n .wrapper {\n overflow: auto;\n display: grid;\n max-height: 100%;\n width: 100%;\n }\n\n :host {\n display: inline-flex;\n width: 100%;\n }\n slot[name=\"empty-state\"] {\n justify-content: center;\n align-items: center;\n display: flex;\n flex-grow: 1;\n }\n\n :host slot[name=\"empty-state\"] {\n display: none;\n }\n :host([empty]) slot[name=\"empty-state\"] {\n display: flex;\n }\n ::slotted(:not([slot])) {\n width: 100%;\n }\n `,\n this,\n );\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n #handleEmptyState() {\n if (this.items.length === 0) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n }\n\n get variant() {\n return this.getAttribute('variant') || 'list';\n }\n\n #handleItemsVariant() {\n this.items.forEach((item) => {\n let listItem = item;\n if (listItem.localName !== ListItemClass.componentName) {\n listItem = item.querySelector(ListItemClass.componentName);\n }\n\n const listItemVariant = this.variant === 'tiles' ? 'tile' : 'row';\n listItem?.setAttribute('variant', listItemVariant);\n });\n }\n\n init() {\n super.init?.();\n\n // we want new items to get the size\n observeChildren(this, () => {\n this.#handleEmptyState();\n this.#handleItemsVariant();\n this.#handleReadOnly();\n });\n }\n\n get isReadOnly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n #handleReadOnly() {\n this.items.forEach((item) => {\n if (this.isReadOnly) item.setAttribute('inert', '');\n else item.removeAttribute('inert');\n });\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (newValue === oldValue) return;\n\n if (name === 'variant') {\n this.#handleItemsVariant();\n } else if (name === 'readonly') {\n this.#handleReadOnly();\n }\n }\n}\n\nexport const ListClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n maxHeight: { selector: () => ':host' },\n minHeight: {},\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontFamily: {},\n gap: {},\n\n backgroundColor: {},\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n boxShadow: {},\n gridTemplateColumns: {},\n maxItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'max-width',\n },\n minItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'min-width',\n },\n maxRowItems: {\n property: 'max-row-items',\n },\n itemsHorizontalAlign: {\n selector: () => '::slotted(*)',\n property: 'justify-self',\n },\n emptyStateTextColor: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'color',\n },\n emptyStateTextFontFamily: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'font-family',\n },\n // allow overriding empty state height and padding from parent list components:\n emptyStateVerticalPadding: [\n {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'padding-top',\n },\n {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'padding-bottom',\n },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawList);\n","import '@descope-ui/descope-list-item';\n\nimport { componentName, ListClass } from './ListClass';\n\ncustomElements.define(componentName, ListClass);\n\nexport { ListClass, componentName };\n","import { compose } from '@descope-ui/common/utils';\nimport {\n limitAbbreviation,\n getComponentName,\n injectStyle,\n} from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n createDynamicDataMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { TextClass } from '@descope-ui/descope-text/class';\nimport { ListClass } from '@descope-ui/descope-list/class';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\n\nexport const componentName = getComponentName('outbound-apps');\n\nconst itemRenderer = (\n { name, description, logo, appId, isConnected },\n _,\n ref,\n) => {\n const action = isConnected ? 'disconnect' : 'connect';\n return `\n <descope-list-item>\n <descope-avatar\n ${logo ? `img=\"${logo}\"` : ''}\n ${name ? `display-name=\"${name}\" abbr=${limitAbbreviation(name)}` : ''}\n size=${ref.size}\n ${logo ? 'st-avatar-background-color=\"none\"' : ''}\n class=\"app-logo\"\n ></descope-avatar>\n\n <div class=\"content\">\n <descope-text\n class=\"app-title\"\n variant=\"subtitle1\"\n mode=\"primary\"\n >${name}</descope-text>\n ${\n description\n ? `\n <descope-text\n class=\"app-description\"\n variant=\"body2\"\n mode=\"primary\"\n >${description}</descope-text>\n `\n : ''\n }\n </div>\n <div class=\"controls\">\n <descope-button variant=\"link\" mode=\"primary\" size=${ref.size} data-action=\"${action}\" data-outbound-app-id=\"${appId}\" data-id=\"${action}\">\n ${isConnected ? ref.disconnectButtonLabel : ref.connectButtonLabel}\n </descope-button>\n </div>\n </descope-list-item>\n`;\n};\n\nconst BaseClass = createBaseClass({\n componentName,\n baseSelector: 'descope-list',\n});\n\nclass RawOutboundAppsClass extends BaseClass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <descope-list>\n <slot name=\"empty-state\" slot=\"empty-state\"></slot>\n </descope-list>\n `;\n\n this.appsList = this.shadowRoot.querySelector('descope-list');\n\n injectStyle(\n `\n :host {\n width: 100%;\n }\n .controls {\n display: flex;\n min-width: 8em;\n justify-content: end;\n }\n .content {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n .app-title,\n .app-description {\n display: flex;\n direction: inherit;\n }\n descope-list {\n display: block;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n\n this.appsList.itemRenderer = itemRenderer;\n\n this.appsList.addEventListener('click', this.onAppsListClick.bind(this));\n }\n\n get readonly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n onAppsListClick(e) {\n if (!this.readonly) {\n const id = e.srcElement.getAttribute('data-outbound-app-id');\n const action = e.srcElement.getAttribute('data-action');\n if (id && action) {\n this.dispatchEvent(\n new CustomEvent(`${action}-clicked`, {\n bubbles: true,\n detail: { id, action },\n }),\n );\n }\n }\n }\n\n get size() {\n return this.getAttribute('size') || 'sm';\n }\n\n get connectButtonLabel() {\n return this.getAttribute('connect-button-label') || 'Connect';\n }\n\n get disconnectButtonLabel() {\n return this.getAttribute('disconnect-button-label') || 'Disconnect';\n }\n}\n\nconst { host } = {\n host: { selector: () => ':host' },\n};\n\nexport const OutboundAppsClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n minHeight: { selector: () => ':host' },\n hostDirection: [\n { ...host, property: 'direction' },\n {\n selector: 'descope-list',\n property: 'direction',\n },\n {\n selector: 'descope-list-item',\n property: 'direction',\n },\n ],\n iconColor: {\n selector: () => ' descope-icon',\n property: IconClass.cssVarList.fill,\n },\n errorIconColor: {\n selector: () => ' descope-icon.error-icon',\n property: IconClass.cssVarList.fill,\n },\n fontSize: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontSize,\n },\n appLogoGap: {\n selector: () => ' .app-logo',\n property: 'margin-inline-end',\n },\n contentGap: {\n selector: () => ' .content',\n property: 'gap',\n },\n itemsTextAlign: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.textAlign,\n },\n itemCursor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.cursor,\n },\n itemOutline: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.outline,\n },\n itemBorderColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.borderColor,\n },\n itemBackgroundColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.backgroundColor,\n },\n listBorderWidth: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.borderWidth,\n },\n listBoxShadow: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.boxShadow,\n },\n listPadding: [\n {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.verticalPadding,\n },\n {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.horizontalPadding,\n },\n ],\n emptyStateMinHeight: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.minHeight,\n },\n emptyStateVerticalPadding: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.emptyStateVerticalPadding,\n },\n },\n }),\n draggableMixin,\n createDynamicDataMixin({\n itemRenderer,\n rerenderAttrsList: [\n 'size',\n 'connect-button-label',\n 'disconnect-button-label',\n ],\n }),\n componentNameValidationMixin,\n)(RawOutboundAppsClass);\n","import '@descope-ui/descope-list';\nimport '@descope-ui/descope-list-item';\nimport '@descope-ui/descope-text';\nimport '@descope-ui/descope-avatar';\nimport '@descope-ui/descope-button';\nimport { componentName, OutboundAppsClass } from './OutboundAppsClass';\n\ncustomElements.define(componentName, OutboundAppsClass);\n\nexport { OutboundAppsClass, componentName };\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n stretchMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n injectStyle,\n observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('text');\n\nclass RawText extends createBaseClass({\n componentName,\n baseSelector: ':host > slot',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot part=\"text-wrapper\"></slot>\n `;\n\n injectStyle(\n `\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n `,\n this,\n );\n }\n\n get hideWhenEmpty() {\n return this.getAttribute('hide-when-empty') === 'true';\n }\n\n init() {\n super.init();\n\n observeChildren(this, () => {\n const hasChildren = !!this.childNodes.length;\n this.style.display = !hasChildren && this.hideWhenEmpty ? 'none' : '';\n });\n }\n}\n\nconst { host } = {\n host: { selector: () => ':host' },\n};\n\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n textColor: [{ property: 'color' }],\n textLineHeight: { property: 'line-height' },\n textLetterSpacing: { property: 'letter-spacing' },\n textShadow: {},\n textAlign: {},\n textTransform: {},\n fontFamily: {},\n fontStyle: {},\n fontWeight: {},\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n },\n }),\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawText);\n","import { componentName, TextClass } from './TextClass';\n\ncustomElements.define(componentName, TextClass);\n\nexport { TextClass, componentName };\n"],"names":["componentName","RawAvatar","baseSelector","constructor","super","this","attachShadow","mode","innerHTML","avatarComponent","shadowRoot","querySelector","includeAttrs","mapAttrs","editableIcon","style","display","isEditable","getAttribute","host","editableBadge","avatar","selector","AvatarClass","mappings","hostWidth","property","hostHeight","cursor","hostDirection","avatarTextColor","avatarBackgroundColor","editableIconColor","editableBorderColor","editableBackgroundColor","customElements","define","label","slottedIcon","loadingIndicatorStyles","ButtonClass","triggers","attr","value","hostMaxWidth","fontSize","fontFamily","fontWeight","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","slots","wrappedEleName","excludeAttrsSync","color","clickableMixin","superclass","isLoading","click","IconClass","height","width","srcAttrs","RawImage","observedAttributes","init","toggleVisibility","getSrc","onThemeChange","renderImage","isVisible","classList","remove","add","altText","legacySrc","themeSrc","currentThemeName","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","ImageClass","then","res","appendChild","shouldRender","src","srcVal","attributeChangedCallback","attrName","oldValue","newValue","createSvgEle","text","clean","sanitize","USE_PROFILES","svg","svgFilters","ADD_TAGS","FORBID_TAGS","DOMParser","parseFromString","createImage","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","setProperty","ListItemClass","outline","gap","maxWidth","alignItems","flexDirection","transition","RawList","items","assignedElements","length","removeAttribute","variant","item","listItem","localName","listItemVariant","isReadOnly","name","ListClass","maxHeight","minHeight","boxShadow","gridTemplateColumns","maxItemsWidth","minItemsWidth","maxRowItems","itemsHorizontalAlign","emptyStateTextColor","emptyStateTextFontFamily","emptyStateVerticalPadding","itemRenderer","description","logo","appId","isConnected","_","ref","action","size","disconnectButtonLabel","connectButtonLabel","BaseClass","OutboundAppsClass","errorIconColor","TextClass","appLogoGap","contentGap","itemsTextAlign","itemCursor","itemOutline","itemBorderColor","itemBackgroundColor","listBorderWidth","listBoxShadow","listPadding","emptyStateMinHeight","rerenderAttrsList","appsList","addEventListener","onAppsListClick","bind","readonly","e","id","srcElement","dispatchEvent","CustomEvent","bubbles","detail","RawText","hideWhenEmpty","hasChildren","childNodes","textColor","textLineHeight","textLetterSpacing","textShadow","textTransform","fontStyle"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[9018],{91995(e,r,t){t.d(r,{T:()=>d,u:()=>i});var o=t(9696),a=t(97810),l=t(79365);const d=(0,a.xE)("radio-button"),i=(0,o.Zz)((0,l.RF)({mappings:{cursor:[{},{selector:"label"}],fontSize:[{selector:"label"},{}],labelTextColor:{selector:"label",property:"color"},fontFamily:{selector:"label"},labelFontWeight:{selector:"label",property:"font-weight"},radioSize:[{selector:"::part(radio)",property:"height"},{selector:"::part(radio)",property:"width"}],radioBackgroundColor:{selector:"::part(radio)",property:"background-color"},radioMargin:{selector:"::part(radio)",property:"margin"},radioCheckedSize:{selector:"::part(radio)::after",property:"border-width"},radioCheckedColor:{selector:"::part(radio)::after",property:"border-color"},radioBorderColor:{selector:"::part(radio)",property:"border-color",fallback:"none"},radioBorderWidth:{selector:"::part(radio)",property:"border-width",fallback:0},radioBorderStyle:{selector:"::part(radio)",property:"border-style",fallback:"solid"}}}),(0,l.OZ)({proxyProps:["setSelectionRange"]}),l.tQ,e=>class extends e{constructor(){super(),this.baseElement.checkValidity=()=>{}}init(){this.baseElement.addEventListener("checked-changed",e=>{this.dispatchEvent(new CustomEvent("checked-changed",{detail:e.detail},{bubbles:!0,composed:!0}))}),super.init?.(),(0,a.Ge)(this,this.renderLabel.bind(this))}renderLabel(){this.baseElement.setAttribute("label",this.textContent)}get value(){return this.getAttribute("value")}})((0,l.tz)({slots:[""],wrappedEleName:"vaadin-radio-button",excludeAttrsSync:["tabindex","data","style"],includeForwardProps:["checked","name","disabled"],componentName:d}))},25140(e,r,t){t.r(r),t.d(r,{RadioButtonClass:()=>o.u,componentName:()=>o.T});var o=t(91995);t(54623),customElements.define(o.T,o.u)}}]);
2
+ //# sourceMappingURL=descope-radio-group-descope-radio-button-index-js.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descope-radio-group-descope-radio-button-index-js.js","mappings":"mMASO,MAAMA,GAAgB,QAAiB,gBAoCjCC,GAAmB,SAC9B,QAAiB,CACfC,SAAU,CACRC,OAAQ,CAAC,CAAC,EAAG,CAAEC,SAAU,UACzBC,SAAU,CAAC,CAAED,SAAU,SAAW,CAAC,GACnCE,eAAgB,CAAEF,SAAU,QAASG,SAAU,SAC/CC,WAAY,CAAEJ,SAAU,SACxBK,gBAAiB,CAAEL,SAAU,QAASG,SAAU,eAChDG,UAAW,CACT,CAAEN,SAAU,gBAAiBG,SAAU,UACvC,CAAEH,SAAU,gBAAiBG,SAAU,UAEzCI,qBAAsB,CAAEP,SAAU,gBAAiBG,SAAU,oBAC7DK,YAAa,CAAER,SAAU,gBAAiBG,SAAU,UACpDM,iBAAkB,CAAET,SAAU,uBAAwBG,SAAU,gBAChEO,kBAAmB,CAAEV,SAAU,uBAAwBG,SAAU,gBACjEQ,iBAAkB,CAAEX,SAAU,gBAAiBG,SAAU,eAAgBS,SAAU,QACnFC,iBAAkB,CAAEb,SAAU,gBAAiBG,SAAU,eAAgBS,SAAU,GACnFE,iBAAkB,CAAEd,SAAU,gBAAiBG,SAAU,eAAgBS,SAAU,aAGvF,QAAgB,CAAEG,WAAY,CAAC,uBAC/B,KAxDmBC,GACnB,cAA0BA,EACxB,WAAAC,GACEC,QAEAC,KAAKC,YAAYC,cAAgB,MACnC,CAEA,IAAAC,GAEEH,KAAKC,YAAYG,iBAAiB,kBAAoBC,IACpDL,KAAKM,cACH,IAAIC,YACF,kBACA,CAAEC,OAAQH,EAAEG,QACZ,CAAEC,SAAS,EAAMC,UAAU,OAKjCX,MAAMI,UAEN,QAAgBH,KAAMA,KAAKW,YAAYC,KAAKZ,MAC9C,CAEA,WAAAW,GACEX,KAAKC,YAAYY,aAAa,QAASb,KAAKc,YAC9C,CAEA,SAAIC,GACF,OAAOf,KAAKgB,aAAa,QAC3B,GAG4B,EAyB9B,QAAY,CACVC,MAAO,CAAC,IACRC,eAAgB,sBAChBC,iBAAkB,CAAC,WAAY,OAAQ,SACvCC,oBAAqB,CAAC,UAAW,OAAQ,YACzC3C,kB,sGCxEJ4C,eAAeC,OAAO,IAAe,I","sources":["webpack://@descope/web-components-ui/./src/components/descope-radio-group/descope-radio-button/RadioButtonClass.js","webpack://@descope/web-components-ui/./src/components/descope-radio-group/descope-radio-button/index.js"],"sourcesContent":["import { compose } from '../../../helpers';\nimport { getComponentName, observeChildren } from '../../../helpers/componentHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n proxyInputMixin,\n} from '../../../mixins';\n\nexport const componentName = getComponentName('radio-button');\n\nconst customMixin = (superclass) =>\n class CustomMixin extends superclass {\n constructor() {\n super();\n\n this.baseElement.checkValidity = () => {};\n }\n\n init() {\n // we are forwarding vaadin checked-changed event\n this.baseElement.addEventListener('checked-changed', (e) => {\n this.dispatchEvent(\n new CustomEvent(\n 'checked-changed',\n { detail: e.detail },\n { bubbles: true, composed: true }\n )\n );\n });\n\n super.init?.();\n\n observeChildren(this, this.renderLabel.bind(this));\n }\n\n renderLabel() {\n this.baseElement.setAttribute('label', this.textContent);\n }\n\n get value() {\n return this.getAttribute('value');\n }\n };\n\nexport const RadioButtonClass = compose(\n createStyleMixin({\n mappings: {\n cursor: [{}, { selector: 'label' }],\n fontSize: [{ selector: 'label' }, {}],\n labelTextColor: { selector: 'label', property: 'color' },\n fontFamily: { selector: 'label' },\n labelFontWeight: { selector: 'label', property: 'font-weight' },\n radioSize: [\n { selector: '::part(radio)', property: 'height' },\n { selector: '::part(radio)', property: 'width' },\n ],\n radioBackgroundColor: { selector: '::part(radio)', property: 'background-color' },\n radioMargin: { selector: '::part(radio)', property: 'margin' },\n radioCheckedSize: { selector: '::part(radio)::after', property: 'border-width' },\n radioCheckedColor: { selector: '::part(radio)::after', property: 'border-color' },\n radioBorderColor: { selector: '::part(radio)', property: 'border-color', fallback: 'none' },\n radioBorderWidth: { selector: '::part(radio)', property: 'border-width', fallback: 0 },\n radioBorderStyle: { selector: '::part(radio)', property: 'border-style', fallback: 'solid' },\n },\n }),\n proxyInputMixin({ proxyProps: ['setSelectionRange'] }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [''],\n wrappedEleName: 'vaadin-radio-button',\n excludeAttrsSync: ['tabindex', 'data', 'style'],\n includeForwardProps: ['checked', 'name', 'disabled'],\n componentName,\n })\n);\n","import { componentName, RadioButtonClass } from './RadioButtonClass';\nimport '@vaadin/radio-group';\n\ncustomElements.define(componentName, RadioButtonClass);\n\nexport { RadioButtonClass, componentName };\n"],"names":["componentName","RadioButtonClass","mappings","cursor","selector","fontSize","labelTextColor","property","fontFamily","labelFontWeight","radioSize","radioBackgroundColor","radioMargin","radioCheckedSize","radioCheckedColor","radioBorderColor","fallback","radioBorderWidth","radioBorderStyle","proxyProps","superclass","constructor","super","this","baseElement","checkValidity","init","addEventListener","e","dispatchEvent","CustomEvent","detail","bubbles","composed","renderLabel","bind","setAttribute","textContent","value","getAttribute","slots","wrappedEleName","excludeAttrsSync","includeForwardProps","customElements","define"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[9399],{47656(e,t,r){r.d(t,{A:()=>x});const{host:o,label:i,placeholder:l,requiredIndicator:p,inputField:a,input:n,inputMask:s,helperText:d,errorMessage:c,disabledPlaceholder:u,inputDisabled:h,inputIcon:y,externalInput:b,externalInputDisabled:g,externalPlaceholder:m,externalDisabledPlaceholder:f}={host:{selector:()=>":host"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},placeholder:[{selector:"> input:placeholder-shown"},{selector:()=>":host::slotted(input:placeholder-shown)"}],disabledPlaceholder:{selector:"> input:disabled::placeholder"},inputField:{selector:"::part(input-field)"},input:{selector:"input"},inputMask:{selector:"::part(input-field)::before"},inputDisabled:{selector:"input:disabled"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},inputIcon:{selector:"vaadin-icon"},externalInput:{selector:()=>"::slotted(input)"},externalInputDisabled:{selector:()=>"::slotted(input:disabled)"},externalPlaceholder:{selector:()=>"::slotted(input:placeholder-shown)"},externalDisabledPlaceholder:{selector:()=>"::slotted(input:disabled::placeholder)"}},x={fontSize:[{},o],fontFamily:[i,a,d,c],labelFontSize:{...i,property:"font-size"},labelFontWeight:{...i,property:"font-weight"},inputValueFontWeight:[{...n,property:"font-weight"},{...b,property:"font-weight"}],inputPlaceholderFontWeight:[{selector:()=>":host input:placeholder-shown",property:"font-weight"},{...m,property:"font-weight"}],helperTextFontWeight:{...d,property:"font-weight"},errorMessageFontWeight:{...c,property:"font-weight"},labelTextColor:[{...i,property:"color"},{...p,property:"color"},{...i,property:"-webkit-text-fill-color"},{...p,property:"-webkit-text-fill-color"}],hostWidth:{...o,property:"width"},hostMinWidth:{...o,property:"min-width"},hostDirection:{...o,property:"direction"},inputDirection:{...n,property:"direction"},inputBackgroundColor:[{...a,property:"background-color"},{...s,property:"background-color"}],errorMessageTextColor:{...c,property:"color"},errorMessageIcon:{...c,property:"background-image"},errorMessageIconSize:{...c,property:"background-size"},errorMessageIconPadding:{...c,property:"padding-inline-start"},errorMessageIconRepeat:{...c,property:"background-repeat"},errorMessageIconPosition:{...c,property:"background-position"},errorMessageFontSize:{...c,property:"font-size"},helperTextColor:{...d,property:"-webkit-text-fill-color"},inputValueTextColor:[{...a,property:"color"},{...h,property:"-webkit-text-fill-color"},{...g,property:"-webkit-text-fill-color"}],inputCaretTextColor:[{...n,property:"caret-color"},{...b,property:"caret-color"}],labelRequiredIndicator:{...p,property:"content"},inputBorderColor:{...a,property:"border-color"},inputBorderWidth:{...a,property:"border-width"},inputBorderStyle:{...a,property:"border-style"},inputBorderRadius:{...a,property:"border-radius"},inputHeight:{...a,property:"height"},inputHorizontalPadding:[{...n,property:"padding-left"},{...n,property:"padding-right"},{...b,property:"padding-left"},{...b,property:"padding-right"}],inputOutlineColor:{...a,property:"outline-color"},inputOutlineStyle:{...a,property:"outline-style"},inputOutlineWidth:{...a,property:"outline-width"},inputOutlineOffset:{...a,property:"outline-offset"},textAlign:{},inputTextAlign:[{...n,property:"text-align"},{...b,property:"text-align"}],inputPlaceholderColor:[{selector:()=>":host input:placeholder-shown",property:"color"},{...m,property:"color"},{...l,property:"color"},{...u,property:"-webkit-text-fill-color"},{...f,property:"-webkit-text-fill-color"}],labelPosition:{...i,property:"position"},labelTopPosition:{...i,property:"top"},labelHorizontalPosition:[{...i,property:"left"},{...i,property:"right"}],inputTransformY:{...i,property:"transform"},inputTransition:{...i,property:"transition"},marginInlineStart:{...i,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...m,property:"opacity"}],inputVerticalAlignment:[{...a,property:"align-items"},{...b,property:"align-items"}],valueInputHeight:[{...n,property:"height"},{...b,property:"height"}],valueInputMarginBottom:[{...n,property:"margin-bottom"},{...b,property:"margin-bottom"}],inputIconOffset:[{...y,property:"margin-right"},{...y,property:"margin-left"}],inputIconSize:{...y,property:"font-size"},inputIconColor:{...y,property:"color"},inputTextSecurity:[{...n,property:"-webkit-text-security"},{...n,property:"text-security"},{...b,property:"-webkit-text-security"},{...b,property:"text-security"}]}},40649(e,t,r){r.r(t),r.d(t,{RadioGroupClass:()=>c,componentName:()=>d});var o=r(47656),i=r(9696),l=r(97810),p=r(73551),a=r(79365);const n=(0,l.xE)("radio-button"),s=(0,i.Zz)((0,a.RF)({mappings:{cursor:[{},{selector:"label"}],fontSize:[{selector:"label"},{}],labelTextColor:{selector:"label",property:"color"},fontFamily:{selector:"label"},labelFontWeight:{selector:"label",property:"font-weight"},radioSize:[{selector:"::part(radio)",property:"height"},{selector:"::part(radio)",property:"width"}],radioBackgroundColor:{selector:"::part(radio)",property:"background-color"},radioMargin:{selector:"::part(radio)",property:"margin"},radioCheckedSize:{selector:"::part(radio)::after",property:"border-width"},radioCheckedColor:{selector:"::part(radio)::after",property:"border-color"},radioBorderColor:{selector:"::part(radio)",property:"border-color",fallback:"none"},radioBorderWidth:{selector:"::part(radio)",property:"border-width",fallback:0},radioBorderStyle:{selector:"::part(radio)",property:"border-style",fallback:"solid"}}}),(0,a.OZ)({proxyProps:["setSelectionRange"]}),a.tQ,e=>class extends e{constructor(){super(),this.baseElement.checkValidity=()=>{}}init(){this.baseElement.addEventListener("checked-changed",e=>{this.dispatchEvent(new CustomEvent("checked-changed",{detail:e.detail},{bubbles:!0,composed:!0}))}),super.init?.(),(0,l.Ge)(this,this.renderLabel.bind(this))}renderLabel(){this.baseElement.setAttribute("label",this.textContent)}get value(){return this.getAttribute("value")}})((0,a.tz)({slots:[""],wrappedEleName:"vaadin-radio-button",excludeAttrsSync:["tabindex","data","style"],includeForwardProps:["checked","name","disabled"],componentName:n})),d=(0,l.xE)("radio-group"),c=(0,i.Zz)((0,a.RF)({mappings:{...o.A,buttonsSpacing:{selector:"::part(group-field)",property:"justify-content"},buttonsRowGap:{selector:"::part(group-field)",property:"row-gap"},buttonsColumnGap:{selector:"::part(group-field)",property:"column-gap"},itemsFontFamily:{selector:()=>`::slotted(${s.componentName})`,property:s.cssVarList.fontFamily},itemsLabelFontWeight:{selector:()=>`::slotted(${s.componentName})`,property:s.cssVarList.labelFontWeight},itemsLabelColor:{selector:()=>`::slotted(${s.componentName})`,property:s.cssVarList.labelTextColor},itemsRadioCheckedColor:{selector:()=>`::slotted(${s.componentName})`,property:s.cssVarList.radioCheckedColor},itemsRadioBackgroundColor:{selector:()=>`::slotted(${s.componentName})`,property:s.cssVarList.radioBackgroundColor},itemsRadioCheckedBackgroundColor:{selector:()=>`::slotted(${s.componentName}[checked="true"])`,property:s.cssVarList.radioBackgroundColor}}}),a.VO,(0,a.OZ)({proxyProps:["setSelectionRange"]}),a.tQ,e=>class extends e{#e=({value:e,label:t})=>`<descope-radio-button value="${e}">${t}</descope-radio-button>`;#t;constructor(){super(),Object.defineProperty(this.baseElement,"children",{get:()=>this.querySelectorAll(n)}),this.baseElement.__filterRadioButtons=e=>e.filter(e=>e.localName===n),this.baseElement.setCustomValidity=()=>{}}get items(){return this.shadowRoot.querySelector("slot").assignedElements()}get size(){return this.getAttribute("size")}get data(){if(this.#t)return this.#t;const e=this.getAttribute("data");if(e)try{const t=JSON.parse(e);if(this.isValidDataType(t))return t}catch(e){console.error('could not parse data string from attribute "data" - ',e.message)}return[]}set data(e){this.isValidDataType(e)&&(this.#t=e,this.renderItems())}get defaultValue(){return this.getAttribute("default-value")}isValidDataType(e){const t=Array.isArray(e);return t||console.error("data must be an array, received:",e),t}getItemsTemplate(){return this.data?.reduce?.((e,t)=>e+(this.#e?.(t||{})||""),"")}renderItems(){const e=this.getItemsTemplate();e&&(this.innerHTML=e)}init(){super.init?.(),this.inputElement=this.baseElement,this.renderItems(),(0,l.mx)(this,this.renderItems.bind(this),{includeAttrs:["data"]}),Object.defineProperty(this.baseElement,"validity",{get:()=>({valueMissing:!this.baseElement.checkValidity()})}),(0,l.EA)(this,this.baseElement,{includeAttrs:["layout"],mapAttrs:{layout:"theme"}}),setTimeout(()=>{this.defaultValue&&(this.value=this.defaultValue)}),(0,l.Ge)(this,({addedNodes:e})=>{e.forEach(e=>{e.setAttribute("size",this.size)})}),(0,l.mx)(this,()=>{this.items.forEach(e=>{e.setAttribute("size",this.size)})},{includeAttrs:["size"]})}})((0,a.tz)({slots:["","prefix"],wrappedEleName:"vaadin-radio-group",style:()=>`\n :host {\n display: inline-block;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n vaadin-radio-group {\n padding: 0;\n width: 100%;\n }\n\n ${(0,p.$J)("vaadin-radio-group")}\n `,excludeAttrsSync:["tabindex","size","data","direction","style"],componentName:d,includeForwardProps:["value"]}));r(54623),customElements.define(d,c),customElements.define(n,s)}}]);
1
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[9018,9399],{47656(e,t,r){r.d(t,{A:()=>x});const{host:o,label:i,placeholder:l,requiredIndicator:p,inputField:a,input:n,inputMask:s,helperText:d,errorMessage:c,disabledPlaceholder:u,inputDisabled:h,inputIcon:y,externalInput:b,externalInputDisabled:g,externalPlaceholder:m,externalDisabledPlaceholder:f}={host:{selector:()=>":host"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},placeholder:[{selector:"> input:placeholder-shown"},{selector:()=>":host::slotted(input:placeholder-shown)"}],disabledPlaceholder:{selector:"> input:disabled::placeholder"},inputField:{selector:"::part(input-field)"},input:{selector:"input"},inputMask:{selector:"::part(input-field)::before"},inputDisabled:{selector:"input:disabled"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},inputIcon:{selector:"vaadin-icon"},externalInput:{selector:()=>"::slotted(input)"},externalInputDisabled:{selector:()=>"::slotted(input:disabled)"},externalPlaceholder:{selector:()=>"::slotted(input:placeholder-shown)"},externalDisabledPlaceholder:{selector:()=>"::slotted(input:disabled::placeholder)"}},x={fontSize:[{},o],fontFamily:[i,a,d,c],labelFontSize:{...i,property:"font-size"},labelFontWeight:{...i,property:"font-weight"},inputValueFontWeight:[{...n,property:"font-weight"},{...b,property:"font-weight"}],inputPlaceholderFontWeight:[{selector:()=>":host input:placeholder-shown",property:"font-weight"},{...m,property:"font-weight"}],helperTextFontWeight:{...d,property:"font-weight"},errorMessageFontWeight:{...c,property:"font-weight"},labelTextColor:[{...i,property:"color"},{...p,property:"color"},{...i,property:"-webkit-text-fill-color"},{...p,property:"-webkit-text-fill-color"}],hostWidth:{...o,property:"width"},hostMinWidth:{...o,property:"min-width"},hostDirection:{...o,property:"direction"},inputDirection:{...n,property:"direction"},inputBackgroundColor:[{...a,property:"background-color"},{...s,property:"background-color"}],errorMessageTextColor:{...c,property:"color"},errorMessageIcon:{...c,property:"background-image"},errorMessageIconSize:{...c,property:"background-size"},errorMessageIconPadding:{...c,property:"padding-inline-start"},errorMessageIconRepeat:{...c,property:"background-repeat"},errorMessageIconPosition:{...c,property:"background-position"},errorMessageFontSize:{...c,property:"font-size"},helperTextColor:{...d,property:"-webkit-text-fill-color"},inputValueTextColor:[{...a,property:"color"},{...h,property:"-webkit-text-fill-color"},{...g,property:"-webkit-text-fill-color"}],inputCaretTextColor:[{...n,property:"caret-color"},{...b,property:"caret-color"}],labelRequiredIndicator:{...p,property:"content"},inputBorderColor:{...a,property:"border-color"},inputBorderWidth:{...a,property:"border-width"},inputBorderStyle:{...a,property:"border-style"},inputBorderRadius:{...a,property:"border-radius"},inputHeight:{...a,property:"height"},inputHorizontalPadding:[{...n,property:"padding-left"},{...n,property:"padding-right"},{...b,property:"padding-left"},{...b,property:"padding-right"}],inputOutlineColor:{...a,property:"outline-color"},inputOutlineStyle:{...a,property:"outline-style"},inputOutlineWidth:{...a,property:"outline-width"},inputOutlineOffset:{...a,property:"outline-offset"},textAlign:{},inputTextAlign:[{...n,property:"text-align"},{...b,property:"text-align"}],inputPlaceholderColor:[{selector:()=>":host input:placeholder-shown",property:"color"},{...m,property:"color"},{...l,property:"color"},{...u,property:"-webkit-text-fill-color"},{...f,property:"-webkit-text-fill-color"}],labelPosition:{...i,property:"position"},labelTopPosition:{...i,property:"top"},labelHorizontalPosition:[{...i,property:"left"},{...i,property:"right"}],inputTransformY:{...i,property:"transform"},inputTransition:{...i,property:"transition"},marginInlineStart:{...i,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...m,property:"opacity"}],inputVerticalAlignment:[{...a,property:"align-items"},{...b,property:"align-items"}],valueInputHeight:[{...n,property:"height"},{...b,property:"height"}],valueInputMarginBottom:[{...n,property:"margin-bottom"},{...b,property:"margin-bottom"}],inputIconOffset:[{...y,property:"margin-right"},{...y,property:"margin-left"}],inputIconSize:{...y,property:"font-size"},inputIconColor:{...y,property:"color"},inputTextSecurity:[{...n,property:"-webkit-text-security"},{...n,property:"text-security"},{...b,property:"-webkit-text-security"},{...b,property:"text-security"}]}},91995(e,t,r){r.d(t,{T:()=>p,u:()=>a});var o=r(9696),i=r(97810),l=r(79365);const p=(0,i.xE)("radio-button"),a=(0,o.Zz)((0,l.RF)({mappings:{cursor:[{},{selector:"label"}],fontSize:[{selector:"label"},{}],labelTextColor:{selector:"label",property:"color"},fontFamily:{selector:"label"},labelFontWeight:{selector:"label",property:"font-weight"},radioSize:[{selector:"::part(radio)",property:"height"},{selector:"::part(radio)",property:"width"}],radioBackgroundColor:{selector:"::part(radio)",property:"background-color"},radioMargin:{selector:"::part(radio)",property:"margin"},radioCheckedSize:{selector:"::part(radio)::after",property:"border-width"},radioCheckedColor:{selector:"::part(radio)::after",property:"border-color"},radioBorderColor:{selector:"::part(radio)",property:"border-color",fallback:"none"},radioBorderWidth:{selector:"::part(radio)",property:"border-width",fallback:0},radioBorderStyle:{selector:"::part(radio)",property:"border-style",fallback:"solid"}}}),(0,l.OZ)({proxyProps:["setSelectionRange"]}),l.tQ,e=>class extends e{constructor(){super(),this.baseElement.checkValidity=()=>{}}init(){this.baseElement.addEventListener("checked-changed",e=>{this.dispatchEvent(new CustomEvent("checked-changed",{detail:e.detail},{bubbles:!0,composed:!0}))}),super.init?.(),(0,i.Ge)(this,this.renderLabel.bind(this))}renderLabel(){this.baseElement.setAttribute("label",this.textContent)}get value(){return this.getAttribute("value")}})((0,l.tz)({slots:[""],wrappedEleName:"vaadin-radio-button",excludeAttrsSync:["tabindex","data","style"],includeForwardProps:["checked","name","disabled"],componentName:p}))},25140(e,t,r){r.r(t),r.d(t,{RadioButtonClass:()=>o.u,componentName:()=>o.T});var o=r(91995);r(54623),customElements.define(o.T,o.u)},86530(e,t,r){r.r(t),r.d(t,{RadioGroupClass:()=>d,componentName:()=>s});var o=r(47656),i=r(9696),l=r(97810),p=r(73551),a=r(79365),n=r(91995);const s=(0,l.xE)("radio-group"),d=(0,i.Zz)((0,a.RF)({mappings:{...o.A,buttonsSpacing:{selector:"::part(group-field)",property:"justify-content"},buttonsRowGap:{selector:"::part(group-field)",property:"row-gap"},buttonsColumnGap:{selector:"::part(group-field)",property:"column-gap"},itemsFontFamily:{selector:()=>`::slotted(${n.u.componentName})`,property:n.u.cssVarList.fontFamily},itemsLabelFontWeight:{selector:()=>`::slotted(${n.u.componentName})`,property:n.u.cssVarList.labelFontWeight},itemsLabelColor:{selector:()=>`::slotted(${n.u.componentName})`,property:n.u.cssVarList.labelTextColor},itemsRadioCheckedColor:{selector:()=>`::slotted(${n.u.componentName})`,property:n.u.cssVarList.radioCheckedColor},itemsRadioBackgroundColor:{selector:()=>`::slotted(${n.u.componentName})`,property:n.u.cssVarList.radioBackgroundColor},itemsRadioCheckedBackgroundColor:{selector:()=>`::slotted(${n.u.componentName}[checked="true"])`,property:n.u.cssVarList.radioBackgroundColor}}}),a.VO,(0,a.OZ)({proxyProps:["setSelectionRange"]}),a.tQ,e=>class extends e{#e=({value:e,label:t})=>`<descope-radio-button value="${e}">${t}</descope-radio-button>`;#t;constructor(){super(),Object.defineProperty(this.baseElement,"children",{get:()=>this.querySelectorAll(n.T)}),this.baseElement.__filterRadioButtons=e=>e.filter(e=>e.localName===n.T),this.baseElement.setCustomValidity=()=>{}}get items(){return this.shadowRoot.querySelector("slot").assignedElements()}get size(){return this.getAttribute("size")}get data(){if(this.#t)return this.#t;const e=this.getAttribute("data");if(e)try{const t=JSON.parse(e);if(this.isValidDataType(t))return t}catch(e){console.error('could not parse data string from attribute "data" - ',e.message)}return[]}set data(e){this.isValidDataType(e)&&(this.#t=e,this.renderItems())}get defaultValue(){return this.getAttribute("default-value")}isValidDataType(e){const t=Array.isArray(e);return t||console.error("data must be an array, received:",e),t}getItemsTemplate(){return this.data?.reduce?.((e,t)=>e+(this.#e?.(t||{})||""),"")}renderItems(){const e=this.getItemsTemplate();e&&(this.innerHTML=e)}init(){super.init?.(),this.inputElement=this.baseElement,this.renderItems(),(0,l.mx)(this,this.renderItems.bind(this),{includeAttrs:["data"]}),Object.defineProperty(this.baseElement,"validity",{get:()=>({valueMissing:!this.baseElement.checkValidity()})}),(0,l.EA)(this,this.baseElement,{includeAttrs:["layout"],mapAttrs:{layout:"theme"}}),setTimeout(()=>{this.defaultValue&&(this.value=this.defaultValue)}),(0,l.Ge)(this,({addedNodes:e})=>{e.forEach(e=>{e.setAttribute("size",this.size)})}),(0,l.mx)(this,()=>{this.items.forEach(e=>{e.setAttribute("size",this.size)})},{includeAttrs:["size"]})}})((0,a.tz)({slots:["","prefix"],wrappedEleName:"vaadin-radio-group",style:()=>`\n :host {\n display: inline-block;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n vaadin-radio-group {\n padding: 0;\n width: 100%;\n }\n\n ${(0,p.$J)("vaadin-radio-group")}\n `,excludeAttrsSync:["tabindex","size","data","direction","style"],componentName:s,includeForwardProps:["value"]}));r(54623),r(25140),customElements.define(s,d)}}]);
2
2
  //# sourceMappingURL=descope-radio-group-index-js.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"descope-radio-group-index-js.js","mappings":"uJAAA,MAAM,KACJA,EAAI,MACJC,EAAK,YACLC,EAAW,kBACXC,EAAiB,WACjBC,EAAU,MACVC,EAAK,UACLC,EAAS,WACTC,EAAU,aACVC,EAAY,oBACZC,EAAmB,cACnBC,EAAa,UACbC,EAAS,cACTC,EAAa,sBACbC,EAAqB,oBACrBC,EAAmB,4BACnBC,GACE,CACFf,KAAM,CAAEgB,SAAU,IAAM,SACxBf,MAAO,CAAEe,SAAU,iBACnBb,kBAAmB,CACjBa,SAAU,+CAEZd,YAAa,CACX,CAAEc,SAAU,6BACZ,CAAEA,SAAU,IAAM,4CAEpBP,oBAAqB,CAAEO,SAAU,iCACjCZ,WAAY,CAAEY,SAAU,uBACxBX,MAAO,CAAEW,SAAU,SACnBV,UAAW,CAAEU,SAAU,+BACvBN,cAAe,CAAEM,SAAU,kBAC3BT,WAAY,CAAES,SAAU,uBACxBR,aAAc,CAAEQ,SAAU,yBAC1BL,UAAW,CAAEK,SAAU,eACvBJ,cAAe,CAAEI,SAAU,IAAM,oBACjCH,sBAAuB,CAAEG,SAAU,IAAM,6BACzCF,oBAAqB,CAAEE,SAAU,IAAM,sCACvCD,4BAA6B,CAC3BC,SAAU,IAAM,2CAIpB,GAEEC,SAAU,CAAC,CAAC,EAAGjB,GACfkB,WAAY,CAACjB,EAAOG,EAAYG,EAAYC,GAE5CW,cAAe,IAAKlB,EAAOmB,SAAU,aACrCC,gBAAiB,IAAKpB,EAAOmB,SAAU,eAEvCE,qBAAsB,CACpB,IAAKjB,EAAOe,SAAU,eACtB,IAAKR,EAAeQ,SAAU,gBAEhCG,2BAA4B,CAC1B,CACEP,SAAU,IAAM,gCAChBI,SAAU,eAEZ,IAAKN,EAAqBM,SAAU,gBAEtCI,qBAAsB,IAAKjB,EAAYa,SAAU,eACjDK,uBAAwB,IAAKjB,EAAcY,SAAU,eAErDM,eAAgB,CACd,IAAKzB,EAAOmB,SAAU,SACtB,IAAKjB,EAAmBiB,SAAU,SAClC,IAAKnB,EAAOmB,SAAU,2BACtB,IAAKjB,EAAmBiB,SAAU,4BAGpCO,UAAW,IAAK3B,EAAMoB,SAAU,SAChCQ,aAAc,IAAK5B,EAAMoB,SAAU,aACnCS,cAAe,IAAK7B,EAAMoB,SAAU,aACpCU,eAAgB,IAAKzB,EAAOe,SAAU,aAEtCW,qBAAsB,CACpB,IAAK3B,EAAYgB,SAAU,oBAC3B,IAAKd,EAAWc,SAAU,qBAG5BY,sBAAuB,IAAKxB,EAAcY,SAAU,SACpDa,iBAAkB,IAAKzB,EAAcY,SAAU,oBAC/Cc,qBAAsB,IAAK1B,EAAcY,SAAU,mBACnDe,wBAAyB,IACpB3B,EACHY,SAAU,wBAEZgB,uBAAwB,IAAK5B,EAAcY,SAAU,qBACrDiB,yBAA0B,IACrB7B,EACHY,SAAU,uBAEZkB,qBAAsB,IAAK9B,EAAcY,SAAU,aAEnDmB,gBAAiB,IAAKhC,EAAYa,SAAU,2BAE5CoB,oBAAqB,CACnB,IAAKpC,EAAYgB,SAAU,SAC3B,IAAKV,EAAeU,SAAU,2BAC9B,IAAKP,EAAuBO,SAAU,4BAExCqB,oBAAqB,CACnB,IAAKpC,EAAOe,SAAU,eACtB,IAAKR,EAAeQ,SAAU,gBAGhCsB,uBAAwB,IAAKvC,EAAmBiB,SAAU,WAE1DuB,iBAAkB,IAAKvC,EAAYgB,SAAU,gBAC7CwB,iBAAkB,IAAKxC,EAAYgB,SAAU,gBAC7CyB,iBAAkB,IAAKzC,EAAYgB,SAAU,gBAC7C0B,kBAAmB,IAAK1C,EAAYgB,SAAU,iBAE9C2B,YAAa,IAAK3C,EAAYgB,SAAU,UACxC4B,uBAAwB,CACtB,IAAK3C,EAAOe,SAAU,gBACtB,IAAKf,EAAOe,SAAU,iBACtB,IAAKR,EAAeQ,SAAU,gBAC9B,IAAKR,EAAeQ,SAAU,kBAGhC6B,kBAAmB,IAAK7C,EAAYgB,SAAU,iBAC9C8B,kBAAmB,IAAK9C,EAAYgB,SAAU,iBAC9C+B,kBAAmB,IAAK/C,EAAYgB,SAAU,iBAC9CgC,mBAAoB,IAAKhD,EAAYgB,SAAU,kBAE/CiC,UAAW,CAAC,EAEZC,eAAgB,CACd,IAAKjD,EAAOe,SAAU,cACtB,IAAKR,EAAeQ,SAAU,eAGhCmC,sBAAuB,CACrB,CAAEvC,SAAU,IAAM,gCAAiCI,SAAU,SAC7D,IAAKN,EAAqBM,SAAU,SACpC,IAAKlB,EAAakB,SAAU,SAC5B,IAAKX,EAAqBW,SAAU,2BACpC,IAAKL,EAA6BK,SAAU,4BAG9CoC,cAAe,IAAKvD,EAAOmB,SAAU,YACrCqC,iBAAkB,IAAKxD,EAAOmB,SAAU,OACxCsC,wBAAyB,CACvB,IAAKzD,EAAOmB,SAAU,QACtB,IAAKnB,EAAOmB,SAAU,UAExBuC,gBAAiB,IAAK1D,EAAOmB,SAAU,aACvCwC,gBAAiB,IAAK3D,EAAOmB,SAAU,cACvCyC,kBAAmB,IAAK5D,EAAOmB,SAAU,uBACzC0C,mBAAoB,CAClB,CAAE9C,SAAU,4BAA6BI,SAAU,WACnD,IAAKN,EAAqBM,SAAU,YAEtC2C,uBAAwB,CACtB,IAAK3D,EAAYgB,SAAU,eAC3B,IAAKR,EAAeQ,SAAU,gBAEhC4C,iBAAkB,CAChB,IAAK3D,EAAOe,SAAU,UACtB,IAAKR,EAAeQ,SAAU,WAEhC6C,uBAAwB,CACtB,IAAK5D,EAAOe,SAAU,iBACtB,IAAKR,EAAeQ,SAAU,kBAGhC8C,gBAAiB,CACf,IAAKvD,EAAWS,SAAU,gBAC1B,IAAKT,EAAWS,SAAU,gBAE5B+C,cAAe,IAAKxD,EAAWS,SAAU,aACzCgD,eAAgB,IAAKzD,EAAWS,SAAU,SAC1CiD,kBAAmB,CACjB,IAAKhE,EAAOe,SAAU,yBACtB,IAAKf,EAAOe,SAAU,iBACtB,IAAKR,EAAeQ,SAAU,yBAC9B,IAAKR,EAAeQ,SAAU,kB,mIC1K3B,MAAMkD,GAAgB,QAAiB,gBAoCjCC,GAAmB,SAC9B,QAAiB,CACfC,SAAU,CACRC,OAAQ,CAAC,CAAC,EAAG,CAAEzD,SAAU,UACzBC,SAAU,CAAC,CAAED,SAAU,SAAW,CAAC,GACnCU,eAAgB,CAAEV,SAAU,QAASI,SAAU,SAC/CF,WAAY,CAAEF,SAAU,SACxBK,gBAAiB,CAAEL,SAAU,QAASI,SAAU,eAChDsD,UAAW,CACT,CAAE1D,SAAU,gBAAiBI,SAAU,UACvC,CAAEJ,SAAU,gBAAiBI,SAAU,UAEzCuD,qBAAsB,CAAE3D,SAAU,gBAAiBI,SAAU,oBAC7DwD,YAAa,CAAE5D,SAAU,gBAAiBI,SAAU,UACpDyD,iBAAkB,CAAE7D,SAAU,uBAAwBI,SAAU,gBAChE0D,kBAAmB,CAAE9D,SAAU,uBAAwBI,SAAU,gBACjE2D,iBAAkB,CAAE/D,SAAU,gBAAiBI,SAAU,eAAgB4D,SAAU,QACnFC,iBAAkB,CAAEjE,SAAU,gBAAiBI,SAAU,eAAgB4D,SAAU,GACnFE,iBAAkB,CAAElE,SAAU,gBAAiBI,SAAU,eAAgB4D,SAAU,aAGvF,QAAgB,CAAEG,WAAY,CAAC,uBAC/B,KAxDmBC,GACnB,cAA0BA,EACxB,WAAAC,GACEC,QAEAC,KAAKC,YAAYC,cAAgB,MACnC,CAEA,IAAAC,GAEEH,KAAKC,YAAYG,iBAAiB,kBAAoBC,IACpDL,KAAKM,cACH,IAAIC,YACF,kBACA,CAAEC,OAAQH,EAAEG,QACZ,CAAEC,SAAS,EAAMC,UAAU,OAKjCX,MAAMI,UAEN,QAAgBH,KAAMA,KAAKW,YAAYC,KAAKZ,MAC9C,CAEA,WAAAW,GACEX,KAAKC,YAAYY,aAAa,QAASb,KAAKc,YAC9C,CAEA,SAAIC,GACF,OAAOf,KAAKgB,aAAa,QAC3B,GAG4B,EAyB9B,QAAY,CACVC,MAAO,CAAC,IACRC,eAAgB,sBAChBC,iBAAkB,CAAC,WAAY,OAAQ,SACvCC,oBAAqB,CAAC,UAAW,OAAQ,YACzCrC,mBCzDS,GAAgB,QAAiB,eAgIjCsC,GAAkB,SAC7B,QAAiB,CACfpC,SAAU,IACLqC,EAAA,EACHC,eAAgB,CAAE9F,SAAU,sBAAuBI,SAAU,mBAC7D2F,cAAe,CAAE/F,SAAU,sBAAuBI,SAAU,WAC5D4F,iBAAkB,CAAEhG,SAAU,sBAAuBI,SAAU,cAC/D6F,gBAAiB,CACfjG,SAAU,IAAM,aAAauD,EAAiBD,iBAC9ClD,SAAUmD,EAAiB2C,WAAWhG,YAExCiG,qBAAsB,CACpBnG,SAAU,IAAM,aAAauD,EAAiBD,iBAC9ClD,SAAUmD,EAAiB2C,WAAW7F,iBAExC+F,gBAAiB,CACfpG,SAAU,IAAM,aAAauD,EAAiBD,iBAC9ClD,SAAUmD,EAAiB2C,WAAWxF,gBAExC2F,uBAAwB,CACtBrG,SAAU,IAAM,aAAauD,EAAiBD,iBAC9ClD,SAAUmD,EAAiB2C,WAAWpC,mBAExCwC,0BAA2B,CACzBtG,SAAU,IAAM,aAAauD,EAAiBD,iBAC9ClD,SAAUmD,EAAiB2C,WAAWvC,sBAExC4C,iCAAkC,CAChCvG,SAAU,IAAM,aAAauD,EAAiBD,iCAC9ClD,SAAUmD,EAAiB2C,WAAWvC,yBAI5C,MACA,QAAgB,CAAEQ,WAAY,CAAC,uBAC/B,KAjKuBC,GACvB,cAAmCA,EACjC,GAAc,EAAGkB,QAAOrG,WACtB,gCAAgCqG,MAAUrG,2BAE5C,GAEA,WAAAoF,GACEC,QAGAkC,OAAOC,eAAelC,KAAKC,YAAa,WAAY,CAClDkC,IAAK,IAAMnC,KAAKoC,iBAAiB,KAInCpC,KAAKC,YAAYoC,qBAAwBC,GACvCA,EAAMC,OAAQC,GAASA,EAAKC,YAAc,GAG5CzC,KAAKC,YAAYyC,kBAAoB,MACvC,CAEA,SAAIC,GACF,OAAO3C,KAAK4C,WAAWC,cAAc,QAAQC,kBAC/C,CAEA,QAAIC,GACF,OAAO/C,KAAKgB,aAAa,OAC3B,CAEA,QAAIgC,GACF,GAAIhD,MAAK,EAAO,OAAOA,MAAK,EAE5B,MAAMiD,EAAWjD,KAAKgB,aAAa,QAEnC,GAAIiC,EACF,IACE,MAAMD,EAAOE,KAAKC,MAAMF,GACxB,GAAIjD,KAAKoD,gBAAgBJ,GACvB,OAAOA,CAEX,CAAE,MAAO3C,GAEPgD,QAAQC,MAAM,uDAAwDjD,EAAEkD,QAC1E,CAGF,MAAO,EACT,CAEA,QAAIP,CAAKA,GACHhD,KAAKoD,gBAAgBJ,KACvBhD,MAAK,EAAQgD,EACbhD,KAAKwD,cAET,CAEA,gBAAIC,GACF,OAAOzD,KAAKgB,aAAa,gBAC3B,CAEA,eAAAoC,CAAgBJ,GACd,MAAMU,EAAUC,MAAMC,QAAQZ,GAM9B,OALKU,GAEHL,QAAQC,MAAM,mCAAoCN,GAG7CU,CACT,CAEA,gBAAAG,GACE,OAAO7D,KAAKgD,MAAMc,SAAS,CAACC,EAAKC,IAASD,GAAO/D,MAAK,IAAcgE,GAAQ,CAAC,IAAM,IAAK,GAC1F,CAEA,WAAAR,GACE,MAAMS,EAAWjE,KAAK6D,mBAClBI,IAAUjE,KAAKkE,UAAYD,EACjC,CAEA,IAAA9D,GACEJ,MAAMI,SAENH,KAAKmE,aAAenE,KAAKC,YAEzBD,KAAKwD,eAEL,QAAkBxD,KAAMA,KAAKwD,YAAY5C,KAAKZ,MAAO,CAAEoE,aAAc,CAAC,UAEtEnC,OAAOC,eAAelC,KAAKC,YAAa,WAAY,CAClDkC,IAAK,KAAM,CAAGkC,cAAerE,KAAKC,YAAYC,qBAGhD,QAAaF,KAAMA,KAAKC,YAAa,CACnCmE,aAAc,CAAC,UACfE,SAAU,CAAEC,OAAQ,WAGtBC,WAAW,KACLxE,KAAKyD,eACPzD,KAAKe,MAAQf,KAAKyD,iBAKtB,QAAgBzD,KAAM,EAAGyE,iBACvBA,EAAWC,QAASlC,IAClBA,EAAK3B,aAAa,OAAQb,KAAK+C,WAInC,QACE/C,KACA,KACEA,KAAK2C,MAAM+B,QAASV,IAClBA,EAAKnD,aAAa,OAAQb,KAAK+C,SAGnC,CACEqB,aAAc,CAAC,SAGrB,GAG2B,EAsC7B,QAAY,CACVnD,MAAO,CAAC,GAAI,UACZC,eAAgB,qBAChByD,MAAO,IAAM,+LAYX,QAAwB,8BAG1BxD,iBAAkB,CAAC,WAAY,OAAQ,OAAQ,YAAa,SAC5DpC,cAAa,EACbqC,oBAAqB,CAAC,Y,SCxM1BwD,eAAeC,OAAO,EAAoBxD,GAC1CuD,eAAeC,OAAO,EAAqB7F,E","sources":["webpack://@descope/web-components-ui/../components/descope-text-field/src/component/textFieldMappings.js","webpack://@descope/web-components-ui/./src/components/descope-radio-group/RadioButtonClass.js","webpack://@descope/web-components-ui/./src/components/descope-radio-group/RadioGroupClass.js","webpack://@descope/web-components-ui/./src/components/descope-radio-group/index.js"],"sourcesContent":["const {\n host,\n label,\n placeholder,\n requiredIndicator,\n inputField,\n input,\n inputMask,\n helperText,\n errorMessage,\n disabledPlaceholder,\n inputDisabled,\n inputIcon,\n externalInput,\n externalInputDisabled,\n externalPlaceholder,\n externalDisabledPlaceholder,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n requiredIndicator: {\n selector: '[required]::part(required-indicator)::after',\n },\n placeholder: [\n { selector: '> input:placeholder-shown' },\n { selector: () => ':host::slotted(input:placeholder-shown)' },\n ],\n disabledPlaceholder: { selector: '> input:disabled::placeholder' },\n inputField: { selector: '::part(input-field)' },\n input: { selector: 'input' },\n inputMask: { selector: '::part(input-field)::before' },\n inputDisabled: { selector: 'input:disabled' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n inputIcon: { selector: 'vaadin-icon' },\n externalInput: { selector: () => '::slotted(input)' },\n externalInputDisabled: { selector: () => '::slotted(input:disabled)' },\n externalPlaceholder: { selector: () => '::slotted(input:placeholder-shown)' },\n externalDisabledPlaceholder: {\n selector: () => '::slotted(input:disabled::placeholder)',\n },\n};\n\nexport default {\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n fontFamily: [label, inputField, helperText, errorMessage],\n\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n\n inputValueFontWeight: [\n { ...input, property: 'font-weight' },\n { ...externalInput, property: 'font-weight' },\n ],\n inputPlaceholderFontWeight: [\n {\n selector: () => ':host input:placeholder-shown',\n property: 'font-weight',\n },\n { ...externalPlaceholder, property: 'font-weight' },\n ],\n helperTextFontWeight: { ...helperText, property: 'font-weight' },\n errorMessageFontWeight: { ...errorMessage, property: 'font-weight' },\n\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n { ...label, property: '-webkit-text-fill-color' },\n { ...requiredIndicator, property: '-webkit-text-fill-color' },\n ],\n\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: { ...host, property: 'direction' },\n inputDirection: { ...input, property: 'direction' },\n\n inputBackgroundColor: [\n { ...inputField, property: 'background-color' },\n { ...inputMask, property: 'background-color' },\n ],\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: {\n ...errorMessage,\n property: 'padding-inline-start',\n },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: {\n ...errorMessage,\n property: 'background-position',\n },\n errorMessageFontSize: { ...errorMessage, property: 'font-size' },\n\n helperTextColor: { ...helperText, property: '-webkit-text-fill-color' },\n\n inputValueTextColor: [\n { ...inputField, property: 'color' },\n { ...inputDisabled, property: '-webkit-text-fill-color' },\n { ...externalInputDisabled, property: '-webkit-text-fill-color' },\n ],\n inputCaretTextColor: [\n { ...input, property: 'caret-color' },\n { ...externalInput, property: 'caret-color' },\n ],\n\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n inputHeight: { ...inputField, property: 'height' },\n inputHorizontalPadding: [\n { ...input, property: 'padding-left' },\n { ...input, property: 'padding-right' },\n { ...externalInput, property: 'padding-left' },\n { ...externalInput, property: 'padding-right' },\n ],\n\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n\n textAlign: {},\n\n inputTextAlign: [\n { ...input, property: 'text-align' },\n { ...externalInput, property: 'text-align' },\n ],\n\n inputPlaceholderColor: [\n { selector: () => ':host input:placeholder-shown', property: 'color' },\n { ...externalPlaceholder, property: 'color' },\n { ...placeholder, property: 'color' },\n { ...disabledPlaceholder, property: '-webkit-text-fill-color' },\n { ...externalDisabledPlaceholder, property: '-webkit-text-fill-color' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: [\n { selector: '> input:placeholder-shown', property: 'opacity' },\n { ...externalPlaceholder, property: 'opacity' },\n ],\n inputVerticalAlignment: [\n { ...inputField, property: 'align-items' },\n { ...externalInput, property: 'align-items' },\n ],\n valueInputHeight: [\n { ...input, property: 'height' },\n { ...externalInput, property: 'height' },\n ],\n valueInputMarginBottom: [\n { ...input, property: 'margin-bottom' },\n { ...externalInput, property: 'margin-bottom' },\n ],\n\n inputIconOffset: [\n { ...inputIcon, property: 'margin-right' },\n { ...inputIcon, property: 'margin-left' },\n ],\n inputIconSize: { ...inputIcon, property: 'font-size' },\n inputIconColor: { ...inputIcon, property: 'color' },\n inputTextSecurity: [\n { ...input, property: '-webkit-text-security' },\n { ...input, property: 'text-security' },\n { ...externalInput, property: '-webkit-text-security' },\n { ...externalInput, property: 'text-security' },\n ],\n};\n","import { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n proxyInputMixin,\n} from '../../mixins';\n\nexport const componentName = getComponentName('radio-button');\n\nconst customMixin = (superclass) =>\n class CustomMixin extends superclass {\n constructor() {\n super();\n\n this.baseElement.checkValidity = () => {};\n }\n\n init() {\n // we are forwarding vaadin checked-changed event\n this.baseElement.addEventListener('checked-changed', (e) => {\n this.dispatchEvent(\n new CustomEvent(\n 'checked-changed',\n { detail: e.detail },\n { bubbles: true, composed: true }\n )\n );\n });\n\n super.init?.();\n\n observeChildren(this, this.renderLabel.bind(this));\n }\n\n renderLabel() {\n this.baseElement.setAttribute('label', this.textContent);\n }\n\n get value() {\n return this.getAttribute('value');\n }\n };\n\nexport const RadioButtonClass = compose(\n createStyleMixin({\n mappings: {\n cursor: [{}, { selector: 'label' }],\n fontSize: [{ selector: 'label' }, {}],\n labelTextColor: { selector: 'label', property: 'color' },\n fontFamily: { selector: 'label' },\n labelFontWeight: { selector: 'label', property: 'font-weight' },\n radioSize: [\n { selector: '::part(radio)', property: 'height' },\n { selector: '::part(radio)', property: 'width' },\n ],\n radioBackgroundColor: { selector: '::part(radio)', property: 'background-color' },\n radioMargin: { selector: '::part(radio)', property: 'margin' },\n radioCheckedSize: { selector: '::part(radio)::after', property: 'border-width' },\n radioCheckedColor: { selector: '::part(radio)::after', property: 'border-color' },\n radioBorderColor: { selector: '::part(radio)', property: 'border-color', fallback: 'none' },\n radioBorderWidth: { selector: '::part(radio)', property: 'border-width', fallback: 0 },\n radioBorderStyle: { selector: '::part(radio)', property: 'border-style', fallback: 'solid' },\n },\n }),\n proxyInputMixin({ proxyProps: ['setSelectionRange'] }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [''],\n wrappedEleName: 'vaadin-radio-button',\n excludeAttrsSync: ['tabindex', 'data', 'style'],\n includeForwardProps: ['checked', 'name', 'disabled'],\n componentName,\n })\n);\n","import textFieldMappings from '@descope-ui/descope-text-field/mappings';\nimport { compose } from '../../helpers';\nimport {\n forwardAttrs,\n getComponentName,\n observeAttributes,\n observeChildren,\n} from '../../helpers/componentHelpers';\nimport { resetInputLabelPosition } from '../../helpers/themeHelpers/resetHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n proxyInputMixin,\n} from '../../mixins';\nimport { componentName as childNodeName, RadioButtonClass } from './RadioButtonClass';\n\nexport const componentName = getComponentName('radio-group');\n\nconst RadioGroupMixin = (superclass) =>\n class RadioGroupMixinClass extends superclass {\n #renderItem = ({ value, label }) =>\n `<descope-radio-button value=\"${value}\">${label}</descope-radio-button>`;\n\n #data;\n\n constructor() {\n super();\n\n // we are overriding vaadin children getter so it will run on our custom elements\n Object.defineProperty(this.baseElement, 'children', {\n get: () => this.querySelectorAll(childNodeName),\n });\n\n // we are overriding vaadin __filterRadioButtons so it will run on our custom elements\n this.baseElement.__filterRadioButtons = (nodes) =>\n nodes.filter((node) => node.localName === childNodeName);\n\n // vaadin radio group missing some input properties\n this.baseElement.setCustomValidity = () => {};\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n get size() {\n return this.getAttribute('size');\n }\n\n get data() {\n if (this.#data) return this.#data;\n\n const dataAttr = this.getAttribute('data');\n\n if (dataAttr) {\n try {\n const data = JSON.parse(dataAttr);\n if (this.isValidDataType(data)) {\n return data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"data\" - ', e.message);\n }\n }\n\n return [];\n }\n\n set data(data) {\n if (this.isValidDataType(data)) {\n this.#data = data;\n this.renderItems();\n }\n }\n\n get defaultValue() {\n return this.getAttribute('default-value');\n }\n\n isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data must be an array, received:', data);\n }\n\n return isValid;\n }\n\n getItemsTemplate() {\n return this.data?.reduce?.((acc, item) => acc + (this.#renderItem?.(item || {}) || ''), '');\n }\n\n renderItems() {\n const template = this.getItemsTemplate();\n if (template) this.innerHTML = template;\n }\n\n init() {\n super.init?.();\n\n this.inputElement = this.baseElement;\n\n this.renderItems();\n\n observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });\n\n Object.defineProperty(this.baseElement, 'validity', {\n get: () => ({ valueMissing: !this.baseElement.checkValidity() }),\n });\n\n forwardAttrs(this, this.baseElement, {\n includeAttrs: ['layout'],\n mapAttrs: { layout: 'theme' },\n });\n\n setTimeout(() => {\n if (this.defaultValue) {\n this.value = this.defaultValue;\n }\n });\n\n // we want new items to get the size\n observeChildren(this, ({ addedNodes }) => {\n addedNodes.forEach((node) => {\n node.setAttribute('size', this.size);\n });\n });\n\n observeAttributes(\n this,\n () => {\n this.items.forEach((item) => {\n item.setAttribute('size', this.size);\n });\n },\n {\n includeAttrs: ['size'],\n }\n );\n }\n };\n\nexport const RadioGroupClass = compose(\n createStyleMixin({\n mappings: {\n ...textFieldMappings,\n buttonsSpacing: { selector: '::part(group-field)', property: 'justify-content' },\n buttonsRowGap: { selector: '::part(group-field)', property: 'row-gap' },\n buttonsColumnGap: { selector: '::part(group-field)', property: 'column-gap' },\n itemsFontFamily: {\n selector: () => `::slotted(${RadioButtonClass.componentName})`,\n property: RadioButtonClass.cssVarList.fontFamily,\n },\n itemsLabelFontWeight: {\n selector: () => `::slotted(${RadioButtonClass.componentName})`,\n property: RadioButtonClass.cssVarList.labelFontWeight,\n },\n itemsLabelColor: {\n selector: () => `::slotted(${RadioButtonClass.componentName})`,\n property: RadioButtonClass.cssVarList.labelTextColor,\n },\n itemsRadioCheckedColor: {\n selector: () => `::slotted(${RadioButtonClass.componentName})`,\n property: RadioButtonClass.cssVarList.radioCheckedColor,\n },\n itemsRadioBackgroundColor: {\n selector: () => `::slotted(${RadioButtonClass.componentName})`,\n property: RadioButtonClass.cssVarList.radioBackgroundColor,\n },\n itemsRadioCheckedBackgroundColor: {\n selector: () => `::slotted(${RadioButtonClass.componentName}[checked=\"true\"])`,\n property: RadioButtonClass.cssVarList.radioBackgroundColor,\n },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['setSelectionRange'] }),\n componentNameValidationMixin,\n RadioGroupMixin\n)(\n createProxy({\n slots: ['', 'prefix'],\n wrappedEleName: 'vaadin-radio-group',\n style: () => `\n :host {\n display: inline-block;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n vaadin-radio-group {\n padding: 0;\n width: 100%;\n }\n\n ${resetInputLabelPosition('vaadin-radio-group')}\n `,\n\n excludeAttrsSync: ['tabindex', 'size', 'data', 'direction', 'style'],\n componentName,\n includeForwardProps: ['value'],\n })\n);\n","import { componentName as groupComponentName, RadioGroupClass } from './RadioGroupClass';\nimport { componentName as buttonComponentName, RadioButtonClass } from './RadioButtonClass';\nimport '@vaadin/radio-group';\n\ncustomElements.define(groupComponentName, RadioGroupClass);\ncustomElements.define(buttonComponentName, RadioButtonClass);\n\nexport { RadioGroupClass, groupComponentName as componentName };\n"],"names":["host","label","placeholder","requiredIndicator","inputField","input","inputMask","helperText","errorMessage","disabledPlaceholder","inputDisabled","inputIcon","externalInput","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","selector","fontSize","fontFamily","labelFontSize","property","labelFontWeight","inputValueFontWeight","inputPlaceholderFontWeight","helperTextFontWeight","errorMessageFontWeight","labelTextColor","hostWidth","hostMinWidth","hostDirection","inputDirection","inputBackgroundColor","errorMessageTextColor","errorMessageIcon","errorMessageIconSize","errorMessageIconPadding","errorMessageIconRepeat","errorMessageIconPosition","errorMessageFontSize","helperTextColor","inputValueTextColor","inputCaretTextColor","labelRequiredIndicator","inputBorderColor","inputBorderWidth","inputBorderStyle","inputBorderRadius","inputHeight","inputHorizontalPadding","inputOutlineColor","inputOutlineStyle","inputOutlineWidth","inputOutlineOffset","textAlign","inputTextAlign","inputPlaceholderColor","labelPosition","labelTopPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","valueInputHeight","valueInputMarginBottom","inputIconOffset","inputIconSize","inputIconColor","inputTextSecurity","componentName","RadioButtonClass","mappings","cursor","radioSize","radioBackgroundColor","radioMargin","radioCheckedSize","radioCheckedColor","radioBorderColor","fallback","radioBorderWidth","radioBorderStyle","proxyProps","superclass","constructor","super","this","baseElement","checkValidity","init","addEventListener","e","dispatchEvent","CustomEvent","detail","bubbles","composed","renderLabel","bind","setAttribute","textContent","value","getAttribute","slots","wrappedEleName","excludeAttrsSync","includeForwardProps","RadioGroupClass","textFieldMappings","buttonsSpacing","buttonsRowGap","buttonsColumnGap","itemsFontFamily","cssVarList","itemsLabelFontWeight","itemsLabelColor","itemsRadioCheckedColor","itemsRadioBackgroundColor","itemsRadioCheckedBackgroundColor","Object","defineProperty","get","querySelectorAll","__filterRadioButtons","nodes","filter","node","localName","setCustomValidity","items","shadowRoot","querySelector","assignedElements","size","data","dataAttr","JSON","parse","isValidDataType","console","error","message","renderItems","defaultValue","isValid","Array","isArray","getItemsTemplate","reduce","acc","item","template","innerHTML","inputElement","includeAttrs","valueMissing","mapAttrs","layout","setTimeout","addedNodes","forEach","style","customElements","define"],"sourceRoot":""}
1
+ {"version":3,"file":"descope-radio-group-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-text-field/src/component/textFieldMappings.js","webpack://@descope/web-components-ui/./src/components/descope-radio-group/descope-radio-button/RadioButtonClass.js","webpack://@descope/web-components-ui/./src/components/descope-radio-group/descope-radio-button/index.js","webpack://@descope/web-components-ui/./src/components/descope-radio-group/RadioGroupClass.js","webpack://@descope/web-components-ui/./src/components/descope-radio-group/index.js"],"sourcesContent":["const {\n host,\n label,\n placeholder,\n requiredIndicator,\n inputField,\n input,\n inputMask,\n helperText,\n errorMessage,\n disabledPlaceholder,\n inputDisabled,\n inputIcon,\n externalInput,\n externalInputDisabled,\n externalPlaceholder,\n externalDisabledPlaceholder,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n requiredIndicator: {\n selector: '[required]::part(required-indicator)::after',\n },\n placeholder: [\n { selector: '> input:placeholder-shown' },\n { selector: () => ':host::slotted(input:placeholder-shown)' },\n ],\n disabledPlaceholder: { selector: '> input:disabled::placeholder' },\n inputField: { selector: '::part(input-field)' },\n input: { selector: 'input' },\n inputMask: { selector: '::part(input-field)::before' },\n inputDisabled: { selector: 'input:disabled' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n inputIcon: { selector: 'vaadin-icon' },\n externalInput: { selector: () => '::slotted(input)' },\n externalInputDisabled: { selector: () => '::slotted(input:disabled)' },\n externalPlaceholder: { selector: () => '::slotted(input:placeholder-shown)' },\n externalDisabledPlaceholder: {\n selector: () => '::slotted(input:disabled::placeholder)',\n },\n};\n\nexport default {\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n fontFamily: [label, inputField, helperText, errorMessage],\n\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n\n inputValueFontWeight: [\n { ...input, property: 'font-weight' },\n { ...externalInput, property: 'font-weight' },\n ],\n inputPlaceholderFontWeight: [\n {\n selector: () => ':host input:placeholder-shown',\n property: 'font-weight',\n },\n { ...externalPlaceholder, property: 'font-weight' },\n ],\n helperTextFontWeight: { ...helperText, property: 'font-weight' },\n errorMessageFontWeight: { ...errorMessage, property: 'font-weight' },\n\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n { ...label, property: '-webkit-text-fill-color' },\n { ...requiredIndicator, property: '-webkit-text-fill-color' },\n ],\n\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: { ...host, property: 'direction' },\n inputDirection: { ...input, property: 'direction' },\n\n inputBackgroundColor: [\n { ...inputField, property: 'background-color' },\n { ...inputMask, property: 'background-color' },\n ],\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: {\n ...errorMessage,\n property: 'padding-inline-start',\n },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: {\n ...errorMessage,\n property: 'background-position',\n },\n errorMessageFontSize: { ...errorMessage, property: 'font-size' },\n\n helperTextColor: { ...helperText, property: '-webkit-text-fill-color' },\n\n inputValueTextColor: [\n { ...inputField, property: 'color' },\n { ...inputDisabled, property: '-webkit-text-fill-color' },\n { ...externalInputDisabled, property: '-webkit-text-fill-color' },\n ],\n inputCaretTextColor: [\n { ...input, property: 'caret-color' },\n { ...externalInput, property: 'caret-color' },\n ],\n\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n inputHeight: { ...inputField, property: 'height' },\n inputHorizontalPadding: [\n { ...input, property: 'padding-left' },\n { ...input, property: 'padding-right' },\n { ...externalInput, property: 'padding-left' },\n { ...externalInput, property: 'padding-right' },\n ],\n\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n\n textAlign: {},\n\n inputTextAlign: [\n { ...input, property: 'text-align' },\n { ...externalInput, property: 'text-align' },\n ],\n\n inputPlaceholderColor: [\n { selector: () => ':host input:placeholder-shown', property: 'color' },\n { ...externalPlaceholder, property: 'color' },\n { ...placeholder, property: 'color' },\n { ...disabledPlaceholder, property: '-webkit-text-fill-color' },\n { ...externalDisabledPlaceholder, property: '-webkit-text-fill-color' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: [\n { selector: '> input:placeholder-shown', property: 'opacity' },\n { ...externalPlaceholder, property: 'opacity' },\n ],\n inputVerticalAlignment: [\n { ...inputField, property: 'align-items' },\n { ...externalInput, property: 'align-items' },\n ],\n valueInputHeight: [\n { ...input, property: 'height' },\n { ...externalInput, property: 'height' },\n ],\n valueInputMarginBottom: [\n { ...input, property: 'margin-bottom' },\n { ...externalInput, property: 'margin-bottom' },\n ],\n\n inputIconOffset: [\n { ...inputIcon, property: 'margin-right' },\n { ...inputIcon, property: 'margin-left' },\n ],\n inputIconSize: { ...inputIcon, property: 'font-size' },\n inputIconColor: { ...inputIcon, property: 'color' },\n inputTextSecurity: [\n { ...input, property: '-webkit-text-security' },\n { ...input, property: 'text-security' },\n { ...externalInput, property: '-webkit-text-security' },\n { ...externalInput, property: 'text-security' },\n ],\n};\n","import { compose } from '../../../helpers';\nimport { getComponentName, observeChildren } from '../../../helpers/componentHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n proxyInputMixin,\n} from '../../../mixins';\n\nexport const componentName = getComponentName('radio-button');\n\nconst customMixin = (superclass) =>\n class CustomMixin extends superclass {\n constructor() {\n super();\n\n this.baseElement.checkValidity = () => {};\n }\n\n init() {\n // we are forwarding vaadin checked-changed event\n this.baseElement.addEventListener('checked-changed', (e) => {\n this.dispatchEvent(\n new CustomEvent(\n 'checked-changed',\n { detail: e.detail },\n { bubbles: true, composed: true }\n )\n );\n });\n\n super.init?.();\n\n observeChildren(this, this.renderLabel.bind(this));\n }\n\n renderLabel() {\n this.baseElement.setAttribute('label', this.textContent);\n }\n\n get value() {\n return this.getAttribute('value');\n }\n };\n\nexport const RadioButtonClass = compose(\n createStyleMixin({\n mappings: {\n cursor: [{}, { selector: 'label' }],\n fontSize: [{ selector: 'label' }, {}],\n labelTextColor: { selector: 'label', property: 'color' },\n fontFamily: { selector: 'label' },\n labelFontWeight: { selector: 'label', property: 'font-weight' },\n radioSize: [\n { selector: '::part(radio)', property: 'height' },\n { selector: '::part(radio)', property: 'width' },\n ],\n radioBackgroundColor: { selector: '::part(radio)', property: 'background-color' },\n radioMargin: { selector: '::part(radio)', property: 'margin' },\n radioCheckedSize: { selector: '::part(radio)::after', property: 'border-width' },\n radioCheckedColor: { selector: '::part(radio)::after', property: 'border-color' },\n radioBorderColor: { selector: '::part(radio)', property: 'border-color', fallback: 'none' },\n radioBorderWidth: { selector: '::part(radio)', property: 'border-width', fallback: 0 },\n radioBorderStyle: { selector: '::part(radio)', property: 'border-style', fallback: 'solid' },\n },\n }),\n proxyInputMixin({ proxyProps: ['setSelectionRange'] }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [''],\n wrappedEleName: 'vaadin-radio-button',\n excludeAttrsSync: ['tabindex', 'data', 'style'],\n includeForwardProps: ['checked', 'name', 'disabled'],\n componentName,\n })\n);\n","import { componentName, RadioButtonClass } from './RadioButtonClass';\nimport '@vaadin/radio-group';\n\ncustomElements.define(componentName, RadioButtonClass);\n\nexport { RadioButtonClass, componentName };\n","import textFieldMappings from '@descope-ui/descope-text-field/mappings';\nimport { compose } from '../../helpers';\nimport {\n forwardAttrs,\n getComponentName,\n observeAttributes,\n observeChildren,\n} from '../../helpers/componentHelpers';\nimport { resetInputLabelPosition } from '../../helpers/themeHelpers/resetHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n proxyInputMixin,\n} from '../../mixins';\nimport {\n componentName as childNodeName,\n RadioButtonClass,\n} from './descope-radio-button/RadioButtonClass';\n\nexport const componentName = getComponentName('radio-group');\n\nconst RadioGroupMixin = (superclass) =>\n class RadioGroupMixinClass extends superclass {\n #renderItem = ({ value, label }) =>\n `<descope-radio-button value=\"${value}\">${label}</descope-radio-button>`;\n\n #data;\n\n constructor() {\n super();\n\n // we are overriding vaadin children getter so it will run on our custom elements\n Object.defineProperty(this.baseElement, 'children', {\n get: () => this.querySelectorAll(childNodeName),\n });\n\n // we are overriding vaadin __filterRadioButtons so it will run on our custom elements\n this.baseElement.__filterRadioButtons = (nodes) =>\n nodes.filter((node) => node.localName === childNodeName);\n\n // vaadin radio group missing some input properties\n this.baseElement.setCustomValidity = () => {};\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n get size() {\n return this.getAttribute('size');\n }\n\n get data() {\n if (this.#data) return this.#data;\n\n const dataAttr = this.getAttribute('data');\n\n if (dataAttr) {\n try {\n const data = JSON.parse(dataAttr);\n if (this.isValidDataType(data)) {\n return data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"data\" - ', e.message);\n }\n }\n\n return [];\n }\n\n set data(data) {\n if (this.isValidDataType(data)) {\n this.#data = data;\n this.renderItems();\n }\n }\n\n get defaultValue() {\n return this.getAttribute('default-value');\n }\n\n isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data must be an array, received:', data);\n }\n\n return isValid;\n }\n\n getItemsTemplate() {\n return this.data?.reduce?.((acc, item) => acc + (this.#renderItem?.(item || {}) || ''), '');\n }\n\n renderItems() {\n const template = this.getItemsTemplate();\n if (template) this.innerHTML = template;\n }\n\n init() {\n super.init?.();\n\n this.inputElement = this.baseElement;\n\n this.renderItems();\n\n observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });\n\n Object.defineProperty(this.baseElement, 'validity', {\n get: () => ({ valueMissing: !this.baseElement.checkValidity() }),\n });\n\n forwardAttrs(this, this.baseElement, {\n includeAttrs: ['layout'],\n mapAttrs: { layout: 'theme' },\n });\n\n setTimeout(() => {\n if (this.defaultValue) {\n this.value = this.defaultValue;\n }\n });\n\n // we want new items to get the size\n observeChildren(this, ({ addedNodes }) => {\n addedNodes.forEach((node) => {\n node.setAttribute('size', this.size);\n });\n });\n\n observeAttributes(\n this,\n () => {\n this.items.forEach((item) => {\n item.setAttribute('size', this.size);\n });\n },\n {\n includeAttrs: ['size'],\n }\n );\n }\n };\n\nexport const RadioGroupClass = compose(\n createStyleMixin({\n mappings: {\n ...textFieldMappings,\n buttonsSpacing: { selector: '::part(group-field)', property: 'justify-content' },\n buttonsRowGap: { selector: '::part(group-field)', property: 'row-gap' },\n buttonsColumnGap: { selector: '::part(group-field)', property: 'column-gap' },\n itemsFontFamily: {\n selector: () => `::slotted(${RadioButtonClass.componentName})`,\n property: RadioButtonClass.cssVarList.fontFamily,\n },\n itemsLabelFontWeight: {\n selector: () => `::slotted(${RadioButtonClass.componentName})`,\n property: RadioButtonClass.cssVarList.labelFontWeight,\n },\n itemsLabelColor: {\n selector: () => `::slotted(${RadioButtonClass.componentName})`,\n property: RadioButtonClass.cssVarList.labelTextColor,\n },\n itemsRadioCheckedColor: {\n selector: () => `::slotted(${RadioButtonClass.componentName})`,\n property: RadioButtonClass.cssVarList.radioCheckedColor,\n },\n itemsRadioBackgroundColor: {\n selector: () => `::slotted(${RadioButtonClass.componentName})`,\n property: RadioButtonClass.cssVarList.radioBackgroundColor,\n },\n itemsRadioCheckedBackgroundColor: {\n selector: () => `::slotted(${RadioButtonClass.componentName}[checked=\"true\"])`,\n property: RadioButtonClass.cssVarList.radioBackgroundColor,\n },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['setSelectionRange'] }),\n componentNameValidationMixin,\n RadioGroupMixin\n)(\n createProxy({\n slots: ['', 'prefix'],\n wrappedEleName: 'vaadin-radio-group',\n style: () => `\n :host {\n display: inline-block;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n vaadin-radio-group {\n padding: 0;\n width: 100%;\n }\n\n ${resetInputLabelPosition('vaadin-radio-group')}\n `,\n\n excludeAttrsSync: ['tabindex', 'size', 'data', 'direction', 'style'],\n componentName,\n includeForwardProps: ['value'],\n })\n);\n","import { componentName as groupComponentName, RadioGroupClass } from './RadioGroupClass';\nimport '@vaadin/radio-group';\nimport './descope-radio-button';\n\ncustomElements.define(groupComponentName, RadioGroupClass);\n\nexport { RadioGroupClass, groupComponentName as componentName };\n"],"names":["host","label","placeholder","requiredIndicator","inputField","input","inputMask","helperText","errorMessage","disabledPlaceholder","inputDisabled","inputIcon","externalInput","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","selector","fontSize","fontFamily","labelFontSize","property","labelFontWeight","inputValueFontWeight","inputPlaceholderFontWeight","helperTextFontWeight","errorMessageFontWeight","labelTextColor","hostWidth","hostMinWidth","hostDirection","inputDirection","inputBackgroundColor","errorMessageTextColor","errorMessageIcon","errorMessageIconSize","errorMessageIconPadding","errorMessageIconRepeat","errorMessageIconPosition","errorMessageFontSize","helperTextColor","inputValueTextColor","inputCaretTextColor","labelRequiredIndicator","inputBorderColor","inputBorderWidth","inputBorderStyle","inputBorderRadius","inputHeight","inputHorizontalPadding","inputOutlineColor","inputOutlineStyle","inputOutlineWidth","inputOutlineOffset","textAlign","inputTextAlign","inputPlaceholderColor","labelPosition","labelTopPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","valueInputHeight","valueInputMarginBottom","inputIconOffset","inputIconSize","inputIconColor","inputTextSecurity","componentName","RadioButtonClass","mappings","cursor","radioSize","radioBackgroundColor","radioMargin","radioCheckedSize","radioCheckedColor","radioBorderColor","fallback","radioBorderWidth","radioBorderStyle","proxyProps","superclass","constructor","super","this","baseElement","checkValidity","init","addEventListener","e","dispatchEvent","CustomEvent","detail","bubbles","composed","renderLabel","bind","setAttribute","textContent","value","getAttribute","slots","wrappedEleName","excludeAttrsSync","includeForwardProps","customElements","define","RadioGroupClass","textFieldMappings","buttonsSpacing","buttonsRowGap","buttonsColumnGap","itemsFontFamily","cssVarList","itemsLabelFontWeight","itemsLabelColor","itemsRadioCheckedColor","itemsRadioBackgroundColor","itemsRadioCheckedBackgroundColor","Object","defineProperty","get","querySelectorAll","__filterRadioButtons","nodes","filter","node","localName","setCustomValidity","items","shadowRoot","querySelector","assignedElements","size","data","dataAttr","JSON","parse","isValidDataType","console","error","message","renderItems","defaultValue","isValid","Array","isArray","getItemsTemplate","reduce","acc","item","template","innerHTML","inputElement","includeAttrs","valueMissing","mapAttrs","layout","setTimeout","addedNodes","forEach","style"],"sourceRoot":""}