@descope/web-components-ui 2.2.24 → 2.2.25

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 (84) hide show
  1. package/README.md +1 -1
  2. package/dist/umd/1408.js +2 -2
  3. package/dist/umd/1453.js +177 -0
  4. package/dist/umd/{1995.js.LICENSE.txt → 1453.js.LICENSE.txt} +6 -0
  5. package/dist/umd/1453.js.map +1 -0
  6. package/dist/umd/1899.js +2 -2
  7. package/dist/umd/2562.js +3 -0
  8. package/dist/umd/2562.js.map +1 -0
  9. package/dist/umd/3620.js +3 -3
  10. package/dist/umd/4518.js +3 -3
  11. package/dist/umd/4550.js +2 -2
  12. package/dist/umd/4623.js +1 -1
  13. package/dist/umd/4914.js +1 -1
  14. package/dist/umd/4914.js.map +1 -1
  15. package/dist/umd/5260.js +2 -2
  16. package/dist/umd/5263.js +498 -0
  17. package/dist/umd/5263.js.LICENSE.txt +17 -0
  18. package/dist/umd/5263.js.map +1 -0
  19. package/dist/umd/5648.js +1 -1
  20. package/dist/umd/5966.js +125 -0
  21. package/dist/umd/5966.js.map +1 -0
  22. package/dist/umd/6477.js +3 -3
  23. package/dist/umd/7291.js +2 -2
  24. package/dist/umd/7387.js +144 -0
  25. package/dist/umd/{6419.js.LICENSE.txt → 7387.js.LICENSE.txt} +8 -2
  26. package/dist/umd/7387.js.map +1 -0
  27. package/dist/umd/7774.js +3 -3
  28. package/dist/umd/7939.js +1 -1
  29. package/dist/umd/8202.js +82 -0
  30. package/dist/umd/{descope-apps-list.js.LICENSE.txt → 8202.js.LICENSE.txt} +0 -6
  31. package/dist/umd/8202.js.map +1 -0
  32. package/dist/umd/8983.js +1 -1
  33. package/dist/umd/9117.js +3 -3
  34. package/dist/umd/9970.js +1 -1
  35. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js +1 -1
  36. package/dist/umd/descope-apps-list.js +1 -17
  37. package/dist/umd/descope-apps-list.js.map +1 -1
  38. package/dist/umd/descope-avatar.js +161 -2
  39. package/dist/umd/descope-avatar.js.LICENSE.txt +6 -0
  40. package/dist/umd/descope-avatar.js.map +1 -1
  41. package/dist/umd/descope-button.js +1 -1
  42. package/dist/umd/descope-combo-box.js +2 -2
  43. package/dist/umd/descope-date-field-index-js.js +1 -1
  44. package/dist/umd/descope-email-field-index-js.js +1 -1
  45. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js +1 -1
  46. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js.map +1 -1
  47. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js +1 -1
  48. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js.map +1 -1
  49. package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js +1 -1
  50. package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js.map +1 -1
  51. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js +1 -1
  52. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js.map +1 -1
  53. package/dist/umd/descope-outbound-app-button.js +1 -1
  54. package/dist/umd/descope-outbound-apps.js +1 -338
  55. package/dist/umd/descope-outbound-apps.js.map +1 -1
  56. package/dist/umd/descope-passcode-index-js.js +1 -1
  57. package/dist/umd/descope-security-questions-verify-index-js.js +1 -1
  58. package/dist/umd/descope-text-field-index-js.js +1 -1
  59. package/dist/umd/descope-timer-button.js +1 -1
  60. package/dist/umd/descope-tooltip.js +2 -1
  61. package/dist/umd/descope-tooltip.js.LICENSE.txt +11 -0
  62. package/dist/umd/descope-tooltip.js.map +1 -1
  63. package/dist/umd/descope-upload-file-index-js.js +1 -1
  64. package/dist/umd/descope-user-attribute-index-js.js +1 -1
  65. package/dist/umd/descope-user-auth-method-index-js.js +1 -1
  66. package/dist/umd/index.js +1 -1
  67. package/dist/umd/index.js.map +1 -1
  68. package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js +1 -1
  69. package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +1 -1
  70. package/package.json +29 -29
  71. package/dist/umd/1519.js +0 -203
  72. package/dist/umd/1519.js.LICENSE.txt +0 -51
  73. package/dist/umd/1519.js.map +0 -1
  74. package/dist/umd/1995.js +0 -241
  75. package/dist/umd/1995.js.map +0 -1
  76. package/dist/umd/6419.js +0 -82
  77. package/dist/umd/6419.js.map +0 -1
  78. package/dist/umd/676.js +0 -3
  79. package/dist/umd/676.js.map +0 -1
  80. package/dist/umd/8618.js +0 -125
  81. package/dist/umd/8618.js.map +0 -1
  82. package/dist/umd/descope-outbound-apps.js.LICENSE.txt +0 -5
  83. /package/dist/umd/{676.js.LICENSE.txt → 2562.js.LICENSE.txt} +0 -0
  84. /package/dist/umd/{8618.js.LICENSE.txt → 5966.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"descope-apps-list.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/dom-utils.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/ListClass.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/unique-id-utils.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/index.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/vaadin-lumo-styles/sizing.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/slot-controller.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-apps-list/src/component/AppsListClass.js","webpack://@descope/web-components-ui/../components/descope-apps-list/src/component/index.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/a11y-base/src/focus-mixin.js","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-text/src/component/index.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/slot-observer.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/TextClass.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/tooltip-controller.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/ListItemClass.js"],"sourcesContent":["/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * Returns an array of ancestor root nodes for the given node.\n *\n * A root node is either a document node or a document fragment node (Shadow Root).\n * The array is collected by a bottom-up DOM traversing that starts with the given node\n * and involves both the light DOM and ancestor shadow DOM trees.\n *\n * @param {Node} node\n * @return {Node[]}\n */\nexport function getAncestorRootNodes(node) {\n const result = [];\n\n while (node) {\n if (node.nodeType === Node.DOCUMENT_NODE) {\n result.push(node);\n break;\n }\n\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n result.push(node);\n node = node.host;\n continue;\n }\n\n if (node.assignedSlot) {\n node = node.assignedSlot;\n continue;\n }\n\n node = node.parentNode;\n }\n\n return result;\n}\n\n/**\n * Returns the list of flattened elements for the given `node`.\n * This list consists of a node's children and, for any children that are\n * `<slot>` elements, the expanded flattened list of `assignedElements`.\n *\n * @param {Node} node\n * @return {Element[]}\n */\nexport function getFlattenedElements(node) {\n const result = [];\n let elements;\n if (node.localName === 'slot') {\n elements = node.assignedElements();\n } else {\n result.push(node);\n elements = [...node.children];\n }\n elements.forEach((elem) => result.push(...getFlattenedElements(elem)));\n return result;\n}\n\n/**\n * Traverses the given node and its parents, including those that are across\n * the shadow root boundaries, until it finds a node that matches the selector.\n *\n * @param {string} selector The CSS selector to match against\n * @param {Node} node The starting node for the traversal\n * @return {Node | null} The closest matching element, or null if no match is found\n */\nexport function getClosestElement(selector, node) {\n if (!node) {\n return null;\n }\n\n return node.closest(selector) || getClosestElement(selector, node.getRootNode().host);\n}\n\n/**\n * Takes a string with values separated by space and returns a set the values\n *\n * @param {string} value\n * @return {Set<string>}\n */\nexport function deserializeAttributeValue(value) {\n if (!value) {\n return new Set();\n }\n\n return new Set(value.split(' '));\n}\n\n/**\n * Takes a set of string values and returns a string with values separated by space\n *\n * @param {Set<string>} values\n * @return {string}\n */\nexport function serializeAttributeValue(values) {\n return values ? [...values].join(' ') : '';\n}\n\n/**\n * Adds a value to an attribute containing space-delimited values.\n *\n * @param {HTMLElement} element\n * @param {string} attr\n * @param {string} value\n */\nexport function addValueToAttribute(element, attr, value) {\n const values = deserializeAttributeValue(element.getAttribute(attr));\n values.add(value);\n element.setAttribute(attr, serializeAttributeValue(values));\n}\n\n/**\n * Removes a value from an attribute containing space-delimited values.\n * If the value is the last one, the whole attribute is removed.\n *\n * @param {HTMLElement} element\n * @param {string} attr\n * @param {string} value\n */\nexport function removeValueFromAttribute(element, attr, value) {\n const values = deserializeAttributeValue(element.getAttribute(attr));\n values.delete(value);\n if (values.size === 0) {\n element.removeAttribute(attr);\n return;\n }\n element.setAttribute(attr, serializeAttributeValue(values));\n}\n\n/**\n * Returns true if the given node is an empty text node, false otherwise.\n *\n * @param {Node} node\n * @return {boolean}\n */\nexport function isEmptyTextNode(node) {\n return node.nodeType === Node.TEXT_NODE && node.textContent.trim() === '';\n}\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 },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawList);\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\nlet uniqueId = 0;\n\n/**\n * Resets the unique id counter.\n *\n * @return {void}\n */\nexport function resetUniqueId() {\n uniqueId = 0;\n}\n\n/**\n * Returns a unique integer id.\n *\n * @return {number}\n */\nexport function generateUniqueId() {\n // eslint-disable-next-line no-plusplus\n return uniqueId++;\n}\n","import { componentName, ListItemClass } from './ListItemClass';\n\ncustomElements.define(componentName, ListItemClass);\n\nexport { ListItemClass, componentName };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './version.js';\nimport { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { addLumoGlobalStyles } from './global.js';\n\nconst sizing = css`\n :host {\n --lumo-size-xs: 1.625rem;\n --lumo-size-s: 1.875rem;\n --lumo-size-m: 2.25rem;\n --lumo-size-l: 2.75rem;\n --lumo-size-xl: 3.5rem;\n\n /* Icons */\n --lumo-icon-size-s: 1.25em;\n --lumo-icon-size-m: 1.5em;\n --lumo-icon-size-l: 2.25em;\n /* For backwards compatibility */\n --lumo-icon-size: var(--lumo-icon-size-m);\n }\n`;\n\naddLumoGlobalStyles('sizing-props', sizing);\n\nexport { sizing };\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { isEmptyTextNode } from './dom-utils.js';\nimport { SlotObserver } from './slot-observer.js';\nimport { generateUniqueId } from './unique-id-utils.js';\n\n/**\n * A controller for providing content to slot element and observing changes.\n */\nexport class SlotController extends EventTarget {\n /**\n * Ensure that every instance has unique ID.\n *\n * @param {HTMLElement} host\n * @param {string} slotName\n * @return {string}\n * @protected\n */\n static generateId(host, slotName) {\n const prefix = slotName || 'default';\n return `${prefix}-${host.localName}-${generateUniqueId()}`;\n }\n\n constructor(host, slotName, tagName, config = {}) {\n super();\n\n const { initializer, multiple, observe, useUniqueId } = config;\n\n this.host = host;\n this.slotName = slotName;\n this.tagName = tagName;\n this.observe = typeof observe === 'boolean' ? observe : true;\n this.multiple = typeof multiple === 'boolean' ? multiple : false;\n this.slotInitializer = initializer;\n\n if (multiple) {\n this.nodes = [];\n }\n\n // Only generate the default ID if requested by the controller.\n if (useUniqueId) {\n this.defaultId = this.constructor.generateId(host, slotName);\n }\n }\n\n hostConnected() {\n if (!this.initialized) {\n if (this.multiple) {\n this.initMultiple();\n } else {\n this.initSingle();\n }\n\n if (this.observe) {\n this.observeSlot();\n }\n\n this.initialized = true;\n }\n }\n\n /** @protected */\n initSingle() {\n let node = this.getSlotChild();\n\n if (!node) {\n node = this.attachDefaultNode();\n this.initNode(node);\n } else {\n this.node = node;\n this.initAddedNode(node);\n }\n }\n\n /** @protected */\n initMultiple() {\n const children = this.getSlotChildren();\n\n if (children.length === 0) {\n const defaultNode = this.attachDefaultNode();\n if (defaultNode) {\n this.nodes = [defaultNode];\n this.initNode(defaultNode);\n }\n } else {\n this.nodes = children;\n children.forEach((node) => {\n this.initAddedNode(node);\n });\n }\n }\n\n /**\n * Create and attach default node using the provided tag name, if any.\n * @return {Node | undefined}\n * @protected\n */\n attachDefaultNode() {\n const { host, slotName, tagName } = this;\n\n // Check if the node was created previously and if so, reuse it.\n let node = this.defaultNode;\n\n // Tag name is optional, sometimes we don't init default content.\n if (!node && tagName) {\n node = document.createElement(tagName);\n if (node instanceof Element) {\n if (slotName !== '') {\n node.setAttribute('slot', slotName);\n }\n this.defaultNode = node;\n }\n }\n\n if (node) {\n this.node = node;\n host.appendChild(node);\n }\n\n return node;\n }\n\n /**\n * Return the list of nodes matching the slot managed by the controller.\n * @return {Node}\n */\n getSlotChildren() {\n const { slotName } = this;\n return Array.from(this.host.childNodes).filter((node) => {\n // Either an element (any slot) or a text node (only un-named slot).\n return (\n (node.nodeType === Node.ELEMENT_NODE && node.slot === slotName) ||\n (node.nodeType === Node.TEXT_NODE && node.textContent.trim() && slotName === '')\n );\n });\n }\n\n /**\n * Return a reference to the node managed by the controller.\n * @return {Node}\n */\n getSlotChild() {\n return this.getSlotChildren()[0];\n }\n\n /**\n * Run `slotInitializer` for the node managed by the controller.\n *\n * @param {Node} node\n * @protected\n */\n initNode(node) {\n const { slotInitializer } = this;\n // Don't try to bind `this` to initializer (normally it's arrow function).\n // Instead, pass the host as a first argument to access component's state.\n if (slotInitializer) {\n slotInitializer(node, this.host);\n }\n }\n\n /**\n * Override to initialize the newly added custom node.\n *\n * @param {Node} _node\n * @protected\n */\n initCustomNode(_node) {}\n\n /**\n * Override to teardown slotted node when it's removed.\n *\n * @param {Node} _node\n * @protected\n */\n teardownNode(_node) {}\n\n /**\n * Run both `initCustomNode` and `initNode` for a custom slotted node.\n *\n * @param {Node} node\n * @protected\n */\n initAddedNode(node) {\n if (node !== this.defaultNode) {\n this.initCustomNode(node);\n this.initNode(node);\n }\n }\n\n /**\n * Setup the observer to manage slot content changes.\n * @protected\n */\n observeSlot() {\n const { slotName } = this;\n const selector = slotName === '' ? 'slot:not([name])' : `slot[name=${slotName}]`;\n const slot = this.host.shadowRoot.querySelector(selector);\n\n this.__slotObserver = new SlotObserver(slot, ({ addedNodes, removedNodes }) => {\n const current = this.multiple ? this.nodes : [this.node];\n\n // Calling `slot.assignedNodes()` includes whitespace text nodes in case of default slot:\n // unlike comment nodes, they are not filtered out. So we need to manually ignore them.\n const newNodes = addedNodes.filter((node) => !isEmptyTextNode(node) && !current.includes(node));\n\n if (removedNodes.length) {\n this.nodes = current.filter((node) => !removedNodes.includes(node));\n\n removedNodes.forEach((node) => {\n this.teardownNode(node);\n });\n }\n\n if (newNodes && newNodes.length > 0) {\n if (this.multiple) {\n // Remove default node if exists\n if (this.defaultNode) {\n this.defaultNode.remove();\n }\n this.nodes = [...current, ...newNodes].filter((node) => node !== this.defaultNode);\n newNodes.forEach((node) => {\n this.initAddedNode(node);\n });\n } else {\n // Remove previous node if exists\n if (this.node) {\n this.node.remove();\n }\n this.node = newNodes[0];\n this.initAddedNode(this.node);\n }\n }\n });\n }\n}\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 getComponentName,\n limitAbbreviation,\n} from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n createDynamicDataMixin,\n} from '@descope-ui/common/components-mixins';\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('apps-list');\n\nconst itemRenderer = ({ name, icon, url }, _, ref) => `\n <a ${url ? `href=\"${url}\" title=\"${url}\"` : ''} ${ref.openInSameWindow ? '' : 'target=\"_blank\"'}>\n <descope-list-item>\n <div class=\"avatar-wrapper\">\n <descope-avatar\n ${icon ? `img=\"${icon}\"` : ''}\n ${name ? `display-name=\"${name}\" abbr=${limitAbbreviation(name)}` : ''}\n size=\"${ref.logoSize || ref.size}\"\n ></descope-avatar>\n </div>\n <descope-text\n variant=\"${ref.itemTextVariant}\"\n mode=\"primary\"\n >${name}</descope-text>\n </descope-list-item>\n </a>\n`;\n\nconst customMixin = (superclass) =>\n class AppsListMixinClass extends superclass {\n // size controls both item logo size and font size\n get size() {\n return this.getAttribute('size') || 'sm';\n }\n\n get itemTextVariant() {\n return this.getAttribute('item-text-variant') || 'body1';\n }\n\n get logoSize() {\n return this.getAttribute('logo-size');\n }\n\n get openInSameWindow() {\n return this.getAttribute('open-in-same-window') === 'true';\n }\n };\n\nexport const AppsListClass = compose(\n createStyleMixin({\n mappings: {\n maxHeight: { selector: () => ':host' },\n minHeight: { selector: () => ':host' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n gap: {\n selector: ListClass.componentName,\n property: ListClass.cssVarList.gap,\n },\n maxRowItems: {\n selector: ListClass.componentName,\n property: ListClass.cssVarList.maxRowItems,\n },\n itemsFontWeight: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontWeightOverride,\n },\n itemsFontSize: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontSizeOverride,\n },\n itemsTextAlign: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.textAlign,\n },\n itemBackgroundColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.backgroundColor,\n },\n itemHoverBackgroundColor: {\n selector: `${ListItemClass.componentName}:hover`,\n property: ListItemClass.cssVarList.backgroundColor,\n },\n backgroundColor: {\n selector: ListClass.componentName,\n property: ListClass.cssVarList.backgroundColorOverride,\n },\n itemBorderStyle: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.borderStyleOverride,\n },\n itemBorderColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.borderColorOverride,\n },\n itemBorderWidth: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.borderWidthOverride,\n },\n itemVerticalPadding: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.verticalPaddingOverride,\n },\n itemHorizontalPadding: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.horizontalPaddingOverride,\n },\n itemAlignment: [\n { selector: () => '.avatar-wrapper', property: 'text-align' },\n {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.textAlign,\n },\n ],\n },\n }),\n createDynamicDataMixin({\n itemRenderer,\n rerenderAttrsList: [\n 'size',\n 'item-text-variant',\n 'logo-size',\n 'open-in-same-window',\n ],\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin,\n)(\n createProxy({\n slots: ['empty-state'],\n wrappedEleName: 'descope-list',\n excludeAttrsSync: ['tabindex', 'class', 'empty', 'style'],\n componentName,\n style: () => `\n :host {\n width: 100%;\n display: inline-flex;\n }\n\n descope-text::part(text-wrapper) {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n descope-list-item[variant=\"tile\"] .avatar-wrapper {\n width: 100%;\n }\n\n .avatar-wrapper {\n line-height: 0;\n }\n\n a {\n text-decoration: none;\n }\n\n descope-text {\n ${TextClass.cssVarList.hostDirection}: var(${AppsListClass.cssVarList.hostDirection});\n max-width: 100%;\n width: 100%;\n }\n `,\n }),\n);\n","import '@descope-ui/descope-list';\nimport '@descope-ui/descope-avatar';\nimport '@descope-ui/descope-text';\nimport { componentName, AppsListClass } from './AppsListClass';\n\ncustomElements.define(componentName, AppsListClass);\n\nexport { AppsListClass, componentName };\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\nimport { isKeyboardActive } from './focus-utils.js';\n\n/**\n * A mixin to handle `focused` and `focus-ring` attributes based on focus.\n *\n * @polymerMixin\n */\nexport const FocusMixin = dedupingMixin(\n (superclass) =>\n class FocusMixinClass extends superclass {\n /**\n * @protected\n * @return {boolean}\n */\n get _keyboardActive() {\n return isKeyboardActive();\n }\n\n /** @protected */\n ready() {\n this.addEventListener('focusin', (e) => {\n if (this._shouldSetFocus(e)) {\n this._setFocused(true);\n }\n });\n\n this.addEventListener('focusout', (e) => {\n if (this._shouldRemoveFocus(e)) {\n this._setFocused(false);\n }\n });\n\n // In super.ready() other 'focusin' and 'focusout' listeners might be\n // added, so we call it after our own ones to ensure they execute first.\n // Issue to watch out: when incorrect, <vaadin-combo-box> refocuses the\n // input field on iOS after \"Done\" is pressed.\n super.ready();\n }\n\n /** @protected */\n disconnectedCallback() {\n super.disconnectedCallback();\n\n // In non-Chrome browsers, blur does not fire on the element when it is disconnected.\n // reproducible in `<vaadin-date-picker>` when closing on `Cancel` or `Today` click.\n if (this.hasAttribute('focused')) {\n this._setFocused(false);\n }\n }\n\n /**\n * Override to change how focused and focus-ring attributes are set.\n *\n * @param {boolean} focused\n * @protected\n */\n _setFocused(focused) {\n this.toggleAttribute('focused', focused);\n\n // Focus-ring is true when the element was focused from the keyboard.\n // Focus Ring [A11ycasts]: https://youtu.be/ilj2P5-5CjI\n this.toggleAttribute('focus-ring', focused && this._keyboardActive);\n }\n\n /**\n * Override to define if the field receives focus based on the event.\n *\n * @param {FocusEvent} _event\n * @return {boolean}\n * @protected\n */\n _shouldSetFocus(_event) {\n return true;\n }\n\n /**\n * Override to define if the field loses focus based on the event.\n *\n * @param {FocusEvent} _event\n * @return {boolean}\n * @protected\n */\n _shouldRemoveFocus(_event) {\n return true;\n }\n },\n);\n","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 { componentName, TextClass } from './TextClass';\n\ncustomElements.define(componentName, TextClass);\n\nexport { TextClass, componentName };\n","/**\n * @license\n * Copyright (c) 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * A helper for observing slot changes.\n */\nexport class SlotObserver {\n constructor(slot, callback) {\n /** @type HTMLSlotElement */\n this.slot = slot;\n\n /** @type Function */\n this.callback = callback;\n\n /** @type {Node[]} */\n this._storedNodes = [];\n\n this._connected = false;\n this._scheduled = false;\n\n this._boundSchedule = () => {\n this._schedule();\n };\n\n this.connect();\n this._schedule();\n }\n\n /**\n * Activates an observer. This method is automatically called when\n * a `SlotObserver` is created. It should only be called to re-activate\n * an observer that has been deactivated via the `disconnect` method.\n */\n connect() {\n this.slot.addEventListener('slotchange', this._boundSchedule);\n this._connected = true;\n }\n\n /**\n * Deactivates the observer. After calling this method the observer callback\n * will not be called when changes to slotted nodes occur. The `connect` method\n * may be subsequently called to reactivate the observer.\n */\n disconnect() {\n this.slot.removeEventListener('slotchange', this._boundSchedule);\n this._connected = false;\n }\n\n /** @private */\n _schedule() {\n if (!this._scheduled) {\n this._scheduled = true;\n\n queueMicrotask(() => {\n this.flush();\n });\n }\n }\n\n /**\n * Run the observer callback synchronously.\n */\n flush() {\n if (!this._connected) {\n return;\n }\n\n this._scheduled = false;\n\n this._processNodes();\n }\n\n /** @private */\n _processNodes() {\n const currentNodes = this.slot.assignedNodes({ flatten: true });\n\n let addedNodes = [];\n const removedNodes = [];\n const movedNodes = [];\n\n if (currentNodes.length) {\n addedNodes = currentNodes.filter((node) => !this._storedNodes.includes(node));\n }\n\n if (this._storedNodes.length) {\n this._storedNodes.forEach((node, index) => {\n const idx = currentNodes.indexOf(node);\n if (idx === -1) {\n removedNodes.push(node);\n } else if (idx !== index) {\n movedNodes.push(node);\n }\n });\n }\n\n if (addedNodes.length || removedNodes.length || movedNodes.length) {\n this.callback({ addedNodes, movedNodes, removedNodes });\n }\n\n this._storedNodes = currentNodes;\n }\n}\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n injectStyle,\n observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('text');\n\nclass RawText extends createBaseClass({\n componentName,\n baseSelector: ':host > slot',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot part=\"text-wrapper\"></slot>\n `;\n\n injectStyle(`\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n `, this);\n }\n\n get hideWhenEmpty() {\n return this.getAttribute('hide-when-empty') === 'true';\n }\n\n init() {\n super.init();\n\n observeChildren(this, () => {\n const hasChildren = !!this.childNodes.length;\n this.style.display = !hasChildren && this.hideWhenEmpty ? 'none' : '';\n });\n }\n}\n\nconst { host } = {\n host: { selector: () => ':host' }\n}\n\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n textColor: [\n { property: 'color' }\n ],\n textLineHeight: { property: 'line-height' },\n textLetterSpacing: { property: 'letter-spacing' },\n textShadow: {},\n textAlign: {},\n textTransform: {},\n fontFamily: {},\n fontStyle: {},\n fontWeight: {},\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawText);\n","/**\n * @license\n * Copyright (c) 2022 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { SlotController } from './slot-controller.js';\n\n/**\n * A controller that manages the slotted tooltip element.\n */\nexport class TooltipController extends SlotController {\n constructor(host) {\n // Do not provide slot factory to create tooltip lazily.\n super(host, 'tooltip');\n\n this.setTarget(host);\n }\n\n /**\n * Override to initialize the newly added custom tooltip.\n *\n * @param {Node} tooltipNode\n * @protected\n * @override\n */\n initCustomNode(tooltipNode) {\n tooltipNode.target = this.target;\n\n if (this.ariaTarget !== undefined) {\n tooltipNode.ariaTarget = this.ariaTarget;\n }\n\n if (this.context !== undefined) {\n tooltipNode.context = this.context;\n }\n\n if (this.manual !== undefined) {\n tooltipNode.manual = this.manual;\n }\n\n if (this.opened !== undefined) {\n tooltipNode.opened = this.opened;\n }\n\n if (this.position !== undefined) {\n tooltipNode._position = this.position;\n }\n\n if (this.shouldShow !== undefined) {\n tooltipNode.shouldShow = this.shouldShow;\n }\n\n this.__notifyChange();\n }\n\n /**\n * Override to notify the host when the tooltip is removed.\n *\n * @param {Node} tooltipNode\n * @protected\n * @override\n */\n teardownNode() {\n this.__notifyChange();\n }\n\n /**\n * Set an HTML element for linking with the tooltip overlay\n * via `aria-describedby` attribute used by screen readers.\n * @param {HTMLElement} ariaTarget\n */\n setAriaTarget(ariaTarget) {\n this.ariaTarget = ariaTarget;\n\n const tooltipNode = this.node;\n if (tooltipNode) {\n tooltipNode.ariaTarget = ariaTarget;\n }\n }\n\n /**\n * Set a context object to be used by generator.\n * @param {object} context\n */\n setContext(context) {\n this.context = context;\n\n const tooltipNode = this.node;\n if (tooltipNode) {\n tooltipNode.context = context;\n }\n }\n\n /**\n * Toggle manual state on the slotted tooltip.\n * @param {boolean} manual\n */\n setManual(manual) {\n this.manual = manual;\n\n const tooltipNode = this.node;\n if (tooltipNode) {\n tooltipNode.manual = manual;\n }\n }\n\n /**\n * Toggle opened state on the slotted tooltip.\n * @param {boolean} opened\n */\n setOpened(opened) {\n this.opened = opened;\n\n const tooltipNode = this.node;\n if (tooltipNode) {\n tooltipNode.opened = opened;\n }\n }\n\n /**\n * Set default position for the slotted tooltip.\n * This can be overridden by setting the position\n * using corresponding property or attribute.\n * @param {string} position\n */\n setPosition(position) {\n this.position = position;\n\n const tooltipNode = this.node;\n if (tooltipNode) {\n tooltipNode._position = position;\n }\n }\n\n /**\n * Set function used to detect whether to show\n * the tooltip based on a condition.\n * @param {Function} shouldShow\n */\n setShouldShow(shouldShow) {\n this.shouldShow = shouldShow;\n\n const tooltipNode = this.node;\n if (tooltipNode) {\n tooltipNode.shouldShow = shouldShow;\n }\n }\n\n /**\n * Set an HTML element to attach the tooltip to.\n * @param {HTMLElement} target\n */\n setTarget(target) {\n this.target = target;\n\n const tooltipNode = this.node;\n if (tooltipNode) {\n tooltipNode.target = target;\n }\n }\n\n /** @private */\n __notifyChange() {\n this.dispatchEvent(new CustomEvent('tooltip-changed', { detail: { node: this.node } }));\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"],"names":["getAncestorRootNodes","node","result","nodeType","Node","DOCUMENT_NODE","push","DOCUMENT_FRAGMENT_NODE","assignedSlot","parentNode","host","getFlattenedElements","elements","localName","assignedElements","children","forEach","elem","getClosestElement","selector","closest","getRootNode","deserializeAttributeValue","value","Set","split","serializeAttributeValue","values","join","addValueToAttribute","element","attr","getAttribute","add","setAttribute","removeValueFromAttribute","delete","size","removeAttribute","isEmptyTextNode","TEXT_NODE","textContent","trim","componentName","RawList","baseSelector","observedAttributes","constructor","super","this","attachShadow","mode","innerHTML","items","shadowRoot","querySelector","length","variant","item","listItem","listItemVariant","init","isReadOnly","attributeChangedCallback","name","oldValue","newValue","ListClass","mappings","hostWidth","property","maxHeight","minHeight","verticalPadding","horizontalPadding","hostDirection","fontFamily","gap","backgroundColor","borderRadius","borderColor","borderStyle","borderWidth","boxShadow","gridTemplateColumns","maxItemsWidth","minItemsWidth","maxRowItems","itemsHorizontalAlign","emptyStateTextColor","emptyStateTextFontFamily","uniqueId","generateUniqueId","customElements","define","sizing","SlotController","EventTarget","generateId","slotName","tagName","config","initializer","multiple","observe","useUniqueId","slotInitializer","nodes","defaultId","hostConnected","initialized","initMultiple","initSingle","observeSlot","getSlotChild","initAddedNode","attachDefaultNode","initNode","getSlotChildren","defaultNode","document","createElement","Element","appendChild","Array","from","childNodes","filter","ELEMENT_NODE","slot","initCustomNode","_node","teardownNode","__slotObserver","addedNodes","removedNodes","current","newNodes","includes","remove","AppsListClass","cssVarList","itemsFontWeight","TextClass","fontWeightOverride","itemsFontSize","fontSizeOverride","itemsTextAlign","textAlign","itemBackgroundColor","ListItemClass","itemHoverBackgroundColor","backgroundColorOverride","itemBorderStyle","borderStyleOverride","itemBorderColor","borderColorOverride","itemBorderWidth","borderWidthOverride","itemVerticalPadding","verticalPaddingOverride","itemHorizontalPadding","horizontalPaddingOverride","itemAlignment","itemRenderer","icon","url","_","ref","openInSameWindow","logoSize","itemTextVariant","rerenderAttrsList","superclass","slots","wrappedEleName","excludeAttrsSync","style","FocusMixin","_keyboardActive","ready","addEventListener","e","_shouldSetFocus","_setFocused","_shouldRemoveFocus","disconnectedCallback","hasAttribute","focused","toggleAttribute","_event","RawAvatar","avatarComponent","includeAttrs","mapAttrs","editableIcon","display","isEditable","editableBadge","avatar","AvatarClass","hostHeight","cursor","avatarTextColor","avatarBackgroundColor","editableIconColor","editableBorderColor","editableBackgroundColor","SlotObserver","callback","_storedNodes","_connected","_scheduled","_boundSchedule","_schedule","connect","disconnect","removeEventListener","queueMicrotask","flush","_processNodes","currentNodes","assignedNodes","flatten","movedNodes","index","idx","indexOf","RawText","hideWhenEmpty","hasChildren","fontSize","textColor","textLineHeight","textLetterSpacing","textShadow","textTransform","fontStyle","fontWeight","TooltipController","setTarget","tooltipNode","target","undefined","ariaTarget","context","manual","opened","position","_position","shouldShow","__notifyChange","setAriaTarget","setContext","setManual","setOpened","setPosition","setShouldShow","dispatchEvent","CustomEvent","detail","outline","maxWidth","alignItems","flexDirection","transition"],"sourceRoot":""}
