@descope/web-components-ui 1.100.0 → 1.102.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/cjs/index.cjs.js +1913 -1637
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +1864 -1587
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/1995.js +22 -7
  6. package/dist/umd/1995.js.LICENSE.txt +6 -0
  7. package/dist/umd/1995.js.map +1 -1
  8. package/dist/umd/6063.js +18 -0
  9. package/dist/umd/6063.js.map +1 -0
  10. package/dist/umd/6818.js +3 -0
  11. package/dist/umd/6818.js.map +1 -0
  12. package/dist/umd/{189.js → 8248.js} +4 -4
  13. package/dist/umd/8248.js.map +1 -0
  14. package/dist/umd/8961.js +1 -1
  15. package/dist/umd/8961.js.map +1 -1
  16. package/dist/umd/8968.js +432 -0
  17. package/dist/umd/8968.js.map +1 -0
  18. package/dist/umd/8983.js +324 -7
  19. package/dist/umd/8983.js.map +1 -1
  20. package/dist/umd/{384.js → 9117.js} +9 -121
  21. package/dist/umd/9117.js.map +1 -0
  22. package/dist/umd/9275.js +18 -0
  23. package/dist/umd/9275.js.LICENSE.txt +23 -0
  24. package/dist/umd/9275.js.map +1 -0
  25. package/dist/umd/DescopeDev.js +1 -1
  26. package/dist/umd/DescopeDev.js.map +1 -1
  27. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js +1 -1
  28. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js.map +1 -1
  29. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js +1 -1
  30. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js.map +1 -1
  31. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js +338 -1
  32. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js.LICENSE.txt +5 -0
  33. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js.map +1 -1
  34. package/dist/umd/descope-apps-list-index-js.js +1 -1
  35. package/dist/umd/descope-apps-list-index-js.js.map +1 -1
  36. package/dist/umd/descope-button.js +4 -4
  37. package/dist/umd/descope-button.js.LICENSE.txt +0 -6
  38. package/dist/umd/descope-button.js.map +1 -1
  39. package/dist/umd/descope-collapsible-container.js +1 -1
  40. package/dist/umd/descope-collapsible-container.js.map +1 -1
  41. package/dist/umd/descope-divider-index-js.js +1 -1
  42. package/dist/umd/descope-divider-index-js.js.map +1 -1
  43. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js +321 -4
  44. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js.LICENSE.txt +6 -0
  45. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js.map +1 -1
  46. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js +322 -5
  47. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js.map +1 -1
  48. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js +321 -4
  49. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js.LICENSE.txt +6 -0
  50. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js.map +1 -1
  51. package/dist/umd/descope-hybrid-field-index-js.js +1 -1
  52. package/dist/umd/descope-hybrid-field-index-js.js.map +1 -1
  53. package/dist/umd/descope-link-index-js.js +1 -1
  54. package/dist/umd/descope-link-index-js.js.map +1 -1
  55. package/dist/umd/descope-recovery-codes.js +2 -0
  56. package/dist/umd/descope-recovery-codes.js.map +1 -0
  57. package/dist/umd/descope-security-questions-verify-index-js.js +1 -1
  58. package/dist/umd/descope-security-questions-verify-index-js.js.map +1 -1
  59. package/dist/umd/descope-text.js +1 -1
  60. package/dist/umd/descope-text.js.map +1 -1
  61. package/dist/umd/descope-timer-button.js +338 -1
  62. package/dist/umd/descope-timer-button.js.LICENSE.txt +5 -0
  63. package/dist/umd/descope-timer-button.js.map +1 -1
  64. package/dist/umd/descope-upload-file-index-js.js +338 -1
  65. package/dist/umd/descope-upload-file-index-js.js.LICENSE.txt +5 -0
  66. package/dist/umd/descope-upload-file-index-js.js.map +1 -1
  67. package/dist/umd/descope-user-attribute-index-js.js +338 -1
  68. package/dist/umd/descope-user-attribute-index-js.js.map +1 -1
  69. package/dist/umd/descope-user-auth-method-index-js.js +338 -1
  70. package/dist/umd/descope-user-auth-method-index-js.js.map +1 -1
  71. package/dist/umd/index.js +1 -1
  72. package/dist/umd/index.js.map +1 -1
  73. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
  74. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js.map +1 -1
  75. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js +1 -1
  76. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js.map +1 -1
  77. package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js +1 -1
  78. package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js.map +1 -1
  79. package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +1 -1
  80. package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js.map +1 -1
  81. package/package.json +15 -14
  82. package/src/components/phone-fields/descope-phone-input-box-field/descope-phone-input-box-internal/PhoneFieldInternalInputBox.js +1 -1
  83. package/src/theme/components/index.js +2 -0
  84. package/dist/umd/189.js.map +0 -1
  85. package/dist/umd/2894.js +0 -339
  86. package/dist/umd/2894.js.map +0 -1
  87. package/dist/umd/3792.js +0 -339
  88. package/dist/umd/3792.js.map +0 -1
  89. package/dist/umd/384.js.map +0 -1
  90. package/dist/umd/513.js +0 -339
  91. package/dist/umd/513.js.map +0 -1
  92. package/dist/umd/6227.js +0 -320
  93. package/dist/umd/6227.js.map +0 -1
  94. package/dist/umd/6649.js +0 -339
  95. package/dist/umd/6649.js.LICENSE.txt +0 -11
  96. package/dist/umd/6649.js.map +0 -1
  97. package/dist/umd/9030.js +0 -339
  98. package/dist/umd/9030.js.LICENSE.txt +0 -11
  99. package/dist/umd/9030.js.map +0 -1
  100. package/dist/umd/9380.js +0 -130
  101. package/dist/umd/9380.js.map +0 -1
  102. /package/dist/umd/{189.js.LICENSE.txt → 6063.js.LICENSE.txt} +0 -0
  103. /package/dist/umd/{6227.js.LICENSE.txt → 6818.js.LICENSE.txt} +0 -0
  104. /package/dist/umd/{9380.js.LICENSE.txt → 8248.js.LICENSE.txt} +0 -0
  105. /package/dist/umd/{2894.js.LICENSE.txt → 8968.js.LICENSE.txt} +0 -0
  106. /package/dist/umd/{3792.js.LICENSE.txt → 9117.js.LICENSE.txt} +0 -0
  107. /package/dist/umd/{384.js.LICENSE.txt → descope-user-attribute-index-js.js.LICENSE.txt} +0 -0
  108. /package/dist/umd/{513.js.LICENSE.txt → descope-user-auth-method-index-js.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"384.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/browser-utils.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/overlay/theme/lumo/vaadin-overlay-styles.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/templates.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/a11y-base/src/focus-utils.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/controller-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/dialog/theme/lumo/vaadin-dialog-styles.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/dialog/src/vaadin-dialog-overlay-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/dialog/src/vaadin-dialog-styles.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/dialog/src/vaadin-dialog-overlay.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/dialog/src/vaadin-dialog-base-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/dialog/src/vaadin-dialog-utils.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/dialog/src/vaadin-dialog-draggable-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/dialog/src/vaadin-dialog-renderer-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/dialog/src/vaadin-dialog-resizable-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/dialog/src/vaadin-dialog.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/vaadin-lumo-styles/typography.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/overlay/src/vaadin-overlay.js"],"sourcesContent":["/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\nconst testUserAgent = (regexp) => regexp.test(navigator.userAgent);\n\nconst testPlatform = (regexp) => regexp.test(navigator.platform);\n\nconst testVendor = (regexp) => regexp.test(navigator.vendor);\n\nexport const isAndroid = testUserAgent(/Android/u);\n\nexport const isChrome = testUserAgent(/Chrome/u) && testVendor(/Google Inc/u);\n\nexport const isFirefox = testUserAgent(/Firefox/u);\n\n// IPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\nexport const isIPad = testPlatform(/^iPad/u) || (testPlatform(/^Mac/u) && navigator.maxTouchPoints > 1);\n\nexport const isIPhone = testPlatform(/^iPhone/u);\n\nexport const isIOS = isIPhone || isIPad;\n\nexport const isSafari = testUserAgent(/^((?!chrome|android).)*safari/iu);\n\nexport const isTouch = (() => {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n})();\n","import { overlay } from '@vaadin/vaadin-lumo-styles/mixins/overlay.js';\nimport { registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nregisterStyles('vaadin-overlay', overlay, { moduleId: 'lumo-vaadin-overlay' });\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\n/**\n * Passes the component to the template renderer callback if the template renderer is imported.\n * Otherwise, if there is a template, it warns that the template renderer needs to be imported.\n *\n * @param {HTMLElement} component\n */\nexport function processTemplates(component) {\n if (window.Vaadin && window.Vaadin.templateRendererCallback) {\n window.Vaadin.templateRendererCallback(component);\n return;\n }\n\n if (component.querySelector('template')) {\n console.warn(\n `WARNING: <template> inside <${component.localName}> is no longer supported. Import @vaadin/polymer-legacy-adapter/template-renderer.js to enable compatibility.`,\n );\n }\n}\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n// We consider the keyboard to be active if the window has received a keydown\n// event since the last mousedown event.\nlet keyboardActive = false;\n\n// Listen for top-level keydown and mousedown events.\n// Use capture phase so we detect events even if they're handled.\nwindow.addEventListener(\n 'keydown',\n () => {\n keyboardActive = true;\n },\n { capture: true },\n);\n\nwindow.addEventListener(\n 'mousedown',\n () => {\n keyboardActive = false;\n },\n { capture: true },\n);\n\n/**\n * Returns the actually focused element by traversing shadow\n * trees recursively to ensure it's the leaf element.\n *\n * @return {Element}\n */\nexport function getDeepActiveElement() {\n let host = document.activeElement || document.body;\n while (host.shadowRoot && host.shadowRoot.activeElement) {\n host = host.shadowRoot.activeElement;\n }\n return host;\n}\n\n/**\n * Returns true if the window has received a keydown\n * event since the last mousedown event.\n *\n * @return {boolean}\n */\nexport function isKeyboardActive() {\n return keyboardActive;\n}\n\n/**\n * Returns true if the element is hidden directly with `display: none` or `visibility: hidden`,\n * false otherwise.\n *\n * The method doesn't traverse the element's ancestors, it only checks for the CSS properties\n * set directly to or inherited by the element.\n *\n * @param {HTMLElement} element\n * @return {boolean}\n */\nfunction isElementHiddenDirectly(element) {\n // Check inline style first to save a re-flow.\n const style = element.style;\n if (style.visibility === 'hidden' || style.display === 'none') {\n return true;\n }\n\n const computedStyle = window.getComputedStyle(element);\n if (computedStyle.visibility === 'hidden' || computedStyle.display === 'none') {\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns if element `a` has lower tab order compared to element `b`\n * (both elements are assumed to be focusable and tabbable).\n * Elements with tabindex = 0 have lower tab order compared to elements\n * with tabindex > 0.\n * If both have same tabindex, it returns false.\n *\n * @param {HTMLElement} a\n * @param {HTMLElement} b\n * @return {boolean}\n */\nfunction hasLowerTabOrder(a, b) {\n // Normalize tabIndexes\n // e.g. in Firefox `<div contenteditable>` has `tabIndex = -1`\n const ati = Math.max(a.tabIndex, 0);\n const bti = Math.max(b.tabIndex, 0);\n return ati === 0 || bti === 0 ? bti > ati : ati > bti;\n}\n\n/**\n * Merge sort iterator, merges the two arrays into one, sorted by tabindex.\n *\n * @param {HTMLElement[]} left\n * @param {HTMLElement[]} right\n * @return {HTMLElement[]}\n */\nfunction mergeSortByTabIndex(left, right) {\n const result = [];\n while (left.length > 0 && right.length > 0) {\n if (hasLowerTabOrder(left[0], right[0])) {\n result.push(right.shift());\n } else {\n result.push(left.shift());\n }\n }\n\n return result.concat(left, right);\n}\n\n/**\n * Sorts an array of elements by tabindex. Returns a new array.\n *\n * @param {HTMLElement[]} elements\n * @return {HTMLElement[]}\n */\nfunction sortElementsByTabIndex(elements) {\n // Implement a merge sort as Array.prototype.sort does a non-stable sort\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort\n const len = elements.length;\n if (len < 2) {\n return elements;\n }\n const pivot = Math.ceil(len / 2);\n const left = sortElementsByTabIndex(elements.slice(0, pivot));\n const right = sortElementsByTabIndex(elements.slice(pivot));\n\n return mergeSortByTabIndex(left, right);\n}\n\n/**\n * Returns true if the element is hidden, false otherwise.\n *\n * An element is treated as hidden when any of the following conditions are met:\n * - the element itself or one of its ancestors has `display: none`.\n * - the element has or inherits `visibility: hidden`.\n *\n * @param {HTMLElement} element\n * @return {boolean}\n */\nexport function isElementHidden(element) {\n // `offsetParent` is `null` when the element itself\n // or one of its ancestors is hidden with `display: none`.\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent\n // However `offsetParent` is also null when the element is using fixed\n // positioning, so additionally check if the element takes up layout space.\n if (element.offsetParent === null && element.clientWidth === 0 && element.clientHeight === 0) {\n return true;\n }\n\n return isElementHiddenDirectly(element);\n}\n\n/**\n * Returns true if the element is focusable, otherwise false.\n *\n * The list of focusable elements is taken from http://stackoverflow.com/a/1600194/4228703.\n * However, there isn't a definite list, it's up to the browser.\n * The only standard we have is DOM Level 2 HTML https://www.w3.org/TR/DOM-Level-2-HTML/html.html,\n * according to which the only elements that have a `focus()` method are:\n * - HTMLInputElement\n * - HTMLSelectElement\n * - HTMLTextAreaElement\n * - HTMLAnchorElement\n *\n * This notably omits HTMLButtonElement and HTMLAreaElement.\n * Referring to these tests with tabbables in different browsers\n * http://allyjs.io/data-tables/focusable.html\n *\n * @param {HTMLElement} element\n * @return {boolean}\n */\nexport function isElementFocusable(element) {\n // The element cannot be focused if its `tabindex` attribute is set to `-1`.\n if (element.matches('[tabindex=\"-1\"]')) {\n return false;\n }\n\n // Elements that cannot be focused if they have a `disabled` attribute.\n if (element.matches('input, select, textarea, button, object')) {\n return element.matches(':not([disabled])');\n }\n\n // Elements that can be focused even if they have a `disabled` attribute.\n return element.matches('a[href], area[href], iframe, [tabindex], [contentEditable]');\n}\n\n/**\n * Returns true if the element is focused, false otherwise.\n *\n * @param {HTMLElement} element\n * @return {boolean}\n */\nexport function isElementFocused(element) {\n return element.getRootNode().activeElement === element;\n}\n\n/**\n * Returns the normalized element tabindex. If not focusable, returns -1.\n * It checks for the attribute \"tabindex\" instead of the element property\n * `tabIndex` since browsers assign different values to it.\n * e.g. in Firefox `<div contenteditable>` has `tabIndex = -1`\n *\n * @param {HTMLElement} element\n * @return {number}\n */\nfunction normalizeTabIndex(element) {\n if (!isElementFocusable(element)) {\n return -1;\n }\n\n const tabIndex = element.getAttribute('tabindex') || 0;\n return Number(tabIndex);\n}\n\n/**\n * Searches for nodes that are tabbable and adds them to the `result` array.\n * Returns if the `result` array needs to be sorted by tabindex.\n *\n * @param {Node} node The starting point for the search; added to `result` if tabbable.\n * @param {HTMLElement[]} result\n * @return {boolean}\n * @private\n */\nfunction collectFocusableNodes(node, result) {\n if (node.nodeType !== Node.ELEMENT_NODE || isElementHiddenDirectly(node)) {\n // Don't traverse children if the node is not an HTML element or not visible.\n return false;\n }\n\n const element = /** @type {HTMLElement} */ (node);\n const tabIndex = normalizeTabIndex(element);\n let needsSort = tabIndex > 0;\n if (tabIndex >= 0) {\n result.push(element);\n }\n\n let children = [];\n if (element.localName === 'slot') {\n children = element.assignedNodes({ flatten: true });\n } else {\n // Use shadow root if possible, will check for distributed nodes.\n children = (element.shadowRoot || element).children;\n }\n [...children].forEach((child) => {\n // Ensure method is always invoked to collect focusable children.\n needsSort = collectFocusableNodes(child, result) || needsSort;\n });\n return needsSort;\n}\n\n/**\n * Returns a tab-ordered array of focusable elements for a root element.\n * The resulting array will include the root element if it is focusable.\n *\n * The method traverses nodes in shadow DOM trees too if any.\n *\n * @param {HTMLElement} element\n * @return {HTMLElement[]}\n */\nexport function getFocusableElements(element) {\n const focusableElements = [];\n const needsSortByTabIndex = collectFocusableNodes(element, focusableElements);\n // If there is at least one element with tabindex > 0,\n // we need to sort the final array by tabindex.\n if (needsSortByTabIndex) {\n return sortElementsByTabIndex(focusableElements);\n }\n return focusableElements;\n}\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\n\n/**\n * @typedef ReactiveController\n * @type {import('lit').ReactiveController}\n */\n\n/**\n * A mixin for connecting controllers to the element.\n *\n * @polymerMixin\n */\nexport const ControllerMixin = dedupingMixin((superClass) => {\n // If the superclass extends from LitElement,\n // use its own controllers implementation.\n if (typeof superClass.prototype.addController === 'function') {\n return superClass;\n }\n\n return class ControllerMixinClass extends superClass {\n constructor() {\n super();\n\n /**\n * @type {Set<ReactiveController>}\n */\n this.__controllers = new Set();\n }\n\n /** @protected */\n connectedCallback() {\n super.connectedCallback();\n\n this.__controllers.forEach((c) => {\n if (c.hostConnected) {\n c.hostConnected();\n }\n });\n }\n\n /** @protected */\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.__controllers.forEach((c) => {\n if (c.hostDisconnected) {\n c.hostDisconnected();\n }\n });\n }\n\n /**\n * Registers a controller to participate in the element update cycle.\n *\n * @param {ReactiveController} controller\n * @protected\n */\n addController(controller) {\n this.__controllers.add(controller);\n // Call hostConnected if a controller is added after the element is attached.\n if (this.$ !== undefined && this.isConnected && controller.hostConnected) {\n controller.hostConnected();\n }\n }\n\n /**\n * Removes a controller from the element.\n *\n * @param {ReactiveController} controller\n * @protected\n */\n removeController(controller) {\n this.__controllers.delete(controller);\n }\n };\n});\n","import '@vaadin/vaadin-lumo-styles/spacing.js';\nimport { overlay } from '@vaadin/vaadin-lumo-styles/mixins/overlay.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nconst dialogOverlay = css`\n /* Optical centering */\n :host::before,\n :host::after {\n content: '';\n flex-basis: 0;\n flex-grow: 1;\n }\n\n :host::after {\n flex-grow: 1.1;\n }\n\n [part='overlay'] {\n border-radius: var(--lumo-border-radius-l);\n box-shadow: 0 0 0 1px var(--lumo-shade-5pct), var(--lumo-box-shadow-xl);\n background-image: none;\n outline: none;\n -webkit-tap-highlight-color: transparent;\n }\n\n [part='content'] {\n padding: var(--lumo-space-l);\n }\n\n :host(:is([has-header], [has-title])) [part='header'] + [part='content'] {\n padding-top: 0;\n }\n\n [part='header'],\n [part='header-content'],\n [part='footer'] {\n gap: var(--lumo-space-xs) var(--lumo-space-s);\n line-height: var(--lumo-line-height-s);\n }\n\n [part='header'] {\n padding: var(--lumo-space-m);\n background-color: var(--lumo-base-color);\n border-radius: var(--lumo-border-radius-l) var(--lumo-border-radius-l) 0 0; /* Needed for Safari */\n }\n\n [part='footer'] {\n padding: var(--lumo-space-s) var(--lumo-space-m);\n background-color: var(--lumo-contrast-5pct);\n border-radius: 0 0 var(--lumo-border-radius-l) var(--lumo-border-radius-l); /* Needed for Safari */\n }\n\n [part='title'] {\n font-size: var(--lumo-font-size-xl);\n font-weight: 600;\n color: var(--lumo-header-text-color);\n margin-inline-start: calc(var(--lumo-space-l) - var(--lumo-space-m));\n }\n\n /* No padding */\n :host([theme~='no-padding']) [part='content'] {\n padding: 0 !important;\n }\n\n @media (min-height: 320px) {\n :host([overflow~='top']) [part='header'] {\n box-shadow: 0 1px 0 0 var(--lumo-contrast-10pct);\n }\n }\n\n /* Animations */\n\n :host([opening]),\n :host([closing]) {\n animation: 0.25s lumo-overlay-dummy-animation;\n }\n\n :host([opening]) [part='overlay'] {\n animation: 0.12s 0.05s vaadin-dialog-enter cubic-bezier(0.215, 0.61, 0.355, 1) both;\n }\n\n @keyframes vaadin-dialog-enter {\n 0% {\n opacity: 0;\n transform: scale(0.95);\n }\n }\n\n :host([closing]) [part='overlay'] {\n animation: 0.1s 0.03s vaadin-dialog-exit cubic-bezier(0.55, 0.055, 0.675, 0.19) both;\n }\n\n :host([closing]) [part='backdrop'] {\n animation-delay: 0.05s;\n }\n\n @keyframes vaadin-dialog-exit {\n 100% {\n opacity: 0;\n transform: scale(1.02);\n }\n }\n`;\n\nregisterStyles('vaadin-dialog-overlay', [overlay, dialogOverlay], { moduleId: 'lumo-dialog' });\n\nexport { dialogOverlay };\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 { OverlayMixin } from '@vaadin/overlay/src/vaadin-overlay-mixin.js';\n\n/**\n * @polymerMixin\n * @mixes OverlayMixin\n */\nexport const DialogOverlayMixin = (superClass) =>\n class DialogOverlayMixin extends OverlayMixin(superClass) {\n static get properties() {\n return {\n /**\n * String used for rendering a dialog title.\n */\n headerTitle: {\n type: String,\n },\n\n /**\n * Custom function for rendering the dialog header.\n */\n headerRenderer: {\n type: Object,\n },\n\n /**\n * Custom function for rendering the dialog footer.\n */\n footerRenderer: {\n type: Object,\n },\n };\n }\n\n static get observers() {\n return [\n '_headerFooterRendererChange(headerRenderer, footerRenderer, opened)',\n '_headerTitleChanged(headerTitle, opened)',\n ];\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n // Update overflow attribute on resize\n this.__resizeObserver = new ResizeObserver(() => {\n this.__updateOverflow();\n });\n this.__resizeObserver.observe(this.$.resizerContainer);\n\n // Update overflow attribute on scroll\n this.$.content.addEventListener('scroll', () => {\n this.__updateOverflow();\n });\n }\n\n /** @private */\n __createContainer(slot) {\n const container = document.createElement('div');\n container.setAttribute('slot', slot);\n return container;\n }\n\n /** @private */\n __clearContainer(container) {\n container.innerHTML = '';\n // Whenever a Lit-based renderer is used, it assigns a Lit part to the node it was rendered into.\n // When clearing the rendered content, this part needs to be manually disposed of.\n // Otherwise, using a Lit-based renderer on the same node will throw an exception or render nothing afterward.\n delete container._$litPart$;\n }\n\n /** @private */\n __initContainer(container, slot) {\n if (container) {\n // Reset existing container in case if a new renderer is set.\n this.__clearContainer(container);\n } else {\n // Create the container, but wait to append it until requestContentUpdate is called.\n container = this.__createContainer(slot);\n }\n return container;\n }\n\n /** @private */\n _headerFooterRendererChange(headerRenderer, footerRenderer, opened) {\n const headerRendererChanged = this.__oldHeaderRenderer !== headerRenderer;\n this.__oldHeaderRenderer = headerRenderer;\n\n const footerRendererChanged = this.__oldFooterRenderer !== footerRenderer;\n this.__oldFooterRenderer = footerRenderer;\n\n const openedChanged = this._oldOpenedFooterHeader !== opened;\n this._oldOpenedFooterHeader = opened;\n\n // Set attributes here to update styles before detecting content overflow\n this.toggleAttribute('has-header', !!headerRenderer);\n this.toggleAttribute('has-footer', !!footerRenderer);\n\n if (headerRendererChanged) {\n if (headerRenderer) {\n this.headerContainer = this.__initContainer(this.headerContainer, 'header-content');\n } else if (this.headerContainer) {\n this.headerContainer.remove();\n this.headerContainer = null;\n this.__updateOverflow();\n }\n }\n\n if (footerRendererChanged) {\n if (footerRenderer) {\n this.footerContainer = this.__initContainer(this.footerContainer, 'footer');\n } else if (this.footerContainer) {\n this.footerContainer.remove();\n this.footerContainer = null;\n this.__updateOverflow();\n }\n }\n\n if (\n (headerRenderer && (headerRendererChanged || openedChanged)) ||\n (footerRenderer && (footerRendererChanged || openedChanged))\n ) {\n if (opened) {\n this.requestContentUpdate();\n }\n }\n }\n\n /** @private */\n _headerTitleChanged(headerTitle, opened) {\n this.toggleAttribute('has-title', !!headerTitle);\n\n if (opened && (headerTitle || this._oldHeaderTitle)) {\n this.requestContentUpdate();\n }\n this._oldHeaderTitle = headerTitle;\n }\n\n /** @private */\n _headerTitleRenderer() {\n if (this.headerTitle) {\n if (!this.headerTitleElement) {\n this.headerTitleElement = document.createElement('h2');\n this.headerTitleElement.setAttribute('slot', 'title');\n this.headerTitleElement.classList.add('draggable');\n }\n this.appendChild(this.headerTitleElement);\n this.headerTitleElement.textContent = this.headerTitle;\n } else if (this.headerTitleElement) {\n this.headerTitleElement.remove();\n this.headerTitleElement = null;\n }\n }\n\n /**\n * @override\n */\n requestContentUpdate() {\n super.requestContentUpdate();\n\n if (this.headerContainer) {\n // If a new renderer has been set, make sure to reattach the container\n if (!this.headerContainer.parentElement) {\n this.appendChild(this.headerContainer);\n }\n\n if (this.headerRenderer) {\n // Only call header renderer after the container has been initialized\n this.headerRenderer.call(this.owner, this.headerContainer, this.owner);\n }\n }\n\n if (this.footerContainer) {\n // If a new renderer has been set, make sure to reattach the container\n if (!this.footerContainer.parentElement) {\n this.appendChild(this.footerContainer);\n }\n\n if (this.footerRenderer) {\n // Only call header renderer after the container has been initialized\n this.footerRenderer.call(this.owner, this.footerContainer, this.owner);\n }\n }\n\n this._headerTitleRenderer();\n\n this.__updateOverflow();\n }\n\n /**\n * Updates the coordinates of the overlay.\n * @param {!DialogOverlayBoundsParam} bounds\n */\n setBounds(bounds) {\n const overlay = this.$.overlay;\n const parsedBounds = { ...bounds };\n\n if (overlay.style.position !== 'absolute') {\n overlay.style.position = 'absolute';\n this.setAttribute('has-bounds-set', '');\n }\n\n Object.keys(parsedBounds).forEach((arg) => {\n if (typeof parsedBounds[arg] === 'number') {\n parsedBounds[arg] = `${parsedBounds[arg]}px`;\n }\n });\n\n Object.assign(overlay.style, parsedBounds);\n }\n\n /**\n * Retrieves the coordinates of the overlay.\n * @return {!DialogOverlayBounds}\n */\n getBounds() {\n const overlayBounds = this.$.overlay.getBoundingClientRect();\n const containerBounds = this.getBoundingClientRect();\n const top = overlayBounds.top - containerBounds.top;\n const left = overlayBounds.left - containerBounds.left;\n const width = overlayBounds.width;\n const height = overlayBounds.height;\n return { top, left, width, height };\n }\n\n /** @private */\n __updateOverflow() {\n let overflow = '';\n\n // Only set \"overflow\" attribute if the dialog has a header, title or footer.\n // Check for state attributes as extending components might not use renderers.\n if (this.hasAttribute('has-header') || this.hasAttribute('has-footer') || this.headerTitle) {\n const content = this.$.content;\n\n if (content.scrollTop > 0) {\n overflow += ' top';\n }\n\n if (content.scrollTop < content.scrollHeight - content.clientHeight) {\n overflow += ' bottom';\n }\n }\n\n const value = overflow.trim();\n if (value.length > 0 && this.getAttribute('overflow') !== value) {\n this.setAttribute('overflow', value);\n } else if (value.length === 0 && this.hasAttribute('overflow')) {\n this.removeAttribute('overflow');\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { css } from 'lit';\n\nexport const dialogOverlay = css`\n [part='header'],\n [part='header-content'],\n [part='footer'] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n flex: none;\n pointer-events: none;\n z-index: 1;\n }\n\n [part='header'] {\n flex-wrap: nowrap;\n }\n\n ::slotted([slot='header-content']),\n ::slotted([slot='title']),\n ::slotted([slot='footer']) {\n display: contents;\n pointer-events: auto;\n }\n\n ::slotted([slot='title']) {\n font: inherit !important;\n overflow-wrap: anywhere;\n }\n\n [part='header-content'] {\n flex: 1;\n }\n\n :host([has-title]) [part='header-content'],\n [part='footer'] {\n justify-content: flex-end;\n }\n\n :host(:not([has-title]):not([has-header])) [part='header'],\n :host(:not([has-header])) [part='header-content'],\n :host(:not([has-title])) [part='title'],\n :host(:not([has-footer])) [part='footer'] {\n display: none !important;\n }\n\n :host(:is([has-title], [has-header], [has-footer])) [part='content'] {\n height: auto;\n }\n\n @media (min-height: 320px) {\n :host(:is([has-title], [has-header], [has-footer])) .resizer-container {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n :host(:is([has-title], [has-header], [has-footer])) [part='content'] {\n flex: 1;\n overflow: auto;\n }\n }\n\n /*\n NOTE(platosha): Make some min-width to prevent collapsing of the content\n taking the parent width, e. g., <vaadin-grid> and such.\n */\n [part='content'] {\n min-width: 12em; /* matches the default <vaadin-text-field> width */\n }\n\n :host([has-bounds-set]) [part='overlay'] {\n max-width: none;\n }\n\n @media (forced-colors: active) {\n [part='overlay'] {\n outline: 3px solid !important;\n }\n }\n`;\n\nexport const resizableOverlay = css`\n [part='overlay'] {\n position: relative;\n overflow: visible;\n max-height: 100%;\n display: flex;\n }\n\n [part='content'] {\n box-sizing: border-box;\n height: 100%;\n }\n\n .resizer-container {\n overflow: auto;\n flex-grow: 1;\n border-radius: inherit; /* prevent child elements being drawn outside part=overlay */\n }\n\n [part='overlay'][style] .resizer-container {\n min-height: 100%;\n width: 100%;\n }\n\n :host(:not([resizable])) .resizer {\n display: none;\n }\n\n :host([resizable]) [part='title'] {\n cursor: move;\n -webkit-user-select: none;\n user-select: none;\n }\n\n .resizer {\n position: absolute;\n height: 16px;\n width: 16px;\n }\n\n .resizer.edge {\n height: 8px;\n width: 8px;\n inset: -4px;\n }\n\n .resizer.edge.n {\n width: auto;\n bottom: auto;\n cursor: ns-resize;\n }\n\n .resizer.ne {\n top: -4px;\n right: -4px;\n cursor: nesw-resize;\n }\n\n .resizer.edge.e {\n height: auto;\n left: auto;\n cursor: ew-resize;\n }\n\n .resizer.se {\n bottom: -4px;\n right: -4px;\n cursor: nwse-resize;\n }\n\n .resizer.edge.s {\n width: auto;\n top: auto;\n cursor: ns-resize;\n }\n\n .resizer.sw {\n bottom: -4px;\n left: -4px;\n cursor: nesw-resize;\n }\n\n .resizer.edge.w {\n height: auto;\n right: auto;\n cursor: ew-resize;\n }\n\n .resizer.nw {\n top: -4px;\n left: -4px;\n cursor: nwse-resize;\n }\n`;\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { html, PolymerElement } from '@polymer/polymer/polymer-element.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';\nimport { overlayStyles } from '@vaadin/overlay/src/vaadin-overlay-styles.js';\nimport { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { DialogOverlayMixin } from './vaadin-dialog-overlay-mixin.js';\nimport { dialogOverlay, resizableOverlay } from './vaadin-dialog-styles.js';\n\nregisterStyles('vaadin-dialog-overlay', [overlayStyles, dialogOverlay, resizableOverlay], {\n moduleId: 'vaadin-dialog-overlay-styles',\n});\n\n/**\n * An element used internally by `<vaadin-dialog>`. Not intended to be used separately.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes DialogOverlayMixin\n * @mixes DirMixin\n * @mixes ThemableMixin\n * @private\n */\nexport class DialogOverlay extends DialogOverlayMixin(DirMixin(ThemableMixin(PolymerElement))) {\n static get is() {\n return 'vaadin-dialog-overlay';\n }\n\n static get template() {\n return html`\n <div id=\"backdrop\" part=\"backdrop\" hidden$=\"[[!withBackdrop]]\"></div>\n <div part=\"overlay\" id=\"overlay\" tabindex=\"0\">\n <section id=\"resizerContainer\" class=\"resizer-container\">\n <header part=\"header\">\n <div part=\"title\"><slot name=\"title\"></slot></div>\n <div part=\"header-content\"><slot name=\"header-content\"></slot></div>\n </header>\n <div part=\"content\" id=\"content\"><slot></slot></div>\n <footer part=\"footer\"><slot name=\"footer\"></slot></footer>\n </section>\n </div>\n `;\n }\n}\n\ndefineCustomElement(DialogOverlay);\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 */\n\n/**\n * @polymerMixin\n */\nexport const DialogBaseMixin = (superClass) =>\n class DialogBaseMixin extends superClass {\n static get properties() {\n return {\n /**\n * True if the overlay is currently displayed.\n * @type {boolean}\n */\n opened: {\n type: Boolean,\n value: false,\n notify: true,\n },\n\n /**\n * Set to true to disable closing dialog on outside click\n * @attr {boolean} no-close-on-outside-click\n * @type {boolean}\n */\n noCloseOnOutsideClick: {\n type: Boolean,\n value: false,\n },\n\n /**\n * Set to true to disable closing dialog on Escape press\n * @attr {boolean} no-close-on-esc\n * @type {boolean}\n */\n noCloseOnEsc: {\n type: Boolean,\n value: false,\n },\n\n /**\n * Set to true to remove backdrop and allow click events on background elements.\n * @type {boolean}\n */\n modeless: {\n type: Boolean,\n value: false,\n },\n };\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n const overlay = this.$.overlay;\n\n overlay.addEventListener('vaadin-overlay-outside-click', this._handleOutsideClick.bind(this));\n overlay.addEventListener('vaadin-overlay-escape-press', this._handleEscPress.bind(this));\n\n this._overlayElement = overlay;\n }\n\n /** @protected */\n connectedCallback() {\n super.connectedCallback();\n // Restore opened state if overlay was opened when disconnecting\n if (this.__restoreOpened) {\n this.opened = true;\n }\n }\n\n /** @protected */\n disconnectedCallback() {\n super.disconnectedCallback();\n // Automatically close the overlay when dialog is removed from DOM\n // Using a timeout to avoid toggling opened state, and dispatching change\n // events, when just moving the dialog in the DOM\n setTimeout(() => {\n if (!this.isConnected) {\n this.__restoreOpened = this.opened;\n this.opened = false;\n }\n });\n }\n\n /** @protected */\n _onOverlayOpened(e) {\n if (e.detail.value === false) {\n this.opened = false;\n }\n }\n\n /**\n * Close the dialog if `noCloseOnOutsideClick` isn't set to true\n * @private\n */\n _handleOutsideClick(e) {\n if (this.noCloseOnOutsideClick) {\n e.preventDefault();\n }\n }\n\n /**\n * Close the dialog if `noCloseOnEsc` isn't set to true\n * @private\n */\n _handleEscPress(e) {\n if (this.noCloseOnEsc) {\n e.preventDefault();\n }\n }\n\n /** @private */\n _bringOverlayToFront() {\n if (this.modeless) {\n this._overlayElement.bringToFront();\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * Checks if the argument is a touch event and if so, returns a first touch.\n * Otherwise, if the mouse event was passed, returns it as is.\n * @param {!MouseEvent | !TouchEvent} e\n * @return {!MouseEvent | !Touch}\n * @protected\n */\nexport function getMouseOrFirstTouchEvent(e) {\n return e.touches ? e.touches[0] : e;\n}\n\n/**\n * Checks whether a mouse or touch event is in window.\n * @param {!MouseEvent | !TouchEvent} e\n * @return {boolean}\n * @protected\n */\nexport function eventInWindow(e) {\n return e.clientX >= 0 && e.clientX <= window.innerWidth && e.clientY >= 0 && e.clientY <= window.innerHeight;\n}\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { isTouch } from '@vaadin/component-base/src/browser-utils.js';\nimport { eventInWindow, getMouseOrFirstTouchEvent } from './vaadin-dialog-utils.js';\n\n/**\n * @polymerMixin\n */\nexport const DialogDraggableMixin = (superClass) =>\n class VaadinDialogDraggableMixin extends superClass {\n static get properties() {\n return {\n /**\n * Set to true to enable repositioning the dialog by clicking and dragging.\n *\n * By default, only the overlay area can be used to drag the element. But,\n * a child element can be marked as a draggable area by adding a\n * \"`draggable`\" class to it, this will by default make all of its children draggable also.\n * If you want a child element to be draggable\n * but still have its children non-draggable (by default), mark it with\n * \"`draggable-leaf-only`\" class name.\n *\n * @type {boolean}\n */\n draggable: {\n type: Boolean,\n value: false,\n reflectToAttribute: true,\n },\n\n /** @private */\n _touchDevice: {\n type: Boolean,\n value: isTouch,\n },\n\n /* TODO: Expose as a public property (check naming) */\n __dragHandleClassName: {\n type: String,\n },\n };\n }\n\n /** @protected */\n async ready() {\n super.ready();\n this._originalBounds = {};\n this._originalMouseCoords = {};\n this._startDrag = this._startDrag.bind(this);\n this._drag = this._drag.bind(this);\n this._stopDrag = this._stopDrag.bind(this);\n\n // Wait for overlay render\n await new Promise(requestAnimationFrame);\n this.$.overlay.$.overlay.addEventListener('mousedown', this._startDrag);\n this.$.overlay.$.overlay.addEventListener('touchstart', this._startDrag);\n }\n\n /** @private */\n _startDrag(e) {\n // Don't initiate when there's more than 1 touch (pinch zoom)\n if (e.type === 'touchstart' && e.touches.length > 1) {\n return;\n }\n\n if (this.draggable && (e.button === 0 || e.touches)) {\n const resizerContainer = this.$.overlay.$.resizerContainer;\n const isResizerContainer = e.target === resizerContainer;\n const isResizerContainerScrollbar =\n e.offsetX > resizerContainer.clientWidth || e.offsetY > resizerContainer.clientHeight;\n const isContentPart = e.target === this.$.overlay.$.content;\n\n const isDraggable = e.composedPath().some((node, index) => {\n if (!node.classList) {\n return false;\n }\n\n const isDraggableNode = node.classList.contains(this.__dragHandleClassName || 'draggable');\n const isDraggableLeafOnly = node.classList.contains('draggable-leaf-only');\n const isLeafNode = index === 0;\n return (isDraggableLeafOnly && isLeafNode) || (isDraggableNode && (!isDraggableLeafOnly || isLeafNode));\n });\n\n if ((isResizerContainer && !isResizerContainerScrollbar) || isContentPart || isDraggable) {\n if (!isDraggable) {\n e.preventDefault();\n }\n this._originalBounds = this.$.overlay.getBounds();\n const event = getMouseOrFirstTouchEvent(e);\n this._originalMouseCoords = { top: event.pageY, left: event.pageX };\n window.addEventListener('mouseup', this._stopDrag);\n window.addEventListener('touchend', this._stopDrag);\n window.addEventListener('mousemove', this._drag);\n window.addEventListener('touchmove', this._drag);\n if (this.$.overlay.$.overlay.style.position !== 'absolute') {\n this.$.overlay.setBounds(this._originalBounds);\n }\n }\n }\n }\n\n /** @private */\n _drag(e) {\n const event = getMouseOrFirstTouchEvent(e);\n if (eventInWindow(event)) {\n const top = this._originalBounds.top + (event.pageY - this._originalMouseCoords.top);\n const left = this._originalBounds.left + (event.pageX - this._originalMouseCoords.left);\n this.$.overlay.setBounds({ top, left });\n }\n }\n\n /** @private */\n _stopDrag() {\n window.removeEventListener('mouseup', this._stopDrag);\n window.removeEventListener('touchend', this._stopDrag);\n window.removeEventListener('mousemove', this._drag);\n window.removeEventListener('touchmove', this._drag);\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * @polymerMixin\n */\nexport const DialogRendererMixin = (superClass) =>\n class DialogRendererMixin extends superClass {\n static get properties() {\n return {\n /**\n * Custom function for rendering the content of the dialog.\n * Receives two arguments:\n *\n * - `root` The root container DOM element. Append your content to it.\n * - `dialog` The reference to the `<vaadin-dialog>` element.\n * @type {DialogRenderer | undefined}\n */\n renderer: {\n type: Object,\n },\n\n /**\n * String used for rendering a dialog title.\n *\n * If both `headerTitle` and `headerRenderer` are defined, the title\n * and the elements created by the renderer will be placed next to\n * each other, with the title coming first.\n *\n * When `headerTitle` is set, the attribute `has-title` is added to the overlay element.\n * @attr {string} header-title\n */\n headerTitle: String,\n\n /**\n * Custom function for rendering the dialog header.\n * Receives two arguments:\n *\n * - `root` The root container DOM element. Append your content to it.\n * - `dialog` The reference to the `<vaadin-dialog>` element.\n *\n * If both `headerTitle` and `headerRenderer` are defined, the title\n * and the elements created by the renderer will be placed next to\n * each other, with the title coming first.\n *\n * When `headerRenderer` is set, the attribute `has-header` is added to the overlay element.\n * @type {DialogRenderer | undefined}\n */\n headerRenderer: {\n type: Object,\n },\n\n /**\n * Custom function for rendering the dialog footer.\n * Receives two arguments:\n *\n * - `root` The root container DOM element. Append your content to it.\n * - `dialog` The reference to the `<vaadin-dialog>` element.\n *\n * When `footerRenderer` is set, the attribute `has-footer` is added to the overlay element.\n * @type {DialogRenderer | undefined}\n */\n footerRenderer: {\n type: Object,\n },\n };\n }\n\n /**\n * Requests an update for the content of the dialog.\n * While performing the update, it invokes the renderer passed in the `renderer` property,\n * as well as `headerRender` and `footerRenderer` properties, if these are defined.\n *\n * It is not guaranteed that the update happens immediately (synchronously) after it is requested.\n */\n requestContentUpdate() {\n if (this._overlayElement) {\n this._overlayElement.requestContentUpdate();\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { eventInWindow, getMouseOrFirstTouchEvent } from './vaadin-dialog-utils.js';\n/**\n * @polymerMixin\n */\nexport const DialogResizableMixin = (superClass) =>\n class VaadinDialogResizableMixin extends superClass {\n static get properties() {\n return {\n /**\n * Set to true to enable resizing the dialog by dragging the corners and edges.\n * @type {boolean}\n */\n resizable: {\n type: Boolean,\n value: false,\n reflectToAttribute: true,\n },\n };\n }\n\n /** @protected */\n async ready() {\n super.ready();\n this._originalBounds = {};\n this._originalMouseCoords = {};\n this._resizeListeners = { start: {}, resize: {}, stop: {} };\n\n // Wait for overlay render\n await new Promise(requestAnimationFrame);\n this._addResizeListeners();\n }\n\n /** @private */\n _addResizeListeners() {\n // Note: edge controls added before corners\n ['n', 'e', 's', 'w', 'nw', 'ne', 'se', 'sw'].forEach((direction) => {\n const resizer = document.createElement('div');\n this._resizeListeners.start[direction] = (e) => this._startResize(e, direction);\n this._resizeListeners.resize[direction] = (e) => this._resize(e, direction);\n this._resizeListeners.stop[direction] = () => this._stopResize(direction);\n if (direction.length === 1) {\n resizer.classList.add('edge');\n }\n resizer.classList.add('resizer');\n resizer.classList.add(direction);\n resizer.addEventListener('mousedown', this._resizeListeners.start[direction]);\n resizer.addEventListener('touchstart', this._resizeListeners.start[direction]);\n this.$.overlay.$.resizerContainer.appendChild(resizer);\n });\n }\n\n /**\n * @param {!MouseEvent | !TouchEvent} e\n * @param {!DialogResizableDirection} direction\n * @protected\n */\n _startResize(e, direction) {\n // Don't initiate when there's more than 1 touch (pinch zoom)\n if (e.type === 'touchstart' && e.touches.length > 1) {\n return;\n }\n\n if (e.button === 0 || e.touches) {\n e.preventDefault();\n\n this._originalBounds = this.$.overlay.getBounds();\n const event = getMouseOrFirstTouchEvent(e);\n this._originalMouseCoords = { top: event.pageY, left: event.pageX };\n window.addEventListener('mousemove', this._resizeListeners.resize[direction]);\n window.addEventListener('touchmove', this._resizeListeners.resize[direction]);\n window.addEventListener('mouseup', this._resizeListeners.stop[direction]);\n window.addEventListener('touchend', this._resizeListeners.stop[direction]);\n if (this.$.overlay.$.overlay.style.position !== 'absolute') {\n this.$.overlay.setBounds(this._originalBounds);\n }\n }\n }\n\n /**\n * @param {!MouseEvent | !TouchEvent} e\n * @param {!DialogResizableDirection} resizer\n * @protected\n */\n _resize(e, resizer) {\n const event = getMouseOrFirstTouchEvent(e);\n if (eventInWindow(event)) {\n const minimumSize = 40;\n resizer.split('').forEach((direction) => {\n switch (direction) {\n case 'n': {\n const height = this._originalBounds.height - (event.pageY - this._originalMouseCoords.top);\n const top = this._originalBounds.top + (event.pageY - this._originalMouseCoords.top);\n if (height > minimumSize) {\n this.$.overlay.setBounds({ top, height });\n }\n break;\n }\n case 'e': {\n const width = this._originalBounds.width + (event.pageX - this._originalMouseCoords.left);\n if (width > minimumSize) {\n this.$.overlay.setBounds({ width });\n }\n break;\n }\n case 's': {\n const height = this._originalBounds.height + (event.pageY - this._originalMouseCoords.top);\n if (height > minimumSize) {\n this.$.overlay.setBounds({ height });\n }\n break;\n }\n case 'w': {\n const width = this._originalBounds.width - (event.pageX - this._originalMouseCoords.left);\n const left = this._originalBounds.left + (event.pageX - this._originalMouseCoords.left);\n if (width > minimumSize) {\n this.$.overlay.setBounds({ left, width });\n }\n break;\n }\n default:\n break;\n }\n });\n }\n }\n\n /**\n * @param {!DialogResizableDirection} direction\n * @protected\n */\n _stopResize(direction) {\n window.removeEventListener('mousemove', this._resizeListeners.resize[direction]);\n window.removeEventListener('touchmove', this._resizeListeners.resize[direction]);\n window.removeEventListener('mouseup', this._resizeListeners.stop[direction]);\n window.removeEventListener('touchend', this._resizeListeners.stop[direction]);\n this.dispatchEvent(new CustomEvent('resize', { detail: this._getResizeDimensions() }));\n }\n\n /**\n * @return {!DialogResizeDimensions}\n * @protected\n */\n _getResizeDimensions() {\n const scrollPosition = this.$.overlay.$.resizerContainer.scrollTop;\n const { width, height } = getComputedStyle(this.$.overlay.$.overlay);\n const content = this.$.overlay.$.content;\n content.setAttribute(\n 'style',\n 'position: absolute; top: 0; right: 0; bottom: 0; left: 0; box-sizing: content-box; height: auto;',\n );\n const { width: contentWidth, height: contentHeight } = getComputedStyle(content);\n content.removeAttribute('style');\n this.$.overlay.$.resizerContainer.scrollTop = scrollPosition;\n return { width, height, contentWidth, contentHeight };\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './vaadin-dialog-overlay.js';\nimport { html, PolymerElement } from '@polymer/polymer/polymer-element.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';\nimport { OverlayClassMixin } from '@vaadin/component-base/src/overlay-class-mixin.js';\nimport { processTemplates } from '@vaadin/component-base/src/templates.js';\nimport { ThemePropertyMixin } from '@vaadin/vaadin-themable-mixin/vaadin-theme-property-mixin.js';\nimport { DialogBaseMixin } from './vaadin-dialog-base-mixin.js';\nimport { DialogDraggableMixin } from './vaadin-dialog-draggable-mixin.js';\nimport { DialogRendererMixin } from './vaadin-dialog-renderer-mixin.js';\nimport { DialogResizableMixin } from './vaadin-dialog-resizable-mixin.js';\n\nexport { DialogOverlay } from './vaadin-dialog-overlay.js';\n\n/**\n * `<vaadin-dialog>` is a Web Component for creating customized modal dialogs.\n *\n * ### Rendering\n *\n * The content of the dialog can be populated by using the renderer callback function.\n *\n * The renderer function provides `root`, `dialog` arguments.\n * Generate DOM content, append it to the `root` element and control the state\n * of the host element by accessing `dialog`. Before generating new content,\n * users are able to check if there is already content in `root` for reusing it.\n *\n * ```html\n * <vaadin-dialog id=\"dialog\"></vaadin-dialog>\n * ```\n * ```js\n * const dialog = document.querySelector('#dialog');\n * dialog.renderer = function(root, dialog) {\n * root.textContent = \"Sample dialog\";\n * };\n * ```\n *\n * Renderer is called on the opening of the dialog.\n * DOM generated during the renderer call can be reused\n * in the next renderer call and will be provided with the `root` argument.\n * On first call it will be empty.\n *\n * ### Styling\n *\n * `<vaadin-dialog>` uses `<vaadin-dialog-overlay>` internal\n * themable component as the actual visible dialog overlay.\n *\n * See [`<vaadin-overlay>`](#/elements/vaadin-overlay) documentation.\n * for `<vaadin-dialog-overlay>` parts.\n *\n * In addition to `<vaadin-overlay>` parts, the following parts are available for styling:\n *\n * Part name | Description\n * -----------------|-------------------------------------------\n * `header` | Element wrapping title and header content\n * `header-content` | Element wrapping the header content slot\n * `title` | Element wrapping the title slot\n * `footer` | Element wrapping the footer slot\n *\n * The following state attributes are available for styling:\n *\n * Attribute | Description\n * -----------------|--------------------------------------------\n * `has-title` | Set when the element has a title\n * `has-header` | Set when the element has header renderer\n * `has-footer` | Set when the element has footer renderer\n * `overflow` | Set to `top`, `bottom`, none or both\n *\n * Note: the `theme` attribute value set on `<vaadin-dialog>` is\n * propagated to the internal `<vaadin-dialog-overlay>` component.\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @fires {CustomEvent} resize - Fired when the dialog resize is finished.\n * @fires {CustomEvent} opened-changed - Fired when the `opened` property changes.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes ThemePropertyMixin\n * @mixes ElementMixin\n * @mixes DialogBaseMixin\n * @mixes DialogDraggableMixin\n * @mixes DialogRendererMixin\n * @mixes DialogResizableMixin\n * @mixes OverlayClassMixin\n */\nclass Dialog extends DialogDraggableMixin(\n DialogResizableMixin(\n DialogRendererMixin(DialogBaseMixin(OverlayClassMixin(ThemePropertyMixin(ElementMixin(PolymerElement))))),\n ),\n) {\n static get template() {\n return html`\n <style>\n :host {\n display: none !important;\n }\n </style>\n\n <vaadin-dialog-overlay\n id=\"overlay\"\n header-title=\"[[headerTitle]]\"\n on-opened-changed=\"_onOverlayOpened\"\n on-mousedown=\"_bringOverlayToFront\"\n on-touchstart=\"_bringOverlayToFront\"\n theme$=\"[[_theme]]\"\n modeless=\"[[modeless]]\"\n with-backdrop=\"[[!modeless]]\"\n resizable$=\"[[resizable]]\"\n restore-focus-on-close\n focus-trap\n ></vaadin-dialog-overlay>\n `;\n }\n\n static get is() {\n return 'vaadin-dialog';\n }\n\n static get properties() {\n return {\n /**\n * Set the `aria-label` attribute for assistive technologies like\n * screen readers. An empty string value for this property (the\n * default) means that the `aria-label` attribute is not present.\n */\n ariaLabel: {\n type: String,\n value: '',\n },\n };\n }\n\n static get observers() {\n return [\n '_openedChanged(opened)',\n '_ariaLabelChanged(ariaLabel, headerTitle)',\n '_rendererChanged(renderer, headerRenderer, footerRenderer)',\n ];\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._overlayElement.setAttribute('role', 'dialog');\n\n processTemplates(this);\n }\n\n /** @private */\n _rendererChanged(renderer, headerRenderer, footerRenderer) {\n this.$.overlay.setProperties({ owner: this, renderer, headerRenderer, footerRenderer });\n }\n\n /** @private */\n _openedChanged(opened) {\n this.$.overlay.opened = opened;\n }\n\n /** @private */\n _ariaLabelChanged(ariaLabel, headerTitle) {\n if (ariaLabel || headerTitle) {\n this.$.overlay.setAttribute('aria-label', ariaLabel || headerTitle);\n } else {\n this.$.overlay.removeAttribute('aria-label');\n }\n }\n}\n\ndefineCustomElement(Dialog);\n\nexport { Dialog };\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, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { addLumoGlobalStyles } from './global.js';\n\nconst font = css`\n :host {\n /* prettier-ignore */\n --lumo-font-family: -apple-system, BlinkMacSystemFont, 'Roboto', 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n\n /* Font sizes */\n --lumo-font-size-xxs: 0.75rem;\n --lumo-font-size-xs: 0.8125rem;\n --lumo-font-size-s: 0.875rem;\n --lumo-font-size-m: 1rem;\n --lumo-font-size-l: 1.125rem;\n --lumo-font-size-xl: 1.375rem;\n --lumo-font-size-xxl: 1.75rem;\n --lumo-font-size-xxxl: 2.5rem;\n\n /* Line heights */\n --lumo-line-height-xs: 1.25;\n --lumo-line-height-s: 1.375;\n --lumo-line-height-m: 1.625;\n }\n`;\n\nconst typography = css`\n body,\n :host {\n font-family: var(--lumo-font-family);\n font-size: var(--lumo-font-size-m);\n line-height: var(--lumo-line-height-m);\n -webkit-text-size-adjust: 100%;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n small,\n [theme~='font-size-s'] {\n font-size: var(--lumo-font-size-s);\n line-height: var(--lumo-line-height-s);\n }\n\n [theme~='font-size-xs'] {\n font-size: var(--lumo-font-size-xs);\n line-height: var(--lumo-line-height-xs);\n }\n\n :where(h1, h2, h3, h4, h5, h6) {\n font-weight: 600;\n line-height: var(--lumo-line-height-xs);\n margin-block: 0;\n }\n\n :where(h1) {\n font-size: var(--lumo-font-size-xxxl);\n }\n\n :where(h2) {\n font-size: var(--lumo-font-size-xxl);\n }\n\n :where(h3) {\n font-size: var(--lumo-font-size-xl);\n }\n\n :where(h4) {\n font-size: var(--lumo-font-size-l);\n }\n\n :where(h5) {\n font-size: var(--lumo-font-size-m);\n }\n\n :where(h6) {\n font-size: var(--lumo-font-size-xs);\n text-transform: uppercase;\n letter-spacing: 0.03em;\n }\n\n p,\n blockquote {\n margin-top: 0.5em;\n margin-bottom: 0.75em;\n }\n\n a {\n text-decoration: none;\n }\n\n a:where(:any-link):hover {\n text-decoration: underline;\n }\n\n hr {\n display: block;\n align-self: stretch;\n height: 1px;\n border: 0;\n padding: 0;\n margin: var(--lumo-space-s) calc(var(--lumo-border-radius-m) / 2);\n background-color: var(--lumo-contrast-10pct);\n }\n\n blockquote {\n border-left: 2px solid var(--lumo-contrast-30pct);\n }\n\n b,\n strong {\n font-weight: 600;\n }\n\n /* RTL specific styles */\n blockquote[dir='rtl'] {\n border-left: none;\n border-right: 2px solid var(--lumo-contrast-30pct);\n }\n`;\n\nregisterStyles('', typography, { moduleId: 'lumo-typography' });\naddLumoGlobalStyles('typography-props', font);\n\nexport { font, typography };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { html, PolymerElement } from '@polymer/polymer/polymer-element.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';\nimport { processTemplates } from '@vaadin/component-base/src/templates.js';\nimport { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { OverlayMixin } from './vaadin-overlay-mixin.js';\nimport { overlayStyles } from './vaadin-overlay-styles.js';\n\nregisterStyles('vaadin-overlay', overlayStyles, { moduleId: 'vaadin-overlay-styles' });\n\n/**\n * `<vaadin-overlay>` is a Web Component for creating overlays. The content of the overlay\n * can be populated imperatively by using `renderer` callback function.\n *\n * ### Rendering\n *\n * The renderer function provides `root`, `owner`, `model` arguments when applicable.\n * Generate DOM content by using `model` object properties if needed, append it to the `root`\n * element and control the state of the host element by accessing `owner`. Before generating new\n * content, users are able to check if there is already content in `root` for reusing it.\n *\n * ```html\n * <vaadin-overlay id=\"overlay\"></vaadin-overlay>\n * ```\n * ```js\n * const overlay = document.querySelector('#overlay');\n * overlay.renderer = function(root) {\n * root.textContent = \"Overlay content\";\n * };\n * ```\n *\n * Renderer is called on the opening of the overlay and each time the related model is updated.\n * DOM generated during the renderer call can be reused\n * in the next renderer call and will be provided with the `root` argument.\n * On first call it will be empty.\n *\n * ### Styling\n *\n * The following Shadow DOM parts are available for styling:\n *\n * Part name | Description\n * -----------|---------------------------------------------------------|\n * `backdrop` | Backdrop of the overlay\n * `overlay` | Container for position/sizing/alignment of the content\n * `content` | Content of the overlay\n *\n * The following state attributes are available for styling:\n *\n * Attribute | Description | Part\n * ---|---|---\n * `opening` | Applied just after the overlay is attached to the DOM. You can apply a CSS @keyframe animation for this state. | `:host`\n * `closing` | Applied just before the overlay is detached from the DOM. You can apply a CSS @keyframe animation for this state. | `:host`\n *\n * The following custom CSS properties are available for styling:\n *\n * Custom CSS property | Description | Default value\n * ---|---|---\n * `--vaadin-overlay-viewport-bottom` | Bottom offset of the visible viewport area | `0` or detected offset\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @fires {CustomEvent} opened-changed - Fired when the `opened` property changes.\n * @fires {CustomEvent} vaadin-overlay-open - Fired after the overlay is opened.\n * @fires {CustomEvent} vaadin-overlay-close - Fired when the opened overlay is about to be closed. Calling `preventDefault()` on the event cancels the closing.\n * @fires {CustomEvent} vaadin-overlay-closing - Fired when the overlay starts to close. Closing the overlay can be asynchronous depending on the animation.\n * @fires {CustomEvent} vaadin-overlay-closed - Fired after the overlay is closed.\n * @fires {CustomEvent} vaadin-overlay-outside-click - Fired before the overlay is closed on outside click. Calling `preventDefault()` on the event cancels the closing.\n * @fires {CustomEvent} vaadin-overlay-escape-press - Fired before the overlay is closed on Escape key press. Calling `preventDefault()` on the event cancels the closing.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes ThemableMixin\n * @mixes DirMixin\n * @mixes OverlayMixin\n */\nclass Overlay extends OverlayMixin(ThemableMixin(DirMixin(PolymerElement))) {\n static get template() {\n return html`\n <div id=\"backdrop\" part=\"backdrop\" hidden$=\"[[!withBackdrop]]\"></div>\n <div part=\"overlay\" id=\"overlay\" tabindex=\"0\">\n <div part=\"content\" id=\"content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n static get is() {\n return 'vaadin-overlay';\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n processTemplates(this);\n }\n\n /**\n * @event vaadin-overlay-open\n * Fired after the overlay is opened.\n */\n\n /**\n * @event vaadin-overlay-close\n * Fired when the opened overlay is about to be closed.\n * Calling `preventDefault()` on the event cancels the closing.\n */\n\n /**\n * @event vaadin-overlay-closing\n * Fired when the overlay starts to close.\n * Closing the overlay can be asynchronous depending on the animation.\n */\n\n /**\n * @event vaadin-overlay-closed\n * Fired after the overlay is closed.\n */\n\n /**\n * @event vaadin-overlay-escape-press\n * Fired before the overlay is closed on Escape key press.\n * Calling `preventDefault()` on the event cancels the closing.\n */\n\n /**\n * @event vaadin-overlay-outside-click\n * Fired before the overlay is closed on outside click.\n * Calling `preventDefault()` on the event cancels the closing.\n */\n}\n\ndefineCustomElement(Overlay);\n\nexport { Overlay };\n"],"names":["testUserAgent","regexp","test","navigator","userAgent","testPlatform","platform","isAndroid","isChrome","vendor","isFirefox","isIPad","maxTouchPoints","isIOS","isSafari","isTouch","document","createEvent","e","overlay","moduleId","processTemplates","component","window","Vaadin","templateRendererCallback","querySelector","console","warn","localName","keyboardActive","getDeepActiveElement","host","activeElement","body","shadowRoot","isKeyboardActive","isElementHiddenDirectly","element","style","visibility","display","computedStyle","getComputedStyle","hasLowerTabOrder","a","b","ati","Math","max","tabIndex","bti","sortElementsByTabIndex","elements","len","length","pivot","ceil","left","right","result","push","shift","concat","mergeSortByTabIndex","slice","isElementHidden","offsetParent","clientWidth","clientHeight","isElementFocused","getRootNode","collectFocusableNodes","node","nodeType","Node","ELEMENT_NODE","matches","isElementFocusable","getAttribute","Number","normalizeTabIndex","needsSort","children","assignedNodes","flatten","forEach","child","getFocusableElements","focusableElements","addEventListener","capture","ControllerMixin","superClass","prototype","addController","constructor","super","this","__controllers","Set","connectedCallback","c","hostConnected","disconnectedCallback","hostDisconnected","controller","add","undefined","$","isConnected","removeController","delete","dialogOverlay","DialogOverlayMixin","properties","headerTitle","type","String","headerRenderer","Object","footerRenderer","observers","ready","__resizeObserver","ResizeObserver","__updateOverflow","observe","resizerContainer","content","__createContainer","slot","container","createElement","setAttribute","__clearContainer","innerHTML","_$litPart$","__initContainer","_headerFooterRendererChange","opened","headerRendererChanged","__oldHeaderRenderer","footerRendererChanged","__oldFooterRenderer","openedChanged","_oldOpenedFooterHeader","toggleAttribute","headerContainer","remove","footerContainer","requestContentUpdate","_headerTitleChanged","_oldHeaderTitle","_headerTitleRenderer","headerTitleElement","classList","appendChild","textContent","parentElement","call","owner","setBounds","bounds","parsedBounds","position","keys","arg","assign","getBounds","overlayBounds","getBoundingClientRect","containerBounds","top","width","height","overflow","hasAttribute","scrollTop","scrollHeight","value","trim","removeAttribute","resizableOverlay","DialogOverlay","is","template","DialogBaseMixin","Boolean","notify","noCloseOnOutsideClick","noCloseOnEsc","modeless","_handleOutsideClick","bind","_handleEscPress","_overlayElement","__restoreOpened","setTimeout","_onOverlayOpened","detail","preventDefault","_bringOverlayToFront","bringToFront","getMouseOrFirstTouchEvent","touches","eventInWindow","clientX","innerWidth","clientY","innerHeight","DialogDraggableMixin","draggable","reflectToAttribute","_touchDevice","__dragHandleClassName","_originalBounds","_originalMouseCoords","_startDrag","_drag","_stopDrag","Promise","requestAnimationFrame","button","isResizerContainer","target","isResizerContainerScrollbar","offsetX","offsetY","isContentPart","isDraggable","composedPath","some","index","isDraggableNode","contains","isDraggableLeafOnly","isLeafNode","event","pageY","pageX","removeEventListener","DialogRendererMixin","renderer","DialogResizableMixin","resizable","_resizeListeners","start","resize","stop","_addResizeListeners","direction","resizer","_startResize","_resize","_stopResize","minimumSize","split","dispatchEvent","CustomEvent","_getResizeDimensions","scrollPosition","contentWidth","contentHeight","Dialog","ariaLabel","_rendererChanged","setProperties","_openedChanged","_ariaLabelChanged","font","typography","Overlay"],"sourceRoot":""}
