@descope/web-components-ui 1.100.0 → 1.102.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/cjs/index.cjs.js +1913 -1637
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +1864 -1587
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/1995.js +22 -7
  6. package/dist/umd/1995.js.LICENSE.txt +6 -0
  7. package/dist/umd/1995.js.map +1 -1
  8. package/dist/umd/6063.js +18 -0
  9. package/dist/umd/6063.js.map +1 -0
  10. package/dist/umd/6818.js +3 -0
  11. package/dist/umd/6818.js.map +1 -0
  12. package/dist/umd/{189.js → 8248.js} +4 -4
  13. package/dist/umd/8248.js.map +1 -0
  14. package/dist/umd/8961.js +1 -1
  15. package/dist/umd/8961.js.map +1 -1
  16. package/dist/umd/8968.js +432 -0
  17. package/dist/umd/8968.js.map +1 -0
  18. package/dist/umd/8983.js +324 -7
  19. package/dist/umd/8983.js.map +1 -1
  20. package/dist/umd/{384.js → 9117.js} +9 -121
  21. package/dist/umd/9117.js.map +1 -0
  22. package/dist/umd/9275.js +18 -0
  23. package/dist/umd/9275.js.LICENSE.txt +23 -0
  24. package/dist/umd/9275.js.map +1 -0
  25. package/dist/umd/DescopeDev.js +1 -1
  26. package/dist/umd/DescopeDev.js.map +1 -1
  27. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js +1 -1
  28. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js.map +1 -1
  29. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js +1 -1
  30. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js.map +1 -1
  31. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js +338 -1
  32. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js.LICENSE.txt +5 -0
  33. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js.map +1 -1
  34. package/dist/umd/descope-apps-list-index-js.js +1 -1
  35. package/dist/umd/descope-apps-list-index-js.js.map +1 -1
  36. package/dist/umd/descope-button.js +4 -4
  37. package/dist/umd/descope-button.js.LICENSE.txt +0 -6
  38. package/dist/umd/descope-button.js.map +1 -1
  39. package/dist/umd/descope-collapsible-container.js +1 -1
  40. package/dist/umd/descope-collapsible-container.js.map +1 -1
  41. package/dist/umd/descope-divider-index-js.js +1 -1
  42. package/dist/umd/descope-divider-index-js.js.map +1 -1
  43. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js +321 -4
  44. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js.LICENSE.txt +6 -0
  45. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js.map +1 -1
  46. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js +322 -5
  47. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js.map +1 -1
  48. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js +321 -4
  49. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js.LICENSE.txt +6 -0
  50. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js.map +1 -1
  51. package/dist/umd/descope-hybrid-field-index-js.js +1 -1
  52. package/dist/umd/descope-hybrid-field-index-js.js.map +1 -1
  53. package/dist/umd/descope-link-index-js.js +1 -1
  54. package/dist/umd/descope-link-index-js.js.map +1 -1
  55. package/dist/umd/descope-recovery-codes.js +2 -0
  56. package/dist/umd/descope-recovery-codes.js.map +1 -0
  57. package/dist/umd/descope-security-questions-verify-index-js.js +1 -1
  58. package/dist/umd/descope-security-questions-verify-index-js.js.map +1 -1
  59. package/dist/umd/descope-text.js +1 -1
  60. package/dist/umd/descope-text.js.map +1 -1
  61. package/dist/umd/descope-timer-button.js +338 -1
  62. package/dist/umd/descope-timer-button.js.LICENSE.txt +5 -0
  63. package/dist/umd/descope-timer-button.js.map +1 -1
  64. package/dist/umd/descope-upload-file-index-js.js +338 -1
  65. package/dist/umd/descope-upload-file-index-js.js.LICENSE.txt +5 -0
  66. package/dist/umd/descope-upload-file-index-js.js.map +1 -1
  67. package/dist/umd/descope-user-attribute-index-js.js +338 -1
  68. package/dist/umd/descope-user-attribute-index-js.js.map +1 -1
  69. package/dist/umd/descope-user-auth-method-index-js.js +338 -1
  70. package/dist/umd/descope-user-auth-method-index-js.js.map +1 -1
  71. package/dist/umd/index.js +1 -1
  72. package/dist/umd/index.js.map +1 -1
  73. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
  74. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js.map +1 -1
  75. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js +1 -1
  76. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js.map +1 -1
  77. package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js +1 -1
  78. package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js.map +1 -1
  79. package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +1 -1
  80. package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js.map +1 -1
  81. package/package.json +15 -14
  82. package/src/components/phone-fields/descope-phone-input-box-field/descope-phone-input-box-internal/PhoneFieldInternalInputBox.js +1 -1
  83. package/src/theme/components/index.js +2 -0
  84. package/dist/umd/189.js.map +0 -1
  85. package/dist/umd/2894.js +0 -339
  86. package/dist/umd/2894.js.map +0 -1
  87. package/dist/umd/3792.js +0 -339
  88. package/dist/umd/3792.js.map +0 -1
  89. package/dist/umd/384.js.map +0 -1
  90. package/dist/umd/513.js +0 -339
  91. package/dist/umd/513.js.map +0 -1
  92. package/dist/umd/6227.js +0 -320
  93. package/dist/umd/6227.js.map +0 -1
  94. package/dist/umd/6649.js +0 -339
  95. package/dist/umd/6649.js.LICENSE.txt +0 -11
  96. package/dist/umd/6649.js.map +0 -1
  97. package/dist/umd/9030.js +0 -339
  98. package/dist/umd/9030.js.LICENSE.txt +0 -11
  99. package/dist/umd/9030.js.map +0 -1
  100. package/dist/umd/9380.js +0 -130
  101. package/dist/umd/9380.js.map +0 -1
  102. /package/dist/umd/{189.js.LICENSE.txt → 6063.js.LICENSE.txt} +0 -0
  103. /package/dist/umd/{6227.js.LICENSE.txt → 6818.js.LICENSE.txt} +0 -0
  104. /package/dist/umd/{9380.js.LICENSE.txt → 8248.js.LICENSE.txt} +0 -0
  105. /package/dist/umd/{2894.js.LICENSE.txt → 8968.js.LICENSE.txt} +0 -0
  106. /package/dist/umd/{3792.js.LICENSE.txt → 9117.js.LICENSE.txt} +0 -0
  107. /package/dist/umd/{384.js.LICENSE.txt → descope-user-attribute-index-js.js.LICENSE.txt} +0 -0
  108. /package/dist/umd/{513.js.LICENSE.txt → descope-user-auth-method-index-js.js.LICENSE.txt} +0 -0