1
+ {"version":3,"file":"descope-apps-list.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-list/src/component/ListClass.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-apps-list/src/component/AppsListClass.js","webpack://@descope/web-components-ui/../components/descope-apps-list/src/component/index.js","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-text/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/TextClass.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/ListItemClass.js"],"sourcesContent":["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 },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawList);\n","import { componentName, ListItemClass } from './ListItemClass';\n\ncustomElements.define(componentName, ListItemClass);\n\nexport { ListItemClass, componentName };\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 getComponentName,\n limitAbbreviation,\n} from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n createDynamicDataMixin,\n} from '@descope-ui/common/components-mixins';\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('apps-list');\n\nconst itemRenderer = ({ name, icon, url }, _, ref) => `\n <a ${url ? `href=\"${url}\" title=\"${url}\"` : ''} ${ref.openInSameWindow ? '' : 'target=\"_blank\"'}>\n <descope-list-item>\n <div class=\"avatar-wrapper\">\n <descope-avatar\n ${icon ? `img=\"${icon}\"` : ''}\n ${name ? `display-name=\"${name}\" abbr=${limitAbbreviation(name)}` : ''}\n size=\"${ref.logoSize || ref.size}\"\n ></descope-avatar>\n </div>\n <descope-text\n variant=\"${ref.itemTextVariant}\"\n mode=\"primary\"\n >${name}</descope-text>\n </descope-list-item>\n </a>\n`;\n\nconst customMixin = (superclass) =>\n class AppsListMixinClass extends superclass {\n // size controls both item logo size and font size\n get size() {\n return this.getAttribute('size') || 'sm';\n }\n\n get itemTextVariant() {\n return this.getAttribute('item-text-variant') || 'body1';\n }\n\n get logoSize() {\n return this.getAttribute('logo-size');\n }\n\n get openInSameWindow() {\n return this.getAttribute('open-in-same-window') === 'true';\n }\n };\n\nexport const AppsListClass = compose(\n createStyleMixin({\n mappings: {\n maxHeight: { selector: () => ':host' },\n minHeight: { selector: () => ':host' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n gap: {\n selector: ListClass.componentName,\n property: ListClass.cssVarList.gap,\n },\n maxRowItems: {\n selector: ListClass.componentName,\n property: ListClass.cssVarList.maxRowItems,\n },\n itemsFontWeight: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontWeightOverride,\n },\n itemsFontSize: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontSizeOverride,\n },\n itemsTextAlign: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.textAlign,\n },\n itemBackgroundColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.backgroundColor,\n },\n itemHoverBackgroundColor: {\n selector: `${ListItemClass.componentName}:hover`,\n property: ListItemClass.cssVarList.backgroundColor,\n },\n backgroundColor: {\n selector: ListClass.componentName,\n property: ListClass.cssVarList.backgroundColorOverride,\n },\n itemBorderStyle: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.borderStyleOverride,\n },\n itemBorderColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.borderColorOverride,\n },\n itemBorderWidth: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.borderWidthOverride,\n },\n itemVerticalPadding: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.verticalPaddingOverride,\n },\n itemHorizontalPadding: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.horizontalPaddingOverride,\n },\n itemAlignment: [\n { selector: () => '.avatar-wrapper', property: 'text-align' },\n {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.textAlign,\n },\n ],\n },\n }),\n createDynamicDataMixin({\n itemRenderer,\n rerenderAttrsList: [\n 'size',\n 'item-text-variant',\n 'logo-size',\n 'open-in-same-window',\n ],\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin,\n)(\n createProxy({\n slots: ['empty-state'],\n wrappedEleName: 'descope-list',\n excludeAttrsSync: ['tabindex', 'class', 'empty', 'style'],\n componentName,\n style: () => `\n :host {\n width: 100%;\n display: inline-flex;\n }\n\n descope-text::part(text-wrapper) {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n descope-list-item[variant=\"tile\"] .avatar-wrapper {\n width: 100%;\n }\n\n .avatar-wrapper {\n line-height: 0;\n }\n\n a {\n text-decoration: none;\n }\n\n descope-text {\n ${TextClass.cssVarList.hostDirection}: var(${AppsListClass.cssVarList.hostDirection});\n max-width: 100%;\n width: 100%;\n }\n `,\n }),\n);\n","import '@descope-ui/descope-list';\nimport '@descope-ui/descope-avatar';\nimport '@descope-ui/descope-text';\nimport { componentName, AppsListClass } from './AppsListClass';\n\ncustomElements.define(componentName, AppsListClass);\n\nexport { AppsListClass, componentName };\n","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 { componentName, TextClass } from './TextClass';\n\ncustomElements.define(componentName, TextClass);\n\nexport { TextClass, componentName };\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n injectStyle,\n observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('text');\n\nclass RawText extends createBaseClass({\n componentName,\n baseSelector: ':host > slot',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot part=\"text-wrapper\"></slot>\n `;\n\n injectStyle(`\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n `, this);\n }\n\n get hideWhenEmpty() {\n return this.getAttribute('hide-when-empty') === 'true';\n }\n\n init() {\n super.init();\n\n observeChildren(this, () => {\n const hasChildren = !!this.childNodes.length;\n this.style.display = !hasChildren && this.hideWhenEmpty ? 'none' : '';\n });\n }\n}\n\nconst { host } = {\n host: { selector: () => ':host' }\n}\n\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n textColor: [\n { property: 'color' }\n ],\n textLineHeight: { property: 'line-height' },\n textLetterSpacing: { property: 'letter-spacing' },\n textShadow: {},\n textAlign: {},\n textTransform: {},\n fontFamily: {},\n fontStyle: {},\n fontWeight: {},\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawText);\n","import {\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"],"names":["componentName","RawList","baseSelector","observedAttributes","constructor","super","this","attachShadow","mode","innerHTML","items","shadowRoot","querySelector","assignedElements","length","setAttribute","removeAttribute","variant","getAttribute","forEach","item","listItem","localName","listItemVariant","init","isReadOnly","attributeChangedCallback","name","oldValue","newValue","ListClass","mappings","hostWidth","selector","property","maxHeight","minHeight","verticalPadding","horizontalPadding","hostDirection","fontFamily","gap","backgroundColor","borderRadius","borderColor","borderStyle","borderWidth","boxShadow","gridTemplateColumns","maxItemsWidth","minItemsWidth","maxRowItems","itemsHorizontalAlign","emptyStateTextColor","emptyStateTextFontFamily","customElements","define","AppsListClass","cssVarList","itemsFontWeight","TextClass","fontWeightOverride","itemsFontSize","fontSizeOverride","itemsTextAlign","textAlign","itemBackgroundColor","ListItemClass","itemHoverBackgroundColor","backgroundColorOverride","itemBorderStyle","borderStyleOverride","itemBorderColor","borderColorOverride","itemBorderWidth","borderWidthOverride","itemVerticalPadding","verticalPaddingOverride","itemHorizontalPadding","horizontalPaddingOverride","itemAlignment","itemRenderer","icon","url","_","ref","openInSameWindow","logoSize","size","itemTextVariant","rerenderAttrsList","superclass","slots","wrappedEleName","excludeAttrsSync","style","RawAvatar","avatarComponent","includeAttrs","mapAttrs","editableIcon","display","isEditable","host","editableBadge","avatar","AvatarClass","hostHeight","cursor","avatarTextColor","avatarBackgroundColor","editableIconColor","editableBorderColor","editableBackgroundColor","RawText","hideWhenEmpty","hasChildren","childNodes","fontSize","textColor","textLineHeight","textLetterSpacing","textShadow","textTransform","fontStyle","fontWeight","outline","maxWidth","alignItems","flexDirection","transition"],"sourceRoot":""}
@@ -1,5 +1,5 @@
1
1
  /*! For license information please see descope-avatar.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[2272],{1508:(t,e,o)=>{function s(t){const e=[];for(;t;){if(t.nodeType===Node.DOCUMENT_NODE){e.push(t);break}t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE?t=t.assignedSlot?t.assignedSlot:t.parentNode:(e.push(t),t=t.host)}return e}function i(t){const e=[];let o;return"slot"===t.localName?o=t.assignedElements():(e.push(t),o=[...t.children]),o.forEach(t=>e.push(...i(t))),e}function n(t,e){return e?e.closest(t)||n(t,e.getRootNode().host):null}function d(t){return t?new Set(t.split(" ")):new Set}function a(t){return t?[...t].join(" "):""}function h(t,e,o){const s=d(t.getAttribute(e));s.add(o),t.setAttribute(e,a(s))}function r(t,e,o){const s=d(t.getAttribute(e));s.delete(o),0!==s.size?t.setAttribute(e,a(s)):t.removeAttribute(e)}function l(t){return t.nodeType===Node.TEXT_NODE&&""===t.textContent.trim()}o.d(e,{Dy:()=>s,J$:()=>i,Wr:()=>r,Z4:()=>d,ZA:()=>l,el:()=>n,iA:()=>h,sz:()=>a})},11707:(t,e,o)=>{o.d(e,{I:()=>i});let s=0;function i(){return s++}},42068:(t,e,o)=>{o(88660);var s=o(87550),i=o(36411);const n=s.AH`
2
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[1453,2272],{1508:(t,e,o)=>{function i(t){const e=[];for(;t;){if(t.nodeType===Node.DOCUMENT_NODE){e.push(t);break}t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE?t=t.assignedSlot?t.assignedSlot:t.parentNode:(e.push(t),t=t.host)}return e}function s(t){const e=[];let o;return"slot"===t.localName?o=t.assignedElements():(e.push(t),o=[...t.children]),o.forEach(t=>e.push(...s(t))),e}function n(t,e){return e?e.closest(t)||n(t,e.getRootNode().host):null}function a(t){return t?new Set(t.split(" ")):new Set}function r(t){return t?[...t].join(" "):""}function d(t,e,o){const i=a(t.getAttribute(e));i.add(o),t.setAttribute(e,r(i))}function l(t,e,o){const i=a(t.getAttribute(e));i.delete(o),0!==i.size?t.setAttribute(e,r(i)):t.removeAttribute(e)}function h(t){return t.nodeType===Node.TEXT_NODE&&""===t.textContent.trim()}o.d(e,{Dy:()=>i,J$:()=>s,Wr:()=>l,Z4:()=>a,ZA:()=>h,el:()=>n,iA:()=>d,sz:()=>r})},11707:(t,e,o)=>{o.d(e,{I:()=>s});let i=0;function s(){return i++}},21961:(t,e,o)=>{o.d(e,{C:()=>n});var i=o(98741);const s=new WeakMap,n=(0,i.y)(t=>class extends t{get slotStyles(){return{}}connectedCallback(){super.connectedCallback(),this.__applySlotStyles()}__applySlotStyles(){const t=this.getRootNode(),e=function(t){return s.has(t)||s.set(t,new Set),s.get(t)}(t);this.slotStyles.forEach(o=>{e.has(o)||(function(t,e){const o=document.createElement("style");window.DESCOPE_NONCE&&o.setAttribute("nonce",window.DESCOPE_NONCE),o.textContent=t,e===document?document.head.appendChild(o):e.insertBefore(o,e.firstChild)}(o,t),e.add(o))})}})},42068:(t,e,o)=>{o(88660);var i=o(87550),s=o(36411);const n=i.AH`
3
3
  :host {
4
4
  --lumo-size-xs: 1.625rem;
5
5
  --lumo-size-s: 1.875rem;
@@ -14,5 +14,164 @@
14
14
  /* For backwards compatibility */