package/dist/umd/513.js DELETED
@@ -1,339 +0,0 @@
1
- /*! For license information please see 513.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[513,2894,3792,6649,9030],{4080:(t,e,o)=>{o.d(e,{CI:()=>u,H8:()=>n,gm:()=>s,m0:()=>i,nr:()=>c,un:()=>d});const r=t=>t.test(navigator.userAgent),a=t=>t.test(navigator.platform),i=r(/Android/u),n=r(/Chrome/u)&&/Google Inc/u.test(navigator.vendor),s=r(/Firefox/u),l=a(/^iPad/u)||a(/^Mac/u)&&navigator.maxTouchPoints>1,d=a(/^iPhone/u)||l,c=r(/^((?!chrome|android).)*safari/iu),u=(()=>{try{return document.createEvent("TouchEvent"),!0}catch(t){return!1}})()},5745:(t,e,o)=>{o.d(e,{i:()=>r});const r=(0,o(98741).y)((t=>class extends t{static get properties(){return{disabled:{type:Boolean,value:!1,observer:"_disabledChanged",reflectToAttribute:!0}}}_disabledChanged(t){this._setAriaDisabled(t)}_setAriaDisabled(t){t?this.setAttribute("aria-disabled","true"):this.removeAttribute("aria-disabled")}click(){this.disabled||super.click()}}))},7888:(t,e,o)=>{o.d(e,{f:()=>r});const r=(0,o(98741).y)((t=>class extends t{ready(){super.ready(),this.addEventListener("keydown",(t=>{this._onKeyDown(t)})),this.addEventListener("keyup",(t=>{this._onKeyUp(t)}))}_onKeyDown(t){switch(t.key){case"Enter":this._onEnter(t);break;case"Escape":this._onEscape(t)}}_onKeyUp(t){}_onEnter(t){}_onEscape(t){}}))},21961:(t,e,o)=>{o.d(e,{C:()=>i});var r=o(98741);const a=new WeakMap,i=(0,r.y)((t=>class extends t{get slotStyles(){return{}}connectedCallback(){super.connectedCallback(),this.__applySlotStyles()}__applySlotStyles(){const t=this.getRootNode(),e=function(t){return a.has(t)||a.set(t,new Set),a.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))}))}}))},36176:(t,e,o)=>{o.d(e,{l:()=>a});var r=o(5745);const a=t=>class extends((0,r.i)(t)){static get properties(){return{tabindex:{type:Number,reflectToAttribute:!0,observer:"_tabindexChanged"},_lastTabIndex:{type:Number}}}_disabledChanged(t,e){super._disabledChanged(t,e),t?(void 0!==this.tabindex&&(this._lastTabIndex=this.tabindex),this.tabindex=-1):e&&(this.tabindex=this._lastTabIndex)}_tabindexChanged(t){this.disabled&&-1!==t&&(this._lastTabIndex=t,this.tabindex=-1)}}},83799:(t,e,o)=>{o(93555),o(89389)},89389:(t,e,o)=>{o.d(e,{$:()=>b});var r=o(13256),a=o(55774),i=o(82901),n=o(90676),s=o(81488),l=o(87550);const d=o(51450).AH`
3
- :host {
4
- display: inline-block;
5
- position: relative;
6
- outline: none;
7
- white-space: nowrap;
8
- -webkit-user-select: none;
9
- -moz-user-select: none;
10
- user-select: none;
11
- }
12
-
13
- :host([hidden]) {
14
- display: none !important;
15
- }
16
-
17
- /* Aligns the button with form fields when placed on the same line.
18
- Note, to make it work, the form fields should have the same "::before" pseudo-element. */
19
- .vaadin-button-container::before {
20
- content: '\\2003';
21
- display: inline-block;
22
- width: 0;
23
- max-height: 100%;
24
- }
25
-
26
- .vaadin-button-container {
27
- display: inline-flex;
28
- align-items: center;
29
- justify-content: center;
30
- text-align: center;
31
- width: 100%;
32
- height: 100%;
33
- min-height: inherit;
34
- text-shadow: inherit;
35
- }
36
-
37
- [part='prefix'],
38
- [part='suffix'] {
39
- flex: none;
40
- }
41
-
42
- [part='label'] {
43
- white-space: nowrap;
44
- overflow: hidden;
45
- text-overflow: ellipsis;
46
- }
47
-
48
- @media (forced-colors: active) {
49
- :host {
50
- outline: 1px solid;
51
- outline-offset: -1px;
52
- }
53
-
54
- :host([focused]) {
55
- outline-width: 2px;
56
- }
57
-
58
- :host([disabled]) {
59
- outline-color: GrayText;
60
- }
61
- }
62
- `;var c=o(84467),u=o(53149),h=o(36176);const m=t=>class extends((0,c.e)((0,h.l)((0,u.y)(t)))){static get properties(){return{tabindex:{type:Number,value:0,reflectToAttribute:!0}}}get _activeKeys(){return["Enter"," "]}ready(){super.ready(),this.hasAttribute("role")||this.setAttribute("role","button")}_onKeyDown(t){super._onKeyDown(t),t.altKey||t.shiftKey||t.ctrlKey||t.metaKey||this._activeKeys.includes(t.key)&&(t.preventDefault(),this.click())}};(0,l.SF)("vaadin-button",d,{moduleId:"vaadin-button-styles"});class b extends(m((0,n.q)((0,l.cp)((0,a.w)(r.Pu))))){static get is(){return"vaadin-button"}static get template(){return r.qy`
63
- <div class="vaadin-button-container">
64
- <span part="prefix" aria-hidden="true">
65
- <slot name="prefix"></slot>
66
- </span>
67
- <span part="label">
68
- <slot></slot>
69
- </span>
70
- <span part="suffix" aria-hidden="true">
71
- <slot name="suffix"></slot>
72
- </span>
73
- </div>
74
- <slot name="tooltip"></slot>
75
- `}ready(){super.ready(),this._tooltipController=new s.I(this),this.addController(this._tooltipController)}}(0,i.X)(b)},93555:(t,e,o)=>{o.d(e,{x:()=>a}),o(64511),o(42068),o(9433),o(3241),o(83315);var r=o(87550);const a=r.AH`
76
- :host {
77
- /* Sizing */
78
- --lumo-button-size: var(--lumo-size-m);
79
- min-width: var(--vaadin-button-min-width, calc(var(--_button-size) * 2));
80
- height: var(--_button-size);
81
- padding: var(--vaadin-button-padding, 0 calc(var(--_button-size) / 3 + var(--lumo-border-radius-m) / 2));
82
- margin: var(--vaadin-button-margin, var(--lumo-space-xs) 0);
83
- box-sizing: border-box;
84
- /* Style */
85
- font-family: var(--lumo-font-family);
86
- font-size: var(--vaadin-button-font-size, var(--lumo-font-size-m));
87
- font-weight: var(--vaadin-button-font-weight, 500);
88
- color: var(--_lumo-button-text-color);
89
- background: var(--_lumo-button-background);
90
- border: var(--vaadin-button-border, none);
91
- border-radius: var(--vaadin-button-border-radius, var(--lumo-border-radius-m));
92
- cursor: var(--lumo-clickable-cursor);
93
- -webkit-tap-highlight-color: transparent;
94
- -webkit-font-smoothing: antialiased;
95
- -moz-osx-font-smoothing: grayscale;
96
- flex-shrink: 0;
97
- --_button-size: var(--vaadin-button-height, var(--lumo-button-size));
98
- --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
99
- --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
100
- /* Used by notification */
101
- --_lumo-button-background: var(--vaadin-button-background, var(--lumo-contrast-5pct));
102
- --_lumo-button-text-color: var(--vaadin-button-text-color, var(--lumo-primary-text-color));
103
- --_lumo-button-primary-background: var(--vaadin-button-primary-background, var(--lumo-primary-color));
104
- --_lumo-button-primary-text-color: var(--vaadin-button-primary-text-color, var(--lumo-primary-contrast-color));
105
- }
106
-
107
- /* Set only for the internal parts so we don't affect the host vertical alignment */
108
- [part='label'],
109
- [part='prefix'],
110
- [part='suffix'] {
111
- line-height: var(--lumo-line-height-xs);
112
- }
113
-
114
- [part='label'] {
115
- padding: calc(var(--lumo-button-size) / 6) 0;
116
- }
117
-
118
- :host([theme~='small']) {
119
- font-size: var(--lumo-font-size-s);
120
- --lumo-button-size: var(--lumo-size-s);
121
- }
122
-
123
- :host([theme~='large']) {
124
- font-size: var(--lumo-font-size-l);
125
- --lumo-button-size: var(--lumo-size-l);
126
- }
127
-
128
- /* For interaction states */
129
- :host::before,
130
- :host::after {
131
- content: '';
132
- /* We rely on the host always being relative */
133
- position: absolute;
134
- z-index: 1;
135
- inset: 0;
136
- background-color: currentColor;
137
- border-radius: inherit;
138
- opacity: 0;
139
- pointer-events: none;
140
- }
141
-
142
- /* Hover */
143
-
144
- @media (any-hover: hover) {
145
- :host(:hover)::before {
146
- opacity: 0.02;
147
- }
148
- }
149
-
150
- /* Active */
151
-
152
- :host::after {
153
- transition: opacity 1.4s, transform 0.1s;
154
- filter: blur(8px);
155
- }
156
-
157
- :host([active])::before {
158
- opacity: 0.05;
159
- transition-duration: 0s;
160
- }
161
-
162
- :host([active])::after {
163
- opacity: 0.1;
164
- transition-duration: 0s, 0s;
165
- transform: scale(0);
166
- }
167
-
168
- /* Keyboard focus */
169
-
170
- :host([focus-ring]) {
171
- box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
172
- }
173
-
174
- :host([theme~='primary'][focus-ring]) {
175
- box-shadow: 0 0 0 1px var(--lumo-base-color), 0 0 0 3px var(--lumo-primary-color-50pct);
176
- }
177
-
178
- /* Types (primary, tertiary, tertiary-inline */
179
-
180
- :host([theme~='tertiary']),
181
- :host([theme~='tertiary-inline']) {
182
- --_background: transparent !important;
183
- background: var(--vaadin-button-tertiary-background, var(--_background));
184
- min-width: 0;
185
- }
186
-
187
- :host([theme~='tertiary']) {
188
- border: var(--vaadin-button-tertiary-border, none);
189
- color: var(--vaadin-button-tertiary-text-color, var(--lumo-primary-text-color));
190
- font-weight: var(--vaadin-button-tertiary-font-weight, 500);
191
- padding: var(--vaadin-button-tertiary-padding, 0 calc(var(--_button-size) / 6));
192
- }
193
-
194
- :host([theme~='tertiary-inline'])::before {
195
- display: none;
196
- }
197
-
198
- :host([theme~='tertiary-inline']) {
199
- margin: 0;
200
- height: auto;
201
- padding: 0;
202
- line-height: inherit;
203
- font-size: inherit;
204
- }
205
-
206
- :host([theme~='tertiary-inline']) [part='label'] {
207
- padding: 0;
208
- overflow: visible;
209
- line-height: inherit;
210
- }
211
-
212
- :host([theme~='primary']) {
213
- background: var(--_lumo-button-primary-background);
214
- border: var(--vaadin-button-primary-border, none);
215
- color: var(--_lumo-button-primary-text-color);
216
- font-weight: var(--vaadin-button-primary-font-weight, 600);
217
- min-width: calc(var(--lumo-button-size) * 2.5);
218
- }
219
-
220
- :host([theme~='primary'])::before {
221
- background-color: black;
222
- }
223
-
224
- @media (any-hover: hover) {
225
- :host([theme~='primary']:hover)::before {
226
- opacity: 0.05;
227
- }
228
- }
229
-
230
- :host([theme~='primary'][active])::before {
231
- opacity: 0.1;
232
- }
233
-
234
- :host([theme~='primary'][active])::after {
235
- opacity: 0.2;
236
- }
237
-
238
- /* Colors (success, error, contrast) */
239
-
240
- :host([theme~='success']) {
241
- color: var(--lumo-success-text-color);
242
- }
243
-
244
- :host([theme~='success'][theme~='primary']) {
245
- background-color: var(--lumo-success-color);
246
- color: var(--lumo-success-contrast-color);
247
- }
248
-
249
- :host([theme~='error']) {
250
- color: var(--lumo-error-text-color);
251
- }
252
-
253
- :host([theme~='error'][theme~='primary']) {
254
- background-color: var(--lumo-error-color);
255
- color: var(--lumo-error-contrast-color);
256
- }
257
-
258
- :host([theme~='contrast']) {
259
- color: var(--lumo-contrast);
260
- }
261
-
262
- :host([theme~='contrast'][theme~='primary']) {
263
- background-color: var(--lumo-contrast);
264
- color: var(--lumo-base-color);
265
- }
266
-
267
- /* Disabled state. Keep selectors after other color variants. */
268
-
269
- :host([disabled]) {
270
- pointer-events: none;
271
- color: var(--lumo-disabled-text-color);
272
- }
273
-
274
- :host([theme~='primary'][disabled]) {
275
- background-color: var(--lumo-contrast-30pct);
276
- color: var(--lumo-base-color);
277
- }
278
-
279
- :host([theme~='primary'][disabled]) [part] {
280
- opacity: 0.7;
281
- }
282
-
283
- /* Icons */
284
-
285
- [part] ::slotted(vaadin-icon) {
286
- display: inline-block;
287
- width: var(--lumo-icon-size-m);
288
- height: var(--lumo-icon-size-m);
289
- }
290
-
291
- /* Vaadin icons are based on a 16x16 grid (unlike Lumo and Material icons with 24x24), so they look too big by default */
292
- [part] ::slotted(vaadin-icon[icon^='vaadin:']) {
293
- padding: 0.25em;
294
- box-sizing: border-box !important;
295
- }
296
-
297
- [part='prefix'] {
298
- margin-left: -0.25em;
299
- margin-right: 0.25em;
300
- }
301
-
302
- [part='suffix'] {
303
- margin-left: 0.25em;
304
- margin-right: -0.25em;
305
- }
306
-
307
- /* Icon-only */
308
-
309
- :host([theme~='icon']:not([theme~='tertiary-inline'])) {
310
- min-width: var(--lumo-button-size);
311
- padding-left: calc(var(--lumo-button-size) / 4);
312
- padding-right: calc(var(--lumo-button-size) / 4);
313
- }
314
-
315
- :host([theme~='icon']) [part='prefix'],
316
- :host([theme~='icon']) [part='suffix'] {
317
- margin-left: 0;
318
- margin-right: 0;
319
- }
320
-
321
- /* RTL specific styles */
322
-
323
- :host([dir='rtl']) [part='prefix'] {
324
- margin-left: 0.25em;
325
- margin-right: -0.25em;
326
- }
327
-
328
- :host([dir='rtl']) [part='suffix'] {
329
- margin-left: -0.25em;
330
- margin-right: 0.25em;
331
- }
332
-
333
- :host([dir='rtl'][theme~='icon']) [part='prefix'],
334
- :host([dir='rtl'][theme~='icon']) [part='suffix'] {
335
- margin-left: 0;
336
- margin-right: 0;
337
- }
338
- `;(0,r.SF)("vaadin-button",a,{moduleId:"lumo-button"})}}]);
339
- //# sourceMappingURL=513.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"513.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/browser-utils.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/a11y-base/src/disabled-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/a11y-base/src/keyboard-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/slot-styles-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/a11y-base/src/tabindex-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/button/src/vaadin-button-base.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/button/src/vaadin-button-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/button/src/vaadin-button.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/button/theme/lumo/vaadin-button-styles.js"],"sourcesContent":["/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\nconst testUserAgent = (regexp) => regexp.test(navigator.userAgent);\n\nconst testPlatform = (regexp) => regexp.test(navigator.platform);\n\nconst testVendor = (regexp) => regexp.test(navigator.vendor);\n\nexport const isAndroid = testUserAgent(/Android/u);\n\nexport const isChrome = testUserAgent(/Chrome/u) && testVendor(/Google Inc/u);\n\nexport const isFirefox = testUserAgent(/Firefox/u);\n\n// IPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\nexport const isIPad = testPlatform(/^iPad/u) || (testPlatform(/^Mac/u) && navigator.maxTouchPoints > 1);\n\nexport const isIPhone = testPlatform(/^iPhone/u);\n\nexport const isIOS = isIPhone || isIPad;\n\nexport const isSafari = testUserAgent(/^((?!chrome|android).)*safari/iu);\n\nexport const isTouch = (() => {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n})();\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\n\n/**\n * A mixin to provide disabled property for field components.\n *\n * @polymerMixin\n */\nexport const DisabledMixin = dedupingMixin(\n (superclass) =>\n class DisabledMixinClass extends superclass {\n static get properties() {\n return {\n /**\n * If true, the user cannot interact with this element.\n */\n disabled: {\n type: Boolean,\n value: false,\n observer: '_disabledChanged',\n reflectToAttribute: true,\n },\n };\n }\n\n /**\n * @param {boolean} disabled\n * @protected\n */\n _disabledChanged(disabled) {\n this._setAriaDisabled(disabled);\n }\n\n /**\n * @param {boolean} disabled\n * @protected\n */\n _setAriaDisabled(disabled) {\n if (disabled) {\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.removeAttribute('aria-disabled');\n }\n }\n\n /**\n * Overrides the default element `click` method in order to prevent\n * firing the `click` event when the element is disabled.\n * @protected\n * @override\n */\n click() {\n if (!this.disabled) {\n super.click();\n }\n }\n },\n);\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\n\n/**\n * A mixin that manages keyboard handling.\n * The mixin subscribes to the keyboard events while an actual implementation\n * for the event handlers is left to the client (a component or another mixin).\n *\n * @polymerMixin\n */\nexport const KeyboardMixin = dedupingMixin(\n (superclass) =>\n class KeyboardMixinClass extends superclass {\n /** @protected */\n ready() {\n super.ready();\n\n this.addEventListener('keydown', (event) => {\n this._onKeyDown(event);\n });\n\n this.addEventListener('keyup', (event) => {\n this._onKeyUp(event);\n });\n }\n\n /**\n * A handler for the `keydown` event. By default, it calls\n * separate methods for handling \"Enter\" and \"Escape\" keys.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} event\n * @protected\n */\n _onKeyDown(event) {\n switch (event.key) {\n case 'Enter':\n this._onEnter(event);\n break;\n case 'Escape':\n this._onEscape(event);\n break;\n default:\n break;\n }\n }\n\n /**\n * A handler for the `keyup` event. By default, it does nothing.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} _event\n * @protected\n */\n _onKeyUp(_event) {\n // To be implemented.\n }\n\n /**\n * A handler for the \"Enter\" key. By default, it does nothing.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} _event\n * @protected\n */\n _onEnter(_event) {\n // To be implemented.\n }\n\n /**\n * A handler for the \"Escape\" key. By default, it does nothing.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} _event\n * @protected\n */\n _onEscape(_event) {\n // To be implemented.\n }\n },\n);\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\n\nconst stylesMap = new WeakMap();\n\n/**\n * Get all the styles inserted into root.\n * @param {DocumentOrShadowRoot} root\n * @return {Set<string>}\n */\nfunction getRootStyles(root) {\n if (!stylesMap.has(root)) {\n stylesMap.set(root, new Set());\n }\n\n return stylesMap.get(root);\n}\n\n/**\n * Insert styles into the root.\n * @param {string} styles\n * @param {DocumentOrShadowRoot} root\n */\nfunction insertStyles(styles, root) {\n const style = document.createElement('style');\n if(window.DESCOPE_NONCE){\n style.setAttribute('nonce', window.DESCOPE_NONCE);\n }\n style.textContent = styles;\n\n if (root === document) {\n document.head.appendChild(style);\n } else {\n root.insertBefore(style, root.firstChild);\n }\n}\n\n/**\n * Mixin to insert styles into the outer scope to handle slotted components.\n * This is useful e.g. to hide native `<input type=\"number\">` controls.\n *\n * @polymerMixin\n */\nexport const SlotStylesMixin = dedupingMixin(\n (superclass) =>\n class SlotStylesMixinClass extends superclass {\n /**\n * List of styles to insert into root.\n * @protected\n */\n get slotStyles() {\n return {};\n }\n\n /** @protected */\n connectedCallback() {\n super.connectedCallback();\n\n this.__applySlotStyles();\n }\n\n /** @private */\n __applySlotStyles() {\n const root = this.getRootNode();\n const rootStyles = getRootStyles(root);\n\n this.slotStyles.forEach((styles) => {\n if (!rootStyles.has(styles)) {\n insertStyles(styles, root);\n rootStyles.add(styles);\n }\n });\n }\n },\n);\n","/**\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 { DisabledMixin } from './disabled-mixin.js';\n\n/**\n * A mixin to toggle the `tabindex` attribute.\n *\n * The attribute is set to -1 whenever the user disables the element\n * and restored with the last known value once the element is enabled.\n *\n * @polymerMixin\n * @mixes DisabledMixin\n */\nexport const TabindexMixin = (superclass) =>\n class TabindexMixinClass extends DisabledMixin(superclass) {\n static get properties() {\n return {\n /**\n * Indicates whether the element can be focused and where it participates in sequential keyboard navigation.\n *\n * @protected\n */\n tabindex: {\n type: Number,\n reflectToAttribute: true,\n observer: '_tabindexChanged',\n },\n\n /**\n * Stores the last known tabindex since the element has been disabled.\n *\n * @protected\n */\n _lastTabIndex: {\n type: Number,\n },\n };\n }\n\n /**\n * When the element gets disabled, the observer saves the last known tabindex\n * and makes the element not focusable by setting tabindex to -1.\n * As soon as the element gets enabled, the observer restores the last known tabindex\n * so that the element can be focusable again.\n *\n * @protected\n * @override\n */\n _disabledChanged(disabled, oldDisabled) {\n super._disabledChanged(disabled, oldDisabled);\n\n if (disabled) {\n if (this.tabindex !== undefined) {\n this._lastTabIndex = this.tabindex;\n }\n this.tabindex = -1;\n } else if (oldDisabled) {\n this.tabindex = this._lastTabIndex;\n }\n }\n\n /**\n * When the user has changed tabindex while the element is disabled,\n * the observer reverts tabindex to -1 and rather saves the new tabindex value to apply it later.\n * The new value will be applied as soon as the element becomes enabled.\n *\n * @protected\n */\n _tabindexChanged(tabindex) {\n if (this.disabled && tabindex !== -1) {\n this._lastTabIndex = tabindex;\n this.tabindex = -1;\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { css } from 'lit';\n\nexport const buttonStyles = css`\n :host {\n display: inline-block;\n position: relative;\n outline: none;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Aligns the button with form fields when placed on the same line.\n Note, to make it work, the form fields should have the same \"::before\" pseudo-element. */\n .vaadin-button-container::before {\n content: '\\\\2003';\n display: inline-block;\n width: 0;\n max-height: 100%;\n }\n\n .vaadin-button-container {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n width: 100%;\n height: 100%;\n min-height: inherit;\n text-shadow: inherit;\n }\n\n [part='prefix'],\n [part='suffix'] {\n flex: none;\n }\n\n [part='label'] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n @media (forced-colors: active) {\n :host {\n outline: 1px solid;\n outline-offset: -1px;\n }\n\n :host([focused]) {\n outline-width: 2px;\n }\n\n :host([disabled]) {\n outline-color: GrayText;\n }\n }\n`;\n\nexport const buttonTemplate = (html) => html`\n <div class=\"vaadin-button-container\">\n <span part=\"prefix\" aria-hidden=\"true\">\n <slot name=\"prefix\"></slot>\n </span>\n <span part=\"label\">\n <slot></slot>\n </span>\n <span part=\"suffix\" aria-hidden=\"true\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n <slot name=\"tooltip\"></slot>\n`;\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { ActiveMixin } from '@vaadin/a11y-base/src/active-mixin.js';\nimport { FocusMixin } from '@vaadin/a11y-base/src/focus-mixin.js';\nimport { TabindexMixin } from '@vaadin/a11y-base/src/tabindex-mixin.js';\n\n/**\n * A mixin providing common button functionality.\n *\n * @polymerMixin\n * @mixes ActiveMixin\n * @mixes FocusMixin\n * @mixes TabindexMixin\n */\nexport const ButtonMixin = (superClass) =>\n class ButtonMixinClass extends ActiveMixin(TabindexMixin(FocusMixin(superClass))) {\n static get properties() {\n return {\n /**\n * Indicates whether the element can be focused and where it participates in sequential keyboard navigation.\n *\n * @override\n * @protected\n */\n tabindex: {\n type: Number,\n value: 0,\n reflectToAttribute: true,\n },\n };\n }\n\n /**\n * By default, `Space` is the only possible activation key for a focusable HTML element.\n * Nonetheless, the button is an exception as it can be also activated by pressing `Enter`.\n * See the \"Keyboard Support\" section in https://www.w3.org/TR/wai-aria-practices/examples/button/button.html.\n *\n * @protected\n * @override\n */\n get _activeKeys() {\n return ['Enter', ' '];\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n // By default, if the user hasn't provided a custom role,\n // the role attribute is set to \"button\".\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n }\n\n /**\n * Since the button component is designed on the base of the `[role=button]` attribute,\n * and doesn't have a native <button> inside, in order to be fully accessible from the keyboard,\n * it should manually fire the `click` event once an activation key is pressed,\n * as it follows from the WAI-ARIA specifications:\n * https://www.w3.org/TR/wai-aria-practices-1.1/#button\n *\n * According to the UI Events specifications,\n * the `click` event should be fired exactly on `keydown`:\n * https://www.w3.org/TR/uievents/#event-type-keydown\n *\n * @param {KeyboardEvent} event\n * @protected\n * @override\n */\n _onKeyDown(event) {\n super._onKeyDown(event);\n\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return;\n }\n\n if (this._activeKeys.includes(event.key)) {\n event.preventDefault();\n\n // `DisabledMixin` overrides the standard `click()` method\n // so that it doesn't fire the `click` event when the element is disabled.\n this.click();\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { html, PolymerElement } from '@polymer/polymer/polymer-element.js';\nimport { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';\nimport { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js';\nimport { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { buttonStyles, buttonTemplate } from './vaadin-button-base.js';\nimport { ButtonMixin } from './vaadin-button-mixin.js';\n\nregisterStyles('vaadin-button', buttonStyles, { moduleId: 'vaadin-button-styles' });\n\n/**\n * `<vaadin-button>` is an accessible and customizable button that allows users to perform actions.\n *\n * ```html\n * <vaadin-button>Press me</vaadin-button>\n * ```\n *\n * ### Styling\n *\n * The following shadow DOM parts are available for styling:\n *\n * Part name | Description\n * ----------|-------------\n * `label` | The label (text) inside the button.\n * `prefix` | A slot for content before the label (e.g. an icon).\n * `suffix` | A slot for content after the label (e.g. an icon).\n *\n * The following attributes are available for styling:\n *\n * Attribute | Description\n * -------------|-------------\n * `active` | Set when the button is pressed down, either with mouse, touch or the keyboard.\n * `disabled` | Set when the button is disabled.\n * `focus-ring` | Set when the button is focused using the keyboard.\n * `focused` | Set when the button is focused.\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes ButtonMixin\n * @mixes ControllerMixin\n * @mixes ElementMixin\n * @mixes ThemableMixin\n */\nclass Button extends ButtonMixin(ElementMixin(ThemableMixin(ControllerMixin(PolymerElement)))) {\n static get is() {\n return 'vaadin-button';\n }\n\n static get template() {\n return buttonTemplate(html);\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._tooltipController = new TooltipController(this);\n this.addController(this._tooltipController);\n }\n}\n\ndefineCustomElement(Button);\n\nexport { Button };\n","import '@vaadin/vaadin-lumo-styles/color.js';\nimport '@vaadin/vaadin-lumo-styles/sizing.js';\nimport '@vaadin/vaadin-lumo-styles/spacing.js';\nimport '@vaadin/vaadin-lumo-styles/style.js';\nimport '@vaadin/vaadin-lumo-styles/typography.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nconst button = css`\n :host {\n /* Sizing */\n --lumo-button-size: var(--lumo-size-m);\n min-width: var(--vaadin-button-min-width, calc(var(--_button-size) * 2));\n height: var(--_button-size);\n padding: var(--vaadin-button-padding, 0 calc(var(--_button-size) / 3 + var(--lumo-border-radius-m) / 2));\n margin: var(--vaadin-button-margin, var(--lumo-space-xs) 0);\n box-sizing: border-box;\n /* Style */\n font-family: var(--lumo-font-family);\n font-size: var(--vaadin-button-font-size, var(--lumo-font-size-m));\n font-weight: var(--vaadin-button-font-weight, 500);\n color: var(--_lumo-button-text-color);\n background: var(--_lumo-button-background);\n border: var(--vaadin-button-border, none);\n border-radius: var(--vaadin-button-border-radius, var(--lumo-border-radius-m));\n cursor: var(--lumo-clickable-cursor);\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n flex-shrink: 0;\n --_button-size: var(--vaadin-button-height, var(--lumo-button-size));\n --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));\n --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);\n /* Used by notification */\n --_lumo-button-background: var(--vaadin-button-background, var(--lumo-contrast-5pct));\n --_lumo-button-text-color: var(--vaadin-button-text-color, var(--lumo-primary-text-color));\n --_lumo-button-primary-background: var(--vaadin-button-primary-background, var(--lumo-primary-color));\n --_lumo-button-primary-text-color: var(--vaadin-button-primary-text-color, var(--lumo-primary-contrast-color));\n }\n\n /* Set only for the internal parts so we don't affect the host vertical alignment */\n [part='label'],\n [part='prefix'],\n [part='suffix'] {\n line-height: var(--lumo-line-height-xs);\n }\n\n [part='label'] {\n padding: calc(var(--lumo-button-size) / 6) 0;\n }\n\n :host([theme~='small']) {\n font-size: var(--lumo-font-size-s);\n --lumo-button-size: var(--lumo-size-s);\n }\n\n :host([theme~='large']) {\n font-size: var(--lumo-font-size-l);\n --lumo-button-size: var(--lumo-size-l);\n }\n\n /* For interaction states */\n :host::before,\n :host::after {\n content: '';\n /* We rely on the host always being relative */\n position: absolute;\n z-index: 1;\n inset: 0;\n background-color: currentColor;\n border-radius: inherit;\n opacity: 0;\n pointer-events: none;\n }\n\n /* Hover */\n\n @media (any-hover: hover) {\n :host(:hover)::before {\n opacity: 0.02;\n }\n }\n\n /* Active */\n\n :host::after {\n transition: opacity 1.4s, transform 0.1s;\n filter: blur(8px);\n }\n\n :host([active])::before {\n opacity: 0.05;\n transition-duration: 0s;\n }\n\n :host([active])::after {\n opacity: 0.1;\n transition-duration: 0s, 0s;\n transform: scale(0);\n }\n\n /* Keyboard focus */\n\n :host([focus-ring]) {\n box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);\n }\n\n :host([theme~='primary'][focus-ring]) {\n box-shadow: 0 0 0 1px var(--lumo-base-color), 0 0 0 3px var(--lumo-primary-color-50pct);\n }\n\n /* Types (primary, tertiary, tertiary-inline */\n\n :host([theme~='tertiary']),\n :host([theme~='tertiary-inline']) {\n --_background: transparent !important;\n background: var(--vaadin-button-tertiary-background, var(--_background));\n min-width: 0;\n }\n\n :host([theme~='tertiary']) {\n border: var(--vaadin-button-tertiary-border, none);\n color: var(--vaadin-button-tertiary-text-color, var(--lumo-primary-text-color));\n font-weight: var(--vaadin-button-tertiary-font-weight, 500);\n padding: var(--vaadin-button-tertiary-padding, 0 calc(var(--_button-size) / 6));\n }\n\n :host([theme~='tertiary-inline'])::before {\n display: none;\n }\n\n :host([theme~='tertiary-inline']) {\n margin: 0;\n height: auto;\n padding: 0;\n line-height: inherit;\n font-size: inherit;\n }\n\n :host([theme~='tertiary-inline']) [part='label'] {\n padding: 0;\n overflow: visible;\n line-height: inherit;\n }\n\n :host([theme~='primary']) {\n background: var(--_lumo-button-primary-background);\n border: var(--vaadin-button-primary-border, none);\n color: var(--_lumo-button-primary-text-color);\n font-weight: var(--vaadin-button-primary-font-weight, 600);\n min-width: calc(var(--lumo-button-size) * 2.5);\n }\n\n :host([theme~='primary'])::before {\n background-color: black;\n }\n\n @media (any-hover: hover) {\n :host([theme~='primary']:hover)::before {\n opacity: 0.05;\n }\n }\n\n :host([theme~='primary'][active])::before {\n opacity: 0.1;\n }\n\n :host([theme~='primary'][active])::after {\n opacity: 0.2;\n }\n\n /* Colors (success, error, contrast) */\n\n :host([theme~='success']) {\n color: var(--lumo-success-text-color);\n }\n\n :host([theme~='success'][theme~='primary']) {\n background-color: var(--lumo-success-color);\n color: var(--lumo-success-contrast-color);\n }\n\n :host([theme~='error']) {\n color: var(--lumo-error-text-color);\n }\n\n :host([theme~='error'][theme~='primary']) {\n background-color: var(--lumo-error-color);\n color: var(--lumo-error-contrast-color);\n }\n\n :host([theme~='contrast']) {\n color: var(--lumo-contrast);\n }\n\n :host([theme~='contrast'][theme~='primary']) {\n background-color: var(--lumo-contrast);\n color: var(--lumo-base-color);\n }\n\n /* Disabled state. Keep selectors after other color variants. */\n\n :host([disabled]) {\n pointer-events: none;\n color: var(--lumo-disabled-text-color);\n }\n\n :host([theme~='primary'][disabled]) {\n background-color: var(--lumo-contrast-30pct);\n color: var(--lumo-base-color);\n }\n\n :host([theme~='primary'][disabled]) [part] {\n opacity: 0.7;\n }\n\n /* Icons */\n\n [part] ::slotted(vaadin-icon) {\n display: inline-block;\n width: var(--lumo-icon-size-m);\n height: var(--lumo-icon-size-m);\n }\n\n /* Vaadin icons are based on a 16x16 grid (unlike Lumo and Material icons with 24x24), so they look too big by default */\n [part] ::slotted(vaadin-icon[icon^='vaadin:']) {\n padding: 0.25em;\n box-sizing: border-box !important;\n }\n\n [part='prefix'] {\n margin-left: -0.25em;\n margin-right: 0.25em;\n }\n\n [part='suffix'] {\n margin-left: 0.25em;\n margin-right: -0.25em;\n }\n\n /* Icon-only */\n\n :host([theme~='icon']:not([theme~='tertiary-inline'])) {\n min-width: var(--lumo-button-size);\n padding-left: calc(var(--lumo-button-size) / 4);\n padding-right: calc(var(--lumo-button-size) / 4);\n }\n\n :host([theme~='icon']) [part='prefix'],\n :host([theme~='icon']) [part='suffix'] {\n margin-left: 0;\n margin-right: 0;\n }\n\n /* RTL specific styles */\n\n :host([dir='rtl']) [part='prefix'] {\n margin-left: 0.25em;\n margin-right: -0.25em;\n }\n\n :host([dir='rtl']) [part='suffix'] {\n margin-left: -0.25em;\n margin-right: 0.25em;\n }\n\n :host([dir='rtl'][theme~='icon']) [part='prefix'],\n :host([dir='rtl'][theme~='icon']) [part='suffix'] {\n margin-left: 0;\n margin-right: 0;\n }\n`;\n\nregisterStyles('vaadin-button', button, { moduleId: 'lumo-button' });\n\nexport { button };\n"],"names":["testUserAgent","regexp","test","navigator","userAgent","testPlatform","platform","isAndroid","isChrome","vendor","isFirefox","isIPad","maxTouchPoints","isIOS","isSafari","isTouch","document","createEvent","e","DisabledMixin","superclass","properties","disabled","type","Boolean","value","observer","reflectToAttribute","_disabledChanged","this","_setAriaDisabled","setAttribute","removeAttribute","click","super","KeyboardMixin","ready","addEventListener","event","_onKeyDown","_onKeyUp","key","_onEnter","_onEscape","_event","stylesMap","WeakMap","SlotStylesMixin","slotStyles","connectedCallback","__applySlotStyles","root","getRootNode","rootStyles","has","set","Set","get","getRootStyles","forEach","styles","style","createElement","window","DESCOPE_NONCE","textContent","head","appendChild","insertBefore","firstChild","insertStyles","add","TabindexMixin","tabindex","Number","_lastTabIndex","oldDisabled","undefined","_tabindexChanged","buttonStyles","ButtonMixin","superClass","_activeKeys","hasAttribute","altKey","shiftKey","ctrlKey","metaKey","includes","preventDefault","moduleId","Button","is","template","_tooltipController","addController","button"],"sourceRoot":""}