@descope/web-components-ui 3.27.3 → 3.27.4

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 (54) hide show
  1. package/dist/cjs/index.cjs.js +7 -2
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +11 -4
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/9439.js +1 -1
  6. package/dist/umd/9439.js.map +1 -1
  7. package/dist/umd/DescopeDev.js +1 -1
  8. package/dist/umd/DescopeDev.js.map +1 -1
  9. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js +1 -1
  10. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js.map +1 -1
  11. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js +1 -1
  12. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js.map +1 -1
  13. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js +1 -1
  14. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js.map +1 -1
  15. package/dist/umd/descope-button.js +1 -1
  16. package/dist/umd/descope-button.js.map +1 -1
  17. package/dist/umd/descope-date-field-descope-calendar-index-js.js +1 -1
  18. package/dist/umd/descope-date-field-descope-calendar-index-js.js.map +1 -1
  19. package/dist/umd/descope-multi-line-mappings.js +1 -1
  20. package/dist/umd/descope-multi-line-mappings.js.map +1 -1
  21. package/dist/umd/descope-multi-sso.js +1 -1
  22. package/dist/umd/descope-multi-sso.js.map +1 -1
  23. package/dist/umd/descope-outbound-app-button.js +1 -1
  24. package/dist/umd/descope-outbound-app-button.js.map +1 -1
  25. package/dist/umd/descope-outbound-apps.js +1 -1
  26. package/dist/umd/descope-outbound-apps.js.map +1 -1
  27. package/dist/umd/descope-passcode-descope-passcode-internal-index-js.js +1 -1
  28. package/dist/umd/descope-passcode-descope-passcode-internal-index-js.js.map +1 -1
  29. package/dist/umd/descope-passcode-index-js.js +1 -1
  30. package/dist/umd/descope-passcode-index-js.js.map +1 -1
  31. package/dist/umd/descope-recovery-codes.js +1 -1
  32. package/dist/umd/descope-recovery-codes.js.map +1 -1
  33. package/dist/umd/descope-timer-button.js +1 -1
  34. package/dist/umd/descope-timer-button.js.map +1 -1
  35. package/dist/umd/descope-tooltip.js +1 -1
  36. package/dist/umd/descope-tooltip.js.map +1 -1
  37. package/dist/umd/descope-upload-file-index-js.js +1 -1
  38. package/dist/umd/descope-upload-file-index-js.js.map +1 -1
  39. package/dist/umd/descope-user-attribute-index-js.js +1 -1
  40. package/dist/umd/descope-user-attribute-index-js.js.map +1 -1
  41. package/dist/umd/descope-user-auth-method-index-js.js +1 -1
  42. package/dist/umd/descope-user-auth-method-index-js.js.map +1 -1
  43. package/dist/umd/descope-user-passkeys.js +1 -1
  44. package/dist/umd/descope-user-passkeys.js.map +1 -1
  45. package/dist/umd/index.js +1 -1
  46. package/dist/umd/index.js.map +1 -1
  47. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
  48. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js.map +1 -1
  49. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js +1 -1
  50. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js.map +1 -1
  51. package/package.json +46 -46
  52. package/src/components/descope-passcode/PasscodeClass.js +1 -0
  53. package/src/components/descope-passcode/descope-passcode-internal/PasscodeInternal.js +4 -2
  54. package/src/components/descope-upload-file/UploadFileClass.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"descope-outbound-app-button.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/ImageClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-outbound-app-button/src/component/OutboundAppButtonClass.js","webpack://@descope/web-components-ui/../components/descope-outbound-app-button/src/component/index.js"],"sourcesContent":["import { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n stretchMixin,\n} from '@descope-ui/common/components-mixins';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostMaxWidth: { ...host, property: 'max-width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n fontWeight: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(*)`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex', 'class', 'style'],\n componentName,\n }),\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"]) ::part(prefix),\n\t:host([loading=\"true\"]) ::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","import {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { ImageClass } from '@descope-ui/descope-image/class';\nimport { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('icon');\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: [{}, { property: ImageClass.cssVarList.fill }],\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'descope-image',\n style: () => `\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n max-height: 100%;\n }\n `,\n excludeAttrsSync: ['tabindex', 'class', 'style', 'st-height', 'st-width'],\n componentName,\n }),\n);\n","import '@descope-ui/descope-image';\n\nimport { componentName, IconClass } from './IconClass';\n\ncustomElements.define(componentName, IconClass);\n\nexport { IconClass, componentName };\n"," \nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { createImage } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('image');\n\nconst srcAttrs = ['src', 'src-dark'];\n\nclass RawImage extends createBaseClass({\n componentName,\n baseSelector: 'slot',\n}) {\n static get observedAttributes() {\n return srcAttrs;\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.getSrc);\n }\n\n onThemeChange() {\n this.renderImage();\n }\n\n toggleVisibility(isVisible) {\n if (isVisible) {\n this.classList.remove('hidden');\n } else {\n this.classList.add('hidden');\n }\n }\n\n get altText() {\n return this.getAttribute('alt') || '';\n }\n\n get legacySrc() {\n return this.getAttribute('src');\n }\n\n get themeSrc() {\n return this.getAttribute(`src-${this.currentThemeName}`);\n }\n\n get getSrc() {\n return this.themeSrc || this.legacySrc;\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n \n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${ImageClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`,\n );\n });\n }\n\n renderImage() {\n this.toggleVisibility(this.getSrc);\n\n createImage(this.getSrc, this.altText).then((res) => {\n this.innerHTML = '';\n if (res) {\n this.updateFillColor(res);\n this.appendChild(res);\n }\n });\n }\n\n // render only when src attribute matches current theme\n shouldRender(src) {\n const srcVal = this.getAttribute(src);\n return this.getSrc === srcVal;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (this.shouldRender(attrName)) {\n this.renderImage();\n }\n }\n}\n\nexport const ImageClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawImage);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src, altText) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n ele.setAttribute('alt', altText);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, {\n USE_PROFILES: { svg: true, svgFilters: true },\n // allow image to render\n ADD_TAGS: ['image'],\n // forbid interactiviy via `use` tags (which are sanitized by default)\n FORBID_TAGS: ['defs']\n });\n\n const parser = new DOMParser();\n const ele = parser\n .parseFromString(clean, 'image/svg+xml')\n .querySelector('svg');\n return ele;\n};\n\nexport const createImage = async (src, altText) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src, altText);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","import { componentName, ImageClass } from './ImageClass';\n\ncustomElements.define(componentName, ImageClass);\n\nexport { ImageClass, componentName };\n","import {\n componentNameValidationMixin,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport {\n forwardAttrs,\n getComponentName,\n injectStyle,\n} from '@descope-ui/common/components-helpers';\nimport { compose } from '@descope-ui/common/utils';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { ButtonClass } from '@descope-ui/descope-button/class';\n\nexport const componentName = getComponentName('outbound-app-button');\n\nclass RawOutboundAppButton extends createBaseClass({\n componentName,\n baseSelector: ':host > descope-button',\n}) {\n static get observedAttributes() {\n return ['label', 'icon-src', 'icon-fill-current-color'];\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <descope-button>\n <descope-icon class=\"icon\"></descope-icon>\n <span class=\"label\"></span>\n </descope-button>\n `;\n\n injectStyle(`\n :host {\n display: inline-block;\n }\n .hidden {\n display: none;\n }\n `, this);\n\n this.button = this.shadowRoot.querySelector('descope-button');\n this.icon = this.shadowRoot.querySelector('.icon');\n this.label = this.shadowRoot.querySelector('.label');\n }\n\n init() {\n super.init?.();\n\n forwardAttrs(this, this.button, {\n excludeAttrs: [\n 'style',\n 'class',\n 'label',\n 'icon-src',\n 'icon-fill-current-color',\n ]\n });\n }\n\n updateLabel(val = '') {\n this.label.textContent = val;\n this.label.classList.toggle('hidden', !val);\n }\n\n updateIcon(val = '') {\n this.icon.setAttribute('src', val);\n this.icon.classList.toggle('hidden', !val);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'label') {\n this.updateLabel(newValue);\n } else if (attrName === 'icon-src') {\n this.updateIcon(newValue);\n }\n }\n }\n}\n\nexport const OutboundAppButtonClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: {\n selector: () => ':host',\n property: 'width'\n },\n iconFillCurrentColor: {\n selector: () => 'descope-icon',\n property: ButtonClass.cssVarList.iconColor\n }\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawOutboundAppButton);\n","import {\n componentName,\n OutboundAppButtonClass,\n} from './OutboundAppButtonClass';\nimport '@descope-ui/descope-button';\nimport '@descope-ui/descope-icon';\n\ncustomElements.define(componentName, OutboundAppButtonClass);\n\nexport { OutboundAppButtonClass, componentName };\n"],"names":["componentName","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_1__","xE","host","label","slottedIcon","selector","loadingIndicatorStyles","ButtonClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_0__","Zz","_descope_ui_common_components_mixins__WEBPACK_IMPORTED_MODULE_2__","DM","triggers","attr","value","RF","mappings","hostWidth","property","hostMaxWidth","hostHeight","hostDirection","fontSize","fontFamily","fontWeight","cursor","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","_descope_ui_descope_icon_class__WEBPACK_IMPORTED_MODULE_3__","S","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","_clickableMixin__WEBPACK_IMPORTED_MODULE_4__","G","VO","tQ","tz","slots","wrappedEleName","style","excludeAttrsSync","color","clickableMixin","superclass","isLoading","this","getAttribute","click","super","customElements","define","_ButtonClass__WEBPACK_IMPORTED_MODULE_0__","T","J","IconClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_3__","_descope_ui_common_components_mixins__WEBPACK_IMPORTED_MODULE_0__","_descope_ui_descope_image_class__WEBPACK_IMPORTED_MODULE_2__","q","height","width","_IconClass__WEBPACK_IMPORTED_MODULE_1__","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_3__","srcAttrs","RawImage","_descope_ui_common_base_classes__WEBPACK_IMPORTED_MODULE_1__","qu","baseSelector","observedAttributes","constructor","attachShadow","mode","innerHTML","fz","init","toggleVisibility","getSrc","onThemeChange","renderImage","isVisible","classList","remove","add","altText","legacySrc","themeSrc","currentThemeName","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","ImageClass","_helpers__WEBPACK_IMPORTED_MODULE_4__","m","then","res","appendChild","shouldRender","src","srcVal","attributeChangedCallback","attrName","oldValue","newValue","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_2__","createSvgEle","text","clean","dompurify__WEBPACK_IMPORTED_MODULE_0__","A","sanitize","USE_PROFILES","svg","svgFilters","ADD_TAGS","FORBID_TAGS","DOMParser","parseFromString","querySelector","createImage","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","setProperty","_ImageClass__WEBPACK_IMPORTED_MODULE_0__","componentsHelpers","RawOutboundAppButton","baseClasses","button","shadowRoot","icon","EA","excludeAttrs","updateLabel","val","textContent","toggle","updateIcon","OutboundAppButtonClass","utils","componentsMixins","iconFillCurrentColor"],"sourceRoot":""}