@@ -1,2 +1,339 @@
1
- (self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[2294,9553,9990],{9427:t=>{t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTggMEMzLjYgMCAwIDMuNiAwIDhDMCAxMi40IDMuNiAxNiA4IDE2QzEyLjQgMTYgMTYgMTIuNCAxNiA4QzE2IDMuNiAxMi40IDAgOCAwWk03LjEgMTEuN0wyLjkgNy42TDQuMyA2LjJMNyA4LjlMMTIgNEwxMy40IDUuNEw3LjEgMTEuN1oiIGZpbGw9IiM0Q0FGNTAiLz4gPC9zdmc+IA=="},10767:(t,e,n)=>{"use strict";n.d(e,{G:()=>o});const o=t=>class extends t{get isLoading(){return"true"===this.getAttribute("loading")}click(){this.isLoading||super.click()}}},19624:(t,e,n)=>{"use strict";n.d(e,{J:()=>u,T:()=>l});var o=n(63200),i=n(25964),r=n(88961),s=n(98538),a=n(10767);const l=(0,i.xE)("button"),{host:d,label:p,slottedIcon:c}={host:{selector:()=>":host"},label:{selector:"::part(label)"},slottedIcon:{selector:()=>"::slotted(descope-icon)"}};let h;const u=(0,o.Zz)((0,r.RF)({mappings:{hostWidth:{property:"width"},hostHeight:{property:"height"},hostDirection:{...d,property:"direction"},fontSize:{},fontFamily:{},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:{...p,property:"text-decoration"},labelSpacing:{...p,property:"gap"},textAlign:{...p,property:"justify-content",fallback:"center"},iconSize:[{...c,property:"width"},{...c,property:"height"}]}}),a.G,r.VO,r.tQ)((0,r.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(${u.cssVarList.outlineWidth}) + var(${u.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width="true"]) {\n width: var(${u.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${u.cssVarList.hostHeight}) - var(${u.cssVarList.outlineWidth}) - var(${u.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square="true"]:not([full-width="true"]) {\n\t\t\t\twidth: calc(var(${u.cssVarList.hostWidth}) - var(${u.cssVarList.outlineWidth}) - var(${u.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,excludeAttrsSync:["tabindex"],componentName:l})),{color:b,fontSize:g}=u.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(${b});\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`},26442:(t,e,n)=>{"use strict";n.d(e,{T:()=>l,e:()=>p});var o=n(79365),i=n(81365),r=n(9696),s=n(97810),a=n(25964);const l=(0,s.xE)("badge");class d extends((0,i.q)({componentName:l,baseSelector:":host > div"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<div>\n <slot></slot>\n\t\t</div>\n\t\t",(0,a.fz)("\n :host {\n display: inline-flex;\n }\n :host > div {\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n ",this)}}const p=(0,r.Zz)((0,o.RF)({mappings:{hostWidth:[{selector:()=>":host",property:"width"}],hostDirection:{property:"direction"},fontFamily:{},fontSize:{},fontWeight:{},textTransform:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],borderWidth:{},borderStyle:{},borderColor:{},borderRadius:{},backgroundColor:{},textColor:{property:"color"},textAlign:{}}}),o.VO,o.tQ)(d)},30576:(t,e,n)=>{"use strict";n.r(e),n.d(e,{ButtonClass:()=>o.J,componentName:()=>o.T});var o=n(19624);n(83799),customElements.define(o.T,o.J)},63595:(t,e,n)=>{"use strict";n.r(e),n.d(e,{TextClass:()=>o.s,componentName:()=>o.T});var o=n(66434);customElements.define(o.T,o.s)},66434:(t,e,n)=>{"use strict";n.d(e,{T:()=>a,s:()=>d});var o=n(88961),i=n(63200),r=n(25964),s=n(72270);const a=(0,r.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,r.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,r.Ge)(this,(()=>{const t=!!this.childNodes.length;this.style.display=!t&&this.hideWhenEmpty?"none":""}))}}const d=(0,i.Zz)((0,o.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},hostDirection:{selector:()=>":host",property:"direction"},fontSize:{},textColor:{property:"color"},textLineHeight:{property:"line-height"},textLetterSpacing:{property:"letter-spacing"},textShadow:{},textAlign:{},textTransform:{},fontFamily:{},fontStyle:{},fontWeight:{},borderWidth:{},borderStyle:{},borderColor:{}}}),o.VO,o.tQ)(l)},67760:(t,e,n)=>{"use strict";n.r(e),n.d(e,{UserAuthMethodClass:()=>L,componentName:()=>b});var o=n(79365),i=n(81365),r=n(9696),s=n(97810),a=n(9427),l=n.n(a),d=n(66434),p=n(19624),c=n(26442),h=n(98538),u=n(25964);const b=(0,s.xE)("user-auth-method");class g extends((0,i.q)({componentName:b,baseSelector:":host > .root"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML=`\n <div class="root">\n <div class="text-wrapper">\n <slot name="method-icon"></slot>\n <descope-text st-text-align="auto" data-id="label-text" variant="body1" mode="primary"></descope-text>\n </div>\n\n <div class="btn-wrapper">\n <descope-button size="sm" variant="link" mode="primary">\n <slot name="button-icon"></slot>\n </descope-button>\n <div class="fulfilled-indicator">\n <vaadin-icon src=${l()}></vaadin-icon>\n </div>\n <descope-button class="hidden-btn" size="sm" variant="link" mode="primary"></descope-button>\n </div>\n </div>\n\t\t`,(0,u.fz)('\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n vaadin-icon {\n color: currentcolor;\n }\n\n .root {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n }\n\n .btn-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-grow: 0;\n }\n\n .text-wrapper {\n display: flex;\n align-items: center;\n flex-grow: 1;\n }\n\n descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: initial;\n }\n\n descope-text {\n display: inline-flex;\n }\n\n .fulfilled-indicator {\n width: 1em;\n height: 1em;\n display: flex;\n align-items: center;\n padding-inline-end: 1em;\n }\n\n .hidden {\n display: none;\n }\n\n .hidden-btn {\n width: 0;\n overflow: hidden;\n }\n\n slot[name="method-icon"]{\n display: inline-flex;\n align-items: center;\n }\n ',this),this.button=this.shadowRoot.querySelector("descope-button"),this.fulfilledIndicator=this.shadowRoot.querySelector(".fulfilled-indicator"),this.labelText=this.shadowRoot.querySelector('descope-text[data-id="label-text"]')}onLabelChange(){this.labelText.innerText=this.label,this.labelText.setAttribute("title",this.label)}onButtonLabelChange(){let t=this.button.querySelector("span");this.buttonLabel?(t||(t=document.createElement("span"),this.button.appendChild(t)),t.innerText=this.buttonLabel):t&&this.button.removeChild(t)}onFulfilledChange(){this.button.classList.toggle("hidden",this.isFulfilled),this.fulfilledIndicator.classList.toggle("hidden",!this.isFulfilled)}get label(){return this.getAttribute("label")||""}get buttonLabel(){return this.getAttribute("button-label")||""}get isFulfilled(){return"true"===this.getAttribute("fulfilled")}init(){this.onLabelChange(),this.onButtonLabelChange(),this.onFulfilledChange(),this.button.addEventListener("click",(()=>this.dispatchEvent(new CustomEvent("button-clicked",{bubbles:!0,composed:!0}))))}static get observedAttributes(){return["label","fulfilled"].concat(super.observedAttributes)}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&("label"===t?this.onLabelChange():"fulfilled"===t?this.onFulfilledChange():"button-label"===t&&this.onButtonLabelChange())}}const{host:m,textField:f,buttons:y,badge:x,textWrapper:v,methodIconSlot:w}={host:{selector:()=>":host"},textField:{selector:"descope-text"},buttons:{selector:"descope-button"},badge:{selector:"descope-badge"},textWrapper:{selector:" .text-wrapper"},methodIconSlot:{selector:'slot[name="method-icon"]'}},L=(0,r.Zz)((0,o.RF)({mappings:{hostWidth:{...m,property:"width"},hostMinWidth:{...m,property:"min-width"},hostDirection:[{...m,property:"direction"},{...f,property:d.s.cssVarList.hostDirection},{...y,property:p.J.cssVarList.hostDirection},{...x,property:c.e.cssVarList.hostDirection}],labelTextWidth:{...f,property:"width"},itemsGap:[{property:"gap"},{...v,property:"gap"}],iconSize:[{...w,property:"width"},{...w,property:"height"}],iconColor:[{selector:()=>"::slotted(*)",property:h.S.cssVarList.fill}]}}),o.VO,o.tQ)(g);n(63595),n(30576),n(91359),n(95260),customElements.define(b,L)},91359:(t,e,n)=>{"use strict";n.r(e),n.d(e,{BadgeClass:()=>o.e,componentName:()=>o.T});var o=n(26442);customElements.define(o.T,o.e)},98538:(t,e,n)=>{"use strict";n.d(e,{S:()=>a,T:()=>s});var o=n(88961),i=n(25964),r=n(63200);const s=(0,i.xE)("icon"),a=(0,r.Zz)((0,o.RF)({mappings:{fill:{}}}),o.VO,o.tQ)((0,o.tz)({slots:[],wrappedEleName:"descope-image",style:()=>"\n :host {\n display: inline-flex;\n }\n ",excludeAttrsSync:["tabindex","class"],componentName:s}))}}]);
1
+ /*! For license information please see descope-user-auth-method-index-js.js.LICENSE.txt */
2
+ (self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[2294,5087,9553,9990],{4080:(t,e,o)=>{"use strict";o.d(e,{CI:()=>h,H8:()=>a,gm:()=>s,m0:()=>i,nr:()=>c,un:()=>d});const n=t=>t.test(navigator.userAgent),r=t=>t.test(navigator.platform),i=n(/Android/u),a=n(/Chrome/u)&&/Google Inc/u.test(navigator.vendor),s=n(/Firefox/u),l=r(/^iPad/u)||r(/^Mac/u)&&navigator.maxTouchPoints>1,d=r(/^iPhone/u)||l,c=n(/^((?!chrome|android).)*safari/iu),h=(()=>{try{return document.createEvent("TouchEvent"),!0}catch(t){return!1}})()},9427:t=>{t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTggMEMzLjYgMCAwIDMuNiAwIDhDMCAxMi40IDMuNiAxNiA4IDE2QzEyLjQgMTYgMTYgMTIuNCAxNiA4QzE2IDMuNiAxMi40IDAgOCAwWk03LjEgMTEuN0wyLjkgNy42TDQuMyA2LjJMNyA4LjlMMTIgNEwxMy40IDUuNEw3LjEgMTEuN1oiIGZpbGw9IiM0Q0FGNTAiLz4gPC9zdmc+IA=="},10767:(t,e,o)=>{"use strict";o.d(e,{G:()=>n});const n=t=>class extends t{get isLoading(){return"true"===this.getAttribute("loading")}click(){this.isLoading||super.click()}}},19624:(t,e,o)=>{"use strict";o.d(e,{J:()=>p,T:()=>l});var n=o(63200),r=o(25964),i=o(88961),a=o(98538),s=o(10767);const l=(0,r.xE)("button"),{host:d,label:c,slottedIcon:h}={host:{selector:()=>":host"},label:{selector:"::part(label)"},slottedIcon:{selector:()=>"::slotted(descope-icon)"}};let u;const p=(0,n.Zz)((0,i.RF)({mappings:{hostWidth:{property:"width"},hostHeight:{property:"height"},hostDirection:{...d,property:"direction"},fontSize:{},fontFamily:{},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:a.S.cssVarList.fill},labelTextDecoration:{...c,property:"text-decoration"},labelSpacing:{...c,property:"gap"},textAlign:{...c,property:"justify-content",fallback:"center"},iconSize:[{...h,property:"width"},{...h,property:"height"}]}}),s.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${u}\n\t\t\tvaadin-button::part(label) { pointer-events: none; }\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${p.cssVarList.outlineWidth}) + var(${p.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width="true"]) {\n width: var(${p.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${p.cssVarList.hostHeight}) - var(${p.cssVarList.outlineWidth}) - var(${p.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square="true"]:not([full-width="true"]) {\n\t\t\t\twidth: calc(var(${p.cssVarList.hostWidth}) - var(${p.cssVarList.outlineWidth}) - var(${p.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,excludeAttrsSync:["tabindex"],componentName:l})),{color:m,fontSize:b}=p.cssVarList;u=`\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(${m});\n\t\ttop: calc(50% - (var(${b}) / 2));\n\t\tleft: calc(50% - (var(${b}) / 2));\n\t\tborder-width: calc(var(${b}) / 10);\n\t\twidth: var(${b});\n\t\theight: var(${b});\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`},21961:(t,e,o)=>{"use strict";o.d(e,{C:()=>i});var n=o(98741);const r=new WeakMap,i=(0,n.y)((t=>class extends t{get slotStyles(){return{}}connectedCallback(){super.connectedCallback(),this.__applySlotStyles()}__applySlotStyles(){const t=this.getRootNode(),e=function(t){return r.has(t)||r.set(t,new Set),r.get(t)}(t);this.slotStyles.forEach((o=>{e.has(o)||(function(t,e){const o=document.createElement("style");window.DESCOPE_NONCE&&o.setAttribute("nonce",window.DESCOPE_NONCE),o.textContent=t,e===document?document.head.appendChild(o):e.insertBefore(o,e.firstChild)}(o,t),e.add(o))}))}}))},26442:(t,e,o)=>{"use strict";o.d(e,{T:()=>l,e:()=>c});var n=o(79365),r=o(81365),i=o(9696),a=o(97810),s=o(25964);const l=(0,a.xE)("badge");class d extends((0,r.q)({componentName:l,baseSelector:":host > div"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<div>\n <slot></slot>\n\t\t</div>\n\t\t",(0,s.fz)("\n :host {\n display: inline-flex;\n }\n :host > div {\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n ",this)}}const c=(0,i.Zz)((0,n.RF)({mappings:{hostWidth:[{selector:()=>":host",property:"width"}],hostDirection:{property:"direction"},fontFamily:{},fontSize:{},fontWeight:{},textTransform:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],borderWidth:{},borderStyle:{},borderColor:{},borderRadius:{},backgroundColor:{},textColor:{property:"color"},textAlign:{}}}),n.VO,n.tQ)(d)},30576:(t,e,o)=>{"use strict";o.r(e),o.d(e,{ButtonClass:()=>n.J,componentName:()=>n.T});var n=o(19624);o(83799),customElements.define(n.T,n.J)},63595:(t,e,o)=>{"use strict";o.r(e),o.d(e,{TextClass:()=>n.s,componentName:()=>n.T});var n=o(66434);customElements.define(n.T,n.s)},66434:(t,e,o)=>{"use strict";o.d(e,{T:()=>s,s:()=>c});var n=o(88961),r=o(63200),i=o(25964),a=o(72270);const s=(0,i.xE)("text");class l extends((0,a.qu)({componentName:s,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,n.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},hostDirection:{selector:()=>":host",property:"direction"},fontSize:{},textColor:[{property:"color"}],textLineHeight:{property:"line-height"},textLetterSpacing:{property:"letter-spacing"},textShadow:{},textAlign:{},textTransform:{},fontFamily:{},fontStyle:{},fontWeight:{},borderWidth:{},borderStyle:{},borderColor:{}}}),n.VO,n.tQ)(l)},67760:(t,e,o)=>{"use strict";o.r(e),o.d(e,{UserAuthMethodClass:()=>z,componentName:()=>m});var n=o(79365),r=o(81365),i=o(9696),a=o(97810),s=o(9427),l=o.n(s),d=o(66434),c=o(19624),h=o(26442),u=o(98538),p=o(25964);const m=(0,a.xE)("user-auth-method");class b extends((0,r.q)({componentName:m,baseSelector:":host > .root"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML=`\n <div class="root">\n <div class="text-wrapper">\n <slot name="method-icon"></slot>\n <descope-text st-text-align="auto" data-id="label-text" variant="body1" mode="primary"></descope-text>\n </div>\n\n <div class="btn-wrapper">\n <descope-button size="sm" variant="link" mode="primary">\n <slot name="button-icon"></slot>\n </descope-button>\n <div class="fulfilled-indicator">\n <vaadin-icon src=${l()}></vaadin-icon>\n </div>\n <descope-button class="hidden-btn" size="sm" variant="link" mode="primary"></descope-button>\n </div>\n </div>\n\t\t`,(0,p.fz)('\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n vaadin-icon {\n color: currentcolor;\n }\n\n .root {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n }\n\n .btn-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-grow: 0;\n }\n\n .text-wrapper {\n display: flex;\n align-items: center;\n flex-grow: 1;\n }\n\n descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: initial;\n }\n\n descope-text {\n display: inline-flex;\n }\n\n .fulfilled-indicator {\n width: 1em;\n height: 1em;\n display: flex;\n align-items: center;\n padding-inline-end: 1em;\n }\n\n .hidden {\n display: none;\n }\n\n .hidden-btn {\n width: 0;\n overflow: hidden;\n }\n\n slot[name="method-icon"]{\n display: inline-flex;\n align-items: center;\n }\n ',this),this.button=this.shadowRoot.querySelector("descope-button"),this.fulfilledIndicator=this.shadowRoot.querySelector(".fulfilled-indicator"),this.labelText=this.shadowRoot.querySelector('descope-text[data-id="label-text"]')}onLabelChange(){this.labelText.innerText=this.label,this.labelText.setAttribute("title",this.label)}onButtonLabelChange(){let t=this.button.querySelector("span");this.buttonLabel?(t||(t=document.createElement("span"),this.button.appendChild(t)),t.innerText=this.buttonLabel):t&&this.button.removeChild(t)}onFulfilledChange(){this.button.classList.toggle("hidden",this.isFulfilled),this.fulfilledIndicator.classList.toggle("hidden",!this.isFulfilled)}get label(){return this.getAttribute("label")||""}get buttonLabel(){return this.getAttribute("button-label")||""}get isFulfilled(){return"true"===this.getAttribute("fulfilled")}init(){this.onLabelChange(),this.onButtonLabelChange(),this.onFulfilledChange(),this.button.addEventListener("click",(()=>this.dispatchEvent(new CustomEvent("button-clicked",{bubbles:!0,composed:!0}))))}static get observedAttributes(){return["label","fulfilled"].concat(super.observedAttributes)}attributeChangedCallback(t,e,o){super.attributeChangedCallback?.(t,e,o),e!==o&&("label"===t?this.onLabelChange():"fulfilled"===t?this.onFulfilledChange():"button-label"===t&&this.onButtonLabelChange())}}const{host:g,textField:v,buttons:f,badge:y,textWrapper:x,methodIconSlot:w}={host:{selector:()=>":host"},textField:{selector:"descope-text"},buttons:{selector:"descope-button"},badge:{selector:"descope-badge"},textWrapper:{selector:" .text-wrapper"},methodIconSlot:{selector:'slot[name="method-icon"]'}},z=(0,i.Zz)((0,n.RF)({mappings:{hostWidth:{...g,property:"width"},hostMinWidth:{...g,property:"min-width"},hostDirection:[{...g,property:"direction"},{...v,property:d.s.cssVarList.hostDirection},{...f,property:c.J.cssVarList.hostDirection},{...y,property:h.e.cssVarList.hostDirection}],labelTextWidth:{...v,property:"width"},itemsGap:[{property:"gap"},{...x,property:"gap"}],iconSize:[{...w,property:"width"},{...w,property:"height"}],iconColor:[{selector:()=>"::slotted(*)",property:u.S.cssVarList.fill}]}}),n.VO,n.tQ)(b);o(63595),o(30576),o(91359),o(95260),customElements.define(m,z)},83799:(t,e,o)=>{"use strict";o(93555),o(89389)},89389:(t,e,o)=>{"use strict";o.d(e,{$:()=>m});var n=o(13256),r=o(55774),i=o(82901),a=o(90676),s=o(81488),l=o(87550);const d=o(51450).AH`
3
+ :host {
4
+ display: inline-block;
5
+ position: relative;
6
+ outline: none;
7
+ white-space: nowrap;
8
+ -webkit-user-select: none;
9
+ -moz-user-select: none;
10
+ user-select: none;
11
+ }
12
+
13
+ :host([hidden]) {
14
+ display: none !important;
15
+ }
16
+
17
+ /* Aligns the button with form fields when placed on the same line.
18
+ Note, to make it work, the form fields should have the same "::before" pseudo-element. */
19
+ .vaadin-button-container::before {
20
+ content: '\\2003';
21
+ display: inline-block;
22
+ width: 0;
23
+ max-height: 100%;
24
+ }
25
+
26
+ .vaadin-button-container {
27
+ display: inline-flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ text-align: center;
31
+ width: 100%;
32
+ height: 100%;
33
+ min-height: inherit;
34
+ text-shadow: inherit;
35
+ }
36
+
37
+ [part='prefix'],
38
+ [part='suffix'] {
39
+ flex: none;
40
+ }
41
+
42
+ [part='label'] {
43
+ white-space: nowrap;
44
+ overflow: hidden;
45
+ text-overflow: ellipsis;
46
+ }
47
+
48
+ @media (forced-colors: active) {
49
+ :host {
50
+ outline: 1px solid;
51
+ outline-offset: -1px;
52
+ }
53
+
54
+ :host([focused]) {
55
+ outline-width: 2px;
56
+ }
57
+
58
+ :host([disabled]) {
59
+ outline-color: GrayText;
60
+ }
61
+ }
62
+ `;var c=o(84467),h=o(53149),u=o(36176);const p=t=>class extends((0,c.e)((0,u.l)((0,h.y)(t)))){static get properties(){return{tabindex:{type:Number,value:0,reflectToAttribute:!0}}}get _activeKeys(){return["Enter"," "]}ready(){super.ready(),this.hasAttribute("role")||this.setAttribute("role","button")}_onKeyDown(t){super._onKeyDown(t),t.altKey||t.shiftKey||t.ctrlKey||t.metaKey||this._activeKeys.includes(t.key)&&(t.preventDefault(),this.click())}};(0,l.SF)("vaadin-button",d,{moduleId:"vaadin-button-styles"});class m extends(p((0,a.q)((0,l.cp)((0,r.w)(n.Pu))))){static get is(){return"vaadin-button"}static get template(){return n.qy`
63
+ <div class="vaadin-button-container">
64
+ <span part="prefix" aria-hidden="true">
65
+ <slot name="prefix"></slot>
66
+ </span>
67
+ <span part="label">
68
+ <slot></slot>
69
+ </span>
70
+ <span part="suffix" aria-hidden="true">
71
+ <slot name="suffix"></slot>
72
+ </span>
73
+ </div>
74
+ <slot name="tooltip"></slot>
75
+ `}ready(){super.ready(),this._tooltipController=new s.I(this),this.addController(this._tooltipController)}}(0,i.X)(m)},91359:(t,e,o)=>{"use strict";o.r(e),o.d(e,{BadgeClass:()=>n.e,componentName:()=>n.T});var n=o(26442);customElements.define(n.T,n.e)},93555:(t,e,o)=>{"use strict";o.d(e,{x:()=>r}),o(64511),o(42068),o(9433),o(3241),o(83315);var n=o(87550);const r=n.AH`
76
+ :host {
77
+ /* Sizing */
78
+ --lumo-button-size: var(--lumo-size-m);
79
+ min-width: var(--vaadin-button-min-width, calc(var(--_button-size) * 2));
80
+ height: var(--_button-size);
81
+ padding: var(--vaadin-button-padding, 0 calc(var(--_button-size) / 3 + var(--lumo-border-radius-m) / 2));
82
+ margin: var(--vaadin-button-margin, var(--lumo-space-xs) 0);
83
+ box-sizing: border-box;
84
+ /* Style */
85
+ font-family: var(--lumo-font-family);
86
+ font-size: var(--vaadin-button-font-size, var(--lumo-font-size-m));
87
+ font-weight: var(--vaadin-button-font-weight, 500);
88
+ color: var(--_lumo-button-text-color);
89
+ background: var(--_lumo-button-background);
90
+ border: var(--vaadin-button-border, none);
91
+ border-radius: var(--vaadin-button-border-radius, var(--lumo-border-radius-m));
92
+ cursor: var(--lumo-clickable-cursor);
93
+ -webkit-tap-highlight-color: transparent;
94
+ -webkit-font-smoothing: antialiased;
95
+ -moz-osx-font-smoothing: grayscale;
96
+ flex-shrink: 0;
97
+ --_button-size: var(--vaadin-button-height, var(--lumo-button-size));
98
+ --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
99
+ --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
100
+ /* Used by notification */
101
+ --_lumo-button-background: var(--vaadin-button-background, var(--lumo-contrast-5pct));
102
+ --_lumo-button-text-color: var(--vaadin-button-text-color, var(--lumo-primary-text-color));
103
+ --_lumo-button-primary-background: var(--vaadin-button-primary-background, var(--lumo-primary-color));
104
+ --_lumo-button-primary-text-color: var(--vaadin-button-primary-text-color, var(--lumo-primary-contrast-color));
105
+ }
106
+
107
+ /* Set only for the internal parts so we don't affect the host vertical alignment */
108
+ [part='label'],
109
+ [part='prefix'],
110
+ [part='suffix'] {
111
+ line-height: var(--lumo-line-height-xs);
112
+ }
113
+
114
+ [part='label'] {
115
+ padding: calc(var(--lumo-button-size) / 6) 0;
116
+ }
117
+
118
+ :host([theme~='small']) {
119
+ font-size: var(--lumo-font-size-s);
120
+ --lumo-button-size: var(--lumo-size-s);
121
+ }
122
+
123
+ :host([theme~='large']) {
124
+ font-size: var(--lumo-font-size-l);
125
+ --lumo-button-size: var(--lumo-size-l);
126
+ }
127
+
128
+ /* For interaction states */
129
+ :host::before,
130
+ :host::after {
131
+ content: '';
132
+ /* We rely on the host always being relative */
133
+ position: absolute;
134
+ z-index: 1;
135
+ inset: 0;
136
+ background-color: currentColor;
137
+ border-radius: inherit;
138
+ opacity: 0;
139
+ pointer-events: none;
140
+ }
141
+
142
+ /* Hover */
143
+
144
+ @media (any-hover: hover) {
145
+ :host(:hover)::before {
146
+ opacity: 0.02;
147
+ }
148
+ }
149
+
150
+ /* Active */
151
+
152
+ :host::after {
153
+ transition: opacity 1.4s, transform 0.1s;
154
+ filter: blur(8px);
155
+ }
156
+
157
+ :host([active])::before {
158
+ opacity: 0.05;
159
+ transition-duration: 0s;
160
+ }
161
+
162
+ :host([active])::after {
163
+ opacity: 0.1;
164
+ transition-duration: 0s, 0s;
165
+ transform: scale(0);
166
+ }
167
+
168
+ /* Keyboard focus */
169
+
170
+ :host([focus-ring]) {
171
+ box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
172
+ }
173
+
174
+ :host([theme~='primary'][focus-ring]) {
175
+ box-shadow: 0 0 0 1px var(--lumo-base-color), 0 0 0 3px var(--lumo-primary-color-50pct);
176
+ }
177
+
178
+ /* Types (primary, tertiary, tertiary-inline */
179
+
180
+ :host([theme~='tertiary']),
181
+ :host([theme~='tertiary-inline']) {
182
+ --_background: transparent !important;
183
+ background: var(--vaadin-button-tertiary-background, var(--_background));
184
+ min-width: 0;
185
+ }
186
+
187
+ :host([theme~='tertiary']) {
188
+ border: var(--vaadin-button-tertiary-border, none);
189
+ color: var(--vaadin-button-tertiary-text-color, var(--lumo-primary-text-color));
190
+ font-weight: var(--vaadin-button-tertiary-font-weight, 500);
191
+ padding: var(--vaadin-button-tertiary-padding, 0 calc(var(--_button-size) / 6));
192
+ }
193
+
194
+ :host([theme~='tertiary-inline'])::before {
195
+ display: none;
196
+ }
197
+
198
+ :host([theme~='tertiary-inline']) {
199
+ margin: 0;
200
+ height: auto;
201
+ padding: 0;
202
+ line-height: inherit;
203
+ font-size: inherit;
204
+ }
205
+
206
+ :host([theme~='tertiary-inline']) [part='label'] {
207
+ padding: 0;
208
+ overflow: visible;
209
+ line-height: inherit;
210
+ }
211
+
212
+ :host([theme~='primary']) {
213
+ background: var(--_lumo-button-primary-background);
214
+ border: var(--vaadin-button-primary-border, none);
215
+ color: var(--_lumo-button-primary-text-color);
216
+ font-weight: var(--vaadin-button-primary-font-weight, 600);
217
+ min-width: calc(var(--lumo-button-size) * 2.5);
218
+ }
219
+
220
+ :host([theme~='primary'])::before {
221
+ background-color: black;
222
+ }
223
+
224
+ @media (any-hover: hover) {
225
+ :host([theme~='primary']:hover)::before {
226
+ opacity: 0.05;
227
+ }
228
+ }
229
+
230
+ :host([theme~='primary'][active])::before {
231
+ opacity: 0.1;
232
+ }
233
+
234
+ :host([theme~='primary'][active])::after {
235
+ opacity: 0.2;
236
+ }
237
+
238
+ /* Colors (success, error, contrast) */
239
+
240
+ :host([theme~='success']) {
241
+ color: var(--lumo-success-text-color);
242
+ }
243
+
244
+ :host([theme~='success'][theme~='primary']) {
245
+ background-color: var(--lumo-success-color);
246
+ color: var(--lumo-success-contrast-color);
247
+ }
248
+
249
+ :host([theme~='error']) {
250
+ color: var(--lumo-error-text-color);
251
+ }
252
+
253
+ :host([theme~='error'][theme~='primary']) {
254
+ background-color: var(--lumo-error-color);
255
+ color: var(--lumo-error-contrast-color);
256
+ }
257
+
258
+ :host([theme~='contrast']) {
259
+ color: var(--lumo-contrast);
260
+ }
261
+
262
+ :host([theme~='contrast'][theme~='primary']) {
263
+ background-color: var(--lumo-contrast);
264
+ color: var(--lumo-base-color);
265
+ }
266
+
267
+ /* Disabled state. Keep selectors after other color variants. */
268
+
269
+ :host([disabled]) {
270
+ pointer-events: none;
271
+ color: var(--lumo-disabled-text-color);
272
+ }
273
+
274
+ :host([theme~='primary'][disabled]) {
275
+ background-color: var(--lumo-contrast-30pct);
276
+ color: var(--lumo-base-color);
277
+ }
278
+
279
+ :host([theme~='primary'][disabled]) [part] {
280
+ opacity: 0.7;
281
+ }
282
+
283
+ /* Icons */
284
+
285
+ [part] ::slotted(vaadin-icon) {
286
+ display: inline-block;
287
+ width: var(--lumo-icon-size-m);
288
+ height: var(--lumo-icon-size-m);
289
+ }
290
+
291
+ /* Vaadin icons are based on a 16x16 grid (unlike Lumo and Material icons with 24x24), so they look too big by default */
292
+ [part] ::slotted(vaadin-icon[icon^='vaadin:']) {
293
+ padding: 0.25em;
294
+ box-sizing: border-box !important;
295
+ }
296
+
297
+ [part='prefix'] {
298
+ margin-left: -0.25em;
299
+ margin-right: 0.25em;
300
+ }
301
+
302
+ [part='suffix'] {
303
+ margin-left: 0.25em;
304
+ margin-right: -0.25em;
305
+ }
306
+
307
+ /* Icon-only */
308
+
309
+ :host([theme~='icon']:not([theme~='tertiary-inline'])) {
310
+ min-width: var(--lumo-button-size);
311
+ padding-left: calc(var(--lumo-button-size) / 4);
312
+ padding-right: calc(var(--lumo-button-size) / 4);
313
+ }
314
+
315
+ :host([theme~='icon']) [part='prefix'],
316
+ :host([theme~='icon']) [part='suffix'] {
317
+ margin-left: 0;
318
+ margin-right: 0;
319
+ }
320
+
321
+ /* RTL specific styles */
322
+
323
+ :host([dir='rtl']) [part='prefix'] {
324
+ margin-left: 0.25em;
325
+ margin-right: -0.25em;
326
+ }
327
+
328
+ :host([dir='rtl']) [part='suffix'] {
329
+ margin-left: -0.25em;
330
+ margin-right: 0.25em;
331
+ }
332
+
333
+ :host([dir='rtl'][theme~='icon']) [part='prefix'],
334
+ :host([dir='rtl'][theme~='icon']) [part='suffix'] {
335
+ margin-left: 0;
336
+ margin-right: 0;
337
+ }
338
+ `;(0,n.SF)("vaadin-button",r,{moduleId:"lumo-button"})},98538:(t,e,o)=>{"use strict";o.d(e,{S:()=>s,T:()=>a});var n=o(88961),r=o(25964),i=o(63200);const a=(0,r.xE)("icon"),s=(0,i.Zz)((0,n.RF)({mappings:{fill:{}}}),n.VO,n.tQ)((0,n.tz)({slots:[],wrappedEleName:"descope-image",style:()=>"\n :host {\n display: inline-flex;\n }\n ",excludeAttrsSync:["tabindex","class"],componentName:a}))}}]);
2
339
  //# sourceMappingURL=descope-user-auth-method-index-js.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"descope-user-auth-method-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/./src/components/descope-user-auth-method/green-v.svg","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/./src/components/descope-badge/BadgeClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/TextClass.js","webpack://@descope/web-components-ui/./src/components/descope-user-auth-method/UserAuthMethodClass.js","webpack://@descope/web-components-ui/./src/components/descope-user-auth-method/index.js","webpack://@descope/web-components-ui/./src/components/descope-badge/index.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js"],"sourcesContent":["module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTggMEMzLjYgMCAwIDMuNiAwIDhDMCAxMi40IDMuNiAxNiA4IDE2QzEyLjQgMTYgMTYgMTIuNCAxNiA4QzE2IDMuNiAxMi40IDAgOCAwWk03LjEgMTEuN0wyLjkgNy42TDQuMyA2LjJMNyA4LjlMMTIgNEwxMy40IDUuNEw3LjEgMTEuN1oiIGZpbGw9IiM0Q0FGNTAiLz4gPC9zdmc+IA==\"","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 { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\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 createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\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: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\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'],\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","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('badge');\n\nclass RawBadge extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<div>\n <slot></slot>\n\t\t</div>\n\t\t`;\n\n injectStyle(\n `\n :host {\n display: inline-flex;\n }\n :host > div {\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n `,\n this\n );\n }\n}\n\nexport const BadgeClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [{ selector: () => ':host', property: 'width' }],\n hostDirection: { property: 'direction' },\n\n fontFamily: {},\n fontSize: {},\n fontWeight: {},\n textTransform: {},\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [{ property: 'padding-left' }, { property: 'padding-right' }],\n\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n borderRadius: {},\n\n backgroundColor: {},\n\n textColor: { property: 'color' },\n textAlign: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawBadge);\n","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","import { componentName, TextClass } from './TextClass';\n\ncustomElements.define(componentName, TextClass);\n\nexport { TextClass, 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 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 :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n `, this);\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\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDirection: { selector: () => ':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 draggableMixin,\n componentNameValidationMixin,\n)(RawText);\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport greenVIcon from './green-v.svg';\nimport { TextClass } from '@descope-ui/descope-text/class';\nimport { ButtonClass } from '@descope-ui/descope-button/class';\nimport { BadgeClass } from '../descope-badge/BadgeClass';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('user-auth-method');\nclass RawUserAuthMethod extends createBaseClass({\n componentName,\n baseSelector: ':host > .root',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"root\">\n <div class=\"text-wrapper\">\n <slot name=\"method-icon\"></slot>\n <descope-text st-text-align=\"auto\" data-id=\"label-text\" variant=\"body1\" mode=\"primary\"></descope-text>\n </div>\n\n <div class=\"btn-wrapper\">\n <descope-button size=\"sm\" variant=\"link\" mode=\"primary\">\n <slot name=\"button-icon\"></slot>\n </descope-button>\n <div class=\"fulfilled-indicator\">\n <vaadin-icon src=${greenVIcon}></vaadin-icon>\n </div>\n <descope-button class=\"hidden-btn\" size=\"sm\" variant=\"link\" mode=\"primary\"></descope-button>\n </div>\n </div>\n\t\t`;\n\n injectStyle(\n `\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n vaadin-icon {\n color: currentcolor;\n }\n\n .root {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n }\n\n .btn-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-grow: 0;\n }\n\n .text-wrapper {\n display: flex;\n align-items: center;\n flex-grow: 1;\n }\n\n descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: initial;\n }\n\n descope-text {\n display: inline-flex;\n }\n\n .fulfilled-indicator {\n width: 1em;\n height: 1em;\n display: flex;\n align-items: center;\n padding-inline-end: 1em;\n }\n\n .hidden {\n display: none;\n }\n\n .hidden-btn {\n width: 0;\n overflow: hidden;\n }\n\n slot[name=\"method-icon\"]{\n display: inline-flex;\n align-items: center;\n }\n `,\n this\n );\n\n this.button = this.shadowRoot.querySelector('descope-button');\n this.fulfilledIndicator = this.shadowRoot.querySelector('.fulfilled-indicator');\n this.labelText = this.shadowRoot.querySelector('descope-text[data-id=\"label-text\"]');\n }\n\n onLabelChange() {\n this.labelText.innerText = this.label;\n this.labelText.setAttribute('title', this.label);\n }\n\n onButtonLabelChange() {\n let textSpanEle = this.button.querySelector('span');\n\n if (this.buttonLabel) {\n if (!textSpanEle) {\n textSpanEle = document.createElement('span');\n this.button.appendChild(textSpanEle);\n }\n textSpanEle.innerText = this.buttonLabel;\n } else if (textSpanEle) {\n this.button.removeChild(textSpanEle);\n }\n }\n\n onFulfilledChange() {\n this.button.classList.toggle('hidden', this.isFulfilled);\n this.fulfilledIndicator.classList.toggle('hidden', !this.isFulfilled);\n }\n\n get label() {\n return this.getAttribute('label') || '';\n }\n\n get buttonLabel() {\n return this.getAttribute('button-label') || '';\n }\n\n get isFulfilled() {\n return this.getAttribute('fulfilled') === 'true';\n }\n\n init() {\n this.onLabelChange();\n this.onButtonLabelChange();\n this.onFulfilledChange();\n\n this.button.addEventListener('click', () =>\n this.dispatchEvent(new CustomEvent('button-clicked', { bubbles: true, composed: true }))\n );\n }\n\n static get observedAttributes() {\n return ['label', 'fulfilled'].concat(super.observedAttributes);\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n if (oldValue === newValue) {\n return;\n }\n\n if (name === 'label') {\n this.onLabelChange();\n } else if (name === 'fulfilled') {\n this.onFulfilledChange();\n } else if (name === 'button-label') {\n this.onButtonLabelChange();\n }\n }\n}\n\nconst { host, textField, buttons, badge, textWrapper, methodIconSlot } = {\n host: { selector: () => ':host' },\n textField: { selector: 'descope-text' },\n buttons: { selector: 'descope-button' },\n badge: { selector: 'descope-badge' },\n textWrapper: { selector: ' .text-wrapper' },\n methodIconSlot: { selector: 'slot[name=\"method-icon\"]' },\n};\n\nexport const UserAuthMethodClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: [\n { ...host, property: 'direction' },\n { ...textField, property: TextClass.cssVarList.hostDirection },\n { ...buttons, property: ButtonClass.cssVarList.hostDirection },\n { ...badge, property: BadgeClass.cssVarList.hostDirection },\n ],\n labelTextWidth: { ...textField, property: 'width' },\n itemsGap: [{ property: 'gap' }, { ...textWrapper, property: 'gap' }],\n iconSize: [\n { ...methodIconSlot, property: 'width' },\n { ...methodIconSlot, property: 'height' },\n ],\n iconColor: [{ selector: () => '::slotted(*)', property: IconClass.cssVarList.fill }],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawUserAuthMethod);\n","import { componentName, UserAuthMethodClass } from './UserAuthMethodClass';\nimport '@descope-ui/descope-text';\nimport '@descope-ui/descope-button';\nimport '../descope-badge';\nimport '@vaadin/icon';\n\ncustomElements.define(componentName, UserAuthMethodClass);\n\nexport { UserAuthMethodClass, componentName };\n","import { componentName, BadgeClass } from './BadgeClass';\n\ncustomElements.define(componentName, BadgeClass);\n\nexport { BadgeClass, 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 { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('icon');\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'descope-image',\n style: () => `\n :host {\n display: inline-flex;\n }\n `,\n excludeAttrsSync: ['tabindex', 'class'],\n componentName,\n }),\n);\n"],"names":["module","exports","clickableMixin","superclass","isLoading","this","getAttribute","click","super","componentName","host","label","slottedIcon","selector","loadingIndicatorStyles","ButtonClass","mappings","hostWidth","property","hostHeight","hostDirection","fontSize","fontFamily","cursor","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","slots","wrappedEleName","style","excludeAttrsSync","color","RawBadge","baseSelector","constructor","attachShadow","mode","innerHTML","BadgeClass","fontWeight","textTransform","textColor","customElements","define","RawText","hideWhenEmpty","init","hasChildren","childNodes","length","display","TextClass","textLineHeight","textLetterSpacing","textShadow","fontStyle","RawUserAuthMethod","createBaseClass","button","shadowRoot","querySelector","fulfilledIndicator","labelText","onLabelChange","innerText","setAttribute","onButtonLabelChange","textSpanEle","buttonLabel","document","createElement","appendChild","removeChild","onFulfilledChange","classList","toggle","isFulfilled","addEventListener","dispatchEvent","CustomEvent","bubbles","composed","observedAttributes","concat","attributeChangedCallback","name","oldValue","newValue","textField","buttons","badge","textWrapper","methodIconSlot","UserAuthMethodClass","hostMinWidth","labelTextWidth","itemsGap","IconClass"],"sourceRoot":""}