15
15
  --lumo-icon-size: var(--lumo-icon-size-m);
16
16
  }
17
- `;(0,i.q)("sizing-props",n)},44099:(t,e,o)=>{o.d(e,{r:()=>d});var s=o(1508),i=o(65641),n=o(11707);class d extends EventTarget{static generateId(t,e){return`${e||"default"}-${t.localName}-${(0,n.I)()}`}constructor(t,e,o,s={}){super();const{initializer:i,multiple:n,observe:d,useUniqueId:a}=s;this.host=t,this.slotName=e,this.tagName=o,this.observe="boolean"!=typeof d||d,this.multiple="boolean"==typeof n&&n,this.slotInitializer=i,n&&(this.nodes=[]),a&&(this.defaultId=this.constructor.generateId(t,e))}hostConnected(){this.initialized||(this.multiple?this.initMultiple():this.initSingle(),this.observe&&this.observeSlot(),this.initialized=!0)}initSingle(){let t=this.getSlotChild();t?(this.node=t,this.initAddedNode(t)):(t=this.attachDefaultNode(),this.initNode(t))}initMultiple(){const t=this.getSlotChildren();if(0===t.length){const t=this.attachDefaultNode();t&&(this.nodes=[t],this.initNode(t))}else this.nodes=t,t.forEach(t=>{this.initAddedNode(t)})}attachDefaultNode(){const{host:t,slotName:e,tagName:o}=this;let s=this.defaultNode;return!s&&o&&(s=document.createElement(o),s instanceof Element&&(""!==e&&s.setAttribute("slot",e),this.defaultNode=s)),s&&(this.node=s,t.appendChild(s)),s}getSlotChildren(){const{slotName:t}=this;return Array.from(this.host.childNodes).filter(e=>e.nodeType===Node.ELEMENT_NODE&&e.slot===t||e.nodeType===Node.TEXT_NODE&&e.textContent.trim()&&""===t)}getSlotChild(){return this.getSlotChildren()[0]}initNode(t){const{slotInitializer:e}=this;e&&e(t,this.host)}initCustomNode(t){}teardownNode(t){}initAddedNode(t){t!==this.defaultNode&&(this.initCustomNode(t),this.initNode(t))}observeSlot(){const{slotName:t}=this,e=""===t?"slot:not([name])":`slot[name=${t}]`,o=this.host.shadowRoot.querySelector(e);this.__slotObserver=new i.P(o,({addedNodes:t,removedNodes:e})=>{const o=this.multiple?this.nodes:[this.node],i=t.filter(t=>!(0,s.ZA)(t)&&!o.includes(t));e.length&&(this.nodes=o.filter(t=>!e.includes(t)),e.forEach(t=>{this.teardownNode(t)})),i&&i.length>0&&(this.multiple?(this.defaultNode&&this.defaultNode.remove(),this.nodes=[...o,...i].filter(t=>t!==this.defaultNode),i.forEach(t=>{this.initAddedNode(t)})):(this.node&&this.node.remove(),this.node=i[0],this.initAddedNode(this.node)))})}}},53149:(t,e,o)=>{o.d(e,{y:()=>n});var s=o(98741),i=o(30025);const n=(0,s.y)(t=>class extends t{get _keyboardActive(){return(0,i.aJ)()}ready(){this.addEventListener("focusin",t=>{this._shouldSetFocus(t)&&this._setFocused(!0)}),this.addEventListener("focusout",t=>{this._shouldRemoveFocus(t)&&this._setFocused(!1)}),super.ready()}disconnectedCallback(){super.disconnectedCallback(),this.hasAttribute("focused")&&this._setFocused(!1)}_setFocused(t){this.toggleAttribute("focused",t),this.toggleAttribute("focus-ring",t&&this._keyboardActive)}_shouldSetFocus(t){return!0}_shouldRemoveFocus(t){return!0}})},53557:(t,e,o)=>{o.r(e),o.d(e,{AvatarClass:()=>u,componentName:()=>a});var s=o(88961),i=o(72270),n=o(63200),d=o(25964);const a=(0,d.xE)("avatar");class h extends((0,i.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,d.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,d.EA)(this,this.avatarComponent,{includeAttrs:["display-name","img","abbr"],mapAttrs:{"display-name":"name"}});const t=this.shadowRoot.querySelector(".editableBadge");(0,d.mx)(this,()=>{t.style.display=this.isEditable?"":"none"},{includeAttrs:["editable"]})}get isEditable(){return"true"===this.getAttribute("editable")}}const{host:r,editableBadge:l,avatar:c}={host:{selector:()=>":host"},editableBadge:{selector:"> .editableBadge"},avatar:{selector:"vaadin-avatar"}},u=(0,n.Zz)((0,s.RF)({mappings:{hostWidth:[{...r,property:"width"},{...r,property:"min-width"}],hostHeight:{...r,property:"height"},cursor:[c,r],hostDirection:{...r,property:"direction"},avatarTextColor:{...c,property:"color"},avatarBackgroundColor:{...c,property:"background-color"},editableIconColor:{...l,property:"color"},editableBorderColor:{...l,property:"border-color"},editableBackgroundColor:{...l,property:"background-color"}}}),s.VO,s.tQ)(h);o(4408),o(95260),o(37182),customElements.define(a,u)},65641:(t,e,o)=>{o.d(e,{P:()=>s});class s{constructor(t,e){this.slot=t,this.callback=e,this._storedNodes=[],this._connected=!1,this._scheduled=!1,this._boundSchedule=()=>{this._schedule()},this.connect(),this._schedule()}connect(){this.slot.addEventListener("slotchange",this._boundSchedule),this._connected=!0}disconnect(){this.slot.removeEventListener("slotchange",this._boundSchedule),this._connected=!1}_schedule(){this._scheduled||(this._scheduled=!0,queueMicrotask(()=>{this.flush()}))}flush(){this._connected&&(this._scheduled=!1,this._processNodes())}_processNodes(){const t=this.slot.assignedNodes({flatten:!0});let e=[];const o=[],s=[];t.length&&(e=t.filter(t=>!this._storedNodes.includes(t))),this._storedNodes.length&&this._storedNodes.forEach((e,i)=>{const n=t.indexOf(e);-1===n?o.push(e):n!==i&&s.push(e)}),(e.length||o.length||s.length)&&this.callback({addedNodes:e,movedNodes:s,removedNodes:o}),this._storedNodes=t}}},81488:(t,e,o)=>{o.d(e,{I:()=>i});var s=o(44099);class i extends s.r{constructor(t){super(t,"tooltip"),this.setTarget(t)}initCustomNode(t){t.target=this.target,void 0!==this.ariaTarget&&(t.ariaTarget=this.ariaTarget),void 0!==this.context&&(t.context=this.context),void 0!==this.manual&&(t.manual=this.manual),void 0!==this.opened&&(t.opened=this.opened),void 0!==this.position&&(t._position=this.position),void 0!==this.shouldShow&&(t.shouldShow=this.shouldShow),this.__notifyChange()}teardownNode(){this.__notifyChange()}setAriaTarget(t){this.ariaTarget=t;const e=this.node;e&&(e.ariaTarget=t)}setContext(t){this.context=t;const e=this.node;e&&(e.context=t)}setManual(t){this.manual=t;const e=this.node;e&&(e.manual=t)}setOpened(t){this.opened=t;const e=this.node;e&&(e.opened=t)}setPosition(t){this.position=t;const e=this.node;e&&(e._position=t)}setShouldShow(t){this.shouldShow=t;const e=this.node;e&&(e.shouldShow=t)}setTarget(t){this.target=t;const e=this.node;e&&(e.target=t)}__notifyChange(){this.dispatchEvent(new CustomEvent("tooltip-changed",{detail:{node:this.node}}))}}}}]);
17
+ `;(0,s.q)("sizing-props",n)},44099:(t,e,o)=>{o.d(e,{r:()=>a});var i=o(1508),s=o(65641),n=o(11707);class a extends EventTarget{static generateId(t,e){return`${e||"default"}-${t.localName}-${(0,n.I)()}`}constructor(t,e,o,i={}){super();const{initializer:s,multiple:n,observe:a,useUniqueId:r}=i;this.host=t,this.slotName=e,this.tagName=o,this.observe="boolean"!=typeof a||a,this.multiple="boolean"==typeof n&&n,this.slotInitializer=s,n&&(this.nodes=[]),r&&(this.defaultId=this.constructor.generateId(t,e))}hostConnected(){this.initialized||(this.multiple?this.initMultiple():this.initSingle(),this.observe&&this.observeSlot(),this.initialized=!0)}initSingle(){let t=this.getSlotChild();t?(this.node=t,this.initAddedNode(t)):(t=this.attachDefaultNode(),this.initNode(t))}initMultiple(){const t=this.getSlotChildren();if(0===t.length){const t=this.attachDefaultNode();t&&(this.nodes=[t],this.initNode(t))}else this.nodes=t,t.forEach(t=>{this.initAddedNode(t)})}attachDefaultNode(){const{host:t,slotName:e,tagName:o}=this;let i=this.defaultNode;return!i&&o&&(i=document.createElement(o),i instanceof Element&&(""!==e&&i.setAttribute("slot",e),this.defaultNode=i)),i&&(this.node=i,t.appendChild(i)),i}getSlotChildren(){const{slotName:t}=this;return Array.from(this.host.childNodes).filter(e=>e.nodeType===Node.ELEMENT_NODE&&e.slot===t||e.nodeType===Node.TEXT_NODE&&e.textContent.trim()&&""===t)}getSlotChild(){return this.getSlotChildren()[0]}initNode(t){const{slotInitializer:e}=this;e&&e(t,this.host)}initCustomNode(t){}teardownNode(t){}initAddedNode(t){t!==this.defaultNode&&(this.initCustomNode(t),this.initNode(t))}observeSlot(){const{slotName:t}=this,e=""===t?"slot:not([name])":`slot[name=${t}]`,o=this.host.shadowRoot.querySelector(e);this.__slotObserver=new s.P(o,({addedNodes:t,removedNodes:e})=>{const o=this.multiple?this.nodes:[this.node],s=t.filter(t=>!(0,i.ZA)(t)&&!o.includes(t));e.length&&(this.nodes=o.filter(t=>!e.includes(t)),e.forEach(t=>{this.teardownNode(t)})),s&&s.length>0&&(this.multiple?(this.defaultNode&&this.defaultNode.remove(),this.nodes=[...o,...s].filter(t=>t!==this.defaultNode),s.forEach(t=>{this.initAddedNode(t)})):(this.node&&this.node.remove(),this.node=s[0],this.initAddedNode(this.node)))})}}},53149:(t,e,o)=>{o.d(e,{y:()=>n});var i=o(98741),s=o(30025);const n=(0,i.y)(t=>class extends t{get _keyboardActive(){return(0,s.aJ)()}ready(){this.addEventListener("focusin",t=>{this._shouldSetFocus(t)&&this._setFocused(!0)}),this.addEventListener("focusout",t=>{this._shouldRemoveFocus(t)&&this._setFocused(!1)}),super.ready()}disconnectedCallback(){super.disconnectedCallback(),this.hasAttribute("focused")&&this._setFocused(!1)}_setFocused(t){this.toggleAttribute("focused",t),this.toggleAttribute("focus-ring",t&&this._keyboardActive)}_shouldSetFocus(t){return!0}_shouldRemoveFocus(t){return!0}})},53557:(t,e,o)=>{o.r(e),o.d(e,{AvatarClass:()=>u,componentName:()=>r});var i=o(88961),s=o(72270),n=o(63200),a=o(25964);const r=(0,a.xE)("avatar");class d extends((0,s.qu)({componentName:r,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,a.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,a.EA)(this,this.avatarComponent,{includeAttrs:["display-name","img","abbr"],mapAttrs:{"display-name":"name"}});const t=this.shadowRoot.querySelector(".editableBadge");(0,a.mx)(this,()=>{t.style.display=this.isEditable?"":"none"},{includeAttrs:["editable"]})}get isEditable(){return"true"===this.getAttribute("editable")}}const{host:l,editableBadge:h,avatar:c}={host:{selector:()=>":host"},editableBadge:{selector:"> .editableBadge"},avatar:{selector:"vaadin-avatar"}},u=(0,n.Zz)((0,i.RF)({mappings:{hostWidth:[{...l,property:"width"},{...l,property:"min-width"}],hostHeight:{...l,property:"height"},cursor:[c,l],hostDirection:{...l,property:"direction"},avatarTextColor:{...c,property:"color"},avatarBackgroundColor:{...c,property:"background-color"},editableIconColor:{...h,property:"color"},editableBorderColor:{...h,property:"border-color"},editableBackgroundColor:{...h,property:"background-color"}}}),i.VO,i.tQ)(d);o(87133),o(95260),o(37182),customElements.define(r,u)},65641:(t,e,o)=>{o.d(e,{P:()=>i});class i{constructor(t,e){this.slot=t,this.callback=e,this._storedNodes=[],this._connected=!1,this._scheduled=!1,this._boundSchedule=()=>{this._schedule()},this.connect(),this._schedule()}connect(){this.slot.addEventListener("slotchange",this._boundSchedule),this._connected=!0}disconnect(){this.slot.removeEventListener("slotchange",this._boundSchedule),this._connected=!1}_schedule(){this._scheduled||(this._scheduled=!0,queueMicrotask(()=>{this.flush()}))}flush(){this._connected&&(this._scheduled=!1,this._processNodes())}_processNodes(){const t=this.slot.assignedNodes({flatten:!0});let e=[];const o=[],i=[];t.length&&(e=t.filter(t=>!this._storedNodes.includes(t))),this._storedNodes.length&&this._storedNodes.forEach((e,s)=>{const n=t.indexOf(e);-1===n?o.push(e):n!==s&&i.push(e)}),(e.length||o.length||i.length)&&this.callback({addedNodes:e,movedNodes:i,removedNodes:o}),this._storedNodes=t}}},81488:(t,e,o)=>{o.d(e,{I:()=>s});var i=o(44099);class s extends i.r{constructor(t){super(t,"tooltip"),this.setTarget(t)}initCustomNode(t){t.target=this.target,void 0!==this.ariaTarget&&(t.ariaTarget=this.ariaTarget),void 0!==this.context&&(t.context=this.context),void 0!==this.manual&&(t.manual=this.manual),void 0!==this.opened&&(t.opened=this.opened),void 0!==this.position&&(t._position=this.position),void 0!==this.shouldShow&&(t.shouldShow=this.shouldShow),this.__notifyChange()}teardownNode(){this.__notifyChange()}setAriaTarget(t){this.ariaTarget=t;const e=this.node;e&&(e.ariaTarget=t)}setContext(t){this.context=t;const e=this.node;e&&(e.context=t)}setManual(t){this.manual=t;const e=this.node;e&&(e.manual=t)}setOpened(t){this.opened=t;const e=this.node;e&&(e.opened=t)}setPosition(t){this.position=t;const e=this.node;e&&(e._position=t)}setShouldShow(t){this.shouldShow=t;const e=this.node;e&&(e.shouldShow=t)}setTarget(t){this.target=t;const e=this.node;e&&(e.target=t)}__notifyChange(){this.dispatchEvent(new CustomEvent("tooltip-changed",{detail:{node:this.node}}))}}},87133:(t,e,o)=>{o(17017),o(64511),o(42068),o(9433),o(3241),o(83315),o(88660);var i=o(87550),s=o(36411);const n=i.AH`
18
+ :host {
19
+ --vaadin-user-color-0: #df0b92;
20
+ --vaadin-user-color-1: #650acc;
21
+ --vaadin-user-color-2: #097faa;
22
+ --vaadin-user-color-3: #ad6200;
23
+ --vaadin-user-color-4: #bf16f3;
24
+ --vaadin-user-color-5: #084391;
25
+ --vaadin-user-color-6: #078836;
26
+ }
27
+
28
+ [theme~='dark'] {
29
+ --vaadin-user-color-0: #ff66c7;
30
+ --vaadin-user-color-1: #9d8aff;
31
+ --vaadin-user-color-2: #8aff66;
32
+ --vaadin-user-color-3: #ffbd66;
33
+ --vaadin-user-color-4: #dc6bff;
34
+ --vaadin-user-color-5: #66fffa;
35
+ --vaadin-user-color-6: #e6ff66;
36
+ }
37
+ `;(0,s.q)("user-color-props",n),(0,i.SF)("vaadin-avatar",i.AH`
38
+ :host {
39
+ color: var(--lumo-secondary-text-color);
40
+ background-color: var(--lumo-contrast-10pct);
41
+ border-radius: 50%;
42
+ outline: none;
43
+ cursor: default;
44
+ user-select: none;
45
+ -webkit-tap-highlight-color: transparent;
46
+ -webkit-font-smoothing: antialiased;
47
+ -moz-osx-font-smoothing: grayscale;
48
+ }
49
+
50
+ :host([has-color-index]) {
51
+ color: var(--lumo-base-color);
52
+ }
53
+
54
+ :host([focus-ring]) {
55
+ border-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
56
+ }
57
+
58
+ [part='icon'],
59
+ [part='abbr'] {
60
+ fill: currentColor;
61
+ }
62
+
63
+ [part='abbr'] {
64
+ font-family: var(--lumo-font-family);
65
+ font-size: 2.4375em;
66
+ font-weight: 500;
67
+ }
68
+
69
+ :host([theme~='xlarge']) [part='abbr'] {
70
+ font-size: 2.5em;
71
+ }
72
+
73
+ :host([theme~='large']) [part='abbr'] {
74
+ font-size: 2.375em;
75
+ }
76
+
77
+ :host([theme~='small']) [part='abbr'] {
78
+ font-size: 2.75em;
79
+ }
80
+
81
+ :host([theme~='xsmall']) [part='abbr'] {
82
+ font-size: 3em;
83
+ }
84
+
85
+ :host([theme~='xlarge']) {
86
+ --vaadin-avatar-size: var(--lumo-size-xl);
87
+ }
88
+
89
+ :host([theme~='large']) {
90
+ --vaadin-avatar-size: var(--lumo-size-l);
91
+ }
92
+
93
+ :host([theme~='small']) {
94
+ --vaadin-avatar-size: var(--lumo-size-s);
95
+ }
96
+
97
+ :host([theme~='xsmall']) {
98
+ --vaadin-avatar-size: var(--lumo-size-xs);
99
+ }
100
+ `,{moduleId:"lumo-avatar"});const a=document.createElement("template");a.innerHTML=`\n <style nonce=${window.DESCOPE_NONCE}>\n @font-face {\n font-family: 'vaadin-avatar-icons';\n src: url('`+o.p+"fonts/font-1949233557.woff');\n font-weight: normal;\n font-style: normal;\n }\n </style>\n",document.head.appendChild(a.content);var r=o(13256),d=o(55774),l=o(82901),h=o(72562),c=o(81488),u=o(53149);const p=t=>class extends((0,u.y)(t)){static get properties(){return{img:{type:String,reflectToAttribute:!0,observer:"__imgChanged"},abbr:{type:String,reflectToAttribute:!0},name:{type:String,reflectToAttribute:!0},colorIndex:{type:Number,observer:"__colorIndexChanged"},i18n:{type:Object,value:()=>({anonymous:"anonymous"})},withTooltip:{type:Boolean,value:!1,observer:"__withTooltipChanged"},__imgVisible:Boolean,__iconVisible:Boolean,__abbrVisible:Boolean,__tooltipNode:Object}}static get observers(){return["__imgOrAbbrOrNameChanged(img, abbr, name)","__i18nChanged(i18n)","__tooltipChanged(__tooltipNode, name, abbr)"]}ready(){super.ready(),this.__updateVisibility(),this.hasAttribute("role")||this.setAttribute("role","button"),this.hasAttribute("tabindex")||this.setAttribute("tabindex","0"),this.name||this.abbr||this.__setTooltip()}__colorIndexChanged(t){if(null!=t){const e=`--vaadin-user-color-${t}`;Boolean(getComputedStyle(document.documentElement).getPropertyValue(e))?(this.setAttribute("has-color-index",""),this.style.setProperty("--vaadin-avatar-user-color",`var(${e})`)):(this.removeAttribute("has-color-index"),console.warn(`The CSS property --vaadin-user-color-${t} is not defined`))}else this.removeAttribute("has-color-index")}__imgChanged(){this.__imgFailedToLoad=!1}__imgOrAbbrOrNameChanged(t,e,o){this.__updateVisibility(),e&&e!==this.__generatedAbbr||(this.abbr=o?this.__generatedAbbr=o.split(" ").map(t=>t.charAt(0)).join(""):void 0)}__tooltipChanged(t,e,o){t&&(o&&o!==this.__generatedAbbr?this.__setTooltip(e?`${e} (${o})`:o):this.__setTooltip(e))}__withTooltipChanged(t,e){if(t){const t=document.createElement("vaadin-tooltip");t.setAttribute("slot","tooltip"),this.appendChild(t),this.__tooltipNode=t}else e&&(this.__tooltipNode.target=null,this.__tooltipNode.remove(),this.__tooltipNode=null)}__i18nChanged(t){t&&t.anonymous&&(this.__oldAnonymous&&this.__tooltipNode&&this.__tooltipNode.text===this.__oldAnonymous&&this.__setTooltip(),this.__oldAnonymous=t.anonymous)}__updateVisibility(){this.__imgVisible=!!this.img&&!this.__imgFailedToLoad,this.__abbrVisible=!this.__imgVisible&&!!this.abbr,this.__iconVisible=!this.__imgVisible&&!this.abbr}__setTooltip(t){const e=this.__tooltipNode;e&&(e.text=t||this.i18n.anonymous)}__onImageLoadError(){this.img&&(console.warn(`<vaadin-avatar> The specified image could not be loaded: ${this.img}`),this.__imgFailedToLoad=!0,this.__updateVisibility())}},m=i.AH`
101
+ :host {
102
+ display: inline-block;
103
+ flex: none;
104
+ border-radius: 50%;
105
+ overflow: hidden;
106
+ height: var(--vaadin-avatar-size, 64px);
107
+ width: var(--vaadin-avatar-size, 64px);
108
+ border: var(--vaadin-avatar-outline-width) solid transparent;
109
+ margin: calc(var(--vaadin-avatar-outline-width) * -1);
110
+ background-clip: content-box;
111
+ --vaadin-avatar-outline-width: var(--vaadin-focus-ring-width, 2px);
112
+ }
113
+
114
+ img {
115
+ height: 100%;
116
+ width: 100%;
117
+ object-fit: cover;
118
+ }
119
+
120
+ [part='icon'] {
121
+ font-size: 5.6em;
122
+ }
123
+
124
+ [part='abbr'] {
125
+ font-size: 2.2em;
126
+ }
127
+
128
+ [part='icon'] > text {
129
+ font-family: 'vaadin-avatar-icons';
130
+ }
131
+
132
+ :host([hidden]) {
133
+ display: none !important;
134
+ }
135
+
136
+ svg[hidden] {
137
+ display: none !important;
138
+ }
139
+
140
+ :host([has-color-index]) {
141
+ position: relative;
142
+ background-color: var(--vaadin-avatar-user-color);
143
+ }
144
+
145
+ :host([has-color-index])::before {
146
+ position: absolute;
147
+ content: '';
148
+ inset: 0;
149
+ border-radius: inherit;
150
+ box-shadow: inset 0 0 0 2px var(--vaadin-avatar-user-color);
151
+ }
152
+ `;(0,i.SF)("vaadin-avatar",m,{moduleId:"vaadin-avatar-styles"});class b extends(p((0,h.q)((0,i.cp)((0,d.w)(r.Pu))))){static get template(){return r.qy`
153
+ <img hidden$="[[!__imgVisible]]" src$="[[img]]" aria-hidden="true" on-error="__onImageLoadError" />
154
+ <svg
155
+ part="icon"
156
+ hidden$="[[!__iconVisible]]"
157
+ id="avatar-icon"
158
+ viewBox="-50 -50 100 100"
159
+ preserveAspectRatio="xMidYMid meet"
160
+ aria-hidden="true"
161
+ >
162
+ <text dy=".35em" text-anchor="middle">&#xea01;</text>
163
+ </svg>
164
+ <svg
165
+ part="abbr"
166
+ hidden$="[[!__abbrVisible]]"
167
+ id="avatar-abbr"
168
+ viewBox="-50 -50 100 100"
169
+ preserveAspectRatio="xMidYMid meet"
170
+ aria-hidden="true"
171
+ >
172
+ <text dy=".35em" text-anchor="middle">[[abbr]]</text>
173
+ </svg>
174
+
175
+ <slot name="tooltip"></slot>
176
+ `}static get is(){return"vaadin-avatar"}ready(){super.ready(),this._tooltipController=new c.I(this),this.addController(this._tooltipController)}}(0,l.X)(b)}}]);
18
177
  //# sourceMappingURL=descope-avatar.js.map
@@ -4,6 +4,12 @@
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
6
 
7
+ /**
8
+ * @license
9
+ * Copyright (c) 2020 - 2023 Vaadin Ltd.
10
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
11
+ */
12
+
7
13
  /**
8
14
  * @license
9
15
  * Copyright (c) 2021 - 2023 Vaadin Ltd.