1
+ {"version":3,"file":"descope-outbound-app-button.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/ImageClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-outbound-app-button/src/component/OutboundAppButtonClass.js","webpack://@descope/web-components-ui/../components/descope-outbound-app-button/src/component/index.js"],"sourcesContent":["import { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n stretchMixin,\n} from '@descope-ui/common/components-mixins';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostMaxWidth: { ...host, property: 'max-width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n fontWeight: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(*)`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex', 'class', 'style', 'role'],\n componentName,\n }),\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"]) ::part(prefix),\n\t:host([loading=\"true\"]) ::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","import {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { ImageClass } from '@descope-ui/descope-image/class';\nimport { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('icon');\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: [{}, { property: ImageClass.cssVarList.fill }],\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'descope-image',\n style: () => `\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n max-height: 100%;\n }\n `,\n excludeAttrsSync: ['tabindex', 'class', 'style', 'st-height', 'st-width'],\n componentName,\n }),\n);\n","import '@descope-ui/descope-image';\n\nimport { componentName, IconClass } from './IconClass';\n\ncustomElements.define(componentName, IconClass);\n\nexport { IconClass, componentName };\n"," \nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { createImage } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('image');\n\nconst srcAttrs = ['src', 'src-dark'];\n\nclass RawImage extends createBaseClass({\n componentName,\n baseSelector: 'slot',\n}) {\n static get observedAttributes() {\n return srcAttrs;\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.getSrc);\n }\n\n onThemeChange() {\n this.renderImage();\n }\n\n toggleVisibility(isVisible) {\n if (isVisible) {\n this.classList.remove('hidden');\n } else {\n this.classList.add('hidden');\n }\n }\n\n get altText() {\n return this.getAttribute('alt') || '';\n }\n\n get legacySrc() {\n return this.getAttribute('src');\n }\n\n get themeSrc() {\n return this.getAttribute(`src-${this.currentThemeName}`);\n }\n\n get getSrc() {\n return this.themeSrc || this.legacySrc;\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n \n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${ImageClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`,\n );\n });\n }\n\n renderImage() {\n this.toggleVisibility(this.getSrc);\n\n createImage(this.getSrc, this.altText).then((res) => {\n this.innerHTML = '';\n if (res) {\n this.updateFillColor(res);\n this.appendChild(res);\n }\n });\n }\n\n // render only when src attribute matches current theme\n shouldRender(src) {\n const srcVal = this.getAttribute(src);\n return this.getSrc === srcVal;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (this.shouldRender(attrName)) {\n this.renderImage();\n }\n }\n}\n\nexport const ImageClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawImage);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src, altText) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n ele.setAttribute('alt', altText);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, {\n USE_PROFILES: { svg: true, svgFilters: true },\n // allow image to render\n ADD_TAGS: ['image'],\n // forbid interactiviy via `use` tags (which are sanitized by default)\n FORBID_TAGS: ['defs']\n });\n\n const parser = new DOMParser();\n const ele = parser\n .parseFromString(clean, 'image/svg+xml')\n .querySelector('svg');\n return ele;\n};\n\nexport const createImage = async (src, altText) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src, altText);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","import { componentName, ImageClass } from './ImageClass';\n\ncustomElements.define(componentName, ImageClass);\n\nexport { ImageClass, componentName };\n","import {\n componentNameValidationMixin,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport {\n forwardAttrs,\n getComponentName,\n injectStyle,\n} from '@descope-ui/common/components-helpers';\nimport { compose } from '@descope-ui/common/utils';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { ButtonClass } from '@descope-ui/descope-button/class';\n\nexport const componentName = getComponentName('outbound-app-button');\n\nclass RawOutboundAppButton extends createBaseClass({\n componentName,\n baseSelector: ':host > descope-button',\n}) {\n static get observedAttributes() {\n return ['label', 'icon-src', 'icon-fill-current-color'];\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <descope-button>\n <descope-icon class=\"icon\"></descope-icon>\n <span class=\"label\"></span>\n </descope-button>\n `;\n\n injectStyle(`\n :host {\n display: inline-block;\n }\n .hidden {\n display: none;\n }\n `, this);\n\n this.button = this.shadowRoot.querySelector('descope-button');\n this.icon = this.shadowRoot.querySelector('.icon');\n this.label = this.shadowRoot.querySelector('.label');\n }\n\n init() {\n super.init?.();\n\n forwardAttrs(this, this.button, {\n excludeAttrs: [\n 'style',\n 'class',\n 'label',\n 'icon-src',\n 'icon-fill-current-color',\n ]\n });\n }\n\n updateLabel(val = '') {\n this.label.textContent = val;\n this.label.classList.toggle('hidden', !val);\n }\n\n updateIcon(val = '') {\n this.icon.setAttribute('src', val);\n this.icon.classList.toggle('hidden', !val);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'label') {\n this.updateLabel(newValue);\n } else if (attrName === 'icon-src') {\n this.updateIcon(newValue);\n }\n }\n }\n}\n\nexport const OutboundAppButtonClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: {\n selector: () => ':host',\n property: 'width'\n },\n iconFillCurrentColor: {\n selector: () => 'descope-icon',\n property: ButtonClass.cssVarList.iconColor\n }\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawOutboundAppButton);\n","import {\n componentName,\n OutboundAppButtonClass,\n} from './OutboundAppButtonClass';\nimport '@descope-ui/descope-button';\nimport '@descope-ui/descope-icon';\n\ncustomElements.define(componentName, OutboundAppButtonClass);\n\nexport { OutboundAppButtonClass, componentName };\n"],"names":["componentName","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_1__","xE","host","label","slottedIcon","selector","loadingIndicatorStyles","ButtonClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_0__","Zz","_descope_ui_common_components_mixins__WEBPACK_IMPORTED_MODULE_2__","DM","triggers","attr","value","RF","mappings","hostWidth","property","hostMaxWidth","hostHeight","hostDirection","fontSize","fontFamily","fontWeight","cursor","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","_descope_ui_descope_icon_class__WEBPACK_IMPORTED_MODULE_3__","S","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","_clickableMixin__WEBPACK_IMPORTED_MODULE_4__","G","VO","tQ","tz","slots","wrappedEleName","style","excludeAttrsSync","color","clickableMixin","superclass","isLoading","this","getAttribute","click","super","customElements","define","_ButtonClass__WEBPACK_IMPORTED_MODULE_0__","T","J","IconClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_3__","_descope_ui_common_components_mixins__WEBPACK_IMPORTED_MODULE_0__","_descope_ui_descope_image_class__WEBPACK_IMPORTED_MODULE_2__","q","height","width","_IconClass__WEBPACK_IMPORTED_MODULE_1__","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_3__","srcAttrs","RawImage","_descope_ui_common_base_classes__WEBPACK_IMPORTED_MODULE_1__","qu","baseSelector","observedAttributes","constructor","attachShadow","mode","innerHTML","fz","init","toggleVisibility","getSrc","onThemeChange","renderImage","isVisible","classList","remove","add","altText","legacySrc","themeSrc","currentThemeName","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","ImageClass","_helpers__WEBPACK_IMPORTED_MODULE_4__","m","then","res","appendChild","shouldRender","src","srcVal","attributeChangedCallback","attrName","oldValue","newValue","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_2__","createSvgEle","text","clean","dompurify__WEBPACK_IMPORTED_MODULE_0__","A","sanitize","USE_PROFILES","svg","svgFilters","ADD_TAGS","FORBID_TAGS","DOMParser","parseFromString","querySelector","createImage","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","setProperty","_ImageClass__WEBPACK_IMPORTED_MODULE_0__","componentsHelpers","RawOutboundAppButton","baseClasses","button","shadowRoot","icon","EA","excludeAttrs","updateLabel","val","textContent","toggle","updateIcon","OutboundAppButtonClass","utils","componentsMixins","iconFillCurrentColor"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[461,2294,4292,4551],{44666(t,e,n){n.d(e,{E:()=>h,T:()=>a});var o=n(88961),r=n(72270),i=n(63200),s=n(25964);const a=(0,s.xE)("avatar");class l extends((0,r.qu)({componentName:a,baseSelector:":host > .wrapper"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="wrapper">\n <vaadin-avatar></vaadin-avatar>\n <div class="editableBadge">\n <vaadin-icon icon="vaadin:pencil"></vaadin-icon>\n </div>\n </div>\n\t\t',(0,s.fz)("\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n .editableBadge {\n border: 1px solid;\n border-radius: 100%;\n height: fit-content;\n width: 25%;\n height: 25%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5%;\n box-sizing: border-box;\n position: absolute;\n bottom: 0;\n inset-inline-end: 0;\n }\n\n vaadin-icon {\n color: currentcolor;\n }\n\n vaadin-avatar {\n width: 100%;\n height: 100%;\n margin: 0;\n border: none\n }\n\n .wrapper {\n display: inline-flex;\n position: relative;\n width: 100%;\n height: 100%;\n }\n ",this),this.avatarComponent=this.shadowRoot.querySelector("vaadin-avatar"),(0,s.EA)(this,this.avatarComponent,{includeAttrs:["display-name","img","abbr"],mapAttrs:{"display-name":"name"}});const t=this.shadowRoot.querySelector(".editableBadge");(0,s.mx)(this,()=>{t.style.display=this.isEditable?"":"none"},{includeAttrs:["editable"]})}get isEditable(){return"true"===this.getAttribute("editable")}}const{host:d,editableBadge:c,avatar:p}={host:{selector:()=>":host"},editableBadge:{selector:"> .editableBadge"},avatar:{selector:"vaadin-avatar"}},h=(0,i.Zz)((0,o.RF)({mappings:{hostWidth:[{...d,property:"width"},{...d,property:"min-width"}],hostHeight:{...d,property:"height"},cursor:[p,d],hostDirection:{...d,property:"direction"},avatarTextColor:{...p,property:"color"},avatarBackgroundColor:{...p,property:"background-color"},editableIconColor:{...c,property:"color"},editableBorderColor:{...c,property:"border-color"},editableBackgroundColor:{...c,property:"background-color"}}}),o.VO,o.tQ)(l)},64309(t,e,n){n.r(e),n.d(e,{AvatarClass:()=>o.E,componentName:()=>o.T});var o=n(44666);n(87133),n(95260),n(37182),customElements.define(o.T,o.E)},19624(t,e,n){n.d(e,{J:()=>m,T:()=>l});var o=n(63200),r=n(25964),i=n(88961),s=n(98538),a=n(10767);const l=(0,r.xE)("button"),{host:d,label:c,slottedIcon:p}={host:{selector:()=>":host"},label:{selector:"::part(label)"},slottedIcon:{selector:()=>"::slotted(descope-icon)"}};let h;const m=(0,o.Zz)((0,i.DM)({triggers:[{attr:"full-width",value:"true"}]}),(0,i.RF)({mappings:{hostWidth:{property:"width"},hostMaxWidth:{...d,property:"max-width"},hostHeight:{property:"height"},hostDirection:{...d,property:"direction"},fontSize:{},fontFamily:{},fontWeight:{},cursor:{},backgroundColor:{},outlineOffset:{},outlineColor:{},outlineStyle:{},outlineWidth:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-right",fallback:"0.875em"},{property:"padding-left",fallback:"0.875em"}],labelTextColor:{property:"color"},iconColor:{selector:()=>"::slotted(*)",property:s.S.cssVarList.fill},labelTextDecoration:{...c,property:"text-decoration"},labelSpacing:{...c,property:"gap"},textAlign:{...c,property:"justify-content",fallback:"center"},iconSize:[{...p,property:"width"},{...p,property:"height"}]}}),a.G,i.VO,i.tQ)((0,i.tz)({slots:["","prefix","label","suffix"],wrappedEleName:"vaadin-button",style:()=>`\n\t\t\t\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n\n\t\t\t\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t\t\t${h}\n\t\t\tvaadin-button::part(label) { pointer-events: none; }\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${m.cssVarList.outlineWidth}) + var(${m.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width="true"]) {\n width: var(${m.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${m.cssVarList.hostHeight}) - var(${m.cssVarList.outlineWidth}) - var(${m.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square="true"]:not([full-width="true"]) {\n\t\t\t\twidth: calc(var(${m.cssVarList.hostWidth}) - var(${m.cssVarList.outlineWidth}) - var(${m.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,excludeAttrsSync:["tabindex","class","style"],componentName:l})),{color:u,fontSize:g}=m.cssVarList;h=`\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading="true"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${u});\n\t\ttop: calc(50% - (var(${g}) / 2));\n\t\tleft: calc(50% - (var(${g}) / 2));\n\t\tborder-width: calc(var(${g}) / 10);\n\t\twidth: var(${g});\n\t\theight: var(${g});\n\t}\n\t:host([disabled="true"]),\n\t:host([loading="true"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading="true"]) ::part(prefix),\n\t:host([loading="true"]) ::part(label) {\n\t\tvisibility: hidden;\n\t}\n`},10767(t,e,n){n.d(e,{G:()=>o});const o=t=>class extends t{get isLoading(){return"true"===this.getAttribute("loading")}click(){this.isLoading||super.click()}}},30576(t,e,n){n.r(e),n.d(e,{ButtonClass:()=>o.J,componentName:()=>o.T});var o=n(19624);n(83799),customElements.define(o.T,o.J)},98538(t,e,n){n.d(e,{S:()=>l,T:()=>a});var o=n(88961),r=n(25964),i=n(8512),s=n(63200);const a=(0,r.xE)("icon"),l=(0,s.Zz)((0,o.RF)({mappings:{fill:[{},{property:i.q.cssVarList.fill}],height:{selector:()=>":host"},width:{selector:()=>":host"}}}),o.VO,o.tQ)((0,o.tz)({slots:[],wrappedEleName:"descope-image",style:()=>"\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n max-height: 100%;\n }\n ",excludeAttrsSync:["tabindex","class","style","st-height","st-width"],componentName:a}))},8512(t,e,n){n.d(e,{T:()=>l,q:()=>p});var o=n(88961),r=n(72270),i=n(63200),s=n(25964),a=n(18782);const l=(0,s.xE)("image"),d=["src","src-dark"];class c extends((0,r.qu)({componentName:l,baseSelector:"slot"})){static get observedAttributes(){return d}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<slot></slot>\n\t",(0,s.fz)("\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n ",this)}init(){super.init?.(),this.toggleVisibility(this.getSrc)}onThemeChange(){this.renderImage()}toggleVisibility(t){t?this.classList.remove("hidden"):this.classList.add("hidden")}get altText(){return this.getAttribute("alt")||""}get legacySrc(){return this.getAttribute("src")}get themeSrc(){return this.getAttribute(`src-${this.currentThemeName}`)}get getSrc(){return this.themeSrc||this.legacySrc}updateFillColor(t){[t,...t.querySelectorAll("*[fill]")].forEach(t=>{t.setAttribute("fill",`var(${p.cssVarList.fill}, ${t.getAttribute("fill")||"''"})`)})}renderImage(){this.toggleVisibility(this.getSrc),(0,a.m)(this.getSrc,this.altText).then(t=>{this.innerHTML="",t&&(this.updateFillColor(t),this.appendChild(t))})}shouldRender(t){const e=this.getAttribute(t);return this.getSrc===e}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&this.shouldRender(t)&&this.renderImage()}}const p=(0,i.Zz)((0,o.RF)({mappings:{fill:{},height:{selector:()=>":host"},width:{selector:()=>":host"}}}),o.VO,o.tQ)(c)},18782(t,e,n){n.d(e,{m:()=>i});var o=n(25414);const r=t=>{const e=o.A.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:["image"],FORBID_TAGS:["defs"]});return(new DOMParser).parseFromString(e,"image/svg+xml").querySelector("svg")},i=async(t,e)=>{try{let n;if((t=>t.startsWith("data:image/svg+xml;base64,"))(t)){const e=atob(t.slice(26));n=r(e)}else if("svg"===(t=>{const e=t.match(/\.([0-9a-z]+)(?:[\\?#]|$)/i);return e?e[1]:null})(t)){const e=await fetch(t),o=await e.text();n=r(o)}else n=((t,e)=>{const n=document.createElement("img");return n.setAttribute("src",t),n.setAttribute("alt",e),n})(t,e);return n.style.setProperty("max-width","100%"),n.style.setProperty("max-height","100%"),n}catch{return null}}},93895(t,e,n){n.d(e,{O:()=>l,T:()=>a});var o=n(88961),r=n(63200),i=n(25964),s=n(72270);const a=(0,i.xE)("list-item"),l=(0,r.Zz)((0,o.RF)({mappings:{verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],backgroundColor:{},borderColor:{},borderStyle:{},borderWidth:{},borderRadius:{},outline:{},cursor:{},gap:{},maxWidth:{selector:()=>":host"},alignItems:{},flexDirection:{},transition:{}}}),o.VO,o.tQ,t=>class extends t{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n <slot></slot>\n ",(0,i.fz)("\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n ",this)}},o.y)((0,s.qu)({componentName:a,baseSelector:"slot"}))},24542(t,e,n){n.r(e),n.d(e,{ListItemClass:()=>o.O,componentName:()=>o.T});var o=n(93895);customElements.define(o.T,o.O)},7720(t,e,n){n.d(e,{T:()=>l,x:()=>c});var o=n(88961),r=n(63200),i=n(25964),s=n(93895),a=n(72270);const l=(0,i.xE)("list");class d extends((0,a.qu)({componentName:l,baseSelector:".wrapper"})){static get observedAttributes(){return["variant","readonly"]}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="wrapper">\n <slot></slot>\n <slot name="empty-state">\n No item...\n </slot>\n </div>\n\t',(0,i.fz)('\n .wrapper {\n overflow: auto;\n display: grid;\n max-height: 100%;\n width: 100%;\n }\n\n :host {\n display: inline-flex;\n width: 100%;\n }\n slot[name="empty-state"] {\n justify-content: center;\n align-items: center;\n display: flex;\n flex-grow: 1;\n }\n\n :host slot[name="empty-state"] {\n display: none;\n }\n :host([empty]) slot[name="empty-state"] {\n display: flex;\n }\n ::slotted(:not([slot])) {\n width: 100%;\n }\n ',this)}get items(){return this.shadowRoot.querySelector("slot").assignedElements()}#t(){0===this.items.length?this.setAttribute("empty","true"):this.removeAttribute("empty")}get variant(){return this.getAttribute("variant")||"list"}#e(){this.items.forEach(t=>{let e=t;e.localName!==s.O.componentName&&(e=t.querySelector(s.O.componentName));const n="tiles"===this.variant?"tile":"row";e?.setAttribute("variant",n)})}init(){super.init?.(),(0,i.Ge)(this,()=>{this.#t(),this.#e(),this.#n()})}get isReadOnly(){return"true"===this.getAttribute("readonly")}#n(){this.items.forEach(t=>{this.isReadOnly?t.setAttribute("inert",""):t.removeAttribute("inert")})}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),n!==e&&("variant"===t?this.#e():"readonly"===t&&this.#n())}}const c=(0,r.Zz)((0,o.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},maxHeight:{selector:()=>":host"},minHeight:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],hostDirection:{selector:()=>":host",property:"direction"},fontFamily:{},gap:{},backgroundColor:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},boxShadow:{},gridTemplateColumns:{},maxItemsWidth:{selector:()=>"::slotted(:not([slot]))",property:"max-width"},minItemsWidth:{selector:()=>"::slotted(:not([slot]))",property:"min-width"},maxRowItems:{property:"max-row-items"},itemsHorizontalAlign:{selector:()=>"::slotted(*)",property:"justify-self"},emptyStateTextColor:{selector:()=>'slot[name="empty-state"]',property:"color"},emptyStateTextFontFamily:{selector:()=>'slot[name="empty-state"]',property:"font-family"},emptyStateVerticalPadding:[{selector:()=>'slot[name="empty-state"]',property:"padding-top"},{selector:()=>'slot[name="empty-state"]',property:"padding-bottom"}]}}),o.VO,o.tQ)(d)},45400(t,e,n){n.r(e),n.d(e,{ListClass:()=>o.x,componentName:()=>o.T}),n(24542);var o=n(7720);customElements.define(o.T,o.x)},58204(t,e,n){n.r(e),n.d(e,{OutboundAppsClass:()=>g,componentName:()=>p}),n(45400),n(24542),n(63595),n(64309),n(30576);var o=n(63200),r=n(25964),i=n(88961),s=n(72270),a=n(98538),l=n(66434),d=n(7720),c=n(93895);const p=(0,r.xE)("outbound-apps"),h=({name:t,description:e,logo:n,appId:o,isConnected:i},s,a)=>{const l=i?"disconnect":"connect";return`\n <descope-list-item>\n <descope-avatar\n ${n?`img="${n}"`:""}\n ${t?`display-name="${t}" abbr=${(0,r.ie)(t)}`:""}\n size=${a.size}\n ${n?'st-avatar-background-color="none"':""}\n class="app-logo"\n ></descope-avatar>\n\n <div class="content">\n <descope-text\n class="app-title"\n variant="subtitle1"\n mode="primary"\n >${t}</descope-text>\n ${e?`\n <descope-text\n class="app-description"\n variant="body2"\n mode="primary"\n >${e}</descope-text>\n `:""}\n </div>\n <div class="controls">\n <descope-button variant="link" mode="primary" size=${a.size} data-action="${l}" data-outbound-app-id="${o}" data-id="${l}">\n ${i?a.disconnectButtonLabel:a.connectButtonLabel}\n </descope-button>\n </div>\n </descope-list-item>\n`},m=(0,s.qu)({componentName:p,baseSelector:"descope-list"}),{host:u}={host:{selector:()=>":host"}},g=(0,o.Zz)((0,i.RF)({mappings:{hostWidth:{...u,property:"width"},minHeight:{selector:()=>":host"},hostDirection:[{...u,property:"direction"},{selector:"descope-list",property:"direction"},{selector:"descope-list-item",property:"direction"}],iconColor:{selector:()=>" descope-icon",property:a.S.cssVarList.fill},errorIconColor:{selector:()=>" descope-icon.error-icon",property:a.S.cssVarList.fill},fontSize:{selector:l.s.componentName,property:l.s.cssVarList.fontSize},appLogoGap:{selector:()=>" .app-logo",property:"margin-inline-end"},contentGap:{selector:()=>" .content",property:"gap"},itemsTextAlign:{selector:l.s.componentName,property:l.s.cssVarList.textAlign},itemCursor:{selector:c.O.componentName,property:c.O.cssVarList.cursor},itemOutline:{selector:c.O.componentName,property:c.O.cssVarList.outline},itemBorderColor:{selector:c.O.componentName,property:c.O.cssVarList.borderColor},itemBackgroundColor:{selector:c.O.componentName,property:c.O.cssVarList.backgroundColor},listBorderWidth:{selector:()=>d.x.componentName,property:d.x.cssVarList.borderWidth},listBoxShadow:{selector:()=>d.x.componentName,property:d.x.cssVarList.boxShadow},listPadding:[{selector:()=>d.x.componentName,property:d.x.cssVarList.verticalPadding},{selector:()=>d.x.componentName,property:d.x.cssVarList.horizontalPadding}],emptyStateMinHeight:{selector:()=>d.x.componentName,property:d.x.cssVarList.minHeight},emptyStateVerticalPadding:{selector:()=>d.x.componentName,property:d.x.cssVarList.emptyStateVerticalPadding}}}),i.VO,(0,i.t$)({itemRenderer:h,rerenderAttrsList:["size","connect-button-label","disconnect-button-label"]}),i.tQ)(class extends m{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <descope-list>\n <slot name="empty-state" slot="empty-state"></slot>\n </descope-list>\n ',this.appsList=this.shadowRoot.querySelector("descope-list"),(0,r.fz)("\n :host {\n width: 100%;\n }\n .controls {\n display: flex;\n min-width: 8em;\n justify-content: end;\n }\n .content {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n .app-title,\n .app-description {\n display: flex;\n direction: inherit;\n }\n descope-list {\n display: block;\n }\n ",this)}init(){super.init?.(),this.appsList.itemRenderer=h,this.appsList.addEventListener("click",this.onAppsListClick.bind(this))}get readonly(){return"true"===this.getAttribute("readonly")}onAppsListClick(t){if(!this.readonly){const e=t.srcElement.getAttribute("data-outbound-app-id"),n=t.srcElement.getAttribute("data-action");e&&n&&this.dispatchEvent(new CustomEvent(`${n}-clicked`,{bubbles:!0,detail:{id:e,action:n}}))}}get size(){return this.getAttribute("size")||"sm"}get connectButtonLabel(){return this.getAttribute("connect-button-label")||"Connect"}get disconnectButtonLabel(){return this.getAttribute("disconnect-button-label")||"Disconnect"}});customElements.define(p,g)},66434(t,e,n){n.d(e,{T:()=>a,s:()=>c});var o=n(88961),r=n(63200),i=n(25964),s=n(72270);const a=(0,i.xE)("text");class l extends((0,s.qu)({componentName:a,baseSelector:":host > slot"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <slot part="text-wrapper"></slot>\n ',(0,i.fz)("\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n ",this)}get hideWhenEmpty(){return"true"===this.getAttribute("hide-when-empty")}init(){super.init(),(0,i.Ge)(this,()=>{const t=!!this.childNodes.length;this.style.display=!t&&this.hideWhenEmpty?"none":""})}}const{host:d}={host:{selector:()=>":host"}},c=(0,r.Zz)((0,o.RF)({mappings:{hostWidth:{...d,property:"width"},hostDirection:{...d,property:"direction"},fontSize:{},textColor:[{property:"color"}],textLineHeight:{property:"line-height"},textLetterSpacing:{property:"letter-spacing"},textShadow:{},textAlign:{},textTransform:{},fontFamily:{},fontStyle:{},fontWeight:{},borderWidth:{},borderStyle:{},borderColor:{}}}),(0,o.DM)({triggers:[{attr:"full-width",value:"true"}]}),o.VO,o.tQ)(l)},63595(t,e,n){n.r(e),n.d(e,{TextClass:()=>o.s,componentName:()=>o.T});var o=n(66434);customElements.define(o.T,o.s)}}]);
1
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[461,2294,4292,4551],{44666(t,e,n){n.d(e,{E:()=>h,T:()=>a});var o=n(88961),r=n(72270),i=n(63200),s=n(25964);const a=(0,s.xE)("avatar");class l extends((0,r.qu)({componentName:a,baseSelector:":host > .wrapper"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="wrapper">\n <vaadin-avatar></vaadin-avatar>\n <div class="editableBadge">\n <vaadin-icon icon="vaadin:pencil"></vaadin-icon>\n </div>\n </div>\n\t\t',(0,s.fz)("\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n .editableBadge {\n border: 1px solid;\n border-radius: 100%;\n height: fit-content;\n width: 25%;\n height: 25%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5%;\n box-sizing: border-box;\n position: absolute;\n bottom: 0;\n inset-inline-end: 0;\n }\n\n vaadin-icon {\n color: currentcolor;\n }\n\n vaadin-avatar {\n width: 100%;\n height: 100%;\n margin: 0;\n border: none\n }\n\n .wrapper {\n display: inline-flex;\n position: relative;\n width: 100%;\n height: 100%;\n }\n ",this),this.avatarComponent=this.shadowRoot.querySelector("vaadin-avatar"),(0,s.EA)(this,this.avatarComponent,{includeAttrs:["display-name","img","abbr"],mapAttrs:{"display-name":"name"}});const t=this.shadowRoot.querySelector(".editableBadge");(0,s.mx)(this,()=>{t.style.display=this.isEditable?"":"none"},{includeAttrs:["editable"]})}get isEditable(){return"true"===this.getAttribute("editable")}}const{host:d,editableBadge:c,avatar:p}={host:{selector:()=>":host"},editableBadge:{selector:"> .editableBadge"},avatar:{selector:"vaadin-avatar"}},h=(0,i.Zz)((0,o.RF)({mappings:{hostWidth:[{...d,property:"width"},{...d,property:"min-width"}],hostHeight:{...d,property:"height"},cursor:[p,d],hostDirection:{...d,property:"direction"},avatarTextColor:{...p,property:"color"},avatarBackgroundColor:{...p,property:"background-color"},editableIconColor:{...c,property:"color"},editableBorderColor:{...c,property:"border-color"},editableBackgroundColor:{...c,property:"background-color"}}}),o.VO,o.tQ)(l)},64309(t,e,n){n.r(e),n.d(e,{AvatarClass:()=>o.E,componentName:()=>o.T});var o=n(44666);n(87133),n(95260),n(37182),customElements.define(o.T,o.E)},19624(t,e,n){n.d(e,{J:()=>m,T:()=>l});var o=n(63200),r=n(25964),i=n(88961),s=n(98538),a=n(10767);const l=(0,r.xE)("button"),{host:d,label:c,slottedIcon:p}={host:{selector:()=>":host"},label:{selector:"::part(label)"},slottedIcon:{selector:()=>"::slotted(descope-icon)"}};let h;const m=(0,o.Zz)((0,i.DM)({triggers:[{attr:"full-width",value:"true"}]}),(0,i.RF)({mappings:{hostWidth:{property:"width"},hostMaxWidth:{...d,property:"max-width"},hostHeight:{property:"height"},hostDirection:{...d,property:"direction"},fontSize:{},fontFamily:{},fontWeight:{},cursor:{},backgroundColor:{},outlineOffset:{},outlineColor:{},outlineStyle:{},outlineWidth:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-right",fallback:"0.875em"},{property:"padding-left",fallback:"0.875em"}],labelTextColor:{property:"color"},iconColor:{selector:()=>"::slotted(*)",property:s.S.cssVarList.fill},labelTextDecoration:{...c,property:"text-decoration"},labelSpacing:{...c,property:"gap"},textAlign:{...c,property:"justify-content",fallback:"center"},iconSize:[{...p,property:"width"},{...p,property:"height"}]}}),a.G,i.VO,i.tQ)((0,i.tz)({slots:["","prefix","label","suffix"],wrappedEleName:"vaadin-button",style:()=>`\n\t\t\t\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n\n\t\t\t\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t\t\t${h}\n\t\t\tvaadin-button::part(label) { pointer-events: none; }\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${m.cssVarList.outlineWidth}) + var(${m.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width="true"]) {\n width: var(${m.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${m.cssVarList.hostHeight}) - var(${m.cssVarList.outlineWidth}) - var(${m.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square="true"]:not([full-width="true"]) {\n\t\t\t\twidth: calc(var(${m.cssVarList.hostWidth}) - var(${m.cssVarList.outlineWidth}) - var(${m.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,excludeAttrsSync:["tabindex","class","style","role"],componentName:l})),{color:u,fontSize:g}=m.cssVarList;h=`\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading="true"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${u});\n\t\ttop: calc(50% - (var(${g}) / 2));\n\t\tleft: calc(50% - (var(${g}) / 2));\n\t\tborder-width: calc(var(${g}) / 10);\n\t\twidth: var(${g});\n\t\theight: var(${g});\n\t}\n\t:host([disabled="true"]),\n\t:host([loading="true"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading="true"]) ::part(prefix),\n\t:host([loading="true"]) ::part(label) {\n\t\tvisibility: hidden;\n\t}\n`},10767(t,e,n){n.d(e,{G:()=>o});const o=t=>class extends t{get isLoading(){return"true"===this.getAttribute("loading")}click(){this.isLoading||super.click()}}},30576(t,e,n){n.r(e),n.d(e,{ButtonClass:()=>o.J,componentName:()=>o.T});var o=n(19624);n(83799),customElements.define(o.T,o.J)},98538(t,e,n){n.d(e,{S:()=>l,T:()=>a});var o=n(88961),r=n(25964),i=n(8512),s=n(63200);const a=(0,r.xE)("icon"),l=(0,s.Zz)((0,o.RF)({mappings:{fill:[{},{property:i.q.cssVarList.fill}],height:{selector:()=>":host"},width:{selector:()=>":host"}}}),o.VO,o.tQ)((0,o.tz)({slots:[],wrappedEleName:"descope-image",style:()=>"\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n max-height: 100%;\n }\n ",excludeAttrsSync:["tabindex","class","style","st-height","st-width"],componentName:a}))},8512(t,e,n){n.d(e,{T:()=>l,q:()=>p});var o=n(88961),r=n(72270),i=n(63200),s=n(25964),a=n(18782);const l=(0,s.xE)("image"),d=["src","src-dark"];class c extends((0,r.qu)({componentName:l,baseSelector:"slot"})){static get observedAttributes(){return d}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<slot></slot>\n\t",(0,s.fz)("\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n ",this)}init(){super.init?.(),this.toggleVisibility(this.getSrc)}onThemeChange(){this.renderImage()}toggleVisibility(t){t?this.classList.remove("hidden"):this.classList.add("hidden")}get altText(){return this.getAttribute("alt")||""}get legacySrc(){return this.getAttribute("src")}get themeSrc(){return this.getAttribute(`src-${this.currentThemeName}`)}get getSrc(){return this.themeSrc||this.legacySrc}updateFillColor(t){[t,...t.querySelectorAll("*[fill]")].forEach(t=>{t.setAttribute("fill",`var(${p.cssVarList.fill}, ${t.getAttribute("fill")||"''"})`)})}renderImage(){this.toggleVisibility(this.getSrc),(0,a.m)(this.getSrc,this.altText).then(t=>{this.innerHTML="",t&&(this.updateFillColor(t),this.appendChild(t))})}shouldRender(t){const e=this.getAttribute(t);return this.getSrc===e}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&this.shouldRender(t)&&this.renderImage()}}const p=(0,i.Zz)((0,o.RF)({mappings:{fill:{},height:{selector:()=>":host"},width:{selector:()=>":host"}}}),o.VO,o.tQ)(c)},18782(t,e,n){n.d(e,{m:()=>i});var o=n(25414);const r=t=>{const e=o.A.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:["image"],FORBID_TAGS:["defs"]});return(new DOMParser).parseFromString(e,"image/svg+xml").querySelector("svg")},i=async(t,e)=>{try{let n;if((t=>t.startsWith("data:image/svg+xml;base64,"))(t)){const e=atob(t.slice(26));n=r(e)}else if("svg"===(t=>{const e=t.match(/\.([0-9a-z]+)(?:[\\?#]|$)/i);return e?e[1]:null})(t)){const e=await fetch(t),o=await e.text();n=r(o)}else n=((t,e)=>{const n=document.createElement("img");return n.setAttribute("src",t),n.setAttribute("alt",e),n})(t,e);return n.style.setProperty("max-width","100%"),n.style.setProperty("max-height","100%"),n}catch{return null}}},93895(t,e,n){n.d(e,{O:()=>l,T:()=>a});var o=n(88961),r=n(63200),i=n(25964),s=n(72270);const a=(0,i.xE)("list-item"),l=(0,r.Zz)((0,o.RF)({mappings:{verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],backgroundColor:{},borderColor:{},borderStyle:{},borderWidth:{},borderRadius:{},outline:{},cursor:{},gap:{},maxWidth:{selector:()=>":host"},alignItems:{},flexDirection:{},transition:{}}}),o.VO,o.tQ,t=>class extends t{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n <slot></slot>\n ",(0,i.fz)("\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n ",this)}},o.y)((0,s.qu)({componentName:a,baseSelector:"slot"}))},24542(t,e,n){n.r(e),n.d(e,{ListItemClass:()=>o.O,componentName:()=>o.T});var o=n(93895);customElements.define(o.T,o.O)},7720(t,e,n){n.d(e,{T:()=>l,x:()=>c});var o=n(88961),r=n(63200),i=n(25964),s=n(93895),a=n(72270);const l=(0,i.xE)("list");class d extends((0,a.qu)({componentName:l,baseSelector:".wrapper"})){static get observedAttributes(){return["variant","readonly"]}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="wrapper">\n <slot></slot>\n <slot name="empty-state">\n No item...\n </slot>\n </div>\n\t',(0,i.fz)('\n .wrapper {\n overflow: auto;\n display: grid;\n max-height: 100%;\n width: 100%;\n }\n\n :host {\n display: inline-flex;\n width: 100%;\n }\n slot[name="empty-state"] {\n justify-content: center;\n align-items: center;\n display: flex;\n flex-grow: 1;\n }\n\n :host slot[name="empty-state"] {\n display: none;\n }\n :host([empty]) slot[name="empty-state"] {\n display: flex;\n }\n ::slotted(:not([slot])) {\n width: 100%;\n }\n ',this)}get items(){return this.shadowRoot.querySelector("slot").assignedElements()}#t(){0===this.items.length?this.setAttribute("empty","true"):this.removeAttribute("empty")}get variant(){return this.getAttribute("variant")||"list"}#e(){this.items.forEach(t=>{let e=t;e.localName!==s.O.componentName&&(e=t.querySelector(s.O.componentName));const n="tiles"===this.variant?"tile":"row";e?.setAttribute("variant",n)})}init(){super.init?.(),(0,i.Ge)(this,()=>{this.#t(),this.#e(),this.#n()})}get isReadOnly(){return"true"===this.getAttribute("readonly")}#n(){this.items.forEach(t=>{this.isReadOnly?t.setAttribute("inert",""):t.removeAttribute("inert")})}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),n!==e&&("variant"===t?this.#e():"readonly"===t&&this.#n())}}const c=(0,r.Zz)((0,o.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},maxHeight:{selector:()=>":host"},minHeight:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],hostDirection:{selector:()=>":host",property:"direction"},fontFamily:{},gap:{},backgroundColor:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},boxShadow:{},gridTemplateColumns:{},maxItemsWidth:{selector:()=>"::slotted(:not([slot]))",property:"max-width"},minItemsWidth:{selector:()=>"::slotted(:not([slot]))",property:"min-width"},maxRowItems:{property:"max-row-items"},itemsHorizontalAlign:{selector:()=>"::slotted(*)",property:"justify-self"},emptyStateTextColor:{selector:()=>'slot[name="empty-state"]',property:"color"},emptyStateTextFontFamily:{selector:()=>'slot[name="empty-state"]',property:"font-family"},emptyStateVerticalPadding:[{selector:()=>'slot[name="empty-state"]',property:"padding-top"},{selector:()=>'slot[name="empty-state"]',property:"padding-bottom"}]}}),o.VO,o.tQ)(d)},45400(t,e,n){n.r(e),n.d(e,{ListClass:()=>o.x,componentName:()=>o.T}),n(24542);var o=n(7720);customElements.define(o.T,o.x)},58204(t,e,n){n.r(e),n.d(e,{OutboundAppsClass:()=>g,componentName:()=>p}),n(45400),n(24542),n(63595),n(64309),n(30576);var o=n(63200),r=n(25964),i=n(88961),s=n(72270),a=n(98538),l=n(66434),d=n(7720),c=n(93895);const p=(0,r.xE)("outbound-apps"),h=({name:t,description:e,logo:n,appId:o,isConnected:i},s,a)=>{const l=i?"disconnect":"connect";return`\n <descope-list-item>\n <descope-avatar\n ${n?`img="${n}"`:""}\n ${t?`display-name="${t}" abbr=${(0,r.ie)(t)}`:""}\n size=${a.size}\n ${n?'st-avatar-background-color="none"':""}\n class="app-logo"\n ></descope-avatar>\n\n <div class="content">\n <descope-text\n class="app-title"\n variant="subtitle1"\n mode="primary"\n >${t}</descope-text>\n ${e?`\n <descope-text\n class="app-description"\n variant="body2"\n mode="primary"\n >${e}</descope-text>\n `:""}\n </div>\n <div class="controls">\n <descope-button variant="link" mode="primary" size=${a.size} data-action="${l}" data-outbound-app-id="${o}" data-id="${l}">\n ${i?a.disconnectButtonLabel:a.connectButtonLabel}\n </descope-button>\n </div>\n </descope-list-item>\n`},m=(0,s.qu)({componentName:p,baseSelector:"descope-list"}),{host:u}={host:{selector:()=>":host"}},g=(0,o.Zz)((0,i.RF)({mappings:{hostWidth:{...u,property:"width"},minHeight:{selector:()=>":host"},hostDirection:[{...u,property:"direction"},{selector:"descope-list",property:"direction"},{selector:"descope-list-item",property:"direction"}],iconColor:{selector:()=>" descope-icon",property:a.S.cssVarList.fill},errorIconColor:{selector:()=>" descope-icon.error-icon",property:a.S.cssVarList.fill},fontSize:{selector:l.s.componentName,property:l.s.cssVarList.fontSize},appLogoGap:{selector:()=>" .app-logo",property:"margin-inline-end"},contentGap:{selector:()=>" .content",property:"gap"},itemsTextAlign:{selector:l.s.componentName,property:l.s.cssVarList.textAlign},itemCursor:{selector:c.O.componentName,property:c.O.cssVarList.cursor},itemOutline:{selector:c.O.componentName,property:c.O.cssVarList.outline},itemBorderColor:{selector:c.O.componentName,property:c.O.cssVarList.borderColor},itemBackgroundColor:{selector:c.O.componentName,property:c.O.cssVarList.backgroundColor},listBorderWidth:{selector:()=>d.x.componentName,property:d.x.cssVarList.borderWidth},listBoxShadow:{selector:()=>d.x.componentName,property:d.x.cssVarList.boxShadow},listPadding:[{selector:()=>d.x.componentName,property:d.x.cssVarList.verticalPadding},{selector:()=>d.x.componentName,property:d.x.cssVarList.horizontalPadding}],emptyStateMinHeight:{selector:()=>d.x.componentName,property:d.x.cssVarList.minHeight},emptyStateVerticalPadding:{selector:()=>d.x.componentName,property:d.x.cssVarList.emptyStateVerticalPadding}}}),i.VO,(0,i.t$)({itemRenderer:h,rerenderAttrsList:["size","connect-button-label","disconnect-button-label"]}),i.tQ)(class extends m{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <descope-list>\n <slot name="empty-state" slot="empty-state"></slot>\n </descope-list>\n ',this.appsList=this.shadowRoot.querySelector("descope-list"),(0,r.fz)("\n :host {\n width: 100%;\n }\n .controls {\n display: flex;\n min-width: 8em;\n justify-content: end;\n }\n .content {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n .app-title,\n .app-description {\n display: flex;\n direction: inherit;\n }\n descope-list {\n display: block;\n }\n ",this)}init(){super.init?.(),this.appsList.itemRenderer=h,this.appsList.addEventListener("click",this.onAppsListClick.bind(this))}get readonly(){return"true"===this.getAttribute("readonly")}onAppsListClick(t){if(!this.readonly){const e=t.srcElement.getAttribute("data-outbound-app-id"),n=t.srcElement.getAttribute("data-action");e&&n&&this.dispatchEvent(new CustomEvent(`${n}-clicked`,{bubbles:!0,detail:{id:e,action:n}}))}}get size(){return this.getAttribute("size")||"sm"}get connectButtonLabel(){return this.getAttribute("connect-button-label")||"Connect"}get disconnectButtonLabel(){return this.getAttribute("disconnect-button-label")||"Disconnect"}});customElements.define(p,g)},66434(t,e,n){n.d(e,{T:()=>a,s:()=>c});var o=n(88961),r=n(63200),i=n(25964),s=n(72270);const a=(0,i.xE)("text");class l extends((0,s.qu)({componentName:a,baseSelector:":host > slot"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <slot part="text-wrapper"></slot>\n ',(0,i.fz)("\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n ",this)}get hideWhenEmpty(){return"true"===this.getAttribute("hide-when-empty")}init(){super.init(),(0,i.Ge)(this,()=>{const t=!!this.childNodes.length;this.style.display=!t&&this.hideWhenEmpty?"none":""})}}const{host:d}={host:{selector:()=>":host"}},c=(0,r.Zz)((0,o.RF)({mappings:{hostWidth:{...d,property:"width"},hostDirection:{...d,property:"direction"},fontSize:{},textColor:[{property:"color"}],textLineHeight:{property:"line-height"},textLetterSpacing:{property:"letter-spacing"},textShadow:{},textAlign:{},textTransform:{},fontFamily:{},fontStyle:{},fontWeight:{},borderWidth:{},borderStyle:{},borderColor:{}}}),(0,o.DM)({triggers:[{attr:"full-width",value:"true"}]}),o.VO,o.tQ)(l)},63595(t,e,n){n.r(e),n.d(e,{TextClass:()=>o.s,componentName:()=>o.T});var o=n(66434);customElements.define(o.T,o.s)}}]);
2
2
  //# sourceMappingURL=descope-outbound-apps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"descope-outbound-apps.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-avatar/src/component/AvatarClass.js","webpack://@descope/web-components-ui/../components/descope-avatar/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/ImageClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/ListItemClass.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/ListClass.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-outbound-apps/src/component/OutboundAppsClass.js","webpack://@descope/web-components-ui/../components/descope-outbound-apps/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/TextClass.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/index.js"],"sourcesContent":["import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n forwardAttrs,\n getComponentName,\n injectStyle,\n observeAttributes,\n} from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('avatar');\nclass RawAvatar extends createBaseClass({\n componentName,\n baseSelector: ':host > .wrapper',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"wrapper\">\n <vaadin-avatar></vaadin-avatar>\n <div class=\"editableBadge\">\n <vaadin-icon icon=\"vaadin:pencil\"></vaadin-icon>\n </div>\n </div>\n\t\t`;\n\n injectStyle(`\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n .editableBadge {\n border: 1px solid;\n border-radius: 100%;\n height: fit-content;\n width: 25%;\n height: 25%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5%;\n box-sizing: border-box;\n position: absolute;\n bottom: 0;\n inset-inline-end: 0;\n }\n\n vaadin-icon {\n color: currentcolor;\n }\n\n vaadin-avatar {\n width: 100%;\n height: 100%;\n margin: 0;\n border: none\n }\n\n .wrapper {\n display: inline-flex;\n position: relative;\n width: 100%;\n height: 100%;\n }\n `, this);\n\n this.avatarComponent = this.shadowRoot.querySelector('vaadin-avatar');\n\n forwardAttrs(this, this.avatarComponent, {\n includeAttrs: ['display-name', 'img', 'abbr'],\n mapAttrs: { 'display-name': 'name' },\n });\n\n const editableIcon = this.shadowRoot.querySelector('.editableBadge');\n\n observeAttributes(\n this,\n () => {\n editableIcon.style.display = this.isEditable ? '' : 'none';\n },\n { includeAttrs: ['editable'] },\n );\n }\n\n get isEditable() {\n return this.getAttribute('editable') === 'true';\n }\n}\n\nconst { host, editableBadge, avatar } = {\n host: { selector: () => ':host' },\n editableBadge: { selector: '> .editableBadge' },\n avatar: { selector: 'vaadin-avatar' },\n};\n\nexport const AvatarClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [\n { ...host, property: 'width' },\n { ...host, property: 'min-width' },\n ],\n hostHeight: { ...host, property: 'height' },\n cursor: [avatar, host],\n hostDirection: { ...host, property: 'direction' },\n avatarTextColor: { ...avatar, property: 'color' },\n avatarBackgroundColor: { ...avatar, property: 'background-color' },\n editableIconColor: { ...editableBadge, property: 'color' },\n editableBorderColor: { ...editableBadge, property: 'border-color' },\n editableBackgroundColor: {\n ...editableBadge,\n property: 'background-color',\n },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawAvatar);\n","import { componentName, AvatarClass } from './AvatarClass';\nimport '@vaadin/avatar';\nimport '@vaadin/icon';\nimport '@vaadin/icons';\n\ncustomElements.define(componentName, AvatarClass);\n\nexport { AvatarClass, componentName };\n","import { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n stretchMixin,\n} from '@descope-ui/common/components-mixins';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostMaxWidth: { ...host, property: 'max-width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n fontWeight: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(*)`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex', 'class', 'style'],\n componentName,\n }),\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"]) ::part(prefix),\n\t:host([loading=\"true\"]) ::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","import {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { ImageClass } from '@descope-ui/descope-image/class';\nimport { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('icon');\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: [{}, { property: ImageClass.cssVarList.fill }],\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'descope-image',\n style: () => `\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n max-height: 100%;\n }\n `,\n excludeAttrsSync: ['tabindex', 'class', 'style', 'st-height', 'st-width'],\n componentName,\n }),\n);\n"," \nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { createImage } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('image');\n\nconst srcAttrs = ['src', 'src-dark'];\n\nclass RawImage extends createBaseClass({\n componentName,\n baseSelector: 'slot',\n}) {\n static get observedAttributes() {\n return srcAttrs;\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.getSrc);\n }\n\n onThemeChange() {\n this.renderImage();\n }\n\n toggleVisibility(isVisible) {\n if (isVisible) {\n this.classList.remove('hidden');\n } else {\n this.classList.add('hidden');\n }\n }\n\n get altText() {\n return this.getAttribute('alt') || '';\n }\n\n get legacySrc() {\n return this.getAttribute('src');\n }\n\n get themeSrc() {\n return this.getAttribute(`src-${this.currentThemeName}`);\n }\n\n get getSrc() {\n return this.themeSrc || this.legacySrc;\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n \n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${ImageClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`,\n );\n });\n }\n\n renderImage() {\n this.toggleVisibility(this.getSrc);\n\n createImage(this.getSrc, this.altText).then((res) => {\n this.innerHTML = '';\n if (res) {\n this.updateFillColor(res);\n this.appendChild(res);\n }\n });\n }\n\n // render only when src attribute matches current theme\n shouldRender(src) {\n const srcVal = this.getAttribute(src);\n return this.getSrc === srcVal;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (this.shouldRender(attrName)) {\n this.renderImage();\n }\n }\n}\n\nexport const ImageClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawImage);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src, altText) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n ele.setAttribute('alt', altText);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, {\n USE_PROFILES: { svg: true, svgFilters: true },\n // allow image to render\n ADD_TAGS: ['image'],\n // forbid interactiviy via `use` tags (which are sanitized by default)\n FORBID_TAGS: ['defs']\n });\n\n const parser = new DOMParser();\n const ele = parser\n .parseFromString(clean, 'image/svg+xml')\n .querySelector('svg');\n return ele;\n};\n\nexport const createImage = async (src, altText) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src, altText);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n activeableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list-item');\n\nconst customMixin = (superclass) =>\n class ListItemMixinClass extends superclass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot></slot>\n `;\n\n injectStyle(\n `\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n `,\n this,\n );\n }\n };\n\nexport const ListItemClass = compose(\n createStyleMixin({\n mappings: {\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n backgroundColor: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n borderRadius: {},\n outline: {},\n cursor: {},\n gap: {},\n maxWidth: { selector: () => ':host' },\n alignItems: {},\n flexDirection: {},\n transition: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin,\n activeableMixin,\n)(createBaseClass({ componentName, baseSelector: 'slot' }));\n","import { componentName, ListItemClass } from './ListItemClass';\n\ncustomElements.define(componentName, ListItemClass);\n\nexport { ListItemClass, componentName };\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list');\n\nclass RawList extends createBaseClass({\n componentName,\n baseSelector: '.wrapper',\n}) {\n static get observedAttributes() {\n return ['variant', 'readonly'];\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"wrapper\">\n <slot></slot>\n <slot name=\"empty-state\">\n No item...\n </slot>\n </div>\n\t`;\n\n injectStyle(\n `\n .wrapper {\n overflow: auto;\n display: grid;\n max-height: 100%;\n width: 100%;\n }\n\n :host {\n display: inline-flex;\n width: 100%;\n }\n slot[name=\"empty-state\"] {\n justify-content: center;\n align-items: center;\n display: flex;\n flex-grow: 1;\n }\n\n :host slot[name=\"empty-state\"] {\n display: none;\n }\n :host([empty]) slot[name=\"empty-state\"] {\n display: flex;\n }\n ::slotted(:not([slot])) {\n width: 100%;\n }\n `,\n this,\n );\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n #handleEmptyState() {\n if (this.items.length === 0) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n }\n\n get variant() {\n return this.getAttribute('variant') || 'list';\n }\n\n #handleItemsVariant() {\n this.items.forEach((item) => {\n let listItem = item;\n if (listItem.localName !== ListItemClass.componentName) {\n listItem = item.querySelector(ListItemClass.componentName);\n }\n\n const listItemVariant = this.variant === 'tiles' ? 'tile' : 'row';\n listItem?.setAttribute('variant', listItemVariant);\n });\n }\n\n init() {\n super.init?.();\n\n // we want new items to get the size\n observeChildren(this, () => {\n this.#handleEmptyState();\n this.#handleItemsVariant();\n this.#handleReadOnly();\n });\n }\n\n get isReadOnly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n #handleReadOnly() {\n this.items.forEach((item) => {\n if (this.isReadOnly) item.setAttribute('inert', '');\n else item.removeAttribute('inert');\n });\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (newValue === oldValue) return;\n\n if (name === 'variant') {\n this.#handleItemsVariant();\n } else if (name === 'readonly') {\n this.#handleReadOnly();\n }\n }\n}\n\nexport const ListClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n maxHeight: { selector: () => ':host' },\n minHeight: {},\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontFamily: {},\n gap: {},\n\n backgroundColor: {},\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n boxShadow: {},\n gridTemplateColumns: {},\n maxItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'max-width',\n },\n minItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'min-width',\n },\n maxRowItems: {\n property: 'max-row-items',\n },\n itemsHorizontalAlign: {\n selector: () => '::slotted(*)',\n property: 'justify-self',\n },\n emptyStateTextColor: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'color',\n },\n emptyStateTextFontFamily: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'font-family',\n },\n // allow overriding empty state height and padding from parent list components:\n emptyStateVerticalPadding: [\n {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'padding-top',\n },\n {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'padding-bottom',\n },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawList);\n","import '@descope-ui/descope-list-item';\n\nimport { componentName, ListClass } from './ListClass';\n\ncustomElements.define(componentName, ListClass);\n\nexport { ListClass, componentName };\n","import { compose } from '@descope-ui/common/utils';\nimport {\n limitAbbreviation,\n getComponentName,\n injectStyle,\n} from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n createDynamicDataMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { TextClass } from '@descope-ui/descope-text/class';\nimport { ListClass } from '@descope-ui/descope-list/class';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\n\nexport const componentName = getComponentName('outbound-apps');\n\nconst itemRenderer = (\n { name, description, logo, appId, isConnected },\n _,\n ref,\n) => {\n const action = isConnected ? 'disconnect' : 'connect';\n return `\n <descope-list-item>\n <descope-avatar\n ${logo ? `img=\"${logo}\"` : ''}\n ${name ? `display-name=\"${name}\" abbr=${limitAbbreviation(name)}` : ''}\n size=${ref.size}\n ${logo ? 'st-avatar-background-color=\"none\"' : ''}\n class=\"app-logo\"\n ></descope-avatar>\n\n <div class=\"content\">\n <descope-text\n class=\"app-title\"\n variant=\"subtitle1\"\n mode=\"primary\"\n >${name}</descope-text>\n ${\n description\n ? `\n <descope-text\n class=\"app-description\"\n variant=\"body2\"\n mode=\"primary\"\n >${description}</descope-text>\n `\n : ''\n }\n </div>\n <div class=\"controls\">\n <descope-button variant=\"link\" mode=\"primary\" size=${ref.size} data-action=\"${action}\" data-outbound-app-id=\"${appId}\" data-id=\"${action}\">\n ${isConnected ? ref.disconnectButtonLabel : ref.connectButtonLabel}\n </descope-button>\n </div>\n </descope-list-item>\n`;\n};\n\nconst BaseClass = createBaseClass({\n componentName,\n baseSelector: 'descope-list',\n});\n\nclass RawOutboundAppsClass extends BaseClass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <descope-list>\n <slot name=\"empty-state\" slot=\"empty-state\"></slot>\n </descope-list>\n `;\n\n this.appsList = this.shadowRoot.querySelector('descope-list');\n\n injectStyle(\n `\n :host {\n width: 100%;\n }\n .controls {\n display: flex;\n min-width: 8em;\n justify-content: end;\n }\n .content {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n .app-title,\n .app-description {\n display: flex;\n direction: inherit;\n }\n descope-list {\n display: block;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n\n this.appsList.itemRenderer = itemRenderer;\n\n this.appsList.addEventListener('click', this.onAppsListClick.bind(this));\n }\n\n get readonly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n onAppsListClick(e) {\n if (!this.readonly) {\n const id = e.srcElement.getAttribute('data-outbound-app-id');\n const action = e.srcElement.getAttribute('data-action');\n if (id && action) {\n this.dispatchEvent(\n new CustomEvent(`${action}-clicked`, {\n bubbles: true,\n detail: { id, action },\n }),\n );\n }\n }\n }\n\n get size() {\n return this.getAttribute('size') || 'sm';\n }\n\n get connectButtonLabel() {\n return this.getAttribute('connect-button-label') || 'Connect';\n }\n\n get disconnectButtonLabel() {\n return this.getAttribute('disconnect-button-label') || 'Disconnect';\n }\n}\n\nconst { host } = {\n host: { selector: () => ':host' },\n};\n\nexport const OutboundAppsClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n minHeight: { selector: () => ':host' },\n hostDirection: [\n { ...host, property: 'direction' },\n {\n selector: 'descope-list',\n property: 'direction',\n },\n {\n selector: 'descope-list-item',\n property: 'direction',\n },\n ],\n iconColor: {\n selector: () => ' descope-icon',\n property: IconClass.cssVarList.fill,\n },\n errorIconColor: {\n selector: () => ' descope-icon.error-icon',\n property: IconClass.cssVarList.fill,\n },\n fontSize: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontSize,\n },\n appLogoGap: {\n selector: () => ' .app-logo',\n property: 'margin-inline-end',\n },\n contentGap: {\n selector: () => ' .content',\n property: 'gap',\n },\n itemsTextAlign: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.textAlign,\n },\n itemCursor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.cursor,\n },\n itemOutline: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.outline,\n },\n itemBorderColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.borderColor,\n },\n itemBackgroundColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.backgroundColor,\n },\n listBorderWidth: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.borderWidth,\n },\n listBoxShadow: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.boxShadow,\n },\n listPadding: [\n {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.verticalPadding,\n },\n {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.horizontalPadding,\n },\n ],\n emptyStateMinHeight: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.minHeight,\n },\n emptyStateVerticalPadding: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.emptyStateVerticalPadding,\n },\n },\n }),\n draggableMixin,\n createDynamicDataMixin({\n itemRenderer,\n rerenderAttrsList: [\n 'size',\n 'connect-button-label',\n 'disconnect-button-label',\n ],\n }),\n componentNameValidationMixin,\n)(RawOutboundAppsClass);\n","import '@descope-ui/descope-list';\nimport '@descope-ui/descope-list-item';\nimport '@descope-ui/descope-text';\nimport '@descope-ui/descope-avatar';\nimport '@descope-ui/descope-button';\nimport { componentName, OutboundAppsClass } from './OutboundAppsClass';\n\ncustomElements.define(componentName, OutboundAppsClass);\n\nexport { OutboundAppsClass, componentName };\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n stretchMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n injectStyle,\n observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('text');\n\nclass RawText extends createBaseClass({\n componentName,\n baseSelector: ':host > slot',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot part=\"text-wrapper\"></slot>\n `;\n\n injectStyle(\n `\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n `,\n this,\n );\n }\n\n get hideWhenEmpty() {\n return this.getAttribute('hide-when-empty') === 'true';\n }\n\n init() {\n super.init();\n\n observeChildren(this, () => {\n const hasChildren = !!this.childNodes.length;\n this.style.display = !hasChildren && this.hideWhenEmpty ? 'none' : '';\n });\n }\n}\n\nconst { host } = {\n host: { selector: () => ':host' },\n};\n\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n textColor: [{ property: 'color' }],\n textLineHeight: { property: 'line-height' },\n textLetterSpacing: { property: 'letter-spacing' },\n textShadow: {},\n textAlign: {},\n textTransform: {},\n fontFamily: {},\n fontStyle: {},\n fontWeight: {},\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n },\n }),\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawText);\n","import { componentName, TextClass } from './TextClass';\n\ncustomElements.define(componentName, TextClass);\n\nexport { TextClass, componentName };\n"],"names":["componentName","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_3__","xE","RawAvatar","_descope_ui_common_base_classes__WEBPACK_IMPORTED_MODULE_1__","qu","baseSelector","constructor","super","this","attachShadow","mode","innerHTML","fz","avatarComponent","shadowRoot","querySelector","EA","includeAttrs","mapAttrs","editableIcon","mx","style","display","isEditable","getAttribute","host","editableBadge","avatar","selector","AvatarClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_2__","Zz","_descope_ui_common_components_mixins__WEBPACK_IMPORTED_MODULE_0__","RF","mappings","hostWidth","property","hostHeight","cursor","hostDirection","avatarTextColor","avatarBackgroundColor","editableIconColor","editableBorderColor","editableBackgroundColor","VO","tQ","customElements","define","_AvatarClass__WEBPACK_IMPORTED_MODULE_0__","T","E","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_1__","label","slottedIcon","loadingIndicatorStyles","ButtonClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_0__","_descope_ui_common_components_mixins__WEBPACK_IMPORTED_MODULE_2__","DM","triggers","attr","value","hostMaxWidth","fontSize","fontFamily","fontWeight","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","_descope_ui_descope_icon_class__WEBPACK_IMPORTED_MODULE_3__","S","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","_clickableMixin__WEBPACK_IMPORTED_MODULE_4__","G","tz","slots","wrappedEleName","excludeAttrsSync","color","clickableMixin","superclass","isLoading","click","_ButtonClass__WEBPACK_IMPORTED_MODULE_0__","J","IconClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_3__","_descope_ui_descope_image_class__WEBPACK_IMPORTED_MODULE_2__","q","height","width","srcAttrs","RawImage","observedAttributes","init","toggleVisibility","getSrc","onThemeChange","renderImage","isVisible","classList","remove","add","altText","legacySrc","themeSrc","currentThemeName","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","ImageClass","_helpers__WEBPACK_IMPORTED_MODULE_4__","m","then","res","appendChild","shouldRender","src","srcVal","attributeChangedCallback","attrName","oldValue","newValue","createSvgEle","text","clean","dompurify__WEBPACK_IMPORTED_MODULE_0__","A","sanitize","USE_PROFILES","svg","svgFilters","ADD_TAGS","FORBID_TAGS","DOMParser","parseFromString","createImage","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","setProperty","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_2__","ListItemClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_1__","outline","gap","maxWidth","alignItems","flexDirection","transition","y","_descope_ui_common_base_classes__WEBPACK_IMPORTED_MODULE_3__","_ListItemClass__WEBPACK_IMPORTED_MODULE_0__","O","RawList","_descope_ui_common_base_classes__WEBPACK_IMPORTED_MODULE_4__","items","assignedElements","handleEmptyState","length","removeAttribute","variant","handleItemsVariant","item","listItem","localName","_descope_ui_descope_list_item_class__WEBPACK_IMPORTED_MODULE_3__","listItemVariant","Ge","handleReadOnly","isReadOnly","name","ListClass","maxHeight","minHeight","boxShadow","gridTemplateColumns","maxItemsWidth","minItemsWidth","maxRowItems","itemsHorizontalAlign","emptyStateTextColor","emptyStateTextFontFamily","emptyStateVerticalPadding","_ListClass__WEBPACK_IMPORTED_MODULE_1__","x","componentsHelpers","itemRenderer","description","logo","appId","isConnected","_","ref","action","ie","size","disconnectButtonLabel","connectButtonLabel","BaseClass","baseClasses","OutboundAppsClass","utils","componentsMixins","errorIconColor","TextClass","s","appLogoGap","contentGap","itemsTextAlign","itemCursor","itemOutline","itemBorderColor","itemBackgroundColor","listBorderWidth","listBoxShadow","listPadding","emptyStateMinHeight","t$","rerenderAttrsList","appsList","addEventListener","onAppsListClick","bind","readonly","e","id","srcElement","dispatchEvent","CustomEvent","bubbles","detail","RawText","hideWhenEmpty","hasChildren","childNodes","textColor","textLineHeight","textLetterSpacing","textShadow","textTransform","fontStyle","_TextClass__WEBPACK_IMPORTED_MODULE_0__"],"sourceRoot":""}
1
+ {"version":3,"file":"descope-outbound-apps.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-avatar/src/component/AvatarClass.js","webpack://@descope/web-components-ui/../components/descope-avatar/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/ImageClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/ListItemClass.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/ListClass.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-outbound-apps/src/component/OutboundAppsClass.js","webpack://@descope/web-components-ui/../components/descope-outbound-apps/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/TextClass.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/index.js"],"sourcesContent":["import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n forwardAttrs,\n getComponentName,\n injectStyle,\n observeAttributes,\n} from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('avatar');\nclass RawAvatar extends createBaseClass({\n componentName,\n baseSelector: ':host > .wrapper',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"wrapper\">\n <vaadin-avatar></vaadin-avatar>\n <div class=\"editableBadge\">\n <vaadin-icon icon=\"vaadin:pencil\"></vaadin-icon>\n </div>\n </div>\n\t\t`;\n\n injectStyle(`\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n .editableBadge {\n border: 1px solid;\n border-radius: 100%;\n height: fit-content;\n width: 25%;\n height: 25%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5%;\n box-sizing: border-box;\n position: absolute;\n bottom: 0;\n inset-inline-end: 0;\n }\n\n vaadin-icon {\n color: currentcolor;\n }\n\n vaadin-avatar {\n width: 100%;\n height: 100%;\n margin: 0;\n border: none\n }\n\n .wrapper {\n display: inline-flex;\n position: relative;\n width: 100%;\n height: 100%;\n }\n `, this);\n\n this.avatarComponent = this.shadowRoot.querySelector('vaadin-avatar');\n\n forwardAttrs(this, this.avatarComponent, {\n includeAttrs: ['display-name', 'img', 'abbr'],\n mapAttrs: { 'display-name': 'name' },\n });\n\n const editableIcon = this.shadowRoot.querySelector('.editableBadge');\n\n observeAttributes(\n this,\n () => {\n editableIcon.style.display = this.isEditable ? '' : 'none';\n },\n { includeAttrs: ['editable'] },\n );\n }\n\n get isEditable() {\n return this.getAttribute('editable') === 'true';\n }\n}\n\nconst { host, editableBadge, avatar } = {\n host: { selector: () => ':host' },\n editableBadge: { selector: '> .editableBadge' },\n avatar: { selector: 'vaadin-avatar' },\n};\n\nexport const AvatarClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [\n { ...host, property: 'width' },\n { ...host, property: 'min-width' },\n ],\n hostHeight: { ...host, property: 'height' },\n cursor: [avatar, host],\n hostDirection: { ...host, property: 'direction' },\n avatarTextColor: { ...avatar, property: 'color' },\n avatarBackgroundColor: { ...avatar, property: 'background-color' },\n editableIconColor: { ...editableBadge, property: 'color' },\n editableBorderColor: { ...editableBadge, property: 'border-color' },\n editableBackgroundColor: {\n ...editableBadge,\n property: 'background-color',\n },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawAvatar);\n","import { componentName, AvatarClass } from './AvatarClass';\nimport '@vaadin/avatar';\nimport '@vaadin/icon';\nimport '@vaadin/icons';\n\ncustomElements.define(componentName, AvatarClass);\n\nexport { AvatarClass, componentName };\n","import { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n stretchMixin,\n} from '@descope-ui/common/components-mixins';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostMaxWidth: { ...host, property: 'max-width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n fontWeight: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(*)`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex', 'class', 'style', 'role'],\n componentName,\n }),\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"]) ::part(prefix),\n\t:host([loading=\"true\"]) ::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","import {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { ImageClass } from '@descope-ui/descope-image/class';\nimport { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('icon');\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: [{}, { property: ImageClass.cssVarList.fill }],\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'descope-image',\n style: () => `\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n max-height: 100%;\n }\n `,\n excludeAttrsSync: ['tabindex', 'class', 'style', 'st-height', 'st-width'],\n componentName,\n }),\n);\n"," \nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { createImage } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('image');\n\nconst srcAttrs = ['src', 'src-dark'];\n\nclass RawImage extends createBaseClass({\n componentName,\n baseSelector: 'slot',\n}) {\n static get observedAttributes() {\n return srcAttrs;\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.getSrc);\n }\n\n onThemeChange() {\n this.renderImage();\n }\n\n toggleVisibility(isVisible) {\n if (isVisible) {\n this.classList.remove('hidden');\n } else {\n this.classList.add('hidden');\n }\n }\n\n get altText() {\n return this.getAttribute('alt') || '';\n }\n\n get legacySrc() {\n return this.getAttribute('src');\n }\n\n get themeSrc() {\n return this.getAttribute(`src-${this.currentThemeName}`);\n }\n\n get getSrc() {\n return this.themeSrc || this.legacySrc;\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n \n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${ImageClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`,\n );\n });\n }\n\n renderImage() {\n this.toggleVisibility(this.getSrc);\n\n createImage(this.getSrc, this.altText).then((res) => {\n this.innerHTML = '';\n if (res) {\n this.updateFillColor(res);\n this.appendChild(res);\n }\n });\n }\n\n // render only when src attribute matches current theme\n shouldRender(src) {\n const srcVal = this.getAttribute(src);\n return this.getSrc === srcVal;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (this.shouldRender(attrName)) {\n this.renderImage();\n }\n }\n}\n\nexport const ImageClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawImage);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src, altText) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n ele.setAttribute('alt', altText);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, {\n USE_PROFILES: { svg: true, svgFilters: true },\n // allow image to render\n ADD_TAGS: ['image'],\n // forbid interactiviy via `use` tags (which are sanitized by default)\n FORBID_TAGS: ['defs']\n });\n\n const parser = new DOMParser();\n const ele = parser\n .parseFromString(clean, 'image/svg+xml')\n .querySelector('svg');\n return ele;\n};\n\nexport const createImage = async (src, altText) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src, altText);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n activeableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list-item');\n\nconst customMixin = (superclass) =>\n class ListItemMixinClass extends superclass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot></slot>\n `;\n\n injectStyle(\n `\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n `,\n this,\n );\n }\n };\n\nexport const ListItemClass = compose(\n createStyleMixin({\n mappings: {\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n backgroundColor: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n borderRadius: {},\n outline: {},\n cursor: {},\n gap: {},\n maxWidth: { selector: () => ':host' },\n alignItems: {},\n flexDirection: {},\n transition: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin,\n activeableMixin,\n)(createBaseClass({ componentName, baseSelector: 'slot' }));\n","import { componentName, ListItemClass } from './ListItemClass';\n\ncustomElements.define(componentName, ListItemClass);\n\nexport { ListItemClass, componentName };\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list');\n\nclass RawList extends createBaseClass({\n componentName,\n baseSelector: '.wrapper',\n}) {\n static get observedAttributes() {\n return ['variant', 'readonly'];\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"wrapper\">\n <slot></slot>\n <slot name=\"empty-state\">\n No item...\n </slot>\n </div>\n\t`;\n\n injectStyle(\n `\n .wrapper {\n overflow: auto;\n display: grid;\n max-height: 100%;\n width: 100%;\n }\n\n :host {\n display: inline-flex;\n width: 100%;\n }\n slot[name=\"empty-state\"] {\n justify-content: center;\n align-items: center;\n display: flex;\n flex-grow: 1;\n }\n\n :host slot[name=\"empty-state\"] {\n display: none;\n }\n :host([empty]) slot[name=\"empty-state\"] {\n display: flex;\n }\n ::slotted(:not([slot])) {\n width: 100%;\n }\n `,\n this,\n );\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n #handleEmptyState() {\n if (this.items.length === 0) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n }\n\n get variant() {\n return this.getAttribute('variant') || 'list';\n }\n\n #handleItemsVariant() {\n this.items.forEach((item) => {\n let listItem = item;\n if (listItem.localName !== ListItemClass.componentName) {\n listItem = item.querySelector(ListItemClass.componentName);\n }\n\n const listItemVariant = this.variant === 'tiles' ? 'tile' : 'row';\n listItem?.setAttribute('variant', listItemVariant);\n });\n }\n\n init() {\n super.init?.();\n\n // we want new items to get the size\n observeChildren(this, () => {\n this.#handleEmptyState();\n this.#handleItemsVariant();\n this.#handleReadOnly();\n });\n }\n\n get isReadOnly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n #handleReadOnly() {\n this.items.forEach((item) => {\n if (this.isReadOnly) item.setAttribute('inert', '');\n else item.removeAttribute('inert');\n });\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (newValue === oldValue) return;\n\n if (name === 'variant') {\n this.#handleItemsVariant();\n } else if (name === 'readonly') {\n this.#handleReadOnly();\n }\n }\n}\n\nexport const ListClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n maxHeight: { selector: () => ':host' },\n minHeight: {},\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontFamily: {},\n gap: {},\n\n backgroundColor: {},\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n boxShadow: {},\n gridTemplateColumns: {},\n maxItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'max-width',\n },\n minItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'min-width',\n },\n maxRowItems: {\n property: 'max-row-items',\n },\n itemsHorizontalAlign: {\n selector: () => '::slotted(*)',\n property: 'justify-self',\n },\n emptyStateTextColor: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'color',\n },\n emptyStateTextFontFamily: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'font-family',\n },\n // allow overriding empty state height and padding from parent list components:\n emptyStateVerticalPadding: [\n {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'padding-top',\n },\n {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'padding-bottom',\n },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawList);\n","import '@descope-ui/descope-list-item';\n\nimport { componentName, ListClass } from './ListClass';\n\ncustomElements.define(componentName, ListClass);\n\nexport { ListClass, componentName };\n","import { compose } from '@descope-ui/common/utils';\nimport {\n limitAbbreviation,\n getComponentName,\n injectStyle,\n} from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n createDynamicDataMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { TextClass } from '@descope-ui/descope-text/class';\nimport { ListClass } from '@descope-ui/descope-list/class';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\n\nexport const componentName = getComponentName('outbound-apps');\n\nconst itemRenderer = (\n { name, description, logo, appId, isConnected },\n _,\n ref,\n) => {\n const action = isConnected ? 'disconnect' : 'connect';\n return `\n <descope-list-item>\n <descope-avatar\n ${logo ? `img=\"${logo}\"` : ''}\n ${name ? `display-name=\"${name}\" abbr=${limitAbbreviation(name)}` : ''}\n size=${ref.size}\n ${logo ? 'st-avatar-background-color=\"none\"' : ''}\n class=\"app-logo\"\n ></descope-avatar>\n\n <div class=\"content\">\n <descope-text\n class=\"app-title\"\n variant=\"subtitle1\"\n mode=\"primary\"\n >${name}</descope-text>\n ${\n description\n ? `\n <descope-text\n class=\"app-description\"\n variant=\"body2\"\n mode=\"primary\"\n >${description}</descope-text>\n `\n : ''\n }\n </div>\n <div class=\"controls\">\n <descope-button variant=\"link\" mode=\"primary\" size=${ref.size} data-action=\"${action}\" data-outbound-app-id=\"${appId}\" data-id=\"${action}\">\n ${isConnected ? ref.disconnectButtonLabel : ref.connectButtonLabel}\n </descope-button>\n </div>\n </descope-list-item>\n`;\n};\n\nconst BaseClass = createBaseClass({\n componentName,\n baseSelector: 'descope-list',\n});\n\nclass RawOutboundAppsClass extends BaseClass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <descope-list>\n <slot name=\"empty-state\" slot=\"empty-state\"></slot>\n </descope-list>\n `;\n\n this.appsList = this.shadowRoot.querySelector('descope-list');\n\n injectStyle(\n `\n :host {\n width: 100%;\n }\n .controls {\n display: flex;\n min-width: 8em;\n justify-content: end;\n }\n .content {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n .app-title,\n .app-description {\n display: flex;\n direction: inherit;\n }\n descope-list {\n display: block;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n\n this.appsList.itemRenderer = itemRenderer;\n\n this.appsList.addEventListener('click', this.onAppsListClick.bind(this));\n }\n\n get readonly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n onAppsListClick(e) {\n if (!this.readonly) {\n const id = e.srcElement.getAttribute('data-outbound-app-id');\n const action = e.srcElement.getAttribute('data-action');\n if (id && action) {\n this.dispatchEvent(\n new CustomEvent(`${action}-clicked`, {\n bubbles: true,\n detail: { id, action },\n }),\n );\n }\n }\n }\n\n get size() {\n return this.getAttribute('size') || 'sm';\n }\n\n get connectButtonLabel() {\n return this.getAttribute('connect-button-label') || 'Connect';\n }\n\n get disconnectButtonLabel() {\n return this.getAttribute('disconnect-button-label') || 'Disconnect';\n }\n}\n\nconst { host } = {\n host: { selector: () => ':host' },\n};\n\nexport const OutboundAppsClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n minHeight: { selector: () => ':host' },\n hostDirection: [\n { ...host, property: 'direction' },\n {\n selector: 'descope-list',\n property: 'direction',\n },\n {\n selector: 'descope-list-item',\n property: 'direction',\n },\n ],\n iconColor: {\n selector: () => ' descope-icon',\n property: IconClass.cssVarList.fill,\n },\n errorIconColor: {\n selector: () => ' descope-icon.error-icon',\n property: IconClass.cssVarList.fill,\n },\n fontSize: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontSize,\n },\n appLogoGap: {\n selector: () => ' .app-logo',\n property: 'margin-inline-end',\n },\n contentGap: {\n selector: () => ' .content',\n property: 'gap',\n },\n itemsTextAlign: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.textAlign,\n },\n itemCursor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.cursor,\n },\n itemOutline: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.outline,\n },\n itemBorderColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.borderColor,\n },\n itemBackgroundColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.backgroundColor,\n },\n listBorderWidth: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.borderWidth,\n },\n listBoxShadow: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.boxShadow,\n },\n listPadding: [\n {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.verticalPadding,\n },\n {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.horizontalPadding,\n },\n ],\n emptyStateMinHeight: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.minHeight,\n },\n emptyStateVerticalPadding: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.emptyStateVerticalPadding,\n },\n },\n }),\n draggableMixin,\n createDynamicDataMixin({\n itemRenderer,\n rerenderAttrsList: [\n 'size',\n 'connect-button-label',\n 'disconnect-button-label',\n ],\n }),\n componentNameValidationMixin,\n)(RawOutboundAppsClass);\n","import '@descope-ui/descope-list';\nimport '@descope-ui/descope-list-item';\nimport '@descope-ui/descope-text';\nimport '@descope-ui/descope-avatar';\nimport '@descope-ui/descope-button';\nimport { componentName, OutboundAppsClass } from './OutboundAppsClass';\n\ncustomElements.define(componentName, OutboundAppsClass);\n\nexport { OutboundAppsClass, componentName };\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n stretchMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n injectStyle,\n observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('text');\n\nclass RawText extends createBaseClass({\n componentName,\n baseSelector: ':host > slot',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot part=\"text-wrapper\"></slot>\n `;\n\n injectStyle(\n `\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n `,\n this,\n );\n }\n\n get hideWhenEmpty() {\n return this.getAttribute('hide-when-empty') === 'true';\n }\n\n init() {\n super.init();\n\n observeChildren(this, () => {\n const hasChildren = !!this.childNodes.length;\n this.style.display = !hasChildren && this.hideWhenEmpty ? 'none' : '';\n });\n }\n}\n\nconst { host } = {\n host: { selector: () => ':host' },\n};\n\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n textColor: [{ property: 'color' }],\n textLineHeight: { property: 'line-height' },\n textLetterSpacing: { property: 'letter-spacing' },\n textShadow: {},\n textAlign: {},\n textTransform: {},\n fontFamily: {},\n fontStyle: {},\n fontWeight: {},\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n },\n }),\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawText);\n","import { componentName, TextClass } from './TextClass';\n\ncustomElements.define(componentName, TextClass);\n\nexport { TextClass, componentName };\n"],"names":["componentName","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_3__","xE","RawAvatar","_descope_ui_common_base_classes__WEBPACK_IMPORTED_MODULE_1__","qu","baseSelector","constructor","super","this","attachShadow","mode","innerHTML","fz","avatarComponent","shadowRoot","querySelector","EA","includeAttrs","mapAttrs","editableIcon","mx","style","display","isEditable","getAttribute","host","editableBadge","avatar","selector","AvatarClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_2__","Zz","_descope_ui_common_components_mixins__WEBPACK_IMPORTED_MODULE_0__","RF","mappings","hostWidth","property","hostHeight","cursor","hostDirection","avatarTextColor","avatarBackgroundColor","editableIconColor","editableBorderColor","editableBackgroundColor","VO","tQ","customElements","define","_AvatarClass__WEBPACK_IMPORTED_MODULE_0__","T","E","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_1__","label","slottedIcon","loadingIndicatorStyles","ButtonClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_0__","_descope_ui_common_components_mixins__WEBPACK_IMPORTED_MODULE_2__","DM","triggers","attr","value","hostMaxWidth","fontSize","fontFamily","fontWeight","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","_descope_ui_descope_icon_class__WEBPACK_IMPORTED_MODULE_3__","S","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","_clickableMixin__WEBPACK_IMPORTED_MODULE_4__","G","tz","slots","wrappedEleName","excludeAttrsSync","color","clickableMixin","superclass","isLoading","click","_ButtonClass__WEBPACK_IMPORTED_MODULE_0__","J","IconClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_3__","_descope_ui_descope_image_class__WEBPACK_IMPORTED_MODULE_2__","q","height","width","srcAttrs","RawImage","observedAttributes","init","toggleVisibility","getSrc","onThemeChange","renderImage","isVisible","classList","remove","add","altText","legacySrc","themeSrc","currentThemeName","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","ImageClass","_helpers__WEBPACK_IMPORTED_MODULE_4__","m","then","res","appendChild","shouldRender","src","srcVal","attributeChangedCallback","attrName","oldValue","newValue","createSvgEle","text","clean","dompurify__WEBPACK_IMPORTED_MODULE_0__","A","sanitize","USE_PROFILES","svg","svgFilters","ADD_TAGS","FORBID_TAGS","DOMParser","parseFromString","createImage","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","setProperty","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_2__","ListItemClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_1__","outline","gap","maxWidth","alignItems","flexDirection","transition","y","_descope_ui_common_base_classes__WEBPACK_IMPORTED_MODULE_3__","_ListItemClass__WEBPACK_IMPORTED_MODULE_0__","O","RawList","_descope_ui_common_base_classes__WEBPACK_IMPORTED_MODULE_4__","items","assignedElements","handleEmptyState","length","removeAttribute","variant","handleItemsVariant","item","listItem","localName","_descope_ui_descope_list_item_class__WEBPACK_IMPORTED_MODULE_3__","listItemVariant","Ge","handleReadOnly","isReadOnly","name","ListClass","maxHeight","minHeight","boxShadow","gridTemplateColumns","maxItemsWidth","minItemsWidth","maxRowItems","itemsHorizontalAlign","emptyStateTextColor","emptyStateTextFontFamily","emptyStateVerticalPadding","_ListClass__WEBPACK_IMPORTED_MODULE_1__","x","componentsHelpers","itemRenderer","description","logo","appId","isConnected","_","ref","action","ie","size","disconnectButtonLabel","connectButtonLabel","BaseClass","baseClasses","OutboundAppsClass","utils","componentsMixins","errorIconColor","TextClass","s","appLogoGap","contentGap","itemsTextAlign","itemCursor","itemOutline","itemBorderColor","itemBackgroundColor","listBorderWidth","listBoxShadow","listPadding","emptyStateMinHeight","t$","rerenderAttrsList","appsList","addEventListener","onAppsListClick","bind","readonly","e","id","srcElement","dispatchEvent","CustomEvent","bubbles","detail","RawText","hideWhenEmpty","hasChildren","childNodes","textColor","textLineHeight","textLetterSpacing","textShadow","textTransform","fontStyle","_TextClass__WEBPACK_IMPORTED_MODULE_0__"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[3359],{3393(t,e,n){n.d(e,{y:()=>a});var i=n(9696),s=n(79365),r=n(81365);const a=(...t)=>(0,i.Zz)(s.XX,s._$,s.yF,s.jd)((0,r.q)(...t))},47168(t,e,n){n.d(e,{A:()=>h,T:()=>p});var i=n(68049),s=n.n(i),r=n(25964),a=n(3393),u=n(97810),l=n(18280);const p=(0,u.xE)("passcode-internal"),d=["digits","loading"],o=["disabled","bordered","size","invalid","readonly","aria-labelledby"],c=(0,a.y)({componentName:p,baseSelector:"div"}),h=class extends c{static get observedAttributes(){return d.concat(c.observedAttributes||[])}constructor(){super(),this.innerHTML='\n\t\t<div class="wrapper"></div>\n\t\t<div class="loader-container">\n <descope-loader-radial size="xs" mode="primary"></descope-loader-radial>\n </div>\n\t\t',this.wrapperEle=this.querySelector(".wrapper"),this.loaderContainer=this.querySelector(".loader-container")}renderInputs(){const t=[...Array(this.digits).keys()].map(t=>`\n\t\t<descope-text-field\n\t\t\tdata-id=${t}\n\t\t\ttype="tel"\n\t\t\tautocomplete="one-time-code"\n\t\t\tinputMode="numeric"\n\t\t></descope-text-field>\n\t`);this.wrapperEle.innerHTML=t.join(""),this.inputs=Array.from(this.querySelectorAll("descope-text-field")),this.initInputs()}handleLoadingState(t){t?this.setAttribute("inert","true"):this.removeAttribute("inert")}get digits(){return Number.parseInt(this.getAttribute("digits"),10)||6}get value(){return this.inputs?.map(({value:t})=>t).join("")||""}set value(t){t!==this.value&&this.parseInputValue(this.inputs[0],(0,l.zj)(t))}getValidity(){return this.isRequired&&!this.value?{valueMissing:!0}:this.pattern&&!new RegExp(this.pattern).test(this.value)?{patternMismatch:!0}:{}}init(){this.addEventListener("focus",t=>{t.isTrusted&&this.inputs[0].focus()}),super.init?.(),this.renderInputs()}getInputIdx(t){return Number.parseInt(t.getAttribute("data-id"),10)}getNextInput(t){const e=this.getInputIdx(t),n=Math.min(e+1,this.inputs.length-1);return this.inputs[n]}getPrevInput(t){const e=this.getInputIdx(t),n=Math.max(e-1,0);return this.inputs[n]}fillDigits(t,e){for(let n=0;n<t.length;n+=1){e.value=t[n]??"";const i=this.getNextInput(e);if(i===e)break;e=i}(0,l.pW)(e)}parseInputValue(t,e=""){const n=e.split("");n.length?this.fillDigits(n,t):t.value=""}initInputs(){this.inputs.forEach(t=>{(0,r.fz)(`\n vaadin-text-field::part(input-field)::before {\n ${l.vz}: '';\n content: var(${l._B}, var(${l.vz}));\n position: absolute;\n width: 100%;\n height: 100%;\n display: var(${l.n6}, none);\n align-items: center;\n justify-content: center;\n }`,t);const e=s()(e=>{this.parseInputValue(t,e),(0,l.Z)(t)},0,{trailing:!0});let n=!1;t.addEventListener("input",i=>{t.value=(0,l.zj)(t.value),t.value&&(0,l.Z)(t,t.value[0]);const s="deleteContentBackward"===i?.inputType||n;n=!1,s&&(0,l.pW)(this.getPrevInput(t)),e(t.value)}),t.onkeydown=e=>{const{key:i}=e;"Backspace"===i?t.value?(t.setSelectionRange(1,1),n=!0):(e.preventDefault(),n=!1,(0,l.pW)(this.getPrevInput(t))):(n=!1,1===i.length&&(t.value=""))},(0,u.EA)(this,t,{includeAttrs:o}),t.shadowRoot.querySelector("input").setAttribute("aria-label","passcode digit")}),this.handleFocusEventsDispatching(this.inputs),this.handleInputEventDispatching()}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&d.includes(t)&&("digits"===t&&this.renderInputs(),"loading"===t&&this.handleLoadingState("true"===n))}get pattern(){return`^$|^\\d{${this.digits},}$`}}},18280(t,e,n){n.d(e,{Z:()=>l,_B:()=>i,n6:()=>s,pW:()=>a,vz:()=>r,zj:()=>u});const i="--descope-input-mask-content",s="--descope-input-mask-display",r="--descope-input-mask-fallback",a=t=>{t?.focus(),t?.setSelectionRange?.(1,1)},u=t=>t.replace(/\D/g,"")||"",l=(t,e)=>{e?(t.style.setProperty(i,`"${e}"`),t.style.setProperty(s,"flex")):(t.style.removeProperty(i),t.style.removeProperty(s))}},59053(t,e,n){n.r(e);var i=n(47168);customElements.define(i.T,i.A)}}]);
1
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[3359],{3393(t,e,n){n.d(e,{y:()=>a});var i=n(9696),s=n(79365),r=n(81365);const a=(...t)=>(0,i.Zz)(s.XX,s._$,s.yF,s.jd)((0,r.q)(...t))},47168(t,e,n){n.d(e,{A:()=>h,T:()=>p});var i=n(68049),s=n.n(i),r=n(25964),a=n(3393),u=n(97810),l=n(18280);const p=(0,u.xE)("passcode-internal"),o=["digits","loading"],d=["disabled","bordered","size","invalid","readonly","aria-labelledby"],c=(0,a.y)({componentName:p,baseSelector:"div"}),h=class extends c{static get observedAttributes(){return o.concat(c.observedAttributes||[])}constructor(){super(),this.innerHTML='\n\t\t<div class="wrapper"></div>\n\t\t<div class="loader-container">\n <descope-loader-radial size="xs" mode="primary"></descope-loader-radial>\n </div>\n\t\t',this.wrapperEle=this.querySelector(".wrapper"),this.loaderContainer=this.querySelector(".loader-container")}renderInputs(){const t=[...Array(this.digits).keys()].map(t=>`\n\t\t<descope-text-field\n\t\t\tdata-id=${t}\n\t\t\ttype="tel"\n\t\t\tautocomplete="one-time-code"\n\t\t\tinputMode="numeric"\n\t\t></descope-text-field>\n\t`);this.wrapperEle.innerHTML=t.join(""),this.inputs=Array.from(this.querySelectorAll("descope-text-field")),this.initInputs()}handleLoadingState(t){t?this.setAttribute("inert","true"):this.removeAttribute("inert")}get digits(){return Number.parseInt(this.getAttribute("digits"),10)||6}get value(){return this.inputs?.map(({value:t})=>t).join("")||""}set value(t){t!==this.value&&this.parseInputValue(this.inputs[0],(0,l.zj)(t))}getValidity(){return this.isRequired&&!this.value?{valueMissing:!0}:this.pattern&&!new RegExp(this.pattern).test(this.value)?{patternMismatch:!0}:{}}init(){this.addEventListener("focus",t=>{t.isTrusted&&this.inputs[0].focus()}),super.init?.(),this.renderInputs()}getInputIdx(t){return Number.parseInt(t.getAttribute("data-id"),10)}getNextInput(t){const e=this.getInputIdx(t),n=Math.min(e+1,this.inputs.length-1);return this.inputs[n]}getPrevInput(t){const e=this.getInputIdx(t),n=Math.max(e-1,0);return this.inputs[n]}fillDigits(t,e){for(let n=0;n<t.length;n+=1){e.value=t[n]??"";const i=this.getNextInput(e);if(i===e)break;e=i}(0,l.pW)(e)}parseInputValue(t,e=""){const n=e.split("");n.length?this.fillDigits(n,t):t.value=""}initInputs(){this.inputs.forEach((t,e)=>{(0,r.fz)(`\n vaadin-text-field::part(input-field)::before {\n ${l.vz}: '';\n content: var(${l._B}, var(${l.vz}));\n position: absolute;\n width: 100%;\n height: 100%;\n display: var(${l.n6}, none);\n align-items: center;\n justify-content: center;\n }`,t);const n=s()(e=>{this.parseInputValue(t,e),(0,l.Z)(t)},0,{trailing:!0});let i=!1;t.addEventListener("input",e=>{t.value=(0,l.zj)(t.value),t.value&&(0,l.Z)(t,t.value[0]);const s="deleteContentBackward"===e?.inputType||i;i=!1,s&&(0,l.pW)(this.getPrevInput(t)),n(t.value)}),t.onkeydown=e=>{const{key:n}=e;"Backspace"===n?t.value?(t.setSelectionRange(1,1),i=!0):(e.preventDefault(),i=!1,(0,l.pW)(this.getPrevInput(t))):(i=!1,1===n.length&&(t.value=""))},(0,u.EA)(this,t,{includeAttrs:d}),t.shadowRoot.querySelector("input").setAttribute("aria-label",`Digit ${e+1} of ${this.inputs.length}`)}),this.handleFocusEventsDispatching(this.inputs),this.handleInputEventDispatching()}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&o.includes(t)&&("digits"===t&&this.renderInputs(),"loading"===t&&this.handleLoadingState("true"===n))}get pattern(){return`^$|^\\d{${this.digits},}$`}}},18280(t,e,n){n.d(e,{Z:()=>l,_B:()=>i,n6:()=>s,pW:()=>a,vz:()=>r,zj:()=>u});const i="--descope-input-mask-content",s="--descope-input-mask-display",r="--descope-input-mask-fallback",a=t=>{t?.focus(),t?.setSelectionRange?.(1,1)},u=t=>t.replace(/\D/g,"")||"",l=(t,e)=>{e?(t.style.setProperty(i,`"${e}"`),t.style.setProperty(s,"flex")):(t.style.removeProperty(i),t.style.removeProperty(s))}},59053(t,e,n){n.r(e);var i=n(47168);customElements.define(i.T,i.A)}}]);
2
2
  //# sourceMappingURL=descope-passcode-descope-passcode-internal-index-js.js.map