1
+ {"version":3,"file":"descope-user-auth-method-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/browser-utils.js","webpack://@descope/web-components-ui/./src/components/descope-user-auth-method/green-v.svg","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/slot-styles-mixin.js","webpack://@descope/web-components-ui/./src/components/descope-badge/BadgeClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/TextClass.js","webpack://@descope/web-components-ui/./src/components/descope-user-auth-method/UserAuthMethodClass.js","webpack://@descope/web-components-ui/./src/components/descope-user-auth-method/index.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/button/src/vaadin-button-base.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/button/src/vaadin-button-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/button/src/vaadin-button.js","webpack://@descope/web-components-ui/./src/components/descope-badge/index.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/button/theme/lumo/vaadin-button-styles.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js"],"sourcesContent":["/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\nconst testUserAgent = (regexp) => regexp.test(navigator.userAgent);\n\nconst testPlatform = (regexp) => regexp.test(navigator.platform);\n\nconst testVendor = (regexp) => regexp.test(navigator.vendor);\n\nexport const isAndroid = testUserAgent(/Android/u);\n\nexport const isChrome = testUserAgent(/Chrome/u) && testVendor(/Google Inc/u);\n\nexport const isFirefox = testUserAgent(/Firefox/u);\n\n// IPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\nexport const isIPad = testPlatform(/^iPad/u) || (testPlatform(/^Mac/u) && navigator.maxTouchPoints > 1);\n\nexport const isIPhone = testPlatform(/^iPhone/u);\n\nexport const isIOS = isIPhone || isIPad;\n\nexport const isSafari = testUserAgent(/^((?!chrome|android).)*safari/iu);\n\nexport const isTouch = (() => {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n})();\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTggMEMzLjYgMCAwIDMuNiAwIDhDMCAxMi40IDMuNiAxNiA4IDE2QzEyLjQgMTYgMTYgMTIuNCAxNiA4QzE2IDMuNiAxMi40IDAgOCAwWk03LjEgMTEuN0wyLjkgNy42TDQuMyA2LjJMNyA4LjlMMTIgNEwxMy40IDUuNEw3LjEgMTEuN1oiIGZpbGw9IiM0Q0FGNTAiLz4gPC9zdmc+IA==\"","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 { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\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 createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\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: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\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'],\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","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\n\nconst stylesMap = new WeakMap();\n\n/**\n * Get all the styles inserted into root.\n * @param {DocumentOrShadowRoot} root\n * @return {Set<string>}\n */\nfunction getRootStyles(root) {\n if (!stylesMap.has(root)) {\n stylesMap.set(root, new Set());\n }\n\n return stylesMap.get(root);\n}\n\n/**\n * Insert styles into the root.\n * @param {string} styles\n * @param {DocumentOrShadowRoot} root\n */\nfunction insertStyles(styles, root) {\n const style = document.createElement('style');\n if(window.DESCOPE_NONCE){\n style.setAttribute('nonce', window.DESCOPE_NONCE);\n }\n style.textContent = styles;\n\n if (root === document) {\n document.head.appendChild(style);\n } else {\n root.insertBefore(style, root.firstChild);\n }\n}\n\n/**\n * Mixin to insert styles into the outer scope to handle slotted components.\n * This is useful e.g. to hide native `<input type=\"number\">` controls.\n *\n * @polymerMixin\n */\nexport const SlotStylesMixin = dedupingMixin(\n (superclass) =>\n class SlotStylesMixinClass extends superclass {\n /**\n * List of styles to insert into root.\n * @protected\n */\n get slotStyles() {\n return {};\n }\n\n /** @protected */\n connectedCallback() {\n super.connectedCallback();\n\n this.__applySlotStyles();\n }\n\n /** @private */\n __applySlotStyles() {\n const root = this.getRootNode();\n const rootStyles = getRootStyles(root);\n\n this.slotStyles.forEach((styles) => {\n if (!rootStyles.has(styles)) {\n insertStyles(styles, root);\n rootStyles.add(styles);\n }\n });\n }\n },\n);\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('badge');\n\nclass RawBadge extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<div>\n <slot></slot>\n\t\t</div>\n\t\t`;\n\n injectStyle(\n `\n :host {\n display: inline-flex;\n }\n :host > div {\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n `,\n this\n );\n }\n}\n\nexport const BadgeClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [{ selector: () => ':host', property: 'width' }],\n hostDirection: { property: 'direction' },\n\n fontFamily: {},\n fontSize: {},\n fontWeight: {},\n textTransform: {},\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [{ property: 'padding-left' }, { property: 'padding-right' }],\n\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n borderRadius: {},\n\n backgroundColor: {},\n\n textColor: { property: 'color' },\n textAlign: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawBadge);\n","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","import { componentName, TextClass } from './TextClass';\n\ncustomElements.define(componentName, TextClass);\n\nexport { TextClass, 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 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 :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n `, this);\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: { selector: () => ':host', property: 'width' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontSize: {},\n textColor: [\n { property: 'color' }\n ],\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 draggableMixin,\n componentNameValidationMixin,\n)(RawText);\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport greenVIcon from './green-v.svg';\nimport { TextClass } from '@descope-ui/descope-text/class';\nimport { ButtonClass } from '@descope-ui/descope-button/class';\nimport { BadgeClass } from '../descope-badge/BadgeClass';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('user-auth-method');\nclass RawUserAuthMethod extends createBaseClass({\n componentName,\n baseSelector: ':host > .root',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"root\">\n <div class=\"text-wrapper\">\n <slot name=\"method-icon\"></slot>\n <descope-text st-text-align=\"auto\" data-id=\"label-text\" variant=\"body1\" mode=\"primary\"></descope-text>\n </div>\n\n <div class=\"btn-wrapper\">\n <descope-button size=\"sm\" variant=\"link\" mode=\"primary\">\n <slot name=\"button-icon\"></slot>\n </descope-button>\n <div class=\"fulfilled-indicator\">\n <vaadin-icon src=${greenVIcon}></vaadin-icon>\n </div>\n <descope-button class=\"hidden-btn\" size=\"sm\" variant=\"link\" mode=\"primary\"></descope-button>\n </div>\n </div>\n\t\t`;\n\n injectStyle(\n `\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n vaadin-icon {\n color: currentcolor;\n }\n\n .root {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n }\n\n .btn-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-grow: 0;\n }\n\n .text-wrapper {\n display: flex;\n align-items: center;\n flex-grow: 1;\n }\n\n descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: initial;\n }\n\n descope-text {\n display: inline-flex;\n }\n\n .fulfilled-indicator {\n width: 1em;\n height: 1em;\n display: flex;\n align-items: center;\n padding-inline-end: 1em;\n }\n\n .hidden {\n display: none;\n }\n\n .hidden-btn {\n width: 0;\n overflow: hidden;\n }\n\n slot[name=\"method-icon\"]{\n display: inline-flex;\n align-items: center;\n }\n `,\n this\n );\n\n this.button = this.shadowRoot.querySelector('descope-button');\n this.fulfilledIndicator = this.shadowRoot.querySelector('.fulfilled-indicator');\n this.labelText = this.shadowRoot.querySelector('descope-text[data-id=\"label-text\"]');\n }\n\n onLabelChange() {\n this.labelText.innerText = this.label;\n this.labelText.setAttribute('title', this.label);\n }\n\n onButtonLabelChange() {\n let textSpanEle = this.button.querySelector('span');\n\n if (this.buttonLabel) {\n if (!textSpanEle) {\n textSpanEle = document.createElement('span');\n this.button.appendChild(textSpanEle);\n }\n textSpanEle.innerText = this.buttonLabel;\n } else if (textSpanEle) {\n this.button.removeChild(textSpanEle);\n }\n }\n\n onFulfilledChange() {\n this.button.classList.toggle('hidden', this.isFulfilled);\n this.fulfilledIndicator.classList.toggle('hidden', !this.isFulfilled);\n }\n\n get label() {\n return this.getAttribute('label') || '';\n }\n\n get buttonLabel() {\n return this.getAttribute('button-label') || '';\n }\n\n get isFulfilled() {\n return this.getAttribute('fulfilled') === 'true';\n }\n\n init() {\n this.onLabelChange();\n this.onButtonLabelChange();\n this.onFulfilledChange();\n\n this.button.addEventListener('click', () =>\n this.dispatchEvent(new CustomEvent('button-clicked', { bubbles: true, composed: true }))\n );\n }\n\n static get observedAttributes() {\n return ['label', 'fulfilled'].concat(super.observedAttributes);\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n if (oldValue === newValue) {\n return;\n }\n\n if (name === 'label') {\n this.onLabelChange();\n } else if (name === 'fulfilled') {\n this.onFulfilledChange();\n } else if (name === 'button-label') {\n this.onButtonLabelChange();\n }\n }\n}\n\nconst { host, textField, buttons, badge, textWrapper, methodIconSlot } = {\n host: { selector: () => ':host' },\n textField: { selector: 'descope-text' },\n buttons: { selector: 'descope-button' },\n badge: { selector: 'descope-badge' },\n textWrapper: { selector: ' .text-wrapper' },\n methodIconSlot: { selector: 'slot[name=\"method-icon\"]' },\n};\n\nexport const UserAuthMethodClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: [\n { ...host, property: 'direction' },\n { ...textField, property: TextClass.cssVarList.hostDirection },\n { ...buttons, property: ButtonClass.cssVarList.hostDirection },\n { ...badge, property: BadgeClass.cssVarList.hostDirection },\n ],\n labelTextWidth: { ...textField, property: 'width' },\n itemsGap: [{ property: 'gap' }, { ...textWrapper, property: 'gap' }],\n iconSize: [\n { ...methodIconSlot, property: 'width' },\n { ...methodIconSlot, property: 'height' },\n ],\n iconColor: [{ selector: () => '::slotted(*)', property: IconClass.cssVarList.fill }],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawUserAuthMethod);\n","import { componentName, UserAuthMethodClass } from './UserAuthMethodClass';\nimport '@descope-ui/descope-text';\nimport '@descope-ui/descope-button';\nimport '../descope-badge';\nimport '@vaadin/icon';\n\ncustomElements.define(componentName, UserAuthMethodClass);\n\nexport { UserAuthMethodClass, componentName };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { css } from 'lit';\n\nexport const buttonStyles = css`\n :host {\n display: inline-block;\n position: relative;\n outline: none;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Aligns the button with form fields when placed on the same line.\n Note, to make it work, the form fields should have the same \"::before\" pseudo-element. */\n .vaadin-button-container::before {\n content: '\\\\2003';\n display: inline-block;\n width: 0;\n max-height: 100%;\n }\n\n .vaadin-button-container {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n width: 100%;\n height: 100%;\n min-height: inherit;\n text-shadow: inherit;\n }\n\n [part='prefix'],\n [part='suffix'] {\n flex: none;\n }\n\n [part='label'] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n @media (forced-colors: active) {\n :host {\n outline: 1px solid;\n outline-offset: -1px;\n }\n\n :host([focused]) {\n outline-width: 2px;\n }\n\n :host([disabled]) {\n outline-color: GrayText;\n }\n }\n`;\n\nexport const buttonTemplate = (html) => html`\n <div class=\"vaadin-button-container\">\n <span part=\"prefix\" aria-hidden=\"true\">\n <slot name=\"prefix\"></slot>\n </span>\n <span part=\"label\">\n <slot></slot>\n </span>\n <span part=\"suffix\" aria-hidden=\"true\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n <slot name=\"tooltip\"></slot>\n`;\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { ActiveMixin } from '@vaadin/a11y-base/src/active-mixin.js';\nimport { FocusMixin } from '@vaadin/a11y-base/src/focus-mixin.js';\nimport { TabindexMixin } from '@vaadin/a11y-base/src/tabindex-mixin.js';\n\n/**\n * A mixin providing common button functionality.\n *\n * @polymerMixin\n * @mixes ActiveMixin\n * @mixes FocusMixin\n * @mixes TabindexMixin\n */\nexport const ButtonMixin = (superClass) =>\n class ButtonMixinClass extends ActiveMixin(TabindexMixin(FocusMixin(superClass))) {\n static get properties() {\n return {\n /**\n * Indicates whether the element can be focused and where it participates in sequential keyboard navigation.\n *\n * @override\n * @protected\n */\n tabindex: {\n type: Number,\n value: 0,\n reflectToAttribute: true,\n },\n };\n }\n\n /**\n * By default, `Space` is the only possible activation key for a focusable HTML element.\n * Nonetheless, the button is an exception as it can be also activated by pressing `Enter`.\n * See the \"Keyboard Support\" section in https://www.w3.org/TR/wai-aria-practices/examples/button/button.html.\n *\n * @protected\n * @override\n */\n get _activeKeys() {\n return ['Enter', ' '];\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n // By default, if the user hasn't provided a custom role,\n // the role attribute is set to \"button\".\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n }\n\n /**\n * Since the button component is designed on the base of the `[role=button]` attribute,\n * and doesn't have a native <button> inside, in order to be fully accessible from the keyboard,\n * it should manually fire the `click` event once an activation key is pressed,\n * as it follows from the WAI-ARIA specifications:\n * https://www.w3.org/TR/wai-aria-practices-1.1/#button\n *\n * According to the UI Events specifications,\n * the `click` event should be fired exactly on `keydown`:\n * https://www.w3.org/TR/uievents/#event-type-keydown\n *\n * @param {KeyboardEvent} event\n * @protected\n * @override\n */\n _onKeyDown(event) {\n super._onKeyDown(event);\n\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return;\n }\n\n if (this._activeKeys.includes(event.key)) {\n event.preventDefault();\n\n // `DisabledMixin` overrides the standard `click()` method\n // so that it doesn't fire the `click` event when the element is disabled.\n this.click();\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { html, PolymerElement } from '@polymer/polymer/polymer-element.js';\nimport { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';\nimport { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js';\nimport { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { buttonStyles, buttonTemplate } from './vaadin-button-base.js';\nimport { ButtonMixin } from './vaadin-button-mixin.js';\n\nregisterStyles('vaadin-button', buttonStyles, { moduleId: 'vaadin-button-styles' });\n\n/**\n * `<vaadin-button>` is an accessible and customizable button that allows users to perform actions.\n *\n * ```html\n * <vaadin-button>Press me</vaadin-button>\n * ```\n *\n * ### Styling\n *\n * The following shadow DOM parts are available for styling:\n *\n * Part name | Description\n * ----------|-------------\n * `label` | The label (text) inside the button.\n * `prefix` | A slot for content before the label (e.g. an icon).\n * `suffix` | A slot for content after the label (e.g. an icon).\n *\n * The following attributes are available for styling:\n *\n * Attribute | Description\n * -------------|-------------\n * `active` | Set when the button is pressed down, either with mouse, touch or the keyboard.\n * `disabled` | Set when the button is disabled.\n * `focus-ring` | Set when the button is focused using the keyboard.\n * `focused` | Set when the button is focused.\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes ButtonMixin\n * @mixes ControllerMixin\n * @mixes ElementMixin\n * @mixes ThemableMixin\n */\nclass Button extends ButtonMixin(ElementMixin(ThemableMixin(ControllerMixin(PolymerElement)))) {\n static get is() {\n return 'vaadin-button';\n }\n\n static get template() {\n return buttonTemplate(html);\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._tooltipController = new TooltipController(this);\n this.addController(this._tooltipController);\n }\n}\n\ndefineCustomElement(Button);\n\nexport { Button };\n","import { componentName, BadgeClass } from './BadgeClass';\n\ncustomElements.define(componentName, BadgeClass);\n\nexport { BadgeClass, componentName };\n","import '@vaadin/vaadin-lumo-styles/color.js';\nimport '@vaadin/vaadin-lumo-styles/sizing.js';\nimport '@vaadin/vaadin-lumo-styles/spacing.js';\nimport '@vaadin/vaadin-lumo-styles/style.js';\nimport '@vaadin/vaadin-lumo-styles/typography.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nconst button = css`\n :host {\n /* Sizing */\n --lumo-button-size: var(--lumo-size-m);\n min-width: var(--vaadin-button-min-width, calc(var(--_button-size) * 2));\n height: var(--_button-size);\n padding: var(--vaadin-button-padding, 0 calc(var(--_button-size) / 3 + var(--lumo-border-radius-m) / 2));\n margin: var(--vaadin-button-margin, var(--lumo-space-xs) 0);\n box-sizing: border-box;\n /* Style */\n font-family: var(--lumo-font-family);\n font-size: var(--vaadin-button-font-size, var(--lumo-font-size-m));\n font-weight: var(--vaadin-button-font-weight, 500);\n color: var(--_lumo-button-text-color);\n background: var(--_lumo-button-background);\n border: var(--vaadin-button-border, none);\n border-radius: var(--vaadin-button-border-radius, var(--lumo-border-radius-m));\n cursor: var(--lumo-clickable-cursor);\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n flex-shrink: 0;\n --_button-size: var(--vaadin-button-height, var(--lumo-button-size));\n --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));\n --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);\n /* Used by notification */\n --_lumo-button-background: var(--vaadin-button-background, var(--lumo-contrast-5pct));\n --_lumo-button-text-color: var(--vaadin-button-text-color, var(--lumo-primary-text-color));\n --_lumo-button-primary-background: var(--vaadin-button-primary-background, var(--lumo-primary-color));\n --_lumo-button-primary-text-color: var(--vaadin-button-primary-text-color, var(--lumo-primary-contrast-color));\n }\n\n /* Set only for the internal parts so we don't affect the host vertical alignment */\n [part='label'],\n [part='prefix'],\n [part='suffix'] {\n line-height: var(--lumo-line-height-xs);\n }\n\n [part='label'] {\n padding: calc(var(--lumo-button-size) / 6) 0;\n }\n\n :host([theme~='small']) {\n font-size: var(--lumo-font-size-s);\n --lumo-button-size: var(--lumo-size-s);\n }\n\n :host([theme~='large']) {\n font-size: var(--lumo-font-size-l);\n --lumo-button-size: var(--lumo-size-l);\n }\n\n /* For interaction states */\n :host::before,\n :host::after {\n content: '';\n /* We rely on the host always being relative */\n position: absolute;\n z-index: 1;\n inset: 0;\n background-color: currentColor;\n border-radius: inherit;\n opacity: 0;\n pointer-events: none;\n }\n\n /* Hover */\n\n @media (any-hover: hover) {\n :host(:hover)::before {\n opacity: 0.02;\n }\n }\n\n /* Active */\n\n :host::after {\n transition: opacity 1.4s, transform 0.1s;\n filter: blur(8px);\n }\n\n :host([active])::before {\n opacity: 0.05;\n transition-duration: 0s;\n }\n\n :host([active])::after {\n opacity: 0.1;\n transition-duration: 0s, 0s;\n transform: scale(0);\n }\n\n /* Keyboard focus */\n\n :host([focus-ring]) {\n box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);\n }\n\n :host([theme~='primary'][focus-ring]) {\n box-shadow: 0 0 0 1px var(--lumo-base-color), 0 0 0 3px var(--lumo-primary-color-50pct);\n }\n\n /* Types (primary, tertiary, tertiary-inline */\n\n :host([theme~='tertiary']),\n :host([theme~='tertiary-inline']) {\n --_background: transparent !important;\n background: var(--vaadin-button-tertiary-background, var(--_background));\n min-width: 0;\n }\n\n :host([theme~='tertiary']) {\n border: var(--vaadin-button-tertiary-border, none);\n color: var(--vaadin-button-tertiary-text-color, var(--lumo-primary-text-color));\n font-weight: var(--vaadin-button-tertiary-font-weight, 500);\n padding: var(--vaadin-button-tertiary-padding, 0 calc(var(--_button-size) / 6));\n }\n\n :host([theme~='tertiary-inline'])::before {\n display: none;\n }\n\n :host([theme~='tertiary-inline']) {\n margin: 0;\n height: auto;\n padding: 0;\n line-height: inherit;\n font-size: inherit;\n }\n\n :host([theme~='tertiary-inline']) [part='label'] {\n padding: 0;\n overflow: visible;\n line-height: inherit;\n }\n\n :host([theme~='primary']) {\n background: var(--_lumo-button-primary-background);\n border: var(--vaadin-button-primary-border, none);\n color: var(--_lumo-button-primary-text-color);\n font-weight: var(--vaadin-button-primary-font-weight, 600);\n min-width: calc(var(--lumo-button-size) * 2.5);\n }\n\n :host([theme~='primary'])::before {\n background-color: black;\n }\n\n @media (any-hover: hover) {\n :host([theme~='primary']:hover)::before {\n opacity: 0.05;\n }\n }\n\n :host([theme~='primary'][active])::before {\n opacity: 0.1;\n }\n\n :host([theme~='primary'][active])::after {\n opacity: 0.2;\n }\n\n /* Colors (success, error, contrast) */\n\n :host([theme~='success']) {\n color: var(--lumo-success-text-color);\n }\n\n :host([theme~='success'][theme~='primary']) {\n background-color: var(--lumo-success-color);\n color: var(--lumo-success-contrast-color);\n }\n\n :host([theme~='error']) {\n color: var(--lumo-error-text-color);\n }\n\n :host([theme~='error'][theme~='primary']) {\n background-color: var(--lumo-error-color);\n color: var(--lumo-error-contrast-color);\n }\n\n :host([theme~='contrast']) {\n color: var(--lumo-contrast);\n }\n\n :host([theme~='contrast'][theme~='primary']) {\n background-color: var(--lumo-contrast);\n color: var(--lumo-base-color);\n }\n\n /* Disabled state. Keep selectors after other color variants. */\n\n :host([disabled]) {\n pointer-events: none;\n color: var(--lumo-disabled-text-color);\n }\n\n :host([theme~='primary'][disabled]) {\n background-color: var(--lumo-contrast-30pct);\n color: var(--lumo-base-color);\n }\n\n :host([theme~='primary'][disabled]) [part] {\n opacity: 0.7;\n }\n\n /* Icons */\n\n [part] ::slotted(vaadin-icon) {\n display: inline-block;\n width: var(--lumo-icon-size-m);\n height: var(--lumo-icon-size-m);\n }\n\n /* Vaadin icons are based on a 16x16 grid (unlike Lumo and Material icons with 24x24), so they look too big by default */\n [part] ::slotted(vaadin-icon[icon^='vaadin:']) {\n padding: 0.25em;\n box-sizing: border-box !important;\n }\n\n [part='prefix'] {\n margin-left: -0.25em;\n margin-right: 0.25em;\n }\n\n [part='suffix'] {\n margin-left: 0.25em;\n margin-right: -0.25em;\n }\n\n /* Icon-only */\n\n :host([theme~='icon']:not([theme~='tertiary-inline'])) {\n min-width: var(--lumo-button-size);\n padding-left: calc(var(--lumo-button-size) / 4);\n padding-right: calc(var(--lumo-button-size) / 4);\n }\n\n :host([theme~='icon']) [part='prefix'],\n :host([theme~='icon']) [part='suffix'] {\n margin-left: 0;\n margin-right: 0;\n }\n\n /* RTL specific styles */\n\n :host([dir='rtl']) [part='prefix'] {\n margin-left: 0.25em;\n margin-right: -0.25em;\n }\n\n :host([dir='rtl']) [part='suffix'] {\n margin-left: -0.25em;\n margin-right: 0.25em;\n }\n\n :host([dir='rtl'][theme~='icon']) [part='prefix'],\n :host([dir='rtl'][theme~='icon']) [part='suffix'] {\n margin-left: 0;\n margin-right: 0;\n }\n`;\n\nregisterStyles('vaadin-button', button, { moduleId: 'lumo-button' });\n\nexport { button };\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 { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('icon');\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'descope-image',\n style: () => `\n :host {\n display: inline-flex;\n }\n `,\n excludeAttrsSync: ['tabindex', 'class'],\n componentName,\n }),\n);\n"],"names":["testUserAgent","regexp","test","navigator","userAgent","testPlatform","platform","isAndroid","isChrome","vendor","isFirefox","isIPad","maxTouchPoints","isIOS","isSafari","isTouch","document","createEvent","e","module","exports","clickableMixin","superclass","isLoading","this","getAttribute","click","super","componentName","host","label","slottedIcon","selector","loadingIndicatorStyles","ButtonClass","mappings","hostWidth","property","hostHeight","hostDirection","fontSize","fontFamily","cursor","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","slots","wrappedEleName","style","excludeAttrsSync","color","stylesMap","WeakMap","SlotStylesMixin","slotStyles","connectedCallback","__applySlotStyles","root","getRootNode","rootStyles","has","set","Set","get","getRootStyles","forEach","styles","createElement","window","DESCOPE_NONCE","setAttribute","textContent","head","appendChild","insertBefore","firstChild","insertStyles","add","RawBadge","baseSelector","constructor","attachShadow","mode","innerHTML","BadgeClass","fontWeight","textTransform","textColor","customElements","define","RawText","hideWhenEmpty","init","hasChildren","childNodes","length","display","TextClass","textLineHeight","textLetterSpacing","textShadow","fontStyle","RawUserAuthMethod","createBaseClass","button","shadowRoot","querySelector","fulfilledIndicator","labelText","onLabelChange","innerText","onButtonLabelChange","textSpanEle","buttonLabel","removeChild","onFulfilledChange","classList","toggle","isFulfilled","addEventListener","dispatchEvent","CustomEvent","bubbles","composed","observedAttributes","concat","attributeChangedCallback","name","oldValue","newValue","textField","buttons","badge","textWrapper","methodIconSlot","UserAuthMethodClass","hostMinWidth","labelTextWidth","itemsGap","IconClass","buttonStyles","ButtonMixin","superClass","properties","tabindex","type","Number","value","reflectToAttribute","_activeKeys","ready","hasAttribute","_onKeyDown","event","altKey","shiftKey","ctrlKey","metaKey","includes","key","preventDefault","moduleId","Button","is","template","_tooltipController","addController"],"sourceRoot":""}