@descope/web-components-ui 1.0.378 → 1.0.380

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. package/dist/cjs/index.cjs.js +3166 -1257
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.esm.js +4738 -2826
  5. package/dist/index.esm.js.map +1 -1
  6. package/dist/umd/1224.js +1 -1
  7. package/dist/umd/1438.js +3 -3
  8. package/dist/umd/1612.js +1 -1
  9. package/dist/umd/2773.js +4 -4
  10. package/dist/umd/3830.js +1 -1
  11. package/dist/umd/3951.js +1 -1
  12. package/dist/umd/3966.js +319 -0
  13. package/dist/umd/4024.js +1 -1
  14. package/dist/umd/4052.js +1 -1
  15. package/dist/umd/4392.js +1 -1
  16. package/dist/umd/4525.js +1 -1
  17. package/dist/umd/4978.js +1 -1
  18. package/dist/umd/5135.js +2 -2
  19. package/dist/umd/5517.js +1 -1
  20. package/dist/umd/5778.js +275 -0
  21. package/dist/umd/5806.js +1 -1
  22. package/dist/umd/5977.js +140 -0
  23. package/dist/umd/5977.js.LICENSE.txt +29 -0
  24. package/dist/umd/63.js +4 -4
  25. package/dist/umd/6770.js +1 -1
  26. package/dist/umd/7056.js +3 -3
  27. package/dist/umd/7284.js +1 -1
  28. package/dist/umd/7541.js +449 -0
  29. package/dist/umd/7541.js.LICENSE.txt +17 -0
  30. package/dist/umd/7911.js +2 -2
  31. package/dist/umd/{4028.js → 8060.js} +3 -3
  32. package/dist/umd/8137.js +1 -1
  33. package/dist/umd/8191.js +2 -2
  34. package/dist/umd/8655.js +123 -0
  35. package/dist/umd/9314.js +2 -2
  36. package/dist/umd/9423.js +6 -6
  37. package/dist/umd/9562.js +1 -1
  38. package/dist/umd/DescopeDev.js +1 -1
  39. package/dist/umd/descope-apps-list-index-js.js +1 -1
  40. package/dist/umd/descope-avatar-index-js.js +1 -1
  41. package/dist/umd/descope-button-index-js.js +1 -1
  42. package/dist/umd/descope-combo-box-index-js.js +5 -5
  43. package/dist/umd/descope-date-field-descope-calendar-index-js.js +1 -0
  44. package/dist/umd/descope-date-field-index-js.js +1 -0
  45. package/dist/umd/descope-email-field-index-js.js +1 -1
  46. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js +2 -2
  47. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js +2 -2
  48. package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js +1 -1
  49. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js +4 -4
  50. package/dist/umd/descope-new-password-index-js.js +1 -1
  51. package/dist/umd/descope-number-field-index-js.js +1 -1
  52. package/dist/umd/descope-passcode-index-js.js +1 -1
  53. package/dist/umd/descope-radio-group-index-js.js +1 -1
  54. package/dist/umd/descope-text-field-index-js.js +1 -1
  55. package/dist/umd/index.js +1 -1
  56. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
  57. package/dist/umd/phone-fields-descope-phone-field-descope-phone-field-internal-index-js.js +1 -1
  58. package/dist/umd/phone-fields-descope-phone-field-index-js.js +1 -1
  59. package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js +1 -1
  60. package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +1 -1
  61. package/package.json +11 -5
  62. package/src/components/descope-combo-box/ComboBoxClass.js +7 -1
  63. package/src/components/descope-date-field/DateCounterClass.js +83 -0
  64. package/src/components/descope-date-field/DateFieldClass.js +675 -0
  65. package/src/components/descope-date-field/consts.js +55 -0
  66. package/src/components/descope-date-field/descope-calendar/CalendarClass.js +666 -0
  67. package/src/components/descope-date-field/descope-calendar/helpers.js +186 -0
  68. package/src/components/descope-date-field/descope-calendar/index.js +9 -0
  69. package/src/components/descope-date-field/formats.js +49 -0
  70. package/src/components/descope-date-field/helpers.js +72 -0
  71. package/src/components/descope-date-field/icons.js +14 -0
  72. package/src/components/descope-date-field/index.js +10 -0
  73. package/src/components/descope-text-field/textFieldMappings.js +2 -0
  74. package/src/index.cjs.js +2 -0
  75. package/src/index.d.ts +2 -0
  76. package/src/index.js +2 -1
  77. package/src/mixins/inputValidationMixin.js +8 -2
  78. package/src/mixins/portalMixin.js +6 -3
  79. package/src/theme/components/calendar.js +94 -0
  80. package/src/theme/components/dateField.js +63 -0
  81. package/src/theme/components/index.js +4 -0
  82. package/src/theme/components/inputWrapper.js +6 -0
  83. package/src/theme/components/textField.js +1 -0
  84. package/dist/umd/4746.js +0 -124
  85. package/dist/umd/7531.js +0 -319
  86. package/dist/umd/8866.js +0 -275
  87. package/dist/umd/9092.js +0 -1086
  88. package/dist/umd/9092.js.LICENSE.txt +0 -27
  89. package/dist/umd/descope-date-picker-index-js.js +0 -1
  90. package/src/components/descope-date-picker/index.js +0 -20
  91. /package/dist/umd/{7531.js.LICENSE.txt → 3966.js.LICENSE.txt} +0 -0
  92. /package/dist/umd/{8866.js.LICENSE.txt → 5778.js.LICENSE.txt} +0 -0
  93. /package/dist/umd/{4028.js.LICENSE.txt → 8060.js.LICENSE.txt} +0 -0
  94. /package/dist/umd/{4746.js.LICENSE.txt → 8655.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/constants.js","../../src/helpers/index.js","../../src/helpers/componentHelpers.js","../../src/helpers/themeHelpers/componentsThemeManager.js","../../src/helpers/themeHelpers/index.js","../../src/helpers/themeHelpers/colorsHelpers.js","../../src/theme/globals.js","../../src/mixins/createStyleMixin/helpers.js","../../src/mixins/createStyleMixin/index.js","../../src/mixins/draggableMixin.js","../../src/mixins/componentNameValidationMixin.js","../../src/mixins/componentsContextMixin.js","../../src/mixins/hoverableMixin.js","../../src/mixins/normalizeBooleanAttributesMixin.js","../../src/baseClasses/createBaseClass.js","../../src/helpers/mixinsHelpers.js","../../src/mixins/createProxy.js","../../node_modules/element-internals-polyfill/dist/index.js","../../src/mixins/inputValidationMixin.js","../../src/mixins/proxyInputMixin.js","../../src/mixins/portalMixin.js","../../src/mixins/changeMixin.js","../../src/mixins/inputEventsDispatchingMixin.js","../../src/mixins/externalInputHelpers.js","../../src/mixins/externalInputMixin.js","../../src/components/descope-icon/helpers.js","../../src/components/descope-icon/IconClass.js","../../src/components/descope-button/clickableMixin.js","../../src/components/descope-button/ButtonClass.js","../../src/theme/components/button.js","../../src/components/descope-text-field/textFieldMappings.js","../../src/helpers/themeHelpers/resetHelpers.js","../../src/components/descope-text-field/TextFieldClass.js","../../src/theme/components/inputWrapper.js","../../src/theme/components/textField.js","../../src/components/descope-password/passwordDraggableMixin.js","../../src/components/descope-password/PasswordClass.js","../../src/theme/components/password.js","../../src/components/descope-number-field/NumberFieldClass.js","../../src/theme/components/numberField.js","../../src/components/descope-email-field/EmailFieldClass.js","../../src/theme/components/emailField.js","../../src/components/descope-text-area/TextAreaClass.js","../../src/theme/components/textArea.js","../../src/baseClasses/createBaseInputClass.js","../../src/components/boolean-fields/descope-boolean-field-internal/BooleanFieldInternal.js","../../src/components/boolean-fields/booleanFieldMixin.js","../../src/components/boolean-fields/commonStyles.js","../../src/components/boolean-fields/descope-checkbox/CheckboxClass.js","../../src/theme/components/checkbox.js","../../src/components/boolean-fields/descope-switch-toggle/SwitchToggleClass.js","../../src/theme/components/switchToggle.js","../../src/components/descope-container/ContainerClass.js","../../src/theme/components/container.js","../../src/baseClasses/createCssVarImageClass.js","../../src/components/descope-logo/LogoClass.js","../../src/theme/components/logo.js","../../src/components/descope-totp-image/TotpImageClass.js","../../src/theme/components/totpImage.js","../../src/components/descope-notp-image/NotpImageClass.js","../../src/theme/components/notpImage.js","../../src/components/descope-text/TextClass.js","../../src/theme/components/text.js","../../src/components/descope-enriched-text/consts.js","../../src/components/descope-enriched-text/helpers.js","../../src/components/descope-enriched-text/EnrichedTextClass.js","../../src/components/descope-link/LinkClass.js","../../src/theme/components/link.js","../../src/theme/components/enrichedText.js","../../src/components/descope-divider/DividerClass.js","../../src/theme/components/divider.js","../../src/components/descope-passcode/descope-passcode-internal/PasscodeInternal.js","../../src/components/descope-loader-radial/LoaderRadialClass.js","../../src/components/descope-passcode/PasscodeClass.js","../../src/theme/components/passcode.js","../../src/components/descope-loader-linear/LoaderLinearClass.js","../../src/theme/components/loader/loaderLinear.js","../../src/theme/components/loader/loaderRadial.js","../../src/components/descope-combo-box/ComboBoxClass.js","../../src/theme/components/comboBox.js","../../src/components/descope-image/ImageClass.js","../../src/theme/components/image.js","../../src/components/phone-fields/CountryCodes.js","../../src/components/phone-fields/descope-phone-field/descope-phone-field-internal/PhoneFieldInternal.js","../../src/components/phone-fields/descope-phone-field/PhoneFieldClass.js","../../src/theme/components/phoneField.js","../../src/components/phone-fields/descope-phone-input-box-field/descope-phone-input-box-internal/PhoneFieldInternalInputBox.js","../../src/components/phone-fields/descope-phone-input-box-field/PhoneFieldInputBoxClass.js","../../src/theme/components/phoneInputBoxField.js","../../src/components/descope-new-password/descope-new-password-internal/componentName.js","../../src/components/descope-policy-validation/helpers.js","../../src/components/descope-policy-validation/PolicyValidationClass.js","../../src/components/descope-new-password/NewPasswordClass.js","../../src/theme/components/newPassword.js","../../src/components/descope-upload-file/helpers.js","../../src/components/descope-upload-file/UploadFileClass.js","../../src/theme/components/uploadFile.js","../../src/components/button-selection-group-fields/descope-button-selection-group-item/ButtonSelectionGroupItemClass.js","../../src/theme/components/buttonSelectionGroup/buttonSelectionGroupItem.js","../../src/components/button-selection-group-fields/createBaseButtonSelectionGroupInternalClass.js","../../src/components/button-selection-group-fields/descope-button-selection-group-internal/ButtonSelectionGroupInternalClass.js","../../src/components/button-selection-group-fields/baseButtonSelectionGroup.js","../../src/components/button-selection-group-fields/descope-button-selection-group/ButtonSelectionGroupClass.js","../../src/theme/components/buttonSelectionGroup/baseButtonSelectionGroup.js","../../src/theme/components/buttonSelectionGroup/buttonSelectionGroup.js","../../src/components/button-selection-group-fields/descope-button-multi-selection-group-internal/ButtonMultiSelectionGroupInternalClass.js","../../src/components/button-selection-group-fields/descope-button-multi-selection-group/ButtonMultiSelectionGroupClass.js","../../src/theme/components/buttonSelectionGroup/buttonMultiSelectionGroup.js","../../src/components/descope-modal/ModalClass.js","../../src/theme/components/modal.js","../../src/components/descope-grid/helpers.js","../../src/components/descope-grid/GridClass.js","../../src/theme/components/grid.js","../../src/components/descope-notification/descope-notification-card/NotificationCardClass.js","../../src/theme/components/notificationCard.js","../../src/components/descope-multi-select-combo-box/MultiSelectComboBoxClass.js","../../src/theme/components/multiSelectComboBox.js","../../src/components/descope-badge/BadgeClass.js","../../src/theme/components/badge.js","../../src/components/descope-avatar/AvatarClass.js","../../src/theme/components/avatar.js","../../src/components/mapping-fields/descope-mappings-field/descope-mappings-field-internal/MappingsFieldInternal.js","../../src/components/mapping-fields/descope-mappings-field/MappingsFieldClass.js","../../src/theme/components/mappingsField.js","../../src/components/descope-user-attribute/delete.svg","../../src/components/descope-user-attribute/edit.svg","../../src/components/descope-user-attribute/UserAttributeClass.js","../../src/theme/components/userAttribute.js","../../src/components/descope-user-auth-method/green-v.svg","../../src/components/descope-user-auth-method/UserAuthMethodClass.js","../../src/theme/components/userAuthMethod.js","../../src/components/mapping-fields/descope-saml-group-mappings/descope-saml-group-mappings-internal/SamlGroupMappingsInternal.js","../../src/components/mapping-fields/descope-saml-group-mappings/SamlGroupMappingsClass.js","../../src/theme/components/samlGroupMappings.js","../../src/theme/components/policyValidation.js","../../src/theme/components/icon.js","../../src/components/descope-code-snippet/helpers.js","../../src/components/descope-code-snippet/CodeSnippetClass.js","../../src/theme/components/codeSnippet.js","../../src/components/descope-radio-group/RadioButtonClass.js","../../src/components/descope-radio-group/RadioGroupClass.js","../../src/theme/components/radioGroup/radioGroup.js","../../src/theme/components/radioGroup/radioButton.js","../../src/mixins/activableMixin.js","../../src/components/descope-list/ListItemClass.js","../../src/components/descope-list/ListClass.js","../../src/theme/components/list/list.js","../../src/theme/components/list/listItem.js","../../src/mixins/createDynamicDataMixin.js","../../src/components/descope-apps-list/AppsListClass.js","../../src/theme/components/appsList.js","../../src/theme/components/index.js","../../src/theme/index.js","../../src/darkTheme.js","../../src/components/descope-recaptcha/RecaptchaClass.js","../../src/components/descope-notification/NotificationClass.js"],"sourcesContent":["export const DESCOPE_PREFIX = 'descope';\nexport const CSS_SELECTOR_SPECIFIER_MULTIPLY = 3;\nexport const BASE_THEME_SECTION = 'host';\nexport const PORTAL_THEME_PREFIX = '@';\n","export const kebabCase = (str) =>\n str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_.]+/g, '-')\n .toLowerCase();\n\nexport const kebabCaseJoin = (...args) => kebabCase(args.filter((arg) => !!arg).join('-'));\n\nexport const compose =\n (...fns) =>\n (val) =>\n fns.reduceRight((res, fn) => fn(res), val);\n\nexport const upperFirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);\n\nexport const isFunction = (maybeFunc) => typeof maybeFunc === 'function';\n\nexport const isUrl = (maybeUrl) => {\n try {\n // eslint-disable-next-line no-new\n new URL(maybeUrl);\n\n return true;\n } catch (e) {\n return false;\n }\n};\n\n/**\n * Compares two arrays unorderedly.\n * @param {Array} arr1 - The first array to compare.\n * @param {Array} arr2 - The second array to compare.\n * @returns {boolean} - Returns true if the arrays are equal unorderedly, false otherwise.\n */\nexport const compareArraysUnordered = (arr1, arr2) => {\n if (!Array.isArray(arr1) || !Array.isArray(arr2)) {\n return false;\n }\n\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n const sortedArr1 = arr1.slice().sort();\n const sortedArr2 = arr2.slice().sort();\n\n for (let i = 0; i < sortedArr1.length; i++) {\n if (sortedArr1[i] !== sortedArr2[i]) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const toTitle = (str) =>\n str\n .replace(/([A-Z])/g, ' $1')\n .trim()\n .split(' ')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n","import { kebabCaseJoin } from '.';\nimport { DESCOPE_PREFIX } from '../constants';\n\nexport const observeAttributes = (ele, callback, { excludeAttrs = [], includeAttrs = [] }) => {\n // sync all attrs on init\n const filteredAttrs = Array.from(ele.attributes)\n .filter(\n (attr) =>\n !excludeAttrs.includes(attr.name) &&\n (!includeAttrs.length || includeAttrs.includes(attr.name))\n )\n .map((attr) => attr.name);\n\n callback(filteredAttrs);\n\n const observer = new MutationObserver((mutationsList) => {\n mutationsList.forEach((mutation) => {\n if (\n mutation.type === 'attributes' &&\n !excludeAttrs.includes(mutation.attributeName) &&\n (!includeAttrs.length || includeAttrs.includes(mutation.attributeName))\n ) {\n callback([mutation.attributeName]);\n }\n });\n });\n\n observer.observe(ele, { attributes: true });\n};\n\n// calling the callback with this object: { addedNodes, removedNodes }\nexport const observeChildren = (ele, callback) => {\n callback({ addedNodes: Array.from(ele.children), removedNodes: [] });\n\n const observer = new MutationObserver((mutationsList) => {\n mutationsList.forEach((mutation) => {\n if (mutation.type === 'childList' || mutation.type === 'characterData') {\n callback(mutation);\n }\n });\n });\n\n observer.observe(ele, { childList: true, characterData: true, subtree: true });\n};\n\nconst createSyncAttrsCb =\n (srcEle, targetEle, mapAttrs = {}) =>\n (attrNames) => {\n attrNames.forEach((attrName) => {\n const targetAttrName = mapAttrs[attrName] || attrName;\n const srcAttrVal = srcEle.getAttribute(attrName);\n if (srcAttrVal !== null) {\n if (targetEle.getAttribute(targetAttrName) !== srcAttrVal) {\n targetEle.setAttribute(targetAttrName, srcAttrVal);\n }\n } else {\n targetEle.removeAttribute(targetAttrName);\n }\n });\n };\n\nexport const syncAttrs = (ele1, ele2, options) => {\n observeAttributes(ele1, createSyncAttrsCb(ele1, ele2), options);\n observeAttributes(ele2, createSyncAttrsCb(ele2, ele1), options);\n};\n\nexport const getComponentName = (name) => kebabCaseJoin(DESCOPE_PREFIX, name);\n\nexport const getCssVarName = (...args) => `--${kebabCaseJoin(...args)}`;\n\nexport const forwardAttrs = (source, dest, options = {}) => {\n observeAttributes(source, createSyncAttrsCb(source, dest, options.mapAttrs), options);\n};\n\nexport const forwardProps = (src, target, props = []) => {\n if (!props.length) return;\n\n const config = props.reduce(\n (acc, prop) =>\n Object.assign(acc, {\n [prop]: {\n get() {\n return src[prop];\n },\n set(v) {\n // eslint-disable-next-line no-param-reassign\n src[prop] = v;\n },\n },\n }),\n {}\n );\n\n Object.defineProperties(target, config);\n};\n","class ComponentsThemeManager {\n static mountOnPropName = 'DescopeThemeManager';\n\n #themes = {};\n\n #currentThemeName = 'light';\n\n #callbacks = new Set();\n\n #notify() {\n this.#callbacks.forEach((cb) => cb?.());\n }\n\n get currentThemeName() {\n return this.#currentThemeName;\n }\n\n set currentThemeName(themeName) {\n this.#currentThemeName = themeName;\n this.#notify();\n }\n\n get currentTheme() {\n return this.#themes[this.currentThemeName];\n }\n\n onCurrentThemeChange(cb) {\n this.#callbacks.add(cb);\n\n return () => {\n this.#callbacks.delete(cb);\n };\n }\n\n set themes(themes) {\n this.#themes = themes;\n this.#notify();\n }\n\n get hasThemes() {\n return !!Object.keys(this.#themes).length;\n }\n}\n\nexport const componentsThemeManager = new ComponentsThemeManager();\n","import merge from 'lodash.merge';\nimport { BASE_THEME_SECTION, DESCOPE_PREFIX, PORTAL_THEME_PREFIX } from '../../constants';\nimport { isUrl, kebabCase } from '..';\nimport { getComponentName, getCssVarName } from '../componentHelpers';\n\nconst getVarName = (path) => getCssVarName(DESCOPE_PREFIX, ...path);\n\n// lodash.set alternative\nconst set = (obj, path, value) => {\n const pathArray = Array.isArray(path) ? path : path.match(/([^[.\\]])+/g);\n\n pathArray.reduce((acc, key, i) => {\n if (acc[key] === undefined) acc[key] = {};\n if (i === pathArray.length - 1) acc[key] = value;\n return acc[key];\n }, obj);\n\n return obj;\n};\n\nconst transformTheme = (theme, path, getTransformation) => {\n return Object.entries(theme).reduce((acc, [key, val]) => {\n if (val?.constructor !== Object) {\n return merge(acc, getTransformation(path.concat(key), val));\n }\n return merge(acc, transformTheme(val, [...path, key], getTransformation));\n }, {});\n};\n\nconst stringifyArray = (strArr) =>\n strArr.map((str) => (str.includes(' ') ? `\"${str}\"` : str)).join(', ');\n\nconst getCssVarValue = (val) => {\n switch (true) {\n case Array.isArray(val):\n return stringifyArray(val);\n case isUrl(val):\n return `url(${val})`;\n default:\n return val;\n }\n};\n\nexport const themeToCSSVarsObj = (theme) =>\n transformTheme(theme, [], (path, val) => ({\n [getVarName(path)]: getCssVarValue(val),\n }));\n\nexport const getThemeRefs = (theme, prefix) =>\n transformTheme(theme, [], (path) =>\n set({}, path, `var(${getVarName(prefix ? [prefix, ...path] : path)})`)\n );\n\nexport const getThemeVars = (theme, prefix) =>\n transformTheme(theme, [], (path) => set({}, path, getVarName(prefix ? [prefix, ...path] : path)));\n\nexport const globalsThemeToStyle = (theme, themeName = '') => {\n const style = Object.entries(themeToCSSVarsObj(theme)).reduce(\n (acc, entry) => `${acc}${entry.join(':')};\\n`,\n ''\n );\n\n if (!themeName) return style;\n\n return `*[data-theme=\"${themeName}\"] {${style}}`;\n};\n\nconst componentsThemeToStyleObj = (componentsTheme) =>\n transformTheme(componentsTheme, [], (path, val) => {\n const [component, ...restPath] = path;\n const property = restPath.pop();\n const componentName = getComponentName(component);\n\n if (property === 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(componentName, `theme value: \"${val}\" is mapped to an invalid property`);\n }\n\n // we need a support for portal components theme (e.g. overlay)\n // this allows us to generate those themes under different sections\n // if the theme has root level attribute that starts with #\n // we are generating a new theme\n let themeName = BASE_THEME_SECTION;\n\n if (restPath[0] && restPath[0].startsWith(PORTAL_THEME_PREFIX)) {\n themeName = restPath.shift();\n }\n\n // do not start with underscore -> key:value, must have 2 no underscore attrs in a row\n // starts with underscore -> attribute selector\n const attrsSelector = restPath.reduce((acc, section, idx) => {\n if (section.startsWith('_')) return `${acc}[${kebabCase(section.replace(/^_/, ''))}=\"true\"]`;\n\n const nextSection = restPath[idx + 1];\n\n if (typeof nextSection !== 'string' || nextSection.startsWith('_')) {\n // eslint-disable-next-line no-console\n console.error(\n 'theme generator',\n `your theme structure is invalid, attribute \"${section}\" is followed by \"${nextSection}\" which is not allowed`\n );\n return acc;\n }\n\n return `${acc}[${kebabCase(section)}=\"${restPath.splice(idx + 1, 1).join('')}\"]`;\n }, '');\n\n const selector = `:host${attrsSelector ? `(${attrsSelector})` : ''}`;\n\n return {\n [componentName]: {\n [themeName]: {\n [selector]: {\n [property]: getCssVarValue(val),\n },\n },\n },\n };\n });\n\nconst componentsThemeToStyle = (componentsTheme) =>\n Object.entries(componentsTheme).reduce(\n (acc, [selector, vars]) =>\n `${acc}${selector} { \\n${Object.entries(vars)\n .map(([key, val]) => `${key}: ${val}`)\n .join(';\\n')} \\n}\\n\\n`,\n ''\n );\n\nexport const createComponentsTheme = (componentsTheme) => {\n const styleObj = componentsThemeToStyleObj(componentsTheme);\n\n return Object.keys(styleObj).reduce((acc, componentName) => {\n const componentThemes = styleObj[componentName];\n\n return Object.assign(acc, {\n [componentName]: Object.keys(componentThemes).reduce(\n (res, theme) =>\n Object.assign(res, { [theme]: componentsThemeToStyle(componentThemes[theme]) }),\n {}\n ),\n });\n }, {});\n};\n\nexport const themeToStyle = ({ globals, components }, themeName) => ({\n globals: globalsThemeToStyle(globals, themeName),\n components: createComponentsTheme(components),\n});\n\nexport const useVar = (varName) => `var(${varName})`;\n\nexport const createHelperVars = (theme, prefix) => {\n const res = transformTheme(theme, [], (path, value) => {\n const modifiedPath = [...path];\n const property = modifiedPath.splice(-1);\n const varName = getCssVarName(prefix, property);\n\n const vars = { [property]: varName };\n const useVars = { [property]: useVar(varName) };\n\n return { theme: set({}, [...modifiedPath, varName], value), useVars, vars };\n });\n\n return [res.theme, res.useVars, res.vars];\n};\n\nexport { componentsThemeManager } from './componentsThemeManager';\n","import Color from 'color';\n\nconst colorGaps = {\n darkLight: 0.4,\n highlight: 0.8,\n contrast: 1,\n edgeColor: {\n darkLight: 0.25,\n highlight: 0.1,\n },\n};\n\nconst darken = (c, percentage) => c.darken(percentage).hex();\n\nconst contrast = (c) => {\n const isDark = c.isDark();\n return c\n .mix(Color(isDark ? 'white' : 'black'), colorGaps.contrast)\n .saturate(1)\n .hex();\n};\n\nconst lighten = (c, percentage) => {\n const isDark = c.lightness() < 0.5;\n\n if (isDark) {\n return c.lightness(percentage * 100).hex();\n }\n\n return c.lighten(percentage).hex();\n};\n\nconst isNearBlack = (color) => color.luminosity() < 0.01;\nconst isNearWhite = (color) => color.luminosity() > 0.99;\n\nconst generateDarkColor = (color, theme) => {\n if (theme === 'dark') {\n return isNearWhite(color)\n ? darken(color, colorGaps.edgeColor.darkLight)\n : lighten(color, colorGaps.darkLight);\n }\n\n return isNearBlack(color)\n ? lighten(color, colorGaps.edgeColor.darkLight)\n : darken(color, colorGaps.darkLight);\n};\n\nconst generateLightColor = (color, theme) => {\n if (theme === 'dark') {\n return isNearBlack(color)\n ? lighten(color, colorGaps.edgeColor.darkLight)\n : darken(color, colorGaps.darkLight);\n }\n\n return isNearWhite(color)\n ? darken(color, colorGaps.edgeColor.darkLight)\n : lighten(color, colorGaps.darkLight);\n};\n\nconst generateHighlightColor = (color, theme) => {\n if (theme === 'dark') {\n return isNearBlack(color)\n ? lighten(color, colorGaps.edgeColor.highlight)\n : darken(color, colorGaps.highlight);\n }\n\n return isNearWhite(color)\n ? darken(color, colorGaps.edgeColor.highlight)\n : lighten(color, colorGaps.highlight);\n};\n\nexport const genColor = (color, theme) => {\n const mainColor = new Color(color.main || color);\n\n const res = {\n main: mainColor.hex(),\n dark: color.dark || generateDarkColor(mainColor, theme),\n light: color.light || generateLightColor(mainColor, theme),\n highlight: color.highlight || generateHighlightColor(mainColor, theme),\n contrast: color.contrast || contrast(mainColor),\n };\n\n return res;\n};\n\nexport const genColors = (colors) => {\n return Object.keys(colors).reduce((acc, colorName) => {\n const currentColor = colors[colorName];\n\n return Object.assign(acc, {\n [colorName]: genColor(currentColor),\n });\n }, {});\n};\n","import { getThemeRefs, getThemeVars } from '../helpers/themeHelpers';\nimport { genColors } from '../helpers/themeHelpers/colorsHelpers';\n\nconst direction = 'ltr';\n\nexport const colors = genColors({\n surface: {\n main: '#ffffff',\n dark: '#636c74',\n light: '#cfd3d7',\n highlight: '#f4f5f6',\n contrast: '#181a1c',\n },\n primary: {\n main: '#006af5',\n dark: '#004094',\n light: '#71aeff',\n highlight: '#f0f6ff',\n contrast: '#ffffff',\n },\n secondary: {\n main: '#802ed6',\n dark: '#6410bc',\n light: '#be89f5',\n highlight: '#ede7f6',\n contrast: '#ffffff',\n },\n success: {\n main: '#008000',\n dark: '#005700',\n light: '#8bc38b',\n highlight: '#f5faf5',\n contrast: '#ffffff',\n },\n error: {\n main: '#e21d12',\n dark: '#b3170f',\n light: '#f4807a',\n highlight: '#fef1f1',\n contrast: '#ffffff',\n },\n});\n\nconst fonts = {\n font1: {\n family: [\n 'Roboto',\n 'ui-sans-serif',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n 'Segoe UI',\n 'Helvetica Neue',\n 'Arial',\n 'Noto Sans',\n 'sans-serif',\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol',\n 'Noto Color Emoji',\n ],\n label: 'Roboto',\n url: 'https://fonts.googleapis.com/css?family=Roboto:100,200,300,400,500,600,700,800,900',\n },\n font2: {\n family: [\n 'ui-sans-serif',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n 'Arial',\n 'Noto Sans',\n 'sans-serif',\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol',\n 'Noto Color Emoji',\n ],\n label: 'Sans Serif',\n },\n};\n\nconst fontsRef = getThemeRefs({ fonts }).fonts;\n\nconst typography = {\n h1: {\n font: fontsRef.font1.family,\n weight: '900',\n size: '48px',\n },\n h2: {\n font: fontsRef.font1.family,\n weight: '800',\n size: '38px',\n },\n h3: {\n font: fontsRef.font1.family,\n weight: '600',\n size: '28px',\n },\n subtitle1: {\n font: fontsRef.font2.family,\n weight: '500',\n size: '22px',\n },\n subtitle2: {\n font: fontsRef.font2.family,\n weight: '400',\n size: '20px',\n },\n body1: {\n font: fontsRef.font1.family,\n weight: '400',\n size: '16px',\n },\n body2: {\n font: fontsRef.font1.family,\n weight: '400',\n size: '14px',\n },\n};\n\nconst spacing = {\n xs: '2px',\n sm: '4px',\n md: '8px',\n lg: '16px',\n xl: '32px',\n};\n\nconst border = {\n xs: '1px',\n sm: '2px',\n md: '3px',\n lg: '4px',\n xl: '5px',\n};\n\nconst radius = {\n xs: '5px',\n sm: '10px',\n md: '15px',\n lg: '20px',\n xl: '25px',\n '2xl': '30px',\n '3xl': '35px',\n};\n\nconst shadow = {\n wide: {\n sm: '0 2px 3px -0.5px',\n md: '0 4px 6px -1px',\n lg: '0 10px 15px -3px',\n xl: '0 20px 25px -5px',\n '2xl': '0 25px 50px -12px',\n },\n narrow: {\n sm: '0 1px 2px -1px',\n md: '0 2px 4px -2px',\n lg: '0 4px 6px -4px',\n xl: '0 8px 10px -6px',\n '2xl': '0 16px 16px -8px',\n },\n};\n\nconst globals = {\n colors,\n typography,\n spacing,\n border,\n radius,\n shadow,\n fonts,\n direction,\n};\n\nexport default globals;\nexport const vars = getThemeVars(globals);\n","import { isFunction, kebabCase } from '../../helpers';\nimport { getCssVarName } from '../../helpers/componentHelpers';\n\nconst createCssVar = (varName, fallback) => `var(${varName}${fallback ? `, ${fallback}` : ''})`;\n\nconst createCssSelector = (baseSelector = '', relativeSelectorOrSelectorFn = '') =>\n isFunction(relativeSelectorOrSelectorFn)\n ? relativeSelectorOrSelectorFn(baseSelector)\n : `${baseSelector}${\n /^[A-Za-z]/.test(relativeSelectorOrSelectorFn)\n ? ` ${relativeSelectorOrSelectorFn}`\n : relativeSelectorOrSelectorFn\n }`;\n\nclass StyleBuilder {\n constructor() {\n this.styleMap = new Map();\n }\n\n add(selector, property, value) {\n if (!this.styleMap.has(selector)) {\n this.styleMap.set(selector, []);\n }\n\n this.styleMap.set(selector, [...this.styleMap.get(selector), { property, value }]);\n }\n\n toString() {\n return Array.from(this.styleMap.entries()).reduce((acc, [selector, propValArr]) => {\n const properties = propValArr\n .map(({ property, value }) => `${property}: ${value}`)\n .join(';\\n');\n\n return `${acc}${selector} { \\n${properties} \\n}\\n\\n`;\n }, '');\n }\n}\n\nconst normalizeConfig = (attr, config) => {\n const defaultMapping = { selector: '', property: kebabCase(attr) };\n\n if (!config || !Object.keys(config).length) return [defaultMapping];\n\n if (Array.isArray(config)) return config.map((entry) => ({ ...defaultMapping, ...entry }));\n\n return [{ ...defaultMapping, ...config }];\n};\n\nexport const createStyle = (componentName, baseSelector, mappings) => {\n const style = new StyleBuilder();\n\n Object.keys(mappings).forEach((attr) => {\n const attrConfig = normalizeConfig(attr, mappings[attr]);\n\n const cssVarName = getCssVarName(componentName, attr);\n\n attrConfig.forEach(\n ({ selector: relativeSelectorOrSelectorFn, property, important, fallback }) => {\n style.add(\n createCssSelector(baseSelector, relativeSelectorOrSelectorFn),\n isFunction(property) ? property() : property,\n createCssVar(cssVarName, fallback) + (important ? '!important' : '')\n );\n }\n );\n });\n\n return style.toString();\n};\n\nexport const createCssVarsList = (componentName, mappings) =>\n Object.keys(mappings).reduce(\n (acc, attr) => Object.assign(acc, { [attr]: getCssVarName(componentName, attr) }),\n {}\n );\n\n// on some cases we need a selector to be more specific than another\n// for this we have this fn that generate a class selector multiple times\nexport const createClassSelectorSpecifier = (className, numOfRepeats) =>\n Array(numOfRepeats).fill(`.${className}`).join('');\n","import { BASE_THEME_SECTION, CSS_SELECTOR_SPECIFIER_MULTIPLY } from '../../constants';\nimport { kebabCaseJoin } from '../../helpers';\nimport { getCssVarName, observeAttributes } from '../../helpers/componentHelpers';\nimport { componentsThemeManager } from '../../helpers/themeHelpers/componentsThemeManager';\nimport { createStyle, createCssVarsList, createClassSelectorSpecifier } from './helpers';\n\nconst STYLE_OVERRIDE_ATTR_PREFIX = 'st';\n\nexport const createStyleMixin =\n ({ mappings = {}, componentNameOverride = '' }) =>\n (superclass) => {\n const componentName = componentNameOverride || superclass.componentName;\n\n return class CustomStyleMixinClass extends superclass {\n static get cssVarList() {\n return {\n ...superclass.cssVarList,\n ...createCssVarsList(componentName, {\n ...mappings,\n }),\n };\n }\n\n #overrideStyleEle;\n\n #themeStyleEle;\n\n #disconnectThemeManager;\n\n #componentNameSuffix;\n\n #themeSection;\n\n #rootElement;\n\n #baseSelector;\n\n #styleAttributes;\n\n #getRootElement;\n\n // we are using this mixin also for portalMixin\n // so we should be able to inject styles to other DOM elements\n // this is why we need to support these overrides\n constructor({\n getRootElement,\n componentNameSuffix = '',\n themeSection = BASE_THEME_SECTION,\n baseSelector,\n } = {}) {\n super();\n this.#componentNameSuffix = componentNameSuffix;\n this.#themeSection = themeSection;\n this.#baseSelector = baseSelector ?? this.baseSelector;\n this.#getRootElement = getRootElement;\n\n this.#styleAttributes = Object.keys(mappings).map((key) =>\n kebabCaseJoin(STYLE_OVERRIDE_ATTR_PREFIX, componentNameSuffix, key)\n );\n }\n\n // eslint-disable-next-line class-methods-use-this\n get #componentTheme() {\n return componentsThemeManager.currentTheme?.[componentName] || '';\n }\n\n #onComponentThemeChange() {\n this.#themeStyleEle.innerHTML = this.#componentTheme[this.#themeSection];\n }\n\n #createComponentTheme() {\n this.#themeStyleEle = document.createElement('style');\n this.#themeStyleEle.id = `style-mixin-theme__${componentName}`;\n this.#rootElement.prepend(this.#themeStyleEle);\n this.#disconnectThemeManager = componentsThemeManager.onCurrentThemeChange(\n this.#onComponentThemeChange.bind(this)\n );\n this.#onComponentThemeChange();\n }\n\n #createOverridesStyle() {\n if (this.#styleAttributes.length) {\n this.#overrideStyleEle = document.createElement('style');\n this.#overrideStyleEle.id = `style-mixin-overrides__${componentName}`;\n\n const classSpecifier = createClassSelectorSpecifier(\n componentName,\n CSS_SELECTOR_SPECIFIER_MULTIPLY\n );\n\n this.#overrideStyleEle.innerText = `:host(${classSpecifier}) {}`;\n this.#rootElement.append(this.#overrideStyleEle);\n }\n }\n\n #setAttrOverride(attrName, value) {\n const style = this.#overrideStyleEle?.sheet?.cssRules[0].style;\n if (!style) return;\n\n const varName = getCssVarName(\n componentName,\n attrName.replace(new RegExp(`^${STYLE_OVERRIDE_ATTR_PREFIX}-`), '')\n );\n\n if (value) style?.setProperty(varName, value);\n else {\n style?.removeProperty(varName);\n this.removeAttribute(attrName);\n }\n }\n\n #updateOverridesStyle(attrs = []) {\n let shouldUpdate = false;\n\n attrs.forEach((attr) => {\n if (this.#styleAttributes.includes(attr)) {\n this.#setAttrOverride(attr, this.getAttribute(attr));\n shouldUpdate = true;\n }\n });\n\n if (shouldUpdate) {\n // we are rewriting the style back to the style tag\n this.#overrideStyleEle.innerHTML = this.#overrideStyleEle?.sheet?.cssRules[0].cssText;\n }\n }\n\n #createMappingStyle() {\n if (Object.keys(mappings).length) {\n const themeStyle = document.createElement('style');\n themeStyle.id = `style-mixin-mappings__${componentName}`;\n themeStyle.innerHTML = createStyle(\n kebabCaseJoin(componentName, this.#componentNameSuffix),\n this.#baseSelector,\n mappings\n );\n this.#rootElement.prepend(themeStyle);\n }\n }\n\n #addClassName(className) {\n (this.#rootElement.classList || this.#rootElement.host.classList).add(className);\n }\n\n async init() {\n super.init?.();\n if (this.shadowRoot.isConnected) {\n this.#rootElement = (await this.#getRootElement?.(this)) || this.shadowRoot;\n\n this.#addClassName(componentName);\n\n this.#createMappingStyle();\n this.#createComponentTheme();\n this.#createOverridesStyle();\n\n // this is instead attributeChangedCallback because we cannot use static methods in this case\n observeAttributes(this, this.#updateOverridesStyle.bind(this), {});\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback?.();\n\n this.#disconnectThemeManager?.();\n }\n };\n };\n","export const draggableMixin = (superclass) =>\n class DraggableMixinClass extends superclass {\n #styleEle = null;\n\n static get observedAttributes() {\n const superAttrs = superclass.observedAttributes || [];\n return [...superAttrs, 'draggable'];\n }\n\n constructor() {\n super();\n\n this.#styleEle = document.createElement('style');\n this.#styleEle.innerText = `* { cursor: inherit!important }`;\n }\n\n #handleDraggableStyle(isDraggable) {\n if (isDraggable) {\n this.shadowRoot.appendChild(this.#styleEle);\n } else {\n this.#styleEle.remove();\n }\n }\n\n get isDraggable() {\n return this.hasAttribute('draggable') && this.getAttribute('draggable') !== 'false';\n }\n\n init() {\n // because we are delegating the focus from the outer component,\n // the D&D is not working well in the page editor\n // in order to solve it we are making the inner component focusable on mouse down\n // and removing it on complete\n this.addEventListener('mousedown', (e) => {\n if (this.isDraggable) {\n const prevTabIndex = this.baseElement.getAttribute('tabindex');\n this.baseElement.setAttribute('tabindex', '-1');\n\n const onComplete = () => {\n prevTabIndex\n ? this.baseElement.setAttribute('tabindex', prevTabIndex)\n : this.baseElement.removeAttribute('tabindex');\n\n e.target.removeEventListener('mouseup', onComplete);\n e.target.removeEventListener('dragend', onComplete);\n };\n\n e.target.addEventListener('mouseup', onComplete, { once: true });\n e.target.addEventListener('dragend', onComplete, { once: true });\n }\n });\n\n super.init?.();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (attrName === 'draggable') {\n this.#handleDraggableStyle(newValue === 'true');\n }\n }\n };\n","export const componentNameValidationMixin = (superclass) =>\n class ComponentNameValidationMixinClass extends superclass {\n #checkComponentName() {\n const currentComponentName = this.localName;\n\n if (!superclass.componentName) {\n throw Error(\n `component name is not defined on super class, make sure you have a static get for \"componentName\"`\n );\n }\n\n if (currentComponentName !== superclass.componentName) {\n throw Error(\n `component name mismatch, expected \"${superclass.componentName}\", current \"${currentComponentName}\"`\n );\n }\n }\n\n init() {\n super.init?.();\n this.#checkComponentName();\n }\n };\n","export const componentsContextMixin = (superclass) =>\n class ComponentsContextMixinClass extends superclass {\n updateComponentsContext(componentsContext) {\n this.dispatchEvent(\n new CustomEvent('components-context', {\n bubbles: true,\n composed: true,\n detail: componentsContext,\n })\n );\n }\n };\n","export const hoverableMixin = (superclass) =>\n class HoverableMixinClass extends superclass {\n init() {\n super.init?.();\n\n this.baseElement.addEventListener('mouseover', (e) => {\n this.setAttribute('hover', 'true');\n e.target.addEventListener('mouseleave', () => this.removeAttribute('hover'), {\n once: true,\n });\n });\n }\n };\n","import { observeAttributes } from '../helpers/componentHelpers';\n\nconst booleanAttributesList = [\n 'readonly',\n 'focused',\n 'invalid',\n 'has-label',\n 'required',\n 'disabled',\n 'checked',\n 'has-helper',\n 'has-value',\n 'step-buttons-visible',\n 'hover',\n 'has-error-message',\n 'focus-ring',\n 'opened',\n 'active',\n 'password-visible',\n 'opening',\n 'closing',\n 'has-no-options',\n];\n\nconst isBooleanAttribute = (attr) => {\n return booleanAttributesList.includes(attr);\n};\n// we want all the valueless attributes to have \"true\" value\n// and all the falsy attribute to be removed\nexport const normalizeBooleanAttributesMixin = (superclass) =>\n class NormalizeBooleanAttributesMixinClass extends superclass {\n init() {\n super.init?.();\n\n observeAttributes(\n this,\n (attrs) =>\n attrs.forEach((attr) => {\n const attrVal = this.getAttribute(attr);\n\n if (isBooleanAttribute(attr)) {\n if (attrVal === '') {\n this.setAttribute(attr, 'true');\n } else if (attrVal === 'false') {\n this.removeAttribute(attr);\n }\n } else if (!attrVal) {\n // eslint-disable-next-line no-console\n console.debug(\n `attribute \"${attr}\" has no value, should it be added to the boolean attributes list?`\n );\n }\n }),\n {}\n );\n }\n };\n","import { compose } from '../helpers';\nimport { componentNameValidationMixin } from '../mixins/componentNameValidationMixin';\nimport { componentsContextMixin } from '../mixins/componentsContextMixin';\nimport { hoverableMixin } from '../mixins/hoverableMixin';\nimport { normalizeBooleanAttributesMixin } from '../mixins/normalizeBooleanAttributesMixin';\n\nexport const createBaseClass = ({ componentName, baseSelector = '' }) => {\n class DescopeBaseClass extends HTMLElement {\n static get componentName() {\n return componentName;\n }\n\n #baseElement;\n\n #isInit = true;\n\n // base selector is the selector for the component wrapper,\n // it's the highest element that is relevant for the layout\n // eslint-disable-next-line class-methods-use-this\n get baseSelector() {\n return baseSelector;\n }\n\n // this is the base element, which returned by querying the base selector\n get baseElement() {\n this.#baseElement ??= this.baseSelector\n ? this.rootElement.querySelector(this.baseSelector)\n : this;\n\n if (!this.#baseElement) {\n // eslint-disable-next-line no-console\n console.warn('missing base element for component', this.localName);\n }\n return this.#baseElement;\n }\n\n // this is the component root level element,\n // it can be either a shadow root or the component's node from the light DOM\n get rootElement() {\n return this.shadowRoot || this;\n }\n\n get name() {\n return this.getAttribute('name');\n }\n\n connectedCallback() {\n super.connectedCallback?.();\n\n if (this.rootElement.isConnected) {\n // the init function is running once, on the first time the component is connected\n if (this.#isInit) {\n this.#isInit = false;\n this.init?.();\n }\n }\n }\n }\n\n return compose(\n componentNameValidationMixin,\n hoverableMixin,\n normalizeBooleanAttributesMixin,\n componentsContextMixin\n )(DescopeBaseClass);\n};\n","// create a dispatch event function that also calls to the onevent function in case it's set\n// usage example:\n// #dispatchSomething = createDispatchEvent.bind(this, 'something' { ...options })\n// this will dispatch a new event when called, but also call to \"onsomething\"\nexport function createDispatchEvent(eventName, options = {}) {\n const event = new Event(eventName, options);\n\n this[`on${eventName}`]?.(event); // in case we got an event callback as property\n this.dispatchEvent(event);\n}\n","import { createBaseClass } from '../baseClasses/createBaseClass';\nimport { isFunction } from '../helpers';\nimport { forwardProps, syncAttrs } from '../helpers/componentHelpers';\nimport { createDispatchEvent } from '../helpers/mixinsHelpers';\n\nexport const createProxy = ({\n componentName,\n wrappedEleName,\n slots = [],\n style,\n excludeAttrsSync = [],\n includeAttrsSync = [],\n includeForwardProps = [],\n delegatesFocus = true,\n}) => {\n class ProxyClass extends createBaseClass({ componentName, baseSelector: wrappedEleName }) {\n #dispatchBlur = createDispatchEvent.bind(this, 'blur');\n\n #dispatchFocus = createDispatchEvent.bind(this, 'focus');\n\n constructor() {\n super().attachShadow({ mode: 'open', delegatesFocus }).innerHTML = `\n\t\t\t<style id=\"create-proxy\">${(isFunction(style) ? style() : style) || ''}</style>\n\t\t\t<${wrappedEleName}>\n\t\t\t${slots\n .map(\n (\n slot // when slot is an empty string, we will create the default slot (without a name)\n ) => `<slot ${slot ? `name=\"${slot}\" slot=\"${slot}\"` : ''}></slot>`\n )\n .join('')}\n\t\t\t</${wrappedEleName}>\n\t\t`;\n }\n\n init() {\n super.init?.();\n\n this.baseElement.addEventListener('blur', (_) => {\n this.#dispatchBlur();\n });\n\n this.baseElement.addEventListener('focus', (_) => {\n this.#dispatchFocus();\n });\n\n // this is needed for components that uses props, such as combo box\n forwardProps(this.baseElement, this, includeForwardProps);\n\n syncAttrs(this.baseElement, this, {\n excludeAttrs: excludeAttrsSync,\n includeAttrs: includeAttrsSync,\n });\n }\n }\n\n return ProxyClass;\n};\n","(function () {\n 'use strict';\n\n const refMap = new WeakMap();\n const validityMap = new WeakMap();\n const hiddenInputMap = new WeakMap();\n const internalsMap = new WeakMap();\n const validationMessageMap = new WeakMap();\n const formsMap = new WeakMap();\n const shadowHostsMap = new WeakMap();\n const formElementsMap = new WeakMap();\n const refValueMap = new WeakMap();\n const upgradeMap = new WeakMap();\n const shadowRootMap = new WeakMap();\n const validationAnchorMap = new WeakMap();\n const documentFragmentMap = new WeakMap();\n const connectedCallbackMap = new WeakMap();\n const validityUpgradeMap = new WeakMap();\n\n const aom = {\n ariaAtomic: 'aria-atomic',\n ariaAutoComplete: 'aria-autocomplete',\n ariaBusy: 'aria-busy',\n ariaChecked: 'aria-checked',\n ariaColCount: 'aria-colcount',\n ariaColIndex: 'aria-colindex',\n ariaColIndexText: 'aria-colindextext',\n ariaColSpan: 'aria-colspan',\n ariaCurrent: 'aria-current',\n ariaDisabled: 'aria-disabled',\n ariaExpanded: 'aria-expanded',\n ariaHasPopup: 'aria-haspopup',\n ariaHidden: 'aria-hidden',\n ariaInvalid: 'aria-invalid',\n ariaKeyShortcuts: 'aria-keyshortcuts',\n ariaLabel: 'aria-label',\n ariaLevel: 'aria-level',\n ariaLive: 'aria-live',\n ariaModal: 'aria-modal',\n ariaMultiLine: 'aria-multiline',\n ariaMultiSelectable: 'aria-multiselectable',\n ariaOrientation: 'aria-orientation',\n ariaPlaceholder: 'aria-placeholder',\n ariaPosInSet: 'aria-posinset',\n ariaPressed: 'aria-pressed',\n ariaReadOnly: 'aria-readonly',\n ariaRelevant: 'aria-relevant',\n ariaRequired: 'aria-required',\n ariaRoleDescription: 'aria-roledescription',\n ariaRowCount: 'aria-rowcount',\n ariaRowIndex: 'aria-rowindex',\n ariaRowIndexText: 'aria-rowindextext',\n ariaRowSpan: 'aria-rowspan',\n ariaSelected: 'aria-selected',\n ariaSetSize: 'aria-setsize',\n ariaSort: 'aria-sort',\n ariaValueMax: 'aria-valuemax',\n ariaValueMin: 'aria-valuemin',\n ariaValueNow: 'aria-valuenow',\n ariaValueText: 'aria-valuetext',\n role: 'role'\n };\n const initAom = (ref, internals) => {\n for (let key in aom) {\n internals[key] = null;\n let closureValue = null;\n const attributeName = aom[key];\n Object.defineProperty(internals, key, {\n get() {\n return closureValue;\n },\n set(value) {\n closureValue = value;\n if (ref.isConnected) {\n ref.setAttribute(attributeName, value);\n }\n else {\n upgradeMap.set(ref, internals);\n }\n }\n });\n }\n };\n\n function initNode(node) {\n const internals = internalsMap.get(node);\n const { form } = internals;\n initForm(node, form, internals);\n initLabels(node, internals.labels);\n }\n const walkFieldset = (node, firstRender = false) => {\n const walker = document.createTreeWalker(node, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node) {\n return internalsMap.has(node) ?\n NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n let current = walker.nextNode();\n const isCallNecessary = (!firstRender || node.disabled);\n while (current) {\n if (current.formDisabledCallback && isCallNecessary) {\n setDisabled(current, node.disabled);\n }\n current = walker.nextNode();\n }\n };\n const disabledOrNameObserverConfig = { attributes: true, attributeFilter: ['disabled', 'name'] };\n const disabledOrNameObserver = mutationObserverExists() ? new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n const target = mutation.target;\n if (mutation.attributeName === 'disabled') {\n if (target.constructor['formAssociated']) {\n setDisabled(target, target.hasAttribute('disabled'));\n }\n else if (target.localName === 'fieldset') {\n walkFieldset(target);\n }\n }\n if (mutation.attributeName === 'name') {\n if (target.constructor['formAssociated']) {\n const internals = internalsMap.get(target);\n const value = refValueMap.get(target);\n internals.setFormValue(value);\n }\n }\n }\n }) : {};\n function observerCallback(mutationList) {\n mutationList.forEach(mutationRecord => {\n const { addedNodes, removedNodes } = mutationRecord;\n const added = Array.from(addedNodes);\n const removed = Array.from(removedNodes);\n added.forEach(node => {\n if (internalsMap.has(node) && node.constructor['formAssociated']) {\n initNode(node);\n }\n if (upgradeMap.has(node)) {\n const internals = upgradeMap.get(node);\n const aomKeys = Object.keys(aom);\n aomKeys\n .filter(key => internals[key] !== null)\n .forEach(key => {\n node.setAttribute(aom[key], internals[key]);\n });\n upgradeMap.delete(node);\n }\n if (validityUpgradeMap.has(node)) {\n const internals = validityUpgradeMap.get(node);\n node.setAttribute('internals-valid', internals.validity.valid.toString());\n node.setAttribute('internals-invalid', (!internals.validity.valid).toString());\n node.setAttribute('aria-invalid', (!internals.validity.valid).toString());\n validityUpgradeMap.delete(node);\n }\n if (node.localName === 'form') {\n const formElements = formElementsMap.get(node);\n const walker = document.createTreeWalker(node, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node) {\n return (internalsMap.has(node) && node.constructor['formAssociated'] && !(formElements && formElements.has(node))) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n let current = walker.nextNode();\n while (current) {\n initNode(current);\n current = walker.nextNode();\n }\n }\n if (node.localName === 'fieldset') {\n disabledOrNameObserver.observe?.(node, disabledOrNameObserverConfig);\n walkFieldset(node, true);\n }\n });\n removed.forEach(node => {\n const internals = internalsMap.get(node);\n if (internals && hiddenInputMap.get(internals)) {\n removeHiddenInputs(internals);\n }\n if (shadowHostsMap.has(node)) {\n const observer = shadowHostsMap.get(node);\n observer.disconnect();\n }\n });\n });\n }\n function fragmentObserverCallback(mutationList) {\n mutationList.forEach(mutation => {\n const { removedNodes } = mutation;\n removedNodes.forEach(node => {\n const observer = documentFragmentMap.get(mutation.target);\n if (internalsMap.has(node)) {\n upgradeInternals(node);\n }\n observer.disconnect();\n });\n });\n }\n const deferUpgrade = (fragment) => {\n const observer = new MutationObserver(fragmentObserverCallback);\n observer.observe?.(fragment, { childList: true });\n documentFragmentMap.set(fragment, observer);\n };\n mutationObserverExists() ? new MutationObserver(observerCallback) : {};\n const observerConfig = {\n childList: true,\n subtree: true\n };\n\n const setDisabled = (ref, disabled) => {\n ref.toggleAttribute('internals-disabled', disabled);\n if (disabled) {\n ref.setAttribute('aria-disabled', 'true');\n }\n else {\n ref.removeAttribute('aria-disabled');\n }\n if (ref.formDisabledCallback) {\n ref.formDisabledCallback.apply(ref, [disabled]);\n }\n };\n const removeHiddenInputs = (internals) => {\n const hiddenInputs = hiddenInputMap.get(internals);\n hiddenInputs.forEach(hiddenInput => {\n hiddenInput.remove();\n });\n hiddenInputMap.set(internals, []);\n };\n const createHiddenInput = (ref, internals) => {\n const input = document.createElement('input');\n input.type = 'hidden';\n input.name = ref.getAttribute('name');\n ref.after(input);\n hiddenInputMap.get(internals).push(input);\n return input;\n };\n const initRef = (ref, internals) => {\n hiddenInputMap.set(internals, []);\n disabledOrNameObserver.observe?.(ref, disabledOrNameObserverConfig);\n };\n const initLabels = (ref, labels) => {\n if (labels.length) {\n Array.from(labels).forEach(label => label.addEventListener('click', ref.click.bind(ref)));\n let firstLabelId = labels[0].id;\n if (!labels[0].id) {\n firstLabelId = `${labels[0].htmlFor}_Label`;\n labels[0].id = firstLabelId;\n }\n ref.setAttribute('aria-labelledby', firstLabelId);\n }\n };\n const setFormValidity = (form) => {\n const nativeControlValidity = Array.from(form.elements)\n .filter((element) => !element.tagName.includes('-') && element.validity)\n .map((element) => element.validity.valid);\n const polyfilledElements = formElementsMap.get(form) || [];\n const polyfilledValidity = Array.from(polyfilledElements)\n .filter(control => control.isConnected)\n .map((control) => internalsMap.get(control).validity.valid);\n const hasInvalid = [...nativeControlValidity, ...polyfilledValidity].includes(false);\n form.toggleAttribute('internals-invalid', hasInvalid);\n form.toggleAttribute('internals-valid', !hasInvalid);\n };\n const formInputCallback = (event) => {\n setFormValidity(findParentForm(event.target));\n };\n const formChangeCallback = (event) => {\n setFormValidity(findParentForm(event.target));\n };\n const wireSubmitLogic = (form) => {\n const submitButtonSelector = ['button[type=submit]', 'input[type=submit]', 'button:not([type])']\n .map(sel => `${sel}:not([disabled])`)\n .map(sel => `${sel}:not([form])${form.id ? `,${sel}[form='${form.id}']` : ''}`)\n .join(',');\n form.addEventListener('click', event => {\n const target = event.target;\n if (target.closest(submitButtonSelector)) {\n const elements = formElementsMap.get(form);\n if (form.noValidate) {\n return;\n }\n if (elements.size) {\n const nodes = Array.from(elements);\n const validityList = nodes\n .reverse()\n .map(node => {\n const internals = internalsMap.get(node);\n return internals.reportValidity();\n });\n if (validityList.includes(false)) {\n event.preventDefault();\n }\n }\n }\n });\n };\n const formResetCallback = (event) => {\n const elements = formElementsMap.get(event.target);\n if (elements && elements.size) {\n elements.forEach(element => {\n if (element.constructor.formAssociated && element.formResetCallback) {\n element.formResetCallback.apply(element);\n }\n });\n }\n };\n const initForm = (ref, form, internals) => {\n if (form) {\n const formElements = formElementsMap.get(form);\n if (formElements) {\n formElements.add(ref);\n }\n else {\n const initSet = new Set();\n initSet.add(ref);\n formElementsMap.set(form, initSet);\n wireSubmitLogic(form);\n form.addEventListener('reset', formResetCallback);\n form.addEventListener('input', formInputCallback);\n form.addEventListener('change', formChangeCallback);\n }\n formsMap.set(form, { ref, internals });\n if (ref.constructor['formAssociated'] && ref.formAssociatedCallback) {\n setTimeout(() => {\n ref.formAssociatedCallback.apply(ref, [form]);\n }, 0);\n }\n setFormValidity(form);\n }\n };\n const findParentForm = (elem) => {\n let parent = elem.parentNode;\n if (parent && parent.tagName !== 'FORM') {\n parent = findParentForm(parent);\n }\n return parent;\n };\n const throwIfNotFormAssociated = (ref, message, ErrorType = DOMException) => {\n if (!ref.constructor['formAssociated']) {\n throw new ErrorType(message);\n }\n };\n const overrideFormMethod = (form, returnValue, method) => {\n const elements = formElementsMap.get(form);\n if (elements && elements.size) {\n elements.forEach(element => {\n const internals = internalsMap.get(element);\n const valid = internals[method]();\n if (!valid) {\n returnValue = false;\n }\n });\n }\n return returnValue;\n };\n const upgradeInternals = (ref) => {\n if (ref.constructor['formAssociated']) {\n const internals = internalsMap.get(ref);\n const { labels, form } = internals;\n initLabels(ref, labels);\n initForm(ref, form, internals);\n }\n };\n function mutationObserverExists() {\n return typeof MutationObserver !== 'undefined';\n }\n\n class ValidityState {\n constructor() {\n this.badInput = false;\n this.customError = false;\n this.patternMismatch = false;\n this.rangeOverflow = false;\n this.rangeUnderflow = false;\n this.stepMismatch = false;\n this.tooLong = false;\n this.tooShort = false;\n this.typeMismatch = false;\n this.valid = true;\n this.valueMissing = false;\n Object.seal(this);\n }\n }\n const setValid = (validityObject) => {\n validityObject.badInput = false;\n validityObject.customError = false;\n validityObject.patternMismatch = false;\n validityObject.rangeOverflow = false;\n validityObject.rangeUnderflow = false;\n validityObject.stepMismatch = false;\n validityObject.tooLong = false;\n validityObject.tooShort = false;\n validityObject.typeMismatch = false;\n validityObject.valid = true;\n validityObject.valueMissing = false;\n return validityObject;\n };\n const reconcileValidity = (validityObject, newState, form) => {\n validityObject.valid = isValid(newState);\n Object.keys(newState).forEach(key => validityObject[key] = newState[key]);\n if (form) {\n setFormValidity(form);\n }\n return validityObject;\n };\n const isValid = (validityState) => {\n let valid = true;\n for (let key in validityState) {\n if (key !== 'valid' && validityState[key] !== false) {\n valid = false;\n }\n }\n return valid;\n };\n\n const customStateMap = new WeakMap();\n function addState(ref, stateName) {\n ref.toggleAttribute(stateName, true);\n if (ref.part) {\n ref.part.add(stateName);\n }\n }\n class CustomStateSet extends Set {\n static get isPolyfilled() {\n return true;\n }\n constructor(ref) {\n super();\n if (!ref || !ref.tagName || ref.tagName.indexOf('-') === -1) {\n throw new TypeError('Illegal constructor');\n }\n customStateMap.set(this, ref);\n }\n add(state) {\n if (!/^--/.test(state) || typeof state !== 'string') {\n throw new DOMException(`Failed to execute 'add' on 'CustomStateSet': The specified value ${state} must start with '--'.`);\n }\n const result = super.add(state);\n const ref = customStateMap.get(this);\n const stateName = `state${state}`;\n if (ref.isConnected) {\n addState(ref, stateName);\n }\n else {\n setTimeout(() => {\n addState(ref, stateName);\n });\n }\n return result;\n }\n clear() {\n for (let [entry] of this.entries()) {\n this.delete(entry);\n }\n super.clear();\n }\n delete(state) {\n const result = super.delete(state);\n const ref = customStateMap.get(this);\n if (ref.isConnected) {\n ref.toggleAttribute(`state${state}`, false);\n if (ref.part) {\n ref.part.remove(`state${state}`);\n }\n }\n else {\n setTimeout(() => {\n ref.toggleAttribute(`state${state}`, false);\n if (ref.part) {\n ref.part.remove(`state${state}`);\n }\n });\n }\n return result;\n }\n }\n\n function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n }\n function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n }\n\n var _HTMLFormControlsCollection_elements;\n class HTMLFormControlsCollection {\n constructor(elements) {\n _HTMLFormControlsCollection_elements.set(this, void 0);\n __classPrivateFieldSet(this, _HTMLFormControlsCollection_elements, elements, \"f\");\n for (let i = 0; i < elements.length; i++) {\n let element = elements[i];\n this[i] = element;\n if (element.hasAttribute('name')) {\n this[element.getAttribute('name')] = element;\n }\n }\n Object.freeze(this);\n }\n get length() {\n return __classPrivateFieldGet(this, _HTMLFormControlsCollection_elements, \"f\").length;\n }\n [(_HTMLFormControlsCollection_elements = new WeakMap(), Symbol.iterator)]() {\n return __classPrivateFieldGet(this, _HTMLFormControlsCollection_elements, \"f\")[Symbol.iterator]();\n }\n item(i) {\n return this[i] == null ? null : this[i];\n }\n namedItem(name) {\n return this[name] == null ? null : this[name];\n }\n }\n\n function patchFormPrototype() {\n const checkValidity = HTMLFormElement.prototype.checkValidity;\n HTMLFormElement.prototype.checkValidity = checkValidityOverride;\n const reportValidity = HTMLFormElement.prototype.reportValidity;\n HTMLFormElement.prototype.reportValidity = reportValidityOverride;\n function checkValidityOverride(...args) {\n let returnValue = checkValidity.apply(this, args);\n return overrideFormMethod(this, returnValue, 'checkValidity');\n }\n function reportValidityOverride(...args) {\n let returnValue = reportValidity.apply(this, args);\n return overrideFormMethod(this, returnValue, 'reportValidity');\n }\n const { get } = Object.getOwnPropertyDescriptor(HTMLFormElement.prototype, 'elements');\n Object.defineProperty(HTMLFormElement.prototype, 'elements', {\n get(...args) {\n const elements = get.call(this, ...args);\n const polyfilledElements = Array.from(formElementsMap.get(this) || []);\n if (polyfilledElements.length === 0) {\n return elements;\n }\n const orderedElements = Array.from(elements).concat(polyfilledElements).sort((a, b) => {\n if (a.compareDocumentPosition) {\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n return 0;\n });\n return new HTMLFormControlsCollection(orderedElements);\n },\n });\n }\n\n class ElementInternals {\n static get isPolyfilled() {\n return true;\n }\n constructor(ref) {\n if (!ref || !ref.tagName || ref.tagName.indexOf('-') === -1) {\n throw new TypeError('Illegal constructor');\n }\n const rootNode = ref.getRootNode();\n const validity = new ValidityState();\n this.states = new CustomStateSet(ref);\n refMap.set(this, ref);\n validityMap.set(this, validity);\n internalsMap.set(ref, this);\n initAom(ref, this);\n initRef(ref, this);\n Object.seal(this);\n if (rootNode instanceof DocumentFragment) {\n deferUpgrade(rootNode);\n }\n }\n checkValidity() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to execute 'checkValidity' on 'ElementInternals': The target element is not a form-associated custom element.`);\n if (!this.willValidate) {\n return true;\n }\n const validity = validityMap.get(this);\n if (!validity.valid) {\n const validityEvent = new Event('invalid', {\n bubbles: false,\n cancelable: true,\n composed: false\n });\n ref.dispatchEvent(validityEvent);\n }\n return validity.valid;\n }\n get form() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'form' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n let form;\n if (ref.constructor['formAssociated'] === true) {\n form = findParentForm(ref);\n }\n return form;\n }\n get labels() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'labels' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n const id = ref.getAttribute('id');\n const hostRoot = ref.getRootNode();\n if (hostRoot && id) {\n return hostRoot.querySelectorAll(`[for=\"${id}\"]`);\n }\n return [];\n }\n reportValidity() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to execute 'reportValidity' on 'ElementInternals': The target element is not a form-associated custom element.`);\n if (!this.willValidate) {\n return true;\n }\n const valid = this.checkValidity();\n const anchor = validationAnchorMap.get(this);\n if (anchor && !ref.constructor['formAssociated']) {\n throw new DOMException(`Failed to execute 'reportValidity' on 'ElementInternals': The target element is not a form-associated custom element.`);\n }\n if (!valid && anchor) {\n ref.focus();\n anchor.focus();\n }\n return valid;\n }\n setFormValue(value) {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to execute 'setFormValue' on 'ElementInternals': The target element is not a form-associated custom element.`);\n removeHiddenInputs(this);\n if (value != null && !(value instanceof FormData)) {\n if (ref.getAttribute('name')) {\n const hiddenInput = createHiddenInput(ref, this);\n hiddenInput.value = value;\n }\n }\n else if (value != null && value instanceof FormData) {\n Array.from(value).reverse().forEach(([formDataKey, formDataValue]) => {\n if (typeof formDataValue === 'string') {\n const hiddenInput = createHiddenInput(ref, this);\n hiddenInput.name = formDataKey;\n hiddenInput.value = formDataValue;\n }\n });\n }\n refValueMap.set(ref, value);\n }\n setValidity(validityChanges, validationMessage, anchor) {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to execute 'setValidity' on 'ElementInternals': The target element is not a form-associated custom element.`);\n if (!validityChanges) {\n throw new TypeError('Failed to execute \\'setValidity\\' on \\'ElementInternals\\': 1 argument required, but only 0 present.');\n }\n validationAnchorMap.set(this, anchor);\n const validity = validityMap.get(this);\n const validityChangesObj = {};\n for (const key in validityChanges) {\n validityChangesObj[key] = validityChanges[key];\n }\n if (Object.keys(validityChangesObj).length === 0) {\n setValid(validity);\n }\n const check = { ...validity, ...validityChangesObj };\n delete check.valid;\n const { valid } = reconcileValidity(validity, check, this.form);\n if (!valid && !validationMessage) {\n throw new DOMException(`Failed to execute 'setValidity' on 'ElementInternals': The second argument should not be empty if one or more flags in the first argument are true.`);\n }\n validationMessageMap.set(this, valid ? '' : validationMessage);\n if (ref.isConnected) {\n ref.toggleAttribute('internals-invalid', !valid);\n ref.toggleAttribute('internals-valid', valid);\n ref.setAttribute('aria-invalid', `${!valid}`);\n }\n else {\n validityUpgradeMap.set(ref, this);\n }\n }\n get shadowRoot() {\n const ref = refMap.get(this);\n const shadowRoot = shadowRootMap.get(ref);\n if (shadowRoot) {\n return shadowRoot;\n }\n return null;\n }\n get validationMessage() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'validationMessage' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n return validationMessageMap.get(this);\n }\n get validity() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'validity' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n const validity = validityMap.get(this);\n return validity;\n }\n get willValidate() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'willValidate' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n if ((ref.disabled || ref.hasAttribute('disabled')) ||\n ref.hasAttribute('readonly')) {\n return false;\n }\n return true;\n }\n }\n function isElementInternalsSupported() {\n if (typeof window === 'undefined' || !window.ElementInternals || !HTMLElement.prototype.attachInternals) {\n return false;\n }\n class ElementInternalsFeatureDetection extends HTMLElement {\n constructor() {\n super();\n this.internals = this.attachInternals();\n }\n }\n const randomName = `element-internals-feature-detection-${Math.random().toString(36).replace(/[^a-z]+/g, '')}`;\n customElements.define(randomName, ElementInternalsFeatureDetection);\n const featureDetectionElement = new ElementInternalsFeatureDetection();\n return [\n 'shadowRoot',\n 'form',\n 'willValidate',\n 'validity',\n 'validationMessage',\n 'labels',\n 'setFormValue',\n 'setValidity',\n 'checkValidity',\n 'reportValidity'\n ].every(prop => prop in featureDetectionElement.internals);\n }\n if (!isElementInternalsSupported()) {\n if (typeof window !== 'undefined') {\n window.ElementInternals = ElementInternals;\n }\n if (typeof CustomElementRegistry !== 'undefined') {\n const define = CustomElementRegistry.prototype.define;\n CustomElementRegistry.prototype.define = function (name, constructor, options) {\n if (constructor.formAssociated) {\n const connectedCallback = constructor.prototype.connectedCallback;\n constructor.prototype.connectedCallback = function () {\n if (!connectedCallbackMap.has(this)) {\n connectedCallbackMap.set(this, true);\n if (this.hasAttribute('disabled')) {\n setDisabled(this, true);\n }\n }\n if (connectedCallback != null) {\n connectedCallback.apply(this);\n }\n upgradeInternals(this);\n };\n }\n define.call(this, name, constructor, options);\n };\n }\n if (typeof HTMLElement !== 'undefined') {\n HTMLElement.prototype.attachInternals = function () {\n if (!this.tagName) {\n return {};\n }\n else if (this.tagName.indexOf('-') === -1) {\n throw new Error(`Failed to execute 'attachInternals' on 'HTMLElement': Unable to attach ElementInternals to non-custom elements.`);\n }\n if (internalsMap.has(this)) {\n throw new DOMException(`DOMException: Failed to execute 'attachInternals' on 'HTMLElement': ElementInternals for the specified element was already attached.`);\n }\n return new ElementInternals(this);\n };\n }\n if (typeof Element !== 'undefined') {\n function attachShadowObserver(...args) {\n const shadowRoot = attachShadow.apply(this, args);\n shadowRootMap.set(this, shadowRoot);\n if (mutationObserverExists()) {\n const observer = new MutationObserver(observerCallback);\n if (window.ShadyDOM) {\n observer.observe(this, observerConfig);\n }\n else {\n observer.observe(shadowRoot, observerConfig);\n }\n shadowHostsMap.set(this, observer);\n }\n return shadowRoot;\n }\n const attachShadow = Element.prototype.attachShadow;\n Element.prototype.attachShadow = attachShadowObserver;\n }\n if (mutationObserverExists() && typeof document !== 'undefined') {\n const documentObserver = new MutationObserver(observerCallback);\n documentObserver.observe(document.documentElement, observerConfig);\n }\n if (typeof HTMLFormElement !== 'undefined') {\n patchFormPrototype();\n }\n if (typeof window !== 'undefined' && !window.CustomStateSet) {\n window.CustomStateSet = CustomStateSet;\n }\n }\n else if (typeof window !== 'undefined' && !window.CustomStateSet) {\n window.CustomStateSet = CustomStateSet;\n const attachInternals = HTMLElement.prototype.attachInternals;\n HTMLElement.prototype.attachInternals = function (...args) {\n const internals = attachInternals.call(this, args);\n internals.states = new CustomStateSet(this);\n return internals;\n };\n }\n\n})();\n","import 'element-internals-polyfill'; // this is needed in order to support older browsers\n\nconst observedAttributes = ['required', 'pattern'];\n\nconst errorAttributes = {\n valueMissing: 'data-errormessage-value-missing',\n patternMismatch: 'data-errormessage-pattern-mismatch',\n tooShort: 'data-errormessage-pattern-mismatch-too-short',\n tooLong: 'data-errormessage-pattern-mismatch-too-long',\n typeMismatch: 'data-errormessage-type-mismatch',\n};\n\nconst validationTargetSymbol = Symbol('validationTarget');\n\nexport const inputValidationMixin = (superclass) =>\n class InputValidationMixinClass extends superclass {\n #validationTarget = validationTargetSymbol;\n\n static get observedAttributes() {\n return [...(superclass.observedAttributes || []), ...observedAttributes];\n }\n\n static get formAssociated() {\n return true;\n }\n\n #internals;\n\n get internals() {\n return this.#internals;\n }\n\n set internals(value) {\n this.#internals = value;\n }\n\n constructor() {\n super();\n\n this.#internals = this.attachInternals();\n }\n\n // eslint-disable-next-line class-methods-use-this\n get defaultErrorMsgValueMissing() {\n return 'Please fill out this field.';\n }\n\n // eslint-disable-next-line class-methods-use-this\n get defaultErrorMsgPatternMismatch() {\n return 'Please match the requested format.';\n }\n\n get defaultErrorMsgTooShort() {\n return `Minimum length is ${this.getAttribute('minlength')}.`;\n }\n\n get defaultErrorMsgTooLong() {\n return `Maximum length is ${this.getAttribute('maxlength')}. `;\n }\n\n get defaultErrorMsgRangeUnderflow() {\n return `At least ${this.getAttribute('min-items-selection')} items are required.`;\n }\n\n get defaultErrorMsgRangeOverflow() {\n return `At most ${this.getAttribute('max-items-selection')} items are allowed.`;\n }\n\n // eslint-disable-next-line class-methods-use-this\n get defaultErrorMsgTypeMismatch() {\n return `Please match the requested type.`;\n }\n\n getErrorMessage(flags) {\n const {\n valueMissing,\n patternMismatch,\n typeMismatch,\n stepMismatch,\n tooShort,\n tooLong,\n rangeOverflow,\n rangeUnderflow,\n badInput,\n customError,\n } = flags;\n\n switch (true) {\n case valueMissing:\n return (\n this.getAttribute(errorAttributes.valueMissing) || this.defaultErrorMsgValueMissing\n );\n case patternMismatch || stepMismatch || badInput:\n return (\n this.getAttribute(errorAttributes.patternMismatch) ||\n this.defaultErrorMsgPatternMismatch\n );\n case typeMismatch:\n return (\n this.getAttribute(errorAttributes.typeMismatch) ||\n this.getAttribute(errorAttributes.patternMismatch) ||\n this.defaultErrorMsgTypeMismatch\n );\n case tooShort:\n return this.getAttribute(errorAttributes.tooShort) || this.defaultErrorMsgTooShort;\n case tooLong:\n return this.getAttribute(errorAttributes.tooLong) || this.defaultErrorMsgTooLong;\n case rangeUnderflow:\n return this.defaultErrorMsgRangeUnderflow;\n case rangeOverflow:\n return this.defaultErrorMsgRangeOverflow;\n case customError:\n return this.validationMessage;\n default:\n return '';\n }\n }\n\n #setValidity() {\n const validity = this.isReadOnly ? {} : this.getValidity();\n this.#internals.setValidity(validity, this.getErrorMessage(validity), this.validationTarget);\n }\n\n get validationMessage() {\n return this.#internals.validationMessage;\n }\n\n // eslint-disable-next-line class-methods-use-this\n getValidity() {\n // eslint-disable-next-line no-console\n console.warn('getValidity', 'is not implemented');\n }\n\n checkValidity() {\n return this.#internals.validity.valid;\n }\n\n reportValidity() {\n return this.#internals.reportValidity();\n }\n\n get validity() {\n return this.#internals.validity;\n }\n\n get validationTarget() {\n return this.#validationTarget === validationTargetSymbol\n ? this.inputElement\n : this.#validationTarget;\n }\n\n set validationTarget(val) {\n this.#validationTarget = val;\n }\n\n setCustomValidity(errorMessage) {\n if (errorMessage) {\n this.#internals.setValidity({ customError: true }, errorMessage, this.validationTarget);\n } else {\n this.#internals.setValidity({});\n this.#setValidity();\n }\n }\n\n get isRequired() {\n return this.hasAttribute('required') && this.getAttribute('required') !== 'false';\n }\n\n get isReadOnly() {\n return this.hasAttribute('readonly') && this.getAttribute('readonly') !== 'false';\n }\n\n get isDisabled() {\n return this.hasAttribute('disabled') && this.getAttribute('disabled') !== 'false';\n }\n\n get pattern() {\n return this.getAttribute('pattern');\n }\n\n get form() {\n return this.#internals.form;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (observedAttributes.includes(attrName)) {\n this.#setValidity();\n }\n }\n\n init() {\n super.init?.();\n this.addEventListener('change', this.#setValidity);\n this.addEventListener('invalid', (e) => e.stopPropagation());\n this.addEventListener('input', this.#setValidity);\n\n // The attribute sync takes time, so getValidity returns valid,\n // even when it shouldn't. This way allows all attributes to sync\n // after render, before checking the validity.\n setTimeout(() => this.#setValidity());\n }\n };\n","/* eslint-disable no-param-reassign */\nimport { compose } from '../helpers';\nimport { forwardAttrs, getComponentName } from '../helpers/componentHelpers';\nimport { createDispatchEvent } from '../helpers/mixinsHelpers';\nimport { createStyleMixin } from './createStyleMixin';\nimport { inputValidationMixin } from './inputValidationMixin';\n\nconst errorAttrs = ['invalid', 'required'];\n\nconst forwardProps = (src, targets, property) => {\n const targetArr = Array.isArray(targets) ? targets : [targets];\n\n Object.defineProperty(src, property, {\n set(v) {\n targetArr.forEach((target) => {\n target[property] = v;\n });\n },\n get() {\n return targets[0][property];\n },\n configurable: true,\n });\n};\n\n// recursively take the first slot child until it finds an element which is not a slot\n// stops after \"nestingLevel\" times\nconst getNestedInput = (ele) => {\n if (!ele) return undefined;\n\n const nestingLevel = 10;\n\n let nonSlotEle = ele;\n for (let i = 0; i < nestingLevel; i++) {\n [nonSlotEle] = nonSlotEle.assignedElements();\n if (nonSlotEle?.localName !== 'slot') return nonSlotEle;\n }\n return undefined;\n};\n\nconst proxyInputMixin =\n ({\n proxyProps = [],\n // useProxyTargets flag allows to forwardProps to other targets, other than\n // `this.inputElement`. It's to be used within `external-input` components,\n // if needed\n useProxyTargets = false,\n // allows us to set the event that should trigger validation\n // it can be either a string or an array of strings (for multiple events)\n inputEvent = 'input',\n triggerValidationEvents = [],\n // Proxies all validations from the parent component to the input element\n proxyParentValidation = false,\n }) =>\n (superclass) =>\n class ProxyInputMixinClass extends inputValidationMixin(superclass) {\n static get observedAttributes() {\n return [...(superclass.observedAttributes || []), ...errorAttrs];\n }\n\n #inputElement;\n\n #dispatchChange = createDispatchEvent.bind(this, 'change');\n\n constructor() {\n super();\n\n this.#inputElement = super.inputElement;\n }\n\n // the web-component does not loaded immediately, so we want to defer the warning\n // and show it only if the input element was not found after the component is loaded\n warnIfInputElementIsMissing() {\n clearTimeout(this.inputElementTimerId);\n\n this.inputElementTimerId = setTimeout(() => {\n // eslint-disable-next-line no-console\n !this.#inputElement && console.warn(this.localName, 'no input was found');\n }, 0);\n }\n\n get inputElement() {\n if (this.#inputElement) return this.#inputElement;\n\n this.warnIfInputElementIsMissing();\n\n const inputSlot = this.baseElement.shadowRoot?.querySelector('slot[name=\"input\"]');\n const textAreaSlot = this.baseElement.shadowRoot?.querySelector('slot[name=\"textarea\"]');\n\n this.#inputElement = getNestedInput(inputSlot) || getNestedInput(textAreaSlot);\n\n return this.#inputElement;\n }\n\n set inputElement(ele) {\n this.#inputElement = ele;\n }\n\n getValidity() {\n return this.inputElement?.validity || {};\n }\n\n #handleErrorMessage() {\n this.setAttribute('error-message', this.validationMessage);\n }\n\n // We do not want to show the default validity report tooltip\n // So we are overriding the reportValidity fn to show the input's error message\n reportValidity = () => {\n // we want to update validity so in case the value was set programmatically, we won't get an error\n this.inputElement.setCustomValidity('');\n this.setCustomValidity('');\n if (!this.checkValidity()) {\n this.setAttribute('invalid', 'true');\n this.#handleErrorMessage();\n this.focus();\n }\n };\n\n // we are keeping also the default reportValidity because there are some components that still using it\n defaultReportValidity() {\n return super.reportValidity();\n }\n\n init() {\n super.init?.();\n\n // vaadin sets invalid indication on blur\n // we want invalid indication to appear only when calling reportValidity\n // this is why we are overriding vaadin's setInvalid behavior\n // to update only when the element is valid (so invalid indication will only be removed)\n // and we are adding it in reportValidity\n // eslint-disable-next-line func-names\n this.baseElement._setInvalid = function (invalid) {\n if (!invalid && this._shouldSetInvalid(invalid)) {\n this.invalid = invalid;\n }\n };\n\n // We want to ensure that `input` events properly cross ShadowDOM boundries\n // e.g. When we autofill a component's input with 1Password, for instance,\n // the event is fired without `composed: true` and doesn't our component's\n // ShadowDOM.\n this.baseElement.addEventListener('input', (e) => {\n if (!e.composed) {\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n }\n });\n\n triggerValidationEvents.forEach((e) => {\n this.baseElement?.addEventListener(e, () => {\n this.inputElement?.setCustomValidity('');\n });\n });\n\n // on some cases the base element is not ready so the inputElement is empty\n // we are deferring this section to make sure the base element is ready\n setTimeout(() => {\n const validationEvents = Array.isArray(inputEvent) ? inputEvent : [inputEvent];\n\n validationEvents.forEach((e) => {\n this.baseElement?.addEventListener(e, () => {\n if (!this.baseElement.checkValidity()) {\n this.#handleErrorMessage();\n } else {\n this.removeAttribute('invalid');\n }\n });\n });\n\n this.baseElement.addEventListener('change', () => {\n this.#dispatchChange();\n });\n\n this.addEventListener('invalid', () => {\n if (!this.checkValidity()) {\n this.setAttribute('invalid', 'true');\n }\n this.#handleErrorMessage();\n });\n\n // sync properties\n proxyProps.forEach((prop) => {\n const externalInput = this.querySelector('input[slot=\"external-input\"]') || null;\n const proxyTargets = useProxyTargets\n ? [this.baseElement, externalInput].filter(Boolean)\n : [];\n forwardProps(this, [this.inputElement, ...proxyTargets], prop);\n });\n\n this.setSelectionRange = this.inputElement.setSelectionRange?.bind(this.inputElement);\n\n forwardAttrs(this, this.inputElement, { includeAttrs: ['inputmode'] });\n });\n\n if (proxyParentValidation) {\n // All functions called on the inputElement internals will be applied to the parent\n // component internals as well. As a result, there's no need to add outer mechanisms\n // to update the parent component's validity state based on the input elements validity.\n const inputElementInternals = this.inputElement.internals;\n const parentThis = this;\n this.inputElement.internals = new Proxy(inputElementInternals, {\n get: (target, prop) => {\n if (typeof target[prop] === 'function' && prop === 'setValidity') {\n return (...args) => {\n // If we're calling setValidity with 3 args, then the validationTarget\n // needs to be swapped to be the inputElement\n if (args.length === 3) {\n const newArgs = args.slice(0, args.length - 1);\n newArgs.push(parentThis.inputElement);\n parentThis.internals[prop](...newArgs);\n } else {\n parentThis.internals[prop](...args);\n }\n return target[prop](...args);\n };\n }\n\n if (typeof target[prop] === 'function') {\n return (...args) => {\n parentThis.internals[prop](...args);\n return target[prop](...args);\n };\n }\n\n return target[prop];\n },\n });\n }\n }\n };\n\nconst composedProxyInputMixin = (proxyInputMixinConfig) =>\n compose(\n proxyInputMixin(proxyInputMixinConfig),\n // in order to use input-wrapper across all our input components, we need to inject its theme\n // to every proxy input mixin, to allow its css vars to be scoped properly and accessible\n // in the proxy input component\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') })\n );\n\nexport { composedProxyInputMixin as proxyInputMixin };\n","import { PORTAL_THEME_PREFIX } from '../constants';\nimport { kebabCaseJoin } from '../helpers';\nimport { forwardAttrs } from '../helpers/componentHelpers';\nimport { createStyleMixin } from './createStyleMixin';\nimport { createCssVarsList } from './createStyleMixin/helpers';\n\n// this is needed because we might generate the same css vars names\n// e.g. \"overlayColor\" attribute in style mixin's mapping,\n// will generate the same var as \"color\" attribute in portals's mapping\n// when the portal name is \"overlay\".\n// because of that, we are adding this separator that is also used as a differentiator\nconst DISPLAY_NAME_SEPARATOR = '_';\n\nconst sanitizeSelector = (selector) => selector.replace(/[^\\w\\s]/gi, '');\n\nconst withWaitForShadowRoot = (getRootElementFn) => async (that) => {\n const ele = await getRootElementFn(that);\n\n return new Promise((res) => {\n const MAX_RETRIES = 20;\n let counter = 0;\n\n const check = () => {\n if (counter > MAX_RETRIES) {\n // eslint-disable-next-line no-console\n console.error('could not get shadow root for element', ele);\n res(ele);\n return;\n }\n\n counter++;\n\n if (!ele?.shadowRoot) setTimeout(check);\n else res(ele.shadowRoot);\n };\n check();\n });\n};\n\nexport const portalMixin =\n ({ name, selector, mappings = {}, forward: { attributes = [], include = true } = {} }) =>\n (superclass) => {\n const eleDisplayName = name || sanitizeSelector(selector);\n\n const BaseClass = createStyleMixin({\n mappings,\n })(superclass);\n\n return class PortalMixinClass extends BaseClass {\n static get cssVarList() {\n return {\n ...BaseClass.cssVarList,\n [eleDisplayName]: createCssVarsList(\n kebabCaseJoin(superclass.componentName, DISPLAY_NAME_SEPARATOR + eleDisplayName),\n mappings\n ),\n };\n }\n\n #portalEle;\n\n constructor() {\n // we cannot use \"this\" before calling \"super\"\n const getRootElement = async (that) => {\n const baseEle = that.shadowRoot.querySelector(that.baseSelector);\n if (!selector) {\n return baseEle;\n }\n\n // in case we have a selector, we should first wait for the base element shadow root\n // and then look for the internal element\n const baseEleShadowRoot = await withWaitForShadowRoot(() => baseEle)(that);\n return baseEleShadowRoot.querySelector(selector);\n };\n\n const getPortalElement = withWaitForShadowRoot(getRootElement);\n\n super({\n getRootElement: getPortalElement,\n componentNameSuffix: DISPLAY_NAME_SEPARATOR + eleDisplayName,\n themeSection: PORTAL_THEME_PREFIX + eleDisplayName,\n baseSelector: ':host',\n });\n\n this.#portalEle = getPortalElement(this).then((ele) => ele.host);\n }\n\n async #handleHoverAttribute() {\n const portalEle = await this.#portalEle;\n portalEle.onmouseenter = (e) => {\n e.target.setAttribute('hover', 'true');\n };\n portalEle.onmouseleave = (e) => {\n e.target.removeAttribute('hover');\n };\n }\n\n async init() {\n super.init?.();\n const portalEle = await this.#portalEle;\n forwardAttrs(this, portalEle, {\n [include ? 'includeAttrs' : 'excludeAttrs']: attributes,\n });\n\n this.#handleHoverAttribute();\n }\n };\n };\n","import { createDispatchEvent } from '../helpers/mixinsHelpers';\n\nexport const changeMixin = (superclass) =>\n class ChangeMixinClass extends superclass {\n #dispatchChange = createDispatchEvent.bind(this, 'change');\n\n init() {\n super.init?.();\n this.prevValue = this.value;\n\n this.addEventListener('change', (e) => {\n e.stopPropagation();\n });\n\n this.addEventListener('blur', () => {\n if (this.value !== this.prevValue) {\n this.#dispatchChange();\n this.prevValue = this.value;\n }\n });\n }\n };\n","import { createDispatchEvent } from '../helpers/mixinsHelpers';\n\nexport const inputEventsDispatchingMixin = (superclass) =>\n class InputEventsDispatchingMixinClass extends superclass {\n init() {\n this.#blockNativeEvents();\n\n super.init?.();\n }\n\n // we want to block the native (trusted) events and control when these events are being dispatched\n #blockNativeEvents() {\n ['blur', 'focus', 'focusin', 'focusout'].forEach((event) => {\n this.addEventListener(event, (e) => {\n e.isTrusted && e.target === this && e.stopImmediatePropagation();\n });\n });\n }\n\n handleFocusEventsDispatching(inputs) {\n let timerId;\n\n // in order to simulate blur & focusout on root input element\n // we are checking if focus on one of the inner elements happened immediately after blur\n // if not, the component is no longer focused and we should dispatch blur & focusout\n inputs?.forEach((input) => {\n input?.addEventListener('focusout', (e) => {\n e.stopImmediatePropagation();\n timerId = setTimeout(() => {\n timerId = null;\n\n createDispatchEvent.call(this, 'blur');\n createDispatchEvent.call(this, 'focusout', { bubbles: true });\n });\n });\n\n // in order to simulate focus & focusin on the root input element\n // we are holding a timer id and clearing it on focusin\n // if there is a timer id, it means that the root input is still focused\n // otherwise, it was not focused before, and we should dispatch focus & focusin\n const onFocus = (e) => {\n e.stopImmediatePropagation();\n clearTimeout(timerId);\n if (!timerId) {\n createDispatchEvent.call(this, 'focus');\n createDispatchEvent.call(this, 'focusin', { bubbles: true });\n }\n };\n\n // some components are not dispatching focusin but only focus\n input?.addEventListener('focusin', onFocus);\n input?.addEventListener('focus', onFocus);\n });\n }\n\n // we want to block the input events from propagating in case the value of the root input wasn't change\n // this can happen if we are sanitizing characters on the internal inputs and do not want it to affect the root input element value\n // in this case, on each input event, we are comparing the root input value to the previous one, and only if it does not match, we are allowing the input event to propagate\n handleInputEventDispatching() {\n let previousRootComponentValue = this.value;\n\n this.addEventListener('input', (e) => {\n // we are comparing the previous value to the new one,\n // and if they have the same value, we are blocking the input event\n if (previousRootComponentValue === this.value) {\n e.stopImmediatePropagation();\n } else {\n previousRootComponentValue = this.value;\n }\n });\n }\n };\n","// since on load we can only sample the color of the placeholder,\n// we need to temporarily populate the input in order to sample the value color\nconst getValueColor = (ele, computedStyle) => {\n // to support setting dynamic values, we have to store the existing value\n // and re-set it if we are returning from this hack\n const origVal = ele.value;\n\n // eslint-disable-next-line no-param-reassign\n ele.value = '_';\n\n const valueColor = computedStyle.getPropertyValue('color');\n\n if (ele.value === '_') {\n // eslint-disable-next-line no-param-reassign\n ele.value = origVal;\n }\n\n return valueColor;\n};\n\nexport const createExternalInputSlot = (slotName, targetSlotName) => {\n const slotEle = document.createElement('slot');\n\n slotEle.setAttribute('name', slotName);\n slotEle.setAttribute('slot', targetSlotName);\n\n return slotEle;\n};\n\nexport const createExternalInputEle = (targetSlotName, type, autocompleteType) => {\n const inputEle = document.createElement('input');\n\n inputEle.setAttribute('slot', targetSlotName);\n inputEle.setAttribute('type', type);\n inputEle.setAttribute('data-hidden-input', 'true');\n inputEle.setAttribute('autocomplete', autocompleteType);\n\n return inputEle;\n};\n\n// We apply the original input's style to the external-input.\n// Eventually, the user should interact directly with the external input.\n// We keep the original input\nexport const applyExternalInputStyles = (sourceInputEle, targetInputEle, labelType) => {\n // We set a timeout here to avoid \"Double Print\" cases,\n // caused by sampling the computed style before it's ready.\n setTimeout(() => {\n const computedStyle = getComputedStyle(sourceInputEle);\n // Get minimal set of computed theme properties to set on external input\n const height = computedStyle.getPropertyValue('height');\n const paddingLeft = computedStyle.getPropertyValue('padding-left');\n const paddingRight = computedStyle.getPropertyValue('padding-right');\n const fontSize = computedStyle.getPropertyValue('font-size');\n const fontFamily = computedStyle.getPropertyValue('font-family');\n const letterSpacing = computedStyle.getPropertyValue('letter-spacing');\n const caretColor = computedStyle.getPropertyValue('caret-color');\n\n const valueColor = getValueColor(sourceInputEle, computedStyle);\n\n const commonThemeStyles = [\n ['all', 'unset'],\n ['position', 'absolute'],\n ['background-color', 'transparent'],\n ['height', height],\n ['left', paddingLeft],\n ['right', paddingRight],\n ['font-size', fontSize],\n ['font-family', fontFamily],\n ['letter-spacing', letterSpacing],\n ['caret-color', caretColor], // this is for seeing caret when focusing on external input\n ['color', valueColor],\n ];\n\n commonThemeStyles.forEach(([key, val]) =>\n targetInputEle.style.setProperty(key, val, 'important')\n );\n\n // Handle floating label theme properties\n if (labelType === 'floating') {\n const marginBottom = computedStyle.getPropertyValue('margin-bottom');\n targetInputEle.style.setProperty('margin-bottom', marginBottom, 'important');\n }\n\n // sample and apply width only after original input is ready and fully rendered\n const width = computedStyle.getPropertyValue('width');\n targetInputEle.style.setProperty(\n 'width',\n `calc(${width} - ${paddingLeft} - ${paddingRight}`,\n 'important'\n );\n }, 0);\n};\n","import { syncAttrs } from '../helpers/componentHelpers';\nimport {\n applyExternalInputStyles,\n createExternalInputEle,\n createExternalInputSlot,\n} from './externalInputHelpers';\n\nexport const externalInputMixin =\n ({ inputType, autocompleteType, includeAttrs = [], noBlurDispatch = false }) =>\n (superclass) =>\n class ExternalInputMixinClass extends superclass {\n #timers = [];\n\n get isExternalInput() {\n return this.getAttribute('external-input') === 'true';\n }\n\n createExternalInput() {\n if (!this.isExternalInput) {\n return null;\n }\n\n // use original input element as reference\n const origInput = this.baseElement.querySelector('input');\n\n // to avoid focus loop between external-input and origInput\n // we set origInput's tabindex to -1\n // otherwise, shift-tab will never leave the component focus\n origInput.setAttribute('tabindex', '-1');\n\n // create external slot\n const externalInputSlot = createExternalInputSlot('external-input', 'suffix');\n\n // append external slot to base element\n this.baseElement.appendChild(externalInputSlot);\n\n this.externalInput = createExternalInputEle(\n 'external-input',\n inputType,\n this.getAutocompleteType()\n );\n\n // apply original input's styles to external input\n setTimeout(() => {\n applyExternalInputStyles(origInput, this.externalInput, this.getAttribute('label-type'));\n });\n\n // 1Password catches the internal input, so we forward the value to the external input\n this.forwardInputValue(origInput, this.externalInput);\n\n syncAttrs(origInput, this.externalInput, {\n includeAttrs,\n });\n\n // We disable Vaadin's original `_setFocused` function, and use handleFocusEvents\n // and handleBlurEvents functions\n this.baseElement\n .querySelector('input')\n .addEventListener('focusout', (e) => e.stopImmediatePropagation(), true);\n\n // In order to manage focus/blur events when moving between parts of the component\n // we're managing the event dispatching by ourselves, with the following strategy:\n // - If one of the component parts is focused - it means that the component is still focused - so we stop the blur events.\n // - When none of the component parts is focused, we dispatch blur event.\n this.handleFocusEvents();\n this.handleBlurEvents();\n\n // sync input value\n this.handlelInputEvents(this.externalInput);\n\n // append external input to component's DOM\n this.appendChild(this.externalInput);\n\n return this.externalInput;\n }\n\n clearBlurTimers() {\n this.#timers.forEach((timer) => clearTimeout(timer));\n this.#timers.length = 0;\n }\n\n dispatchBlur() {\n return setTimeout(() => {\n this.dispatchEvent(new Event('blur', { bubbles: true, composed: true }));\n this.removeAttribute('focused');\n });\n }\n\n handleFocusEvents() {\n // on baseElement `focus` we forward the focus to the external input.\n // also, in order to avoid any blur within the component, we clear the blur timers.\n this.baseElement.addEventListener('focus', () => {\n this.externalInput.focus();\n this.clearBlurTimers();\n });\n\n // on `focus` of the external input, we manually set the `focused` attribute\n this.externalInput.addEventListener('focus', () => {\n this.clearBlurTimers();\n setTimeout(() => this.baseElement.setAttribute('focused', 'true'));\n });\n }\n\n handleBlurEvents() {\n this.baseElement.addEventListener(\n 'blur',\n (e) => {\n e.stopImmediatePropagation();\n // some components do not require this synthetic blur dispatch (e.g. Password)\n // so we allow them to override this dispatch\n if (noBlurDispatch) return;\n this.#timers.push(this.dispatchBlur());\n },\n true\n );\n\n this.externalInput.addEventListener(\n 'blur',\n (e) => {\n e.stopImmediatePropagation();\n this.#timers.push(this.dispatchBlur());\n },\n true\n );\n }\n\n handlelInputEvents(externalInput) {\n // sync value of insible input back to original input\n externalInput.addEventListener('input', (e) => {\n this.value = e.target.value;\n });\n\n // handle has-value attr\n externalInput.addEventListener('input', (e) => {\n if (!e.target.value) {\n this.removeAttribute('has-value');\n } else {\n this.setAttribute('has-value', 'true');\n }\n });\n }\n\n getAutocompleteType() {\n return this.getAttribute('autocomplete') || autocompleteType;\n }\n\n forwardInputValue(source, target) {\n // set internal sync events\n const valueDescriptor = Object.getOwnPropertyDescriptor(\n this.inputElement.constructor.prototype,\n 'value'\n );\n\n Object.defineProperty(source, 'value', {\n ...valueDescriptor,\n\n set(v) {\n valueDescriptor.set.call(this, v);\n // eslint-disable-next-line no-param-reassign\n target.value = v;\n },\n configurable: true,\n });\n }\n };\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, { USE_PROFILES: { svg: true, svgFilters: true } });\n\n const parser = new DOMParser();\n const ele = parser.parseFromString(clean, 'image/svg+xml').querySelector('svg');\n return ele;\n};\n\nexport const createIcon = async (src) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src);\n }\n\n ele.style.setProperty('width', '100%');\n ele.style.setProperty('height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","/* eslint-disable no-use-before-define */\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { createIcon } from './helpers';\n\nexport const componentName = getComponentName('icon');\n\nclass RawIcon extends createBaseClass({ componentName, baseSelector: 'slot' }) {\n static get observedAttributes() {\n return ['src'];\n }\n\n #icon;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\t\t</style>\n\t\t<slot></slot>\n\t`;\n }\n\n get src() {\n return this.getAttribute('src');\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n // eslint-disable-next-line class-methods-use-this\n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${IconClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`\n );\n });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (attrName === 'src') {\n createIcon(this.src).then((res) => {\n this.innerHTML = '';\n if (res) {\n const clonedNode = res.cloneNode(true);\n this.updateFillColor(clonedNode);\n this.appendChild(clonedNode);\n }\n });\n }\n }\n}\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawIcon);\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n} from '../../mixins';\nimport { IconClass } from '../descope-icon/IconClass';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(${IconClass.componentName})`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"])::part(prefix),\n\t:host([loading=\"true\"])::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","import globals from '../globals';\nimport { getThemeRefs, createHelperVars } from '../../helpers/themeHelpers';\nimport { componentName, ButtonClass } from '../../components/descope-button/ButtonClass';\n\nconst globalRefs = getThemeRefs(globals);\nconst compVars = ButtonClass.cssVarList;\n\nconst mode = {\n primary: globalRefs.colors.primary,\n secondary: globalRefs.colors.secondary,\n success: globalRefs.colors.success,\n error: globalRefs.colors.error,\n surface: globalRefs.colors.surface,\n};\n\nconst [helperTheme, helperRefs, helperVars] = createHelperVars({ mode }, componentName);\n\nconst button = {\n ...helperTheme,\n\n [compVars.fontFamily]: globalRefs.fonts.font1.family,\n\n [compVars.cursor]: 'pointer',\n [compVars.hostHeight]: '3em',\n [compVars.hostWidth]: 'auto',\n [compVars.hostDirection]: globalRefs.direction,\n\n [compVars.borderRadius]: globalRefs.radius.sm,\n [compVars.borderWidth]: globalRefs.border.xs,\n [compVars.borderStyle]: 'solid',\n [compVars.borderColor]: 'transparent',\n\n [compVars.labelSpacing]: '0.25em',\n\n [compVars.textAlign]: 'center', // default text align center\n textAlign: {\n right: { [compVars.textAlign]: 'right' },\n left: { [compVars.textAlign]: 'left' },\n center: { [compVars.textAlign]: 'center' },\n },\n\n [compVars.verticalPadding]: '1em',\n [compVars.horizontalPadding]: '0.875em',\n\n [compVars.outlineWidth]: globals.border.sm,\n [compVars.outlineOffset]: '0px', // keep `px` unit for external calc\n [compVars.outlineStyle]: 'solid',\n [compVars.outlineColor]: 'transparent',\n\n [compVars.iconSize]: '1.5em',\n\n size: {\n xs: { [compVars.fontSize]: '12px' },\n sm: { [compVars.fontSize]: '14px' },\n md: { [compVars.fontSize]: '16px' },\n lg: { [compVars.fontSize]: '18px' },\n },\n\n _square: {\n [compVars.hostHeight]: '3em',\n [compVars.hostWidth]: '3em',\n [compVars.verticalPadding]: '0',\n },\n\n _fullWidth: {\n [compVars.hostWidth]: '100%',\n },\n\n _loading: {\n [compVars.cursor]: 'wait',\n [compVars.labelTextColor]: helperRefs.main,\n },\n\n _disabled: {\n [helperVars.main]: globalRefs.colors.surface.light,\n [helperVars.dark]: globalRefs.colors.surface.dark,\n [helperVars.light]: globalRefs.colors.surface.light,\n [helperVars.contrast]: globalRefs.colors.surface.main,\n [compVars.iconColor]: globalRefs.colors.surface.main,\n },\n\n variant: {\n contained: {\n [compVars.labelTextColor]: helperRefs.contrast,\n [compVars.backgroundColor]: helperRefs.main,\n _hover: {\n [compVars.backgroundColor]: helperRefs.dark,\n _loading: {\n [compVars.backgroundColor]: helperRefs.main,\n },\n },\n _active: {\n [compVars.backgroundColor]: helperRefs.main,\n },\n },\n\n outline: {\n [compVars.labelTextColor]: helperRefs.main,\n [compVars.borderColor]: helperRefs.main,\n _hover: {\n [compVars.labelTextColor]: helperRefs.dark,\n [compVars.borderColor]: helperRefs.dark,\n },\n _active: {\n [compVars.labelTextColor]: helperRefs.main,\n [compVars.borderColor]: helperRefs.main,\n },\n },\n\n link: {\n [compVars.labelTextColor]: helperRefs.main,\n [compVars.horizontalPadding]: '0.125em',\n _hover: {\n [compVars.labelTextColor]: helperRefs.dark,\n [compVars.labelTextDecoration]: 'underline',\n },\n _active: {\n [compVars.labelTextColor]: helperRefs.main,\n },\n },\n },\n\n _focused: {\n [compVars.outlineColor]: helperRefs.light,\n },\n};\n\nexport default button;\n\nexport const vars = {\n ...compVars,\n ...helperVars,\n};\n","const {\n host,\n label,\n placeholder,\n requiredIndicator,\n inputField,\n input,\n inputMask,\n helperText,\n errorMessage,\n disabledPlaceholder,\n inputDisabled,\n inputIcon,\n externalInput,\n externalInputDisabled,\n externalPlaceholder,\n externalDisabledPlaceholder,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n placeholder: [\n { selector: '> input:placeholder-shown' },\n { selector: () => ':host::slotted(input:placeholder-shown)' },\n ],\n disabledPlaceholder: { selector: '> input:disabled::placeholder' },\n inputField: { selector: '::part(input-field)' },\n input: { selector: 'input' },\n inputMask: { selector: '::part(input-field)::before' },\n inputDisabled: { selector: 'input:disabled' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n inputIcon: { selector: 'vaadin-icon' },\n externalInput: { selector: () => '::slotted(input)' },\n externalInputDisabled: { selector: () => '::slotted(input:disabled)' },\n externalPlaceholder: { selector: () => '::slotted(input:placeholder-shown)' },\n externalDisabledPlaceholder: { selector: () => '::slotted(input:disabled::placeholder)' },\n};\n\nexport default {\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n fontFamily: [label, inputField, helperText, errorMessage],\n\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n { ...label, property: '-webkit-text-fill-color' },\n { ...requiredIndicator, property: '-webkit-text-fill-color' },\n ],\n\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: { ...host, property: 'direction' },\n\n inputBackgroundColor: [\n { ...inputField, property: 'background-color' },\n { ...inputMask, property: 'background-color' },\n ],\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n helperTextColor: { ...helperText, property: '-webkit-text-fill-color' },\n\n inputValueTextColor: [\n { ...inputField, property: 'color' },\n { ...inputDisabled, property: '-webkit-text-fill-color' },\n { ...externalInputDisabled, property: '-webkit-text-fill-color' },\n ],\n inputCaretTextColor: [\n { ...input, property: 'caret-color' },\n { ...externalInput, property: 'caret-color' },\n ],\n\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n inputHeight: { ...inputField, property: 'height' },\n inputHorizontalPadding: [\n { ...input, property: 'padding-left' },\n { ...input, property: 'padding-right' },\n { ...externalInput, property: 'padding-left' },\n { ...externalInput, property: 'padding-right' },\n ],\n\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n\n inputTextAlign: [\n { ...input, property: 'text-align' },\n { ...externalInput, property: 'text-align' },\n ],\n\n inputPlaceholderColor: [\n { selector: () => ':host input:placeholder-shown', property: 'color' },\n { ...externalPlaceholder, property: 'color' },\n { ...placeholder, property: 'color' },\n { ...disabledPlaceholder, property: '-webkit-text-fill-color' },\n { ...externalDisabledPlaceholder, property: '-webkit-text-fill-color' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: [\n { selector: '> input:placeholder-shown', property: 'opacity' },\n { ...externalPlaceholder, property: 'opacity' },\n ],\n inputVerticalAlignment: [\n { ...inputField, property: 'align-items' },\n { ...externalInput, property: 'align-items' },\n ],\n valueInputHeight: [\n { ...input, property: 'height' },\n { ...externalInput, property: 'height' },\n ],\n valueInputMarginBottom: [\n { ...input, property: 'margin-bottom' },\n { ...externalInput, property: 'margin-bottom' },\n ],\n\n inputIconOffset: [\n { ...inputIcon, property: 'margin-right' },\n { ...inputIcon, property: 'margin-left' },\n ],\n inputIconSize: { ...inputIcon, property: 'font-size' },\n inputIconColor: { ...inputIcon, property: 'color' },\n};\n","export const useHostExternalPadding = (cssVarList) => `\n :host {\n padding: calc(var(${cssVarList.inputOutlineWidth}) + var(${cssVarList.inputOutlineOffset}))\n }\n`;\n\nexport const resetInputFieldUnderlayingBorder = (name) => `\n ${name}::part(input-field)::after {\n border: none;\n }\n`;\n\nexport const resetInitialHeight = (name) => `\n ${name}::before {\n\t\theight: unset;\n\t}\n`;\n\nexport const resetInputElement = (name) => `\n ${name} > input {\n -webkit-mask-image: none;\n min-height: 0;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputContainer = (name) => `\n ${name} {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputField = (name) => `\n ${name}::part(input-field) {\n overflow: hidden;\n padding: 0;\n box-shadow: none;\n }\n`;\n\nexport const resetInputCursor = (name) => `\n ${name} > label,\n ${name}::part(label),\n ${name}::part(required-indicator) {\n cursor: pointer;\n }\n`;\n\nexport const resetInputPlaceholder = (name, ele = 'input') => `\n ${name}[disabled] > ${ele}:placeholder-shown,\n\t${name}[readonly] > ${ele}:placeholder-shown {\n\t\topacity: 1;\n\t}\n`;\n\nexport const resetInputAutoFill = (name, cssVarList) => `\n ${name} input:-webkit-autofill,\n ${name} input:-webkit-autofill::first-line,\n ${name} input:-webkit-autofill:hover,\n ${name} input:-webkit-autofill:active,\n ${name} input:-webkit-autofill:focus {\n -webkit-text-fill-color: var(${cssVarList.inputValueTextColor});\n box-shadow: 0 0 0 var(${cssVarList.inputHeight}) var(${cssVarList.inputBackgroundColor}) inset;\n }\n`;\n\nexport const resetInputFieldDefaultWidth = () => `\n :host {\n --vaadin-field-default-width: auto;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputReadonlyStyle = (name) => `\n ${name}::part(input-field)::after {\n opacity: 0;\n }\n`;\n\nexport const resetInputFieldInvalidBackgroundColor = (name) => `\n ${name}::part(input-field)::after {\n background: none;\n }\n`;\n\nexport const resetInputOverrides = (name, cssVarList) => `\n ${resetInputContainer(name)}\n ${resetInputCursor(name)}\n ${resetInputPlaceholder(name)}\n ${resetInputField(name)}\n ${resetInputAutoFill(name, cssVarList)}\n ${resetInputFieldInvalidBackgroundColor(name)}\n ${resetInitialHeight(name)}\n ${resetInputElement(name)}\n ${resetInputFieldUnderlayingBorder(name)}\n`;\n\n// This function is used to support RTL correctly for input components.\n// It also fixes the error message to be displayed LTR since we currently\n// don't support RTL for error messages.\nexport const resetInputLabelPosition = (name) => `\n :host ::part(error-message) {\n direction: ltr;\n }\n :host([required]) ::part(required-indicator) {\n width: 1em;\n display: inline-flex;\n }\n :host([required]) ::part(required-indicator)::after {\n position: static;\n }\n :host([has-label]) ::part(label) {\n padding-right: 0;\n padding-bottom: 0;\n display: flex;\n width: 100%;\n }\n ${name} [slot=\"label\"] {\n max-width: calc(100% - 1em);\n overflow: hidden;\n text-overflow: ellipsis;\n padding-bottom: 0.5em;\n }\n`;\n\nexport const inputFloatingLabelStyle = () => {\n return `\n :host([label-type=\"floating\"]) {\n position: relative;\n }\n :host([label-type=\"floating\"][has-label]) [slot=\"label\"] {\n padding: 0;\n }\n :host([label-type=\"floating\"][has-label]) > ::part(label) {\n z-index: 1;\n padding: 0;\n width: auto;\n }\n `;\n};\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport textFieldMappings from './textFieldMappings';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('text-field');\n\nconst observedAttrs = ['type', 'label-type', 'copy-to-clipboard'];\n\nconst customMixin = (superclass) =>\n class TextFieldClass extends superclass {\n static get observedAttributes() {\n return observedAttrs.concat(superclass.observedAttributes || []);\n }\n\n icon;\n\n init() {\n super.init?.();\n }\n\n renderCopyToClipboard(shouldRender) {\n if (!shouldRender) {\n this.icon?.remove();\n return;\n }\n\n const iconInitConfig = {\n icon: 'vaadin:copy-o',\n title: 'Copy',\n style: 'cursor: pointer',\n };\n\n const iconCopiedConfig = {\n icon: 'vaadin:check-circle-o',\n title: 'Copied',\n style: 'cursor: initial',\n };\n\n this.icon = Object.assign(document.createElement('vaadin-icon'), {\n slot: 'suffix',\n ...iconInitConfig,\n });\n\n this.baseElement.appendChild(this.icon);\n this.icon.addEventListener('click', () => {\n navigator.clipboard.writeText(this.value);\n Object.assign(this.icon, iconCopiedConfig);\n\n // we want the icon to go back to the initial state after 5 seconds\n setTimeout(() => {\n Object.assign(this.icon, iconInitConfig);\n }, 5000);\n });\n }\n\n onLabelClick() {\n this.focus();\n }\n\n attributeChangedCallback(attrName, oldVal, newVal) {\n super.attributeChangeCallback?.(attrName, oldVal, newVal);\n\n // Vaadin doesn't allow to change the input type attribute.\n // We need the ability to do that, so we're overriding their\n // behavior with their private API.\n // When receiving a `type` attribute, we use their private API\n // to set it on the input.\n if (attrName === 'type') {\n this.baseElement._setType(newVal);\n }\n\n if (oldVal !== newVal) {\n if (attrName === 'label-type') {\n if (newVal === 'floating') {\n this.addEventListener('click', this.onLabelClick);\n } else {\n this.removeEventListener('click', this.onLabelClick);\n }\n } else if (attrName === 'copy-to-clipboard') {\n this.renderCopyToClipboard(newVal === 'true');\n }\n }\n }\n };\n\nexport const TextFieldClass = compose(\n createStyleMixin({\n mappings: textFieldMappings,\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'], useProxyTargets: true }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: ['prefix', 'suffix'],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${TextFieldClass.cssVarList.inputOutlineWidth}) + var(${\n TextFieldClass.cssVarList.inputOutlineOffset\n }));\n box-sizing: border-box;\n\t\t\t}\n :host(:is([readonly], [disabled])) ::slotted(:is(input, textarea):placeholder-shown) {\n opacity: 1;\n }\n\n vaadin-text-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-text-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n ${resetInputLabelPosition('vaadin-text-field')}\n\t\t\t${useHostExternalPadding(TextFieldClass.cssVarList)}\n\t\t\t${resetInputOverrides('vaadin-text-field', TextFieldClass.cssVarList)}\n ${inputFloatingLabelStyle()}\n\n vaadin-text-field vaadin-icon {\n align-self: center;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { getThemeRefs, createHelperVars } from '../../helpers/themeHelpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\n\nconst componentName = getComponentName('input-wrapper');\nconst globalRefs = getThemeRefs(globals);\n\nconst [theme, refs, vars] = createHelperVars(\n {\n labelTextColor: globalRefs.colors.surface.dark,\n labelFontSize: '14px', // not taken from globals as it is fixed in all inputs\n labelFontWeight: '500', // not taken from globals as it is fixed in all inputs\n valueTextColor: globalRefs.colors.surface.contrast,\n placeholderTextColor: globalRefs.colors.surface.dark,\n requiredIndicator: \"'*'\",\n helperTextColor: globalRefs.colors.surface.dark,\n errorMessageTextColor: globalRefs.colors.error.main,\n successMessageTextColor: globalRefs.colors.success.main,\n\n borderWidth: globalRefs.border.xs,\n borderRadius: globalRefs.radius.xs,\n borderColor: 'transparent',\n\n outlineWidth: globalRefs.border.sm,\n outlineStyle: 'solid',\n outlineColor: 'transparent',\n outlineOffset: '0px', // we need to keep the px unit even for 0 value, as this var is used for calc in different component classes\n\n minWidth: '10em',\n toggleButtonSize: '1.5em',\n inputIconSize: '1em',\n inputHeight: '3em',\n horizontalPadding: '0.5em',\n verticalPadding: '0.5em',\n\n backgroundColor: globalRefs.colors.surface.main,\n\n fontFamily: globalRefs.fonts.font1.family,\n\n direction: globalRefs.direction,\n\n overlayOpacity: '0.3',\n\n size: {\n xs: { fontSize: '12px', chipFontSize: '10px' },\n sm: { fontSize: '14px', chipFontSize: '12px' },\n md: { fontSize: '16px', chipFontSize: '14px' },\n lg: { fontSize: '18px', chipFontSize: '16px' },\n },\n\n labelType: {\n floating: {\n labelPosition: 'absolute',\n labelTopPosition: '0',\n labelHorizontalPosition: '0.9em',\n labelFontSize: '1em',\n placeholderOpacity: 0,\n inputHeight: '3.5em',\n inputVerticalAlignment: 'flex-end',\n inputTransformY: 'translateY(1.55em)',\n inputTransition: 'all 75ms ease-in-out',\n marginInlineStart: '0',\n valueInputHeight: '1.5702em',\n valueInputMarginBottom: '0.5em',\n\n _focused: {\n labelFontSize: '0.75em',\n inputTransformY: 'translateY(1.05em)',\n labelFontWeight: '400',\n placeholderOpacity: 1,\n },\n\n _readOnly: {\n placeholderOpacity: 0,\n },\n\n _hasValue: {\n inputTransformY: 'translateY(1.05em)',\n labelFontSize: '0.75em',\n labelFontWeight: '400',\n },\n },\n },\n\n _fullWidth: {\n width: '100%',\n },\n\n _focused: {\n outlineColor: globalRefs.colors.surface.light,\n _invalid: {\n outlineColor: globalRefs.colors.error.main,\n },\n },\n\n _bordered: {\n outlineWidth: globalRefs.border.xs,\n borderColor: globalRefs.colors.surface.light,\n borderStyle: 'solid',\n _invalid: {\n borderColor: globalRefs.colors.error.main,\n },\n },\n\n _disabled: {\n labelTextColor: globalRefs.colors.surface.light,\n borderColor: globalRefs.colors.surface.light,\n valueTextColor: globalRefs.colors.surface.light,\n placeholderTextColor: globalRefs.colors.surface.light,\n helperTextColor: globalRefs.colors.surface.light,\n backgroundColor: globalRefs.colors.surface.main,\n },\n },\n componentName\n);\n\nexport { refs, vars };\nexport default theme;\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { TextFieldClass } from '../../components/descope-text-field/TextFieldClass';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = TextFieldClass.cssVarList;\n\nexport const textField = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderColor]: refs.placeholderTextColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.inputHeight]: refs.inputHeight,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.helperTextColor]: refs.helperTextColor,\n textAlign: {\n right: { [vars.inputTextAlign]: 'right' },\n left: { [vars.inputTextAlign]: 'left' },\n center: { [vars.inputTextAlign]: 'center' },\n },\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n [vars.inputIconOffset]: globalRefs.spacing.md,\n [vars.inputIconSize]: refs.inputIconSize,\n [vars.inputIconColor]: refs.placeholderTextColor,\n};\n\nexport default textField;\nexport { vars };\n","const passwordDraggableMixin = (superclass) =>\n class PasswordDraggableMixinClass extends superclass {\n get isReadOnly() {\n return this.hasAttribute('readonly') && this.getAttribute('readonly') !== 'false';\n }\n\n init() {\n // there is an issue in Chrome that input field with type password cannot be D&D\n // so in case the input is draggable & readonly, we are changing the input type to \"text\" before dragging\n // and return the original type when done\n super.init?.();\n\n const ele = this.querySelector('input');\n\n ele?.addEventListener('mousedown', (e) => {\n if (this.isDraggable && this.isReadOnly) {\n ele.setAttribute('inert', 'true');\n\n const inputEle = e.target;\n const prevType = inputEle.getAttribute('type');\n inputEle.setAttribute('type', 'text');\n setTimeout(() => {\n inputEle.focus();\n });\n\n const onComplete = (_) => {\n inputEle.setAttribute('type', prevType);\n ele.removeAttribute('inert');\n this.removeEventListener('mouseup', onComplete);\n this.removeEventListener('dragend', onComplete);\n };\n\n this.addEventListener('dragend', onComplete, { once: true });\n this.addEventListener('mouseup', onComplete, { once: true });\n }\n });\n }\n };\n\nexport default passwordDraggableMixin;\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n externalInputMixin,\n} from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport passwordDraggableMixin from './passwordDraggableMixin';\nimport {\n resetInputLabelPosition,\n resetInputCursor,\n useHostExternalPadding,\n inputFloatingLabelStyle,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('password');\n\nconst customMixin = (superclass) =>\n class PasswordFieldMixinClass extends superclass {\n static get observedAttributes() {\n return ['manual-visibility-toggle'];\n }\n\n get manualToggleVisibility() {\n return this.getAttribute('manual-visibility-toggle') === 'true';\n }\n\n init() {\n super.init?.();\n this.handleCaretOnVisibilityChange();\n this.origSetPasswordVisible = this.baseElement._setPasswordVisible;\n this.origSetFocused = this.baseElement._setFocused;\n this.baseElement._setFocused = this.setFocus.bind(this);\n\n this.initExternalInput();\n }\n\n initExternalInput() {\n const externalInput = this.createExternalInput();\n if (externalInput) {\n this.handlePasswordVisibility(externalInput);\n }\n }\n\n get caretPosition() {\n return this.value?.length || 0;\n }\n\n handleCaretOnVisibilityChange() {\n const origTogglePasswordVisibility = this.baseElement._togglePasswordVisibility.bind(\n this.baseElement\n );\n this.baseElement._togglePasswordVisibility = () => {\n setTimeout(() => {\n origTogglePasswordVisibility();\n this.inputElement.setSelectionRange(this.caretPosition, this.caretPosition);\n return false;\n });\n };\n }\n\n // We use `manual-visibility-toggle` to to toggle the password's visibility\n // even if the input field is focused-out. However, on focusout - Vaadin resets\n // password visibility. Since we don't want to override Vaadin's native setFocus\n // function (which is part of their FocusMixin).\n // So, here we override the part of logic that runs within Vaadin's setFocus that reports\n // the password visibility state. This logic is part of our `manual-visibility-toggle` only.\n setFocus(focused) {\n if (this.manualToggleVisibility) {\n this.baseElement._setPasswordVisible = () => {};\n }\n this.origSetFocused.call(this.baseElement, focused);\n this.baseElement._setPasswordVisible = this.origSetPasswordVisible.bind(this.baseElement);\n }\n\n resetPasswordVisibilityToggle() {\n this.baseElement._setPasswordVisible = this.origSetPasswordVisible;\n this.baseElement._setFocused = this.origSetFocus;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n }\n\n // override vaadin's password visibility toggle.\n // we need this override in order to to resolve the external input `focus` race condition,\n // which is caused due to the focus sync between the two inputs.\n handlePasswordVisibility(externalInput) {\n // disable vaadin's `__boundRevealButtonMouseDown` mouse-down event lisetener\n const origBoundRevealButtonMouseDown = this.baseElement.__boundRevealButtonMouseDown;\n this.baseElement\n .querySelector('vaadin-password-field-button')\n .removeEventListener('mousedown', origBoundRevealButtonMouseDown);\n\n // disable vaadin's `_passwordVisibleChanged` observer\n this.baseElement._passwordVisibleChanged = () => {};\n\n // override vaadin's `_togglePasswordVisibility`\n this.baseElement._togglePasswordVisibility = () => {\n const currVisibility = externalInput.getAttribute('type');\n if (currVisibility === 'password') {\n this.showPasswordVisibility(externalInput);\n } else {\n this.hidePasswordVisibility(externalInput);\n }\n };\n }\n\n showPasswordVisibility(input) {\n // handle input element's type\n input.setAttribute('type', 'text');\n // handle vaadin's `password-visible` attribute\n this.setAttribute('password-visible', 'true');\n }\n\n hidePasswordVisibility(input) {\n // handle input element's type\n input.setAttribute('type', 'password');\n // handle vaadin's `password-visible` attribute\n this.setAttribute('password-visible', 'false');\n }\n };\n\nconst {\n host,\n inputField,\n inputElement,\n inputElementPlaceholder,\n revealButtonContainer,\n revealButtonIcon,\n label,\n requiredIndicator,\n errorMessage,\n helperText,\n} = {\n host: { selector: () => ':host' },\n inputField: { selector: '::part(input-field)' },\n inputElement: { selector: '> input' },\n inputElementPlaceholder: { selector: () => ':host input:placeholder-shown' },\n revealButtonContainer: { selector: '::part(reveal-button)' },\n revealButtonIcon: { selector: '::part(reveal-button)::before' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const PasswordClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: [{}, host],\n fontFamily: [label, inputField, errorMessage, helperText],\n inputHeight: { ...inputField, property: 'height' },\n inputHorizontalPadding: [\n { ...inputElement, property: 'padding-left' },\n { ...inputElement, property: 'padding-right' },\n ],\n inputBackgroundColor: { ...inputField, property: 'background-color' },\n\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n\n inputPlaceholderTextColor: [\n { ...inputElementPlaceholder, property: 'color' },\n { selector: () => ':host ::slotted(input:placeholder-shown)', property: 'color' },\n ],\n inputValueTextColor: [\n { ...inputElement, property: 'color' },\n { selector: () => ':host ::slotted(input)', property: 'color' },\n ],\n\n revealButtonOffset: [\n { ...revealButtonContainer, property: 'margin-right' },\n { ...revealButtonContainer, property: 'margin-left' },\n ],\n revealButtonSize: { ...revealButtonContainer, property: 'font-size' },\n revealButtonColor: { ...revealButtonIcon, property: 'color' },\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: [\n { selector: '> input:placeholder-shown', property: 'opacity' },\n { ...inputElement, property: 'opacity' },\n ],\n inputVerticalAlignment: { ...inputField, property: 'align-items' },\n valueInputHeight: { ...inputElement, property: 'height' },\n },\n }),\n draggableMixin,\n externalInputMixin({\n inputType: 'password',\n includeAttrs: ['disabled', 'readonly', 'pattern', 'type', 'autocomplete'],\n noBlurDispatch: true,\n }),\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'], useProxyTargets: true }),\n componentNameValidationMixin,\n passwordDraggableMixin,\n customMixin\n)(\n createProxy({\n slots: ['', 'suffix'],\n wrappedEleName: 'vaadin-password-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tmin-width: 10em;\n box-sizing: border-box;\n position: relative;\n\t\t\t}\n\t\t\t${useHostExternalPadding(PasswordClass.cssVarList)}\n\t\t\t${resetInputCursor('vaadin-password-field')}\n ${resetInputLabelPosition('vaadin-password-field')}\n\n\t\t\tvaadin-password-field {\n\t\t\t\twidth: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tpadding: 0;\n\t\t\t}\n\t\t\tvaadin-password-field > input {\n -webkit-mask-image: none;\n\t\t\t\tbox-sizing: border-box;\n opacity: 1;\n\t\t\t}\n\t\t\tvaadin-password-field::part(input-field) {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tpadding: 0;\n\t\t\t}\n\t\t\tvaadin-password-field[focus-ring]::part(input-field) {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n :host ::slotted(input) {\n\t\t\t\tmin-height: 0;\n }\n :host([readonly]) ::slotted(input:placeholder-shown) {\n\t\t\t\topacity: 0;\n\t\t\t}\n\t\t\tvaadin-password-field::before {\n\t\t\t\theight: initial;\n\t\t\t}\n\t\t\tvaadin-password-field::part(input-field)::after {\n\t\t\t\topacity: 0;\n\t\t\t}\n\t\t\tvaadin-password-field-button {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t\t:host([readonly]) vaadin-password-field-button {\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\tvaadin-password-field-button[focus-ring] {\n\t\t\t\tbox-shadow: 0 0 0 2px var(${PasswordClass.cssVarList.inputOutlineColor});\n\t\t\t}\n\n ${inputFloatingLabelStyle()}\n \n ::part(reveal-button) {\n align-self: center;\n }\n\n vaadin-password-field[external-input=\"true\"] > input:not(:placeholder-shown) {\n opacity: 0;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { PasswordClass } from '../../components/descope-password/PasswordClass';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = PasswordClass.cssVarList;\n\nconst password = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.inputHeight]: refs.inputHeight,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.revealButtonOffset]: globalRefs.spacing.md,\n [vars.revealButtonSize]: refs.toggleButtonSize,\n [vars.revealButtonColor]: refs.placeholderTextColor,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n [vars.valueInputHeight]: refs.valueInputHeight,\n};\n\nexport default password;\nexport { vars };\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport textFieldMappings from '../descope-text-field/textFieldMappings';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('number-field');\n\nexport const NumberFieldClass = compose(\n createStyleMixin({\n mappings: textFieldMappings,\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin\n)(\n createProxy({\n slots: ['', 'prefix', 'suffix'],\n wrappedEleName: 'vaadin-number-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${NumberFieldClass.cssVarList.inputOutlineWidth}) + var(${\n NumberFieldClass.cssVarList.inputOutlineOffset\n }));\n\t\t\t}\n ${resetInputLabelPosition('vaadin-number-field')}\n\t\t\t${useHostExternalPadding(NumberFieldClass.cssVarList)}\n\t\t\t${resetInputOverrides('vaadin-number-field', NumberFieldClass.cssVarList)}\n ${inputFloatingLabelStyle()}\n\n vaadin-number-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-number-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import { NumberFieldClass } from '../../components/descope-number-field/NumberFieldClass';\nimport { refs } from './inputWrapper';\n\nconst vars = NumberFieldClass.cssVarList;\n\nconst numberField = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderColor]: refs.placeholderTextColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.inputHeight]: refs.inputHeight,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n};\n\nexport default numberField;\nexport { vars };\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n externalInputMixin,\n} from '../../mixins';\nimport textFieldMappings from '../descope-text-field/textFieldMappings';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('email-field');\n\nconst defaultPattern = \"^[\\\\w\\\\.\\\\%\\\\+\\\\-']+@[\\\\w\\\\.\\\\-]+\\\\.[A-Za-z]{2,}$\";\nconst defaultAutocomplete = 'username';\n\nconst customMixin = (superclass) =>\n class EmailFieldMixinClass extends superclass {\n init() {\n super.init?.();\n\n // we need to set the pattern on the base element because vaadin-email-field is overriding it\n this.baseElement.setAttribute('pattern', defaultPattern);\n\n if (!this.getAttribute('autocomplete')) {\n this.setAttribute('autocomplete', defaultAutocomplete);\n }\n\n this.createExternalInput();\n }\n };\n\nexport const EmailFieldClass = compose(\n createStyleMixin({\n mappings: textFieldMappings,\n }),\n draggableMixin,\n externalInputMixin({\n inputType: 'text',\n autocompleteType: 'username',\n includeAttrs: ['disabled', 'readonly', 'pattern'],\n }),\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'], useProxyTargets: true }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: ['', 'suffix'],\n wrappedEleName: 'vaadin-email-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${EmailFieldClass.cssVarList.inputOutlineWidth}) + var(${\n EmailFieldClass.cssVarList.inputOutlineOffset\n }));\n box-sizing: border-box;\n\t\t\t}\n ${resetInputLabelPosition('vaadin-email-field')}\n\t\t\t${useHostExternalPadding(EmailFieldClass.cssVarList)}\n\t\t\t${resetInputOverrides('vaadin-email-field', EmailFieldClass.cssVarList)}\n ${inputFloatingLabelStyle()}\n\n vaadin-email-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-email-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\n :host ::slotted(*) {\n -webkit-mask-image: none;\n }\n\n vaadin-email-field[external-input=\"true\"] > input:not(:placeholder-shown) {\n opacity: 0;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import { EmailFieldClass } from '../../components/descope-email-field/EmailFieldClass';\nimport { refs } from './inputWrapper';\n\nconst vars = EmailFieldClass.cssVarList;\n\nconst emailField = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.inputPlaceholderColor]: refs.placeholderTextColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.inputHeight]: refs.inputHeight,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n};\n\nexport default emailField;\nexport { vars };\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n resetInputContainer,\n resetInputCursor,\n resetInputLabelPosition,\n resetInputField,\n resetInputPlaceholder,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('text-area');\n\nconst {\n host,\n label,\n placeholder,\n inputField,\n textArea,\n requiredIndicator,\n helperText,\n errorMessage,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n placeholder: { selector: 'textarea:placeholder-shown' },\n inputField: { selector: '::part(input-field)' },\n textArea: { selector: '> textarea' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const TextAreaClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: [host, textArea],\n fontFamily: [label, inputField, helperText, errorMessage],\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n inputBackgroundColor: { ...inputField, property: 'background-color' },\n inputValueTextColor: { ...textArea, property: 'color' },\n inputPlaceholderTextColor: { ...placeholder, property: 'color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n inputOutlineStyle: { ...inputField, property: 'outline-Style' },\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputResizeType: { ...textArea, property: 'resize' },\n inputMinHeight: { ...textArea, property: 'min-height' },\n inputTextAlign: { ...textArea, property: 'text-align' },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-area',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n box-sizing: border-box;\n\t\t\t}\n\t\t\ttextarea {\n\t\t\t\theight: 100%;\n\t\t\t}\n ${resetInputLabelPosition('vaadin-text-area')}\n\t\t\t${useHostExternalPadding(TextAreaClass.cssVarList)}\n\t\t\t${resetInputContainer('vaadin-text-area')}\n\t\t\t${resetInputField('vaadin-text-area')}\n\t\t\t${resetInputPlaceholder('vaadin-text-area', 'textarea')}\n\t\t\t${resetInputCursor('vaadin-text-area')}\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import { TextAreaClass } from '../../components/descope-text-area/TextAreaClass';\nimport { refs } from './inputWrapper';\n\nconst vars = TextAreaClass.cssVarList;\n\nconst textArea = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputResizeType]: 'vertical',\n [vars.inputMinHeight]: '5em',\n textAlign: {\n right: { [vars.inputTextAlign]: 'right' },\n left: { [vars.inputTextAlign]: 'left' },\n center: { [vars.inputTextAlign]: 'center' },\n },\n\n _readonly: {\n [vars.inputResizeType]: 'none',\n },\n};\n\nexport default textArea;\nexport { vars };\n","import { compose } from '../helpers';\nimport {\n changeMixin,\n inputEventsDispatchingMixin,\n inputValidationMixin,\n normalizeBooleanAttributesMixin,\n} from '../mixins';\nimport { createBaseClass } from './createBaseClass';\n\nexport const createBaseInputClass = (...args) =>\n compose(\n inputValidationMixin,\n changeMixin,\n normalizeBooleanAttributesMixin,\n inputEventsDispatchingMixin\n )(createBaseClass(...args));\n","import { createBaseInputClass } from '../../../baseClasses/createBaseInputClass';\nimport { forwardAttrs, getComponentName, syncAttrs } from '../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('boolean-field-internal');\n\nconst forwardAttributes = ['disabled', 'label', 'invalid', 'readonly'];\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass BooleanInputInternal extends BaseInputClass {\n static get observedAttributes() {\n return ['readonly'];\n }\n\n constructor() {\n super();\n this.innerHTML = `\n\t\t\t<div class=\"wrapper\">\n\t\t\t\t<vaadin-checkbox></vaadin-checkbox>\n\t\t\t</div>\n\t\t`;\n this.wrapperEle = this.querySelector('div');\n this.checkbox = this.querySelector('vaadin-checkbox');\n }\n\n get value() {\n return this.checkbox?.checked;\n }\n\n set value(val) {\n this.checkbox.checked = val;\n }\n\n get checked() {\n return this.value;\n }\n\n set checked(val) {\n this.value = val;\n }\n\n init() {\n this.addEventListener('focus', (e) => {\n if (e.isTrusted) {\n this.checkbox.focus();\n }\n });\n super.init?.();\n\n forwardAttrs(this, this.checkbox, { includeAttrs: forwardAttributes });\n syncAttrs(this, this.checkbox, { includeAttrs: ['checked'] });\n\n // we need it in order to set the focus ring and trigger validation on descope-checkbox\n this.handleFocusEventsDispatching([this.checkbox]);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'readonly') {\n this.onReadOnlyChange(newValue !== null);\n }\n }\n\n onReadOnlyChange(val) {\n this.baseElement.setAttribute('inert', val);\n }\n\n getValidity() {\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n return {};\n }\n}\n\nexport default BooleanInputInternal;\n","import { forwardAttrs, forwardProps, syncAttrs } from '../../helpers/componentHelpers';\nimport { componentName as descopeInternalComponentName } from './descope-boolean-field-internal/BooleanFieldInternal';\n\nexport const booleanFieldMixin = (superclass) =>\n class BooleanFieldMixinClass extends superclass {\n init() {\n super.init?.();\n\n const template = document.createElement('template');\n template.innerHTML = `\n\t\t\t\t<${descopeInternalComponentName}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\tslot=\"input\"\n\t\t\t\t></${descopeInternalComponentName}>\n\t\t\t`;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n this.checkbox = this.inputElement.querySelector('vaadin-checkbox');\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'required',\n 'full-width',\n 'size',\n 'label',\n 'invalid',\n 'disabled',\n 'readonly',\n ],\n });\n\n forwardProps(this.inputElement, this, ['checked']);\n syncAttrs(this, this.inputElement, { includeAttrs: ['checked'] });\n }\n };\n","import { resetInputFieldDefaultWidth } from '../../helpers/themeHelpers/resetHelpers';\n\nexport default `\n:host {\n\tdisplay: inline-flex;\n}\n\n${resetInputFieldDefaultWidth()}\n\n.wrapper {\n\tdisplay: flex;\n\tbox-sizing: border-box;\n}\nvaadin-text-field {\n\tposition: relative;\n\tpadding: 0;\n\tdisplay: inline-flex;\n\talign-items: flex-start;\n}\nvaadin-text-field::before {\n\theight: 0;\n\tmargin: 0;\n}\nvaadin-text-field::part(label) {\n position: absolute;\n top: 0;\n}\nvaadin-text-field::part(input-field) {\n\tpadding: 0;\n\tbackground: none;\n\tmin-height: 0;\n}\nvaadin-text-field::part(input-field)::after {\n background: none;\n}\nvaadin-text-field[focus-ring]::part(input-field) {\n\tbox-shadow: none;\n}\n\nvaadin-checkbox [slot=\"label\"] {\n align-self: flex-start;\n padding: 0;\n}\n[required] vaadin-checkbox [slot=\"label\"]:not(:empty) {\n\tpadding-inline-end: 1em;\n}\ndescope-boolean-field-internal {\n -webkit-mask-image: none;\n min-height: initial;\n}\n`;\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { compose } from '../../../helpers';\nimport {\n createStyleMixin,\n proxyInputMixin,\n draggableMixin,\n componentNameValidationMixin,\n createProxy,\n} from '../../../mixins';\nimport { booleanFieldMixin } from '../booleanFieldMixin';\nimport commonStyles from '../commonStyles';\nimport { useHostExternalPadding } from '../../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('checkbox');\n\nconst {\n host,\n component,\n checkboxElement,\n checkboxSurface,\n checkboxLabel,\n requiredIndicator,\n helperText,\n errorMessage,\n} = {\n host: { selector: () => ':host' },\n requiredIndicator: { selector: '[required] vaadin-checkbox [slot=\"label\"]:not(:empty)::after' },\n component: { selector: 'vaadin-checkbox' },\n checkboxElement: { selector: 'vaadin-checkbox::part(checkbox)' },\n checkboxSurface: { selector: 'vaadin-checkbox::part(checkbox)::after' },\n checkboxLabel: { selector: 'vaadin-checkbox [slot=\"label\"]:not(:empty)' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const CheckboxClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n\n fontSize: [host, checkboxElement, checkboxLabel],\n fontFamily: [checkboxLabel, helperText, errorMessage],\n\n labelTextColor: { ...checkboxLabel, property: 'color' },\n labelSpacing: { ...checkboxLabel, property: 'padding-inline-start' },\n labelLineHeight: { ...checkboxLabel, property: 'line-height' },\n labelFontWeight: { ...checkboxLabel, property: 'font-weight' },\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n\n inputValueTextColor: { ...checkboxSurface, property: 'color' },\n inputBackgroundColor: { ...checkboxElement, property: 'background-color' },\n\n inputBorderRadius: { ...checkboxElement, property: 'border-radius' },\n inputBorderWidth: { ...checkboxElement, property: 'border-width' },\n inputBorderOffset: { ...checkboxElement, property: 'border-offset' },\n inputBorderColor: { ...checkboxElement, property: 'border-color' },\n inputBorderStyle: { ...checkboxElement, property: 'border-style' },\n\n inputOutlineWidth: { ...checkboxElement, property: 'outline-width' },\n inputOutlineOffset: { ...checkboxElement, property: 'outline-offset' },\n inputOutlineColor: { ...checkboxElement, property: 'outline-color' },\n inputOutlineStyle: { ...checkboxElement, property: 'outline-style' },\n\n inputSize: [\n { ...checkboxElement, property: 'width' },\n { ...checkboxElement, property: 'height' },\n { ...checkboxSurface, property: 'font-size' },\n { ...component, property: 'font-size' },\n ],\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin,\n booleanFieldMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t${commonStyles}\n ${useHostExternalPadding(CheckboxClass.cssVarList)}\n\n :host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n }\n\n :host ::part(error-message) {\n direction: ltr;\n }\n\n vaadin-text-field {\n width: 100%;\n }\n\n descope-boolean-field-internal {\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: 100%;\n height: 100%;\n }\n\n vaadin-checkbox::part(checkbox) {\n margin: 0;\n }\n\n vaadin-checkbox::part(checkbox)::after {\n top: 0;\n left: 0;\n }\n\n vaadin-text-field::part(input-field)::after {\n content: none;\n }\n `,\n excludeAttrsSync: ['label', 'tabindex'],\n componentName,\n })\n);\n","import { CheckboxClass } from '../../components/boolean-fields/descope-checkbox/CheckboxClass';\nimport { refs } from './inputWrapper';\n\nconst vars = CheckboxClass.cssVarList;\nconst checkboxSize = '1.35em';\n\nconst checkbox = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.labelFontWeight]: '400',\n [vars.labelLineHeight]: checkboxSize,\n [vars.labelSpacing]: '1em',\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.inputSize]: checkboxSize,\n\n _checked: {\n [vars.inputValueTextColor]: refs.valueTextColor,\n },\n\n _disabled: {\n [vars.labelTextColor]: refs.labelTextColor,\n },\n};\n\nexport default checkbox;\nexport { vars };\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { compose } from '../../../helpers';\nimport {\n createStyleMixin,\n proxyInputMixin,\n draggableMixin,\n componentNameValidationMixin,\n createProxy,\n} from '../../../mixins';\nimport { booleanFieldMixin } from '../booleanFieldMixin';\nimport commonStyles from '../commonStyles';\nimport { useHostExternalPadding } from '../../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('switch-toggle');\n\nconst {\n host,\n component,\n checkboxElement: track,\n checkboxSurface: knob,\n checkboxLabel,\n requiredIndicator,\n helperText,\n errorMessage,\n} = {\n host: { selector: () => ':host' },\n requiredIndicator: { selector: '[required] vaadin-checkbox [slot=\"label\"]:not(:empty)::after' },\n component: { selector: 'vaadin-checkbox' },\n checkboxElement: { selector: 'vaadin-checkbox::part(checkbox)' },\n checkboxSurface: { selector: 'vaadin-checkbox::part(checkbox)::after' },\n checkboxLabel: { selector: 'vaadin-checkbox [slot=\"label\"]:not(:empty)' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const SwitchToggleClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n\n fontSize: [component, checkboxLabel, checkboxLabel],\n fontFamily: [checkboxLabel, helperText, errorMessage],\n\n labelTextColor: { ...checkboxLabel, property: 'color' },\n labelSpacing: { ...checkboxLabel, property: 'padding-inline-start' },\n labelLineHeight: { ...checkboxLabel, property: 'line-height' },\n labelFontWeight: { ...checkboxLabel, property: 'font-weight' },\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n\n trackBorderWidth: { ...track, property: 'border-width' },\n trackBorderStyle: { ...track, property: 'border-style' },\n trackBorderColor: { ...track, property: 'border-color' },\n trackBackgroundColor: { ...track, property: 'background-color' },\n trackBorderRadius: { ...track, property: 'border-radius' },\n trackWidth: [{ ...track, property: 'width' }],\n trackHeight: [\n { ...knob, property: 'font-size' },\n { ...track, property: 'height' },\n ],\n\n knobSize: [\n { ...knob, property: 'width' },\n { ...knob, property: 'height' },\n ],\n knobTextColor: { ...knob, property: 'color' },\n knobRadius: { ...knob, property: 'border-radius' },\n knobTransitionDuration: { ...knob, property: 'transition' },\n knobColor: { ...knob, property: 'background-color' },\n knobTopOffset: { ...knob, property: 'top' },\n knobLeftOffset: { ...knob, property: 'left' },\n\n inputOutlineWidth: { ...track, property: 'outline-width' },\n inputOutlineOffset: { ...track, property: 'outline-offset' },\n inputOutlineColor: { ...track, property: 'outline-color' },\n inputOutlineStyle: { ...track, property: 'outline-style' },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin,\n booleanFieldMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t${commonStyles}\n\t\t\t${useHostExternalPadding(SwitchToggleClass.cssVarList)}\n\n :host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n }\n\n :host ::part(error-message) {\n direction: ltr;\n }\n\n vaadin-text-field {\n width: 100%;\n }\n\n vaadin-text-field::part(input-field)::after {\n content: none;\n }\n\n descope-boolean-field-internal {\n\t\t\t\tpadding: 0;\n width: 100%;\n }\n\n vaadin-text-field::part(input-field) {\n cursor: pointer;\n }\n\n vaadin-checkbox {\n cursor: pointer;\n }\n\n vaadin-checkbox [slot=\"label\"]:not(:empty) {\n cursor: pointer;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox) {\n margin: 0;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox)::before {\n content: '';\n\t\t\t}\n\n vaadin-checkbox[active]::part(checkbox) {\n\t\t\t\ttransform: none;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox)::after {\n\t\t\t\tposition: absolute;\n\t\t\t\topacity: 1;\n\t\t\t\tcontent: '';\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['label', 'tabindex'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { SwitchToggleClass } from '../../components/boolean-fields/descope-switch-toggle/SwitchToggleClass';\nimport { refs } from './inputWrapper';\n\nconst knobMargin = '2px';\nconst checkboxHeight = '1.25em';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = SwitchToggleClass.cssVarList;\n\nconst switchToggle = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n\n [vars.trackBorderStyle]: refs.borderStyle,\n [vars.trackBorderWidth]: refs.borderWidth, // var `trackBorderWidth` used outside the theme for `left` margin calculation\n [vars.trackBorderColor]: refs.borderColor,\n [vars.trackBackgroundColor]: refs.backgroundColor,\n [vars.trackBorderRadius]: globalRefs.radius.md,\n [vars.trackWidth]: '2.5em', // var `trackWidth` used outside the theme for `left` margin calculation\n [vars.trackHeight]: checkboxHeight,\n\n [vars.knobSize]: `calc(1em - ${knobMargin})`,\n [vars.knobRadius]: '50%',\n [vars.knobTopOffset]: '1px',\n [vars.knobLeftOffset]: knobMargin,\n [vars.knobColor]: refs.labelTextColor,\n [vars.knobTransitionDuration]: '0.3s',\n\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelFontWeight]: '400',\n [vars.labelLineHeight]: '1.35em',\n [vars.labelSpacing]: '1em',\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n\n _checked: {\n [vars.trackBorderColor]: refs.borderColor,\n [vars.knobLeftOffset]: `calc(100% - var(${vars.knobSize}) - ${knobMargin})`,\n [vars.knobColor]: refs.valueTextColor,\n [vars.knobTextColor]: refs.valueTextColor,\n },\n\n _disabled: {\n [vars.knobColor]: globalRefs.colors.surface.light,\n [vars.trackBorderColor]: globalRefs.colors.surface.light,\n [vars.trackBackgroundColor]: globalRefs.colors.surface.main,\n [vars.labelTextColor]: refs.labelTextColor,\n _checked: {\n [vars.knobColor]: globalRefs.colors.surface.light,\n [vars.trackBackgroundColor]: globalRefs.colors.surface.main,\n },\n },\n\n _invalid: {\n [vars.trackBorderColor]: globalRefs.colors.error.main,\n [vars.knobColor]: globalRefs.colors.error.main,\n },\n};\n\nexport default switchToggle;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('container');\n\nclass RawContainer extends createBaseClass({ componentName, baseSelector: 'slot' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: auto;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\t\t</style>\n\t\t<slot></slot>\n\t`;\n }\n}\n\nexport const ContainerClass = compose(\n createStyleMixin({\n mappings: {\n hostHeight: { selector: () => ':host', property: 'height' },\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n itemsGrow: { selector: () => '::slotted(*)', property: 'flex-grow', fallback: '0' },\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [{ property: 'padding-left' }, { property: 'padding-right' }],\n\n flexDirection: {},\n justifyContent: {},\n alignItems: {},\n gap: {},\n flexWrap: {},\n\n backgroundColor: {},\n color: {},\n borderRadius: {},\n\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n boxShadow: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawContainer);\n","import globals from '../globals';\nimport { getThemeRefs, createHelperVars } from '../../helpers/themeHelpers';\nimport { ContainerClass, componentName } from '../../components/descope-container/ContainerClass';\n\nconst globalRefs = getThemeRefs(globals);\n\nconst compVars = ContainerClass.cssVarList;\n\nconst verticalAlignment = {\n start: { verticalAlignment: 'start' },\n center: { verticalAlignment: 'safe center' },\n end: { verticalAlignment: 'end' },\n};\n\nconst horizontalAlignment = {\n start: { horizontalAlignment: 'start' },\n center: { horizontalAlignment: 'safe center' },\n end: { horizontalAlignment: 'end' },\n};\n\nconst [helperTheme, helperRefs, helperVars] = createHelperVars(\n {\n verticalAlignment,\n horizontalAlignment,\n shadowColor: '#00000020', // if we want to support transparency vars, we should use different color format\n },\n componentName\n);\n\nconst { shadowColor } = helperRefs;\n\nconst container = {\n ...helperTheme,\n\n [compVars.itemsGrow]: '0',\n [compVars.hostWidth]: '100%',\n [compVars.boxShadow]: 'none',\n [compVars.backgroundColor]: globalRefs.colors.surface.main,\n [compVars.color]: globalRefs.colors.surface.contrast,\n [compVars.borderRadius]: '0px',\n [compVars.hostDirection]: globalRefs.direction,\n\n verticalPadding: {\n sm: { [compVars.verticalPadding]: '5px' },\n md: { [compVars.verticalPadding]: '10px' },\n lg: { [compVars.verticalPadding]: '20px' },\n },\n\n horizontalPadding: {\n sm: { [compVars.horizontalPadding]: '5px' },\n md: { [compVars.horizontalPadding]: '10px' },\n lg: { [compVars.horizontalPadding]: '20px' },\n },\n\n direction: {\n row: {\n [compVars.flexDirection]: 'row',\n [compVars.alignItems]: helperRefs.verticalAlignment,\n [compVars.justifyContent]: helperRefs.horizontalAlignment,\n [compVars.flexWrap]: 'wrap',\n horizontalAlignment: {\n spaceBetween: {\n [helperVars.horizontalAlignment]: 'space-between',\n },\n },\n },\n column: {\n [compVars.flexDirection]: 'column',\n [compVars.alignItems]: helperRefs.horizontalAlignment,\n [compVars.justifyContent]: helperRefs.verticalAlignment,\n verticalAlignment: {\n spaceBetween: {\n [helperVars.verticalAlignment]: 'space-between',\n },\n },\n },\n },\n\n spaceBetween: {\n sm: { [compVars.gap]: '10px' },\n md: { [compVars.gap]: '20px' },\n lg: { [compVars.gap]: '30px' },\n },\n\n shadow: {\n sm: {\n [compVars.boxShadow]: `${globalRefs.shadow.wide.sm} ${shadowColor}, ${globalRefs.shadow.narrow.sm} ${shadowColor}`,\n },\n md: {\n [compVars.boxShadow]: `${globalRefs.shadow.wide.md} ${shadowColor}, ${globalRefs.shadow.narrow.md} ${shadowColor}`,\n },\n lg: {\n [compVars.boxShadow]: `${globalRefs.shadow.wide.lg} ${shadowColor}, ${globalRefs.shadow.narrow.lg} ${shadowColor}`,\n },\n xl: {\n [compVars.boxShadow]: `${globalRefs.shadow.wide.xl} ${shadowColor}, ${globalRefs.shadow.narrow.xl} ${shadowColor}`,\n },\n '2xl': {\n [helperVars.shadowColor]: '#00000050', // mimic daisyUI shadow settings\n [compVars.boxShadow]: `${globalRefs.shadow.wide['2xl']} ${shadowColor}`,\n },\n },\n\n borderRadius: {\n sm: { [compVars.borderRadius]: globalRefs.radius.sm },\n md: { [compVars.borderRadius]: globalRefs.radius.md },\n lg: { [compVars.borderRadius]: globalRefs.radius.lg },\n xl: { [compVars.borderRadius]: globalRefs.radius.xl },\n '2xl': { [compVars.borderRadius]: globalRefs.radius['2xl'] },\n '3xl': { [compVars.borderRadius]: globalRefs.radius['3xl'] },\n },\n};\n\nexport default container;\n\nexport const vars = {\n ...compVars,\n ...helperVars,\n};\n","import { compose } from '../helpers';\nimport { componentNameValidationMixin, createStyleMixin, draggableMixin } from '../mixins';\nimport { createBaseClass } from './createBaseClass';\n\nexport const createCssVarImageClass = ({ componentName, varName, fallbackVarName }) => {\n let style;\n const getContent = () => style;\n\n class RawCssVarImageClass extends createBaseClass({\n componentName,\n baseSelector: ':host > div',\n }) {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\t\t\t\t:host([draggable=\"true\"]) > div {\n\t\t\t\t\tpointer-events: none\n\t\t\t\t}\t\t\n\t\t\t\t:host > div {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tmax-width: 100%;\n\t\t\t\t\tmax-height: 100%;\n\t\t\t\t\tobject-fit: contain;\n\t\t\t\t\tmargin: auto;\n\t\t\t\t\t${getContent()}\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<div></div>\n\t\t\t`;\n }\n }\n\n const CssVarImageClass = compose(\n createStyleMixin({\n mappings: {\n height: { selector: () => ':host > div' },\n width: { selector: () => ':host > div' },\n [varName]: { property: 'content' },\n [fallbackVarName]: { property: 'content' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n )(RawCssVarImageClass);\n\n style = `content: var(${CssVarImageClass.cssVarList[varName]}, var(${CssVarImageClass.cssVarList[fallbackVarName]}));`;\n\n return CssVarImageClass;\n};\n","import { getComponentName } from '../../helpers/componentHelpers';\nimport { createCssVarImageClass } from '../../baseClasses/createCssVarImageClass';\n\nexport const componentName = getComponentName('logo');\n\nexport const LogoClass = createCssVarImageClass({\n componentName,\n varName: 'url',\n fallbackVarName: 'fallbackUrl',\n});\n","import { LogoClass } from '../../components/descope-logo/LogoClass';\n\nconst vars = LogoClass.cssVarList;\n\nconst logo = {\n [vars.fallbackUrl]: 'url(https://imgs.descope.com/components/no-logo-placeholder.svg)',\n};\n\nexport default logo;\nexport { vars };\n","import { getComponentName } from '../../helpers/componentHelpers';\nimport { createCssVarImageClass } from '../../baseClasses/createCssVarImageClass';\n\nexport const componentName = getComponentName('totp-image');\n\nexport const TotpImageClass = createCssVarImageClass({\n componentName,\n varName: 'url',\n fallbackVarName: 'fallbackUrl',\n});\n","import { TotpImageClass } from '../../components/descope-totp-image/TotpImageClass';\n\nconst vars = TotpImageClass.cssVarList;\n\nconst logo = {\n [vars.fallbackUrl]: 'url(https://imgs.descope.com/components/totp-placeholder.svg)',\n};\n\nexport default logo;\nexport { vars };\n","import { getComponentName } from '../../helpers/componentHelpers';\nimport { createCssVarImageClass } from '../../baseClasses/createCssVarImageClass';\n\nexport const componentName = getComponentName('notp-image');\n\nexport const NotpImageClass = createCssVarImageClass({\n componentName,\n varName: 'url',\n fallbackVarName: 'fallbackUrl',\n});\n","import { NotpImageClass } from '../../components/descope-notp-image/NotpImageClass';\n\nconst vars = NotpImageClass.cssVarList;\n\nconst logo = {\n [vars.fallbackUrl]: 'url(https://imgs.descope.com/components/notp-placeholder.svg)',\n};\n\nexport default logo;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\n\nexport const componentName = getComponentName('text');\n\nclass RawText extends createBaseClass({ componentName, baseSelector: ':host > slot' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <style>\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n </style>\n <slot part=\"text-wrapper\"></slot>\n `;\n }\n\n get hideWhenEmpty() {\n return this.getAttribute('hide-when-empty') === 'true';\n }\n\n init() {\n super.init();\n\n observeChildren(this, () => {\n const hasChildren = !!this.childNodes.length;\n this.style.display = !hasChildren && this.hideWhenEmpty ? 'none' : '';\n });\n }\n}\n\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontSize: {},\n textColor: { property: 'color' },\n textLineHeight: { property: 'line-height' },\n textLetterSpacing: { property: 'letter-spacing' },\n textShadow: {},\n textAlign: {},\n textTransform: {},\n fontFamily: {},\n fontStyle: {},\n fontWeight: {},\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawText);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { TextClass } from '../../components/descope-text/TextClass';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = TextClass.cssVarList;\n\nconst text = {\n [vars.hostDirection]: globalRefs.direction,\n [vars.textLineHeight]: '1.35em',\n [vars.textAlign]: 'left',\n [vars.textColor]: globalRefs.colors.surface.dark,\n\n variant: {\n h1: {\n [vars.fontSize]: globalRefs.typography.h1.size,\n [vars.fontWeight]: globalRefs.typography.h1.weight,\n [vars.fontFamily]: globalRefs.typography.h1.font,\n },\n h2: {\n [vars.fontSize]: globalRefs.typography.h2.size,\n [vars.fontWeight]: globalRefs.typography.h2.weight,\n [vars.fontFamily]: globalRefs.typography.h2.font,\n },\n h3: {\n [vars.fontSize]: globalRefs.typography.h3.size,\n [vars.fontWeight]: globalRefs.typography.h3.weight,\n [vars.fontFamily]: globalRefs.typography.h3.font,\n },\n subtitle1: {\n [vars.fontSize]: globalRefs.typography.subtitle1.size,\n [vars.fontWeight]: globalRefs.typography.subtitle1.weight,\n [vars.fontFamily]: globalRefs.typography.subtitle1.font,\n },\n subtitle2: {\n [vars.fontSize]: globalRefs.typography.subtitle2.size,\n [vars.fontWeight]: globalRefs.typography.subtitle2.weight,\n [vars.fontFamily]: globalRefs.typography.subtitle2.font,\n },\n body1: {\n [vars.fontSize]: globalRefs.typography.body1.size,\n [vars.fontWeight]: globalRefs.typography.body1.weight,\n [vars.fontFamily]: globalRefs.typography.body1.font,\n },\n body2: {\n [vars.fontSize]: globalRefs.typography.body2.size,\n [vars.fontWeight]: globalRefs.typography.body2.weight,\n [vars.fontFamily]: globalRefs.typography.body2.font,\n },\n },\n\n mode: {\n primary: {\n [vars.textColor]: globalRefs.colors.surface.contrast,\n },\n secondary: {\n [vars.textColor]: globalRefs.colors.surface.dark,\n },\n error: {\n [vars.textColor]: globalRefs.colors.error.main,\n },\n success: {\n [vars.textColor]: globalRefs.colors.success.main,\n },\n },\n\n textAlign: {\n right: { [vars.textAlign]: 'right' },\n left: { [vars.textAlign]: 'left' },\n center: { [vars.textAlign]: 'center' },\n },\n\n _fullWidth: {\n [vars.hostWidth]: '100%',\n },\n\n _italic: {\n [vars.fontStyle]: 'italic',\n },\n\n _uppercase: {\n [vars.textTransform]: 'uppercase',\n },\n\n _lowercase: {\n [vars.textTransform]: 'lowercase',\n },\n};\n\nexport default text;\nexport { vars };\n","export const disableRules = [\n 'blockquote',\n 'list',\n 'image',\n 'table',\n 'code',\n 'hr',\n 'backticks',\n 'fence',\n 'reference',\n 'heading',\n 'lheading',\n 'html_block',\n];\n","export const decodeHTML = (html) => {\n const textArea = document.createElement('textarea');\n textArea.innerHTML = html;\n return textArea.value;\n};\n","/* eslint-disable no-param-reassign */\n\nimport MarkdownIt from 'markdown-it';\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport { disableRules } from './consts';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { decodeHTML } from './helpers';\n\nexport const componentName = getComponentName('enriched-text');\n\nclass EnrichedText extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n #origLinkRenderer;\n\n #origEmRenderer;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <style>\n :host {\n line-height: 1em;\n word-break: break-word;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n *, *:last-child {\n margin: 0;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n p {\n margin-bottom: 1em;\n }\n a {\n cursor: pointer;\n }\n blockquote {\n padding: 0 2em;\n }\n u {\n text-decoration: underline\n }\n s {\n color: currentColor;\n }\n </style>\n <slot part=\"text-wrapper\" style=\"display:none\"></slot>\n <div class=\"content\"></div>\n `;\n\n this.textSlot = this.shadowRoot.querySelector('slot');\n\n this.#initProcessor();\n\n observeChildren(this, this.#parseChildren.bind(this));\n }\n\n static get observedAttributes() {\n return ['readonly', 'link-target-blank'];\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (newValue !== oldValue) {\n if (attrName === 'readonly') {\n this.onReadOnlyChange(newValue === 'true');\n }\n\n if (attrName === 'link-target-blank') {\n this.#initProcessor();\n }\n }\n }\n\n // We're overriding the rule for em with single underscore to perform as underline. (_underline_)\n customUnderlineRenderer() {\n this.processor.renderer.rules.em_open = (tokens, idx, options, env, self) => {\n if (tokens[idx].markup === '_') tokens[idx].tag = 'u';\n return this.#origEmRenderer(tokens, idx, options, env, self);\n };\n this.processor.renderer.rules.em_close = (tokens, idx, options, env, self) => {\n if (tokens[idx].markup === '_') tokens[idx].tag = 'u';\n return this.#origEmRenderer(tokens, idx, options, env, self);\n };\n }\n\n #customizeLinkRenderer() {\n if (this.linkTargetBlank) {\n this.processor.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // Add a new `target` attribute, or replace the value of the existing one.\n tokens[idx].attrSet('target', '_blank');\n // Pass the token to the default renderer.\n return this.#origLinkRenderer(tokens, idx, options, env, self);\n };\n } else {\n this.processor.renderer.rules.link_open = this.#origLinkRenderer;\n }\n }\n\n #disableCustomRules() {\n if (!this.processor) {\n return;\n }\n this.processor.disable(disableRules);\n }\n\n #updateProcessorRules() {\n this.#disableCustomRules();\n }\n\n #storeOrigRenderers() {\n const defaultLinkRenderer = (tokens, idx, options, _, self) =>\n self.renderToken(tokens, idx, options);\n this.#origLinkRenderer = this.processor.renderer.rules.link_open || defaultLinkRenderer;\n\n const defaultStrongRenderer = (tokens, idx, options, _, self) =>\n self.renderToken(tokens, idx, options);\n this.#origEmRenderer = this.processor.renderer.rules.em_open || defaultStrongRenderer;\n }\n\n #initProcessor() {\n this.processor = new MarkdownIt('commonmark', { html: true });\n this.#storeOrigRenderers();\n this.#updateProcessorRules();\n this.#customizeLinkRenderer();\n this.customUnderlineRenderer();\n }\n\n get linkTargetBlank() {\n return this.getAttribute('link-target-blank') === 'true';\n }\n\n get contentNode() {\n return this.shadowRoot.querySelector('.content');\n }\n\n #parseChildren() {\n if (!this.processor) {\n return;\n }\n\n let html = decodeHTML(this.innerHTML);\n\n if (!html?.trim() && this.isConnected) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n\n try {\n const tokens = this.processor.parse(html, { references: undefined });\n html = this.processor.renderer.render(tokens, { html: true, breaks: true });\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('Not parsing invalid markdown token');\n }\n\n this.contentNode.innerHTML = html;\n }\n\n onReadOnlyChange(isReadOnly) {\n if (isReadOnly) {\n this.contentNode.setAttribute('inert', isReadOnly);\n } else {\n this.contentNode.removeAttribute('inert');\n }\n }\n}\n\nexport const EnrichedTextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDisplay: { selector: () => ':host', property: 'display', fallback: 'inline-block' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontSize: {},\n fontFamily: {},\n fontWeight: {},\n fontWeightBold: [\n { selector: () => ':host strong', property: 'font-weight' },\n { selector: () => ':host b', property: 'font-weight' },\n ],\n textColor: { property: 'color' },\n textLineHeight: { property: 'line-height' },\n textAlign: {},\n linkColor: { selector: 'a', property: 'color' },\n linkTextDecoration: { selector: 'a', property: 'text-decoration' },\n linkHoverTextDecoration: { selector: 'a:hover', property: 'text-decoration' },\n minHeight: {},\n minWidth: {},\n },\n }),\n createStyleMixin({ componentNameOverride: getComponentName('link') }),\n createStyleMixin({ componentNameOverride: getComponentName('text') }),\n draggableMixin,\n componentNameValidationMixin\n)(EnrichedText);\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { TextClass } from '../descope-text/TextClass';\nimport { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('link');\n\nclass RawLink extends createBaseClass({ componentName, baseSelector: ':host a' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t\t:host {\n\t\t\tdisplay: inline-block;\n line-height: 1em;\n\t\t}\n\t\t:host a {\n\t\t\tdisplay: inline;\n\t\t}\n\t\t</style>\n\t\t<div>\n\t\t\t<descope-text>\n\t\t\t\t<a>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</a>\n\t\t\t</descope-text>\n\t\t</div>\n\t\t`;\n\n forwardAttrs(this, this.shadowRoot.querySelector('a'), {\n includeAttrs: ['href', 'target', 'tooltip'],\n mapAttrs: {\n tooltip: 'title',\n },\n });\n\n forwardAttrs(this, this.shadowRoot.querySelector('descope-text'), {\n includeAttrs: ['mode', 'variant'],\n });\n }\n}\n\nconst selectors = {\n host: { selector: () => ':host' },\n link: { selector: () => ':host a' },\n anchor: {},\n wrapper: { selector: () => ':host > div' },\n text: { selector: () => TextClass.componentName },\n};\n\nconst { anchor, text, host, wrapper, link } = selectors;\n\nexport const LinkClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...text, property: 'direction' },\n textAlign: wrapper,\n textDecoration: { ...link, property: 'text-decoration', fallback: 'none' },\n textColor: [\n { ...anchor, property: 'color' },\n { ...text, property: TextClass.cssVarList.textColor },\n ],\n cursor: anchor,\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawLink);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { LinkClass } from '../../components/descope-link/LinkClass';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = LinkClass.cssVarList;\n\nconst link = {\n [vars.hostDirection]: globalRefs.direction,\n [vars.cursor]: 'pointer',\n\n [vars.textColor]: globalRefs.colors.primary.main,\n\n textAlign: {\n right: { [vars.textAlign]: 'right' },\n left: { [vars.textAlign]: 'left' },\n center: { [vars.textAlign]: 'center' },\n },\n\n _fullWidth: {\n [vars.hostWidth]: '100%',\n },\n\n _hover: {\n [vars.textDecoration]: 'underline',\n },\n\n mode: {\n secondary: {\n [vars.textColor]: globalRefs.colors.secondary.main,\n },\n error: {\n [vars.textColor]: globalRefs.colors.error.main,\n },\n success: {\n [vars.textColor]: globalRefs.colors.success.main,\n },\n },\n};\n\nexport default link;\nexport { vars };\n","import globals from '../globals';\nimport { getThemeRefs, useVar } from '../../helpers/themeHelpers';\nimport { EnrichedTextClass } from '../../components/descope-enriched-text/EnrichedTextClass';\nimport { vars as textCompVars } from './text';\nimport { vars as linkCompVars } from './link';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = EnrichedTextClass.cssVarList;\n\nconst enrichedText = {\n [vars.hostDirection]: globalRefs.direction,\n [vars.hostWidth]: useVar(textCompVars.hostWidth),\n\n [vars.textLineHeight]: useVar(textCompVars.textLineHeight),\n [vars.textColor]: useVar(textCompVars.textColor),\n [vars.textAlign]: useVar(textCompVars.textAlign),\n\n [vars.fontSize]: useVar(textCompVars.fontSize),\n [vars.fontWeight]: useVar(textCompVars.fontWeight),\n [vars.fontFamily]: useVar(textCompVars.fontFamily),\n\n [vars.linkColor]: useVar(linkCompVars.textColor),\n [vars.linkTextDecoration]: 'none',\n [vars.linkHoverTextDecoration]: 'underline',\n\n [vars.fontWeightBold]: '900',\n [vars.minWidth]: '0.25em',\n [vars.minHeight]: '1.35em',\n\n [vars.hostDisplay]: 'inline-block',\n\n _empty: {\n _hideWhenEmpty: {\n [vars.hostDisplay]: 'none',\n },\n },\n};\n\nexport default enrichedText;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\nimport { TextClass } from '../descope-text/TextClass';\n\nexport const componentName = getComponentName('divider');\nclass RawDivider extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t}\n\t\t\t\t:host > div {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t}\n\t\t\t\t:host > div::before,\n\t\t\t\t:host > div::after {\n\t\t\t\t\tcontent: '';\n\t\t\t\t\tflex-grow: 1;\n\t\t\t\t}\n\t\t\t\tdescope-text {\n\t\t\t\t\tflex-grow: 0;\n\t\t\t\t\tflex-shrink: 0;\n\t\t\t\t}\n\t\t\t\t:host(:empty) descope-text {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t\t:host([vertical=\"true\"]) div {\n\t\t\t\t\twidth: fit-content;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<div>\n\t\t\t\t<descope-text>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</descope-text>\n\t\t\t</div>\n\t\t`;\n\n this.textComponent = this.shadowRoot.querySelector('descope-text');\n\n forwardAttrs(this, this.textComponent, {\n includeAttrs: ['mode', 'variant', 'italic'],\n });\n }\n}\n\nconst textVars = TextClass.cssVarList;\nconst { host, before, after, text } = {\n host: { selector: () => ':host' },\n before: { selector: '::before' },\n after: { selector: '::after' },\n text: { selector: 'descope-text' },\n};\n\nexport const DividerClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostPadding: { ...host, property: 'padding' },\n hostDirection: { ...text, property: 'direction' },\n\n minHeight: {},\n alignItems: {},\n alignSelf: {},\n flexDirection: {},\n textAlign: { ...text, property: textVars.textAlign },\n\n labelTextWidth: { ...text, property: 'width' },\n labelTextMaxWidth: { ...text, property: 'max-width' },\n labelTextVerticalSpacing: [\n { ...text, property: 'padding-top' },\n { ...text, property: 'padding-bottom' },\n ],\n labelTextHorizontalSpacing: [\n { ...text, property: 'padding-right' },\n { ...text, property: 'padding-left' },\n ],\n\n stripeColor: [\n { ...before, property: 'background-color' },\n { ...after, property: 'background-color' },\n ],\n stripeHorizontalThickness: [\n { ...before, property: 'height' },\n { ...after, property: 'height' },\n ],\n stripeVerticalThickness: [\n { ...before, property: 'width' },\n { ...after, property: 'width' },\n ],\n stripeColorOpacity: [\n { ...before, property: 'opacity' },\n { ...after, property: 'opacity' },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawDivider);\n","import globals from '../globals';\nimport { componentName, DividerClass } from '../../components/descope-divider/DividerClass';\nimport { createHelperVars, getThemeRefs } from '../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\nconst compVars = DividerClass.cssVarList;\n\nconst [helperTheme, helperRefs, helperVars] = createHelperVars(\n {\n thickness: '2px',\n spacing: '10px',\n },\n componentName\n);\n\nconst divider = {\n ...helperTheme,\n\n [compVars.hostDirection]: globalRefs.direction,\n [compVars.alignItems]: 'center',\n [compVars.flexDirection]: 'row',\n [compVars.alignSelf]: 'stretch',\n [compVars.hostWidth]: '100%',\n [compVars.stripeColor]: globalRefs.colors.surface.light,\n [compVars.stripeColorOpacity]: '0.5',\n [compVars.stripeHorizontalThickness]: helperRefs.thickness,\n [compVars.labelTextWidth]: 'fit-content',\n [compVars.labelTextMaxWidth]: 'calc(100% - 100px)',\n [compVars.labelTextHorizontalSpacing]: helperRefs.spacing,\n [compVars.textAlign]: 'center',\n\n _vertical: {\n [compVars.minHeight]: '200px',\n [compVars.flexDirection]: 'column',\n [compVars.hostWidth]: 'fit-content',\n [compVars.hostPadding]: `0 calc(${helperRefs.thickness} * 3)`,\n [compVars.stripeVerticalThickness]: helperRefs.thickness,\n [compVars.labelTextWidth]: 'fit-content',\n [compVars.labelTextMaxWidth]: '100%',\n [compVars.labelTextVerticalSpacing]: helperRefs.spacing,\n },\n};\n\nexport default divider;\n\nexport const vars = {\n ...compVars,\n ...helperVars,\n};\n","/* eslint-disable no-param-reassign */\nimport debounce from 'lodash.debounce';\nimport { createBaseInputClass } from '../../../baseClasses/createBaseInputClass';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport { sanitizeStr, focusElement, createInputMaskStyle, toggleMaskVisibility } from './helpers';\n\nexport const componentName = getComponentName('passcode-internal');\n\nconst observedAttributes = ['digits', 'loading'];\n\nconst forwardAttributes = ['disabled', 'bordered', 'size', 'invalid', 'readonly'];\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass PasscodeInternal extends BaseInputClass {\n static get observedAttributes() {\n return observedAttributes.concat(BaseInputClass.observedAttributes || []);\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n\t\t<div class=\"wrapper\"></div>\n\t\t<div class=\"loader-container\">\n <descope-loader-radial size=\"xs\" mode=\"primary\"></descope-loader-radial>\n </div>\n\t\t<style>\n\t\t\t.wrapper {\n\t\t\t\tdisplay: flex;\n\t\t\t\twidth: 100%;\n\t\t\t\tjustify-content: space-between;\n direction: ltr;\n position: relative;\n\t\t\t}\n\n descope-text-field {\n direction: ltr;\n }\n\n .loader-container {\n display: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\t\t</style>\n\t\t`;\n\n this.wrapperEle = this.querySelector('.wrapper');\n this.loaderContainer = this.querySelector('.loader-container');\n }\n\n renderInputs() {\n const inputs = [...Array(this.digits).keys()].map(\n (idx) => `\n\t\t<descope-text-field\n\t\t\tdata-id=${idx}\n\t\t\ttype=\"tel\"\n\t\t\tautocomplete=\"one-time-code\"\n\t\t\tinputMode=\"numeric\"\n\t\t></descope-text-field>\n\t`\n );\n\n this.wrapperEle.innerHTML = inputs.join('');\n\n this.inputs = Array.from(this.querySelectorAll('descope-text-field'));\n\n this.initInputs();\n }\n\n handleLoadingState(isLoading) {\n if (isLoading) {\n this.setAttribute('inert', 'true');\n } else {\n this.removeAttribute('inert');\n }\n }\n\n get digits() {\n return Number.parseInt(this.getAttribute('digits'), 10) || 6;\n }\n\n get value() {\n return this.inputs?.map(({ value }) => value).join('') || '';\n }\n\n set value(val) {\n if (val === this.value) return;\n\n this.parseInputValue(this.inputs[0], sanitizeStr(val));\n }\n\n getValidity() {\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n if (this.pattern && !new RegExp(this.pattern).test(this.value)) {\n return { patternMismatch: true };\n }\n\n return {};\n }\n\n init() {\n // we are adding listeners before calling to super because it's stopping the events\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) this.inputs[0].focus();\n });\n\n super.init?.();\n\n this.renderInputs();\n }\n\n // eslint-disable-next-line class-methods-use-this\n getInputIdx(inputEle) {\n return Number.parseInt(inputEle.getAttribute('data-id'), 10);\n }\n\n getNextInput(currInput) {\n const currentIdx = this.getInputIdx(currInput);\n const newIdx = Math.min(currentIdx + 1, this.inputs.length - 1);\n return this.inputs[newIdx];\n }\n\n getPrevInput(currInput) {\n const currentIdx = this.getInputIdx(currInput);\n const newIdx = Math.max(currentIdx - 1, 0);\n return this.inputs[newIdx];\n }\n\n fillDigits(charArr, currentInput) {\n for (let i = 0; i < charArr.length; i += 1) {\n currentInput.value = charArr[i] ?? '';\n\n const nextInput = this.getNextInput(currentInput);\n\n if (nextInput === currentInput) break;\n currentInput = nextInput;\n }\n\n focusElement(currentInput);\n }\n\n parseInputValue(input, value = '') {\n const charArr = value.split('');\n\n if (!charArr.length) {\n // if we got an invalid value we want to clear the input\n input.value = '';\n } else this.fillDigits(charArr, input);\n }\n\n initInputs() {\n this.inputs.forEach((input) => {\n input.shadowRoot.appendChild(createInputMaskStyle());\n\n const handleParseInput = (val) => {\n this.parseInputValue(input, val);\n toggleMaskVisibility(input);\n };\n\n const debouncedHandleParseInput = debounce(handleParseInput, 20, { trailing: true });\n\n // sanitize the input\n input.addEventListener('input', (e) => {\n input.value = sanitizeStr(input.value);\n\n if (input.value) {\n toggleMaskVisibility(input, input.value[0]);\n }\n\n setTimeout(() => {\n if (e?.inputType === 'deleteContentBackward') {\n focusElement(this.getPrevInput(input));\n }\n });\n debouncedHandleParseInput(input.value);\n });\n\n // we want backspace to focus on the previous digit\n input.onkeydown = ({ key }) => {\n // when user deletes a digit, we want to focus the previous digit\n if (key === 'Backspace') {\n // if value is empty then the input element does not fire `input` event\n // if this is the case, we focus the element here.\n // otherwise, the focusElement occurs as part of the `input` event listener\n if (!input.value) {\n setTimeout(() => focusElement(this.getPrevInput(input)), 0);\n } else {\n input.setSelectionRange(1, 1);\n }\n } else if (key.length === 1) {\n // we want only characters and not command keys\n input.value = ''; // we are clearing the previous value so we can override it with the new value\n }\n };\n\n forwardAttrs(this, input, { includeAttrs: forwardAttributes });\n });\n\n this.handleFocusEventsDispatching(this.inputs);\n this.handleInputEventDispatching();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n // sync attributes to inputs\n if (oldValue !== newValue) {\n if (observedAttributes.includes(attrName)) {\n if (attrName === 'digits') {\n this.renderInputs();\n }\n if (attrName === 'loading') {\n this.handleLoadingState(newValue === 'true');\n }\n }\n }\n }\n\n get pattern() {\n return `^$|^\\\\d{${this.digits},}$`;\n }\n}\n\nexport default PasscodeInternal;\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('loader-radial');\n\nclass RawLoaderRadial extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t\t\t@keyframes spin {\n\t\t\t\t0% { transform: rotate(0deg); }\n\t\t\t\t100% { transform: rotate(360deg); }\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tposition: relative;\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\t\t\t:host > div {\n\t\t\t\tanimation-name: spin;\n\t\t\t}\n\t\t</style>\n\t\t<div></div>\n\t`;\n }\n}\n\nexport const LoaderRadialClass = compose(\n createStyleMixin({\n mappings: {\n hostDisplay: { property: 'display' },\n spinnerSize: [{ property: 'width' }, { property: 'height' }],\n spinnerBorderWidth: { property: 'border-width' },\n spinnerBorderStyle: { property: 'border-style' },\n spinnerBorderRadius: { property: 'border-radius' },\n spinnerQuadrant1Color: { property: 'border-top-color' },\n spinnerQuadrant2Color: { property: 'border-bottom-color' },\n spinnerQuadrant3Color: { property: 'border-right-color' },\n spinnerQuadrant4Color: { property: 'border-left-color' },\n animationDuration: {},\n animationTimingFunction: {},\n animationIterationCount: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawLoaderRadial);\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport { componentName as descopeInternalComponentName } from './descope-passcode-internal/PasscodeInternal';\nimport { TextFieldClass } from '../descope-text-field/TextFieldClass';\nimport { LoaderRadialClass } from '../descope-loader-radial/LoaderRadialClass';\nimport { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\nimport {\n resetInputCursor,\n resetInputLabelPosition,\n resetInputFieldDefaultWidth,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('passcode');\n\nconst observedAttributes = ['digits'];\n\nconst customMixin = (superclass) =>\n class PasscodeMixinClass extends superclass {\n static get observedAttributes() {\n return observedAttributes.concat(superclass.observedAttributes || []);\n }\n\n get digits() {\n return Number.parseInt(this.getAttribute('digits'), 10) || 6;\n }\n\n init() {\n super.init?.();\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n bordered=\"true\"\n name=\"code\"\n tabindex=\"-1\"\n slot=\"input\"\n ><slot></slot></${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, { includeAttrs: ['digits', 'size', 'loading'] });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'digits') {\n this.style.setProperty('--passcode-digits-count', newValue);\n }\n }\n };\n\nconst {\n host,\n digitField,\n label,\n requiredIndicator,\n internalWrapper,\n focusedDigitField,\n errorMessage,\n} = {\n host: { selector: () => ':host' },\n focusedDigitField: { selector: () => `${TextFieldClass.componentName}[focused=\"true\"]` },\n digitField: { selector: () => TextFieldClass.componentName },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n internalWrapper: { selector: 'descope-passcode-internal .wrapper' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nconst textVars = TextFieldClass.cssVarList;\nconst loaderVars = LoaderRadialClass.cssVarList;\n\nexport const PasscodeClass = compose(\n createStyleMixin({\n mappings: {\n fontSize: [{ ...digitField, property: textVars.fontSize }, host],\n hostWidth: { property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n fontFamily: [host, { ...label }],\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n digitValueTextColor: {\n selector: TextFieldClass.componentName,\n property: textVars.inputValueTextColor,\n },\n digitSize: [\n { ...digitField, property: 'height' },\n { ...digitField, property: 'width' },\n ],\n digitPadding: { ...digitField, property: textVars.inputHorizontalPadding },\n digitTextAlign: { ...digitField, property: textVars.inputTextAlign },\n digitCaretTextColor: { ...digitField, property: textVars.inputCaretTextColor },\n digitSpacing: { ...internalWrapper, property: 'gap' },\n digitOutlineColor: { ...digitField, property: textVars.inputOutlineColor },\n digitOutlineWidth: { ...digitField, property: textVars.inputOutlineWidth },\n\n focusedDigitFieldOutlineColor: { ...focusedDigitField, property: textVars.inputOutlineColor },\n overlayOpacity: { ...internalWrapper, property: 'opacity' },\n spinnerSize: { selector: LoaderRadialClass.componentName, property: loaderVars.spinnerSize },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tmin-width: calc(var(--passcode-digits-count) * 2em);\n\t\t\t}\n\t\t\t${resetInputFieldDefaultWidth()}\n\t\t\t:host::after {\n\t\t\t\tbackground-color: transparent;\n\t\t\t}\n\t\t\t:host::part(input-field)::after {\n\t\t\t\tbackground-color: transparent;\n\t\t\t}\n\n :host([loading=\"true\"]) descope-passcode-internal .loader-container {\n display: block;\n }\n\n\t\t\tdescope-passcode-internal {\n\t\t\t\t-webkit-mask-image: none;\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tmin-height: initial;\n\t\t\t}\n\n\t\t\tdescope-passcode-internal .wrapper {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tmin-height: initial;\n\t\t\t\theight: 100%;\n\t\t\t\tjustify-content: space-between;\n\t\t\t}\n\n\t\t\tdescope-passcode-internal descope-text-field {\n\t\t\t\tmin-width: 2em;\n\t\t\t\tmax-width: var(${textVars.inputHeight});\n\t\t\t}\n\n\t\t\tvaadin-text-field::part(input-field) {\n\t\t\t\tbackground-color: transparent;\n\t\t\t\tpadding: 0;\n\t\t\t\toverflow: hidden;\n\t\t\t\t-webkit-mask-image: none;\n\t\t\t}\n\n /* safari */\n\t\t\tvaadin-text-field::part(input-field)::after {\n opacity: 0;\n }\n\n\t\t\tvaadin-text-field {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\tvaadin-text-field::before {\n\t\t\t\theight: 0;\n\t\t\t}\n\n\t\t\tvaadin-text-field[readonly] > input:placeholder-shown {\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\tvaadin-text-field[readonly]::part(input-field)::after {\n\t\t\t\tborder: 0 solid;\n\t\t\t}\n\n\t\t\tvaadin-text-field::part(input-field) {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n ${resetInputLabelPosition('vaadin-text-field')}\n\t\t\t${resetInputCursor('vaadin-text-field')}\n \t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nexport default PasscodeClass;\n","import { PasscodeClass } from '../../components/descope-passcode/PasscodeClass';\nimport { refs } from './inputWrapper';\n\nconst vars = PasscodeClass.cssVarList;\n\nconst passcode = {\n [vars.hostDirection]: refs.direction,\n [vars.fontFamily]: refs.fontFamily,\n [vars.fontSize]: refs.fontSize,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.digitValueTextColor]: refs.valueTextColor,\n [vars.digitPadding]: '0',\n [vars.digitTextAlign]: 'center',\n [vars.digitSpacing]: '4px',\n [vars.hostWidth]: refs.width,\n [vars.digitOutlineColor]: 'transparent',\n [vars.digitOutlineWidth]: refs.outlineWidth,\n [vars.focusedDigitFieldOutlineColor]: refs.outlineColor,\n [vars.digitSize]: refs.inputHeight,\n\n size: {\n xs: { [vars.spinnerSize]: '15px' },\n sm: { [vars.spinnerSize]: '20px' },\n md: { [vars.spinnerSize]: '20px' },\n lg: { [vars.spinnerSize]: '20px' },\n },\n\n _hideCursor: {\n [vars.digitCaretTextColor]: 'transparent',\n },\n\n _loading: {\n [vars.overlayOpacity]: refs.overlayOpacity,\n },\n};\n\nexport default passcode;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('loader-linear');\n\nclass RawLoaderLinear extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n static get componentName() {\n return componentName;\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t\t\t@keyframes tilt {\n\t\t\t\t0% { transform: translateX(0); }\n\t\t\t\t50% { transform: translateX(400%); }\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tposition: relative;\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\t\t\tdiv::after {\n\t\t\t\tcontent: '';\n\t\t\t\tanimation-name: tilt;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 0;\n\t\t\t}\n\t\t\t:host > div {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t</style>\n\t\t<div></div>\n\t`;\n }\n}\n\nconst selectors = {\n after: { selector: '::after' },\n host: { selector: () => ':host' },\n};\n\nconst { after, host } = selectors;\n\nexport const LoaderLinearClass = compose(\n createStyleMixin({\n mappings: {\n hostDisplay: {},\n hostWidth: { ...host, property: 'width' },\n barHeight: [{ property: 'height' }, { ...after, property: 'height' }],\n barBorderRadius: [{ property: 'border-radius' }, { ...after, property: 'border-radius' }],\n verticalPadding: [\n { ...host, property: 'padding-top' },\n { ...host, property: 'padding-bottom' },\n ],\n barBackgroundColor: { property: 'background-color' },\n barColor: { ...after, property: 'background-color' },\n barWidth: { ...after, property: 'width' },\n animationDuration: [{}, after],\n animationTimingFunction: [{}, after],\n animationIterationCount: [{}, after],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawLoaderLinear);\n","import globals from '../../globals';\nimport { getThemeRefs } from '../../../helpers/themeHelpers';\nimport { LoaderLinearClass } from '../../../components/descope-loader-linear/LoaderLinearClass';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = LoaderLinearClass.cssVarList;\n\nconst loaderLinear = {\n [vars.hostDisplay]: 'inline-block',\n [vars.hostWidth]: '100%',\n\n [vars.barColor]: globalRefs.colors.surface.contrast,\n [vars.barWidth]: '20%',\n\n [vars.barBackgroundColor]: globalRefs.colors.surface.light,\n [vars.barBorderRadius]: '4px',\n\n [vars.animationDuration]: '2s',\n [vars.animationTimingFunction]: 'linear',\n [vars.animationIterationCount]: 'infinite',\n [vars.verticalPadding]: '0.25em',\n\n size: {\n xs: { [vars.barHeight]: '2px' },\n sm: { [vars.barHeight]: '4px' },\n md: { [vars.barHeight]: '6px' },\n lg: { [vars.barHeight]: '8px' },\n },\n\n mode: {\n primary: {\n [vars.barColor]: globalRefs.colors.primary.main,\n },\n secondary: {\n [vars.barColor]: globalRefs.colors.secondary.main,\n },\n },\n\n _hidden: {\n [vars.hostDisplay]: 'none',\n },\n};\n\nexport default loaderLinear;\nexport { vars };\n","import globals from '../../globals';\nimport {\n LoaderRadialClass,\n componentName,\n} from '../../../components/descope-loader-radial/LoaderRadialClass';\nimport { createHelperVars, getThemeRefs } from '../../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\nconst compVars = LoaderRadialClass.cssVarList;\n\nconst [helperTheme, helperRefs, helperVars] = createHelperVars(\n {\n spinnerColor: globalRefs.colors.surface.contrast,\n mode: {\n primary: {\n spinnerColor: globalRefs.colors.primary.main,\n },\n secondary: {\n spinnerColor: globalRefs.colors.secondary.main,\n },\n },\n },\n componentName\n);\n\nconst loaderRadial = {\n ...helperTheme,\n\n [compVars.animationDuration]: '2s',\n [compVars.animationTimingFunction]: 'linear',\n [compVars.animationIterationCount]: 'infinite',\n [compVars.spinnerBorderStyle]: 'solid',\n [compVars.spinnerBorderWidth]: '0.2em',\n [compVars.spinnerBorderRadius]: '50%',\n [compVars.spinnerQuadrant1Color]: helperRefs.spinnerColor,\n [compVars.spinnerQuadrant2Color]: 'transparent',\n [compVars.spinnerQuadrant3Color]: helperRefs.spinnerColor,\n [compVars.spinnerQuadrant4Color]: 'transparent',\n\n size: {\n xs: { [compVars.spinnerSize]: '20px' },\n sm: { [compVars.spinnerSize]: '30px' },\n md: { [compVars.spinnerSize]: '40px' },\n lg: { [compVars.spinnerSize]: '60px' },\n xl: { [compVars.spinnerSize]: '80px' },\n },\n\n _hidden: {\n [compVars.hostDisplay]: 'none',\n },\n};\n\nexport default loaderRadial;\nexport const vars = {\n ...compVars,\n ...helperVars,\n};\n","import { compose } from '../../helpers';\nimport {\n getComponentName,\n observeAttributes,\n observeChildren,\n} from '../../helpers/componentHelpers';\nimport {\n resetInputLabelPosition,\n resetInputCursor,\n resetInputPlaceholder,\n resetInputReadonlyStyle,\n useHostExternalPadding,\n inputFloatingLabelStyle,\n} from '../../helpers/themeHelpers/resetHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n portalMixin,\n proxyInputMixin,\n} from '../../mixins';\n\nexport const componentName = getComponentName('combo-box');\n\nconst ComboBoxMixin = (superclass) =>\n class ComboBoxMixinClass extends superclass {\n static get observedAttributes() {\n return ['label-type'];\n }\n\n // eslint-disable-next-line class-methods-use-this\n #renderItem = ({ displayName, value, label }) => {\n return `<span data-name=\"${label}\" data-id=\"${value}\">${displayName || label}</span>`;\n };\n\n #data;\n\n get defaultValue() {\n return this.getAttribute('default-value');\n }\n\n get renderItem() {\n return this.#renderItem;\n }\n\n set renderItem(renderFn) {\n this.#renderItem = renderFn;\n this.renderItems();\n }\n\n get data() {\n if (this.#data) return this.#data;\n\n const dataAttr = this.getAttribute('data');\n\n if (dataAttr) {\n try {\n const data = JSON.parse(dataAttr);\n if (this.isValidDataType(data)) {\n return data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"data\" -', e.message);\n }\n }\n\n return [];\n }\n\n set data(data) {\n if (this.isValidDataType(data)) {\n this.#data = data;\n this.renderItems();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data must be an array, received:', data);\n }\n\n return isValid;\n }\n\n getItemsTemplate() {\n return this.data?.reduce?.((acc, item) => acc + (this.renderItem?.(item || {}) || ''), '');\n }\n\n renderItems() {\n const template = this.getItemsTemplate();\n if (template) this.innerHTML = template;\n }\n\n handleSelectedItem() {\n const currentSelected = this.baseElement.selectedItem?.['data-id'];\n\n this.baseElement.selectedItem = undefined;\n\n // if previously selected item ID exists in current children, set it as selected\n if (currentSelected) {\n this.value = currentSelected;\n }\n\n // otherwise, if default value is specified, set default value as selected item\n if (!this.value) {\n this.setDefaultValue();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n customValueTransformFn(val) {\n return val;\n }\n\n // We want to override Vaadin's Combo Box value setter. This is needed since Vaadin couples between the\n // field that it searches the value, and the finaly display value of the input.\n // We provide a custom transform function to override that behavior.\n setComboBoxDescriptor() {\n const valueDescriptor = Object.getOwnPropertyDescriptor(\n this.inputElement.constructor.prototype,\n 'value'\n );\n\n const comboBox = this;\n\n Object.defineProperties(this.inputElement, {\n value: {\n ...valueDescriptor,\n set(val) {\n if (!comboBox.baseElement.items?.length) {\n return;\n }\n\n const transformedValue = comboBox.customValueTransformFn(val) || '';\n\n if (transformedValue === this.value) {\n return;\n }\n\n valueDescriptor.set.call(this, transformedValue);\n },\n },\n });\n }\n\n // vaadin api is to set props on their combo box node,\n // in order to avoid it, we are passing the children of this component\n // to the items & renderer props, so it will be used as the combo box items\n #onChildrenChange() {\n const baseElement = this.shadowRoot.querySelector(this.baseSelector);\n const items = Array.from(this.children);\n\n // we want the data-name attribute to be accessible as an object attribute\n if (items.length) {\n items.forEach((node) => {\n Object.defineProperty(node, 'data-name', {\n value: node.getAttribute('data-name'),\n configurable: true,\n writable: true,\n });\n Object.defineProperty(node, 'data-id', {\n value: node.getAttribute('data-id'),\n configurable: true,\n writable: true,\n });\n });\n\n baseElement.items = items;\n\n setTimeout(() => {\n // set timeout to ensure this runs after customValueTransformFn had the chance to be overriden\n this.handleSelectedItem();\n }, 0);\n }\n\n // use vaadin combobox custom renderer to render options as HTML\n // and not via default renderer, which renders only the data-name's value\n // in its own HTML template\n baseElement.renderer = (root, combo, model) => {\n // eslint-disable-next-line no-param-reassign\n root.innerHTML = model.item.outerHTML;\n };\n }\n\n // the default vaadin behavior is to attach the overlay to the body when opened\n // we do not want that because it's difficult to style the overlay in this way\n // so we override it to open inside the shadow DOM\n #overrideOverlaySettings() {\n const overlay = this.baseElement.shadowRoot.querySelector('vaadin-combo-box-overlay');\n overlay._attachOverlay = () => {\n overlay.bringToFront();\n };\n overlay._detachOverlay = () => {};\n overlay._enterModalState = () => {};\n }\n\n init() {\n super.init?.();\n\n // eslint-disable-next-line func-names\n this.getValidity = function () {\n if (!this.value && this.isRequired) {\n return {\n valueMissing: true,\n };\n }\n return {};\n };\n\n this.setComboBoxDescriptor();\n\n this.#overrideOverlaySettings();\n\n this.renderItems();\n\n observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });\n\n observeChildren(this, this.#onChildrenChange.bind(this));\n\n this.setDefaultValue();\n\n this.baseElement.addEventListener('selected-item-changed', () => {\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n });\n }\n\n onLabelClick() {\n if (this.isReadOnly || this.isDisabled) {\n return;\n }\n this.focus();\n this.setAttribute('opened', 'true');\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'label-type') {\n if (newValue === 'floating') {\n this.addEventListener('click', this.onLabelClick);\n } else {\n this.removeEventListener('click', this.onLabelClick);\n }\n }\n }\n }\n\n setDefaultValue() {\n this.value = this.defaultValue;\n }\n\n set value(val) {\n if (val) {\n const child = this.baseElement.items?.find((item) => item['data-id'] === val);\n\n if (child) {\n this.baseElement.selectedItem = child;\n }\n } else {\n this.baseElement.selectedItem = undefined;\n }\n }\n\n get value() {\n return this.baseElement.selectedItem?.['data-id'] || '';\n }\n };\n\nconst {\n host,\n inputField,\n inputElement,\n placeholder,\n toggle,\n clearButton,\n label,\n requiredIndicator,\n helperText,\n errorMessage,\n} = {\n host: { selector: () => ':host' },\n inputField: { selector: '::part(input-field)' },\n inputElement: { selector: 'input' },\n placeholder: { selector: '> input:placeholder-shown' },\n toggle: { selector: '::part(toggle-button)' },\n clearButton: { selector: '::part(clear-button)' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const ComboBoxClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n fontFamily: [label, placeholder, inputField, helperText, errorMessage],\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n inputHeight: { ...inputField, property: 'height' },\n inputBackgroundColor: { ...inputField, property: 'background-color' },\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n inputValueTextColor: { ...inputField, property: 'color' },\n inputPlaceholderTextColor: { ...placeholder, property: 'color' },\n inputDropdownButtonCursor: [\n { ...toggle, property: 'cursor' },\n { ...clearButton, property: 'cursor' },\n ],\n inputDropdownButtonColor: [\n { ...toggle, property: 'color' },\n { ...clearButton, property: 'color' },\n ],\n inputDropdownButtonSize: [\n { ...toggle, property: 'font-size' },\n { ...clearButton, property: 'font-size' },\n ],\n inputDropdownButtonOffset: [\n { ...toggle, property: 'margin-right' },\n { ...toggle, property: 'margin-left' },\n ],\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n inputHorizontalPadding: [\n { ...inputElement, property: 'padding-left' },\n { ...inputElement, property: 'padding-right' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: { ...placeholder, property: 'opacity' },\n inputVerticalAlignment: { ...inputField, property: 'align-items' },\n valueInputHeight: { ...inputElement, property: 'height' },\n valueInputMarginBottom: { ...inputElement, property: 'margin-bottom' },\n\n // we need to use the variables from the portal mixin\n // so we need to use an arrow function on the selector\n // for that to work, because ComboBox is not available\n // at this time.\n overlayBackground: { property: () => ComboBoxClass.cssVarList.overlay.backgroundColor },\n overlayTextColor: {\n property: () => ComboBoxClass.cssVarList.overlay.textColor,\n },\n overlayBorder: { property: () => ComboBoxClass.cssVarList.overlay.border },\n overlayFontSize: { property: () => ComboBoxClass.cssVarList.overlay.fontSize },\n overlayFontFamily: { property: () => ComboBoxClass.cssVarList.overlay.fontFamily },\n overlayCursor: { property: () => ComboBoxClass.cssVarList.overlay.cursor },\n overlayItemBoxShadow: { property: () => ComboBoxClass.cssVarList.overlay.itemBoxShadow },\n overlayItemPaddingInlineStart: {\n property: () => ComboBoxClass.cssVarList.overlay.itemPaddingInlineStart,\n },\n overlayItemPaddingInlineEnd: {\n property: () => ComboBoxClass.cssVarList.overlay.itemPaddingInlineEnd,\n },\n },\n }),\n draggableMixin,\n portalMixin({\n name: 'overlay',\n selector: '',\n mappings: {\n backgroundColor: { selector: 'vaadin-combo-box-scroller' },\n minHeight: { selector: 'vaadin-combo-box-overlay' },\n margin: { selector: 'vaadin-combo-box-overlay' },\n cursor: { selector: 'vaadin-combo-box-item' },\n fontFamily: { selector: 'vaadin-combo-box-item' },\n textColor: { selector: 'vaadin-combo-box-item', property: 'color' },\n fontSize: { selector: 'vaadin-combo-box-item' },\n itemBoxShadow: { selector: 'vaadin-combo-box-item', property: 'box-shadow' },\n itemPaddingInlineStart: {\n selector: 'vaadin-combo-box-item',\n property: 'padding-inline-start',\n },\n itemPaddingInlineEnd: { selector: 'vaadin-combo-box-item', property: 'padding-inline-end' },\n },\n forward: {\n include: false,\n attributes: ['size'],\n },\n }),\n proxyInputMixin({ proxyProps: ['selectionStart'], inputEvent: 'selected-item-changed' }),\n componentNameValidationMixin,\n ComboBoxMixin\n)(\n createProxy({\n slots: ['', 'prefix'],\n wrappedEleName: 'vaadin-combo-box',\n style: () => `\n\t\t:host {\n\t\t\tdisplay: inline-flex;\n\t\t\tbox-sizing: border-box;\n\t\t\t-webkit-mask-image: none;\n\t\t}\n\t\t${useHostExternalPadding(ComboBoxClass.cssVarList)}\n\t\t${resetInputReadonlyStyle('vaadin-combo-box')}\n\t\t${resetInputPlaceholder('vaadin-combo-box')}\n\t\t${resetInputCursor('vaadin-combo-box')}\n\n\t\tvaadin-combo-box {\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t\tvaadin-combo-box::before {\n\t\t\theight: initial;\n\t\t}\n\t\tvaadin-combo-box [slot=\"input\"] {\n\t\t\t-webkit-mask-image: none;\n\t\t\tmin-height: 0;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\tvaadin-combo-box::part(input-field) {\n\t\t\tpadding: 0;\n\t\t\tbox-shadow: none;\n\t\t}\n\n vaadin-combo-box::part(toggle-button),\n vaadin-combo-box::part(clear-button) {\n align-self: center;\n }\n\n vaadin-combo-box[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-combo-box[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n \n ${resetInputLabelPosition('vaadin-combo-box')}\n ${inputFloatingLabelStyle()}\n\t\t`,\n // Note: we exclude `size` to avoid overriding Vaadin's ComboBox property\n // with the same name. Including it will cause Vaadin to calculate NaN size,\n // and reset items to an empty array, and opening the list box with no items\n // to display.\n excludeAttrsSync: ['tabindex', 'size', 'data'],\n componentName,\n includeForwardProps: ['items', 'renderer', 'selectedItem'],\n })\n);\n","import globals from '../globals';\nimport { ComboBoxClass } from '../../components/descope-combo-box/ComboBoxClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = ComboBoxClass.cssVarList;\n\nexport const comboBox = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.inputHeight]: refs.inputHeight,\n [vars.inputDropdownButtonColor]: globalRefs.colors.surface.dark,\n [vars.inputDropdownButtonCursor]: 'pointer',\n [vars.inputDropdownButtonSize]: refs.toggleButtonSize,\n [vars.inputDropdownButtonOffset]: globalRefs.spacing.xs,\n [vars.overlayItemPaddingInlineStart]: globalRefs.spacing.xs,\n [vars.overlayItemPaddingInlineEnd]: globalRefs.spacing.lg,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n\n _readonly: {\n [vars.inputDropdownButtonCursor]: 'default',\n },\n\n // Overlay theme exposed via the component:\n [vars.overlayFontSize]: refs.fontSize,\n [vars.overlayFontFamily]: refs.fontFamily,\n [vars.overlayCursor]: 'pointer',\n [vars.overlayItemBoxShadow]: 'none',\n [vars.overlayBackground]: refs.backgroundColor,\n [vars.overlayTextColor]: refs.valueTextColor,\n\n // Overlay direct theme:\n [vars.overlay.minHeight]: '400px',\n [vars.overlay.margin]: '0',\n};\n\nexport default comboBox;\nexport { vars };\n","import { createStyleMixin, draggableMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\n\nconst observedAttributes = ['src', 'alt'];\n\nexport const componentName = getComponentName('image');\n\nconst BaseClass = createBaseClass({ componentName, baseSelector: ':host > img' });\nclass RawImage extends BaseClass {\n static get observedAttributes() {\n return observedAttributes.concat(BaseClass.observedAttributes || []);\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t\t\t:host > img {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\t\t</style>\n\t\t<img/>\n\t`;\n }\n\n connectedCallback() {\n super.connectedCallback?.();\n\n forwardAttrs(this, this.baseElement, { includeAttrs: observedAttributes });\n }\n}\n\nexport const ImageClass = compose(\n createStyleMixin({\n mappings: {\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin\n)(RawImage);\n","import { ImageClass } from '../../components/descope-image/ImageClass';\n\nconst vars = ImageClass.cssVarList;\n\nconst image = {};\n\nexport default image;\nexport { vars };\n","export default [\n // United States should be the first option\n {\n name: 'United States',\n dialCode: '+1',\n code: 'US',\n },\n ...[\n {\n name: 'Afghanistan',\n dialCode: '+93',\n code: 'AF',\n },\n {\n name: 'Aland Islands',\n dialCode: '+358',\n code: 'AX',\n },\n {\n name: 'Albania',\n dialCode: '+355',\n code: 'AL',\n },\n {\n name: 'Algeria',\n dialCode: '+213',\n code: 'DZ',\n },\n {\n name: 'AmericanSamoa',\n dialCode: '+1684',\n code: 'AS',\n },\n {\n name: 'Andorra',\n dialCode: '+376',\n code: 'AD',\n },\n {\n name: 'Angola',\n dialCode: '+244',\n code: 'AO',\n },\n {\n name: 'Anguilla',\n dialCode: '+1264',\n code: 'AI',\n },\n {\n name: 'Antarctica',\n dialCode: '+672',\n code: 'AQ',\n },\n {\n name: 'Antigua and Barbuda',\n dialCode: '+1268',\n code: 'AG',\n },\n {\n name: 'Argentina',\n dialCode: '+54',\n code: 'AR',\n },\n {\n name: 'Armenia',\n dialCode: '+374',\n code: 'AM',\n },\n {\n name: 'Aruba',\n dialCode: '+297',\n code: 'AW',\n },\n {\n name: 'Australia',\n dialCode: '+61',\n code: 'AU',\n },\n {\n name: 'Austria',\n dialCode: '+43',\n code: 'AT',\n },\n {\n name: 'Azerbaijan',\n dialCode: '+994',\n code: 'AZ',\n },\n {\n name: 'Bahamas',\n dialCode: '+1242',\n code: 'BS',\n },\n {\n name: 'Bahrain',\n dialCode: '+973',\n code: 'BH',\n },\n {\n name: 'Bangladesh',\n dialCode: '+880',\n code: 'BD',\n },\n {\n name: 'Barbados',\n dialCode: '+1246',\n code: 'BB',\n },\n {\n name: 'Belarus',\n dialCode: '+375',\n code: 'BY',\n },\n {\n name: 'Belgium',\n dialCode: '+32',\n code: 'BE',\n },\n {\n name: 'Belize',\n dialCode: '+501',\n code: 'BZ',\n },\n {\n name: 'Benin',\n dialCode: '+229',\n code: 'BJ',\n },\n {\n name: 'Bermuda',\n dialCode: '+1441',\n code: 'BM',\n },\n {\n name: 'Bhutan',\n dialCode: '+975',\n code: 'BT',\n },\n {\n name: 'Bolivia, Plurinational State of',\n dialCode: '+591',\n code: 'BO',\n },\n {\n name: 'Bosnia and Herzegovina',\n dialCode: '+387',\n code: 'BA',\n },\n {\n name: 'Botswana',\n dialCode: '+267',\n code: 'BW',\n },\n {\n name: 'Brazil',\n dialCode: '+55',\n code: 'BR',\n },\n {\n name: 'British Indian Ocean Territory',\n dialCode: '+246',\n code: 'IO',\n },\n {\n name: 'Brunei Darussalam',\n dialCode: '+673',\n code: 'BN',\n },\n {\n name: 'Bulgaria',\n dialCode: '+359',\n code: 'BG',\n },\n {\n name: 'Burkina Faso',\n dialCode: '+226',\n code: 'BF',\n },\n {\n name: 'Burundi',\n dialCode: '+257',\n code: 'BI',\n },\n {\n name: 'Cambodia',\n dialCode: '+855',\n code: 'KH',\n },\n {\n name: 'Cameroon',\n dialCode: '+237',\n code: 'CM',\n },\n {\n name: 'Canada',\n dialCode: '+1',\n code: 'CA',\n },\n {\n name: 'Cape Verde',\n dialCode: '+238',\n code: 'CV',\n },\n {\n name: 'Cayman Islands',\n dialCode: '+345',\n code: 'KY',\n },\n {\n name: 'Central African Republic',\n dialCode: '+236',\n code: 'CF',\n },\n {\n name: 'Chad',\n dialCode: '+235',\n code: 'TD',\n },\n {\n name: 'Chile',\n dialCode: '+56',\n code: 'CL',\n },\n {\n name: 'China',\n dialCode: '+86',\n code: 'CN',\n },\n {\n name: 'Christmas Island',\n dialCode: '+61',\n code: 'CX',\n },\n {\n name: 'Cocos (Keeling) Islands',\n dialCode: '+61',\n code: 'CC',\n },\n {\n name: 'Colombia',\n dialCode: '+57',\n code: 'CO',\n },\n {\n name: 'Comoros',\n dialCode: '+269',\n code: 'KM',\n },\n {\n name: 'Congo',\n dialCode: '+242',\n code: 'CG',\n },\n {\n name: 'Congo, The Democratic Republic of the Congo',\n dialCode: '+243',\n code: 'CD',\n },\n {\n name: 'Cook Islands',\n dialCode: '+682',\n code: 'CK',\n },\n {\n name: 'Costa Rica',\n dialCode: '+506',\n code: 'CR',\n },\n {\n name: \"Cote d'Ivoire\",\n dialCode: '+225',\n code: 'CI',\n },\n {\n name: 'Croatia',\n dialCode: '+385',\n code: 'HR',\n },\n {\n name: 'Cuba',\n dialCode: '+53',\n code: 'CU',\n },\n {\n name: 'Cyprus',\n dialCode: '+357',\n code: 'CY',\n },\n {\n name: 'Czech Republic',\n dialCode: '+420',\n code: 'CZ',\n },\n {\n name: 'Denmark',\n dialCode: '+45',\n code: 'DK',\n },\n {\n name: 'Djibouti',\n dialCode: '+253',\n code: 'DJ',\n },\n {\n name: 'Dominica',\n dialCode: '+1767',\n code: 'DM',\n },\n {\n name: 'Dominican Republic',\n dialCode: '+1849',\n code: 'DO',\n },\n {\n name: 'Ecuador',\n dialCode: '+593',\n code: 'EC',\n },\n {\n name: 'Egypt',\n dialCode: '+20',\n code: 'EG',\n },\n {\n name: 'El Salvador',\n dialCode: '+503',\n code: 'SV',\n },\n {\n name: 'Equatorial Guinea',\n dialCode: '+240',\n code: 'GQ',\n },\n {\n name: 'Eritrea',\n dialCode: '+291',\n code: 'ER',\n },\n {\n name: 'Estonia',\n dialCode: '+372',\n code: 'EE',\n },\n {\n name: 'Ethiopia',\n dialCode: '+251',\n code: 'ET',\n },\n {\n name: 'Falkland Islands (Malvinas)',\n dialCode: '+500',\n code: 'FK',\n },\n {\n name: 'Faroe Islands',\n dialCode: '+298',\n code: 'FO',\n },\n {\n name: 'Fiji',\n dialCode: '+679',\n code: 'FJ',\n },\n {\n name: 'Finland',\n dialCode: '+358',\n code: 'FI',\n },\n {\n name: 'France',\n dialCode: '+33',\n code: 'FR',\n },\n {\n name: 'French Guiana',\n dialCode: '+594',\n code: 'GF',\n },\n {\n name: 'French Polynesia',\n dialCode: '+689',\n code: 'PF',\n },\n {\n name: 'Gabon',\n dialCode: '+241',\n code: 'GA',\n },\n {\n name: 'Gambia',\n dialCode: '+220',\n code: 'GM',\n },\n {\n name: 'Georgia',\n dialCode: '+995',\n code: 'GE',\n },\n {\n name: 'Germany',\n dialCode: '+49',\n code: 'DE',\n },\n {\n name: 'Ghana',\n dialCode: '+233',\n code: 'GH',\n },\n {\n name: 'Gibraltar',\n dialCode: '+350',\n code: 'GI',\n },\n {\n name: 'Greece',\n dialCode: '+30',\n code: 'GR',\n },\n {\n name: 'Greenland',\n dialCode: '+299',\n code: 'GL',\n },\n {\n name: 'Grenada',\n dialCode: '+1473',\n code: 'GD',\n },\n {\n name: 'Guadeloupe',\n dialCode: '+590',\n code: 'GP',\n },\n {\n name: 'Guam',\n dialCode: '+1671',\n code: 'GU',\n },\n {\n name: 'Guatemala',\n dialCode: '+502',\n code: 'GT',\n },\n {\n name: 'Guernsey',\n dialCode: '+44',\n code: 'GG',\n },\n {\n name: 'Guinea',\n dialCode: '+224',\n code: 'GN',\n },\n {\n name: 'Guinea-Bissau',\n dialCode: '+245',\n code: 'GW',\n },\n {\n name: 'Guyana',\n dialCode: '+595',\n code: 'GY',\n },\n {\n name: 'Haiti',\n dialCode: '+509',\n code: 'HT',\n },\n {\n name: 'Holy See (Vatican City State)',\n dialCode: '+379',\n code: 'VA',\n },\n {\n name: 'Honduras',\n dialCode: '+504',\n code: 'HN',\n },\n {\n name: 'Hong Kong',\n dialCode: '+852',\n code: 'HK',\n },\n {\n name: 'Hungary',\n dialCode: '+36',\n code: 'HU',\n },\n {\n name: 'Iceland',\n dialCode: '+354',\n code: 'IS',\n },\n {\n name: 'India',\n dialCode: '+91',\n code: 'IN',\n },\n {\n name: 'Indonesia',\n dialCode: '+62',\n code: 'ID',\n },\n {\n name: 'Iran, Islamic Republic of Persian Gulf',\n dialCode: '+98',\n code: 'IR',\n },\n {\n name: 'Iraq',\n dialCode: '+964',\n code: 'IQ',\n },\n {\n name: 'Ireland',\n dialCode: '+353',\n code: 'IE',\n },\n {\n name: 'Isle of Man',\n dialCode: '+44',\n code: 'IM',\n },\n {\n name: 'Israel',\n dialCode: '+972',\n code: 'IL',\n },\n {\n name: 'Italy',\n dialCode: '+39',\n code: 'IT',\n },\n {\n name: 'Jamaica',\n dialCode: '+1876',\n code: 'JM',\n },\n {\n name: 'Japan',\n dialCode: '+81',\n code: 'JP',\n },\n {\n name: 'Jersey',\n dialCode: '+44',\n code: 'JE',\n },\n {\n name: 'Jordan',\n dialCode: '+962',\n code: 'JO',\n },\n {\n name: 'Kazakhstan',\n dialCode: '+77',\n code: 'KZ',\n },\n {\n name: 'Kenya',\n dialCode: '+254',\n code: 'KE',\n },\n {\n name: 'Kiribati',\n dialCode: '+686',\n code: 'KI',\n },\n {\n name: \"Korea, Democratic People's Republic of Korea\",\n dialCode: '+850',\n code: 'KP',\n },\n {\n name: 'Korea, Republic of South Korea',\n dialCode: '+82',\n code: 'KR',\n },\n {\n name: 'Kuwait',\n dialCode: '+965',\n code: 'KW',\n },\n {\n name: 'Kyrgyzstan',\n dialCode: '+996',\n code: 'KG',\n },\n {\n name: 'Laos',\n dialCode: '+856',\n code: 'LA',\n },\n {\n name: 'Latvia',\n dialCode: '+371',\n code: 'LV',\n },\n {\n name: 'Lebanon',\n dialCode: '+961',\n code: 'LB',\n },\n {\n name: 'Lesotho',\n dialCode: '+266',\n code: 'LS',\n },\n {\n name: 'Liberia',\n dialCode: '+231',\n code: 'LR',\n },\n {\n name: 'Libyan Arab Jamahiriya',\n dialCode: '+218',\n code: 'LY',\n },\n {\n name: 'Liechtenstein',\n dialCode: '+423',\n code: 'LI',\n },\n {\n name: 'Lithuania',\n dialCode: '+370',\n code: 'LT',\n },\n {\n name: 'Luxembourg',\n dialCode: '+352',\n code: 'LU',\n },\n {\n name: 'Macao',\n dialCode: '+853',\n code: 'MO',\n },\n {\n name: 'Macedonia',\n dialCode: '+389',\n code: 'MK',\n },\n {\n name: 'Madagascar',\n dialCode: '+261',\n code: 'MG',\n },\n {\n name: 'Malawi',\n dialCode: '+265',\n code: 'MW',\n },\n {\n name: 'Malaysia',\n dialCode: '+60',\n code: 'MY',\n },\n {\n name: 'Maldives',\n dialCode: '+960',\n code: 'MV',\n },\n {\n name: 'Mali',\n dialCode: '+223',\n code: 'ML',\n },\n {\n name: 'Malta',\n dialCode: '+356',\n code: 'MT',\n },\n {\n name: 'Marshall Islands',\n dialCode: '+692',\n code: 'MH',\n },\n {\n name: 'Martinique',\n dialCode: '+596',\n code: 'MQ',\n },\n {\n name: 'Mauritania',\n dialCode: '+222',\n code: 'MR',\n },\n {\n name: 'Mauritius',\n dialCode: '+230',\n code: 'MU',\n },\n {\n name: 'Mayotte',\n dialCode: '+262',\n code: 'YT',\n },\n {\n name: 'Mexico',\n dialCode: '+52',\n code: 'MX',\n },\n {\n name: 'Micronesia, Federated States of Micronesia',\n dialCode: '+691',\n code: 'FM',\n },\n {\n name: 'Moldova',\n dialCode: '+373',\n code: 'MD',\n },\n {\n name: 'Monaco',\n dialCode: '+377',\n code: 'MC',\n },\n {\n name: 'Mongolia',\n dialCode: '+976',\n code: 'MN',\n },\n {\n name: 'Montenegro',\n dialCode: '+382',\n code: 'ME',\n },\n {\n name: 'Montserrat',\n dialCode: '+1664',\n code: 'MS',\n },\n {\n name: 'Morocco',\n dialCode: '+212',\n code: 'MA',\n },\n {\n name: 'Mozambique',\n dialCode: '+258',\n code: 'MZ',\n },\n {\n name: 'Myanmar',\n dialCode: '+95',\n code: 'MM',\n },\n {\n name: 'Namibia',\n dialCode: '+264',\n code: 'NA',\n },\n {\n name: 'Nauru',\n dialCode: '+674',\n code: 'NR',\n },\n {\n name: 'Nepal',\n dialCode: '+977',\n code: 'NP',\n },\n {\n name: 'Netherlands',\n dialCode: '+31',\n code: 'NL',\n },\n {\n name: 'Netherlands Antilles',\n dialCode: '+599',\n code: 'AN',\n },\n {\n name: 'New Caledonia',\n dialCode: '+687',\n code: 'NC',\n },\n {\n name: 'New Zealand',\n dialCode: '+64',\n code: 'NZ',\n },\n {\n name: 'Nicaragua',\n dialCode: '+505',\n code: 'NI',\n },\n {\n name: 'Niger',\n dialCode: '+227',\n code: 'NE',\n },\n {\n name: 'Nigeria',\n dialCode: '+234',\n code: 'NG',\n },\n {\n name: 'Niue',\n dialCode: '+683',\n code: 'NU',\n },\n {\n name: 'Norfolk Island',\n dialCode: '+672',\n code: 'NF',\n },\n {\n name: 'Northern Mariana Islands',\n dialCode: '+1670',\n code: 'MP',\n },\n {\n name: 'Norway',\n dialCode: '+47',\n code: 'NO',\n },\n {\n name: 'Oman',\n dialCode: '+968',\n code: 'OM',\n },\n {\n name: 'Pakistan',\n dialCode: '+92',\n code: 'PK',\n },\n {\n name: 'Palau',\n dialCode: '+680',\n code: 'PW',\n },\n {\n name: 'Palestinian Territory, Occupied',\n dialCode: '+970',\n code: 'PS',\n },\n {\n name: 'Panama',\n dialCode: '+507',\n code: 'PA',\n },\n {\n name: 'Papua New Guinea',\n dialCode: '+675',\n code: 'PG',\n },\n {\n name: 'Paraguay',\n dialCode: '+595',\n code: 'PY',\n },\n {\n name: 'Peru',\n dialCode: '+51',\n code: 'PE',\n },\n {\n name: 'Philippines',\n dialCode: '+63',\n code: 'PH',\n },\n {\n name: 'Pitcairn',\n dialCode: '+872',\n code: 'PN',\n },\n {\n name: 'Poland',\n dialCode: '+48',\n code: 'PL',\n },\n {\n name: 'Portugal',\n dialCode: '+351',\n code: 'PT',\n },\n {\n name: 'Puerto Rico',\n dialCode: '+1939',\n code: 'PR',\n },\n {\n name: 'Qatar',\n dialCode: '+974',\n code: 'QA',\n },\n {\n name: 'Romania',\n dialCode: '+40',\n code: 'RO',\n },\n {\n name: 'Russia',\n dialCode: '+7',\n code: 'RU',\n },\n {\n name: 'Rwanda',\n dialCode: '+250',\n code: 'RW',\n },\n {\n name: 'Reunion',\n dialCode: '+262',\n code: 'RE',\n },\n {\n name: 'Saint Barthelemy',\n dialCode: '+590',\n code: 'BL',\n },\n {\n name: 'Saint Helena, Ascension and Tristan Da Cunha',\n dialCode: '+290',\n code: 'SH',\n },\n {\n name: 'Saint Kitts and Nevis',\n dialCode: '+1869',\n code: 'KN',\n },\n {\n name: 'Saint Lucia',\n dialCode: '+1758',\n code: 'LC',\n },\n {\n name: 'Saint Martin',\n dialCode: '+590',\n code: 'MF',\n },\n {\n name: 'Saint Pierre and Miquelon',\n dialCode: '+508',\n code: 'PM',\n },\n {\n name: 'Saint Vincent and the Grenadines',\n dialCode: '+1784',\n code: 'VC',\n },\n {\n name: 'Samoa',\n dialCode: '+685',\n code: 'WS',\n },\n {\n name: 'San Marino',\n dialCode: '+378',\n code: 'SM',\n },\n {\n name: 'Sao Tome and Principe',\n dialCode: '+239',\n code: 'ST',\n },\n {\n name: 'Saudi Arabia',\n dialCode: '+966',\n code: 'SA',\n },\n {\n name: 'Senegal',\n dialCode: '+221',\n code: 'SN',\n },\n {\n name: 'Serbia',\n dialCode: '+381',\n code: 'RS',\n },\n {\n name: 'Seychelles',\n dialCode: '+248',\n code: 'SC',\n },\n {\n name: 'Sierra Leone',\n dialCode: '+232',\n code: 'SL',\n },\n {\n name: 'Singapore',\n dialCode: '+65',\n code: 'SG',\n },\n {\n name: 'Slovakia',\n dialCode: '+421',\n code: 'SK',\n },\n {\n name: 'Slovenia',\n dialCode: '+386',\n code: 'SI',\n },\n {\n name: 'Solomon Islands',\n dialCode: '+677',\n code: 'SB',\n },\n {\n name: 'Somalia',\n dialCode: '+252',\n code: 'SO',\n },\n {\n name: 'South Africa',\n dialCode: '+27',\n code: 'ZA',\n },\n {\n name: 'South Sudan',\n dialCode: '+211',\n code: 'SS',\n },\n {\n name: 'South Georgia and the South Sandwich Islands',\n dialCode: '+500',\n code: 'GS',\n },\n {\n name: 'Spain',\n dialCode: '+34',\n code: 'ES',\n },\n {\n name: 'Sri Lanka',\n dialCode: '+94',\n code: 'LK',\n },\n {\n name: 'Sudan',\n dialCode: '+249',\n code: 'SD',\n },\n {\n name: 'Suriname',\n dialCode: '+597',\n code: 'SR',\n },\n {\n name: 'Svalbard and Jan Mayen',\n dialCode: '+47',\n code: 'SJ',\n },\n {\n name: 'Swaziland',\n dialCode: '+268',\n code: 'SZ',\n },\n {\n name: 'Sweden',\n dialCode: '+46',\n code: 'SE',\n },\n {\n name: 'Switzerland',\n dialCode: '+41',\n code: 'CH',\n },\n {\n name: 'Syrian Arab Republic',\n dialCode: '+963',\n code: 'SY',\n },\n {\n name: 'Taiwan',\n dialCode: '+886',\n code: 'TW',\n },\n {\n name: 'Tajikistan',\n dialCode: '+992',\n code: 'TJ',\n },\n {\n name: 'Tanzania, United Republic of Tanzania',\n dialCode: '+255',\n code: 'TZ',\n },\n {\n name: 'Thailand',\n dialCode: '+66',\n code: 'TH',\n },\n {\n name: 'Timor-Leste',\n dialCode: '+670',\n code: 'TL',\n },\n {\n name: 'Togo',\n dialCode: '+228',\n code: 'TG',\n },\n {\n name: 'Tokelau',\n dialCode: '+690',\n code: 'TK',\n },\n {\n name: 'Tonga',\n dialCode: '+676',\n code: 'TO',\n },\n {\n name: 'Trinidad and Tobago',\n dialCode: '+1868',\n code: 'TT',\n },\n {\n name: 'Tunisia',\n dialCode: '+216',\n code: 'TN',\n },\n {\n name: 'Turkey',\n dialCode: '+90',\n code: 'TR',\n },\n {\n name: 'Turkmenistan',\n dialCode: '+993',\n code: 'TM',\n },\n {\n name: 'Turks and Caicos Islands',\n dialCode: '+1649',\n code: 'TC',\n },\n {\n name: 'Tuvalu',\n dialCode: '+688',\n code: 'TV',\n },\n {\n name: 'Uganda',\n dialCode: '+256',\n code: 'UG',\n },\n {\n name: 'Ukraine',\n dialCode: '+380',\n code: 'UA',\n },\n {\n name: 'United Arab Emirates',\n dialCode: '+971',\n code: 'AE',\n },\n {\n name: 'United Kingdom',\n dialCode: '+44',\n code: 'GB',\n },\n {\n name: 'Uruguay',\n dialCode: '+598',\n code: 'UY',\n },\n {\n name: 'Uzbekistan',\n dialCode: '+998',\n code: 'UZ',\n },\n {\n name: 'Vanuatu',\n dialCode: '+678',\n code: 'VU',\n },\n {\n name: 'Venezuela, Bolivarian Republic of Venezuela',\n dialCode: '+58',\n code: 'VE',\n },\n {\n name: 'Vietnam',\n dialCode: '+84',\n code: 'VN',\n },\n {\n name: 'Virgin Islands, British',\n dialCode: '+1284',\n code: 'VG',\n },\n {\n name: 'Virgin Islands, U.S.',\n dialCode: '+1340',\n code: 'VI',\n },\n {\n name: 'Wallis and Futuna',\n dialCode: '+681',\n code: 'WF',\n },\n {\n name: 'Yemen',\n dialCode: '+967',\n code: 'YE',\n },\n {\n name: 'Zambia',\n dialCode: '+260',\n code: 'ZM',\n },\n {\n name: 'Zimbabwe',\n dialCode: '+263',\n code: 'ZW',\n },\n ].sort((a, b) => (a.name < b.name ? -1 : 1)),\n];\n","import parsePhone from 'libphonenumber-js/min';\nimport { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport { forwardAttrs, getComponentName } from '../../../../helpers/componentHelpers';\nimport CountryCodes from '../../CountryCodes';\nimport { comboBoxItem } from '../helpers';\n\nexport const componentName = getComponentName('phone-field-internal');\n\nconst commonAttrs = ['disabled', 'size', 'bordered', 'invalid', 'readonly'];\nconst countryAttrs = ['country-input-placeholder', 'default-code', 'restrict-countries'];\nconst phoneAttrs = ['phone-input-placeholder', 'maxlength', 'autocomplete', 'name'];\nconst labelTypeAttrs = ['label-type', 'country-input-label', 'label'];\nconst mapAttrs = {\n 'country-input-label': 'label',\n 'country-input-placeholder': 'placeholder',\n 'phone-input-placeholder': 'placeholder',\n};\n\nconst inputRelatedAttrs = [].concat(commonAttrs, countryAttrs, phoneAttrs, labelTypeAttrs);\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass PhoneFieldInternal extends BaseInputClass {\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], inputRelatedAttrs);\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n <div>\n <descope-combo-box\n item-label-path=\"data-name\"\n item-value-path=\"data-id\"\n >\n ${CountryCodes.map((item) => comboBoxItem(item)).join('')}\n </descope-combo-box>\n <div class=\"separator\"></div>\n <descope-text-field type=\"tel\"></descope-text-field>\n </div>\n `;\n\n this.countryCodeInput = this.querySelector('descope-combo-box');\n this.phoneNumberInput = this.querySelector('descope-text-field');\n this.inputs = [this.countryCodeInput, this.phoneNumberInput];\n\n forwardAttrs(this, this.countryCodeInput, { includeAttrs: ['label-type'] });\n forwardAttrs(this, this.phoneNumberInput, { includeAttrs: ['label-type', 'required'] });\n\n // override combo box setter to display dialCode value in input\n this.countryCodeInput.customValueTransformFn = (val) => {\n const [, dialCode] = val?.split?.(' ') || [];\n return dialCode;\n };\n }\n\n get value() {\n if (!this.phoneNumberValue) {\n return '';\n }\n return `${this.countryCodeInput.value}-${this.phoneNumberInput.value}`;\n }\n\n set value(val) {\n const parsed = parsePhone(val || '');\n const countryCode = parsed?.countryCallingCode ? `+${parsed.countryCallingCode}` : '';\n const phoneNumber = parsed?.nationalNumber || '';\n\n if (countryCode) {\n const countryCodeItem = this.getCountryByDialCode(countryCode);\n if (countryCodeItem) {\n this.countryCodeInput.selectedItem = countryCodeItem;\n }\n } else {\n this.countryCodeInput.selectedItem = undefined;\n }\n this.phoneNumberInput.value = this.phoneNumberInput.value || phoneNumber;\n }\n\n get phoneNumberValue() {\n return this.phoneNumberInput.value;\n }\n\n get countryCodeValue() {\n return this.countryCodeInput.shadowRoot.querySelector('input').value;\n }\n\n get minLength() {\n return parseInt(this.getAttribute('minlength'), 10) || 0;\n }\n\n getValidity() {\n const hasCode = this.countryCodeInput.value;\n const hasPhone = this.phoneNumberInput.value;\n const emptyValue = !hasCode || !hasPhone;\n const hasMinPhoneLength =\n this.phoneNumberInput.value?.length && this.phoneNumberInput.value.length < this.minLength;\n\n if (this.isRequired && emptyValue) {\n return { valueMissing: true };\n }\n if (hasMinPhoneLength) {\n return { tooShort: true };\n }\n if (hasPhone && !hasCode) {\n return { valueMissing: true };\n }\n return {};\n }\n\n init() {\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) this.inputs[1].focus();\n });\n\n super.init?.();\n this.initInputs();\n }\n\n getRestrictedCountries() {\n return this.getAttribute('restrict-countries')?.split(',') || [];\n }\n\n getCountryByDialCode(countryDialCode) {\n return this.countryCodeInput.items?.find((c) => c.getAttribute('data-id') === countryDialCode);\n }\n\n getCountryByCodeId(countryCode) {\n return this.countryCodeInput.items?.find(\n (c) => c.getAttribute('data-country-code') === countryCode\n );\n }\n\n updateCountryCodeItems(restrictCountries) {\n const items = restrictCountries.length\n ? CountryCodes.filter((c) => restrictCountries.includes(c.code))\n : CountryCodes;\n this.querySelector('descope-combo-box').innerHTML = items\n .map((item) => comboBoxItem(item))\n .join('');\n }\n\n handleDefaultCountryCode(countryCode) {\n if (!this.countryCodeInput.value) {\n const countryCodeItem = this.getCountryByCodeId(countryCode);\n // When replacing the input component (inserting internal component into text-field) -\n // Vaadin resets the input's value. We use setTimeout in order to make sure this happens\n // after the reset.\n if (countryCodeItem) {\n setTimeout(() => {\n this.countryCodeInput.selectedItem = countryCodeItem;\n });\n }\n }\n }\n\n initInputs() {\n // Sanitize phone input value to filter everything but digits\n this.phoneNumberInput.addEventListener('input', (e) => {\n const telDigitsRegExp = /^\\d$/;\n const sanitizedInput = e.target.value\n .split('')\n .filter((char) => telDigitsRegExp.test(char))\n .join('');\n e.target.value = sanitizedInput;\n });\n\n this.handleFocusEventsDispatching(this.inputs);\n this.handleInputEventDispatching();\n }\n\n handleLabelTypeAttrs(attrName, newValue) {\n // set or remove label attributes from inner text/combo components on `label-type` change\n const attr = mapAttrs[attrName] || attrName;\n\n if (attrName === 'label-type') {\n this.onLabelTypeChange(newValue);\n }\n // on inner components label attr change - set label attributes for text/combo components\n // only if label-type is `floating`\n else if (this.getAttribute('label-type') === 'floating') {\n if (attrName === 'country-input-label') {\n this.countryCodeInput.setAttribute(attr, newValue);\n } else if (attrName === 'label') {\n this.phoneNumberInput.setAttribute(attr, newValue);\n }\n }\n }\n\n onLabelTypeChange(newValue) {\n if (newValue === 'floating') {\n // on change to `floating` label - set inner components `label` and `placeholder`\n this.countryCodeInput.setAttribute('label', this.getAttribute('country-input-label') || '');\n this.countryCodeInput.setAttribute(\n 'placeholder',\n this.getAttribute('country-input-placeholder') || ''\n );\n this.phoneNumberInput.setAttribute('label', this.getAttribute('label') || '');\n this.phoneNumberInput.setAttribute(\n 'placeholder',\n this.getAttribute('phone-input-placeholder') || ''\n );\n } else {\n // for other cases - reset inner components label-type and labels\n this.inputs.forEach((input) => input.removeAttribute('label'));\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'default-code' && newValue) {\n this.handleDefaultCountryCode(newValue);\n } else if (inputRelatedAttrs.includes(attrName)) {\n const attr = mapAttrs[attrName] || attrName;\n\n if (commonAttrs.includes(attrName)) {\n this.inputs.forEach((input) => input.setAttribute(attr, newValue));\n } else if (countryAttrs.includes(attrName)) {\n this.countryCodeInput.setAttribute(attr, newValue);\n } else if (phoneAttrs.includes(attrName)) {\n this.phoneNumberInput.setAttribute(attr, newValue);\n }\n }\n\n if (labelTypeAttrs.includes(attrName)) {\n this.handleLabelTypeAttrs(attrName, newValue);\n }\n\n if (attrName === 'restrict-countries') {\n this.updateCountryCodeItems(this.getRestrictedCountries());\n }\n }\n }\n}\n\nexport default PhoneFieldInternal;\n","import { componentName as descopeInternalComponentName } from './descope-phone-field-internal/PhoneFieldInternal';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport { compose } from '../../../helpers';\nimport { createProxy, createStyleMixin, draggableMixin, proxyInputMixin } from '../../../mixins';\nimport { TextFieldClass } from '../../descope-text-field/TextFieldClass';\nimport { ComboBoxClass } from '../../descope-combo-box/ComboBoxClass';\nimport CountryCodes from '../CountryCodes';\nimport {\n resetInputCursor,\n resetInputLabelPosition,\n resetInputFieldDefaultWidth,\n resetInputFieldInvalidBackgroundColor,\n useHostExternalPadding,\n} from '../../../helpers/themeHelpers/resetHelpers';\n\nconst textVars = TextFieldClass.cssVarList;\nconst comboVars = ComboBoxClass.cssVarList;\n\nexport const componentName = getComponentName('phone-field');\n\nconst customMixin = (superclass) =>\n class PhoneFieldMixinClass extends superclass {\n static get CountryCodes() {\n return CountryCodes;\n }\n\n init() {\n super.init?.();\n\n const template = document.createElement('template');\n\n template.innerHTML = `\n\t\t\t\t<${descopeInternalComponentName}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\tslot=\"input\"\n\t\t\t\t></${descopeInternalComponentName}>\n \t\t`;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this.shadowRoot.host, this.inputElement, {\n includeAttrs: [\n 'size',\n 'bordered',\n 'invalid',\n 'minlength',\n 'maxlength',\n 'default-code',\n 'country-input-placeholder',\n 'phone-input-placeholder',\n 'disabled',\n 'restrict-countries',\n 'country-input-label',\n 'readonly',\n 'label',\n 'label-type',\n ],\n });\n }\n };\n\nconst {\n host,\n label,\n requiredIndicator,\n inputField,\n countryCodeInput,\n phoneInput,\n separator,\n errorMessage,\n helperText,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n inputField: { selector: '::part(input-field)' },\n phoneInput: { selector: () => 'descope-text-field' },\n countryCodeInput: { selector: () => 'descope-combo-box' },\n separator: { selector: 'descope-phone-field-internal .separator' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const PhoneFieldClass = compose(\n createStyleMixin({\n mappings: {\n fontSize: [\n host,\n inputField,\n {\n selector: TextFieldClass.componentName,\n property: TextFieldClass.cssVarList.fontSize,\n },\n {\n selector: ComboBoxClass.componentName,\n property: ComboBoxClass.cssVarList.fontSize,\n },\n ],\n fontFamily: [\n label,\n errorMessage,\n helperText,\n {\n ...countryCodeInput,\n property: ComboBoxClass.cssVarList.overlay.fontFamily,\n },\n ],\n hostWidth: [\n { ...host, property: 'width' },\n { ...phoneInput, property: 'width' },\n { ...countryCodeInput, property: '--vaadin-combo-box-overlay-width' },\n ],\n hostDirection: { ...host, property: 'direction' },\n\n inputBorderStyle: [\n { ...inputField, property: 'border-style' },\n { ...separator, property: 'border-left-style' },\n ],\n inputBorderWidth: [\n { ...inputField, property: 'border-width' },\n { ...separator, property: 'border-left-width' },\n ],\n inputBorderColor: [\n { ...inputField, property: 'border-color' },\n { ...separator, property: 'border-left-color' },\n ],\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n countryCodeInputWidth: { ...countryCodeInput, property: comboVars.hostWidth },\n countryCodeDropdownWidth: {\n ...countryCodeInput,\n property: '--vaadin-combo-box-overlay-width',\n },\n phoneInputWidth: { ...phoneInput, property: 'width' },\n\n horizontalPadding: [\n { ...phoneInput, property: 'padding-left' },\n { ...phoneInput, property: 'padding-right' },\n { ...countryCodeInput, property: 'padding-left' },\n { ...countryCodeInput, property: 'padding-right' },\n ],\n\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n\n inputValueTextColor: [\n { ...phoneInput, property: textVars.inputValueTextColor },\n { ...countryCodeInput, property: comboVars.inputValueTextColor },\n ],\n\n inputPlaceholderTextColor: { ...phoneInput, property: textVars.inputPlaceholderColor },\n\n overlayItemBackgroundColor: {\n selector: 'descope-combo-box',\n property: comboVars.overlayItemBackgroundColor,\n },\n\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n\n valueInputHeight: [{ ...countryCodeInput, property: comboVars.valueInputHeight }],\n valueInputMarginBottom: [{ ...phoneInput, property: textVars.valueInputMarginBottom }],\n marginInlineStart: [\n { ...phoneInput, property: textVars.marginInlineStart },\n { ...countryCodeInput, property: comboVars.marginInlineStart },\n ],\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tmin-width: 15em;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\t\t\t${useHostExternalPadding(PhoneFieldClass.cssVarList)}\n\t\t\t${resetInputCursor('vaadin-text-field')}\n\t\t\t${resetInputFieldInvalidBackgroundColor('vaadin-text-field')}\n\t\t\t${resetInputFieldDefaultWidth()}\n\n\t\t\tdiv {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\t\t\tvaadin-text-field {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tpadding: 0;\n\t\t\t}\n\t\t\tvaadin-text-field[focus-ring]::part(input-field) {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\t\t\tvaadin-text-field::before {\n\t\t\t\theight: 0;\n\t\t\t}\n\t\t\tvaadin-text-field::part(input-field) {\n\t\t\t\tpadding: 0;\n\t\t\t\tbackground: transparent;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\tdescope-phone-field-internal {\n\t\t\t\t-webkit-mask-image: none;\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n direction: ltr;\n\t\t\t}\n\t\t\tdescope-phone-field-internal > div {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t}\n\t\t\tdescope-phone-field-internal .separator {\n\t\t\t\tflex: 0;\n\t\t\t\tborder: none;\n\t\t\t}\n\t\t\tdescope-combo-box {\n\t\t\t\tflex-shrink: 0;\n\t\t\t\tmin-width: 5.75em;\n\t\t\t\t${comboVars.inputOutlineWidth}: 0;\n\t\t\t\t${comboVars.inputOutlineOffset}: 0;\n\t\t\t\t${comboVars.inputBorderWidth}: 0;\n\t\t\t\t${comboVars.inputBorderRadius}: 0;\n\t\t\t}\n\t\t\tdescope-text-field {\n\t\t\t\tflex-grow: 1;\n\t\t\t\t${textVars.inputOutlineWidth}: 0;\n\t\t\t\t${textVars.inputOutlineOffset}: 0;\n\t\t\t\t${textVars.inputBorderWidth}: 0;\n\t\t\t\t${textVars.inputBorderRadius}: 0;\n }\n\n :host([label-type=\"floating\"]) vaadin-text-field::part(label) {\n display: none;\n }\n descope-text-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n descope-text-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\n\t\t\tvaadin-text-field::part(input-field)::after {\n\t\t\t\tborder: none;\n\t\t\t}\n ${resetInputLabelPosition('vaadin-text-field')}\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nexport default PhoneFieldClass;\n","import { PhoneFieldClass } from '../../components/phone-fields/descope-phone-field/PhoneFieldClass';\nimport { refs } from './inputWrapper';\n\nconst vars = PhoneFieldClass.cssVarList;\n\nconst phoneField = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.phoneInputWidth]: refs.minWidth,\n [vars.countryCodeInputWidth]: '5em',\n [vars.countryCodeDropdownWidth]: '20em',\n [vars.marginInlineStart]: '-0.25em',\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n\n // '@overlay': {\n // \toverlayItemBackgroundColor: 'red'\n // }\n};\n\nexport default phoneField;\nexport { vars };\n","import { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport { getComponentName } from '../../../../helpers/componentHelpers';\nimport { getCountryByCodeId } from '../../helpers';\n\nexport const componentName = getComponentName('phone-field-internal-input-box');\n\nconst observedAttributes = [\n 'disabled',\n 'size',\n 'bordered',\n 'invalid',\n 'readonly',\n 'phone-input-placeholder',\n 'name',\n 'autocomplete',\n 'label-type',\n];\nconst mapAttrs = {\n 'phone-input-placeholder': 'placeholder',\n};\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass PhoneFieldInternal extends BaseInputClass {\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], observedAttributes);\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n <div>\n <descope-text-field tabindex=\"1\"></descope-text-field>\n </div>\n `;\n\n this.phoneNumberInput = this.querySelector('descope-text-field');\n }\n\n get defaultCountryCode() {\n return getCountryByCodeId(this.getAttribute('default-code'));\n }\n\n get hasDefaultCode() {\n return !!this.getAttribute('default-code');\n }\n\n get value() {\n if (!this.phoneNumberValue) {\n return '';\n }\n\n if (this.hasDefaultCode) {\n // we want to transform phone numbers to a valid {dialCode}-{phoneNumber} format\n // e.g.:\n // +972-12345 => +972-12345\n // 972-12345 => +972-12345\n // 12345 => +972-12345\n //\n // we also want to handle any extra dash if added in the start of the phone number\n // e.g.:\n // +972--12345 => +972-12345\n const pattern = new RegExp(`\\\\+?${parseInt(this.defaultCountryCode, 10)}--?`);\n return `${this.defaultCountryCode}-${this.phoneNumberInput.value.replace(pattern, '')}`;\n }\n\n return this.phoneNumberInput.value;\n }\n\n set value(val) {\n this.phoneNumberInput.value = val;\n }\n\n get phoneNumberValue() {\n return this.phoneNumberInput.value;\n }\n\n get minLength() {\n return parseInt(this.getAttribute('minlength'), 10) || 0;\n }\n\n get maxLength() {\n return parseInt(this.getAttribute('maxlength'), 10) || 50;\n }\n\n getValidity() {\n const validPhonePattern = /^\\+?\\d{1,4}-?(?:\\d-?){1,15}$/;\n const stripValue = this.value.replace(/\\D/g, '');\n\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n\n if (stripValue.length < this.minLength) {\n return { tooShort: true };\n }\n\n if (stripValue.length > this.maxLength) {\n return { tooLong: true };\n }\n\n if (!validPhonePattern.test(this.value)) {\n return { patternMismatch: true };\n }\n\n return {};\n }\n\n init() {\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) this.phoneNumberInput.focus();\n });\n\n super.init?.();\n this.initInputs();\n }\n\n getCountryByDialCode(countryDialCode) {\n return this.countryCodeInput.items?.find(\n (c) => c.getAttribute('data-country-code') === countryDialCode\n );\n }\n\n initInputs() {\n // Sanitize phone input value to filter everything but digits\n this.phoneNumberInput.addEventListener('input', (e) => {\n if (e.target.value.length === 1 && e.target.value === '-') {\n e.target.value = '';\n }\n\n e.target.value = e.target.value\n .replace(/(?!^)\\+/g, '')\n .replace('--', '-')\n .replace('+-', '+');\n\n const telDigitsRegExp = /^[+\\d-]+$/;\n const sanitizedInput = e.target.value\n .split('')\n .filter((char) => telDigitsRegExp.test(char))\n .join('');\n\n e.target.value = sanitizedInput;\n });\n\n this.handleFocusEventsDispatching([this.phoneNumberInput]);\n this.handleInputEventDispatching();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n\n if (oldValue !== newValue && observedAttributes.includes(attrName)) {\n const attr = mapAttrs[attrName] || attrName;\n this.phoneNumberInput.setAttribute(attr, newValue);\n }\n }\n}\n\nexport default PhoneFieldInternal;\n","import { componentName as descopeInternalComponentName } from './descope-phone-input-box-internal/PhoneFieldInternalInputBox';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport { compose } from '../../../helpers';\nimport { createProxy, createStyleMixin, draggableMixin, proxyInputMixin } from '../../../mixins';\nimport { TextFieldClass } from '../../descope-text-field/TextFieldClass';\nimport CountryCodes from '../CountryCodes';\nimport {\n resetInputLabelPosition,\n resetInputCursor,\n resetInputFieldDefaultWidth,\n resetInputFieldInvalidBackgroundColor,\n useHostExternalPadding,\n inputFloatingLabelStyle,\n} from '../../../helpers/themeHelpers/resetHelpers';\n\nconst textVars = TextFieldClass.cssVarList;\n\nexport const componentName = getComponentName('phone-input-box-field');\n\nconst customMixin = (superclass) =>\n class PhoneInputBoxFieldMixinClass extends superclass {\n static get CountryCodes() {\n return CountryCodes;\n }\n\n init() {\n super.init?.();\n\n const template = document.createElement('template');\n\n template.innerHTML = `\n\t\t\t\t<${descopeInternalComponentName}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\tslot=\"input\"\n\t\t\t\t></${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this.shadowRoot.host, this.inputElement, {\n includeAttrs: [\n 'size',\n 'bordered',\n 'invalid',\n 'minlength',\n 'maxlength',\n 'default-code',\n 'disabled',\n 'phone-input-placeholder',\n 'label',\n 'label-type',\n ],\n });\n }\n };\n\nconst {\n host,\n label,\n inputElement,\n requiredIndicator,\n inputField,\n phoneInput,\n errorMessage,\n helperText,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n placeholder: { selector: '> input:placeholder-shown' },\n inputElement: { selector: 'input' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n inputField: { selector: '::part(input-field)' },\n phoneInput: { selector: () => 'descope-text-field' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const PhoneFieldInputBoxClass = compose(\n createStyleMixin({\n mappings: {\n fontSize: [\n host,\n inputField,\n {\n selector: TextFieldClass.componentName,\n property: TextFieldClass.cssVarList.fontSize,\n },\n ],\n fontFamily: [label, errorMessage, helperText],\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: { ...host, property: 'direction' },\n\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n inputHorizontalPadding: [\n { ...phoneInput, property: 'padding-left' },\n { ...phoneInput, property: 'padding-right' },\n ],\n\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n\n inputValueTextColor: { ...phoneInput, property: textVars.inputValueTextColor },\n\n inputPlaceholderTextColor: { ...phoneInput, property: textVars.inputPlaceholderColor },\n\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n valueInputHeight: { ...inputElement, property: 'height' },\n valueInputMarginBottom: {\n selector: TextFieldClass.componentName,\n property: textVars.valueInputMarginBottom,\n },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n :host {\n display: inline-flex;\n max-width: 100%;\n box-sizing: border-box;\n }\n ${useHostExternalPadding(PhoneFieldInputBoxClass.cssVarList)}\n ${resetInputCursor('vaadin-text-field')}\n ${resetInputFieldInvalidBackgroundColor('vaadin-text-field')}\n ${resetInputFieldDefaultWidth()}\n\n vaadin-text-field {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 0;\n }\n vaadin-text-field[focus-ring]::part(input-field) {\n box-shadow: none;\n }\n vaadin-text-field::before {\n height: 0;\n }\n vaadin-text-field::part(input-field) {\n padding: 0;\n background: transparent;\n overflow: hidden;\n -webkit-mask-image: none;\n }\n descope-phone-field-internal-input-box {\n -webkit-mask-image: none;\n padding: 0;\n width: 100%;\n height: 100%;\n }\n descope-phone-field-internal-input-box > div {\n width: 100%;\n height: 100%;\n }\n descope-phone-field-internal-input-box .separator {\n flex: 0;\n border: none;\n }\n descope-text-field {\n flex-grow: 1;\n width: 100%;\n ${textVars.inputOutlineWidth}: 0;\n ${textVars.inputOutlineOffset}: 0;\n ${textVars.inputBorderWidth}: 0;\n ${textVars.inputBorderRadius}: 0;\n direction: ltr;\n }\n vaadin-text-field[readonly] > input:placeholder-shown {\n opacity: 1;\n }\n vaadin-text-field::part(input-field)::after {\n border: none;\n }\n\n vaadin-text-field[label-type=\"floating\"]:not([focused])[readonly] input:placeholder-shown {\n opacity: 0;\n }\n vaadin-text-field[label-type=\"floating\"]:not([focused])[disabled] input:placeholder-shown {\n opacity: 0;\n }\n\n ${resetInputLabelPosition('vaadin-text-field')}\n ${inputFloatingLabelStyle()}\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nexport default PhoneFieldInputBoxClass;\n","import { PhoneFieldInputBoxClass } from '../../components/phone-fields/descope-phone-input-box-field/PhoneFieldInputBoxClass';\nimport { refs } from './inputWrapper';\n\nconst vars = PhoneFieldInputBoxClass.cssVarList;\n\nconst phoneInputBoxField = {\n [vars.hostWidth]: '16em',\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n [vars.inputHorizontalPadding]: '0',\n\n _fullWidth: {\n [vars.hostWidth]: refs.width,\n },\n};\n\nexport default phoneInputBoxField;\nexport { vars };\n","import { getComponentName } from '../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('new-password-internal');\n","export const interpolateString = (template, values) =>\n template.replace(/{{(\\w+)+}}/g, (match, key) => values?.[key] || match);\n","// eslint-disable-next-line max-classes-per-file\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { interpolateString } from './helpers';\n\nexport const componentName = getComponentName('policy-validation');\n\nconst overrideAttrs = ['data-password-policy-value-minlength'];\nconst dataAttrs = ['data', 'active-policies', 'overrides', ...overrideAttrs];\nconst policyAttrs = ['label', 'value', ...dataAttrs];\n\nclass RawPolicyValidation extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n #availablePolicies;\n\n #activePolicies = [];\n\n #overrides;\n\n static get observedAttributes() {\n return policyAttrs;\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div>\n <div class=\"label\"></div>\n <ul></ul>\n </div>\n <style>\n :host > div {\n width: 100%;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n }\n .label {\n max-width: 100%;\n text-wrap: wrap;\n overflow-wrap: break-word;\n }\n .hide-label .label {\n display: none;\n }\n ul {\n display: flex;\n flex-direction: column;\n padding: 0;\n margin: 0;\n }\n ul, li {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n li::before {\n display: inline-block;\n width: 1em;\n text-align: center;\n }\n </style>\n\t\t`;\n\n this.panel = this.shadowRoot.querySelector(':host > div');\n this.label = this.shadowRoot.querySelector('.label');\n this.list = this.shadowRoot.querySelector('ul');\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (oldValue !== newValue) {\n if (attrName === 'label') {\n this.updateLabel(newValue);\n }\n\n // we're don't know the order in which the attributes are forwarded, so we're trying to render every time\n // once `data` and `active-policies` are populated, the render will be executed.\n // once the `overrides` object is updated, we want to re-render the panel.\n if (dataAttrs.includes(attrName)) {\n if (attrName === 'data') {\n try {\n this.availablePolicies = JSON.parse(newValue);\n } catch {\n // eslint-disable-next-line no-console\n console.error('Failed to set available policies');\n }\n }\n if (attrName === 'active-policies') {\n this.#activePolicies = (newValue || '').split(',');\n }\n\n if (attrName === 'data-password-policy-value-minlength') {\n const ln = Number(newValue);\n if (!Number.isNaN(ln) && ln > 0) {\n this.#overrides = { ...this.#overrides, minlength: { value: `${ln}` } };\n }\n }\n }\n\n this.renderItems(this.#availablePolicies, this.#activePolicies, this.#overrides);\n }\n }\n\n get availablePolicies() {\n return this.#availablePolicies || [];\n }\n\n set availablePolicies(val) {\n this.#availablePolicies = val;\n }\n\n get value() {\n return this.getAttribute('value') || '';\n }\n\n validate() {\n let policies = this.#availablePolicies;\n\n if (this.#overrides) {\n policies = this.#availablePolicies.map((policy) =>\n this.#overrides[policy.id] ? { ...policy, data: this.#overrides[policy.id] } : policy\n );\n }\n\n return this.#activePolicies.reduce((results, id) => {\n const policy = policies.find((p) => p.id === id);\n\n if (!policy) {\n return results;\n }\n\n const { pattern, message, data } = policy;\n\n if (!pattern || !message) {\n return results;\n }\n\n const exp = new RegExp(interpolateString(pattern, data));\n\n const validationResult = {\n valid: exp.test(this.value),\n message: interpolateString(message, data),\n id,\n };\n\n results.push(validationResult);\n\n return results;\n }, []);\n }\n\n get isValid() {\n return !this.validate().some(({ valid }) => valid === false);\n }\n\n getValidationItemTemplate({ valid, message }) {\n const status = !this.value ? 'none' : valid;\n return `\n <li class=\"item\" data-valid=\"${status}\">\n <span class=\"message\">${message}</span>\n </li>\n `;\n }\n\n renderItems(availablePolicies, activePolicies) {\n if (!availablePolicies || !activePolicies.length) {\n return;\n }\n\n this.list.innerHTML = this.validate().map(this.getValidationItemTemplate.bind(this)).join('');\n }\n\n updateLabel(val) {\n if (!val) {\n this.classList.add('hide-label');\n this.label.innerHTML = '';\n } else {\n this.label.innerHTML = val;\n this.classList.remove('hide-label');\n }\n }\n}\n\nconst { host, item, symbolDefault, symbolSuccess, symbolError } = {\n host: { selector: () => ':host > div' },\n item: { selector: () => '.item' },\n symbolDefault: { selector: () => '.item[data-valid=\"none\"]::before' },\n symbolSuccess: { selector: () => '.item[data-valid=\"true\"]::before' },\n symbolError: { selector: () => '.item[data-valid=\"false\"]::before' },\n};\n\nexport const PolicyValidationClass = compose(\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') }),\n createStyleMixin({\n mappings: {\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontSize: {},\n fontFamily: {},\n padding: {},\n borderWidth: { ...host, property: 'border-width' },\n borderStyle: { ...host, property: 'border-style' },\n borderColor: { ...host, property: 'border-color' },\n borderRadius: { ...host, property: 'border-radius' },\n backgroundColor: { ...host, property: 'background-color' },\n textColor: { property: 'color' },\n labelMargin: { ...host, property: 'gap' },\n itemsSpacing: { ...item, property: 'line-height' },\n itemSymbolSuccessColor: { ...symbolSuccess, property: 'color' },\n itemSymbolErrorColor: { ...symbolError, property: 'color' },\n itemSymbolDefault: { ...symbolDefault, property: 'content' },\n itemSymbolSuccess: { ...symbolSuccess, property: 'content' },\n itemSymbolError: { ...symbolError, property: 'content' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawPolicyValidation);\n","import { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\nimport { compose } from '../../helpers';\nimport { createStyleMixin, proxyInputMixin, draggableMixin, createProxy } from '../../mixins';\nimport { componentName as descopeInternalComponentName } from './descope-new-password-internal/componentName';\nimport { PasswordClass } from '../descope-password/PasswordClass';\nimport { useHostExternalPadding } from '../../helpers/themeHelpers/resetHelpers';\nimport { PolicyValidationClass } from '../descope-policy-validation/PolicyValidationClass';\n\nexport const componentName = getComponentName('new-password');\n\nconst policyPreviewVars = PolicyValidationClass.cssVarList;\n\nconst customMixin = (superclass) =>\n class NewPasswordMixinClass extends superclass {\n init() {\n super.init?.();\n\n const template = document.createElement('template');\n\n const externalInputAttr = this.getAttribute('external-input');\n\n template.innerHTML = `\n\t\t\t<${descopeInternalComponentName}\n\t\t\t\tname=\"new-password\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\tslot=\"input\"\n external-input=\"${externalInputAttr}\"\n\t\t\t>\n </${descopeInternalComponentName}>\n\t\t\t`;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n if (this.getAttribute('external-input') === 'true') {\n this.initExternalInput();\n }\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'password-label',\n 'password-placeholder',\n 'confirm-label',\n 'confirm-placeholder',\n 'full-width',\n 'size',\n 'bordered',\n 'label',\n 'has-confirm',\n 'invalid',\n 'readonly',\n 'draggable',\n 'has-validation',\n 'policy-label',\n 'active-policies',\n 'available-policies',\n 'data-password-policy-value-minlength',\n 'label-type',\n 'manual-visibility-toggle',\n ],\n });\n }\n\n createSlottedExternalInput(node, slotName) {\n const externalInput = node.querySelector('input');\n const slotEle = document.createElement('slot');\n\n const targetSlot = externalInput.getAttribute('slot');\n\n slotEle.setAttribute('name', slotName);\n slotEle.setAttribute('slot', targetSlot);\n\n node.appendChild(slotEle);\n\n // move external input\n externalInput.setAttribute('slot', slotName);\n externalInput.setAttribute('data-hidden-input', 'true');\n\n this.appendChild(externalInput);\n }\n\n initExternalInput() {\n // get descope input components\n this.passwordInput = this.inputElement.querySelector('[data-id=\"password\"]');\n this.confirmInput = this.inputElement.querySelector('[data-id=\"confirm\"]');\n\n // create slots for external password input\n this.createSlottedExternalInput(this.passwordInput, 'external-password-input');\n this.createSlottedExternalInput(this.confirmInput, 'external-confirm-input');\n }\n };\n\nconst {\n host,\n label,\n internalInputsWrapper,\n errorMessage,\n helperText,\n passwordInput,\n policyPreview,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n internalInputsWrapper: { selector: 'descope-new-password-internal .wrapper' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n passwordInput: { selector: 'descope-password' },\n policyPreview: { selector: 'descope-policy-validation' },\n};\n\nexport const NewPasswordClass = compose(\n createStyleMixin({\n mappings: {\n fontSize: [\n host,\n {},\n {\n selector: PasswordClass.componentName,\n property: PasswordClass.cssVarList.fontSize,\n },\n ],\n fontFamily: [label, errorMessage, helperText],\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n labelTextColor: { ...label, property: 'color' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: [\n { ...host, property: 'direction' },\n { ...passwordInput, property: PasswordClass.cssVarList.hostDirection },\n ],\n inputsRequiredIndicator: { ...host, property: 'content' },\n spaceBetweenInputs: { ...internalInputsWrapper, property: 'gap' },\n policyPreviewBackgroundColor: {\n ...policyPreview,\n property: policyPreviewVars.backgroundColor,\n },\n policyPreviewPadding: { ...policyPreview, property: policyPreviewVars.padding },\n\n valueInputHeight: { ...passwordInput, property: PasswordClass.cssVarList.valueInputHeight },\n valueInputMarginBottom: {\n ...passwordInput,\n property: PasswordClass.cssVarList.valueInputMarginBottom,\n },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t:host {\n\t\t\tdisplay: inline-block;\n\t\t\tmax-width: 100%;\n\t\t\tbox-sizing: border-box;\n\t\t}\n :host ::part(error-message) {\n direction: ltr;\n }\n\t\t${useHostExternalPadding(PasswordClass.cssVarList)}\n\t\tvaadin-text-field {\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t}\n\t\tvaadin-text-field::part(input-field) {\n\t\t\tmin-height: 0;\n\t\t\tbackground: transparent;\n\t\t\tbox-shadow: none;\n\t\t\tpadding: 0;\n\t\t}\n\t\tvaadin-text-field::part(input-field)::after {\n\t\t\tbackground: transparent;\n\t\t\topacity: 0;\n\t\t}\n\t\tdescope-new-password-internal {\n\t\t\t-webkit-mask-image: none;\n\t\t\tmin-height: 0;\n\t\t\twidth: 100%;\n\t\t\tpadding: 0;\n\t\t}\n\t\tdescope-new-password-internal > .wrapper {\n -webkit-mask-image: none;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t}\n\t\tdescope-password {\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t}\n\t\tdescope-new-password-internal vaadin-password-field::before {\n\t\t\theight: initial;\n\t\t}\n descope-policy-validation {\n margin-top: 8px;\n display: flex;\n }\n descope-policy-validation.hidden {\n display: none;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { NewPasswordClass } from '../../components/descope-new-password/NewPasswordClass';\nimport { refs } from './inputWrapper';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = NewPasswordClass.cssVarList;\n\nconst newPassword = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.spaceBetweenInputs]: '1em',\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.policyPreviewBackgroundColor]: 'none',\n [vars.policyPreviewPadding]: globalRefs.spacing.lg,\n [vars.valueInputHeight]: refs.valueInputHeight,\n\n _required: {\n // NewPassword doesn't pass `required` attribute to its Password components.\n // That's why we fake the required indicator on each input.\n // We do that by injecting `::after` element, and populating it with requiredIndicator content.\n [vars.inputsRequiredIndicator]: refs.requiredIndicator, // used to populate required content for NewPassword input fields outside the theme\n },\n};\n\nexport default newPassword;\nexport { vars };\n","export const getFileBase64 = (fileObj) => {\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.onload = (e) => resolve(e.target.result);\n reader.readAsDataURL(fileObj);\n });\n};\n\nexport const getFilename = (fileObj) => {\n return fileObj.name.replace(/^.*\\\\/, '');\n};\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { createBaseInputClass } from '../../baseClasses/createBaseInputClass';\nimport { ButtonClass } from '../descope-button/ButtonClass';\nimport { getFileBase64, getFilename } from './helpers';\n\nexport const componentName = getComponentName('upload-file');\n\nconst observedAttributes = [\n 'title',\n 'description',\n 'button-label',\n 'accept',\n 'readonly',\n 'button-mode',\n 'button-variant',\n 'required',\n 'size',\n 'icon',\n];\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: ':host > div' });\n\nclass RawUploadFile extends BaseInputClass {\n static get observedAttributes() {\n return observedAttributes.concat(BaseInputClass.observedAttributes || []);\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t\t<style>\n\t\t\t:host {\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\t\t\t:host > div {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\ttext-align: center;\n\t\t\t\tflex-direction: column;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t.button-wrapper {\n\t\t\t\tposition: relative;\n\t\t\t\twidth: fit-content;\n\t\t\t}\n\t\t\tinput {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\topacity: 0;\n\t\t\t}\n\t\t\t</style>\n\t\t\t<div>\n <slot name=\"icon\"></slot>\n\t\t\t\t<div class=\"title\">\n\t\t\t\t\t<span class=\"title-text\"></span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"description\"></div>\n\t\t\t\t<div class=\"button-wrapper\">\n\t\t\t\t\t<input type=\"file\" tabindex=\"-1\" />\n\t\t\t\t\t<descope-button></descope-button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n this.wrapperEle = this.shadowRoot.querySelector('.wrapper');\n this.inputElement = this.shadowRoot.querySelector('input');\n\n this.button.onclick = () => this.inputElement.click();\n\n this.inputElement.onchange = async (e) => {\n const receivedFileList = e.target.files;\n\n if (!receivedFileList.length) {\n return;\n }\n\n this.value = await getFileBase64(receivedFileList[0]);\n\n this.updateDescription(getFilename(receivedFileList[0]));\n };\n\n this.oninvalid = () => {\n this.setAttribute('invalid', 'true');\n };\n }\n\n // this is a temp solution,\n // we should show the input error message like we have in all other inputs\n /*\n reportValidity() {\n this.defaultReportValidity();\n }\n */\n\n getValidity() {\n if (this.isRequired && !this.input.value) {\n return { valueMissing: true };\n }\n this.removeAttribute('invalid');\n return {};\n }\n\n initInputs() {\n const button = this.rootElement.querySelector('descope-button');\n button.onclick = () => this.inputElement.click();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'title') {\n this.updateTitle(newValue);\n } else if (attrName === 'description') {\n this.updateDescription(newValue);\n } else if (attrName === 'button-label') {\n this.updateButtonLabel(newValue);\n } else if (attrName === 'button-mode') {\n this.updateButtonMode(newValue);\n } else if (attrName === 'button-variant') {\n this.updateButtonVariant(newValue);\n } else if (attrName === 'size') {\n this.updateButtonSize(newValue);\n } else if (attrName === 'accept') {\n this.updateInputAccept(newValue);\n } else if (attrName === 'readonly') {\n this.updateReadOnly(newValue);\n }\n }\n }\n\n get button() {\n return this.shadowRoot.querySelector('descope-button');\n }\n\n get input() {\n return this.shadowRoot.querySelector('input');\n }\n\n get title() {\n return this.shadowRoot.querySelector('.title-text');\n }\n\n get description() {\n return this.shadowRoot.querySelector('.description');\n }\n\n get icon() {\n return this.shadowRoot.querySelector('.icon');\n }\n\n updateTitle(val) {\n this.title.innerHTML = val;\n }\n\n updateDescription(val) {\n this.description.innerHTML = val;\n }\n\n updateButtonLabel(val) {\n this.button.innerHTML = val;\n }\n\n updateButtonSize(val) {\n this.button.setAttribute('size', val);\n }\n\n updateButtonMode(val) {\n this.button.setAttribute('mode', val);\n }\n\n updateButtonVariant(val) {\n this.button.setAttribute('variant', val);\n }\n\n updateInputAccept(val) {\n this.input.setAttribute('accept', val);\n }\n\n updateReadOnly(val) {\n if (val === 'true') {\n this.input.setAttribute('disabled', 'true');\n } else {\n this.input.removeAttribute('disabled');\n }\n }\n}\n\nconst buttonVars = ButtonClass.cssVarList;\nconst { host, wrapper, icon, title, description, requiredIndicator } = {\n host: { selector: () => ':host' },\n wrapper: { selector: () => ':host > div' },\n icon: { selector: () => '::slotted(*)' },\n title: { selector: () => '.title' },\n description: { selector: () => '.description' },\n requiredIndicator: { selector: () => '.title::after' },\n};\n\nexport const UploadFileClass = compose(\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') }),\n createStyleMixin({\n mappings: {\n fontSize: {},\n fontFamily: {},\n borderColor: {},\n borderWidth: {},\n borderStyle: {},\n borderRadius: {},\n hostHeight: { ...host, property: 'height' },\n hostWidth: { ...host, property: 'width' },\n hostPadding: { property: 'padding' },\n hostDirection: [\n { ...host, property: 'direction' },\n { selector: () => ButtonClass.componentName, property: buttonVars.hostDirection },\n ],\n gap: { ...wrapper },\n lineHeight: { ...wrapper, property: 'line-height' },\n titleFontSize: { ...title, property: 'font-size' },\n titleFontWeight: { ...title, property: 'font-weight' },\n descriptionFontSize: { ...description, property: 'font-size' },\n labelTextColor: [\n { ...title, property: 'color' },\n { ...description, property: 'color' },\n ],\n iconSize: { ...icon, property: 'width' },\n requiredIndicator: { ...requiredIndicator, property: 'content' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawUploadFile);\n","import { UploadFileClass } from '../../components/descope-upload-file/UploadFileClass';\nimport { refs } from './inputWrapper';\n\nconst vars = UploadFileClass.cssVarList;\n\nconst uploadFile = {\n [vars.hostDirection]: refs.direction,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.fontFamily]: refs.fontFamily,\n\n [vars.iconSize]: '2em',\n\n [vars.hostPadding]: '0.75em',\n [vars.gap]: '0.5em',\n\n [vars.fontSize]: '16px',\n [vars.titleFontWeight]: '500',\n [vars.lineHeight]: '1em',\n\n [vars.borderWidth]: refs.borderWidth,\n [vars.borderColor]: refs.borderColor,\n [vars.borderRadius]: refs.borderRadius,\n [vars.borderStyle]: 'dashed',\n\n _required: {\n [vars.requiredIndicator]: refs.requiredIndicator,\n },\n\n size: {\n xs: {\n [vars.hostHeight]: '196px',\n [vars.hostWidth]: '200px',\n [vars.titleFontSize]: '0.875em',\n [vars.descriptionFontSize]: '0.875em',\n [vars.lineHeight]: '1.25em',\n },\n sm: {\n [vars.hostHeight]: '216px',\n [vars.hostWidth]: '230px',\n [vars.titleFontSize]: '1em',\n [vars.descriptionFontSize]: '0.875em',\n [vars.lineHeight]: '1.25em',\n },\n md: {\n [vars.hostHeight]: '256px',\n [vars.hostWidth]: '312px',\n [vars.titleFontSize]: '1.125em',\n [vars.descriptionFontSize]: '1em',\n [vars.lineHeight]: '1.5em',\n },\n lg: {\n [vars.hostHeight]: '280px',\n [vars.hostWidth]: '336px',\n [vars.titleFontSize]: '1.125em',\n [vars.descriptionFontSize]: '1.125em',\n [vars.lineHeight]: '1.75em',\n },\n },\n\n _fullWidth: {\n [vars.hostWidth]: refs.width,\n },\n};\n\nexport default uploadFile;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../../mixins';\nimport { createBaseClass } from '../../../baseClasses/createBaseClass';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport { ButtonClass } from '../../descope-button/ButtonClass';\n\nexport const componentName = getComponentName('button-selection-group-item');\n\nclass RawSelectItem extends createBaseClass({\n componentName,\n baseSelector: ':host > descope-button',\n}) {\n get size() {\n return this.getAttribute('size') || 'md';\n }\n\n get variant() {\n return this.getAttribute('variant') || 'contained';\n }\n\n get value() {\n return this.getAttribute('value') || '';\n }\n\n set value(value) {\n this.setAttribute('value', value);\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n descope-button {\n max-width: 100%;\n }\n\t\t\tdescope-button > slot {\n\t\t\t\twidth: 100%;\n\t\t\t\toverflow: hidden;\n text-overflow: ellipsis;\n display: inline-block;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n max-width: 100%\n\t\t\t}\n\t\t</style>\n <descope-button variant=\"${this.variant}\" size=\"${this.size}\" mode=\"primary\">\n <slot></slot>\n </descope-button>\n\t`;\n\n forwardAttrs(this, this.baseElement, { includeAttrs: ['size', 'variant'] });\n forwardAttrs(this.baseElement, this, { includeAttrs: ['focused', 'active'] });\n }\n\n handleFocus() {\n this.shadowRoot.querySelector('descope-button')?.focus();\n }\n\n focus() {\n this.handleFocus();\n }\n\n init() {\n super.init();\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) {\n this.handleFocus();\n }\n });\n }\n}\n\nexport const ButtonSelectionGroupItemClass = compose(\n createStyleMixin({\n mappings: {\n hostDirection: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.hostDirection,\n },\n backgroundColor: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.backgroundColor,\n },\n labelTextColor: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.labelTextColor,\n },\n borderColor: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.borderColor,\n },\n borderWidth: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.borderWidth,\n },\n borderStyle: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.borderStyle,\n },\n borderRadius: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.borderRadius,\n },\n outlineColor: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.outlineColor,\n },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawSelectItem);\n","import { ButtonSelectionGroupItemClass } from '../../../components/button-selection-group-fields/descope-button-selection-group-item/ButtonSelectionGroupItemClass';\nimport { getThemeRefs } from '../../../helpers/themeHelpers';\nimport globals from '../../globals';\n\nconst globalRefs = getThemeRefs(globals);\n\nexport const vars = ButtonSelectionGroupItemClass.cssVarList;\n\nconst buttonSelectionGroupItem = {\n [vars.hostDirection]: 'inherit',\n [vars.backgroundColor]: globalRefs.colors.surface.main,\n [vars.labelTextColor]: globalRefs.colors.surface.contrast,\n [vars.borderColor]: globalRefs.colors.surface.light,\n [vars.borderStyle]: 'solid',\n [vars.borderRadius]: globalRefs.radius.sm,\n [vars.outlineColor]: 'transparent',\n [vars.borderWidth]: globalRefs.border.xs,\n\n _hover: {\n [vars.backgroundColor]: globalRefs.colors.surface.highlight,\n },\n\n _focused: {\n [vars.outlineColor]: globalRefs.colors.surface.light,\n },\n\n _selected: {\n [vars.borderColor]: globalRefs.colors.surface.contrast,\n [vars.backgroundColor]: globalRefs.colors.surface.contrast,\n [vars.labelTextColor]: globalRefs.colors.surface.main,\n },\n};\n\nexport default buttonSelectionGroupItem;\n","import { createBaseInputClass } from '../../baseClasses/createBaseInputClass';\nimport { observeAttributes } from '../../helpers/componentHelpers';\nimport { createDispatchEvent } from '../../helpers/mixinsHelpers';\n\nexport const createBaseButtonSelectionGroupInternalClass = (componentName) => {\n class BaseButtonSelectionGroupInternalClass extends createBaseInputClass({\n componentName,\n baseSelector: 'slot',\n }) {\n constructor() {\n super();\n\n this.innerHTML = `\n <style>\n slot {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n }\n </style>\n <slot part=\"wrapper\"></slot>\n `;\n }\n\n dispatchChange = createDispatchEvent.bind(this, 'change');\n\n get items() {\n return this.querySelector('slot').assignedElements();\n }\n\n get isReadonly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n get size() {\n return this.getAttribute('size') || 'md';\n }\n\n // eslint-disable-next-line getter-return, class-methods-use-this\n get value() {\n // eslint-disable-next-line no-console\n console.warn('get value', 'is not implemented');\n }\n\n // eslint-disable-next-line class-methods-use-this\n set value(value) {\n // eslint-disable-next-line no-console\n console.warn('set value', 'is not implemented');\n }\n\n onSizeChange() {\n this.items.forEach((item) => {\n item.setAttribute('size', this.size);\n });\n }\n\n onReadOnlyChange() {\n this.querySelector('slot').toggleAttribute('inert', this.isReadonly);\n }\n\n // eslint-disable-next-line class-methods-use-this\n getValidity() {\n // eslint-disable-next-line no-console\n console.warn('getValidity', 'is not implemented');\n }\n\n onObservedAttributeChange(attrs) {\n attrs.forEach((attr) => {\n switch (attr) {\n case 'size':\n this.onSizeChange();\n break;\n case 'readonly':\n this.onReadOnlyChange();\n break;\n default:\n break;\n }\n });\n }\n\n init() {\n // we are adding listeners before calling to super because it's stopping the events\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) {\n this.items[0]?.focus();\n }\n });\n\n super.init?.();\n\n observeAttributes(this, this.onObservedAttributeChange.bind(this), {\n includeAttrs: ['size', 'readonly'],\n });\n }\n }\n\n return BaseButtonSelectionGroupInternalClass;\n};\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { createBaseButtonSelectionGroupInternalClass } from '../createBaseButtonSelectionGroupInternalClass';\n\nexport const componentName = getComponentName('button-selection-group-internal');\n\nexport class ButtonSelectionGroupInternalClass extends createBaseButtonSelectionGroupInternalClass(\n componentName\n) {\n getSelectedNode() {\n return this.items.find((item) => item.hasAttribute('selected'));\n }\n\n get allowDeselect() {\n return this.getAttribute('allow-deselect') === 'true';\n }\n\n removeSelected() {\n this.getSelectedNode()?.removeAttribute('selected');\n }\n\n onClick(e) {\n if (e.target !== e.currentTarget) {\n if (e.target === this.getSelectedNode() && this.allowDeselect) {\n this.removeSelected();\n } else {\n this.setSelected(e.target);\n }\n this.dispatchChange();\n }\n }\n\n setSelected(node) {\n if (node !== this.getSelectedNode()) {\n this.removeSelected();\n node?.setAttribute('selected', 'true');\n }\n }\n\n get defaultValue() {\n return this.getAttribute('default-value');\n }\n\n setDefaultValue() {\n // we want to defer this action until all attributes are synched\n setTimeout(() => {\n if (this.defaultValue) {\n this.value = this.defaultValue;\n this.setCustomValidity();\n }\n });\n }\n\n get value() {\n return this.getSelectedNode()?.value || '';\n }\n\n set value(value) {\n const node = this.items.find((child) => child.value === value);\n this.setSelected(node);\n }\n\n getValidity() {\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n\n return {};\n }\n\n init() {\n super.init();\n\n this.setDefaultValue();\n\n this.querySelector('slot').addEventListener('click', this.onClick.bind(this));\n }\n}\n","import { observeAttributes, observeChildren } from '../../helpers/componentHelpers';\nimport {\n resetInputLabelPosition,\n resetInputCursor,\n resetInputFieldDefaultWidth,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const buttonSelectionGroupBaseMixin = (superclass) =>\n class ButtonSelectionGroupMixinClass extends superclass {\n // eslint-disable-next-line class-methods-use-this\n #renderItem = ({ value, label }) =>\n `<descope-button-selection-group-item value=\"${value}\">${label}</descope-button-selection-group-item>`;\n\n #data;\n\n get renderItem() {\n return this.#renderItem;\n }\n\n set renderItem(renderFn) {\n this.#renderItem = renderFn;\n this.renderItems();\n }\n\n get size() {\n return this.inputElement?.size;\n }\n\n get data() {\n if (this.#data) return this.#data;\n\n const dataAttr = this.getAttribute('data');\n\n if (dataAttr) {\n try {\n const data = JSON.parse(dataAttr);\n if (this.isValidDataType(data)) {\n return data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"data\" - ', e.message);\n }\n }\n\n return [];\n }\n\n set data(data) {\n if (this.isValidDataType(data)) {\n this.#data = data;\n this.renderItems();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data must be an array, received:', data);\n }\n\n return isValid;\n }\n\n getItemsTemplate() {\n return this.data?.reduce?.((acc, item) => acc + (this.renderItem?.(item || {}) || ''), '');\n }\n\n renderItems() {\n const template = this.getItemsTemplate();\n if (template) this.innerHTML = template;\n }\n\n init() {\n super.init?.();\n\n this.renderItems();\n\n observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });\n\n // we want new items to get the size\n observeChildren(this, ({ addedNodes }) => {\n addedNodes.forEach((node) => {\n node.setAttribute('size', this.size);\n });\n });\n }\n };\n\nconst { host, label, requiredIndicator, internalWrapper, errorMessage } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n internalWrapper: { selector: () => ':host [part=\"internal-component\"] slot' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const buttonSelectionGroupMappings = {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n fontFamily: host,\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n itemsSpacing: { ...internalWrapper, property: 'gap' },\n};\n\nexport const buttonSelectionGroupStyles = `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n\t\t\t}\n\t\t\t${resetInputFieldDefaultWidth()}\n\t\t\t:host::after {\n\t\t\t\tbackground-color: transparent;\n\t\t\t}\n\t\t\t:host::part(input-field)::after {\n\t\t\t\tbackground-color: transparent;\n\t\t\t}\n\n [part=\"internal-component\"] {\n\t\t\t\t-webkit-mask-image: none;\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n display: inline-block;\n\t\t\t\tmin-height: initial;\n\t\t\t}\n\n\t\t\tvaadin-text-field::part(input-field) {\n\t\t\t\tbackground-color: transparent;\n\t\t\t\tpadding: 0;\n\t\t\t\toverflow: hidden;\n\t\t\t\t-webkit-mask-image: none;\n\t\t\t}\n\n\t\t\tvaadin-text-field {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: 100%\n\t\t\t}\n\n\t\t\tvaadin-text-field::before {\n\t\t\t\theight: 0;\n\t\t\t}\n\n\t\t\tvaadin-text-field[readonly] > input:placeholder-shown {\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\tvaadin-text-field[readonly]::part(input-field)::after {\n\t\t\t\tborder: 0 solid;\n\t\t\t}\n\n\t\t\tvaadin-text-field::part(input-field) {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n ${resetInputLabelPosition('vaadin-text-field')}\n\t\t\t${resetInputCursor('vaadin-text-field')}\n `;\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../../mixins';\nimport { componentName as descopeInternalComponentName } from '../descope-button-selection-group-internal/ButtonSelectionGroupInternalClass';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport {\n buttonSelectionGroupBaseMixin,\n buttonSelectionGroupMappings,\n buttonSelectionGroupStyles,\n} from '../baseButtonSelectionGroup';\n\nexport const componentName = getComponentName('button-selection-group');\n\nconst buttonSelectionGroupMixin = (superclass) =>\n class ButtonMultiSelectionGroupMixinClass extends superclass {\n init() {\n super.init?.();\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n \tname=\"button-selection-group\"\n \tslot=\"input\"\n tabindex=\"-1\"\n part=\"internal-component\"\n >\n <slot></slot>\n </${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: ['size', 'default-value', 'allow-deselect'],\n });\n }\n };\n\nexport const ButtonSelectionGroupClass = compose(\n createStyleMixin({\n mappings: {\n ...buttonSelectionGroupMappings,\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin,\n buttonSelectionGroupBaseMixin,\n buttonSelectionGroupMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => buttonSelectionGroupStyles,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nexport default ButtonSelectionGroupClass;\n","import { getThemeRefs } from '../../../helpers/themeHelpers';\nimport globals from '../../globals';\nimport { refs } from '../inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\n\nexport const createBaseButtonSelectionGroupMappings = (vars) => ({\n [vars.hostDirection]: refs.direction,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.itemsSpacing]: globalRefs.spacing.sm,\n [vars.hostWidth]: refs.width,\n});\n","import { ButtonSelectionGroupClass } from '../../../components/button-selection-group-fields/descope-button-selection-group/ButtonSelectionGroupClass';\nimport { createBaseButtonSelectionGroupMappings } from './baseButtonSelectionGroup';\n\nconst vars = ButtonSelectionGroupClass.cssVarList;\n\nconst buttonSelectionGroup = {\n ...createBaseButtonSelectionGroupMappings(vars),\n};\n\nexport default buttonSelectionGroup;\nexport { vars };\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { createBaseButtonSelectionGroupInternalClass } from '../createBaseButtonSelectionGroupInternalClass';\n\nexport const componentName = getComponentName('button-multi-selection-group-internal');\n\nexport class ButtonMultiSelectionGroupInternalClass extends createBaseButtonSelectionGroupInternalClass(\n componentName\n) {\n #getSelectedNodes() {\n return this.items.filter((item) => item.hasAttribute('selected'));\n }\n\n onClick(e) {\n if (e.target !== e.currentTarget) {\n if (this.#getSelectedNodes().includes(e.target)) {\n e.target.removeAttribute('selected');\n } else {\n e.target.setAttribute('selected', 'true');\n }\n this.dispatchChange();\n }\n }\n\n get value() {\n return this.#getSelectedNodes().map((node) => node.value);\n }\n\n set value(values) {\n this.items.forEach((item) => {\n if (values.includes(item.value)) {\n item.setAttribute('selected', 'true');\n } else {\n item.removeAttribute('selected');\n }\n });\n }\n\n get minItemsSelection() {\n return parseInt(this.getAttribute('min-items-selection'), 10) || 0;\n }\n\n get maxItemsSelection() {\n return parseInt(this.getAttribute('max-items-selection'), 10) || 0;\n }\n\n // eslint-disable-next-line class-methods-use-this\n #isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('default-values must be an array, received:', data);\n }\n\n return isValid;\n }\n\n get defaultValues() {\n const defaultValuesAttr = this.getAttribute('default-values');\n if (defaultValuesAttr) {\n try {\n const defaultValues = JSON.parse(defaultValuesAttr);\n if (this.#isValidDataType(defaultValues)) {\n return defaultValues;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"default-values\" -', e.message);\n }\n }\n return [];\n }\n\n setDefaultValues() {\n // we want to defer this action until all attributes are synced\n setTimeout(() => {\n if (this.defaultValues) {\n this.value = this.defaultValues;\n this.setCustomValidity();\n }\n });\n }\n\n getValidity() {\n if (this.isRequired && !this.value.length) {\n return { valueMissing: true };\n }\n // If the field is not required, no minimum selection can be set\n if (this.isRequired && this.minItemsSelection && this.value.length < this.minItemsSelection) {\n return {\n rangeUnderflow: true,\n };\n }\n if (this.maxItemsSelection && this.value.length > this.maxItemsSelection) {\n return {\n rangeOverflow: true,\n };\n }\n return {};\n }\n\n init() {\n super.init();\n\n this.setDefaultValues();\n\n this.querySelector('slot').addEventListener('click', this.onClick.bind(this));\n }\n}\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../../mixins';\nimport { componentName as descopeInternalComponentName } from '../descope-button-multi-selection-group-internal/ButtonMultiSelectionGroupInternalClass';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport {\n buttonSelectionGroupBaseMixin,\n buttonSelectionGroupMappings,\n buttonSelectionGroupStyles,\n} from '../baseButtonSelectionGroup';\n\nexport const componentName = getComponentName('button-multi-selection-group');\n\nconst buttonMultiSelectionGroupMixin = (superclass) =>\n class ButtonMultiSelectionGroupMixinClass extends superclass {\n init() {\n super.init?.();\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n \tname=\"button-selection-group\"\n \tslot=\"input\"\n tabindex=\"-1\"\n part=\"internal-component\"\n >\n <slot></slot>\n </${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: ['size', 'default-values', 'min-items-selection', 'max-items-selection'],\n });\n }\n };\n\nexport const ButtonMultiSelectionGroupClass = compose(\n createStyleMixin({\n mappings: {\n ...buttonSelectionGroupMappings,\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin,\n buttonSelectionGroupBaseMixin,\n buttonMultiSelectionGroupMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => buttonSelectionGroupStyles,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nexport default ButtonMultiSelectionGroupClass;\n","import { ButtonMultiSelectionGroupClass } from '../../../components/button-selection-group-fields/descope-button-multi-selection-group/ButtonMultiSelectionGroupClass';\nimport { createBaseButtonSelectionGroupMappings } from './baseButtonSelectionGroup';\n\nconst vars = ButtonMultiSelectionGroupClass.cssVarList;\n\nconst buttonMultiSelectionGroup = {\n ...createBaseButtonSelectionGroupMappings(vars),\n};\n\nexport default buttonMultiSelectionGroup;\nexport { vars };\n","import { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n portalMixin,\n} from '../../mixins';\n\nexport const componentName = getComponentName('modal');\n\nconst customMixin = (superclass) =>\n class ModalMixinClass extends superclass {\n get opened() {\n return this.getAttribute('opened') === 'true';\n }\n\n handleOpened() {\n forwardAttrs(this, this.baseElement, { includeAttrs: ['opened'] });\n if (this.opened) {\n this.style.display = '';\n } else {\n this.style.display = 'none';\n }\n }\n\n init() {\n super.init?.();\n this.style.display = 'none';\n\n // vaadin-dialog might not be loaded in time\n // in order to make sure it's loaded before this block is running\n // we are wrapping it with setTimeout\n setTimeout(() => {\n // we want to sync descope-modal content through vaadin-dialog into the overlay\n // so we are adding a slot to the overlay, which allows us to forward the content from\n // vaadin-dialog to vaadin-dialog-overlay\n this.baseElement.shadowRoot\n .querySelector('vaadin-dialog-overlay')\n .appendChild(document.createElement('slot'));\n\n this.#overrideOverlaySettings();\n\n // we need to always open the modal in `opened=false`\n // to prevent it from rendering outside the dialog\n // first, we have to run `overrideOverlaySettings` to setup\n // the component.\n this.handleOpened();\n });\n }\n\n // the default vaadin behavior is to attach the overlay to the body when opened\n // we do not want that because it's difficult to style the overlay in this way\n // so we override it to open inside the shadow DOM\n #overrideOverlaySettings() {\n const overlay = this.baseElement.shadowRoot.querySelector('vaadin-dialog-overlay');\n\n overlay._attachOverlay = () => {\n overlay.bringToFront();\n this.baseElement.setAttribute('style', 'display:flex!important;');\n };\n overlay._detachOverlay = () => {\n this.baseElement.style.display = 'none';\n };\n overlay._enterModalState = () => {};\n\n overlay.close = () => false;\n }\n };\n\nexport const ModalClass = compose(\n createStyleMixin({\n mappings: {\n overlayBackgroundColor: { property: () => ModalClass.cssVarList.overlay.backgroundColor },\n overlayShadow: { property: () => ModalClass.cssVarList.overlay.shadow },\n overlayWidth: { property: () => ModalClass.cssVarList.overlay.width },\n },\n }),\n portalMixin({\n name: 'overlay',\n selector: '',\n mappings: {\n hostDisplay: {\n selector: () => ':host(.descope-modal)',\n property: 'display',\n important: true,\n },\n backgroundColor: [\n { selector: () => '::part(content)', property: 'background-color' },\n { selector: () => '::part(overlay)', property: 'background-color' },\n ],\n width: { selector: () => '::part(overlay)', property: 'width' },\n shadow: { selector: () => '::part(overlay)', property: 'box-shadow' },\n },\n forward: {\n include: false,\n attributes: ['opened'],\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [''],\n wrappedEleName: 'vaadin-dialog',\n style: () => ``,\n excludeAttrsSync: ['tabindex', 'opened'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { ModalClass } from '../../components/descope-modal/ModalClass';\n\nconst globalRefs = getThemeRefs(globals);\n\nconst compVars = ModalClass.cssVarList;\n\nconst modal = {\n [compVars.overlayBackgroundColor]: globalRefs.colors.surface.main,\n [compVars.overlayShadow]: globalRefs.shadow.wide['2xl'],\n [compVars.overlayWidth]: '540px',\n};\n\nexport default modal;\n\nexport const vars = {\n ...compVars,\n};\n","import { toTitle } from '../../helpers';\n\nexport const isValidDataType = (data) => {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data must be an array, received:', data);\n }\n\n return isValid;\n};\n\nexport const isPlainObject = (value) => value?.constructor === Object;\n\nconst isXml = (str) => /^\\s*<[\\s\\S]*>/.test(str);\n\nconst escapeXML = (s) => {\n const dom = document.createElement('div');\n dom.textContent = s;\n return dom.innerHTML;\n};\n\nexport const getValueType = (value) => {\n if (isPlainObject(value)) return 'object';\n if (Array.isArray(value)) return 'array';\n if (isXml(value)) return 'xml';\n\n return 'text';\n};\n\nexport const renderCodeSnippet = (value, lang) =>\n `<descope-code-snippet lang=\"${lang}\" class=\"row-details__value code\">${value}</descope-code-snippet>`;\n\nexport const renderText = (text) =>\n `<div class=\"row-details__value text\" title=\"${text}\">${text}</div>`;\nconst renderJson = (value) => renderCodeSnippet(JSON.stringify(value, null, 2), 'json');\nconst renderXml = (value) => renderCodeSnippet(escapeXML(value), 'xml');\n\nconst defaultRowDetailsValueRenderer = (value) => {\n const valueType = getValueType(value);\n\n if (valueType === 'object') {\n return renderJson(value);\n }\n\n if (valueType === 'xml') {\n return renderXml(value);\n }\n\n if (valueType === 'array') {\n if (value.some((v) => getValueType(v) === 'object')) {\n return renderJson(value);\n }\n return renderText(value.join(',\\n'));\n }\n\n return renderText(value);\n};\n\nexport const defaultRowDetailsRenderer = (item, itemLabelsMapping) => {\n return `\n <div class=\"row-details\">\n ${Object.entries(item)\n .map(\n ([key, value]) =>\n `<div class=\"row-details__item\" >\n <div class=\"row-details__label\">${itemLabelsMapping[key] || toTitle(key)}</div>\n ${defaultRowDetailsValueRenderer(value)}\n </div>`\n )\n .join('\\n')}\n</div>\n `;\n};\n","import { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '../../mixins';\n\nimport { defaultRowDetailsRenderer, isValidDataType } from './helpers';\n\nexport const componentName = getComponentName('grid');\n\nconst GridMixin = (superclass) =>\n class GridMixinClass extends superclass {\n #columns;\n\n init() {\n super.init?.();\n this.handleColumns();\n this.forwardSelectedItemsChange();\n\n // disable the grid sort\n this.baseElement._mapSorters = () => {};\n\n // there is an issue in vaadin that on some cases when trying to render the details panel, the row is null and this fn throwing\n // so we override it to prevent the error\n const origUpdateDetailsCellHeight = this.baseElement._updateDetailsCellHeight;\n this.baseElement._updateDetailsCellHeight = (row) => {\n if (!row) return;\n origUpdateDetailsCellHeight.call(this.baseElement, row);\n };\n\n this.baseElement.rowDetailsRenderer = this.#rowDetailsRenderer.bind(this);\n }\n\n // this renders the details panel content\n // in order to open it, the descope-grid-item-details-column should be used\n #rowDetailsRenderer = async (cell, _col, model) => {\n // prevent details panel from being scrolled into view when clicked\n cell.addEventListener('mousedown', (e) => e.stopImmediatePropagation(), true);\n\n const template = this.getRowDetailsTemplate(model.item);\n\n // eslint-disable-next-line no-param-reassign\n cell.innerHTML = '';\n cell.append(template.content.cloneNode(true));\n };\n\n getRowDetailsTemplate(item) {\n const itemLabelsMapping = this.#columns.reduce(\n (acc, { path, header }) => (!path || !header ? acc : { ...acc, [path]: header }),\n {}\n );\n const template =\n this.rowDetailsRenderer?.(item, itemLabelsMapping) ??\n defaultRowDetailsRenderer(item, itemLabelsMapping);\n\n switch (true) {\n case template instanceof HTMLTemplateElement:\n return template;\n case typeof template === 'string':\n return Object.assign(document.createElement('template'), { innerHTML: template });\n default:\n throw new Error('rowDetailsRenderer should return a string or a template');\n }\n }\n\n forwardSelectedItemsChange() {\n this.baseElement.addEventListener('selected-items-changed', (e) => {\n this.dispatchEvent(\n new CustomEvent('selected-items-changed', {\n bubbles: true,\n composed: true,\n detail: e.detail,\n })\n );\n });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'columns') {\n this.setColumnsDataFromAttr();\n }\n }\n\n handleColumns() {\n if (this.columnsAttr) {\n this.setColumnsDataFromAttr();\n } else if (this.children.length) {\n this.setColumnsFromChildren();\n }\n }\n\n setColumnsFromChildren() {\n this.#columns = Array.from(this.children).map((child) => {\n return {\n path: child.getAttribute('path'),\n header: child.getAttribute('header'),\n type: child.localName.match('^descope-grid-(\\\\w+)-column$')?.[1] || 'text',\n\n attrs: ['frozen', 'resizable', 'auto-width', 'status'].reduce((acc, attrName) => {\n const attrVal = child.getAttribute(attrName);\n\n if (attrVal) {\n acc[attrName] = attrVal;\n }\n\n return acc;\n }, {}),\n };\n });\n }\n\n get columnsAttr() {\n return this.getAttribute('columns');\n }\n\n setColumnsDataFromAttr() {\n try {\n const data = JSON.parse(this.columnsAttr);\n if (isValidDataType(data)) {\n this.columns = data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"columns\" -', e.message);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n #renderColumn = ({ path, header, type, attrs }) => {\n const colAttrs = Object.entries(attrs)\n .map(([key, value]) => `${key}=\"${value}\"`)\n .join(' ');\n\n const tagName = `descope-grid-${type}-column`;\n\n return `<${tagName} header=\"${header}\" path=\"${path}\" ${colAttrs}></${tagName}>`;\n };\n\n get renderColumn() {\n return this.#renderColumn;\n }\n\n set renderColumn(renderFn) {\n this.#renderColumn = renderFn;\n this.renderColumns();\n }\n\n getColumnsTemplate() {\n return this.#columns?.reduce?.(\n (acc, item) => acc + (this.renderColumn?.(item || {}) || ''),\n ''\n );\n }\n\n // there is an issue in vaadin-grid, when rowDetailsRenderer is set, it renders an empty details panel\n reassignRowDetailsRenderer() {\n this.baseElement.rowDetailsRenderer = null;\n setTimeout(() => {\n this.baseElement.rowDetailsRenderer = this.#rowDetailsRenderer.bind(this);\n }, 0);\n }\n\n renderColumns() {\n const template = this.getColumnsTemplate();\n if (template) {\n this.reassignRowDetailsRenderer();\n this.innerHTML = template;\n }\n }\n\n get grid() {\n return this.shadowRoot.querySelector('vaadin-grid');\n }\n\n get data() {\n return this.grid.items;\n }\n\n set data(data) {\n if (isValidDataType(data) && this.grid.items !== data) {\n this.grid.items = data;\n\n if (this.grid.selectedItems) {\n const itemsIds = new Set(\n this.grid.items.map((item) => item[this.uniqueColumnId] ?? item)\n );\n\n const newSelectedItems = this.grid.selectedItems.filter((selectedItem) =>\n itemsIds.has(selectedItem[this.uniqueColumnId] ?? selectedItem)\n );\n\n // we want to update the selected items only if there is a reason,\n // to prevent redundant notifications\n if (this.grid.selectedItems.length !== newSelectedItems.length) {\n this.grid.selectedItems = newSelectedItems;\n }\n }\n }\n }\n\n get columns() {\n return this.#columns;\n }\n\n set columns(data) {\n this.#columns = data;\n this.renderColumns();\n }\n\n get paths() {\n return this.columns.map((col) => col.path);\n }\n\n get uniqueColumnId() {\n return this.getAttribute('unique-column-id');\n }\n };\n\nconst {\n host,\n headerRow,\n headerRowCell,\n contentRow,\n firstRow,\n sortIndicators,\n activeSortIndicator,\n selectedRow,\n rowSeparator,\n resizeHandle,\n toggleDetailsPanelButton,\n toggleDetailsPanelButtonOpened,\n toggleDetailsPanelButtonClosed,\n detailsPanel,\n detailsPanelLabels,\n selectedRowCell,\n detailsPanelContent,\n} = {\n host: { selector: () => 'vaadin-grid' },\n headerRow: { selector: () => '::part(header-cell)' },\n headerRowCell: { selector: () => 'vaadin-grid::part(header-cell)' },\n contentRow: { selector: () => '::part(cell)' },\n firstRow: { selector: () => '::part(first-header-row-cell)' },\n selectedRow: { selector: () => '::part(selected-row)' },\n selectedRowCell: { selector: () => '::part(selected-row-cell)' },\n sortIndicators: { selector: () => 'vaadin-grid-sorter::part(indicators)' },\n activeSortIndicator: { selector: () => 'vaadin-grid-sorter[direction]' },\n rowSeparator: { selector: () => 'vaadin-grid::part(body-cell)' },\n resizeHandle: { selector: () => '::part(resize-handle)' },\n toggleDetailsPanelButton: { selector: () => 'vaadin-grid vaadin-icon.toggle-details-button' },\n toggleDetailsPanelButtonOpened: {\n selector: () => 'vaadin-grid vaadin-icon.toggle-details-button.opened',\n },\n toggleDetailsPanelButtonClosed: {\n selector: () => 'vaadin-grid vaadin-icon.toggle-details-button.closed',\n },\n detailsPanel: { selector: () => 'vaadin-grid::part(details-cell)' },\n detailsPanelLabels: { selector: () => 'vaadin-grid .row-details__label' },\n detailsPanelContent: { selector: () => 'vaadin-grid .row-details' },\n};\n\nexport const GridClass = compose(\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') }),\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostHeight: { selector: () => ':host', property: 'height' },\n hostMinHeight: { selector: () => ':host', property: 'min-height' },\n fontFamily: [{ ...headerRow }, { ...contentRow }],\n fontSize: [{ ...headerRow }, { ...contentRow }],\n fontWeight: { ...contentRow },\n valueTextColor: { ...contentRow, property: 'color' },\n backgroundColor: [\n { ...host, property: 'background-color' },\n { ...contentRow, property: 'background-color' },\n ],\n sortIndicatorsColor: { ...sortIndicators, property: 'color' },\n activeSortIndicator: { ...activeSortIndicator, property: 'color' },\n borderColor: { ...host, property: 'border-color' },\n borderWidth: { ...host, property: 'border-width' },\n borderStyle: { ...host, property: 'border-style' },\n borderRadius: { ...host, property: 'border-radius' },\n selectedBackgroundColor: [\n { ...selectedRow, property: 'background-color' },\n { ...selectedRowCell, property: 'background-color' },\n ],\n headerRowTextColor: { ...headerRowCell, property: 'color' },\n separatorColor: [\n { ...firstRow, property: 'border-bottom-color' },\n { ...rowSeparator, property: 'border-top-color' },\n ],\n resizeHandleColor: { ...resizeHandle, property: 'background-color' },\n hostDirection: { ...host, property: 'direction', fallback: 'ltr' },\n toggleDetailsPanelButtonSize: [\n { ...toggleDetailsPanelButton, property: 'width' },\n { ...toggleDetailsPanelButton, property: 'height' },\n ],\n toggleDetailsPanelButtonOpenedColor: { ...toggleDetailsPanelButtonOpened, property: 'color' },\n toggleDetailsPanelButtonClosedColor: { ...toggleDetailsPanelButtonClosed, property: 'color' },\n toggleDetailsPanelButtonCursor: { ...toggleDetailsPanelButton, property: 'cursor' },\n detailsPanelBackgroundColor: { ...detailsPanel, property: 'background-color' },\n detailsPanelBorderTopColor: { ...detailsPanel, property: 'border-top-color' },\n detailsPanelLabelsColor: { ...detailsPanelLabels, property: 'color' },\n detailsPanelLabelsFontSize: { ...detailsPanelLabels, property: 'font-size' },\n detailsPanelItemsGap: { ...detailsPanelContent, property: 'grid-gap' },\n detailsPanelPadding: { ...detailsPanelContent, property: 'padding' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n GridMixin\n)(\n createProxy({\n delegatesFocus: false,\n slots: [''],\n wrappedEleName: 'vaadin-grid',\n style: () => `\n /*css*/\n vaadin-grid {\n overflow: hidden;\n height: 100%;\n min-height: 300px;\n }\n vaadin-grid-cell-content {\n display: flex;\n }\n vaadin-grid::part(selected-row-cell) {\n background-image: none;\n box-shadow: none;\n background-color: inherit;\n }\n vaadin-grid::part(details-cell) {\n border-top-style: dashed;\n border-top-width: 1px;\n }\n vaadin-grid .row-details {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max(200px, calc(100%/4 - var(${GridClass.cssVarList.detailsPanelItemsGap}))), 1fr));\n width: 100%;\n }\n vaadin-grid .row-details__item:has(.row-details__value.code) {\n grid-column: 1 / -1;\n order: 2;\n }\n vaadin-grid .row-details__value.text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: pre;\n }\n vaadin-grid .row-details__value.code {\n margin-top: 5px;\n max-height: 120px;\n overflow: scroll;\n font-size: 0.85em;\n }\n vaadin-grid vaadin-icon.toggle-details-button {\n margin: auto;\n }\n /*!css*/\n\t\t`,\n excludeAttrsSync: ['columns', 'tabindex'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { GridClass } from '../../components/descope-grid/GridClass';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = GridClass.cssVarList;\n\nexport const grid = {\n [vars.hostWidth]: '100%',\n [vars.hostHeight]: '100%',\n [vars.hostMinHeight]: '400px',\n [vars.fontWeight]: '400',\n [vars.backgroundColor]: globalRefs.colors.surface.main,\n\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n\n [vars.sortIndicatorsColor]: globalRefs.colors.surface.light,\n [vars.activeSortIndicator]: globalRefs.colors.surface.dark,\n [vars.resizeHandleColor]: globalRefs.colors.surface.light,\n\n [vars.borderWidth]: refs.borderWidth,\n [vars.borderStyle]: refs.borderStyle,\n [vars.borderRadius]: refs.borderRadius,\n [vars.borderColor]: 'transparent',\n\n [vars.headerRowTextColor]: globalRefs.colors.surface.dark,\n [vars.separatorColor]: globalRefs.colors.surface.light,\n\n [vars.valueTextColor]: globalRefs.colors.surface.contrast,\n [vars.selectedBackgroundColor]: globalRefs.colors.surface.highlight,\n [vars.hostDirection]: globalRefs.direction,\n\n [vars.toggleDetailsPanelButtonSize]: '1em',\n [vars.toggleDetailsPanelButtonOpenedColor]: globalRefs.colors.surface.contrast,\n [vars.toggleDetailsPanelButtonClosedColor]: globalRefs.colors.surface.light,\n [vars.toggleDetailsPanelButtonCursor]: 'pointer',\n [vars.detailsPanelBackgroundColor]: globalRefs.colors.surface.highlight,\n [vars.detailsPanelBorderTopColor]: globalRefs.colors.surface.light,\n [vars.detailsPanelLabelsColor]: globalRefs.colors.surface.dark,\n [vars.detailsPanelLabelsFontSize]: '0.8em',\n [vars.detailsPanelItemsGap]: '2em',\n [vars.detailsPanelPadding]: '12px 0',\n\n _bordered: {\n [vars.borderColor]: refs.borderColor,\n },\n};\n\nexport default grid;\nexport { vars };\n","import { compose } from '../../../helpers';\nimport { getComponentName } from '../../../helpers/componentHelpers';\nimport { createStyleMixin, createProxy } from '../../../mixins';\n\nexport const componentName = getComponentName('notification-card');\n\nconst notificationCardMixin = (superclass) =>\n class NotificationCardMixinClass extends superclass {\n close() {\n // if animation is not applied to the element, the node will not be removed\n // from the DOM. We should avoid that. So, if in any case we allow\n // customizing the animation - we should check if animation is applied\n // and if it's not applied - remove the element from the DOM and dispatch\n // `card-closed` event.\n this.baseElement.addEventListener('animationend', () => {\n this.remove();\n this.dispatchEvent(new Event('card-closed'));\n });\n\n this.setAttribute('opened', 'false');\n }\n\n constructor() {\n super();\n\n this.baseElement.innerHTML = `\n <div part=\"root\">\n <div part=\"content\">\n <slot></slot>\n </div>\n <div part=\"close\">\n <slot name=\"close\"></slot>\n </div>\n </div>\n `;\n\n this.closeEle = this.shadowRoot.querySelector('[part=\"close\"]');\n }\n\n init() {\n super.init?.();\n\n this.closeEle.onclick = () => {\n this.close();\n };\n }\n };\n\nconst selectors = {\n content: () => 'vaadin-notification-card::part(content)',\n overlay: () => 'vaadin-notification-card::part(overlay)',\n};\n\nexport const NotificationCardClass = compose(\n createStyleMixin({\n mappings: {\n hostMinWidth: { selector: selectors.content, property: 'min-width' },\n fontFamily: {},\n fontSize: {},\n backgroundColor: { selector: selectors.content },\n textColor: { property: 'color' },\n boxShadow: {},\n borderWidth: { selector: selectors.content, property: 'border-width' },\n borderColor: { selector: selectors.content, property: 'border-color' },\n borderStyle: { selector: selectors.content, property: 'border-style' },\n borderRadius: [\n { selector: selectors.content, property: 'border-radius' },\n { selector: selectors.overlay, property: 'border-radius' },\n ],\n verticalPadding: [\n { selector: selectors.content, property: 'padding-top' },\n { selector: selectors.content, property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { selector: selectors.content, property: 'padding-right' },\n { selector: selectors.content, property: 'padding-left' },\n ],\n },\n }),\n notificationCardMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-notification-card',\n style: () => `\n vaadin-notification-card {\n box-shadow: none;\n }\n ::part(overlay) {\n box-shadow: none;\n background: none;\n }\n\n [part=\"close\"] {\n cursor: pointer;\n display: flex;\n }\n\n [part=\"content\"] {\n display: flex;\n align-items: center;\n flex-grow: 1;\n }\n\n [part=\"root\"] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n }\n `,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { NotificationCardClass } from '../../components/descope-notification/descope-notification-card/NotificationCardClass';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = NotificationCardClass.cssVarList;\n\nconst shadowColor = '#00000020';\n\nconst notification = {\n [vars.hostMinWidth]: '415px',\n [vars.fontFamily]: globalRefs.fonts.font1.family,\n [vars.fontSize]: globalRefs.typography.body1.size,\n [vars.backgroundColor]: globalRefs.colors.surface.main,\n [vars.textColor]: globalRefs.colors.surface.contrast,\n [vars.boxShadow]: `${globalRefs.shadow.wide.xl} ${shadowColor}, ${globalRefs.shadow.narrow.xl} ${shadowColor}`,\n [vars.verticalPadding]: '0.625em',\n [vars.horizontalPadding]: '1.5em',\n [vars.borderRadius]: globalRefs.radius.xs,\n\n _bordered: {\n [vars.borderWidth]: globalRefs.border.sm,\n [vars.borderStyle]: 'solid',\n [vars.borderColor]: 'transparent',\n },\n\n size: {\n xs: { [vars.fontSize]: '12px' },\n sm: { [vars.fontSize]: '14px' },\n md: { [vars.fontSize]: '16px' },\n lg: { [vars.fontSize]: '18px' },\n },\n\n mode: {\n primary: {\n [vars.backgroundColor]: globalRefs.colors.primary.main,\n [vars.textColor]: globalRefs.colors.primary.contrast,\n [vars.borderColor]: globalRefs.colors.primary.light,\n },\n success: {\n [vars.backgroundColor]: globalRefs.colors.success.main,\n [vars.textColor]: globalRefs.colors.success.contrast,\n [vars.borderColor]: globalRefs.colors.success.light,\n },\n error: {\n [vars.backgroundColor]: globalRefs.colors.error.main,\n [vars.textColor]: globalRefs.colors.error.contrast,\n [vars.borderColor]: globalRefs.colors.error.light,\n },\n },\n};\n\nexport default notification;\nexport { vars };\n","import { compose, compareArraysUnordered } from '../../helpers';\nimport {\n forwardAttrs,\n getComponentName,\n observeAttributes,\n observeChildren,\n} from '../../helpers/componentHelpers';\nimport {\n resetInputLabelPosition,\n resetInputCursor,\n resetInputPlaceholder,\n resetInputReadonlyStyle,\n useHostExternalPadding,\n inputFloatingLabelStyle,\n} from '../../helpers/themeHelpers/resetHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n portalMixin,\n proxyInputMixin,\n changeMixin,\n} from '../../mixins';\n\nexport const componentName = getComponentName('multi-select-combo-box');\n\nconst multiSelectComboBoxMixin = (superclass) =>\n class MultiSelectComboBoxMixinClass extends superclass {\n static get observedAttributes() {\n return ['readonly'];\n }\n\n // eslint-disable-next-line class-methods-use-this\n #renderItem = ({ displayName, value, label }) => {\n return `<span data-name=\"${label}\" data-id=\"${value}\">${displayName || label}</span>`;\n };\n\n #data;\n\n #value = [];\n\n get defaultValues() {\n const defaultValuesAttr = this.getAttribute('default-values');\n if (defaultValuesAttr) {\n try {\n const defaultValues = JSON.parse(defaultValuesAttr);\n if (this.isValidDataType(defaultValues)) {\n return defaultValues;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"default-values\" -', e.message);\n }\n }\n return [];\n }\n\n get renderItem() {\n return this.#renderItem;\n }\n\n set renderItem(renderFn) {\n this.#renderItem = renderFn;\n this.renderItems();\n }\n\n get data() {\n if (this.#data) return this.#data;\n\n const dataAttr = this.getAttribute('data');\n\n if (dataAttr) {\n try {\n const data = JSON.parse(dataAttr);\n if (this.isValidDataType(data)) {\n return data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"data\" -', e.message);\n }\n }\n\n return [];\n }\n\n set data(data) {\n if (this.isValidDataType(data)) {\n this.#data = data;\n this.renderItems();\n }\n }\n\n get allowCustomValues() {\n return this.getAttribute('allow-custom-value') === 'true';\n }\n\n get minItemsSelection() {\n return parseInt(this.getAttribute('min-items-selection'), 10) || 0;\n }\n\n get maxItemsSelection() {\n return parseInt(this.getAttribute('max-items-selection'), 10) || 0;\n }\n\n // eslint-disable-next-line class-methods-use-this\n isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data and default-values must be an array, received:', data);\n }\n\n return isValid;\n }\n\n getItemsTemplate() {\n return this.data?.reduce?.((acc, item) => acc + (this.renderItem?.(item || {}) || ''), '');\n }\n\n renderItems() {\n const template = this.getItemsTemplate();\n if (template) this.innerHTML = template;\n }\n\n updateSelectedItems() {\n // This is a list of all the selected items, including ones that may have been removed from the DOM\n const currentSelected =\n this.baseElement.selectedItems?.map((item) => item.getAttribute('data-id')) || [];\n\n // if there are selected items, we want to trigger a potential update to the value if some child elements were removed\n if (currentSelected.length > 0) {\n // setting the value checks that the selected items are still in the DOM and will not set the value if they are not\n this.value = currentSelected;\n }\n\n // otherwise, if default value is specified, set default value as selected item\n if (this.value.length === 0) {\n this.setDefaultValues();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n customValueTransformFn(val) {\n return val;\n }\n\n // We want to override Vaadin's Combo Box value setter. This is needed since Vaadin couples between the\n // field that it searches the value, and the finaly display value of the input.\n // We provide a custom transform function to override that behavior.\n setComboBoxDescriptor() {\n const valueDescriptor = Object.getOwnPropertyDescriptor(\n this.inputElement.constructor.prototype,\n 'value'\n );\n\n const comboBox = this;\n\n Object.defineProperties(this.inputElement, {\n value: {\n ...valueDescriptor,\n set(val) {\n const transformedValue = comboBox.customValueTransformFn(val) || '';\n\n if (transformedValue === this.value) {\n return;\n }\n\n valueDescriptor.set.call(this, transformedValue);\n },\n },\n });\n }\n\n // To prevent duplicate items for the multi select options, we dedup them based on the \"data-id\" attribute\n // eslint-disable-next-line class-methods-use-this\n #dedupItems(items) {\n return Array.from(\n new Map(items.map((item) => [item.getAttribute('data-id'), item])).values()\n );\n }\n\n // vaadin api is to set props on their combo box node,\n // in order to avoid it, we are passing the children of this component\n // to the items & renderer props, so it will be used as the combo box items\n #onChildrenChange() {\n const items = Array.from(this.children);\n const dedupItems = this.#dedupItems(items);\n\n // we want the data-name attribute to be accessible as an object attribute\n if (items.length) {\n this.removeAttribute('has-no-options');\n\n dedupItems.forEach((node) => {\n Object.defineProperty(node, 'data-name', {\n value: node.getAttribute('data-name'),\n configurable: true,\n writable: true,\n });\n Object.defineProperty(node, 'data-id', {\n value: node.getAttribute('data-id'),\n configurable: true,\n writable: true,\n });\n });\n\n this.baseElement.items = dedupItems;\n\n setTimeout(() => {\n // set timeout to ensure this runs after customValueTransformFn had the chance to be overriden\n this.updateSelectedItems();\n }, 0);\n } else {\n this.baseElement.items = [];\n this.setAttribute('has-no-options', '');\n }\n\n // use vaadin combobox custom renderer to render options as HTML\n // and not via default renderer, which renders only the data-name's value\n // in its own HTML template\n this.baseElement.renderer = (root, combo, model) => {\n // eslint-disable-next-line no-param-reassign\n root.innerHTML = model.item.outerHTML;\n };\n }\n\n // the default vaadin behavior is to attach the overlay to the body when opened\n // we do not want that because it's difficult to style the overlay in this way\n // so we override it to open inside the shadow DOM\n #overrideOverlaySettings() {\n const overlay = this.baseElement.shadowRoot\n .querySelector('vaadin-multi-select-combo-box-internal')\n .shadowRoot.querySelector('vaadin-multi-select-combo-box-overlay');\n overlay._attachOverlay = () => {\n overlay.bringToFront();\n };\n overlay._detachOverlay = () => {};\n overlay._enterModalState = () => {};\n }\n\n #handleCustomValues() {\n if (this.allowCustomValues) {\n this.baseElement.addEventListener('custom-value-set', (e) => {\n const newItemHtml = this.#renderItem({\n label: e.detail,\n displayName: e.detail,\n value: e.detail,\n });\n this.innerHTML += newItemHtml;\n // The internal filter needs to be removed, otherwise there's a bug where a new custom item\n // added can't be removed from the dropdown because of how the vaadin component is implemented\n this.baseElement._lastFilter = '';\n // The value needs to be set with a timeout because it needs to execute after\n // the custom value is added to items by the children change observer\n setTimeout(() => {\n this.value = [...this.value, e.detail];\n }, 0);\n });\n }\n }\n\n setGetValidity() {\n // eslint-disable-next-line func-names\n this.getValidity = function () {\n if (this.isRequired && !this.value.length) {\n return {\n valueMissing: true,\n };\n }\n // If the field is not required, no minimum selection can be set\n if (\n this.isRequired &&\n this.minItemsSelection &&\n this.value.length < this.minItemsSelection\n ) {\n return {\n rangeUnderflow: true,\n };\n }\n if (this.maxItemsSelection && this.value.length > this.maxItemsSelection) {\n return {\n rangeOverflow: true,\n };\n }\n return {};\n };\n\n // This is required to override the default validity check of the vaadin component\n // which is triggered when the component is checked for validity after blur\n // Without this, our minItemsSelection and maxItemsSelection constraints will not be checked\n const that = this;\n // eslint-disable-next-line func-names\n this.baseElement.checkValidity = () => {\n return that.validity.valid;\n };\n }\n\n init() {\n super.init?.();\n\n this.setGetValidity();\n\n this.setComboBoxDescriptor();\n\n this.#overrideOverlaySettings();\n\n this.#handleCustomValues();\n\n this.renderItems();\n\n observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });\n\n observeChildren(this, this.#onChildrenChange.bind(this));\n\n // Note: we need to forward the `placeholder` because the vaadin component observes it and\n // tries to override it, causing us to lose the user set placeholder.\n forwardAttrs(this, this.baseElement, { includeAttrs: ['placeholder'] });\n\n this.setDefaultValues();\n\n this.baseElement.addEventListener('selected-items-changed', () => {\n this.#updateInternalValue();\n this.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n });\n }\n\n setDefaultValues() {\n const initialDefaultValues = this.defaultValues;\n if (initialDefaultValues.length > 0) {\n this.value = this.defaultValues;\n }\n }\n\n #updateInternalValue() {\n // This is done here because we don't want to return a different copy of the same array\n // every time get value is called if a new value wasn't set\n this.#value =\n this.baseElement.selectedItems?.map((elem) => elem.getAttribute('data-id')) || [];\n }\n\n // Updating the value will update the selectedItems, which will trigger an event 'selected-items-changed'\n // which we listen to in the init function to update the internal value\n set value(vals) {\n if (vals && vals.length > 0) {\n // Filters the children of the component to find the ones that match the values,\n // since it's possible that some values that are trying to set are not in the children\n const selectedChildren = this.baseElement.items?.filter((item) =>\n vals.includes(item['data-id'])\n );\n\n // If the component allows custom values, we need to add the values that are not present in the children\n if (this.allowCustomValues) {\n const existingValues =\n selectedChildren?.map((child) => child.getAttribute('data-id')) || [];\n const missingValues = vals.filter((val) => !existingValues.includes(val));\n\n if (missingValues.length) {\n const newItemsHtml = missingValues.reduce((acc, val) => {\n const newItemHtml = this.#renderItem({\n label: val,\n displayName: val,\n value: val,\n });\n return acc + newItemHtml;\n }, '');\n this.innerHTML += newItemsHtml;\n\n // The value needs to be set with a timeout because it needs to execute after\n // the custom values are added to the items by the children change observer\n setTimeout(() => {\n this.value = vals;\n }, 0);\n return;\n }\n }\n\n const newSelectedValues =\n selectedChildren?.map((child) => child.getAttribute('data-id')) || [];\n if (!compareArraysUnordered(this.#value, newSelectedValues)) {\n this.baseElement.selectedItems = selectedChildren;\n }\n } else {\n this.baseElement.selectedItems = [];\n }\n }\n\n get value() {\n return this.#value;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'readonly') {\n this.onReadOnlyChange(newValue !== null && newValue === 'true');\n }\n }\n\n onReadOnlyChange(val) {\n if (val) {\n this.baseElement?.shadowRoot\n ?.querySelector('vaadin-multi-select-combo-box-internal')\n ?.setAttribute('inert', val);\n } else {\n this.baseElement?.shadowRoot\n ?.querySelector('vaadin-multi-select-combo-box-internal')\n ?.removeAttribute('inert');\n }\n }\n };\n\nconst {\n host,\n inputField,\n inputElement,\n placeholder,\n toggle,\n clearButton,\n label,\n requiredIndicator,\n helperText,\n errorMessage,\n chip,\n chipLabel,\n overflowChipFirstBorder,\n overflowChipSecondBorder,\n} = {\n host: { selector: () => ':host' },\n inputField: { selector: '::part(input-field)' },\n inputElement: { selector: 'input' },\n placeholder: { selector: '> input:placeholder-shown' },\n toggle: { selector: '::part(toggle-button)' },\n clearButton: { selector: '::part(clear-button)' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n chip: { selector: 'vaadin-multi-select-combo-box-chip' },\n chipLabel: { selector: 'vaadin-multi-select-combo-box-chip::part(label)' },\n overflowChipFirstBorder: {\n selector: \"vaadin-multi-select-combo-box-chip[slot='overflow']::before\",\n },\n overflowChipSecondBorder: {\n selector: \"vaadin-multi-select-combo-box-chip[slot='overflow']::after\",\n },\n};\n\nexport const MultiSelectComboBoxClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n chipFontSize: { ...chipLabel, property: 'font-size' },\n fontFamily: [label, placeholder, inputField, helperText, errorMessage, chipLabel],\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n inputHeight: { ...inputField, property: 'min-height' },\n inputBackgroundColor: { ...inputField, property: 'background-color' },\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n inputValueTextColor: { ...inputField, property: 'color' },\n inputPlaceholderTextColor: { ...placeholder, property: 'color' },\n inputDropdownButtonCursor: [\n { ...toggle, property: 'cursor' },\n { ...clearButton, property: 'cursor' },\n ],\n inputDropdownButtonColor: [\n { ...toggle, property: 'color' },\n { ...clearButton, property: 'color' },\n ],\n inputDropdownButtonSize: [\n { ...toggle, property: 'font-size' },\n { ...clearButton, property: 'font-size' },\n ],\n inputDropdownButtonOffset: [\n { ...toggle, property: 'margin-right' },\n { ...toggle, property: 'margin-left' },\n ],\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n inputHorizontalPadding: [\n { ...inputElement, property: 'padding-left' },\n { ...inputElement, property: 'padding-right' },\n { ...inputField, property: 'padding-inline-start' },\n ],\n inputVerticalPadding: [\n { ...inputField, property: 'padding-top' },\n { ...inputField, property: 'padding-bottom' },\n ],\n chipTextColor: { ...chipLabel, property: 'color' },\n chipBackgroundColor: [\n { ...chip, property: 'background-color' },\n { ...overflowChipFirstBorder, property: 'border-color' },\n { ...overflowChipSecondBorder, property: 'border-color' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelLeftPosition: { ...label, property: 'left' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: { ...placeholder, property: 'opacity' },\n inputVerticalAlignment: { ...inputField, property: 'align-items' },\n\n // we need to use the variables from the portal mixin\n // so we need to use an arrow function on the selector\n // for that to work, because ComboBox is not available\n // at this time.\n overlayBackground: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.backgroundColor,\n },\n overlayTextColor: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.textColor,\n },\n overlayBorder: { property: () => MultiSelectComboBoxClass.cssVarList.overlay.border },\n overlayFontSize: { property: () => MultiSelectComboBoxClass.cssVarList.overlay.fontSize },\n overlayFontFamily: { property: () => MultiSelectComboBoxClass.cssVarList.overlay.fontFamily },\n overlayCursor: { property: () => MultiSelectComboBoxClass.cssVarList.overlay.cursor },\n overlayItemBoxShadow: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.itemBoxShadow,\n },\n overlayItemPaddingInlineStart: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.itemPaddingInlineStart,\n },\n overlayItemPaddingInlineEnd: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.itemPaddingInlineEnd,\n },\n },\n }),\n draggableMixin,\n portalMixin({\n name: 'overlay',\n selector: 'vaadin-multi-select-combo-box-internal',\n mappings: {\n backgroundColor: { selector: 'vaadin-multi-select-combo-box-scroller' },\n minHeight: { selector: 'vaadin-multi-select-combo-box-overlay' },\n margin: { selector: 'vaadin-multi-select-combo-box-overlay' },\n cursor: { selector: 'vaadin-multi-select-combo-box-item' },\n fontFamily: { selector: 'vaadin-multi-select-combo-box-item' },\n textColor: { selector: 'vaadin-multi-select-combo-box-item', property: 'color' },\n fontSize: { selector: 'vaadin-multi-select-combo-box-item' },\n itemBoxShadow: { selector: 'vaadin-multi-select-combo-box-item', property: 'box-shadow' },\n itemPaddingInlineStart: {\n selector: 'vaadin-multi-select-combo-box-item',\n property: 'padding-inline-start',\n },\n itemPaddingInlineEnd: {\n selector: 'vaadin-multi-select-combo-box-item',\n property: 'padding-inline-end',\n },\n },\n forward: {\n include: false,\n attributes: ['size'],\n },\n }),\n proxyInputMixin({ proxyProps: ['selectionStart'], inputEvent: 'selected-items-changed' }),\n changeMixin,\n componentNameValidationMixin,\n multiSelectComboBoxMixin\n)(\n createProxy({\n slots: ['', 'prefix'],\n wrappedEleName: 'vaadin-multi-select-combo-box',\n style: () => `\n\t\t:host {\n\t\t\tdisplay: inline-flex;\n\t\t\tbox-sizing: border-box;\n\t\t\t-webkit-mask-image: none;\n\t\t}\n\t\t${useHostExternalPadding(MultiSelectComboBoxClass.cssVarList)}\n\t\t${resetInputReadonlyStyle('vaadin-multi-select-combo-box')}\n\t\t${resetInputPlaceholder('vaadin-multi-select-combo-box')}\n\t\t${resetInputCursor('vaadin-multi-select-combo-box')}\n\n\t\tvaadin-multi-select-combo-box {\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t\tvaadin-multi-select-combo-box::before {\n\t\t\theight: initial;\n\t\t}\n\t\tvaadin-multi-select-combo-box [slot=\"input\"] {\n\t\t\t-webkit-mask-image: none;\n\t\t\tmin-height: 0;\n align-self: center;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\tvaadin-multi-select-combo-box[readonly] [slot=\"input\"] {\n flex-grow: 1;\n flex-basis: 4em;\n\t\t}\n\n\t\t::part(input-field) {\n padding: 0;\n\t\t\tbox-shadow: none;\n\t\t}\n ${resetInputLabelPosition('vaadin-multi-select-combo-box')}\n :host([has-label]) vaadin-multi-select-combo-box-chip::part(label) {\n display: block;\n }\n\n vaadin-multi-select-combo-box vaadin-multi-select-combo-box-chip[slot='overflow']::before,\n vaadin-multi-select-combo-box vaadin-multi-select-combo-box-chip[slot='overflow']::after {\n left: -4px;\n right: -4px;\n border-left-width: 0;\n border-inline-start-style: solid;\n border-inline-start-width: 2px;\n }\n vaadin-multi-select-combo-box vaadin-multi-select-combo-box-chip[slot='overflow']::after {\n left: -8px;\n right: -8px;\n }\n\n :host([has-no-options][allow-custom-value='true']) ::part(toggle-button) {\n display: none;\n }\n\n ${inputFloatingLabelStyle()}\n\n vaadin-multi-select-combo-box::part(toggle-button),\n vaadin-multi-select-combo-box::part(clear-button) {\n align-self: center;\n }\n\n vaadin-multi-select-combo-box[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-multi-select-combo-box[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\n\t\t`,\n // Note: we exclude `size` to avoid overriding Vaadin's ComboBox property\n // with the same name. Including it will cause Vaadin to calculate NaN size,\n // and reset items to an empty array, and opening the list box with no items\n // to display.\n // Note: we exclude `placeholder` because the vaadin component observes it and\n // tries to override it, causing us to lose the user set placeholder.\n excludeAttrsSync: ['tabindex', 'size', 'data', 'placeholder'],\n componentName,\n includeForwardProps: ['items', 'renderer', 'selectedItems'],\n })\n);\n","import globals from '../globals';\nimport { MultiSelectComboBoxClass } from '../../components/descope-multi-select-combo-box/MultiSelectComboBoxClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = MultiSelectComboBoxClass.cssVarList;\n\nexport const multiSelectComboBox = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.inputVerticalPadding]: refs.verticalPadding,\n [vars.inputHeight]: refs.inputHeight,\n [vars.inputDropdownButtonColor]: globalRefs.colors.surface.dark,\n [vars.inputDropdownButtonCursor]: 'pointer',\n [vars.inputDropdownButtonSize]: refs.toggleButtonSize,\n [vars.inputDropdownButtonOffset]: globalRefs.spacing.xs,\n [vars.overlayItemPaddingInlineStart]: globalRefs.spacing.xs,\n [vars.overlayItemPaddingInlineEnd]: globalRefs.spacing.lg,\n [vars.chipFontSize]: refs.chipFontSize,\n [vars.chipTextColor]: globalRefs.colors.surface.contrast,\n [vars.chipBackgroundColor]: globalRefs.colors.surface.light,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelLeftPosition]: refs.labelLeftPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n\n labelType: {\n floating: {\n [vars.inputHorizontalPadding]: '0.25em',\n _hasValue: {\n [vars.inputHorizontalPadding]: '0.45em',\n },\n },\n },\n\n _readonly: {\n [vars.inputDropdownButtonCursor]: 'default',\n },\n\n // Overlay theme exposed via the component:\n [vars.overlayFontSize]: refs.fontSize,\n [vars.overlayFontFamily]: refs.fontFamily,\n [vars.overlayCursor]: 'pointer',\n [vars.overlayItemBoxShadow]: 'none',\n [vars.overlayBackground]: refs.backgroundColor,\n [vars.overlayTextColor]: refs.valueTextColor,\n\n // Overlay direct theme:\n [vars.overlay.minHeight]: '400px',\n [vars.overlay.margin]: '0',\n};\n\nexport default multiSelectComboBox;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('badge');\n\nclass RawBadge extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n :host {\n display: inline-flex;\n }\n :host > div {\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\t\t</style>\n\t\t<div>\n <slot></slot>\n\t\t</div>\n\t\t`;\n }\n}\n\nexport const BadgeClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [{ selector: () => ':host', property: 'width' }],\n hostDirection: { property: 'direction' },\n\n fontFamily: {},\n fontSize: {},\n fontWeight: {},\n textTransform: {},\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [{ property: 'padding-left' }, { property: 'padding-right' }],\n\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n borderRadius: {},\n\n backgroundColor: {},\n\n textColor: { property: 'color' },\n textAlign: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawBadge);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { BadgeClass } from '../../components/descope-badge/BadgeClass';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = BadgeClass.cssVarList;\n\nconst badge = {\n [vars.hostWidth]: 'fit-content',\n [vars.hostDirection]: globalRefs.direction,\n\n [vars.textAlign]: 'center',\n\n [vars.fontFamily]: globalRefs.fonts.font1.family,\n [vars.fontWeight]: '400',\n\n [vars.verticalPadding]: '0.25em',\n [vars.horizontalPadding]: '0.5em',\n\n [vars.borderWidth]: globalRefs.border.xs,\n [vars.borderRadius]: globalRefs.radius.xs,\n [vars.borderColor]: 'transparent',\n [vars.borderStyle]: 'solid',\n\n _fullWidth: {\n [vars.hostWidth]: '100%',\n },\n\n size: {\n xs: { [vars.fontSize]: '12px' },\n sm: { [vars.fontSize]: '14px' },\n md: { [vars.fontSize]: '16px' },\n lg: { [vars.fontSize]: '18px' },\n },\n\n mode: {\n default: {\n [vars.textColor]: globalRefs.colors.surface.dark,\n _bordered: {\n [vars.borderColor]: globalRefs.colors.surface.light,\n },\n },\n primary: {\n [vars.textColor]: globalRefs.colors.primary.main,\n _bordered: {\n [vars.borderColor]: globalRefs.colors.primary.light,\n },\n },\n secondary: {\n [vars.textColor]: globalRefs.colors.secondary.main,\n _bordered: {\n [vars.borderColor]: globalRefs.colors.secondary.light,\n },\n },\n error: {\n [vars.textColor]: globalRefs.colors.error.main,\n _bordered: {\n [vars.borderColor]: globalRefs.colors.error.light,\n },\n },\n success: {\n [vars.textColor]: globalRefs.colors.success.main,\n _bordered: {\n [vars.borderColor]: globalRefs.colors.success.light,\n },\n },\n },\n};\n\nexport default badge;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName, observeAttributes } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('avatar');\nclass RawAvatar extends createBaseClass({ componentName, baseSelector: ':host > .wrapper' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n .editableBadge {\n border: 1px solid;\n border-radius: 100%;\n height: fit-content;\n width: 25%;\n height: 25%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5%;\n box-sizing: border-box;\n position: absolute;\n bottom: 0;\n inset-inline-end: 0;\n }\n\n vaadin-icon {\n color: currentcolor;\n }\n\n vaadin-avatar {\n width: 100%;\n height: 100%;\n margin: 0;\n border: none\n }\n\n .wrapper {\n display: inline-flex;\n position: relative;\n width: 100%;\n height: 100%;\n }\n </style>\n\n\n <div class=\"wrapper\">\n <vaadin-avatar></vaadin-avatar>\n <div class=\"editableBadge\">\n <vaadin-icon icon=\"vaadin:pencil\"></vaadin-icon>\n </div>\n </div>\n\t\t`;\n\n this.avatarComponent = this.shadowRoot.querySelector('vaadin-avatar');\n\n forwardAttrs(this, this.avatarComponent, {\n includeAttrs: ['display-name', 'img', 'abbr'],\n mapAttrs: { 'display-name': 'name' },\n });\n\n const editableIcon = this.shadowRoot.querySelector('.editableBadge');\n\n observeAttributes(\n this,\n () => {\n editableIcon.style.display = this.isEditable ? '' : 'none';\n },\n { includeAttrs: ['editable'] }\n );\n }\n\n get isEditable() {\n return this.getAttribute('editable') === 'true';\n }\n}\n\nconst { host, editableBadge, avatar } = {\n host: { selector: () => ':host' },\n editableBadge: { selector: '> .editableBadge' },\n avatar: { selector: 'vaadin-avatar' },\n};\n\nexport const AvatarClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [\n { ...host, property: 'width' },\n { ...host, property: 'min-width' },\n ],\n hostHeight: { ...host, property: 'height' },\n cursor: [avatar, host],\n hostDirection: { ...host, property: 'direction' },\n avatarTextColor: { ...avatar, property: 'color' },\n avatarBackgroundColor: { ...avatar, property: 'background-color' },\n editableIconColor: { ...editableBadge, property: 'color' },\n editableBorderColor: { ...editableBadge, property: 'border-color' },\n editableBackgroundColor: { ...editableBadge, property: 'background-color' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawAvatar);\n","import globals from '../globals';\nimport { AvatarClass } from '../../components/descope-avatar/AvatarClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\nconst compVars = AvatarClass.cssVarList;\n\nconst avatar = {\n [compVars.hostDirection]: globalRefs.direction,\n [compVars.editableIconColor]: globalRefs.colors.surface.dark,\n [compVars.editableBorderColor]: globalRefs.colors.surface.dark,\n [compVars.editableBackgroundColor]: globalRefs.colors.surface.main,\n [compVars.avatarTextColor]: globalRefs.colors.surface.main,\n [compVars.avatarBackgroundColor]: globalRefs.colors.surface.dark,\n\n _editable: {\n [compVars.cursor]: 'pointer',\n },\n\n size: {\n xs: {\n [compVars.hostWidth]: '30px',\n [compVars.hostHeight]: '30px',\n },\n sm: {\n [compVars.hostWidth]: '40px',\n [compVars.hostHeight]: '40px',\n },\n md: {\n [compVars.hostWidth]: '60px',\n [compVars.hostHeight]: '60px',\n },\n lg: {\n [compVars.hostWidth]: '98px',\n [compVars.hostHeight]: '98px',\n },\n },\n};\n\nexport default avatar;\n\nexport const vars = {\n ...compVars,\n};\n","import { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport {\n getComponentName,\n forwardAttrs,\n observeChildren,\n} from '../../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('mappings-field-internal');\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass MappingsFieldInternal extends BaseInputClass {\n #errorItem;\n\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], [\n 'label-value',\n 'label-attr',\n 'button-label',\n 'invalid',\n 'readonly',\n 'disabled',\n ]);\n }\n\n // eslint-disable-next-line class-methods-use-this\n isValidDataType(data) {\n try {\n return data.every(\n (obj) =>\n typeof obj === 'object' &&\n !Array.isArray(obj) &&\n Object.getOwnPropertyNames(obj).length === 1 &&\n typeof obj[Object.keys(obj)[0]] === 'string' &&\n obj[Object.keys(obj)[0]].trim() !== ''\n );\n } catch (e) {\n return false;\n }\n }\n\n get labelValue() {\n return this.getAttribute('label-value') || 'Value';\n }\n\n get labelAttr() {\n return this.getAttribute('label-attr') || 'Attribute';\n }\n\n get buttonLabel() {\n return this.getAttribute('button-label') || 'Add mapping';\n }\n\n get options() {\n return this.getAttribute('options') || [];\n }\n\n addNewMappingItem(focusNewItem) {\n const newMappingItem = document.createElement('descope-mapping-item');\n newMappingItem.setAttribute('bordered', 'true');\n this.mappingsContainerEle.appendChild(newMappingItem);\n forwardAttrs(this, newMappingItem, {\n includeAttrs: ['size', 'full-width', 'separator', 'options', 'disabled'],\n });\n // This needs to be done with the timeout, otherwise the validation is performed\n // before the new item is added and thus returns a wrong result\n setTimeout(() => {\n this.setCustomValidity('');\n newMappingItem.addEventListener('mapping-item-removed', () => {\n // If the removed item was the one that was invalid, we need to reset the invalid indication for the internal\n if (newMappingItem === this.#errorItem) {\n this.resetInvalidIndication();\n this.#errorItem = undefined;\n }\n newMappingItem.remove();\n this.setCustomValidity('');\n });\n this.dispatchEvent(new CustomEvent('mapping-item-added', { bubbles: true, composed: true }));\n if (focusNewItem) {\n newMappingItem.focus();\n }\n }, 0);\n return newMappingItem;\n }\n\n get items() {\n return Array.from(this.mappingsContainerEle.querySelectorAll('descope-mapping-item'));\n }\n\n get value() {\n return this.items.reduce((acc, item) => {\n if (!item.value) {\n return acc;\n }\n\n return [...acc, item.value];\n }, []);\n }\n\n set value(mappings) {\n if (!this.isValidDataType(mappings)) {\n // eslint-disable-next-line no-console\n console.error(\n 'received invalid value to set - should be an array of objects with one key-value pair'\n );\n return;\n }\n\n const currentItems = this.items;\n\n // Remove extra mapping items we don't need\n if (currentItems.length > mappings.length) {\n for (let i = mappings.length; i < currentItems.length; i++) {\n this.mappingsContainerEle.removeChild(currentItems[i]);\n }\n }\n\n // Add or update items\n mappings.forEach((mapping, index) => {\n const mappingItem = currentItems[index];\n if (mappingItem) {\n // Set existing item value\n mappingItem.value = mapping;\n } else {\n // Add new item\n const newMappingItem = this.addNewMappingItem(false);\n // Setting the new item value needs to be done with the timeout,\n // otherwise the value is not set correctly\n setTimeout(() => {\n newMappingItem.value = mapping;\n }, 0);\n }\n });\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n <div class=\"labels-container\" part=\"labels\"></div>\n <div class=\"mappings-container\"></div>\n <div class=\"button-container\"></div>\n `;\n\n this.labelsEle = this.querySelector('.labels-container');\n this.mappingsContainerEle = this.querySelector('.mappings-container');\n this.buttonContainer = this.querySelector('.button-container');\n }\n\n initLabels() {\n this.labelsEle.innerHTML = `\n <descope-text variant=\"body2\" part=\"value-label\">${this.labelValue}</descope-text>\n <descope-text variant=\"body2\" part=\"attr-label\">${this.labelAttr}</descope-text>\n `;\n }\n\n initAddButton() {\n this.buttonContainer.innerHTML = `\n <descope-button variant=\"link\" mode=\"primary\" disabled=\"${this.isDisabled}\">\n <vaadin-icon icon=\"vaadin:plus\"></vaadin-icon>\n ${this.buttonLabel}\n </descope-button>\n `;\n const button = this.querySelector('descope-button');\n button.onclick = () => {\n this.addNewMappingItem(true);\n };\n forwardAttrs(this, button, {\n includeAttrs: ['disabled'],\n });\n }\n\n #onMappingsContainerChildrenChange() {\n this.labelsEle.style.display = this.items.length ? 'grid' : 'none';\n }\n\n init() {\n // This event listener needs to be placed before the super.init() call\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) {\n const focusedElement =\n this.#errorItem || this.items[0] || this.querySelector('descope-button');\n focusedElement.focus();\n }\n });\n\n super.init?.();\n this.initLabels();\n this.initAddButton();\n\n // This event listener is responsible for removing the invalid attribute\n // from the internal once the invalid item turns valid\n this.addEventListener('input', () => {\n const isErrorItemMounted = this.mappingsContainerEle.contains(this.#errorItem);\n if (isErrorItemMounted && this.#errorItem?.checkValidity()) {\n // Item has changed, it was invalid before and now it's valid\n this.resetInvalidIndication();\n this.#errorItem.removeAttribute('invalid');\n this.#errorItem = undefined;\n }\n });\n\n observeChildren(this.mappingsContainerEle, this.#onMappingsContainerChildrenChange.bind(this));\n }\n\n resetInvalidIndication() {\n this.removeAttribute('invalid');\n }\n\n getValidity() {\n const errorItem = this.items.find((item) => !item.checkValidity());\n if (errorItem) {\n return errorItem.validity;\n }\n\n return {};\n }\n\n #handleInvalidMappings(isInvalid) {\n if (isInvalid) {\n this.#errorItem = this.items.find((item) => !item.checkValidity());\n this.#errorItem?.reportValidity();\n this.#errorItem?.setAttribute('invalid', 'true');\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (attrName === 'label-value' || attrName === 'label-attr') {\n this.initLabels();\n }\n if (attrName === 'button-label') {\n this.initAddButton();\n }\n if (attrName === 'invalid') {\n this.#handleInvalidMappings(newValue === 'true');\n }\n if (attrName === 'readonly') {\n this.toggleAttribute('inert', newValue === 'true');\n }\n }\n}\n\nexport default MappingsFieldInternal;\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../../mixins';\nimport { TextClass } from '../../descope-text/TextClass';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName, syncAttrs } from '../../../helpers/componentHelpers';\nimport { componentName as descopeInternalComponentName } from './descope-mappings-field-internal/MappingsFieldInternal';\n\nexport const componentName = getComponentName('mappings-field');\n\nconst customMixin = (superclass) =>\n class MappingsFieldMixinClass extends superclass {\n get defaultValues() {\n const defaultValuesAttr = this.getAttribute('default-values');\n if (defaultValuesAttr) {\n try {\n return JSON.parse(defaultValuesAttr);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"default-values\" -', e.message);\n }\n }\n return [];\n }\n\n setDefaultValues() {\n const initialDefaultValues = this.defaultValues;\n if (Object.keys(initialDefaultValues).length > 0) {\n this.inputElement.value = initialDefaultValues;\n }\n }\n\n init() {\n super.init?.();\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n tabindex=\"-1\"\n ></${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'default-values',\n 'invalid',\n 'readonly',\n 'disabled',\n ],\n });\n\n // This is required since when we remove the invalid attribute from the internal mappings field,\n // we want to reflect the change in the parent component\n syncAttrs(this, this.inputElement, { includeAttrs: ['invalid'] });\n\n this.setDefaultValues();\n }\n };\n\nconst {\n host,\n helperText,\n errorMessage,\n mappingItem,\n labels,\n labelsText,\n valueLabel,\n attrLabel,\n separator,\n labelsContainer,\n} = {\n host: { selector: () => ':host' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n mappingItem: { selector: 'descope-mapping-item::part(wrapper)' },\n labels: { selector: 'descope-mappings-field-internal [part=\"labels\"] descope-text' },\n labelsText: {\n selector: 'descope-mappings-field-internal [part=\"labels\"] descope-text::part(text-wrapper)',\n },\n valueLabel: { selector: 'descope-mappings-field-internal [part=\"labels\"] [part=\"value-label\"]' },\n attrLabel: { selector: 'descope-mappings-field-internal [part=\"labels\"] [part=\"attr-label\"]' },\n separator: { selector: 'descope-mapping-item::part(separator)' },\n labelsContainer: { selector: 'descope-mappings-field-internal [part=\"labels\"]' },\n};\n\nexport const MappingsFieldClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host, { ...separator, property: 'margin-top' }],\n fontFamily: [helperText, errorMessage, labels],\n separatorFontSize: { ...separator, property: 'font-size' },\n labelsFontSize: { ...labelsText, property: 'font-size' },\n labelsLineHeight: [\n { ...labelsText, property: 'line-height' },\n { ...labels, property: 'line-height' },\n ],\n labelTextColor: [\n { ...labels, property: TextClass.cssVarList.textColor },\n { ...separator, property: 'color' },\n ],\n itemMarginBottom: { ...mappingItem, property: 'margin-bottom' },\n valueLabelMinWidth: { ...valueLabel, property: 'min-width' },\n attrLabelMinWidth: { ...attrLabel, property: 'min-width' },\n labelsMarginBottom: { ...labelsContainer, property: 'margin-bottom' },\n separatorWidth: {},\n removeButtonWidth: {},\n },\n }),\n draggableMixin,\n proxyInputMixin({\n proxyProps: ['value', 'selectionStart'],\n inputEvent: 'input',\n proxyParentValidation: true,\n }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-custom-field',\n style: () => `\n :host {\n display: inline-flex;\n max-width: 100%;\n direction: ltr;\n }\n vaadin-custom-field {\n line-height: unset;\n width: 100%;\n }\n\n descope-mappings-field-internal [part=\"labels\"] {\n display: none;\n grid-template-columns: 1fr var(${MappingsFieldClass.cssVarList.separatorWidth}) 1fr var(${MappingsFieldClass.cssVarList.removeButtonWidth});\n }\n\n descope-mappings-field-internal [part=\"labels\"] [part=\"value-label\"],\n descope-mappings-field-internal [part=\"labels\"] [part=\"attr-label\"] {\n ${TextClass.cssVarList.fontWeight}: 500;\n }\n\n descope-mappings-field-internal [part=\"labels\"] [part=\"value-label\"] {\n grid-column: 1 / span 1;\n }\n\n descope-mappings-field-internal [part=\"labels\"] [part=\"attr-label\"] {\n grid-column: 3 / span 1;\n }\n\n descope-mapping-item::part(wrapper) {\n display: grid;\n grid-template-columns: 1fr var(${MappingsFieldClass.cssVarList.separatorWidth}) 1fr var(${MappingsFieldClass.cssVarList.removeButtonWidth});\n }\n `,\n excludeAttrsSync: [\n 'tabindex',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'options',\n 'error-message',\n ],\n componentName,\n })\n);\n\nexport default MappingsFieldClass;\n","import globals from '../globals';\nimport { MappingsFieldClass } from '../../components/mapping-fields/descope-mappings-field/MappingsFieldClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\n\nconst vars = MappingsFieldClass.cssVarList;\n\nexport const mappingsField = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.separatorFontSize]: '14px',\n [vars.labelsFontSize]: '14px',\n [vars.labelsLineHeight]: '1',\n [vars.labelsMarginBottom]: '6px',\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.itemMarginBottom]: '1em',\n // To be positioned correctly, the min width has to match the text field min width\n [vars.valueLabelMinWidth]: refs.minWidth,\n // To be positioned correctly, the min width has to match the combo box field min width\n [vars.attrLabelMinWidth]: `calc(12em + 2 * ${globalRefs.border.xs})`,\n [vars.separatorWidth]: '70px',\n [vars.removeButtonWidth]: '60px',\n};\n\nexport default mappingsField;\nexport { vars };\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxNCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEgMTZDMSAxNy4xIDEuOSAxOCAzIDE4SDExQzEyLjEgMTggMTMgMTcuMSAxMyAxNlY0SDFWMTZaTTMgNkgxMVYxNkgzVjZaTTEwLjUgMUw5LjUgMEg0LjVMMy41IDFIMFYzSDE0VjFIMTAuNVoiIGZpbGw9ImN1cnJlbnRjb2xvciIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwLjAwMDIgMC45OTIxNDlDMTAuMDAwMiAxLjAxNjE1IDEwLjAwMDIgMS4wMTYxNSAxMC4wMDAyIDEuMDE2MTVMOC4yMjQxOSAzLjAwODE1SDIuOTkyMTlDMi40NjQxOSAzLjAwODE1IDIuMDA4MTkgMy40NDAxNSAyLjAwODE5IDMuOTkyMTVWMTIuMDA4MkMyLjAwODE5IDEyLjUzNjIgMi40NDAxOSAxMi45OTIyIDIuOTkyMTkgMTIuOTkyMkg1LjUzNjE5QzUuODQ4MTkgMTMuMDQwMiA2LjE2MDE5IDEzLjA0MDIgNi40NzIxOSAxMi45OTIySDExLjAwODJDMTEuNTM2MiAxMi45OTIyIDExLjk5MjIgMTIuNTYwMiAxMS45OTIyIDEyLjAwODJWNy43ODQxNkwxMy45MzYyIDUuNjI0MTVMMTQuMDA4MiA1LjY3MjE1VjExLjk4NDJDMTQuMDA4MiAxMy42NjQyIDEyLjY2NDIgMTUuMDA4MiAxMS4wMDgyIDE1LjAwODJIMy4wMTYxOUMxLjMzNjE5IDE1LjAwODIgLTAuMDA3ODEyNSAxMy42NjQyIC0wLjAwNzgxMjUgMTEuOTg0MlYzLjk5MjE1Qy0wLjAwNzgxMjUgMi4zMzYxNSAxLjMzNjE5IDAuOTkyMTQ5IDMuMDE2MTkgMC45OTIxNDlIMTAuMDAwMlpNMTEuMjcyMiAyLjYyNDE1TDEyLjYxNjIgNC4xMTIxNUw3LjcyMDE5IDkuNjgwMTZDNy41MDQxOSA5LjkyMDE2IDYuODMyMTkgMTAuMjMyMiA1LjY4MDE5IDEwLjYxNjJDNS42NTYxOSAxMC42NDAyIDUuNjA4MTkgMTAuNjQwMiA1LjU2MDE5IDEwLjYxNjJDNS40NjQxOSAxMC41OTIyIDUuMzkyMTkgMTAuNDcyMiA1LjQ0MDE5IDEwLjM3NjJDNS43NTIxOSA5LjI0ODE2IDYuMDQwMTkgOC41NTIxNiA2LjI1NjE5IDguMzEyMTZMMTEuMjcyMiAyLjYyNDE1Wk0xMS45MjAyIDEuODU2MTVMMTMuMjg4MiAwLjMyMDE0OUMxMy42NDgyIC0wLjA4Nzg1MTYgMTQuMjcyMiAtMC4xMTE4NTIgMTQuNjgwMiAwLjI3MjE0OUMxNS4wODgyIDAuNjMyMTQ5IDE1LjExMjIgMS4yODAxNSAxNC43NTIyIDEuNjg4MTVMMTMuMjY0MiAzLjM2ODE1TDExLjkyMDIgMS44NTYxNVoiIGZpbGw9ImN1cnJlbnRjb2xvciIvPgo8L3N2Zz4K\"","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport deleteIcon from './delete.svg';\nimport editIcon from './edit.svg';\nimport { TextClass } from '../descope-text/TextClass';\nimport { ButtonClass } from '../descope-button/ButtonClass';\nimport { BadgeClass } from '../descope-badge/BadgeClass';\n\nexport const componentName = getComponentName('user-attribute');\nclass RawUserAttribute extends createBaseClass({\n componentName,\n baseSelector: ':host > .root',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n vaadin-icon {\n color: currentcolor;\n }\n\n .root {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n }\n\n .btn-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-grow: 0;\n }\n\n .text-wrapper {\n display: flex;\n align-items: center;\n flex-grow: 1;\n }\n\n descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: initial;\n }\n\n descope-text {\n display: inline-flex;\n }\n\n descope-badge {\n margin-inline-end: 10px;\n }\n\n .hidden {\n visibility: hidden;\n }\n\n descope-text[data-id=\"label-text\"].required:after {\n content: '*';\n color: var(${TextClass.cssVarList.textColor});\n }\n </style>\n\n\n <div class=\"root\">\n <div class=\"text-wrapper\">\n <descope-text st-text-align=\"auto\" data-id=\"label-text\" variant=\"body1\" mode=\"secondary\"></descope-text>\n <descope-text st-text-align=\"auto\" data-id=\"value-text\" variant=\"body1\" mode=\"primary\"></descope-text>\n </div>\n\n <div class=\"btn-wrapper\">\n <descope-badge mode=\"default\" bordered=\"true\" size=\"xs\"></descope-badge>\n <descope-button size=\"xs\" data-id=\"edit-btn\" square=\"true\" variant=\"link\" mode=\"primary\">\n <vaadin-icon src=${editIcon}></vaadin-icon>\n </descope-button>\n <descope-button size=\"xs\" data-id=\"delete-btn\" square=\"true\" variant=\"link\" mode=\"primary\">\n <vaadin-icon src=${deleteIcon}></vaadin-icon>\n </descope-button>\n </div\n </div>\n\t\t`;\n\n this.deleteButton = this.shadowRoot.querySelector('descope-button[data-id=\"delete-btn\"]');\n this.editButton = this.shadowRoot.querySelector('descope-button[data-id=\"edit-btn\"]');\n this.badge = this.shadowRoot.querySelector('descope-badge');\n this.labelText = this.shadowRoot.querySelector('descope-text[data-id=\"label-text\"]');\n this.valueText = this.shadowRoot.querySelector('descope-text[data-id=\"value-text\"]');\n }\n\n onLabelChange() {\n this.labelText.innerText = this.label;\n this.labelText.setAttribute('title', this.label);\n }\n\n onValueOrPlaceholderChange() {\n const text = this.value || this.placeholder;\n const mode = this.value ? 'primary' : 'secondary';\n\n this.valueText.innerText = text;\n this.valueText.setAttribute('title', text);\n this.valueText.setAttribute('mode', mode);\n }\n\n onBadgeLabelChange() {\n if (!this.badgeLabel) {\n this.badge.style.display = 'none';\n } else {\n this.badge.innerText = this.badgeLabel;\n this.badge.style.display = '';\n }\n }\n\n onBadgeTooltipTextChange() {\n this.badge.setAttribute('title', this.badgeTooltipText || this.badgeLabel);\n }\n\n onIsRequiredChange() {\n this.labelText.classList.toggle('required', this.isRequired);\n }\n\n get label() {\n return this.getAttribute('label') || '';\n }\n\n get value() {\n return this.getAttribute('value') || '';\n }\n\n get placeholder() {\n return this.getAttribute('placeholder') || '';\n }\n\n get isRequired() {\n return this.getAttribute('required') === 'true';\n }\n\n get badgeLabel() {\n return this.getAttribute('badge-label') || '';\n }\n\n get badgeTooltipText() {\n return this.getAttribute('badge-tooltip-text') || '';\n }\n\n init() {\n this.onLabelChange();\n this.onValueOrPlaceholderChange();\n this.onIsRequiredChange();\n this.onBadgeLabelChange();\n this.onBadgeTooltipTextChange();\n this.handleDeleteButtonVisibility();\n\n this.deleteButton.addEventListener('click', () =>\n this.dispatchEvent(new CustomEvent('delete-clicked', { bubbles: true, composed: true }))\n );\n\n this.editButton.addEventListener('click', () =>\n this.dispatchEvent(new CustomEvent('edit-clicked', { bubbles: true, composed: true }))\n );\n }\n\n static get observedAttributes() {\n return [\n 'label',\n 'value',\n 'placeholder',\n 'required',\n 'badge-label',\n 'badge-tooltip-text',\n ].concat(super.observedAttributes);\n }\n\n handleDeleteButtonVisibility() {\n this.deleteButton.classList.toggle('hidden', this.isRequired || !this.value);\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (oldValue === newValue) {\n return;\n }\n\n if (name === 'label') {\n this.onLabelChange();\n } else if (name === 'value' || name === 'placeholder') {\n this.onValueOrPlaceholderChange();\n } else if (name === 'required') {\n this.onIsRequiredChange();\n } else if (name === 'badge-label') {\n this.onBadgeLabelChange();\n } else if (name === 'badge-tooltip-text') {\n this.onBadgeTooltipTextChange();\n }\n\n if (name === 'value' || name === 'required') {\n this.handleDeleteButtonVisibility();\n }\n }\n}\n\nconst { host, textFields, buttons, badge, labelText, valueText, textWrapper } = {\n host: { selector: () => ':host' },\n textFields: { selector: 'descope-text' },\n valueText: { selector: 'descope-text[data-id=\"value-text\"]' },\n labelText: { selector: 'descope-text[data-id=\"label-text\"]' },\n buttons: { selector: 'descope-button' },\n badge: { selector: 'descope-badge' },\n textWrapper: { selector: ' .text-wrapper' },\n};\n\nexport const UserAttributeClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: [\n { ...host, property: 'direction' },\n { ...textFields, property: TextClass.cssVarList.hostDirection },\n { ...buttons, property: ButtonClass.cssVarList.hostDirection },\n { ...badge, property: BadgeClass.cssVarList.hostDirection },\n ],\n labelTextWidth: { ...labelText, property: 'width' },\n valueTextWidth: { ...valueText, property: 'width' },\n badgeMaxWidth: { ...badge, property: 'max-width' },\n itemsGap: [{ property: 'gap' }, { ...textWrapper, property: 'gap' }],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawUserAttribute);\n","import globals from '../globals';\nimport { UserAttributeClass } from '../../components/descope-user-attribute/UserAttributeClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\nexport const vars = UserAttributeClass.cssVarList;\n\nconst userAttribute = {\n [vars.hostDirection]: globalRefs.direction,\n [vars.labelTextWidth]: '150px',\n [vars.valueTextWidth]: '200px',\n [vars.badgeMaxWidth]: '85px',\n [vars.itemsGap]: '16px',\n [vars.hostMinWidth]: '530px',\n _fullWidth: {\n [vars.hostWidth]: '100%',\n },\n};\n\nexport default userAttribute;\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTggMEMzLjYgMCAwIDMuNiAwIDhDMCAxMi40IDMuNiAxNiA4IDE2QzEyLjQgMTYgMTYgMTIuNCAxNiA4QzE2IDMuNiAxMi40IDAgOCAwWk03LjEgMTEuN0wyLjkgNy42TDQuMyA2LjJMNyA4LjlMMTIgNEwxMy40IDUuNEw3LjEgMTEuN1oiIGZpbGw9IiM0Q0FGNTAiLz4KPC9zdmc+Cg==\"","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport greenVIcon from './green-v.svg';\nimport { TextClass } from '../descope-text/TextClass';\nimport { ButtonClass } from '../descope-button/ButtonClass';\nimport { BadgeClass } from '../descope-badge/BadgeClass';\n\nexport const componentName = getComponentName('user-auth-method');\nclass RawUserAuthMethod extends createBaseClass({\n componentName,\n baseSelector: ':host > .root',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n vaadin-icon {\n color: currentcolor;\n }\n\n .root {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n }\n\n .btn-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-grow: 0;\n }\n\n .text-wrapper {\n display: flex;\n align-items: center;\n flex-grow: 1;\n }\n\n descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: initial;\n }\n\n descope-text {\n display: inline-flex;\n }\n\n .fulfilled-indicator {\n width: 1em;\n height: 1em;\n display: flex;\n align-items: center;\n padding-inline-end: 1em;\n }\n\n .hidden {\n display: none;\n }\n\n .hidden-btn {\n width: 0;\n overflow: hidden;\n }\n\n slot[name=\"method-icon\"]{\n display: inline-flex;\n align-items: center;\n }\n </style>\n\n\n <div class=\"root\">\n <div class=\"text-wrapper\">\n <slot name=\"method-icon\"></slot>\n <descope-text st-text-align=\"auto\" data-id=\"label-text\" variant=\"body1\" mode=\"primary\"></descope-text>\n </div>\n\n <div class=\"btn-wrapper\">\n <descope-button size=\"sm\" variant=\"link\" mode=\"primary\">\n <slot name=\"button-icon\"></slot>\n </descope-button>\n <div class=\"fulfilled-indicator\">\n <vaadin-icon src=${greenVIcon}></vaadin-icon>\n </div>\n <descope-button class=\"hidden-btn\" size=\"sm\" variant=\"link\" mode=\"primary\"></descope-button>\n </div>\n </div>\n\t\t`;\n\n this.button = this.shadowRoot.querySelector('descope-button');\n this.fulfilledIndicator = this.shadowRoot.querySelector('.fulfilled-indicator');\n this.labelText = this.shadowRoot.querySelector('descope-text[data-id=\"label-text\"]');\n }\n\n onLabelChange() {\n this.labelText.innerText = this.label;\n this.labelText.setAttribute('title', this.label);\n }\n\n onButtonLabelChange() {\n let textSpanEle = this.button.querySelector('span');\n\n if (this.buttonLabel) {\n if (!textSpanEle) {\n textSpanEle = document.createElement('span');\n this.button.appendChild(textSpanEle);\n }\n textSpanEle.innerText = this.buttonLabel;\n } else if (textSpanEle) {\n this.button.removeChild(textSpanEle);\n }\n }\n\n onFulfilledChange() {\n this.button.classList.toggle('hidden', this.isFulfilled);\n this.fulfilledIndicator.classList.toggle('hidden', !this.isFulfilled);\n }\n\n get label() {\n return this.getAttribute('label') || '';\n }\n\n get buttonLabel() {\n return this.getAttribute('button-label') || '';\n }\n\n get isFulfilled() {\n return this.getAttribute('fulfilled') === 'true';\n }\n\n init() {\n this.onLabelChange();\n this.onButtonLabelChange();\n this.onFulfilledChange();\n\n this.button.addEventListener('click', () =>\n this.dispatchEvent(new CustomEvent('button-clicked', { bubbles: true, composed: true }))\n );\n }\n\n static get observedAttributes() {\n return ['label', 'fulfilled'].concat(super.observedAttributes);\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n if (oldValue === newValue) {\n return;\n }\n\n if (name === 'label') {\n this.onLabelChange();\n } else if (name === 'fulfilled') {\n this.onFulfilledChange();\n } else if (name === 'button-label') {\n this.onButtonLabelChange();\n }\n }\n}\n\nconst { host, textField, buttons, badge, textWrapper, methodIconSlot } = {\n host: { selector: () => ':host' },\n textField: { selector: 'descope-text' },\n buttons: { selector: 'descope-button' },\n badge: { selector: 'descope-badge' },\n textWrapper: { selector: ' .text-wrapper' },\n methodIconSlot: { selector: 'slot[name=\"method-icon\"]' },\n};\n\nexport const UserAuthMethodClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: [\n { ...host, property: 'direction' },\n { ...textField, property: TextClass.cssVarList.hostDirection },\n { ...buttons, property: ButtonClass.cssVarList.hostDirection },\n { ...badge, property: BadgeClass.cssVarList.hostDirection },\n ],\n labelTextWidth: { ...textField, property: 'width' },\n itemsGap: [{ property: 'gap' }, { ...textWrapper, property: 'gap' }],\n iconSize: [\n { ...methodIconSlot, property: 'width' },\n { ...methodIconSlot, property: 'height' },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawUserAuthMethod);\n","import globals from '../globals';\nimport { UserAuthMethodClass } from '../../components/descope-user-auth-method/UserAuthMethodClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\nexport const vars = UserAuthMethodClass.cssVarList;\n\nconst userAuthMethod = {\n [vars.hostDirection]: globalRefs.direction,\n [vars.labelTextWidth]: '200px',\n [vars.itemsGap]: '16px',\n [vars.hostMinWidth]: '530px',\n [vars.iconSize]: '24px',\n _fullWidth: {\n [vars.hostWidth]: '100%',\n },\n};\n\nexport default userAuthMethod;\n","import { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport {\n getComponentName,\n forwardAttrs,\n observeAttributes,\n} from '../../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('saml-group-mappings-internal');\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: '' });\n\nclass SamlGroupMappingsInternal extends BaseInputClass {\n static get observedAttributes() {\n return ['invalid'].concat(BaseInputClass.observedAttributes || []);\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n <descope-text-field variant=\"body2\" bordered=\"true\"></descope-text-field>\n <descope-mappings-field></descope-mappings-field>\n `;\n\n this.groupInputElement = this.querySelector('descope-text-field');\n this.mappingsElement = this.querySelector('descope-mappings-field');\n }\n\n resetInvalidIndication() {\n this.removeAttribute('invalid');\n }\n\n handleMappingsInvalidChange(changedAttributes) {\n if (changedAttributes.includes('invalid')) {\n if (!this.mappingsElement.hasAttribute('invalid')) {\n this.resetInvalidIndication();\n }\n }\n }\n\n initFocusHandler() {\n // This event listener needs to be placed before the super.init() call\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) {\n const focusedElement = this.mappingsElement.checkValidity()\n ? this.groupInputElement\n : this.mappingsElement;\n focusedElement.focus();\n }\n });\n }\n\n init() {\n // This needs to be placed before the super.init() call to work\n this.initFocusHandler();\n\n super.init?.();\n\n forwardAttrs(this, this.groupInputElement, {\n mapAttrs: { 'label-group': 'label' },\n includeAttrs: ['size', 'label-group', 'readonly', 'disabled'],\n });\n\n forwardAttrs(this, this.mappingsElement, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'readonly',\n 'disabled',\n 'data-errormessage-pattern-mismatch',\n ],\n });\n\n // Observing the invalid attribute of the mappings field to reset the invalid state for this component.\n // When an invalid item turns valid, the mappings field will remove the invalid attribute, and at this component\n // level, we need to remove the invalid attribute as well to be able to mark the component as invalid the next time\n observeAttributes(this.mappingsElement, this.handleMappingsInvalidChange.bind(this), {\n includeAttrs: ['invalid'],\n });\n }\n\n get value() {\n return {\n group: this.groupInputElement.value,\n mappings: this.mappingsElement.value,\n };\n }\n\n set value(value) {\n if (value?.group && typeof value.group === 'string') {\n this.groupInputElement.value = value.group;\n }\n if (Array.isArray(value?.mappings)) {\n this.mappingsElement.value = value.mappings;\n }\n }\n\n getValidity() {\n if (!this.groupInputElement.checkValidity()) {\n return this.groupInputElement.validity;\n }\n if (!this.mappingsElement.checkValidity()) {\n return this.mappingsElement.validity;\n }\n\n return {};\n }\n\n #handleInvalidState(isInvalid) {\n if (isInvalid) {\n if (!this.groupInputElement.checkValidity()) {\n this.groupInputElement.setAttribute('invalid', 'true');\n return;\n }\n\n if (!this.mappingsElement.checkValidity()) {\n this.mappingsElement.setAttribute('invalid', 'true');\n }\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (attrName === 'invalid') {\n this.#handleInvalidState(newValue === 'true');\n }\n }\n}\n\nexport default SamlGroupMappingsInternal;\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../../mixins';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName, syncAttrs } from '../../../helpers/componentHelpers';\nimport { componentName as descopeInternalComponentName } from './descope-saml-group-mappings-internal/SamlGroupMappingsInternal';\n\nexport const componentName = getComponentName('saml-group-mappings');\n\nconst customMixin = (superclass) =>\n class SamlGroupMappingsMixinClass extends superclass {\n init() {\n super.init?.();\n\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n tabindex=\"-1\"\n ></${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'label-group',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'readonly',\n 'disabled',\n ],\n });\n\n syncAttrs(this, this.inputElement, { includeAttrs: ['invalid'] });\n }\n };\n\nconst { host, groupInput } = {\n host: { selector: () => ':host' },\n groupInput: { selector: 'descope-text-field' },\n};\n\nexport const SamlGroupMappingsClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n groupNameInputMarginBottom: { ...groupInput, property: 'margin-bottom' },\n },\n }),\n draggableMixin,\n proxyInputMixin({\n proxyProps: ['value', 'selectionStart'],\n inputEvent: 'input',\n triggerValidationEvents: ['mapping-item-added', 'mapping-item-removed'],\n proxyParentValidation: true,\n }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-custom-field',\n style: () => `\n :host {\n display: inline-flex;\n max-width: 100%;\n direction: ltr;\n }\n\n vaadin-custom-field {\n line-height: unset;\n width: 100%;\n }\n\n descope-text-field {\n width: auto;\n }\n\n descope-mappings-field {\n display: block;\n }\n `,\n excludeAttrsSync: [\n 'tabindex',\n 'label-group',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'error-message',\n ],\n componentName,\n })\n);\n\nexport default SamlGroupMappingsClass;\n","import { SamlGroupMappingsClass } from '../../components/mapping-fields/descope-saml-group-mappings/SamlGroupMappingsClass';\nimport { refs } from './inputWrapper';\n\nconst vars = SamlGroupMappingsClass.cssVarList;\n\nexport const samlGroupMappings = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.groupNameInputMarginBottom]: '1em',\n};\n\nexport default samlGroupMappings;\nexport { vars };\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { PolicyValidationClass } from '../../components/descope-policy-validation/PolicyValidationClass';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = PolicyValidationClass.cssVarList;\n\nconst policyValidation = {\n [vars.fontFamily]: refs.fontFamily,\n [vars.fontSize]: refs.labelFontSize,\n [vars.textColor]: refs.labelTextColor,\n [vars.borderWidth]: refs.borderWidth,\n [vars.borderStyle]: refs.borderStyle,\n [vars.borderColor]: refs.borderColor,\n [vars.borderRadius]: globalRefs.radius.sm,\n [vars.backgroundColor]: 'none',\n [vars.padding]: '0px',\n [vars.labelMargin]: globalRefs.spacing.sm,\n [vars.itemsSpacing]: globalRefs.spacing.lg,\n [vars.itemSymbolDefault]: \"'\\\\2022'\", // \"•\"\n [vars.itemSymbolSuccess]: \"'\\\\2713'\", // \"✓\"\n [vars.itemSymbolError]: \"'\\\\2A09'\", // \"⨉\"\n [vars.itemSymbolSuccessColor]: globalRefs.colors.success.main,\n [vars.itemSymbolErrorColor]: globalRefs.colors.error.main,\n};\n\nexport default policyValidation;\nexport { vars };\n","import { IconClass } from '../../components/descope-icon/IconClass';\n\nexport const vars = IconClass.cssVarList;\n\nconst icon = {};\n\nexport default icon;\n","export const decode = (input) => {\n const txt = document.createElement('textarea');\n txt.innerHTML = input;\n return txt.value;\n};\n\nexport const tpl = (input, inline) => {\n return inline ? input : `<pre>${input}</pre>`;\n};\n","import hljs from 'highlight.js';\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { decode, tpl } from './helpers';\n\nexport const componentName = getComponentName('code-snippet');\n\nclass CodeSnippet extends createBaseClass({ componentName, baseSelector: ':host > code' }) {\n static get observedAttributes() {\n return ['lang', 'inline'];\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <style>\n :host {\n display: inline-block;\n width: 100%;\n }\n code {\n display: block;\n width: 100%;\n min-height: 1em;\n overflow-x: scroll;\n overflow-y: scroll;\n }\n pre {\n margin: 0;\n }\n </style>\n <code class=\"hljs\"></code>\n `;\n }\n\n init() {\n super.init?.();\n\n this.lang = this.getAttribute('lang');\n this.isInline = this.getAttribute('inline') === 'true';\n\n observeChildren(this, this.#renderSnippet.bind(this));\n }\n\n get contentNode() {\n return this.shadowRoot.querySelector(this.baseSelector);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'inline') {\n this.isInline = newValue;\n }\n\n if (attrName === 'lang') {\n this.lang = newValue;\n }\n\n this.#renderSnippet();\n }\n }\n\n #renderSnippet() {\n const sanitized = decode(this.textContent);\n const language = this.lang;\n\n if (!language) {\n this.contentNode.textContent = sanitized;\n return;\n }\n\n const { value: highlighted } = hljs.highlight(sanitized, { language });\n\n this.contentNode.innerHTML = tpl(highlighted, this.isInline);\n }\n}\n\nconst {\n root,\n docTag,\n keyword,\n metaKeyword,\n templateTag,\n templateVariable,\n type,\n variableLanguage,\n title,\n titleClass,\n titleClassInherited,\n titleFunction,\n attr,\n attribute,\n literal,\n meta,\n number,\n operator,\n variable,\n selectorAttr,\n selectorClass,\n selectorId,\n regexp,\n string,\n metaString,\n builtIn,\n symbol,\n comment,\n code,\n formula,\n name,\n quote,\n selectorTag,\n selectorPseudo,\n subst,\n section,\n bullet,\n emphasis,\n strong,\n addition,\n deletion,\n charEscape,\n link,\n params,\n property,\n punctuation,\n tag,\n} = {\n root: { selector: () => '.hljs' },\n docTag: { selector: () => '.hljs-doctag' },\n keyword: { selector: () => '.hljs-keyword' },\n metaKeyword: { selector: () => '.hljs-meta .hljs-keyword' },\n templateTag: { selector: () => '.hljs-template-tag' },\n templateVariable: { selector: () => '.hljs-template-variable' },\n type: { selector: () => '.hljs-type' },\n variableLanguage: { selector: () => '.hljs-variable.language' },\n title: { selector: () => '.hljs-title' },\n titleClass: { selector: () => '.hljs-title.class_' },\n titleClassInherited: { selector: () => '.hljs-title.class_.inherited__' },\n titleFunction: { selector: () => '.hljs-title.function_' },\n attr: { selector: () => '.hljs-attr' },\n attribute: { selector: () => '.hljs-attribute' },\n literal: { selector: () => '.hljs-literal' },\n meta: { selector: () => '.hljs-meta' },\n number: { selector: () => '.hljs-number' },\n operator: { selector: () => '.hljs-operator' },\n variable: { selector: () => '.hljs-variable' },\n selectorAttr: { selector: () => '.hljs-selector-attr' },\n selectorClass: { selector: () => '.hljs-selector-class' },\n selectorId: { selector: () => '.hljs-selector-id' },\n regexp: { selector: () => '.hljs-regexp' },\n string: { selector: () => '.hljs-string' },\n metaString: { selector: () => '.hljs-meta .hljs-string' },\n builtIn: { selector: () => '.hljs-built_in' },\n symbol: { selector: () => '.hljs-symbol' },\n comment: { selector: () => '.hljs-comment' },\n code: { selector: () => '.hljs-code' },\n formula: { selector: () => '.hljs-formula' },\n name: { selector: () => '.hljs-name' },\n quote: { selector: () => '.hljs-quote' },\n selectorTag: { selector: () => '.hljs-selector-tag' },\n selectorPseudo: { selector: () => '.hljs-selector-pseudo' },\n subst: { selector: () => '.hljs-subst' },\n section: { selector: () => '.hljs-section' },\n bullet: { selector: () => '.hljs-bullet' },\n emphasis: { selector: () => '.hljs-emphasis' },\n strong: { selector: () => '.hljs-strong' },\n addition: { selector: () => '.hljs-addition' },\n deletion: { selector: () => '.hljs-deletion' },\n charEscape: { selector: () => '.hljs-char.escape' },\n link: { selector: () => '.hljs-link' },\n params: { selector: () => '.hljs-params' },\n property: { selector: () => '.hljs-property' },\n punctuation: { selector: () => '.hljs-punctuation' },\n tag: { selector: () => '.hljs-tag' },\n};\n\nexport const CodeSnippetClass = compose(\n createStyleMixin({\n mappings: {\n rootBgColor: { ...root, property: 'background-color' },\n rootTextColor: { ...root, property: 'color' },\n docTagTextColor: { ...docTag, property: 'color' },\n keywordTextColor: { ...keyword, property: 'color' },\n metaKeywordTextColor: { ...metaKeyword, property: 'color' },\n templateTagTextColor: { ...templateTag, property: 'color' },\n templateVariableTextColor: { ...templateVariable, property: 'color' },\n typeTextColor: { ...type, property: 'color' },\n variableLanguageTextColor: { ...variableLanguage, property: 'color' },\n titleTextColor: { ...title, property: 'color' },\n titleClassTextColor: { ...titleClass, property: 'color' },\n titleClassInheritedTextColor: { ...titleClassInherited, property: 'color' },\n titleFunctionTextColor: { ...titleFunction, property: 'color' },\n attrTextColor: { ...attr, property: 'color' },\n attributeTextColor: { ...attribute, property: 'color' },\n literalTextColor: { ...literal, property: 'color' },\n metaTextColor: { ...meta, property: 'color' },\n numberTextColor: { ...number, property: 'color' },\n operatorTextColor: { ...operator, property: 'color' },\n variableTextColor: { ...variable, property: 'color' },\n selectorAttrTextColor: { ...selectorAttr, property: 'color' },\n selectorClassTextColor: { ...selectorClass, property: 'color' },\n selectorIdTextColor: { ...selectorId, property: 'color' },\n regexpTextColor: { ...regexp, property: 'color' },\n stringTextColor: { ...string, property: 'color' },\n metaStringTextColor: { ...metaString, property: 'color' },\n builtInTextColor: { ...builtIn, property: 'color' },\n symbolTextColor: { ...symbol, property: 'color' },\n commentTextColor: { ...comment, property: 'color' },\n codeTextColor: { ...code, property: 'color' },\n formulaTextColor: { ...formula, property: 'color' },\n nameTextColor: { ...name, property: 'color' },\n quoteTextColor: { ...quote, property: 'color' },\n selectorTagTextColor: { ...selectorTag, property: 'color' },\n selectorPseudoTextColor: { ...selectorPseudo, property: 'color' },\n substTextColor: { ...subst, property: 'color' },\n sectionTextColor: { ...section, property: 'color' },\n bulletTextColor: { ...bullet, property: 'color' },\n emphasisTextColor: { ...emphasis, property: 'color' },\n strongTextColor: { ...strong, property: 'color' },\n additionTextColor: { ...addition, property: 'color' },\n additionBgColor: { ...addition, property: 'background-color' },\n deletionTextColor: { ...deletion, property: 'color' },\n deletionBgColor: { ...deletion, property: 'background-color' },\n charEscapeTextColor: { ...charEscape, property: 'color' },\n linkTextColor: { ...link, property: 'color' },\n paramsTextColor: { ...params, property: 'color' },\n propertyTextColor: { ...property, property: 'color' },\n punctuationTextColor: { ...punctuation, property: 'color' },\n tagTextColor: { ...tag, property: 'color' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(CodeSnippet);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { CodeSnippetClass } from '../../components/descope-code-snippet/CodeSnippetClass';\n\nconst globalRefs = getThemeRefs(globals);\n\nconst vars = CodeSnippetClass.cssVarList;\n\nconst light = {\n color1: '#fa0',\n color2: '#d73a49',\n color3: '#6f42c1',\n color4: '#005cc5',\n color5: '#e36209',\n color6: '#6a737d',\n color7: '#22863a',\n color8: '#24292e',\n color9: '#735c0f',\n color10: '#f0fff4',\n color11: '#b31d28',\n color12: '#ffeef0',\n color13: '#032f62',\n};\n\nconst dark = {\n color1: '#c9d1d9',\n color2: '#ff7b72',\n color3: '#d2a8ff',\n color4: '#79c0ff',\n color5: '#ffa657',\n color6: '#8b949e',\n color7: '#7ee787',\n color8: '#c9d1d9',\n color9: '#735c0f',\n color10: '#f0fff4',\n color11: '#67060c',\n color12: '#ffeef0',\n color13: '#a5d6ff',\n};\n\nconst CodeSnippet = {\n [vars.rootBgColor]: globalRefs.colors.surface.main,\n [vars.rootTextColor]: globalRefs.colors.surface.contrast,\n [vars.docTagTextColor]: light.color2,\n [vars.keywordTextColor]: light.color2,\n [vars.metaKeywordTextColor]: light.color2,\n [vars.templateTagTextColor]: light.color2,\n [vars.templateVariableTextColor]: light.color2,\n [vars.typeTextColor]: light.color2,\n [vars.variableLanguageTextColor]: light.color2,\n [vars.titleTextColor]: light.color3,\n [vars.titleClassTextColor]: light.color3,\n [vars.titleClassInheritedTextColor]: light.color3,\n [vars.titleFunctionTextColor]: light.color3,\n [vars.attrTextColor]: light.color4,\n [vars.attributeTextColor]: light.color4,\n [vars.literalTextColor]: light.color4,\n [vars.metaTextColor]: light.color4,\n [vars.numberTextColor]: light.color4,\n [vars.operatorTextColor]: light.color4,\n [vars.variableTextColor]: light.color4,\n [vars.selectorAttrTextColor]: light.color4,\n [vars.selectorClassTextColor]: light.color4,\n [vars.selectorIdTextColor]: light.color4,\n [vars.regexpTextColor]: light.color13,\n [vars.stringTextColor]: light.color13,\n [vars.metaStringTextColor]: light.color13,\n [vars.builtInTextColor]: light.color5,\n [vars.symbolTextColor]: light.color5,\n [vars.commentTextColor]: light.color6,\n [vars.codeTextColor]: light.color6,\n [vars.formulaTextColor]: light.color6,\n [vars.nameTextColor]: light.color7,\n [vars.quoteTextColor]: light.color7,\n [vars.selectorTagTextColor]: light.color7,\n [vars.selectorPseudoTextColor]: light.color7,\n [vars.substTextColor]: light.color8,\n [vars.sectionTextColor]: light.color4,\n [vars.bulletTextColor]: light.color9,\n [vars.emphasisTextColor]: light.color8,\n [vars.strongTextColor]: light.color8,\n [vars.additionTextColor]: light.color7,\n [vars.additionBgColor]: light.color10,\n [vars.deletionTextColor]: light.color2,\n [vars.deletionBgColor]: light.color10,\n /* purposely ignored */\n // [vars.charEscapeTextColor]: '',\n // [vars.linkTextColor]: '',\n // [vars.paramsTextColor]: '',\n // [vars.propertyTextColor]: '',\n // [vars.punctuationTextColor]: '',\n // [vars.tagTextColor ]: '',\n};\n\nexport const codeSnippetDarkThemeOverrides = {\n codeSnippet: {\n [vars.rootBgColor]: globalRefs.colors.surface.main,\n [vars.rootTextColor]: globalRefs.colors.surface.contrast,\n [vars.docTagTextColor]: dark.color2,\n [vars.keywordTextColor]: dark.color2,\n [vars.metaKeywordTextColor]: dark.color2,\n [vars.templateTagTextColor]: dark.color2,\n [vars.templateVariableTextColor]: dark.color2,\n [vars.typeTextColor]: dark.color2,\n [vars.variableLanguageTextColor]: dark.color2,\n [vars.titleTextColor]: dark.color3,\n [vars.titleClassTextColor]: dark.color3,\n [vars.titleClassInheritedTextColor]: dark.color3,\n [vars.titleFunctionTextColor]: dark.color3,\n [vars.attrTextColor]: dark.color4,\n [vars.attributeTextColor]: dark.color4,\n [vars.literalTextColor]: dark.color4,\n [vars.metaTextColor]: dark.color4,\n [vars.numberTextColor]: dark.color4,\n [vars.operatorTextColor]: dark.color4,\n [vars.variableTextColor]: dark.color4,\n [vars.selectorAttrTextColor]: dark.color4,\n [vars.selectorClassTextColor]: dark.color4,\n [vars.selectorIdTextColor]: dark.color4,\n [vars.regexpTextColor]: dark.color13,\n [vars.stringTextColor]: dark.color13,\n [vars.metaStringTextColor]: dark.color13,\n [vars.builtInTextColor]: dark.color5,\n [vars.symbolTextColor]: dark.color5,\n [vars.commentTextColor]: dark.color6,\n [vars.codeTextColor]: dark.color6,\n [vars.formulaTextColor]: dark.color6,\n [vars.nameTextColor]: dark.color7,\n [vars.quoteTextColor]: dark.color7,\n [vars.selectorTagTextColor]: dark.color7,\n [vars.selectorPseudoTextColor]: dark.color7,\n [vars.substTextColor]: dark.color8,\n [vars.sectionTextColor]: dark.color4,\n [vars.bulletTextColor]: dark.color9,\n [vars.emphasisTextColor]: dark.color8,\n [vars.strongTextColor]: dark.color8,\n [vars.additionTextColor]: dark.color7,\n [vars.additionBgColor]: dark.color10,\n [vars.deletionTextColor]: dark.color2,\n [vars.deletionBgColor]: dark.color10,\n },\n};\n\nexport default CodeSnippet;\nexport { vars };\n","import { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n proxyInputMixin,\n} from '../../mixins';\n\nexport const componentName = getComponentName('radio-button');\n\nconst customMixin = (superclass) =>\n class CustomMixin extends superclass {\n constructor() {\n super();\n\n this.baseElement.checkValidity = () => {};\n }\n\n init() {\n // we are forwarding vaadin checked-changed event\n this.baseElement.addEventListener('checked-changed', (e) => {\n this.dispatchEvent(\n new CustomEvent(\n 'checked-changed',\n { detail: e.detail },\n { bubbles: true, composed: true }\n )\n );\n });\n\n super.init?.();\n\n observeChildren(this, this.renderLabel.bind(this));\n }\n\n renderLabel() {\n this.baseElement.setAttribute('label', this.textContent);\n }\n\n get value() {\n return this.getAttribute('value');\n }\n };\n\nexport const RadioButtonClass = compose(\n createStyleMixin({\n mappings: {\n cursor: [{}, { selector: 'label' }],\n fontSize: [{ selector: 'label' }, {}],\n labelTextColor: { selector: 'label', property: 'color' },\n fontFamily: { selector: 'label' },\n radioSize: [\n { selector: '::part(radio)', property: 'height' },\n { selector: '::part(radio)', property: 'width' },\n ],\n radioBackgroundColor: { selector: '::part(radio)', property: 'background-color' },\n radioMargin: { selector: '::part(radio)', property: 'margin' },\n radioCheckedSize: { selector: '::part(radio)::after', property: 'border-width' },\n radioCheckedColor: { selector: '::part(radio)::after', property: 'border-color' },\n radioBorderColor: { selector: '::part(radio)', property: 'border-color', fallback: 'none' },\n radioBorderWidth: { selector: '::part(radio)', property: 'border-width', fallback: 0 },\n radioBorderStyle: { selector: '::part(radio)', property: 'border-style', fallback: 'solid' },\n },\n }),\n proxyInputMixin({ proxyProps: ['setSelectionRange'] }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [''],\n wrappedEleName: 'vaadin-radio-button',\n excludeAttrsSync: ['tabindex', 'data'],\n includeForwardProps: ['checked', 'name', 'disabled'],\n componentName,\n })\n);\n","import { compose } from '../../helpers';\nimport {\n forwardAttrs,\n getComponentName,\n observeAttributes,\n observeChildren,\n} from '../../helpers/componentHelpers';\nimport { resetInputLabelPosition } from '../../helpers/themeHelpers/resetHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n proxyInputMixin,\n} from '../../mixins';\nimport textFieldMappings from '../descope-text-field/textFieldMappings';\nimport { componentName as childNodeName, RadioButtonClass } from './RadioButtonClass';\n\nexport const componentName = getComponentName('radio-group');\n\nconst RadioGroupMixin = (superclass) =>\n class RadioGroupMixinClass extends superclass {\n // eslint-disable-next-line class-methods-use-this\n #renderItem = ({ value, label }) =>\n `<descope-radio-button value=\"${value}\">${label}</descope-radio-button>`;\n\n #data;\n\n constructor() {\n super();\n\n // we are overriding vaadin children getter so it will run on our custom elements\n Object.defineProperty(this.baseElement, 'children', {\n get: () => this.querySelectorAll(childNodeName),\n });\n\n // we are overriding vaadin __filterRadioButtons so it will run on our custom elements\n this.baseElement.__filterRadioButtons = (nodes) => {\n return nodes.filter((node) => node.localName === childNodeName);\n };\n\n // vaadin radio group missing some input properties\n this.baseElement.setCustomValidity = () => {};\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n get size() {\n return this.getAttribute('size');\n }\n\n get data() {\n if (this.#data) return this.#data;\n\n const dataAttr = this.getAttribute('data');\n\n if (dataAttr) {\n try {\n const data = JSON.parse(dataAttr);\n if (this.isValidDataType(data)) {\n return data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"data\" - ', e.message);\n }\n }\n\n return [];\n }\n\n set data(data) {\n if (this.isValidDataType(data)) {\n this.#data = data;\n this.renderItems();\n }\n }\n\n get defaultValue() {\n return this.getAttribute('default-value');\n }\n\n // eslint-disable-next-line class-methods-use-this\n isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data must be an array, received:', data);\n }\n\n return isValid;\n }\n\n getItemsTemplate() {\n return this.data?.reduce?.((acc, item) => acc + (this.#renderItem?.(item || {}) || ''), '');\n }\n\n renderItems() {\n const template = this.getItemsTemplate();\n if (template) this.innerHTML = template;\n }\n\n init() {\n super.init?.();\n\n this.inputElement = this.baseElement;\n\n this.renderItems();\n\n observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });\n\n Object.defineProperty(this.baseElement, 'validity', {\n get: () => {\n return { valueMissing: !this.baseElement.checkValidity() };\n },\n });\n\n forwardAttrs(this, this.baseElement, {\n includeAttrs: ['layout'],\n mapAttrs: { layout: 'theme' },\n });\n\n setTimeout(() => {\n if (this.defaultValue) {\n this.value = this.defaultValue;\n }\n });\n\n // we want new items to get the size\n observeChildren(this, ({ addedNodes }) => {\n addedNodes.forEach((node) => {\n node.setAttribute('size', this.size);\n });\n });\n\n observeAttributes(\n this,\n () => {\n this.items.forEach((item) => {\n item.setAttribute('size', this.size);\n });\n },\n {\n includeAttrs: ['size'],\n }\n );\n }\n };\n\nexport const RadioGroupClass = compose(\n createStyleMixin({\n mappings: {\n ...textFieldMappings,\n buttonsSpacing: { selector: '::part(group-field)', property: 'justify-content' },\n buttonsRowGap: { selector: '::part(group-field)', property: 'row-gap' },\n buttonsColumnGap: { selector: '::part(group-field)', property: 'column-gap' },\n itemsLabelColor: {\n selector: () => `::slotted(${RadioButtonClass.componentName})`,\n property: RadioButtonClass.cssVarList.labelTextColor,\n },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['setSelectionRange'] }),\n componentNameValidationMixin,\n RadioGroupMixin\n)(\n createProxy({\n slots: ['', 'prefix'],\n wrappedEleName: 'vaadin-radio-group',\n style: () => `\n :host {\n display: inline-block;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n vaadin-radio-group {\n padding: 0;\n width: 100%;\n }\n\n ${resetInputLabelPosition('vaadin-radio-group')}\n `,\n\n excludeAttrsSync: ['tabindex', 'size', 'data', 'direction'],\n componentName,\n includeForwardProps: ['value'],\n })\n);\n","import { RadioGroupClass } from '../../../components/descope-radio-group/RadioGroupClass';\nimport { getThemeRefs } from '../../../helpers/themeHelpers';\nimport globals from '../../globals';\nimport { refs } from '../inputWrapper';\n\nconst vars = RadioGroupClass.cssVarList;\nconst globalRefs = getThemeRefs(globals);\n\nexport const radioGroup = {\n [vars.buttonsRowGap]: '9px',\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.helperTextColor]: refs.helperTextColor,\n [vars.itemsLabelColor]: globalRefs.colors.surface.contrast,\n\n textAlign: {\n right: { [vars.inputTextAlign]: 'right' },\n left: { [vars.inputTextAlign]: 'left' },\n center: { [vars.inputTextAlign]: 'center' },\n },\n\n _fullWidth: {\n [vars.buttonsSpacing]: 'space-between',\n },\n\n _disabled: {\n [vars.itemsLabelColor]: globalRefs.colors.surface.light,\n },\n};\n\nexport default radioGroup;\nexport { vars };\n","import { RadioButtonClass } from '../../../components/descope-radio-group/RadioButtonClass';\nimport { getThemeRefs } from '../../../helpers/themeHelpers';\nimport globals from '../../globals';\nimport { refs } from '../inputWrapper';\n\nconst vars = RadioButtonClass.cssVarList;\nconst globalRefs = getThemeRefs(globals);\n\nexport const radioButton = {\n [vars.fontFamily]: refs.fontFamily,\n [vars.radioSize]: 'calc(1em + 6px)',\n [vars.radioMargin]: 'auto 4px',\n [vars.radioCheckedSize]: `calc(var(${vars.radioSize})/5)`,\n [vars.radioCheckedColor]: globalRefs.colors.surface.light,\n [vars.radioBackgroundColor]: globalRefs.colors.surface.light,\n [vars.radioBorderColor]: 'none',\n [vars.radioBorderWidth]: 0,\n\n _checked: {\n [vars.radioBackgroundColor]: globalRefs.colors.surface.contrast,\n },\n\n _hover: {\n cursor: 'pointer',\n },\n\n size: {\n xs: {\n [vars.fontSize]: '12px',\n },\n sm: {\n [vars.fontSize]: '14px',\n },\n md: {\n [vars.fontSize]: '16px',\n },\n lg: {\n [vars.fontSize]: '18px',\n },\n },\n};\n\nexport default radioButton;\nexport { vars };\n","export const activeableMixin = (superclass) =>\n class ActiveableMixinClass extends superclass {\n init() {\n super.init?.();\n\n this.baseElement.addEventListener('mousedown', (e) => {\n e.preventDefault();\n this.setAttribute('active', 'true');\n window.addEventListener('mouseup', () => this.removeAttribute('active'), {\n once: true,\n });\n });\n }\n };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { activeableMixin } from '../../mixins/activableMixin';\n\nexport const componentName = getComponentName('list-item');\n\nconst customMixin = (superclass) =>\n class ListItemMixinClass extends superclass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <style>\n /*css*/\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n\n /*!css*/\n </style>\n <slot></slot>\n `;\n }\n };\n\nexport const ListItemClass = compose(\n createStyleMixin({\n mappings: {\n padding: {},\n backgroundColor: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n borderRadius: {},\n outline: {},\n cursor: {},\n gap: {},\n maxWidth: { selector: () => ':host' },\n alignItems: {},\n flexDirection: {},\n transition: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin,\n activeableMixin\n)(createBaseClass({ componentName, baseSelector: 'slot' }));\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport { ListItemClass } from './ListItemClass';\n\nexport const componentName = getComponentName('list');\n\nclass RawList extends createBaseClass({ componentName, baseSelector: '.wrapper' }) {\n static get observedAttributes() {\n return ['variant', 'readonly'];\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t /*css*/\n .wrapper {\n overflow: auto;\n display: grid;\n max-height: 100%;\n width: 100%;\n }\n\n :host {\n display: inline-flex;\n width: 100%;\n }\n slot[name=\"empty-state\"] {\n justify-content: center;\n align-items: center;\n display: flex;\n flex-grow: 1;\n }\n\n :host slot[name=\"empty-state\"] {\n display: none;\n }\n :host([empty]) slot[name=\"empty-state\"] {\n display: flex;\n }\n ::slotted(:not([slot])) {\n width: 100%;\n }\n /*!css*/\n\t\t</style>\n\n <div class=\"wrapper\">\n <slot></slot>\n <slot name=\"empty-state\">\n No item...\n </slot>\n </div>\n\t`;\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n #handleEmptyState() {\n if (this.items.length === 0) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n }\n\n get variant() {\n return this.getAttribute('variant') || 'list';\n }\n\n #handleItemsVariant() {\n this.items.forEach((item) => {\n let listItem = item;\n if (listItem.localName !== ListItemClass.componentName) {\n listItem = item.querySelector(ListItemClass.componentName);\n }\n\n const listItemVariant = this.variant === 'tiles' ? 'tile' : 'row';\n listItem.setAttribute('variant', listItemVariant);\n });\n }\n\n init() {\n super.init?.();\n\n // we want new items to get the size\n observeChildren(this, () => {\n this.#handleEmptyState();\n this.#handleItemsVariant();\n this.#handleReadOnly();\n });\n }\n\n get isReadOnly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n #handleReadOnly() {\n this.items.forEach((item) => {\n if (this.isReadOnly) item.setAttribute('inert', '');\n else item.removeAttribute('inert');\n });\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (newValue === oldValue) return;\n\n if (name === 'variant') {\n this.#handleItemsVariant();\n } else if (name === 'readonly') {\n this.#handleReadOnly();\n }\n }\n}\n\nexport const ListClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n maxHeight: { selector: () => ':host' },\n minHeight: {},\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [{ property: 'padding-left' }, { property: 'padding-right' }],\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontFamily: {},\n gap: {},\n\n backgroundColor: {},\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n boxShadow: {},\n gridTemplateColumns: {},\n maxItemsWidth: { selector: () => '::slotted(:not([slot]))', property: 'max-width' },\n minItemsWidth: { selector: () => '::slotted(:not([slot]))', property: 'min-width' },\n itemsHorizontalAlign: { selector: () => '::slotted(*)', property: 'justify-self' },\n emptyStateTextColor: { selector: () => 'slot[name=\"empty-state\"]', property: 'color' },\n emptyStateTextFontFamily: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'font-family',\n },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawList);\n","import globals from '../../globals';\nimport { getThemeRefs, createHelperVars, useVar } from '../../../helpers/themeHelpers';\nimport { ListClass, componentName } from '../../../components/descope-list/ListClass';\n\nconst globalRefs = getThemeRefs(globals);\n\nconst compVars = ListClass.cssVarList;\n\nconst [helperTheme, helperRefs, helperVars] = createHelperVars(\n { shadowColor: '#00000020' },\n componentName\n);\n\nconst { shadowColor } = helperRefs;\n\nconst list = {\n ...helperTheme,\n\n [compVars.hostWidth]: '100%',\n [compVars.backgroundColor]: globalRefs.colors.surface.main,\n [compVars.fontFamily]: globalRefs.fonts.font1.family,\n [compVars.borderColor]: globalRefs.colors.surface.light,\n [compVars.borderStyle]: 'solid',\n [compVars.borderWidth]: globalRefs.border.xs,\n [compVars.borderRadius]: globalRefs.radius.sm,\n [compVars.gap]: globalRefs.spacing.md,\n [compVars.verticalPadding]: globalRefs.spacing.lg,\n [compVars.horizontalPadding]: globalRefs.spacing.lg,\n [compVars.boxShadow]: `${globalRefs.shadow.wide.sm} ${shadowColor}, ${globalRefs.shadow.narrow.sm} ${shadowColor}`,\n [compVars.maxHeight]: '100%',\n [compVars.hostDirection]: globalRefs.direction,\n [compVars.minItemsWidth]: '150px',\n\n _empty: {\n [compVars.minHeight]: '150px',\n [compVars.emptyStateTextColor]: globalRefs.colors.surface.dark,\n [compVars.emptyStateTextFontFamily]: globalRefs.fonts.font1.family,\n },\n\n variant: {\n tiles: {\n [compVars.gridTemplateColumns]: `repeat(auto-fit, minmax(min(${useVar(\n compVars.minItemsWidth\n )}, 100%), 1fr))`,\n [compVars.maxItemsWidth]: '200px',\n [compVars.itemsHorizontalAlign]: 'center',\n },\n },\n};\n\nexport default list;\n\nexport const vars = {\n ...compVars,\n ...helperVars,\n};\n","import globals from '../../globals';\nimport { getThemeRefs } from '../../../helpers/themeHelpers';\nimport { ListItemClass } from '../../../components/descope-list/ListItemClass';\n\nconst globalRefs = getThemeRefs(globals);\n\nexport const vars = ListItemClass.cssVarList;\n\nconst list = {\n [vars.backgroundColor]: globalRefs.colors.surface.main,\n [vars.padding]: globalRefs.spacing.lg,\n [vars.gap]: globalRefs.spacing.md,\n [vars.borderStyle]: 'solid',\n [vars.borderWidth]: globalRefs.border.xs,\n [vars.borderColor]: globalRefs.colors.surface.main,\n [vars.borderRadius]: globalRefs.radius.sm,\n [vars.cursor]: 'pointer',\n [vars.alignItems]: 'center',\n [vars.flexDirection]: 'row',\n [vars.transition]: 'border-color 0.2s, background-color 0.2s',\n\n variant: {\n tile: {\n [vars.alignItems]: 'flex-start',\n [vars.flexDirection]: 'column',\n [vars.borderColor]: globalRefs.colors.surface.light,\n },\n },\n\n _hover: {\n [vars.backgroundColor]: globalRefs.colors.surface.highlight,\n },\n\n _active: {\n [vars.backgroundColor]: globalRefs.colors.surface.main,\n [vars.borderColor]: globalRefs.colors.primary.light,\n [vars.outline]: `1px solid ${globalRefs.colors.primary.light}`,\n },\n};\n\nexport default list;\n","import { observeAttributes } from '../helpers/componentHelpers';\n\nconst defaultValidateSchema = () => true;\nconst defaultItemRenderer = (item) => `<pre>${JSON.stringify(item, null, 4)}</pre>`;\n\nconst createTemplate = (templateString) => {\n const template = document.createElement('template');\n template.innerHTML = templateString;\n\n return template;\n};\n\nconst getTemplateContent = (templateOrString) => {\n if (typeof templateOrString === 'string') {\n return createTemplate(templateOrString).content;\n }\n\n if (templateOrString instanceof HTMLTemplateElement) {\n return templateOrString.content;\n }\n\n // eslint-disable-next-line no-console\n console.error('Invalid template', templateOrString);\n return null;\n};\n\nexport const createDynamicDataMixin =\n ({\n itemRenderer = defaultItemRenderer,\n validateSchema = defaultValidateSchema,\n slotName,\n rerenderAttrsList = [],\n }) =>\n (superclass) =>\n class DynamicDataMixinClass extends superclass {\n #data = [];\n\n // eslint-disable-next-line class-methods-use-this\n #validateSchema(data) {\n if (!validateSchema) return true;\n\n const validation = validateSchema(data);\n if (validation === true) return true;\n\n // eslint-disable-next-line no-console\n console.error('Data schema validation failed', validation || '');\n\n return false;\n }\n\n #removeOldItems() {\n const selector = slotName ? `*[slot=\"${slotName}\"]` : ':not([slot])';\n this.baseElement.querySelectorAll(selector).forEach((item) => item.remove());\n }\n\n #renderItems() {\n this.#removeOldItems();\n this.data.forEach((item, index) => {\n const content = getTemplateContent(itemRenderer(item, index, this));\n this.baseElement.appendChild(content?.cloneNode(true));\n });\n }\n\n set data(value) {\n if (this.#validateSchema(value)) {\n this.#data = value;\n this.#renderItems();\n }\n }\n\n get data() {\n return this.#data;\n }\n\n init() {\n super.init?.();\n\n if (rerenderAttrsList.length) {\n observeAttributes(\n this,\n (attrs) => {\n if (attrs.includes('data')) this.#handleDataAttr();\n if (attrs.some((attr) => attr !== 'data')) this.#renderItems();\n },\n { includeAttrs: [...rerenderAttrsList, 'data'] }\n );\n } else {\n this.#renderItems();\n }\n }\n\n #handleDataAttr() {\n const dataAttr = this.getAttribute('data');\n\n if (!dataAttr) return;\n\n try {\n this.#data = JSON.parse(dataAttr);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('Invalid JSON data', dataAttr);\n }\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (newValue === oldValue) return;\n\n if (name === 'data') {\n try {\n this.data = JSON.parse(newValue);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('Invalid JSON data', newValue);\n }\n }\n }\n };\n","import { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n} from '../../mixins';\nimport { createDynamicDataMixin } from '../../mixins/createDynamicDataMixin';\nimport { TextClass } from '../descope-text/TextClass';\n\nexport const componentName = getComponentName('apps-list');\n\nconst limitAbbreviation = (str, limit = 2) =>\n str\n .trim()\n .split(' ')\n .splice(0, limit)\n .map((s) => s[0]?.toUpperCase())\n .join('');\n\nconst itemRenderer = ({ name, icon, url }, _, ref) => `\n <a ${url ? `href=\"${url}\" title=\"${url}\"` : ''} target=\"_blank\">\n <descope-list-item>\n <descope-avatar\n ${icon ? `img=\"${icon}\"` : ''}\n ${name ? `display-name=\"${name}\" abbr=${limitAbbreviation(name)}` : ''}\n size=${ref.size}\n ></descope-avatar>\n <descope-text\n variant=\"body1\"\n mode=\"primary\"\n >${name}</descope-text>\n </descope-list-item>\n </a>\n`;\n\nconst customMixin = (superclass) =>\n class AppsListMixinClass extends superclass {\n get size() {\n return this.getAttribute('size') || 'sm';\n }\n };\n\nexport const AppsListClass = compose(\n createStyleMixin({\n mappings: {\n maxHeight: { selector: () => ':host' },\n minHeight: { selector: () => ':host' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n itemsFontWeight: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontWeight,\n },\n itemsFontSize: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontSize,\n },\n itemsTextAlign: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.textAlign,\n },\n },\n }),\n createDynamicDataMixin({ itemRenderer, rerenderAttrsList: ['size'] }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: ['empty-state'],\n wrappedEleName: 'descope-list',\n excludeAttrsSync: ['tabindex', 'class', 'empty'],\n componentName,\n style: () => `\n :host {\n width: 100%;\n display: inline-flex;\n }\n\n descope-text::part(text-wrapper) {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n a {\n text-decoration: none;\n }\n\n descope-text {\n ${TextClass.cssVarList.hostDirection}: var(${AppsListClass.cssVarList.hostDirection});\n }\n `,\n })\n);\n","import { AppsListClass } from '../../components/descope-apps-list/AppsListClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport globals from '../globals';\n\nexport const vars = AppsListClass.cssVarList;\nconst globalRefs = getThemeRefs(globals);\n\nconst defaultHeight = '400px';\n\nconst appsList = {\n [vars.itemsFontWeight]: 'normal',\n [vars.itemsTextAlign]: 'start',\n [vars.hostDirection]: globalRefs.direction,\n [vars.maxHeight]: defaultHeight,\n\n _empty: {\n [vars.minHeight]: defaultHeight,\n },\n\n size: {\n xs: {\n [vars.itemsFontSize]: '14px',\n },\n sm: {\n [vars.itemsFontSize]: '14px',\n },\n md: {\n [vars.itemsFontSize]: '16px',\n },\n lg: {\n [vars.itemsFontSize]: '20px',\n },\n },\n};\n\nexport default appsList;\n","import * as button from './button';\nimport * as textField from './textField';\nimport * as password from './password';\nimport * as numberField from './numberField';\nimport * as emailField from './emailField';\nimport * as textArea from './textArea';\nimport * as checkbox from './checkbox';\nimport * as switchToggle from './switchToggle';\nimport * as container from './container';\nimport * as logo from './logo';\nimport * as totpImage from './totpImage';\nimport * as notpImage from './notpImage';\nimport * as text from './text';\nimport * as enrichedText from './enrichedText';\nimport * as link from './link';\nimport * as divider from './divider';\nimport * as passcode from './passcode';\nimport { loaderRadial, loaderLinear } from './loader';\nimport * as comboBox from './comboBox';\nimport * as image from './image';\nimport * as phoneField from './phoneField';\nimport * as phoneInputBoxField from './phoneInputBoxField';\nimport * as newPassword from './newPassword';\nimport * as inputWrapper from './inputWrapper';\nimport * as uploadFile from './uploadFile';\nimport * as buttonSelectionGroupItem from './buttonSelectionGroup/buttonSelectionGroupItem';\nimport * as buttonSelectionGroup from './buttonSelectionGroup/buttonSelectionGroup';\nimport * as buttonMultiSelectionGroup from './buttonSelectionGroup/buttonMultiSelectionGroup';\nimport * as modal from './modal';\nimport * as grid from './grid';\nimport * as notificationCard from './notificationCard';\nimport * as multiSelectComboBox from './multiSelectComboBox';\nimport * as badge from './badge';\nimport * as avatar from './avatar';\nimport * as mappingsField from './mappingsField';\nimport * as userAttribute from './userAttribute';\nimport * as userAuthMethod from './userAuthMethod';\nimport * as samlGroupMappings from './samlGroupMappings';\nimport * as policyValidation from './policyValidation';\nimport * as icon from './icon';\nimport * as codeSnippet from './codeSnippet';\nimport * as radioGroup from './radioGroup/radioGroup';\nimport * as radioButton from './radioGroup/radioButton';\nimport * as list from './list/list';\nimport * as listItem from './list/listItem';\nimport * as appsList from './appsList';\n\nconst components = {\n button,\n textField,\n password,\n numberField,\n emailField,\n textArea,\n checkbox,\n switchToggle,\n container,\n logo,\n totpImage,\n notpImage,\n text,\n enrichedText,\n link,\n divider,\n passcode,\n loaderRadial,\n loaderLinear,\n comboBox,\n image,\n phoneField,\n phoneInputBoxField,\n newPassword,\n inputWrapper,\n uploadFile,\n buttonSelectionGroupItem,\n buttonSelectionGroup,\n buttonMultiSelectionGroup,\n modal,\n grid,\n notificationCard,\n multiSelectComboBox,\n badge,\n avatar,\n mappingsField,\n userAttribute,\n userAuthMethod,\n samlGroupMappings,\n policyValidation,\n icon,\n codeSnippet,\n radioGroup,\n radioButton,\n list,\n listItem,\n appsList,\n};\n\nconst theme = Object.keys(components).reduce(\n (acc, comp) => ({ ...acc, [comp]: components[comp].default }),\n {}\n);\nconst vars = Object.keys(components).reduce(\n (acc, comp) => ({ ...acc, [comp]: components[comp].vars }),\n {}\n);\n\nexport default theme;\nexport { vars };\n","import globals, { vars as globalsVars } from './globals';\nimport components, { vars as componentsVars } from './components';\n\nexport const defaultTheme = { globals, components };\nexport const themeVars = { globals: globalsVars, components: componentsVars };\n","import merge from 'lodash.merge';\nimport { defaultTheme } from './theme';\nimport { codeSnippetDarkThemeOverrides } from './theme/components/codeSnippet';\n\nexport const colors = {\n surface: {\n main: '#181a1c',\n dark: '#bec4ca',\n light: '#555f68',\n highlight: '#22262a',\n contrast: '#f5f6f7',\n },\n primary: {\n main: '#1f80ff',\n dark: '#71aeff',\n light: '#004094',\n highlight: '#00214d',\n contrast: '#000000',\n },\n secondary: {\n main: '#a665eb',\n dark: '#b9a0f3',\n light: '#683ae6',\n highlight: '#361299',\n contrast: '#000000',\n },\n success: {\n main: '#27963c',\n dark: '#8bc3a2',\n light: '#004d0f',\n highlight: '#001f00',\n contrast: '#000000',\n },\n error: {\n main: '#f85249',\n dark: '#fa7c75',\n light: '#c51107',\n highlight: '#4a0603',\n contrast: '#000000',\n },\n};\n\nconst darkTheme = merge({}, defaultTheme, {\n globals: {\n colors,\n },\n components: {\n ...codeSnippetDarkThemeOverrides,\n },\n});\n\nexport default darkTheme;\n","import { draggableMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('recaptcha');\n\nconst observedAttributes = ['enabled', 'site-key', 'action', 'enterprise'];\n\nconst BaseClass = createBaseClass({\n componentName,\n baseSelector: ':host > div',\n});\nclass RawRecaptcha extends BaseClass {\n static get observedAttributes() {\n return observedAttributes.concat(BaseClass.observedAttributes || []);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (oldValue !== newValue) {\n if (attrName === 'enabled') {\n this.#toggleRecaptcha(newValue === 'true');\n }\n }\n }\n\n renderRecaptcha(enabled) {\n if (enabled) {\n this.recaptchaEle.style.display = '';\n this.mockRecaptchaEle.style.display = 'none';\n } else {\n this.recaptchaEle.style.display = 'none';\n this.mockRecaptchaEle.style.display = '';\n }\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n :host {\n display: inline-flex;\n }\n :host > div {\n display: flex;\n }\n :host #recaptcha .grecaptcha-badge {\n box-shadow: none !important;\n }\n :host #recaptcha .grecaptcha-logo {\n height: 100%;\n }\n :host #recaptcha {\n\t\t\t\twidth: 100%;\n height: 100%;\n\t\t\t}\n :host img {\n width: 256px;\n }\n\t\t</style>\n <div>\n <span id=\"recaptcha\"></span>\n <img src=\"https://imgs.descope.com/connectors/templates/recaptcha/recaptcha-big.png\" alt=\"recaptcha\"/>\n </div>\n\t`;\n\n this.recaptchaEle = this.baseElement.querySelector('#recaptcha');\n this.mockRecaptchaEle = this.baseElement.querySelector('img');\n }\n\n get enterprise() {\n return this.getAttribute('enterprise') === 'true';\n }\n\n get siteKey() {\n return this.getAttribute('site-key');\n }\n\n get action() {\n return this.getAttribute('action') || 'load';\n }\n\n get enabled() {\n return this.getAttribute('enabled') === 'true';\n }\n\n get scriptURL() {\n const url = new URL('https://www.google.com/recaptcha/');\n url.pathname += `${this.enterprise ? 'enterprise' : 'api'}.js`;\n url.searchParams.append('onload', 'onRecaptchaLoadCallback');\n url.searchParams.append('render', 'explicit');\n return url.toString();\n }\n\n #toggleRecaptcha(enabled) {\n this.renderRecaptcha(enabled);\n if (enabled) {\n this.#createOnLoadScript();\n if (!document.getElementById('recaptcha-script')) {\n this.#loadRecaptchaScript();\n } else {\n window.onRecaptchaLoadCallback();\n }\n }\n }\n\n #loadRecaptchaScript() {\n const script = document.createElement('script');\n script.src = this.scriptURL;\n script.async = true;\n script.id = 'recaptcha-script';\n script.defer = true;\n document.body.appendChild(script);\n }\n\n get grecaptchaInstance() {\n return this.enterprise ? window.grecaptcha?.enterprise : window.grecaptcha;\n }\n\n #getNewToken(grecaptchaInstance, currentNode, recaptchaWidgetId) {\n if (!this.isConnected) {\n return;\n }\n\n grecaptchaInstance.ready(() => {\n // clone the node and append it to the body so that it can be used by the grepcaptcha script\n const cloneNode = currentNode\n .querySelector('textarea[name^=\"g-recaptcha-response\"]')\n ?.cloneNode();\n if (cloneNode) {\n cloneNode.style.display = 'none';\n document.body.appendChild(cloneNode);\n }\n\n // cleaning up the recaptcha element we added to the body\n const removeCloneNode = () => {\n cloneNode.remove();\n };\n\n if (!this.siteKey) {\n return;\n }\n // we should pass recaptchaWidgetId, but this does not allow us to run execute multiple times\n // also calling grecaptchaInstance.reset() does not work\n const exec = grecaptchaInstance?.execute(recaptchaWidgetId, { action: this.action });\n exec.then((token, e) => {\n if (e) {\n // eslint-disable-next-line no-console\n console.warn('could not execute recaptcha', e);\n } else {\n this.updateComponentsContext({\n risktoken: token,\n riskaction: this.action,\n });\n // if the component is still connected, we should try to get a new token before the token expires (2 minutes)\n if (this.isConnected) {\n setTimeout(() => {\n this.#getNewToken(grecaptchaInstance, currentNode, recaptchaWidgetId);\n }, 110000);\n }\n }\n removeCloneNode();\n });\n });\n }\n\n #createOnLoadScript() {\n window.onRecaptchaLoadCallback = () => {\n const currentNode = this.recaptchaEle;\n\n // if there are child nodes, it means that the recaptcha was already rendered\n if (currentNode.hasChildNodes()) {\n return;\n }\n\n const { grecaptchaInstance } = this;\n\n if (!grecaptchaInstance) {\n return;\n }\n\n setTimeout(() => {\n const recaptchaWidgetId = grecaptchaInstance.render(currentNode, {\n sitekey: this.siteKey,\n badge: 'inline',\n size: 'invisible',\n });\n this.#getNewToken(grecaptchaInstance, currentNode, recaptchaWidgetId);\n }, 0);\n };\n }\n}\n\nexport const RecaptchaClass = compose(draggableMixin)(RawRecaptcha);\n","import { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName, syncAttrs } from '../../helpers/componentHelpers';\nimport {\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n hoverableMixin,\n} from '../../mixins';\n\nexport const componentName = getComponentName('notification');\n\nconst NotificationMixin = (superclass) =>\n class NotificationMixinClass extends superclass {\n #card;\n\n constructor() {\n super();\n\n const that = this;\n\n Object.defineProperty(this.baseElement, '_container', {\n get() {\n if (!NotificationMixinClass._container) {\n NotificationMixinClass._container = document.createElement(\n 'descope-notification-container'\n );\n\n // we are overriding the container position to be absolute because we want to keep in inside the flow/widget boundaries\n NotificationMixinClass._container.style.position = 'absolute';\n\n // we're adding the container to body to avoid Vaadin's container's `openChanged`\n // from breaking when trying to remove it directly from the body.\n document.body.appendChild(NotificationMixinClass._container);\n }\n\n if (!NotificationMixinClass._container.isConnected) {\n // Then, we're adding the container to the parentNode, which is the desired location\n // for us on the DOM\n setTimeout(() => that.parentNode.appendChild(NotificationMixinClass._container));\n }\n\n return NotificationMixinClass._container;\n },\n });\n\n Object.defineProperty(this.baseElement, '_card', {\n get() {\n return that.#card;\n },\n });\n\n // we want to replace the card with vaadin's remove notification so it will not throw\n this.baseElement._removeNotificationCard = this.close.bind(this);\n }\n\n close() {\n this.#card.close();\n }\n\n init() {\n super.init?.();\n\n this.createCard();\n\n forwardAttrs(this, this.#card);\n syncAttrs(this.#card, this, { includeAttrs: ['opened'] });\n\n this.baseElement.renderer = (cardRoot) => {\n Array.from(this.childNodes).forEach((child) => cardRoot.appendChild(child));\n };\n }\n\n // eslint-disable-next-line class-methods-use-this\n get isContainerEmpty() {\n return !NotificationMixinClass._container.children.length;\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeContainer() {\n NotificationMixinClass._container.remove();\n }\n\n removeNotification() {\n // remove descope-notification from the DOM\n this.remove();\n // if needed, remove descope-notification-container\n if (this.isContainerEmpty) this.removeContainer();\n }\n\n createCard() {\n this.#card = document.createElement('descope-notification-card');\n this.#card.addEventListener('card-closed', this.removeNotification.bind(this));\n }\n };\n\nexport const NotificationClass = compose(\n draggableMixin,\n componentNameValidationMixin,\n hoverableMixin,\n NotificationMixin\n)(\n createProxy({\n wrappedEleName: 'vaadin-notification',\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n"],"names":["forwardProps","colors","vars","observedAttributes","componentName","host","label","globalRefs","compVars","helperTheme","helperRefs","helperVars","placeholder","requiredIndicator","inputField","helperText","errorMessage","customMixin","proxyInputMixin","theme","textField","inputElement","textArea","descopeInternalComponentName","component","checkboxLabel","shadowColor","logo","text","selectors","wrapper","link","textCompVars","linkCompVars","textVars","after","internalWrapper","toggle","clearButton","BaseClass","phoneInput","separator","icon","title","badge","avatar","buttons","textWrapper","CodeSnippet","childNodeName","list","button","password","numberField","emailField","checkbox","switchToggle","container","enrichedText","divider","passcode","loaderRadial","loaderLinear","comboBox","image","phoneField","phoneInputBoxField","newPassword","uploadFile","buttonSelectionGroupItem","buttonSelectionGroup","buttonMultiSelectionGroup","modal","grid","multiSelectComboBox","mappingsField","userAttribute","userAuthMethod","samlGroupMappings","policyValidation","radioGroup","radioButton","appsList","components","globalsVars","componentsVars"],"mappings":"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","x_google_ignoreList":[17]}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/constants.js","../../src/helpers/index.js","../../src/helpers/componentHelpers.js","../../src/helpers/themeHelpers/componentsThemeManager.js","../../src/helpers/themeHelpers/index.js","../../src/helpers/themeHelpers/colorsHelpers.js","../../src/theme/globals.js","../../src/mixins/createStyleMixin/helpers.js","../../src/mixins/createStyleMixin/index.js","../../src/mixins/draggableMixin.js","../../src/mixins/componentNameValidationMixin.js","../../src/mixins/componentsContextMixin.js","../../src/mixins/hoverableMixin.js","../../src/mixins/normalizeBooleanAttributesMixin.js","../../src/baseClasses/createBaseClass.js","../../src/helpers/mixinsHelpers.js","../../src/mixins/createProxy.js","../../node_modules/element-internals-polyfill/dist/index.js","../../src/mixins/inputValidationMixin.js","../../src/mixins/proxyInputMixin.js","../../src/mixins/portalMixin.js","../../src/mixins/changeMixin.js","../../src/mixins/inputEventsDispatchingMixin.js","../../src/mixins/externalInputHelpers.js","../../src/mixins/externalInputMixin.js","../../src/components/descope-icon/helpers.js","../../src/components/descope-icon/IconClass.js","../../src/components/descope-button/clickableMixin.js","../../src/components/descope-button/ButtonClass.js","../../src/theme/components/button.js","../../src/components/descope-text-field/textFieldMappings.js","../../src/helpers/themeHelpers/resetHelpers.js","../../src/components/descope-text-field/TextFieldClass.js","../../src/theme/components/inputWrapper.js","../../src/theme/components/textField.js","../../src/components/descope-password/passwordDraggableMixin.js","../../src/components/descope-password/PasswordClass.js","../../src/theme/components/password.js","../../src/components/descope-number-field/NumberFieldClass.js","../../src/theme/components/numberField.js","../../src/components/descope-email-field/EmailFieldClass.js","../../src/theme/components/emailField.js","../../src/components/descope-text-area/TextAreaClass.js","../../src/theme/components/textArea.js","../../src/baseClasses/createBaseInputClass.js","../../src/components/boolean-fields/descope-boolean-field-internal/BooleanFieldInternal.js","../../src/components/boolean-fields/booleanFieldMixin.js","../../src/components/boolean-fields/commonStyles.js","../../src/components/boolean-fields/descope-checkbox/CheckboxClass.js","../../src/theme/components/checkbox.js","../../src/components/boolean-fields/descope-switch-toggle/SwitchToggleClass.js","../../src/theme/components/switchToggle.js","../../src/components/descope-container/ContainerClass.js","../../src/theme/components/container.js","../../src/baseClasses/createCssVarImageClass.js","../../src/components/descope-logo/LogoClass.js","../../src/theme/components/logo.js","../../src/components/descope-totp-image/TotpImageClass.js","../../src/theme/components/totpImage.js","../../src/components/descope-notp-image/NotpImageClass.js","../../src/theme/components/notpImage.js","../../src/components/descope-text/TextClass.js","../../src/theme/components/text.js","../../src/components/descope-enriched-text/consts.js","../../src/components/descope-enriched-text/helpers.js","../../src/components/descope-enriched-text/EnrichedTextClass.js","../../src/components/descope-link/LinkClass.js","../../src/theme/components/link.js","../../src/theme/components/enrichedText.js","../../src/components/descope-divider/DividerClass.js","../../src/theme/components/divider.js","../../src/components/descope-passcode/descope-passcode-internal/PasscodeInternal.js","../../src/components/descope-loader-radial/LoaderRadialClass.js","../../src/components/descope-passcode/PasscodeClass.js","../../src/theme/components/passcode.js","../../src/components/descope-loader-linear/LoaderLinearClass.js","../../src/theme/components/loader/loaderLinear.js","../../src/theme/components/loader/loaderRadial.js","../../src/components/descope-combo-box/ComboBoxClass.js","../../src/theme/components/comboBox.js","../../src/components/descope-image/ImageClass.js","../../src/theme/components/image.js","../../src/components/phone-fields/CountryCodes.js","../../src/components/phone-fields/descope-phone-field/descope-phone-field-internal/PhoneFieldInternal.js","../../src/components/phone-fields/descope-phone-field/PhoneFieldClass.js","../../src/theme/components/phoneField.js","../../src/components/phone-fields/descope-phone-input-box-field/descope-phone-input-box-internal/PhoneFieldInternalInputBox.js","../../src/components/phone-fields/descope-phone-input-box-field/PhoneFieldInputBoxClass.js","../../src/theme/components/phoneInputBoxField.js","../../src/components/descope-new-password/descope-new-password-internal/componentName.js","../../src/components/descope-policy-validation/helpers.js","../../src/components/descope-policy-validation/PolicyValidationClass.js","../../src/components/descope-new-password/NewPasswordClass.js","../../src/theme/components/newPassword.js","../../src/components/descope-upload-file/helpers.js","../../src/components/descope-upload-file/UploadFileClass.js","../../src/theme/components/uploadFile.js","../../src/components/button-selection-group-fields/descope-button-selection-group-item/ButtonSelectionGroupItemClass.js","../../src/theme/components/buttonSelectionGroup/buttonSelectionGroupItem.js","../../src/components/button-selection-group-fields/createBaseButtonSelectionGroupInternalClass.js","../../src/components/button-selection-group-fields/descope-button-selection-group-internal/ButtonSelectionGroupInternalClass.js","../../src/components/button-selection-group-fields/baseButtonSelectionGroup.js","../../src/components/button-selection-group-fields/descope-button-selection-group/ButtonSelectionGroupClass.js","../../src/theme/components/buttonSelectionGroup/baseButtonSelectionGroup.js","../../src/theme/components/buttonSelectionGroup/buttonSelectionGroup.js","../../src/components/button-selection-group-fields/descope-button-multi-selection-group-internal/ButtonMultiSelectionGroupInternalClass.js","../../src/components/button-selection-group-fields/descope-button-multi-selection-group/ButtonMultiSelectionGroupClass.js","../../src/theme/components/buttonSelectionGroup/buttonMultiSelectionGroup.js","../../src/components/descope-modal/ModalClass.js","../../src/theme/components/modal.js","../../src/components/descope-grid/helpers.js","../../src/components/descope-grid/GridClass.js","../../src/theme/components/grid.js","../../src/components/descope-notification/descope-notification-card/NotificationCardClass.js","../../src/theme/components/notificationCard.js","../../src/components/descope-multi-select-combo-box/MultiSelectComboBoxClass.js","../../src/theme/components/multiSelectComboBox.js","../../src/components/descope-badge/BadgeClass.js","../../src/theme/components/badge.js","../../src/components/descope-avatar/AvatarClass.js","../../src/theme/components/avatar.js","../../src/components/mapping-fields/descope-mappings-field/descope-mappings-field-internal/MappingsFieldInternal.js","../../src/components/mapping-fields/descope-mappings-field/MappingsFieldClass.js","../../src/theme/components/mappingsField.js","../../src/components/descope-user-attribute/delete.svg","../../src/components/descope-user-attribute/edit.svg","../../src/components/descope-user-attribute/UserAttributeClass.js","../../src/theme/components/userAttribute.js","../../src/components/descope-user-auth-method/green-v.svg","../../src/components/descope-user-auth-method/UserAuthMethodClass.js","../../src/theme/components/userAuthMethod.js","../../src/components/mapping-fields/descope-saml-group-mappings/descope-saml-group-mappings-internal/SamlGroupMappingsInternal.js","../../src/components/mapping-fields/descope-saml-group-mappings/SamlGroupMappingsClass.js","../../src/theme/components/samlGroupMappings.js","../../src/theme/components/policyValidation.js","../../src/theme/components/icon.js","../../src/components/descope-code-snippet/helpers.js","../../src/components/descope-code-snippet/CodeSnippetClass.js","../../src/theme/components/codeSnippet.js","../../src/components/descope-radio-group/RadioButtonClass.js","../../src/components/descope-radio-group/RadioGroupClass.js","../../src/theme/components/radioGroup/radioGroup.js","../../src/theme/components/radioGroup/radioButton.js","../../src/components/descope-date-field/consts.js","../../src/components/descope-date-field/helpers.js","../../src/components/descope-date-field/icons.js","../../src/components/descope-date-field/descope-calendar/helpers.js","../../src/components/descope-date-field/descope-calendar/CalendarClass.js","../../src/theme/components/calendar.js","../../src/components/descope-date-field/formats.js","../../src/components/descope-date-field/DateCounterClass.js","../../src/components/descope-date-field/DateFieldClass.js","../../src/theme/components/dateField.js","../../src/mixins/activableMixin.js","../../src/components/descope-list/ListItemClass.js","../../src/components/descope-list/ListClass.js","../../src/theme/components/list/list.js","../../src/theme/components/list/listItem.js","../../src/mixins/createDynamicDataMixin.js","../../src/components/descope-apps-list/AppsListClass.js","../../src/theme/components/appsList.js","../../src/theme/components/index.js","../../src/theme/index.js","../../src/darkTheme.js","../../src/components/descope-recaptcha/RecaptchaClass.js","../../src/components/descope-notification/NotificationClass.js"],"sourcesContent":["export const DESCOPE_PREFIX = 'descope';\nexport const CSS_SELECTOR_SPECIFIER_MULTIPLY = 3;\nexport const BASE_THEME_SECTION = 'host';\nexport const PORTAL_THEME_PREFIX = '@';\n","export const kebabCase = (str) =>\n str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_.]+/g, '-')\n .toLowerCase();\n\nexport const kebabCaseJoin = (...args) => kebabCase(args.filter((arg) => !!arg).join('-'));\n\nexport const compose =\n (...fns) =>\n (val) =>\n fns.reduceRight((res, fn) => fn(res), val);\n\nexport const upperFirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);\n\nexport const isFunction = (maybeFunc) => typeof maybeFunc === 'function';\n\nexport const isUrl = (maybeUrl) => {\n try {\n // eslint-disable-next-line no-new\n new URL(maybeUrl);\n\n return true;\n } catch (e) {\n return false;\n }\n};\n\n/**\n * Compares two arrays unorderedly.\n * @param {Array} arr1 - The first array to compare.\n * @param {Array} arr2 - The second array to compare.\n * @returns {boolean} - Returns true if the arrays are equal unorderedly, false otherwise.\n */\nexport const compareArraysUnordered = (arr1, arr2) => {\n if (!Array.isArray(arr1) || !Array.isArray(arr2)) {\n return false;\n }\n\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n const sortedArr1 = arr1.slice().sort();\n const sortedArr2 = arr2.slice().sort();\n\n for (let i = 0; i < sortedArr1.length; i++) {\n if (sortedArr1[i] !== sortedArr2[i]) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const toTitle = (str) =>\n str\n .replace(/([A-Z])/g, ' $1')\n .trim()\n .split(' ')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n","import { kebabCaseJoin } from '.';\nimport { DESCOPE_PREFIX } from '../constants';\n\nexport const observeAttributes = (ele, callback, { excludeAttrs = [], includeAttrs = [] }) => {\n // sync all attrs on init\n const filteredAttrs = Array.from(ele.attributes)\n .filter(\n (attr) =>\n !excludeAttrs.includes(attr.name) &&\n (!includeAttrs.length || includeAttrs.includes(attr.name))\n )\n .map((attr) => attr.name);\n\n callback(filteredAttrs);\n\n const observer = new MutationObserver((mutationsList) => {\n mutationsList.forEach((mutation) => {\n if (\n mutation.type === 'attributes' &&\n !excludeAttrs.includes(mutation.attributeName) &&\n (!includeAttrs.length || includeAttrs.includes(mutation.attributeName))\n ) {\n callback([mutation.attributeName]);\n }\n });\n });\n\n observer.observe(ele, { attributes: true });\n};\n\n// calling the callback with this object: { addedNodes, removedNodes }\nexport const observeChildren = (ele, callback) => {\n callback({ addedNodes: Array.from(ele.children), removedNodes: [] });\n\n const observer = new MutationObserver((mutationsList) => {\n mutationsList.forEach((mutation) => {\n if (mutation.type === 'childList' || mutation.type === 'characterData') {\n callback(mutation);\n }\n });\n });\n\n observer.observe(ele, { childList: true, characterData: true, subtree: true });\n};\n\nconst createSyncAttrsCb =\n (srcEle, targetEle, mapAttrs = {}) =>\n (attrNames) => {\n attrNames.forEach((attrName) => {\n const targetAttrName = mapAttrs[attrName] || attrName;\n const srcAttrVal = srcEle.getAttribute(attrName);\n if (srcAttrVal !== null) {\n if (targetEle.getAttribute(targetAttrName) !== srcAttrVal) {\n targetEle.setAttribute(targetAttrName, srcAttrVal);\n }\n } else {\n targetEle.removeAttribute(targetAttrName);\n }\n });\n };\n\nexport const syncAttrs = (ele1, ele2, options) => {\n observeAttributes(ele1, createSyncAttrsCb(ele1, ele2), options);\n observeAttributes(ele2, createSyncAttrsCb(ele2, ele1), options);\n};\n\nexport const getComponentName = (name) => kebabCaseJoin(DESCOPE_PREFIX, name);\n\nexport const getCssVarName = (...args) => `--${kebabCaseJoin(...args)}`;\n\nexport const forwardAttrs = (source, dest, options = {}) => {\n observeAttributes(source, createSyncAttrsCb(source, dest, options.mapAttrs), options);\n};\n\nexport const forwardProps = (src, target, props = []) => {\n if (!props.length) return;\n\n const config = props.reduce(\n (acc, prop) =>\n Object.assign(acc, {\n [prop]: {\n get() {\n return src[prop];\n },\n set(v) {\n // eslint-disable-next-line no-param-reassign\n src[prop] = v;\n },\n },\n }),\n {}\n );\n\n Object.defineProperties(target, config);\n};\n","class ComponentsThemeManager {\n static mountOnPropName = 'DescopeThemeManager';\n\n #themes = {};\n\n #currentThemeName = 'light';\n\n #callbacks = new Set();\n\n #notify() {\n this.#callbacks.forEach((cb) => cb?.());\n }\n\n get currentThemeName() {\n return this.#currentThemeName;\n }\n\n set currentThemeName(themeName) {\n this.#currentThemeName = themeName;\n this.#notify();\n }\n\n get currentTheme() {\n return this.#themes[this.currentThemeName];\n }\n\n onCurrentThemeChange(cb) {\n this.#callbacks.add(cb);\n\n return () => {\n this.#callbacks.delete(cb);\n };\n }\n\n set themes(themes) {\n this.#themes = themes;\n this.#notify();\n }\n\n get hasThemes() {\n return !!Object.keys(this.#themes).length;\n }\n}\n\nexport const componentsThemeManager = new ComponentsThemeManager();\n","import merge from 'lodash.merge';\nimport { BASE_THEME_SECTION, DESCOPE_PREFIX, PORTAL_THEME_PREFIX } from '../../constants';\nimport { isUrl, kebabCase } from '..';\nimport { getComponentName, getCssVarName } from '../componentHelpers';\n\nconst getVarName = (path) => getCssVarName(DESCOPE_PREFIX, ...path);\n\n// lodash.set alternative\nconst set = (obj, path, value) => {\n const pathArray = Array.isArray(path) ? path : path.match(/([^[.\\]])+/g);\n\n pathArray.reduce((acc, key, i) => {\n if (acc[key] === undefined) acc[key] = {};\n if (i === pathArray.length - 1) acc[key] = value;\n return acc[key];\n }, obj);\n\n return obj;\n};\n\nconst transformTheme = (theme, path, getTransformation) => {\n return Object.entries(theme).reduce((acc, [key, val]) => {\n if (val?.constructor !== Object) {\n return merge(acc, getTransformation(path.concat(key), val));\n }\n return merge(acc, transformTheme(val, [...path, key], getTransformation));\n }, {});\n};\n\nconst stringifyArray = (strArr) =>\n strArr.map((str) => (str.includes(' ') ? `\"${str}\"` : str)).join(', ');\n\nconst getCssVarValue = (val) => {\n switch (true) {\n case Array.isArray(val):\n return stringifyArray(val);\n case isUrl(val):\n return `url(${val})`;\n default:\n return val;\n }\n};\n\nexport const themeToCSSVarsObj = (theme) =>\n transformTheme(theme, [], (path, val) => ({\n [getVarName(path)]: getCssVarValue(val),\n }));\n\nexport const getThemeRefs = (theme, prefix) =>\n transformTheme(theme, [], (path) =>\n set({}, path, `var(${getVarName(prefix ? [prefix, ...path] : path)})`)\n );\n\nexport const getThemeVars = (theme, prefix) =>\n transformTheme(theme, [], (path) => set({}, path, getVarName(prefix ? [prefix, ...path] : path)));\n\nexport const globalsThemeToStyle = (theme, themeName = '') => {\n const style = Object.entries(themeToCSSVarsObj(theme)).reduce(\n (acc, entry) => `${acc}${entry.join(':')};\\n`,\n ''\n );\n\n if (!themeName) return style;\n\n return `*[data-theme=\"${themeName}\"] {${style}}`;\n};\n\nconst componentsThemeToStyleObj = (componentsTheme) =>\n transformTheme(componentsTheme, [], (path, val) => {\n const [component, ...restPath] = path;\n const property = restPath.pop();\n const componentName = getComponentName(component);\n\n if (property === 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(componentName, `theme value: \"${val}\" is mapped to an invalid property`);\n }\n\n // we need a support for portal components theme (e.g. overlay)\n // this allows us to generate those themes under different sections\n // if the theme has root level attribute that starts with #\n // we are generating a new theme\n let themeName = BASE_THEME_SECTION;\n\n if (restPath[0] && restPath[0].startsWith(PORTAL_THEME_PREFIX)) {\n themeName = restPath.shift();\n }\n\n // do not start with underscore -> key:value, must have 2 no underscore attrs in a row\n // starts with underscore -> attribute selector\n const attrsSelector = restPath.reduce((acc, section, idx) => {\n if (section.startsWith('_')) return `${acc}[${kebabCase(section.replace(/^_/, ''))}=\"true\"]`;\n\n const nextSection = restPath[idx + 1];\n\n if (typeof nextSection !== 'string' || nextSection.startsWith('_')) {\n // eslint-disable-next-line no-console\n console.error(\n 'theme generator',\n `your theme structure is invalid, attribute \"${section}\" is followed by \"${nextSection}\" which is not allowed`\n );\n return acc;\n }\n\n return `${acc}[${kebabCase(section)}=\"${restPath.splice(idx + 1, 1).join('')}\"]`;\n }, '');\n\n const selector = `:host${attrsSelector ? `(${attrsSelector})` : ''}`;\n\n return {\n [componentName]: {\n [themeName]: {\n [selector]: {\n [property]: getCssVarValue(val),\n },\n },\n },\n };\n });\n\nconst componentsThemeToStyle = (componentsTheme) =>\n Object.entries(componentsTheme).reduce(\n (acc, [selector, vars]) =>\n `${acc}${selector} { \\n${Object.entries(vars)\n .map(([key, val]) => `${key}: ${val}`)\n .join(';\\n')} \\n}\\n\\n`,\n ''\n );\n\nexport const createComponentsTheme = (componentsTheme) => {\n const styleObj = componentsThemeToStyleObj(componentsTheme);\n\n return Object.keys(styleObj).reduce((acc, componentName) => {\n const componentThemes = styleObj[componentName];\n\n return Object.assign(acc, {\n [componentName]: Object.keys(componentThemes).reduce(\n (res, theme) =>\n Object.assign(res, { [theme]: componentsThemeToStyle(componentThemes[theme]) }),\n {}\n ),\n });\n }, {});\n};\n\nexport const themeToStyle = ({ globals, components }, themeName) => ({\n globals: globalsThemeToStyle(globals, themeName),\n components: createComponentsTheme(components),\n});\n\nexport const useVar = (varName) => `var(${varName})`;\n\nexport const createHelperVars = (theme, prefix) => {\n const res = transformTheme(theme, [], (path, value) => {\n const modifiedPath = [...path];\n const property = modifiedPath.splice(-1);\n const varName = getCssVarName(prefix, property);\n\n const vars = { [property]: varName };\n const useVars = { [property]: useVar(varName) };\n\n return { theme: set({}, [...modifiedPath, varName], value), useVars, vars };\n });\n\n return [res.theme, res.useVars, res.vars];\n};\n\nexport { componentsThemeManager } from './componentsThemeManager';\n","import Color from 'color';\n\nconst colorGaps = {\n darkLight: 0.4,\n highlight: 0.8,\n contrast: 1,\n edgeColor: {\n darkLight: 0.25,\n highlight: 0.1,\n },\n};\n\nconst darken = (c, percentage) => c.darken(percentage).hex();\n\nconst contrast = (c) => {\n const isDark = c.isDark();\n return c\n .mix(Color(isDark ? 'white' : 'black'), colorGaps.contrast)\n .saturate(1)\n .hex();\n};\n\nconst lighten = (c, percentage) => {\n const isDark = c.lightness() < 0.5;\n\n if (isDark) {\n return c.lightness(percentage * 100).hex();\n }\n\n return c.lighten(percentage).hex();\n};\n\nconst isNearBlack = (color) => color.luminosity() < 0.01;\nconst isNearWhite = (color) => color.luminosity() > 0.99;\n\nconst generateDarkColor = (color, theme) => {\n if (theme === 'dark') {\n return isNearWhite(color)\n ? darken(color, colorGaps.edgeColor.darkLight)\n : lighten(color, colorGaps.darkLight);\n }\n\n return isNearBlack(color)\n ? lighten(color, colorGaps.edgeColor.darkLight)\n : darken(color, colorGaps.darkLight);\n};\n\nconst generateLightColor = (color, theme) => {\n if (theme === 'dark') {\n return isNearBlack(color)\n ? lighten(color, colorGaps.edgeColor.darkLight)\n : darken(color, colorGaps.darkLight);\n }\n\n return isNearWhite(color)\n ? darken(color, colorGaps.edgeColor.darkLight)\n : lighten(color, colorGaps.darkLight);\n};\n\nconst generateHighlightColor = (color, theme) => {\n if (theme === 'dark') {\n return isNearBlack(color)\n ? lighten(color, colorGaps.edgeColor.highlight)\n : darken(color, colorGaps.highlight);\n }\n\n return isNearWhite(color)\n ? darken(color, colorGaps.edgeColor.highlight)\n : lighten(color, colorGaps.highlight);\n};\n\nexport const genColor = (color, theme) => {\n const mainColor = new Color(color.main || color);\n\n const res = {\n main: mainColor.hex(),\n dark: color.dark || generateDarkColor(mainColor, theme),\n light: color.light || generateLightColor(mainColor, theme),\n highlight: color.highlight || generateHighlightColor(mainColor, theme),\n contrast: color.contrast || contrast(mainColor),\n };\n\n return res;\n};\n\nexport const genColors = (colors) => {\n return Object.keys(colors).reduce((acc, colorName) => {\n const currentColor = colors[colorName];\n\n return Object.assign(acc, {\n [colorName]: genColor(currentColor),\n });\n }, {});\n};\n","import { getThemeRefs, getThemeVars } from '../helpers/themeHelpers';\nimport { genColors } from '../helpers/themeHelpers/colorsHelpers';\n\nconst direction = 'ltr';\n\nexport const colors = genColors({\n surface: {\n main: '#ffffff',\n dark: '#636c74',\n light: '#cfd3d7',\n highlight: '#f4f5f6',\n contrast: '#181a1c',\n },\n primary: {\n main: '#006af5',\n dark: '#004094',\n light: '#71aeff',\n highlight: '#f0f6ff',\n contrast: '#ffffff',\n },\n secondary: {\n main: '#802ed6',\n dark: '#6410bc',\n light: '#be89f5',\n highlight: '#ede7f6',\n contrast: '#ffffff',\n },\n success: {\n main: '#008000',\n dark: '#005700',\n light: '#8bc38b',\n highlight: '#f5faf5',\n contrast: '#ffffff',\n },\n error: {\n main: '#e21d12',\n dark: '#b3170f',\n light: '#f4807a',\n highlight: '#fef1f1',\n contrast: '#ffffff',\n },\n});\n\nconst fonts = {\n font1: {\n family: [\n 'Roboto',\n 'ui-sans-serif',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n 'Segoe UI',\n 'Helvetica Neue',\n 'Arial',\n 'Noto Sans',\n 'sans-serif',\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol',\n 'Noto Color Emoji',\n ],\n label: 'Roboto',\n url: 'https://fonts.googleapis.com/css?family=Roboto:100,200,300,400,500,600,700,800,900',\n },\n font2: {\n family: [\n 'ui-sans-serif',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n 'Arial',\n 'Noto Sans',\n 'sans-serif',\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol',\n 'Noto Color Emoji',\n ],\n label: 'Sans Serif',\n },\n};\n\nconst fontsRef = getThemeRefs({ fonts }).fonts;\n\nconst typography = {\n h1: {\n font: fontsRef.font1.family,\n weight: '900',\n size: '48px',\n },\n h2: {\n font: fontsRef.font1.family,\n weight: '800',\n size: '38px',\n },\n h3: {\n font: fontsRef.font1.family,\n weight: '600',\n size: '28px',\n },\n subtitle1: {\n font: fontsRef.font2.family,\n weight: '500',\n size: '22px',\n },\n subtitle2: {\n font: fontsRef.font2.family,\n weight: '400',\n size: '20px',\n },\n body1: {\n font: fontsRef.font1.family,\n weight: '400',\n size: '16px',\n },\n body2: {\n font: fontsRef.font1.family,\n weight: '400',\n size: '14px',\n },\n};\n\nconst spacing = {\n xs: '2px',\n sm: '4px',\n md: '8px',\n lg: '16px',\n xl: '32px',\n};\n\nconst border = {\n xs: '1px',\n sm: '2px',\n md: '3px',\n lg: '4px',\n xl: '5px',\n};\n\nconst radius = {\n xs: '5px',\n sm: '10px',\n md: '15px',\n lg: '20px',\n xl: '25px',\n '2xl': '30px',\n '3xl': '35px',\n};\n\nconst shadow = {\n wide: {\n sm: '0 2px 3px -0.5px',\n md: '0 4px 6px -1px',\n lg: '0 10px 15px -3px',\n xl: '0 20px 25px -5px',\n '2xl': '0 25px 50px -12px',\n },\n narrow: {\n sm: '0 1px 2px -1px',\n md: '0 2px 4px -2px',\n lg: '0 4px 6px -4px',\n xl: '0 8px 10px -6px',\n '2xl': '0 16px 16px -8px',\n },\n};\n\nconst globals = {\n colors,\n typography,\n spacing,\n border,\n radius,\n shadow,\n fonts,\n direction,\n};\n\nexport default globals;\nexport const vars = getThemeVars(globals);\n","import { isFunction, kebabCase } from '../../helpers';\nimport { getCssVarName } from '../../helpers/componentHelpers';\n\nconst createCssVar = (varName, fallback) => `var(${varName}${fallback ? `, ${fallback}` : ''})`;\n\nconst createCssSelector = (baseSelector = '', relativeSelectorOrSelectorFn = '') =>\n isFunction(relativeSelectorOrSelectorFn)\n ? relativeSelectorOrSelectorFn(baseSelector)\n : `${baseSelector}${\n /^[A-Za-z]/.test(relativeSelectorOrSelectorFn)\n ? ` ${relativeSelectorOrSelectorFn}`\n : relativeSelectorOrSelectorFn\n }`;\n\nclass StyleBuilder {\n constructor() {\n this.styleMap = new Map();\n }\n\n add(selector, property, value) {\n if (!this.styleMap.has(selector)) {\n this.styleMap.set(selector, []);\n }\n\n this.styleMap.set(selector, [...this.styleMap.get(selector), { property, value }]);\n }\n\n toString() {\n return Array.from(this.styleMap.entries()).reduce((acc, [selector, propValArr]) => {\n const properties = propValArr\n .map(({ property, value }) => `${property}: ${value}`)\n .join(';\\n');\n\n return `${acc}${selector} { \\n${properties} \\n}\\n\\n`;\n }, '');\n }\n}\n\nconst normalizeConfig = (attr, config) => {\n const defaultMapping = { selector: '', property: kebabCase(attr) };\n\n if (!config || !Object.keys(config).length) return [defaultMapping];\n\n if (Array.isArray(config)) return config.map((entry) => ({ ...defaultMapping, ...entry }));\n\n return [{ ...defaultMapping, ...config }];\n};\n\nexport const createStyle = (componentName, baseSelector, mappings) => {\n const style = new StyleBuilder();\n\n Object.keys(mappings).forEach((attr) => {\n const attrConfig = normalizeConfig(attr, mappings[attr]);\n\n const cssVarName = getCssVarName(componentName, attr);\n\n attrConfig.forEach(\n ({ selector: relativeSelectorOrSelectorFn, property, important, fallback }) => {\n style.add(\n createCssSelector(baseSelector, relativeSelectorOrSelectorFn),\n isFunction(property) ? property() : property,\n createCssVar(cssVarName, fallback) + (important ? '!important' : '')\n );\n }\n );\n });\n\n return style.toString();\n};\n\nexport const createCssVarsList = (componentName, mappings) =>\n Object.keys(mappings).reduce(\n (acc, attr) => Object.assign(acc, { [attr]: getCssVarName(componentName, attr) }),\n {}\n );\n\n// on some cases we need a selector to be more specific than another\n// for this we have this fn that generate a class selector multiple times\nexport const createClassSelectorSpecifier = (className, numOfRepeats) =>\n Array(numOfRepeats).fill(`.${className}`).join('');\n","import { BASE_THEME_SECTION, CSS_SELECTOR_SPECIFIER_MULTIPLY } from '../../constants';\nimport { kebabCaseJoin } from '../../helpers';\nimport { getCssVarName, observeAttributes } from '../../helpers/componentHelpers';\nimport { componentsThemeManager } from '../../helpers/themeHelpers/componentsThemeManager';\nimport { createStyle, createCssVarsList, createClassSelectorSpecifier } from './helpers';\n\nconst STYLE_OVERRIDE_ATTR_PREFIX = 'st';\n\nexport const createStyleMixin =\n ({ mappings = {}, componentNameOverride = '' }) =>\n (superclass) => {\n const componentName = componentNameOverride || superclass.componentName;\n\n return class CustomStyleMixinClass extends superclass {\n static get cssVarList() {\n return {\n ...superclass.cssVarList,\n ...createCssVarsList(componentName, {\n ...mappings,\n }),\n };\n }\n\n #overrideStyleEle;\n\n #themeStyleEle;\n\n #disconnectThemeManager;\n\n #componentNameSuffix;\n\n #themeSection;\n\n #rootElement;\n\n #baseSelector;\n\n #styleAttributes;\n\n #getRootElement;\n\n // we are using this mixin also for portalMixin\n // so we should be able to inject styles to other DOM elements\n // this is why we need to support these overrides\n constructor({\n getRootElement,\n componentNameSuffix = '',\n themeSection = BASE_THEME_SECTION,\n baseSelector,\n } = {}) {\n super();\n this.#componentNameSuffix = componentNameSuffix;\n this.#themeSection = themeSection;\n this.#baseSelector = baseSelector ?? this.baseSelector;\n this.#getRootElement = getRootElement;\n\n this.#styleAttributes = Object.keys(mappings).map((key) =>\n kebabCaseJoin(STYLE_OVERRIDE_ATTR_PREFIX, componentNameSuffix, key)\n );\n }\n\n // eslint-disable-next-line class-methods-use-this\n get #componentTheme() {\n return componentsThemeManager.currentTheme?.[componentName] || '';\n }\n\n #onComponentThemeChange() {\n this.#themeStyleEle.innerHTML = this.#componentTheme[this.#themeSection];\n }\n\n #createComponentTheme() {\n this.#themeStyleEle = document.createElement('style');\n this.#themeStyleEle.id = `style-mixin-theme__${componentName}`;\n this.#rootElement.prepend(this.#themeStyleEle);\n this.#disconnectThemeManager = componentsThemeManager.onCurrentThemeChange(\n this.#onComponentThemeChange.bind(this)\n );\n this.#onComponentThemeChange();\n }\n\n #createOverridesStyle() {\n if (this.#styleAttributes.length) {\n this.#overrideStyleEle = document.createElement('style');\n this.#overrideStyleEle.id = `style-mixin-overrides__${componentName}`;\n\n const classSpecifier = createClassSelectorSpecifier(\n componentName,\n CSS_SELECTOR_SPECIFIER_MULTIPLY\n );\n\n this.#overrideStyleEle.innerText = `:host(${classSpecifier}) {}`;\n this.#rootElement.append(this.#overrideStyleEle);\n }\n }\n\n #setAttrOverride(attrName, value) {\n const style = this.#overrideStyleEle?.sheet?.cssRules[0].style;\n if (!style) return;\n\n const varName = getCssVarName(\n componentName,\n attrName.replace(new RegExp(`^${STYLE_OVERRIDE_ATTR_PREFIX}-`), '')\n );\n\n if (value) style?.setProperty(varName, value);\n else {\n style?.removeProperty(varName);\n this.removeAttribute(attrName);\n }\n }\n\n #updateOverridesStyle(attrs = []) {\n let shouldUpdate = false;\n\n attrs.forEach((attr) => {\n if (this.#styleAttributes.includes(attr)) {\n this.#setAttrOverride(attr, this.getAttribute(attr));\n shouldUpdate = true;\n }\n });\n\n if (shouldUpdate) {\n // we are rewriting the style back to the style tag\n this.#overrideStyleEle.innerHTML = this.#overrideStyleEle?.sheet?.cssRules[0].cssText;\n }\n }\n\n #createMappingStyle() {\n if (Object.keys(mappings).length) {\n const themeStyle = document.createElement('style');\n themeStyle.id = `style-mixin-mappings__${componentName}`;\n themeStyle.innerHTML = createStyle(\n kebabCaseJoin(componentName, this.#componentNameSuffix),\n this.#baseSelector,\n mappings\n );\n this.#rootElement.prepend(themeStyle);\n }\n }\n\n #addClassName(className) {\n (this.#rootElement.classList || this.#rootElement.host.classList).add(className);\n }\n\n async init() {\n super.init?.();\n if (this.shadowRoot.isConnected) {\n this.#rootElement = (await this.#getRootElement?.(this)) || this.shadowRoot;\n\n this.#addClassName(componentName);\n\n this.#createMappingStyle();\n this.#createComponentTheme();\n this.#createOverridesStyle();\n\n // this is instead attributeChangedCallback because we cannot use static methods in this case\n observeAttributes(this, this.#updateOverridesStyle.bind(this), {});\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback?.();\n\n this.#disconnectThemeManager?.();\n }\n };\n };\n","export const draggableMixin = (superclass) =>\n class DraggableMixinClass extends superclass {\n #styleEle = null;\n\n static get observedAttributes() {\n const superAttrs = superclass.observedAttributes || [];\n return [...superAttrs, 'draggable'];\n }\n\n constructor() {\n super();\n\n this.#styleEle = document.createElement('style');\n this.#styleEle.innerText = `* { cursor: inherit!important }`;\n }\n\n #handleDraggableStyle(isDraggable) {\n if (isDraggable) {\n this.shadowRoot.appendChild(this.#styleEle);\n } else {\n this.#styleEle.remove();\n }\n }\n\n get isDraggable() {\n return this.hasAttribute('draggable') && this.getAttribute('draggable') !== 'false';\n }\n\n init() {\n // because we are delegating the focus from the outer component,\n // the D&D is not working well in the page editor\n // in order to solve it we are making the inner component focusable on mouse down\n // and removing it on complete\n this.addEventListener('mousedown', (e) => {\n if (this.isDraggable) {\n const prevTabIndex = this.baseElement.getAttribute('tabindex');\n this.baseElement.setAttribute('tabindex', '-1');\n\n const onComplete = () => {\n prevTabIndex\n ? this.baseElement.setAttribute('tabindex', prevTabIndex)\n : this.baseElement.removeAttribute('tabindex');\n\n e.target.removeEventListener('mouseup', onComplete);\n e.target.removeEventListener('dragend', onComplete);\n };\n\n e.target.addEventListener('mouseup', onComplete, { once: true });\n e.target.addEventListener('dragend', onComplete, { once: true });\n }\n });\n\n super.init?.();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (attrName === 'draggable') {\n this.#handleDraggableStyle(newValue === 'true');\n }\n }\n };\n","export const componentNameValidationMixin = (superclass) =>\n class ComponentNameValidationMixinClass extends superclass {\n #checkComponentName() {\n const currentComponentName = this.localName;\n\n if (!superclass.componentName) {\n throw Error(\n `component name is not defined on super class, make sure you have a static get for \"componentName\"`\n );\n }\n\n if (currentComponentName !== superclass.componentName) {\n throw Error(\n `component name mismatch, expected \"${superclass.componentName}\", current \"${currentComponentName}\"`\n );\n }\n }\n\n init() {\n super.init?.();\n this.#checkComponentName();\n }\n };\n","export const componentsContextMixin = (superclass) =>\n class ComponentsContextMixinClass extends superclass {\n updateComponentsContext(componentsContext) {\n this.dispatchEvent(\n new CustomEvent('components-context', {\n bubbles: true,\n composed: true,\n detail: componentsContext,\n })\n );\n }\n };\n","export const hoverableMixin = (superclass) =>\n class HoverableMixinClass extends superclass {\n init() {\n super.init?.();\n\n this.baseElement.addEventListener('mouseover', (e) => {\n this.setAttribute('hover', 'true');\n e.target.addEventListener('mouseleave', () => this.removeAttribute('hover'), {\n once: true,\n });\n });\n }\n };\n","import { observeAttributes } from '../helpers/componentHelpers';\n\nconst booleanAttributesList = [\n 'readonly',\n 'focused',\n 'invalid',\n 'has-label',\n 'required',\n 'disabled',\n 'checked',\n 'has-helper',\n 'has-value',\n 'step-buttons-visible',\n 'hover',\n 'has-error-message',\n 'focus-ring',\n 'opened',\n 'active',\n 'password-visible',\n 'opening',\n 'closing',\n 'has-no-options',\n];\n\nconst isBooleanAttribute = (attr) => {\n return booleanAttributesList.includes(attr);\n};\n// we want all the valueless attributes to have \"true\" value\n// and all the falsy attribute to be removed\nexport const normalizeBooleanAttributesMixin = (superclass) =>\n class NormalizeBooleanAttributesMixinClass extends superclass {\n init() {\n super.init?.();\n\n observeAttributes(\n this,\n (attrs) =>\n attrs.forEach((attr) => {\n const attrVal = this.getAttribute(attr);\n\n if (isBooleanAttribute(attr)) {\n if (attrVal === '') {\n this.setAttribute(attr, 'true');\n } else if (attrVal === 'false') {\n this.removeAttribute(attr);\n }\n } else if (!attrVal) {\n // eslint-disable-next-line no-console\n console.debug(\n `attribute \"${attr}\" has no value, should it be added to the boolean attributes list?`\n );\n }\n }),\n {}\n );\n }\n };\n","import { compose } from '../helpers';\nimport { componentNameValidationMixin } from '../mixins/componentNameValidationMixin';\nimport { componentsContextMixin } from '../mixins/componentsContextMixin';\nimport { hoverableMixin } from '../mixins/hoverableMixin';\nimport { normalizeBooleanAttributesMixin } from '../mixins/normalizeBooleanAttributesMixin';\n\nexport const createBaseClass = ({ componentName, baseSelector = '' }) => {\n class DescopeBaseClass extends HTMLElement {\n static get componentName() {\n return componentName;\n }\n\n #baseElement;\n\n #isInit = true;\n\n // base selector is the selector for the component wrapper,\n // it's the highest element that is relevant for the layout\n // eslint-disable-next-line class-methods-use-this\n get baseSelector() {\n return baseSelector;\n }\n\n // this is the base element, which returned by querying the base selector\n get baseElement() {\n this.#baseElement ??= this.baseSelector\n ? this.rootElement.querySelector(this.baseSelector)\n : this;\n\n if (!this.#baseElement) {\n // eslint-disable-next-line no-console\n console.warn('missing base element for component', this.localName);\n }\n return this.#baseElement;\n }\n\n // this is the component root level element,\n // it can be either a shadow root or the component's node from the light DOM\n get rootElement() {\n return this.shadowRoot || this;\n }\n\n get name() {\n return this.getAttribute('name');\n }\n\n connectedCallback() {\n super.connectedCallback?.();\n\n if (this.rootElement.isConnected) {\n // the init function is running once, on the first time the component is connected\n if (this.#isInit) {\n this.#isInit = false;\n this.init?.();\n }\n }\n }\n }\n\n return compose(\n componentNameValidationMixin,\n hoverableMixin,\n normalizeBooleanAttributesMixin,\n componentsContextMixin\n )(DescopeBaseClass);\n};\n","// create a dispatch event function that also calls to the onevent function in case it's set\n// usage example:\n// #dispatchSomething = createDispatchEvent.bind(this, 'something' { ...options })\n// this will dispatch a new event when called, but also call to \"onsomething\"\nexport function createDispatchEvent(eventName, options = {}) {\n const event = new Event(eventName, options);\n\n this[`on${eventName}`]?.(event); // in case we got an event callback as property\n this.dispatchEvent(event);\n}\n","import { createBaseClass } from '../baseClasses/createBaseClass';\nimport { isFunction } from '../helpers';\nimport { forwardProps, syncAttrs } from '../helpers/componentHelpers';\nimport { createDispatchEvent } from '../helpers/mixinsHelpers';\n\nexport const createProxy = ({\n componentName,\n wrappedEleName,\n slots = [],\n style,\n excludeAttrsSync = [],\n includeAttrsSync = [],\n includeForwardProps = [],\n delegatesFocus = true,\n}) => {\n class ProxyClass extends createBaseClass({ componentName, baseSelector: wrappedEleName }) {\n #dispatchBlur = createDispatchEvent.bind(this, 'blur');\n\n #dispatchFocus = createDispatchEvent.bind(this, 'focus');\n\n constructor() {\n super().attachShadow({ mode: 'open', delegatesFocus }).innerHTML = `\n\t\t\t<style id=\"create-proxy\">${(isFunction(style) ? style() : style) || ''}</style>\n\t\t\t<${wrappedEleName}>\n\t\t\t${slots\n .map(\n (\n slot // when slot is an empty string, we will create the default slot (without a name)\n ) => `<slot ${slot ? `name=\"${slot}\" slot=\"${slot}\"` : ''}></slot>`\n )\n .join('')}\n\t\t\t</${wrappedEleName}>\n\t\t`;\n }\n\n init() {\n super.init?.();\n\n this.baseElement.addEventListener('blur', (_) => {\n this.#dispatchBlur();\n });\n\n this.baseElement.addEventListener('focus', (_) => {\n this.#dispatchFocus();\n });\n\n // this is needed for components that uses props, such as combo box\n forwardProps(this.baseElement, this, includeForwardProps);\n\n syncAttrs(this.baseElement, this, {\n excludeAttrs: excludeAttrsSync,\n includeAttrs: includeAttrsSync,\n });\n }\n }\n\n return ProxyClass;\n};\n","(function () {\n 'use strict';\n\n const refMap = new WeakMap();\n const validityMap = new WeakMap();\n const hiddenInputMap = new WeakMap();\n const internalsMap = new WeakMap();\n const validationMessageMap = new WeakMap();\n const formsMap = new WeakMap();\n const shadowHostsMap = new WeakMap();\n const formElementsMap = new WeakMap();\n const refValueMap = new WeakMap();\n const upgradeMap = new WeakMap();\n const shadowRootMap = new WeakMap();\n const validationAnchorMap = new WeakMap();\n const documentFragmentMap = new WeakMap();\n const connectedCallbackMap = new WeakMap();\n const validityUpgradeMap = new WeakMap();\n\n const aom = {\n ariaAtomic: 'aria-atomic',\n ariaAutoComplete: 'aria-autocomplete',\n ariaBusy: 'aria-busy',\n ariaChecked: 'aria-checked',\n ariaColCount: 'aria-colcount',\n ariaColIndex: 'aria-colindex',\n ariaColIndexText: 'aria-colindextext',\n ariaColSpan: 'aria-colspan',\n ariaCurrent: 'aria-current',\n ariaDisabled: 'aria-disabled',\n ariaExpanded: 'aria-expanded',\n ariaHasPopup: 'aria-haspopup',\n ariaHidden: 'aria-hidden',\n ariaInvalid: 'aria-invalid',\n ariaKeyShortcuts: 'aria-keyshortcuts',\n ariaLabel: 'aria-label',\n ariaLevel: 'aria-level',\n ariaLive: 'aria-live',\n ariaModal: 'aria-modal',\n ariaMultiLine: 'aria-multiline',\n ariaMultiSelectable: 'aria-multiselectable',\n ariaOrientation: 'aria-orientation',\n ariaPlaceholder: 'aria-placeholder',\n ariaPosInSet: 'aria-posinset',\n ariaPressed: 'aria-pressed',\n ariaReadOnly: 'aria-readonly',\n ariaRelevant: 'aria-relevant',\n ariaRequired: 'aria-required',\n ariaRoleDescription: 'aria-roledescription',\n ariaRowCount: 'aria-rowcount',\n ariaRowIndex: 'aria-rowindex',\n ariaRowIndexText: 'aria-rowindextext',\n ariaRowSpan: 'aria-rowspan',\n ariaSelected: 'aria-selected',\n ariaSetSize: 'aria-setsize',\n ariaSort: 'aria-sort',\n ariaValueMax: 'aria-valuemax',\n ariaValueMin: 'aria-valuemin',\n ariaValueNow: 'aria-valuenow',\n ariaValueText: 'aria-valuetext',\n role: 'role'\n };\n const initAom = (ref, internals) => {\n for (let key in aom) {\n internals[key] = null;\n let closureValue = null;\n const attributeName = aom[key];\n Object.defineProperty(internals, key, {\n get() {\n return closureValue;\n },\n set(value) {\n closureValue = value;\n if (ref.isConnected) {\n ref.setAttribute(attributeName, value);\n }\n else {\n upgradeMap.set(ref, internals);\n }\n }\n });\n }\n };\n\n function initNode(node) {\n const internals = internalsMap.get(node);\n const { form } = internals;\n initForm(node, form, internals);\n initLabels(node, internals.labels);\n }\n const walkFieldset = (node, firstRender = false) => {\n const walker = document.createTreeWalker(node, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node) {\n return internalsMap.has(node) ?\n NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n let current = walker.nextNode();\n const isCallNecessary = (!firstRender || node.disabled);\n while (current) {\n if (current.formDisabledCallback && isCallNecessary) {\n setDisabled(current, node.disabled);\n }\n current = walker.nextNode();\n }\n };\n const disabledOrNameObserverConfig = { attributes: true, attributeFilter: ['disabled', 'name'] };\n const disabledOrNameObserver = mutationObserverExists() ? new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n const target = mutation.target;\n if (mutation.attributeName === 'disabled') {\n if (target.constructor['formAssociated']) {\n setDisabled(target, target.hasAttribute('disabled'));\n }\n else if (target.localName === 'fieldset') {\n walkFieldset(target);\n }\n }\n if (mutation.attributeName === 'name') {\n if (target.constructor['formAssociated']) {\n const internals = internalsMap.get(target);\n const value = refValueMap.get(target);\n internals.setFormValue(value);\n }\n }\n }\n }) : {};\n function observerCallback(mutationList) {\n mutationList.forEach(mutationRecord => {\n const { addedNodes, removedNodes } = mutationRecord;\n const added = Array.from(addedNodes);\n const removed = Array.from(removedNodes);\n added.forEach(node => {\n if (internalsMap.has(node) && node.constructor['formAssociated']) {\n initNode(node);\n }\n if (upgradeMap.has(node)) {\n const internals = upgradeMap.get(node);\n const aomKeys = Object.keys(aom);\n aomKeys\n .filter(key => internals[key] !== null)\n .forEach(key => {\n node.setAttribute(aom[key], internals[key]);\n });\n upgradeMap.delete(node);\n }\n if (validityUpgradeMap.has(node)) {\n const internals = validityUpgradeMap.get(node);\n node.setAttribute('internals-valid', internals.validity.valid.toString());\n node.setAttribute('internals-invalid', (!internals.validity.valid).toString());\n node.setAttribute('aria-invalid', (!internals.validity.valid).toString());\n validityUpgradeMap.delete(node);\n }\n if (node.localName === 'form') {\n const formElements = formElementsMap.get(node);\n const walker = document.createTreeWalker(node, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node) {\n return (internalsMap.has(node) && node.constructor['formAssociated'] && !(formElements && formElements.has(node))) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n let current = walker.nextNode();\n while (current) {\n initNode(current);\n current = walker.nextNode();\n }\n }\n if (node.localName === 'fieldset') {\n disabledOrNameObserver.observe?.(node, disabledOrNameObserverConfig);\n walkFieldset(node, true);\n }\n });\n removed.forEach(node => {\n const internals = internalsMap.get(node);\n if (internals && hiddenInputMap.get(internals)) {\n removeHiddenInputs(internals);\n }\n if (shadowHostsMap.has(node)) {\n const observer = shadowHostsMap.get(node);\n observer.disconnect();\n }\n });\n });\n }\n function fragmentObserverCallback(mutationList) {\n mutationList.forEach(mutation => {\n const { removedNodes } = mutation;\n removedNodes.forEach(node => {\n const observer = documentFragmentMap.get(mutation.target);\n if (internalsMap.has(node)) {\n upgradeInternals(node);\n }\n observer.disconnect();\n });\n });\n }\n const deferUpgrade = (fragment) => {\n const observer = new MutationObserver(fragmentObserverCallback);\n observer.observe?.(fragment, { childList: true });\n documentFragmentMap.set(fragment, observer);\n };\n mutationObserverExists() ? new MutationObserver(observerCallback) : {};\n const observerConfig = {\n childList: true,\n subtree: true\n };\n\n const setDisabled = (ref, disabled) => {\n ref.toggleAttribute('internals-disabled', disabled);\n if (disabled) {\n ref.setAttribute('aria-disabled', 'true');\n }\n else {\n ref.removeAttribute('aria-disabled');\n }\n if (ref.formDisabledCallback) {\n ref.formDisabledCallback.apply(ref, [disabled]);\n }\n };\n const removeHiddenInputs = (internals) => {\n const hiddenInputs = hiddenInputMap.get(internals);\n hiddenInputs.forEach(hiddenInput => {\n hiddenInput.remove();\n });\n hiddenInputMap.set(internals, []);\n };\n const createHiddenInput = (ref, internals) => {\n const input = document.createElement('input');\n input.type = 'hidden';\n input.name = ref.getAttribute('name');\n ref.after(input);\n hiddenInputMap.get(internals).push(input);\n return input;\n };\n const initRef = (ref, internals) => {\n hiddenInputMap.set(internals, []);\n disabledOrNameObserver.observe?.(ref, disabledOrNameObserverConfig);\n };\n const initLabels = (ref, labels) => {\n if (labels.length) {\n Array.from(labels).forEach(label => label.addEventListener('click', ref.click.bind(ref)));\n let firstLabelId = labels[0].id;\n if (!labels[0].id) {\n firstLabelId = `${labels[0].htmlFor}_Label`;\n labels[0].id = firstLabelId;\n }\n ref.setAttribute('aria-labelledby', firstLabelId);\n }\n };\n const setFormValidity = (form) => {\n const nativeControlValidity = Array.from(form.elements)\n .filter((element) => !element.tagName.includes('-') && element.validity)\n .map((element) => element.validity.valid);\n const polyfilledElements = formElementsMap.get(form) || [];\n const polyfilledValidity = Array.from(polyfilledElements)\n .filter(control => control.isConnected)\n .map((control) => internalsMap.get(control).validity.valid);\n const hasInvalid = [...nativeControlValidity, ...polyfilledValidity].includes(false);\n form.toggleAttribute('internals-invalid', hasInvalid);\n form.toggleAttribute('internals-valid', !hasInvalid);\n };\n const formInputCallback = (event) => {\n setFormValidity(findParentForm(event.target));\n };\n const formChangeCallback = (event) => {\n setFormValidity(findParentForm(event.target));\n };\n const wireSubmitLogic = (form) => {\n const submitButtonSelector = ['button[type=submit]', 'input[type=submit]', 'button:not([type])']\n .map(sel => `${sel}:not([disabled])`)\n .map(sel => `${sel}:not([form])${form.id ? `,${sel}[form='${form.id}']` : ''}`)\n .join(',');\n form.addEventListener('click', event => {\n const target = event.target;\n if (target.closest(submitButtonSelector)) {\n const elements = formElementsMap.get(form);\n if (form.noValidate) {\n return;\n }\n if (elements.size) {\n const nodes = Array.from(elements);\n const validityList = nodes\n .reverse()\n .map(node => {\n const internals = internalsMap.get(node);\n return internals.reportValidity();\n });\n if (validityList.includes(false)) {\n event.preventDefault();\n }\n }\n }\n });\n };\n const formResetCallback = (event) => {\n const elements = formElementsMap.get(event.target);\n if (elements && elements.size) {\n elements.forEach(element => {\n if (element.constructor.formAssociated && element.formResetCallback) {\n element.formResetCallback.apply(element);\n }\n });\n }\n };\n const initForm = (ref, form, internals) => {\n if (form) {\n const formElements = formElementsMap.get(form);\n if (formElements) {\n formElements.add(ref);\n }\n else {\n const initSet = new Set();\n initSet.add(ref);\n formElementsMap.set(form, initSet);\n wireSubmitLogic(form);\n form.addEventListener('reset', formResetCallback);\n form.addEventListener('input', formInputCallback);\n form.addEventListener('change', formChangeCallback);\n }\n formsMap.set(form, { ref, internals });\n if (ref.constructor['formAssociated'] && ref.formAssociatedCallback) {\n setTimeout(() => {\n ref.formAssociatedCallback.apply(ref, [form]);\n }, 0);\n }\n setFormValidity(form);\n }\n };\n const findParentForm = (elem) => {\n let parent = elem.parentNode;\n if (parent && parent.tagName !== 'FORM') {\n parent = findParentForm(parent);\n }\n return parent;\n };\n const throwIfNotFormAssociated = (ref, message, ErrorType = DOMException) => {\n if (!ref.constructor['formAssociated']) {\n throw new ErrorType(message);\n }\n };\n const overrideFormMethod = (form, returnValue, method) => {\n const elements = formElementsMap.get(form);\n if (elements && elements.size) {\n elements.forEach(element => {\n const internals = internalsMap.get(element);\n const valid = internals[method]();\n if (!valid) {\n returnValue = false;\n }\n });\n }\n return returnValue;\n };\n const upgradeInternals = (ref) => {\n if (ref.constructor['formAssociated']) {\n const internals = internalsMap.get(ref);\n const { labels, form } = internals;\n initLabels(ref, labels);\n initForm(ref, form, internals);\n }\n };\n function mutationObserverExists() {\n return typeof MutationObserver !== 'undefined';\n }\n\n class ValidityState {\n constructor() {\n this.badInput = false;\n this.customError = false;\n this.patternMismatch = false;\n this.rangeOverflow = false;\n this.rangeUnderflow = false;\n this.stepMismatch = false;\n this.tooLong = false;\n this.tooShort = false;\n this.typeMismatch = false;\n this.valid = true;\n this.valueMissing = false;\n Object.seal(this);\n }\n }\n const setValid = (validityObject) => {\n validityObject.badInput = false;\n validityObject.customError = false;\n validityObject.patternMismatch = false;\n validityObject.rangeOverflow = false;\n validityObject.rangeUnderflow = false;\n validityObject.stepMismatch = false;\n validityObject.tooLong = false;\n validityObject.tooShort = false;\n validityObject.typeMismatch = false;\n validityObject.valid = true;\n validityObject.valueMissing = false;\n return validityObject;\n };\n const reconcileValidity = (validityObject, newState, form) => {\n validityObject.valid = isValid(newState);\n Object.keys(newState).forEach(key => validityObject[key] = newState[key]);\n if (form) {\n setFormValidity(form);\n }\n return validityObject;\n };\n const isValid = (validityState) => {\n let valid = true;\n for (let key in validityState) {\n if (key !== 'valid' && validityState[key] !== false) {\n valid = false;\n }\n }\n return valid;\n };\n\n const customStateMap = new WeakMap();\n function addState(ref, stateName) {\n ref.toggleAttribute(stateName, true);\n if (ref.part) {\n ref.part.add(stateName);\n }\n }\n class CustomStateSet extends Set {\n static get isPolyfilled() {\n return true;\n }\n constructor(ref) {\n super();\n if (!ref || !ref.tagName || ref.tagName.indexOf('-') === -1) {\n throw new TypeError('Illegal constructor');\n }\n customStateMap.set(this, ref);\n }\n add(state) {\n if (!/^--/.test(state) || typeof state !== 'string') {\n throw new DOMException(`Failed to execute 'add' on 'CustomStateSet': The specified value ${state} must start with '--'.`);\n }\n const result = super.add(state);\n const ref = customStateMap.get(this);\n const stateName = `state${state}`;\n if (ref.isConnected) {\n addState(ref, stateName);\n }\n else {\n setTimeout(() => {\n addState(ref, stateName);\n });\n }\n return result;\n }\n clear() {\n for (let [entry] of this.entries()) {\n this.delete(entry);\n }\n super.clear();\n }\n delete(state) {\n const result = super.delete(state);\n const ref = customStateMap.get(this);\n if (ref.isConnected) {\n ref.toggleAttribute(`state${state}`, false);\n if (ref.part) {\n ref.part.remove(`state${state}`);\n }\n }\n else {\n setTimeout(() => {\n ref.toggleAttribute(`state${state}`, false);\n if (ref.part) {\n ref.part.remove(`state${state}`);\n }\n });\n }\n return result;\n }\n }\n\n function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n }\n function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n }\n\n var _HTMLFormControlsCollection_elements;\n class HTMLFormControlsCollection {\n constructor(elements) {\n _HTMLFormControlsCollection_elements.set(this, void 0);\n __classPrivateFieldSet(this, _HTMLFormControlsCollection_elements, elements, \"f\");\n for (let i = 0; i < elements.length; i++) {\n let element = elements[i];\n this[i] = element;\n if (element.hasAttribute('name')) {\n this[element.getAttribute('name')] = element;\n }\n }\n Object.freeze(this);\n }\n get length() {\n return __classPrivateFieldGet(this, _HTMLFormControlsCollection_elements, \"f\").length;\n }\n [(_HTMLFormControlsCollection_elements = new WeakMap(), Symbol.iterator)]() {\n return __classPrivateFieldGet(this, _HTMLFormControlsCollection_elements, \"f\")[Symbol.iterator]();\n }\n item(i) {\n return this[i] == null ? null : this[i];\n }\n namedItem(name) {\n return this[name] == null ? null : this[name];\n }\n }\n\n function patchFormPrototype() {\n const checkValidity = HTMLFormElement.prototype.checkValidity;\n HTMLFormElement.prototype.checkValidity = checkValidityOverride;\n const reportValidity = HTMLFormElement.prototype.reportValidity;\n HTMLFormElement.prototype.reportValidity = reportValidityOverride;\n function checkValidityOverride(...args) {\n let returnValue = checkValidity.apply(this, args);\n return overrideFormMethod(this, returnValue, 'checkValidity');\n }\n function reportValidityOverride(...args) {\n let returnValue = reportValidity.apply(this, args);\n return overrideFormMethod(this, returnValue, 'reportValidity');\n }\n const { get } = Object.getOwnPropertyDescriptor(HTMLFormElement.prototype, 'elements');\n Object.defineProperty(HTMLFormElement.prototype, 'elements', {\n get(...args) {\n const elements = get.call(this, ...args);\n const polyfilledElements = Array.from(formElementsMap.get(this) || []);\n if (polyfilledElements.length === 0) {\n return elements;\n }\n const orderedElements = Array.from(elements).concat(polyfilledElements).sort((a, b) => {\n if (a.compareDocumentPosition) {\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n return 0;\n });\n return new HTMLFormControlsCollection(orderedElements);\n },\n });\n }\n\n class ElementInternals {\n static get isPolyfilled() {\n return true;\n }\n constructor(ref) {\n if (!ref || !ref.tagName || ref.tagName.indexOf('-') === -1) {\n throw new TypeError('Illegal constructor');\n }\n const rootNode = ref.getRootNode();\n const validity = new ValidityState();\n this.states = new CustomStateSet(ref);\n refMap.set(this, ref);\n validityMap.set(this, validity);\n internalsMap.set(ref, this);\n initAom(ref, this);\n initRef(ref, this);\n Object.seal(this);\n if (rootNode instanceof DocumentFragment) {\n deferUpgrade(rootNode);\n }\n }\n checkValidity() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to execute 'checkValidity' on 'ElementInternals': The target element is not a form-associated custom element.`);\n if (!this.willValidate) {\n return true;\n }\n const validity = validityMap.get(this);\n if (!validity.valid) {\n const validityEvent = new Event('invalid', {\n bubbles: false,\n cancelable: true,\n composed: false\n });\n ref.dispatchEvent(validityEvent);\n }\n return validity.valid;\n }\n get form() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'form' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n let form;\n if (ref.constructor['formAssociated'] === true) {\n form = findParentForm(ref);\n }\n return form;\n }\n get labels() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'labels' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n const id = ref.getAttribute('id');\n const hostRoot = ref.getRootNode();\n if (hostRoot && id) {\n return hostRoot.querySelectorAll(`[for=\"${id}\"]`);\n }\n return [];\n }\n reportValidity() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to execute 'reportValidity' on 'ElementInternals': The target element is not a form-associated custom element.`);\n if (!this.willValidate) {\n return true;\n }\n const valid = this.checkValidity();\n const anchor = validationAnchorMap.get(this);\n if (anchor && !ref.constructor['formAssociated']) {\n throw new DOMException(`Failed to execute 'reportValidity' on 'ElementInternals': The target element is not a form-associated custom element.`);\n }\n if (!valid && anchor) {\n ref.focus();\n anchor.focus();\n }\n return valid;\n }\n setFormValue(value) {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to execute 'setFormValue' on 'ElementInternals': The target element is not a form-associated custom element.`);\n removeHiddenInputs(this);\n if (value != null && !(value instanceof FormData)) {\n if (ref.getAttribute('name')) {\n const hiddenInput = createHiddenInput(ref, this);\n hiddenInput.value = value;\n }\n }\n else if (value != null && value instanceof FormData) {\n Array.from(value).reverse().forEach(([formDataKey, formDataValue]) => {\n if (typeof formDataValue === 'string') {\n const hiddenInput = createHiddenInput(ref, this);\n hiddenInput.name = formDataKey;\n hiddenInput.value = formDataValue;\n }\n });\n }\n refValueMap.set(ref, value);\n }\n setValidity(validityChanges, validationMessage, anchor) {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to execute 'setValidity' on 'ElementInternals': The target element is not a form-associated custom element.`);\n if (!validityChanges) {\n throw new TypeError('Failed to execute \\'setValidity\\' on \\'ElementInternals\\': 1 argument required, but only 0 present.');\n }\n validationAnchorMap.set(this, anchor);\n const validity = validityMap.get(this);\n const validityChangesObj = {};\n for (const key in validityChanges) {\n validityChangesObj[key] = validityChanges[key];\n }\n if (Object.keys(validityChangesObj).length === 0) {\n setValid(validity);\n }\n const check = { ...validity, ...validityChangesObj };\n delete check.valid;\n const { valid } = reconcileValidity(validity, check, this.form);\n if (!valid && !validationMessage) {\n throw new DOMException(`Failed to execute 'setValidity' on 'ElementInternals': The second argument should not be empty if one or more flags in the first argument are true.`);\n }\n validationMessageMap.set(this, valid ? '' : validationMessage);\n if (ref.isConnected) {\n ref.toggleAttribute('internals-invalid', !valid);\n ref.toggleAttribute('internals-valid', valid);\n ref.setAttribute('aria-invalid', `${!valid}`);\n }\n else {\n validityUpgradeMap.set(ref, this);\n }\n }\n get shadowRoot() {\n const ref = refMap.get(this);\n const shadowRoot = shadowRootMap.get(ref);\n if (shadowRoot) {\n return shadowRoot;\n }\n return null;\n }\n get validationMessage() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'validationMessage' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n return validationMessageMap.get(this);\n }\n get validity() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'validity' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n const validity = validityMap.get(this);\n return validity;\n }\n get willValidate() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'willValidate' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n if ((ref.disabled || ref.hasAttribute('disabled')) ||\n ref.hasAttribute('readonly')) {\n return false;\n }\n return true;\n }\n }\n function isElementInternalsSupported() {\n if (typeof window === 'undefined' || !window.ElementInternals || !HTMLElement.prototype.attachInternals) {\n return false;\n }\n class ElementInternalsFeatureDetection extends HTMLElement {\n constructor() {\n super();\n this.internals = this.attachInternals();\n }\n }\n const randomName = `element-internals-feature-detection-${Math.random().toString(36).replace(/[^a-z]+/g, '')}`;\n customElements.define(randomName, ElementInternalsFeatureDetection);\n const featureDetectionElement = new ElementInternalsFeatureDetection();\n return [\n 'shadowRoot',\n 'form',\n 'willValidate',\n 'validity',\n 'validationMessage',\n 'labels',\n 'setFormValue',\n 'setValidity',\n 'checkValidity',\n 'reportValidity'\n ].every(prop => prop in featureDetectionElement.internals);\n }\n if (!isElementInternalsSupported()) {\n if (typeof window !== 'undefined') {\n window.ElementInternals = ElementInternals;\n }\n if (typeof CustomElementRegistry !== 'undefined') {\n const define = CustomElementRegistry.prototype.define;\n CustomElementRegistry.prototype.define = function (name, constructor, options) {\n if (constructor.formAssociated) {\n const connectedCallback = constructor.prototype.connectedCallback;\n constructor.prototype.connectedCallback = function () {\n if (!connectedCallbackMap.has(this)) {\n connectedCallbackMap.set(this, true);\n if (this.hasAttribute('disabled')) {\n setDisabled(this, true);\n }\n }\n if (connectedCallback != null) {\n connectedCallback.apply(this);\n }\n upgradeInternals(this);\n };\n }\n define.call(this, name, constructor, options);\n };\n }\n if (typeof HTMLElement !== 'undefined') {\n HTMLElement.prototype.attachInternals = function () {\n if (!this.tagName) {\n return {};\n }\n else if (this.tagName.indexOf('-') === -1) {\n throw new Error(`Failed to execute 'attachInternals' on 'HTMLElement': Unable to attach ElementInternals to non-custom elements.`);\n }\n if (internalsMap.has(this)) {\n throw new DOMException(`DOMException: Failed to execute 'attachInternals' on 'HTMLElement': ElementInternals for the specified element was already attached.`);\n }\n return new ElementInternals(this);\n };\n }\n if (typeof Element !== 'undefined') {\n function attachShadowObserver(...args) {\n const shadowRoot = attachShadow.apply(this, args);\n shadowRootMap.set(this, shadowRoot);\n if (mutationObserverExists()) {\n const observer = new MutationObserver(observerCallback);\n if (window.ShadyDOM) {\n observer.observe(this, observerConfig);\n }\n else {\n observer.observe(shadowRoot, observerConfig);\n }\n shadowHostsMap.set(this, observer);\n }\n return shadowRoot;\n }\n const attachShadow = Element.prototype.attachShadow;\n Element.prototype.attachShadow = attachShadowObserver;\n }\n if (mutationObserverExists() && typeof document !== 'undefined') {\n const documentObserver = new MutationObserver(observerCallback);\n documentObserver.observe(document.documentElement, observerConfig);\n }\n if (typeof HTMLFormElement !== 'undefined') {\n patchFormPrototype();\n }\n if (typeof window !== 'undefined' && !window.CustomStateSet) {\n window.CustomStateSet = CustomStateSet;\n }\n }\n else if (typeof window !== 'undefined' && !window.CustomStateSet) {\n window.CustomStateSet = CustomStateSet;\n const attachInternals = HTMLElement.prototype.attachInternals;\n HTMLElement.prototype.attachInternals = function (...args) {\n const internals = attachInternals.call(this, args);\n internals.states = new CustomStateSet(this);\n return internals;\n };\n }\n\n})();\n","import 'element-internals-polyfill'; // this is needed in order to support older browsers\n\nconst observedAttributes = ['required', 'pattern'];\n\nconst errorAttributes = {\n valueMissing: 'data-errormessage-value-missing',\n patternMismatch: 'data-errormessage-pattern-mismatch',\n tooShort: 'data-errormessage-pattern-mismatch-too-short',\n tooLong: 'data-errormessage-pattern-mismatch-too-long',\n rangeUnderflow: 'data-errormessage-pattern-range-underflow',\n rangeOverflow: 'data-errormessage-pattern-range-overflow',\n typeMismatch: 'data-errormessage-type-mismatch',\n};\n\nconst validationTargetSymbol = Symbol('validationTarget');\n\nexport const inputValidationMixin = (superclass) =>\n class InputValidationMixinClass extends superclass {\n #validationTarget = validationTargetSymbol;\n\n static get observedAttributes() {\n return [...(superclass.observedAttributes || []), ...observedAttributes];\n }\n\n static get formAssociated() {\n return true;\n }\n\n #internals;\n\n get internals() {\n return this.#internals;\n }\n\n set internals(value) {\n this.#internals = value;\n }\n\n constructor() {\n super();\n\n this.#internals = this.attachInternals();\n }\n\n // eslint-disable-next-line class-methods-use-this\n get defaultErrorMsgValueMissing() {\n return 'Please fill out this field.';\n }\n\n // eslint-disable-next-line class-methods-use-this\n get defaultErrorMsgPatternMismatch() {\n return 'Please match the requested format.';\n }\n\n get defaultErrorMsgTooShort() {\n return `Minimum length is ${this.getAttribute('minlength')}.`;\n }\n\n get defaultErrorMsgTooLong() {\n return `Maximum length is ${this.getAttribute('maxlength')}. `;\n }\n\n get defaultErrorMsgRangeUnderflow() {\n return `At least ${this.getAttribute('min-items-selection')} items are required.`;\n }\n\n get defaultErrorMsgRangeOverflow() {\n return `At most ${this.getAttribute('max-items-selection')} items are allowed.`;\n }\n\n // eslint-disable-next-line class-methods-use-this\n get defaultErrorMsgTypeMismatch() {\n return `Please match the requested type.`;\n }\n\n getErrorMessage(flags) {\n const {\n valueMissing,\n patternMismatch,\n typeMismatch,\n stepMismatch,\n tooShort,\n tooLong,\n rangeOverflow,\n rangeUnderflow,\n badInput,\n customError,\n } = flags;\n\n switch (true) {\n case valueMissing:\n return (\n this.getAttribute(errorAttributes.valueMissing) || this.defaultErrorMsgValueMissing\n );\n case patternMismatch || stepMismatch || badInput:\n return (\n this.getAttribute(errorAttributes.patternMismatch) ||\n this.defaultErrorMsgPatternMismatch\n );\n case typeMismatch:\n return (\n this.getAttribute(errorAttributes.typeMismatch) ||\n this.getAttribute(errorAttributes.patternMismatch) ||\n this.defaultErrorMsgTypeMismatch\n );\n case tooShort:\n return this.getAttribute(errorAttributes.tooShort) || this.defaultErrorMsgTooShort;\n case tooLong:\n return this.getAttribute(errorAttributes.tooLong) || this.defaultErrorMsgTooLong;\n case rangeUnderflow:\n return (\n this.getAttribute(errorAttributes.rangeUnderflow) || this.defaultErrorMsgRangeUnderflow\n );\n case rangeOverflow:\n return (\n this.getAttribute(errorAttributes.rangeOverflow) || this.defaultErrorMsgRangeOverflow\n );\n case customError:\n return this.validationMessage;\n default:\n return '';\n }\n }\n\n #setValidity() {\n const validity = this.isReadOnly ? {} : this.getValidity();\n this.#internals.setValidity(validity, this.getErrorMessage(validity), this.validationTarget);\n }\n\n get validationMessage() {\n return this.#internals.validationMessage;\n }\n\n // eslint-disable-next-line class-methods-use-this\n getValidity() {\n // eslint-disable-next-line no-console\n console.warn('getValidity', 'is not implemented');\n }\n\n checkValidity() {\n return this.#internals.validity.valid;\n }\n\n reportValidity() {\n return this.#internals.reportValidity();\n }\n\n get validity() {\n return this.#internals.validity;\n }\n\n get validationTarget() {\n return this.#validationTarget === validationTargetSymbol\n ? this.inputElement\n : this.#validationTarget;\n }\n\n set validationTarget(val) {\n this.#validationTarget = val;\n }\n\n setCustomValidity(errorMessage) {\n if (errorMessage) {\n this.#internals.setValidity({ customError: true }, errorMessage, this.validationTarget);\n } else {\n this.#internals.setValidity({});\n this.#setValidity();\n }\n }\n\n get isRequired() {\n return this.hasAttribute('required') && this.getAttribute('required') !== 'false';\n }\n\n get isReadOnly() {\n return this.hasAttribute('readonly') && this.getAttribute('readonly') !== 'false';\n }\n\n get isDisabled() {\n return this.hasAttribute('disabled') && this.getAttribute('disabled') !== 'false';\n }\n\n get pattern() {\n return this.getAttribute('pattern');\n }\n\n get form() {\n return this.#internals.form;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (observedAttributes.includes(attrName)) {\n this.#setValidity();\n }\n }\n\n init() {\n super.init?.();\n this.addEventListener('change', this.#setValidity);\n this.addEventListener('invalid', (e) => e.stopPropagation());\n this.addEventListener('input', this.#setValidity);\n\n // The attribute sync takes time, so getValidity returns valid,\n // even when it shouldn't. This way allows all attributes to sync\n // after render, before checking the validity.\n setTimeout(() => this.#setValidity());\n }\n };\n","/* eslint-disable no-param-reassign */\nimport { compose } from '../helpers';\nimport { forwardAttrs, getComponentName } from '../helpers/componentHelpers';\nimport { createDispatchEvent } from '../helpers/mixinsHelpers';\nimport { createStyleMixin } from './createStyleMixin';\nimport { inputValidationMixin } from './inputValidationMixin';\n\nconst errorAttrs = ['invalid', 'required'];\n\nconst forwardProps = (src, targets, property) => {\n const targetArr = Array.isArray(targets) ? targets : [targets];\n\n Object.defineProperty(src, property, {\n set(v) {\n targetArr.forEach((target) => {\n target[property] = v;\n });\n },\n get() {\n return targets[0][property];\n },\n configurable: true,\n });\n};\n\n// recursively take the first slot child until it finds an element which is not a slot\n// stops after \"nestingLevel\" times\nconst getNestedInput = (ele) => {\n if (!ele) return undefined;\n\n const nestingLevel = 10;\n\n let nonSlotEle = ele;\n for (let i = 0; i < nestingLevel; i++) {\n [nonSlotEle] = nonSlotEle.assignedElements();\n if (nonSlotEle?.localName !== 'slot') return nonSlotEle;\n }\n return undefined;\n};\n\nconst proxyInputMixin =\n ({\n proxyProps = [],\n // useProxyTargets flag allows to forwardProps to other targets, other than\n // `this.inputElement`. It's to be used within `external-input` components,\n // if needed\n useProxyTargets = false,\n // allows us to set the event that should trigger validation\n // it can be either a string or an array of strings (for multiple events)\n inputEvent = 'input',\n triggerValidationEvents = [],\n // Proxies all validations from the parent component to the input element\n proxyParentValidation = false,\n }) =>\n (superclass) =>\n class ProxyInputMixinClass extends inputValidationMixin(superclass) {\n static get observedAttributes() {\n return [...(superclass.observedAttributes || []), ...errorAttrs];\n }\n\n #inputElement;\n\n #dispatchChange = createDispatchEvent.bind(this, 'change');\n\n constructor() {\n super();\n\n this.#inputElement = super.inputElement;\n }\n\n // the web-component does not loaded immediately, so we want to defer the warning\n // and show it only if the input element was not found after the component is loaded\n warnIfInputElementIsMissing() {\n clearTimeout(this.inputElementTimerId);\n\n this.inputElementTimerId = setTimeout(() => {\n // eslint-disable-next-line no-console\n !this.#inputElement && console.warn(this.localName, 'no input was found');\n }, 0);\n }\n\n get inputElement() {\n if (this.#inputElement) return this.#inputElement;\n\n this.warnIfInputElementIsMissing();\n\n const inputSlot = this.baseElement.shadowRoot?.querySelector('slot[name=\"input\"]');\n const textAreaSlot = this.baseElement.shadowRoot?.querySelector('slot[name=\"textarea\"]');\n\n this.#inputElement = getNestedInput(inputSlot) || getNestedInput(textAreaSlot);\n\n return this.#inputElement;\n }\n\n set inputElement(ele) {\n this.#inputElement = ele;\n }\n\n getValidity() {\n return this.inputElement?.validity || {};\n }\n\n #handleErrorMessage() {\n this.setAttribute('error-message', this.validationMessage);\n }\n\n // We do not want to show the default validity report tooltip\n // So we are overriding the reportValidity fn to show the input's error message\n reportValidity = () => {\n // we want to update validity so in case the value was set programmatically, we won't get an error\n this.inputElement.setCustomValidity('');\n this.setCustomValidity('');\n if (!this.checkValidity()) {\n this.setAttribute('invalid', 'true');\n this.#handleErrorMessage();\n this.focus();\n }\n };\n\n // we are keeping also the default reportValidity because there are some components that still using it\n defaultReportValidity() {\n return super.reportValidity();\n }\n\n init() {\n super.init?.();\n\n // vaadin sets invalid indication on blur\n // we want invalid indication to appear only when calling reportValidity\n // this is why we are overriding vaadin's setInvalid behavior\n // to update only when the element is valid (so invalid indication will only be removed)\n // and we are adding it in reportValidity\n // eslint-disable-next-line func-names\n this.baseElement._setInvalid = function (invalid) {\n if (!invalid && this._shouldSetInvalid(invalid)) {\n this.invalid = invalid;\n }\n };\n\n // We want to ensure that `input` events properly cross ShadowDOM boundries\n // e.g. When we autofill a component's input with 1Password, for instance,\n // the event is fired without `composed: true` and doesn't our component's\n // ShadowDOM.\n this.baseElement.addEventListener('input', (e) => {\n if (!e.composed) {\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n }\n });\n\n triggerValidationEvents.forEach((e) => {\n this.baseElement?.addEventListener(e, () => {\n this.inputElement?.setCustomValidity('');\n });\n });\n\n // on some cases the base element is not ready so the inputElement is empty\n // we are deferring this section to make sure the base element is ready\n setTimeout(() => {\n const validationEvents = Array.isArray(inputEvent) ? inputEvent : [inputEvent];\n\n validationEvents.forEach((e) => {\n this.baseElement?.addEventListener(e, () => {\n if (!this.baseElement.checkValidity()) {\n this.#handleErrorMessage();\n } else {\n this.removeAttribute('invalid');\n }\n });\n });\n\n this.baseElement.addEventListener('change', () => {\n this.#dispatchChange();\n });\n\n this.addEventListener('invalid', () => {\n if (!this.checkValidity()) {\n this.setAttribute('invalid', 'true');\n }\n this.#handleErrorMessage();\n });\n\n // sync properties\n proxyProps.forEach((prop) => {\n const externalInput = this.querySelector('input[slot=\"external-input\"]') || null;\n const proxyTargets = useProxyTargets\n ? [this.baseElement, externalInput].filter(Boolean)\n : [];\n forwardProps(this, [this.inputElement, ...proxyTargets], prop);\n });\n\n this.setSelectionRange = this.inputElement.setSelectionRange?.bind(this.inputElement);\n\n forwardAttrs(this, this.inputElement, { includeAttrs: ['inputmode'] });\n });\n\n if (proxyParentValidation) {\n // All functions called on the inputElement internals will be applied to the parent\n // component internals as well. As a result, there's no need to add outer mechanisms\n // to update the parent component's validity state based on the input elements validity.\n const inputElementInternals = this.inputElement.internals;\n const parentThis = this;\n this.inputElement.internals = new Proxy(inputElementInternals, {\n get: (target, prop) => {\n if (typeof target[prop] === 'function' && prop === 'setValidity') {\n return (...args) => {\n // If we're calling setValidity with 3 args, then the validationTarget\n // needs to be swapped to be the inputElement\n if (args.length === 3) {\n const newArgs = args.slice(0, args.length - 1);\n newArgs.push(parentThis.inputElement);\n parentThis.internals[prop](...newArgs);\n } else {\n parentThis.internals[prop](...args);\n }\n return target[prop](...args);\n };\n }\n\n if (typeof target[prop] === 'function') {\n return (...args) => {\n parentThis.internals[prop](...args);\n return target[prop](...args);\n };\n }\n\n return target[prop];\n },\n });\n }\n }\n };\n\nconst composedProxyInputMixin = (proxyInputMixinConfig) =>\n compose(\n proxyInputMixin(proxyInputMixinConfig),\n // in order to use input-wrapper across all our input components, we need to inject its theme\n // to every proxy input mixin, to allow its css vars to be scoped properly and accessible\n // in the proxy input component\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') })\n );\n\nexport { composedProxyInputMixin as proxyInputMixin };\n","import { PORTAL_THEME_PREFIX } from '../constants';\nimport { kebabCaseJoin } from '../helpers';\nimport { forwardAttrs } from '../helpers/componentHelpers';\nimport { createStyleMixin } from './createStyleMixin';\nimport { createCssVarsList } from './createStyleMixin/helpers';\n\n// this is needed because we might generate the same css vars names\n// e.g. \"overlayColor\" attribute in style mixin's mapping,\n// will generate the same var as \"color\" attribute in portals's mapping\n// when the portal name is \"overlay\".\n// because of that, we are adding this separator that is also used as a differentiator\nconst DISPLAY_NAME_SEPARATOR = '_';\n\nconst sanitizeSelector = (selector) => selector.replace(/[^\\w\\s]/gi, '');\n\nconst withWaitForShadowRoot = (getRootElementFn) => async (that) => {\n const ele = await getRootElementFn(that);\n\n return new Promise((res) => {\n const MAX_RETRIES = 20;\n let counter = 0;\n\n const check = () => {\n if (counter > MAX_RETRIES) {\n // eslint-disable-next-line no-console\n console.error('could not get shadow root for element', ele);\n res(ele);\n return;\n }\n\n counter++;\n\n if (!ele?.shadowRoot) {\n setTimeout(check);\n } else {\n res(ele.shadowRoot);\n }\n };\n check();\n });\n};\n\nexport const portalMixin =\n ({ name, selector, mappings = {}, forward: { attributes = [], include = true } = {} }) =>\n (superclass) => {\n const eleDisplayName = name || sanitizeSelector(selector);\n\n const BaseClass = createStyleMixin({\n mappings,\n })(superclass);\n\n return class PortalMixinClass extends BaseClass {\n static get cssVarList() {\n return {\n ...BaseClass.cssVarList,\n [eleDisplayName]: createCssVarsList(\n kebabCaseJoin(superclass.componentName, DISPLAY_NAME_SEPARATOR + eleDisplayName),\n mappings\n ),\n };\n }\n\n #portalEle;\n\n constructor() {\n // we cannot use \"this\" before calling \"super\"\n const getRootElement = async (that) => {\n const baseEle = (that.shadowRoot || that).querySelector(that.baseSelector);\n if (!selector) {\n return baseEle;\n }\n\n // in case we have a selector, we should first wait for the base element shadow root\n // and then look for the internal element\n const baseEleShadowRoot = await withWaitForShadowRoot(() => baseEle)(that);\n return baseEleShadowRoot.querySelector(selector);\n };\n\n const getPortalElement = withWaitForShadowRoot(getRootElement);\n\n super({\n getRootElement: getPortalElement,\n componentNameSuffix: DISPLAY_NAME_SEPARATOR + eleDisplayName,\n themeSection: PORTAL_THEME_PREFIX + eleDisplayName,\n baseSelector: ':host',\n });\n\n this.#portalEle = getPortalElement(this).then((ele) => ele.host);\n }\n\n async #handleHoverAttribute() {\n const portalEle = await this.#portalEle;\n portalEle.onmouseenter = (e) => {\n e.target.setAttribute('hover', 'true');\n };\n portalEle.onmouseleave = (e) => {\n e.target.removeAttribute('hover');\n };\n }\n\n async init() {\n super.init?.();\n const portalEle = await this.#portalEle;\n forwardAttrs(this, portalEle, {\n [include ? 'includeAttrs' : 'excludeAttrs']: attributes,\n });\n\n this.#handleHoverAttribute();\n }\n };\n };\n","import { createDispatchEvent } from '../helpers/mixinsHelpers';\n\nexport const changeMixin = (superclass) =>\n class ChangeMixinClass extends superclass {\n #dispatchChange = createDispatchEvent.bind(this, 'change');\n\n init() {\n super.init?.();\n this.prevValue = this.value;\n\n this.addEventListener('change', (e) => {\n e.stopPropagation();\n });\n\n this.addEventListener('blur', () => {\n if (this.value !== this.prevValue) {\n this.#dispatchChange();\n this.prevValue = this.value;\n }\n });\n }\n };\n","import { createDispatchEvent } from '../helpers/mixinsHelpers';\n\nexport const inputEventsDispatchingMixin = (superclass) =>\n class InputEventsDispatchingMixinClass extends superclass {\n init() {\n this.#blockNativeEvents();\n\n super.init?.();\n }\n\n // we want to block the native (trusted) events and control when these events are being dispatched\n #blockNativeEvents() {\n ['blur', 'focus', 'focusin', 'focusout'].forEach((event) => {\n this.addEventListener(event, (e) => {\n e.isTrusted && e.target === this && e.stopImmediatePropagation();\n });\n });\n }\n\n handleFocusEventsDispatching(inputs) {\n let timerId;\n\n // in order to simulate blur & focusout on root input element\n // we are checking if focus on one of the inner elements happened immediately after blur\n // if not, the component is no longer focused and we should dispatch blur & focusout\n inputs?.forEach((input) => {\n input?.addEventListener('focusout', (e) => {\n e.stopImmediatePropagation();\n timerId = setTimeout(() => {\n timerId = null;\n\n createDispatchEvent.call(this, 'blur');\n createDispatchEvent.call(this, 'focusout', { bubbles: true });\n });\n });\n\n // in order to simulate focus & focusin on the root input element\n // we are holding a timer id and clearing it on focusin\n // if there is a timer id, it means that the root input is still focused\n // otherwise, it was not focused before, and we should dispatch focus & focusin\n const onFocus = (e) => {\n e.stopImmediatePropagation();\n clearTimeout(timerId);\n if (!timerId) {\n createDispatchEvent.call(this, 'focus');\n createDispatchEvent.call(this, 'focusin', { bubbles: true });\n }\n };\n\n // some components are not dispatching focusin but only focus\n input?.addEventListener('focusin', onFocus);\n input?.addEventListener('focus', onFocus);\n });\n }\n\n // we want to block the input events from propagating in case the value of the root input wasn't change\n // this can happen if we are sanitizing characters on the internal inputs and do not want it to affect the root input element value\n // in this case, on each input event, we are comparing the root input value to the previous one, and only if it does not match, we are allowing the input event to propagate\n handleInputEventDispatching() {\n let previousRootComponentValue = this.value;\n\n this.addEventListener('input', (e) => {\n // we are comparing the previous value to the new one,\n // and if they have the same value, we are blocking the input event\n if (previousRootComponentValue === this.value) {\n e.stopImmediatePropagation();\n } else {\n previousRootComponentValue = this.value;\n }\n });\n }\n };\n","// since on load we can only sample the color of the placeholder,\n// we need to temporarily populate the input in order to sample the value color\nconst getValueColor = (ele, computedStyle) => {\n // to support setting dynamic values, we have to store the existing value\n // and re-set it if we are returning from this hack\n const origVal = ele.value;\n\n // eslint-disable-next-line no-param-reassign\n ele.value = '_';\n\n const valueColor = computedStyle.getPropertyValue('color');\n\n if (ele.value === '_') {\n // eslint-disable-next-line no-param-reassign\n ele.value = origVal;\n }\n\n return valueColor;\n};\n\nexport const createExternalInputSlot = (slotName, targetSlotName) => {\n const slotEle = document.createElement('slot');\n\n slotEle.setAttribute('name', slotName);\n slotEle.setAttribute('slot', targetSlotName);\n\n return slotEle;\n};\n\nexport const createExternalInputEle = (targetSlotName, type, autocompleteType) => {\n const inputEle = document.createElement('input');\n\n inputEle.setAttribute('slot', targetSlotName);\n inputEle.setAttribute('type', type);\n inputEle.setAttribute('data-hidden-input', 'true');\n inputEle.setAttribute('autocomplete', autocompleteType);\n\n return inputEle;\n};\n\n// We apply the original input's style to the external-input.\n// Eventually, the user should interact directly with the external input.\n// We keep the original input\nexport const applyExternalInputStyles = (sourceInputEle, targetInputEle, labelType) => {\n // We set a timeout here to avoid \"Double Print\" cases,\n // caused by sampling the computed style before it's ready.\n setTimeout(() => {\n const computedStyle = getComputedStyle(sourceInputEle);\n // Get minimal set of computed theme properties to set on external input\n const height = computedStyle.getPropertyValue('height');\n const paddingLeft = computedStyle.getPropertyValue('padding-left');\n const paddingRight = computedStyle.getPropertyValue('padding-right');\n const fontSize = computedStyle.getPropertyValue('font-size');\n const fontFamily = computedStyle.getPropertyValue('font-family');\n const letterSpacing = computedStyle.getPropertyValue('letter-spacing');\n const caretColor = computedStyle.getPropertyValue('caret-color');\n\n const valueColor = getValueColor(sourceInputEle, computedStyle);\n\n const commonThemeStyles = [\n ['all', 'unset'],\n ['position', 'absolute'],\n ['background-color', 'transparent'],\n ['height', height],\n ['left', paddingLeft],\n ['right', paddingRight],\n ['font-size', fontSize],\n ['font-family', fontFamily],\n ['letter-spacing', letterSpacing],\n ['caret-color', caretColor], // this is for seeing caret when focusing on external input\n ['color', valueColor],\n ];\n\n commonThemeStyles.forEach(([key, val]) =>\n targetInputEle.style.setProperty(key, val, 'important')\n );\n\n // Handle floating label theme properties\n if (labelType === 'floating') {\n const marginBottom = computedStyle.getPropertyValue('margin-bottom');\n targetInputEle.style.setProperty('margin-bottom', marginBottom, 'important');\n }\n\n // sample and apply width only after original input is ready and fully rendered\n const width = computedStyle.getPropertyValue('width');\n targetInputEle.style.setProperty(\n 'width',\n `calc(${width} - ${paddingLeft} - ${paddingRight}`,\n 'important'\n );\n }, 0);\n};\n","import { syncAttrs } from '../helpers/componentHelpers';\nimport {\n applyExternalInputStyles,\n createExternalInputEle,\n createExternalInputSlot,\n} from './externalInputHelpers';\n\nexport const externalInputMixin =\n ({ inputType, autocompleteType, includeAttrs = [], noBlurDispatch = false }) =>\n (superclass) =>\n class ExternalInputMixinClass extends superclass {\n #timers = [];\n\n get isExternalInput() {\n return this.getAttribute('external-input') === 'true';\n }\n\n createExternalInput() {\n if (!this.isExternalInput) {\n return null;\n }\n\n // use original input element as reference\n const origInput = this.baseElement.querySelector('input');\n\n // to avoid focus loop between external-input and origInput\n // we set origInput's tabindex to -1\n // otherwise, shift-tab will never leave the component focus\n origInput.setAttribute('tabindex', '-1');\n\n // create external slot\n const externalInputSlot = createExternalInputSlot('external-input', 'suffix');\n\n // append external slot to base element\n this.baseElement.appendChild(externalInputSlot);\n\n this.externalInput = createExternalInputEle(\n 'external-input',\n inputType,\n this.getAutocompleteType()\n );\n\n // apply original input's styles to external input\n setTimeout(() => {\n applyExternalInputStyles(origInput, this.externalInput, this.getAttribute('label-type'));\n });\n\n // 1Password catches the internal input, so we forward the value to the external input\n this.forwardInputValue(origInput, this.externalInput);\n\n syncAttrs(origInput, this.externalInput, {\n includeAttrs,\n });\n\n // We disable Vaadin's original `_setFocused` function, and use handleFocusEvents\n // and handleBlurEvents functions\n this.baseElement\n .querySelector('input')\n .addEventListener('focusout', (e) => e.stopImmediatePropagation(), true);\n\n // In order to manage focus/blur events when moving between parts of the component\n // we're managing the event dispatching by ourselves, with the following strategy:\n // - If one of the component parts is focused - it means that the component is still focused - so we stop the blur events.\n // - When none of the component parts is focused, we dispatch blur event.\n this.handleFocusEvents();\n this.handleBlurEvents();\n\n // sync input value\n this.handlelInputEvents(this.externalInput);\n\n // append external input to component's DOM\n this.appendChild(this.externalInput);\n\n return this.externalInput;\n }\n\n clearBlurTimers() {\n this.#timers.forEach((timer) => clearTimeout(timer));\n this.#timers.length = 0;\n }\n\n dispatchBlur() {\n return setTimeout(() => {\n this.dispatchEvent(new Event('blur', { bubbles: true, composed: true }));\n this.removeAttribute('focused');\n });\n }\n\n handleFocusEvents() {\n // on baseElement `focus` we forward the focus to the external input.\n // also, in order to avoid any blur within the component, we clear the blur timers.\n this.baseElement.addEventListener('focus', () => {\n this.externalInput.focus();\n this.clearBlurTimers();\n });\n\n // on `focus` of the external input, we manually set the `focused` attribute\n this.externalInput.addEventListener('focus', () => {\n this.clearBlurTimers();\n setTimeout(() => this.baseElement.setAttribute('focused', 'true'));\n });\n }\n\n handleBlurEvents() {\n this.baseElement.addEventListener(\n 'blur',\n (e) => {\n e.stopImmediatePropagation();\n // some components do not require this synthetic blur dispatch (e.g. Password)\n // so we allow them to override this dispatch\n if (noBlurDispatch) return;\n this.#timers.push(this.dispatchBlur());\n },\n true\n );\n\n this.externalInput.addEventListener(\n 'blur',\n (e) => {\n e.stopImmediatePropagation();\n this.#timers.push(this.dispatchBlur());\n },\n true\n );\n }\n\n handlelInputEvents(externalInput) {\n // sync value of insible input back to original input\n externalInput.addEventListener('input', (e) => {\n this.value = e.target.value;\n });\n\n // handle has-value attr\n externalInput.addEventListener('input', (e) => {\n if (!e.target.value) {\n this.removeAttribute('has-value');\n } else {\n this.setAttribute('has-value', 'true');\n }\n });\n }\n\n getAutocompleteType() {\n return this.getAttribute('autocomplete') || autocompleteType;\n }\n\n forwardInputValue(source, target) {\n // set internal sync events\n const valueDescriptor = Object.getOwnPropertyDescriptor(\n this.inputElement.constructor.prototype,\n 'value'\n );\n\n Object.defineProperty(source, 'value', {\n ...valueDescriptor,\n\n set(v) {\n valueDescriptor.set.call(this, v);\n // eslint-disable-next-line no-param-reassign\n target.value = v;\n },\n configurable: true,\n });\n }\n };\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, { USE_PROFILES: { svg: true, svgFilters: true } });\n\n const parser = new DOMParser();\n const ele = parser.parseFromString(clean, 'image/svg+xml').querySelector('svg');\n return ele;\n};\n\nexport const createIcon = async (src) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src);\n }\n\n ele.style.setProperty('width', '100%');\n ele.style.setProperty('height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","/* eslint-disable no-use-before-define */\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { createIcon } from './helpers';\n\nexport const componentName = getComponentName('icon');\n\nclass RawIcon extends createBaseClass({ componentName, baseSelector: 'slot' }) {\n static get observedAttributes() {\n return ['src'];\n }\n\n #icon;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\t\t</style>\n\t\t<slot></slot>\n\t`;\n }\n\n get src() {\n return this.getAttribute('src');\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n // eslint-disable-next-line class-methods-use-this\n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${IconClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`\n );\n });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (attrName === 'src') {\n createIcon(this.src).then((res) => {\n this.innerHTML = '';\n if (res) {\n const clonedNode = res.cloneNode(true);\n this.updateFillColor(clonedNode);\n this.appendChild(clonedNode);\n }\n });\n }\n }\n}\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawIcon);\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n} from '../../mixins';\nimport { IconClass } from '../descope-icon/IconClass';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(${IconClass.componentName})`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"])::part(prefix),\n\t:host([loading=\"true\"])::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","import globals from '../globals';\nimport { getThemeRefs, createHelperVars } from '../../helpers/themeHelpers';\nimport { componentName, ButtonClass } from '../../components/descope-button/ButtonClass';\n\nconst globalRefs = getThemeRefs(globals);\nconst compVars = ButtonClass.cssVarList;\n\nconst mode = {\n primary: globalRefs.colors.primary,\n secondary: globalRefs.colors.secondary,\n success: globalRefs.colors.success,\n error: globalRefs.colors.error,\n surface: globalRefs.colors.surface,\n};\n\nconst [helperTheme, helperRefs, helperVars] = createHelperVars({ mode }, componentName);\n\nconst button = {\n ...helperTheme,\n\n [compVars.fontFamily]: globalRefs.fonts.font1.family,\n\n [compVars.cursor]: 'pointer',\n [compVars.hostHeight]: '3em',\n [compVars.hostWidth]: 'auto',\n [compVars.hostDirection]: globalRefs.direction,\n\n [compVars.borderRadius]: globalRefs.radius.sm,\n [compVars.borderWidth]: globalRefs.border.xs,\n [compVars.borderStyle]: 'solid',\n [compVars.borderColor]: 'transparent',\n\n [compVars.labelSpacing]: '0.25em',\n\n [compVars.textAlign]: 'center', // default text align center\n textAlign: {\n right: { [compVars.textAlign]: 'right' },\n left: { [compVars.textAlign]: 'left' },\n center: { [compVars.textAlign]: 'center' },\n },\n\n [compVars.verticalPadding]: '1em',\n [compVars.horizontalPadding]: '0.875em',\n\n [compVars.outlineWidth]: globals.border.sm,\n [compVars.outlineOffset]: '0px', // keep `px` unit for external calc\n [compVars.outlineStyle]: 'solid',\n [compVars.outlineColor]: 'transparent',\n\n [compVars.iconSize]: '1.5em',\n\n size: {\n xs: { [compVars.fontSize]: '12px' },\n sm: { [compVars.fontSize]: '14px' },\n md: { [compVars.fontSize]: '16px' },\n lg: { [compVars.fontSize]: '18px' },\n },\n\n _square: {\n [compVars.hostHeight]: '3em',\n [compVars.hostWidth]: '3em',\n [compVars.verticalPadding]: '0',\n },\n\n _fullWidth: {\n [compVars.hostWidth]: '100%',\n },\n\n _loading: {\n [compVars.cursor]: 'wait',\n [compVars.labelTextColor]: helperRefs.main,\n },\n\n _disabled: {\n [helperVars.main]: globalRefs.colors.surface.light,\n [helperVars.dark]: globalRefs.colors.surface.dark,\n [helperVars.light]: globalRefs.colors.surface.light,\n [helperVars.contrast]: globalRefs.colors.surface.main,\n [compVars.iconColor]: globalRefs.colors.surface.main,\n },\n\n variant: {\n contained: {\n [compVars.labelTextColor]: helperRefs.contrast,\n [compVars.backgroundColor]: helperRefs.main,\n _hover: {\n [compVars.backgroundColor]: helperRefs.dark,\n _loading: {\n [compVars.backgroundColor]: helperRefs.main,\n },\n },\n _active: {\n [compVars.backgroundColor]: helperRefs.main,\n },\n },\n\n outline: {\n [compVars.labelTextColor]: helperRefs.main,\n [compVars.borderColor]: helperRefs.main,\n _hover: {\n [compVars.labelTextColor]: helperRefs.dark,\n [compVars.borderColor]: helperRefs.dark,\n },\n _active: {\n [compVars.labelTextColor]: helperRefs.main,\n [compVars.borderColor]: helperRefs.main,\n },\n },\n\n link: {\n [compVars.labelTextColor]: helperRefs.main,\n [compVars.horizontalPadding]: '0.125em',\n _hover: {\n [compVars.labelTextColor]: helperRefs.dark,\n [compVars.labelTextDecoration]: 'underline',\n },\n _active: {\n [compVars.labelTextColor]: helperRefs.main,\n },\n },\n },\n\n _focused: {\n [compVars.outlineColor]: helperRefs.light,\n },\n};\n\nexport default button;\n\nexport const vars = {\n ...compVars,\n ...helperVars,\n};\n","const {\n host,\n label,\n placeholder,\n requiredIndicator,\n inputField,\n input,\n inputMask,\n helperText,\n errorMessage,\n disabledPlaceholder,\n inputDisabled,\n inputIcon,\n externalInput,\n externalInputDisabled,\n externalPlaceholder,\n externalDisabledPlaceholder,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n placeholder: [\n { selector: '> input:placeholder-shown' },\n { selector: () => ':host::slotted(input:placeholder-shown)' },\n ],\n disabledPlaceholder: { selector: '> input:disabled::placeholder' },\n inputField: { selector: '::part(input-field)' },\n input: { selector: 'input' },\n inputMask: { selector: '::part(input-field)::before' },\n inputDisabled: { selector: 'input:disabled' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n inputIcon: { selector: 'vaadin-icon' },\n externalInput: { selector: () => '::slotted(input)' },\n externalInputDisabled: { selector: () => '::slotted(input:disabled)' },\n externalPlaceholder: { selector: () => '::slotted(input:placeholder-shown)' },\n externalDisabledPlaceholder: { selector: () => '::slotted(input:disabled::placeholder)' },\n};\n\nexport default {\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n fontFamily: [label, inputField, helperText, errorMessage],\n\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n { ...label, property: '-webkit-text-fill-color' },\n { ...requiredIndicator, property: '-webkit-text-fill-color' },\n ],\n\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: { ...host, property: 'direction' },\n\n inputBackgroundColor: [\n { ...inputField, property: 'background-color' },\n { ...inputMask, property: 'background-color' },\n ],\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n helperTextColor: { ...helperText, property: '-webkit-text-fill-color' },\n\n inputValueTextColor: [\n { ...inputField, property: 'color' },\n { ...inputDisabled, property: '-webkit-text-fill-color' },\n { ...externalInputDisabled, property: '-webkit-text-fill-color' },\n ],\n inputCaretTextColor: [\n { ...input, property: 'caret-color' },\n { ...externalInput, property: 'caret-color' },\n ],\n\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n inputHeight: { ...inputField, property: 'height' },\n inputHorizontalPadding: [\n { ...input, property: 'padding-left' },\n { ...input, property: 'padding-right' },\n { ...externalInput, property: 'padding-left' },\n { ...externalInput, property: 'padding-right' },\n ],\n\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n\n textAlign: {},\n\n inputTextAlign: [\n { ...input, property: 'text-align' },\n { ...externalInput, property: 'text-align' },\n ],\n\n inputPlaceholderColor: [\n { selector: () => ':host input:placeholder-shown', property: 'color' },\n { ...externalPlaceholder, property: 'color' },\n { ...placeholder, property: 'color' },\n { ...disabledPlaceholder, property: '-webkit-text-fill-color' },\n { ...externalDisabledPlaceholder, property: '-webkit-text-fill-color' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: [\n { selector: '> input:placeholder-shown', property: 'opacity' },\n { ...externalPlaceholder, property: 'opacity' },\n ],\n inputVerticalAlignment: [\n { ...inputField, property: 'align-items' },\n { ...externalInput, property: 'align-items' },\n ],\n valueInputHeight: [\n { ...input, property: 'height' },\n { ...externalInput, property: 'height' },\n ],\n valueInputMarginBottom: [\n { ...input, property: 'margin-bottom' },\n { ...externalInput, property: 'margin-bottom' },\n ],\n\n inputIconOffset: [\n { ...inputIcon, property: 'margin-right' },\n { ...inputIcon, property: 'margin-left' },\n ],\n inputIconSize: { ...inputIcon, property: 'font-size' },\n inputIconColor: { ...inputIcon, property: 'color' },\n};\n","export const useHostExternalPadding = (cssVarList) => `\n :host {\n padding: calc(var(${cssVarList.inputOutlineWidth}) + var(${cssVarList.inputOutlineOffset}))\n }\n`;\n\nexport const resetInputFieldUnderlayingBorder = (name) => `\n ${name}::part(input-field)::after {\n border: none;\n }\n`;\n\nexport const resetInitialHeight = (name) => `\n ${name}::before {\n\t\theight: unset;\n\t}\n`;\n\nexport const resetInputElement = (name) => `\n ${name} > input {\n -webkit-mask-image: none;\n min-height: 0;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputContainer = (name) => `\n ${name} {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputField = (name) => `\n ${name}::part(input-field) {\n overflow: hidden;\n padding: 0;\n box-shadow: none;\n }\n`;\n\nexport const resetInputCursor = (name) => `\n ${name} > label,\n ${name}::part(label),\n ${name}::part(required-indicator) {\n cursor: pointer;\n }\n`;\n\nexport const resetInputPlaceholder = (name, ele = 'input') => `\n ${name}[disabled] > ${ele}:placeholder-shown,\n\t${name}[readonly] > ${ele}:placeholder-shown {\n\t\topacity: 1;\n\t}\n`;\n\nexport const resetInputAutoFill = (name, cssVarList) => `\n ${name} input:-webkit-autofill,\n ${name} input:-webkit-autofill::first-line,\n ${name} input:-webkit-autofill:hover,\n ${name} input:-webkit-autofill:active,\n ${name} input:-webkit-autofill:focus {\n -webkit-text-fill-color: var(${cssVarList.inputValueTextColor});\n box-shadow: 0 0 0 var(${cssVarList.inputHeight}) var(${cssVarList.inputBackgroundColor}) inset;\n }\n`;\n\nexport const resetInputFieldDefaultWidth = () => `\n :host {\n --vaadin-field-default-width: auto;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputReadonlyStyle = (name) => `\n ${name}::part(input-field)::after {\n opacity: 0;\n }\n`;\n\nexport const resetInputFieldInvalidBackgroundColor = (name) => `\n ${name}::part(input-field)::after {\n background: none;\n }\n`;\n\nexport const resetInputOverrides = (name, cssVarList) => `\n ${resetInputContainer(name)}\n ${resetInputCursor(name)}\n ${resetInputPlaceholder(name)}\n ${resetInputField(name)}\n ${resetInputAutoFill(name, cssVarList)}\n ${resetInputFieldInvalidBackgroundColor(name)}\n ${resetInitialHeight(name)}\n ${resetInputElement(name)}\n ${resetInputFieldUnderlayingBorder(name)}\n`;\n\n// This function is used to support RTL correctly for input components.\n// It also fixes the error message to be displayed LTR since we currently\n// don't support RTL for error messages.\nexport const resetInputLabelPosition = (name) => `\n :host ::part(error-message) {\n direction: ltr;\n }\n :host([required]) ::part(required-indicator) {\n width: 1em;\n display: inline-flex;\n }\n :host([required]) ::part(required-indicator)::after {\n position: static;\n }\n :host([has-label]) ::part(label) {\n padding-right: 0;\n padding-bottom: 0;\n display: flex;\n width: 100%;\n }\n ${name} [slot=\"label\"] {\n max-width: calc(100% - 1em);\n overflow: hidden;\n text-overflow: ellipsis;\n padding-bottom: 0.5em;\n }\n`;\n\nexport const inputFloatingLabelStyle = () => {\n return `\n :host([label-type=\"floating\"]) {\n position: relative;\n }\n :host([label-type=\"floating\"][has-label]) [slot=\"label\"] {\n padding: 0;\n }\n :host([label-type=\"floating\"][has-label]) > ::part(label) {\n z-index: 1;\n padding: 0;\n width: auto;\n }\n `;\n};\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport textFieldMappings from './textFieldMappings';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('text-field');\n\nconst observedAttrs = ['type', 'label-type', 'copy-to-clipboard'];\n\nconst customMixin = (superclass) =>\n class TextFieldClass extends superclass {\n static get observedAttributes() {\n return observedAttrs.concat(superclass.observedAttributes || []);\n }\n\n icon;\n\n init() {\n super.init?.();\n }\n\n renderCopyToClipboard(shouldRender) {\n if (!shouldRender) {\n this.icon?.remove();\n return;\n }\n\n const iconInitConfig = {\n icon: 'vaadin:copy-o',\n title: 'Copy',\n style: 'cursor: pointer',\n };\n\n const iconCopiedConfig = {\n icon: 'vaadin:check-circle-o',\n title: 'Copied',\n style: 'cursor: initial',\n };\n\n this.icon = Object.assign(document.createElement('vaadin-icon'), {\n slot: 'suffix',\n ...iconInitConfig,\n });\n\n this.baseElement.appendChild(this.icon);\n this.icon.addEventListener('click', () => {\n navigator.clipboard.writeText(this.value);\n Object.assign(this.icon, iconCopiedConfig);\n\n // we want the icon to go back to the initial state after 5 seconds\n setTimeout(() => {\n Object.assign(this.icon, iconInitConfig);\n }, 5000);\n });\n }\n\n onLabelClick() {\n this.focus();\n }\n\n attributeChangedCallback(attrName, oldVal, newVal) {\n super.attributeChangeCallback?.(attrName, oldVal, newVal);\n\n // Vaadin doesn't allow to change the input type attribute.\n // We need the ability to do that, so we're overriding their\n // behavior with their private API.\n // When receiving a `type` attribute, we use their private API\n // to set it on the input.\n if (attrName === 'type') {\n this.baseElement._setType(newVal);\n }\n\n if (oldVal !== newVal) {\n if (attrName === 'label-type') {\n if (newVal === 'floating') {\n this.addEventListener('click', this.onLabelClick);\n } else {\n this.removeEventListener('click', this.onLabelClick);\n }\n } else if (attrName === 'copy-to-clipboard') {\n this.renderCopyToClipboard(newVal === 'true');\n }\n }\n }\n };\n\nexport const TextFieldClass = compose(\n createStyleMixin({\n mappings: textFieldMappings,\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'], useProxyTargets: true }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: ['prefix', 'suffix'],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${TextFieldClass.cssVarList.inputOutlineWidth}) + var(${\n TextFieldClass.cssVarList.inputOutlineOffset\n }));\n box-sizing: border-box;\n\t\t\t}\n :host(:is([readonly], [disabled])) ::slotted(:is(input, textarea):placeholder-shown) {\n opacity: 1;\n }\n\n vaadin-text-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-text-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n ${resetInputLabelPosition('vaadin-text-field')}\n\t\t\t${useHostExternalPadding(TextFieldClass.cssVarList)}\n\t\t\t${resetInputOverrides('vaadin-text-field', TextFieldClass.cssVarList)}\n ${inputFloatingLabelStyle()}\n\n vaadin-text-field vaadin-icon {\n align-self: center;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { getThemeRefs, createHelperVars } from '../../helpers/themeHelpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\n\nconst componentName = getComponentName('input-wrapper');\nconst globalRefs = getThemeRefs(globals);\n\nconst [theme, refs, vars] = createHelperVars(\n {\n labelTextColor: globalRefs.colors.surface.dark,\n labelFontSize: '14px', // not taken from globals as it is fixed in all inputs\n labelFontWeight: '500', // not taken from globals as it is fixed in all inputs\n valueTextColor: globalRefs.colors.surface.contrast,\n placeholderTextColor: globalRefs.colors.surface.dark,\n requiredIndicator: \"'*'\",\n helperTextColor: globalRefs.colors.surface.dark,\n errorMessageTextColor: globalRefs.colors.error.main,\n successMessageTextColor: globalRefs.colors.success.main,\n\n borderWidth: globalRefs.border.xs,\n borderRadius: globalRefs.radius.xs,\n borderColor: 'transparent',\n\n outlineWidth: globalRefs.border.sm,\n outlineStyle: 'solid',\n outlineColor: 'transparent',\n outlineOffset: '0px', // we need to keep the px unit even for 0 value, as this var is used for calc in different component classes\n\n minWidth: '10em',\n toggleButtonSize: '1.5em',\n inputIconSize: '1em',\n inputHeight: '3em',\n horizontalPadding: '0.5em',\n verticalPadding: '0.5em',\n\n textAlign: 'start',\n\n backgroundColor: globalRefs.colors.surface.main,\n\n fontFamily: globalRefs.fonts.font1.family,\n\n direction: globalRefs.direction,\n\n overlayOpacity: '0.3',\n\n size: {\n xs: { fontSize: '12px', chipFontSize: '10px' },\n sm: { fontSize: '14px', chipFontSize: '12px' },\n md: { fontSize: '16px', chipFontSize: '14px' },\n lg: { fontSize: '18px', chipFontSize: '16px' },\n },\n\n labelType: {\n static: {\n valueInputHeight: '3em',\n valueInputMarginBottom: 'auto',\n },\n floating: {\n labelPosition: 'absolute',\n labelTopPosition: '0',\n labelHorizontalPosition: '0.9em',\n labelFontSize: '1em',\n placeholderOpacity: 0,\n inputHeight: '3.5em',\n inputVerticalAlignment: 'flex-end',\n inputTransformY: 'translateY(1.55em)',\n inputTransition: 'all 75ms ease-in-out',\n marginInlineStart: '0',\n valueInputHeight: '1.5702em',\n valueInputMarginBottom: '0.5em',\n\n _focused: {\n labelFontSize: '0.75em',\n inputTransformY: 'translateY(1.05em)',\n labelFontWeight: '400',\n placeholderOpacity: 1,\n },\n\n _readOnly: {\n placeholderOpacity: 0,\n },\n\n _hasValue: {\n inputTransformY: 'translateY(1.05em)',\n labelFontSize: '0.75em',\n labelFontWeight: '400',\n },\n },\n },\n\n _fullWidth: {\n width: '100%',\n },\n\n _focused: {\n outlineColor: globalRefs.colors.surface.light,\n _invalid: {\n outlineColor: globalRefs.colors.error.main,\n },\n },\n\n _bordered: {\n outlineWidth: globalRefs.border.xs,\n borderColor: globalRefs.colors.surface.light,\n borderStyle: 'solid',\n _invalid: {\n borderColor: globalRefs.colors.error.main,\n },\n },\n\n _disabled: {\n labelTextColor: globalRefs.colors.surface.light,\n borderColor: globalRefs.colors.surface.light,\n valueTextColor: globalRefs.colors.surface.light,\n placeholderTextColor: globalRefs.colors.surface.light,\n helperTextColor: globalRefs.colors.surface.light,\n backgroundColor: globalRefs.colors.surface.main,\n },\n },\n componentName\n);\n\nexport { refs, vars };\nexport default theme;\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { TextFieldClass } from '../../components/descope-text-field/TextFieldClass';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = TextFieldClass.cssVarList;\n\nexport const textField = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderColor]: refs.placeholderTextColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.inputHeight]: refs.inputHeight,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.helperTextColor]: refs.helperTextColor,\n [vars.textAlign]: refs.textAlign,\n textAlign: {\n right: { [vars.inputTextAlign]: 'right' },\n left: { [vars.inputTextAlign]: 'left' },\n center: { [vars.inputTextAlign]: 'center' },\n },\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n [vars.inputIconOffset]: globalRefs.spacing.md,\n [vars.inputIconSize]: refs.inputIconSize,\n [vars.inputIconColor]: refs.placeholderTextColor,\n};\n\nexport default textField;\nexport { vars };\n","const passwordDraggableMixin = (superclass) =>\n class PasswordDraggableMixinClass extends superclass {\n get isReadOnly() {\n return this.hasAttribute('readonly') && this.getAttribute('readonly') !== 'false';\n }\n\n init() {\n // there is an issue in Chrome that input field with type password cannot be D&D\n // so in case the input is draggable & readonly, we are changing the input type to \"text\" before dragging\n // and return the original type when done\n super.init?.();\n\n const ele = this.querySelector('input');\n\n ele?.addEventListener('mousedown', (e) => {\n if (this.isDraggable && this.isReadOnly) {\n ele.setAttribute('inert', 'true');\n\n const inputEle = e.target;\n const prevType = inputEle.getAttribute('type');\n inputEle.setAttribute('type', 'text');\n setTimeout(() => {\n inputEle.focus();\n });\n\n const onComplete = (_) => {\n inputEle.setAttribute('type', prevType);\n ele.removeAttribute('inert');\n this.removeEventListener('mouseup', onComplete);\n this.removeEventListener('dragend', onComplete);\n };\n\n this.addEventListener('dragend', onComplete, { once: true });\n this.addEventListener('mouseup', onComplete, { once: true });\n }\n });\n }\n };\n\nexport default passwordDraggableMixin;\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n externalInputMixin,\n} from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport passwordDraggableMixin from './passwordDraggableMixin';\nimport {\n resetInputLabelPosition,\n resetInputCursor,\n useHostExternalPadding,\n inputFloatingLabelStyle,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('password');\n\nconst customMixin = (superclass) =>\n class PasswordFieldMixinClass extends superclass {\n static get observedAttributes() {\n return ['manual-visibility-toggle'];\n }\n\n get manualToggleVisibility() {\n return this.getAttribute('manual-visibility-toggle') === 'true';\n }\n\n init() {\n super.init?.();\n this.handleCaretOnVisibilityChange();\n this.origSetPasswordVisible = this.baseElement._setPasswordVisible;\n this.origSetFocused = this.baseElement._setFocused;\n this.baseElement._setFocused = this.setFocus.bind(this);\n\n this.initExternalInput();\n }\n\n initExternalInput() {\n const externalInput = this.createExternalInput();\n if (externalInput) {\n this.handlePasswordVisibility(externalInput);\n }\n }\n\n get caretPosition() {\n return this.value?.length || 0;\n }\n\n handleCaretOnVisibilityChange() {\n const origTogglePasswordVisibility = this.baseElement._togglePasswordVisibility.bind(\n this.baseElement\n );\n this.baseElement._togglePasswordVisibility = () => {\n setTimeout(() => {\n origTogglePasswordVisibility();\n this.inputElement.setSelectionRange(this.caretPosition, this.caretPosition);\n return false;\n });\n };\n }\n\n // We use `manual-visibility-toggle` to to toggle the password's visibility\n // even if the input field is focused-out. However, on focusout - Vaadin resets\n // password visibility. Since we don't want to override Vaadin's native setFocus\n // function (which is part of their FocusMixin).\n // So, here we override the part of logic that runs within Vaadin's setFocus that reports\n // the password visibility state. This logic is part of our `manual-visibility-toggle` only.\n setFocus(focused) {\n if (this.manualToggleVisibility) {\n this.baseElement._setPasswordVisible = () => {};\n }\n this.origSetFocused.call(this.baseElement, focused);\n this.baseElement._setPasswordVisible = this.origSetPasswordVisible.bind(this.baseElement);\n }\n\n resetPasswordVisibilityToggle() {\n this.baseElement._setPasswordVisible = this.origSetPasswordVisible;\n this.baseElement._setFocused = this.origSetFocus;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n }\n\n // override vaadin's password visibility toggle.\n // we need this override in order to to resolve the external input `focus` race condition,\n // which is caused due to the focus sync between the two inputs.\n handlePasswordVisibility(externalInput) {\n // disable vaadin's `__boundRevealButtonMouseDown` mouse-down event lisetener\n const origBoundRevealButtonMouseDown = this.baseElement.__boundRevealButtonMouseDown;\n this.baseElement\n .querySelector('vaadin-password-field-button')\n .removeEventListener('mousedown', origBoundRevealButtonMouseDown);\n\n // disable vaadin's `_passwordVisibleChanged` observer\n this.baseElement._passwordVisibleChanged = () => {};\n\n // override vaadin's `_togglePasswordVisibility`\n this.baseElement._togglePasswordVisibility = () => {\n const currVisibility = externalInput.getAttribute('type');\n if (currVisibility === 'password') {\n this.showPasswordVisibility(externalInput);\n } else {\n this.hidePasswordVisibility(externalInput);\n }\n };\n }\n\n showPasswordVisibility(input) {\n // handle input element's type\n input.setAttribute('type', 'text');\n // handle vaadin's `password-visible` attribute\n this.setAttribute('password-visible', 'true');\n }\n\n hidePasswordVisibility(input) {\n // handle input element's type\n input.setAttribute('type', 'password');\n // handle vaadin's `password-visible` attribute\n this.setAttribute('password-visible', 'false');\n }\n };\n\nconst {\n host,\n inputField,\n inputElement,\n inputElementPlaceholder,\n revealButtonContainer,\n revealButtonIcon,\n label,\n requiredIndicator,\n errorMessage,\n helperText,\n} = {\n host: { selector: () => ':host' },\n inputField: { selector: '::part(input-field)' },\n inputElement: { selector: '> input' },\n inputElementPlaceholder: { selector: () => ':host input:placeholder-shown' },\n revealButtonContainer: { selector: '::part(reveal-button)' },\n revealButtonIcon: { selector: '::part(reveal-button)::before' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const PasswordClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: [{}, host],\n fontFamily: [label, inputField, errorMessage, helperText],\n inputHeight: { ...inputField, property: 'height' },\n inputHorizontalPadding: [\n { ...inputElement, property: 'padding-left' },\n { ...inputElement, property: 'padding-right' },\n ],\n inputBackgroundColor: { ...inputField, property: 'background-color' },\n\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n\n inputPlaceholderTextColor: [\n { ...inputElementPlaceholder, property: 'color' },\n { selector: () => ':host ::slotted(input:placeholder-shown)', property: 'color' },\n ],\n inputValueTextColor: [\n { ...inputElement, property: 'color' },\n { selector: () => ':host ::slotted(input)', property: 'color' },\n ],\n\n revealButtonOffset: [\n { ...revealButtonContainer, property: 'margin-right' },\n { ...revealButtonContainer, property: 'margin-left' },\n ],\n revealButtonSize: { ...revealButtonContainer, property: 'font-size' },\n revealButtonColor: { ...revealButtonIcon, property: 'color' },\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: [\n { selector: '> input:placeholder-shown', property: 'opacity' },\n { ...inputElement, property: 'opacity' },\n ],\n inputVerticalAlignment: { ...inputField, property: 'align-items' },\n valueInputHeight: { ...inputElement, property: 'height' },\n },\n }),\n draggableMixin,\n externalInputMixin({\n inputType: 'password',\n includeAttrs: ['disabled', 'readonly', 'pattern', 'type', 'autocomplete'],\n noBlurDispatch: true,\n }),\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'], useProxyTargets: true }),\n componentNameValidationMixin,\n passwordDraggableMixin,\n customMixin\n)(\n createProxy({\n slots: ['', 'suffix'],\n wrappedEleName: 'vaadin-password-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tmin-width: 10em;\n box-sizing: border-box;\n position: relative;\n\t\t\t}\n\t\t\t${useHostExternalPadding(PasswordClass.cssVarList)}\n\t\t\t${resetInputCursor('vaadin-password-field')}\n ${resetInputLabelPosition('vaadin-password-field')}\n\n\t\t\tvaadin-password-field {\n\t\t\t\twidth: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tpadding: 0;\n\t\t\t}\n\t\t\tvaadin-password-field > input {\n -webkit-mask-image: none;\n\t\t\t\tbox-sizing: border-box;\n opacity: 1;\n\t\t\t}\n\t\t\tvaadin-password-field::part(input-field) {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tpadding: 0;\n\t\t\t}\n\t\t\tvaadin-password-field[focus-ring]::part(input-field) {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n :host ::slotted(input) {\n\t\t\t\tmin-height: 0;\n }\n :host([readonly]) ::slotted(input:placeholder-shown) {\n\t\t\t\topacity: 0;\n\t\t\t}\n\t\t\tvaadin-password-field::before {\n\t\t\t\theight: initial;\n\t\t\t}\n\t\t\tvaadin-password-field::part(input-field)::after {\n\t\t\t\topacity: 0;\n\t\t\t}\n\t\t\tvaadin-password-field-button {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t\t:host([readonly]) vaadin-password-field-button {\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\tvaadin-password-field-button[focus-ring] {\n\t\t\t\tbox-shadow: 0 0 0 2px var(${PasswordClass.cssVarList.inputOutlineColor});\n\t\t\t}\n\n ${inputFloatingLabelStyle()}\n \n ::part(reveal-button) {\n align-self: center;\n }\n\n vaadin-password-field[external-input=\"true\"] > input:not(:placeholder-shown) {\n opacity: 0;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { PasswordClass } from '../../components/descope-password/PasswordClass';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = PasswordClass.cssVarList;\n\nconst password = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.inputHeight]: refs.inputHeight,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.revealButtonOffset]: globalRefs.spacing.md,\n [vars.revealButtonSize]: refs.toggleButtonSize,\n [vars.revealButtonColor]: refs.placeholderTextColor,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n [vars.valueInputHeight]: refs.valueInputHeight,\n};\n\nexport default password;\nexport { vars };\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport textFieldMappings from '../descope-text-field/textFieldMappings';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('number-field');\n\nexport const NumberFieldClass = compose(\n createStyleMixin({\n mappings: textFieldMappings,\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin\n)(\n createProxy({\n slots: ['', 'prefix', 'suffix'],\n wrappedEleName: 'vaadin-number-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${NumberFieldClass.cssVarList.inputOutlineWidth}) + var(${\n NumberFieldClass.cssVarList.inputOutlineOffset\n }));\n\t\t\t}\n ${resetInputLabelPosition('vaadin-number-field')}\n\t\t\t${useHostExternalPadding(NumberFieldClass.cssVarList)}\n\t\t\t${resetInputOverrides('vaadin-number-field', NumberFieldClass.cssVarList)}\n ${inputFloatingLabelStyle()}\n\n vaadin-number-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-number-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import { NumberFieldClass } from '../../components/descope-number-field/NumberFieldClass';\nimport { refs } from './inputWrapper';\n\nconst vars = NumberFieldClass.cssVarList;\n\nconst numberField = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderColor]: refs.placeholderTextColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.inputHeight]: refs.inputHeight,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n};\n\nexport default numberField;\nexport { vars };\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n externalInputMixin,\n} from '../../mixins';\nimport textFieldMappings from '../descope-text-field/textFieldMappings';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('email-field');\n\nconst defaultPattern = \"^[\\\\w\\\\.\\\\%\\\\+\\\\-']+@[\\\\w\\\\.\\\\-]+\\\\.[A-Za-z]{2,}$\";\nconst defaultAutocomplete = 'username';\n\nconst customMixin = (superclass) =>\n class EmailFieldMixinClass extends superclass {\n init() {\n super.init?.();\n\n // we need to set the pattern on the base element because vaadin-email-field is overriding it\n this.baseElement.setAttribute('pattern', defaultPattern);\n\n if (!this.getAttribute('autocomplete')) {\n this.setAttribute('autocomplete', defaultAutocomplete);\n }\n\n this.createExternalInput();\n }\n };\n\nexport const EmailFieldClass = compose(\n createStyleMixin({\n mappings: textFieldMappings,\n }),\n draggableMixin,\n externalInputMixin({\n inputType: 'text',\n autocompleteType: 'username',\n includeAttrs: ['disabled', 'readonly', 'pattern'],\n }),\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'], useProxyTargets: true }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: ['', 'suffix'],\n wrappedEleName: 'vaadin-email-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${EmailFieldClass.cssVarList.inputOutlineWidth}) + var(${\n EmailFieldClass.cssVarList.inputOutlineOffset\n }));\n box-sizing: border-box;\n\t\t\t}\n ${resetInputLabelPosition('vaadin-email-field')}\n\t\t\t${useHostExternalPadding(EmailFieldClass.cssVarList)}\n\t\t\t${resetInputOverrides('vaadin-email-field', EmailFieldClass.cssVarList)}\n ${inputFloatingLabelStyle()}\n\n vaadin-email-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-email-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\n :host ::slotted(*) {\n -webkit-mask-image: none;\n }\n\n vaadin-email-field[external-input=\"true\"] > input:not(:placeholder-shown) {\n opacity: 0;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import { EmailFieldClass } from '../../components/descope-email-field/EmailFieldClass';\nimport { refs } from './inputWrapper';\n\nconst vars = EmailFieldClass.cssVarList;\n\nconst emailField = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.inputPlaceholderColor]: refs.placeholderTextColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.inputHeight]: refs.inputHeight,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n};\n\nexport default emailField;\nexport { vars };\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n resetInputContainer,\n resetInputCursor,\n resetInputLabelPosition,\n resetInputField,\n resetInputPlaceholder,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('text-area');\n\nconst {\n host,\n label,\n placeholder,\n inputField,\n textArea,\n requiredIndicator,\n helperText,\n errorMessage,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n placeholder: { selector: 'textarea:placeholder-shown' },\n inputField: { selector: '::part(input-field)' },\n textArea: { selector: '> textarea' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const TextAreaClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: [host, textArea],\n fontFamily: [label, inputField, helperText, errorMessage],\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n inputBackgroundColor: { ...inputField, property: 'background-color' },\n inputValueTextColor: { ...textArea, property: 'color' },\n inputPlaceholderTextColor: { ...placeholder, property: 'color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n inputOutlineStyle: { ...inputField, property: 'outline-Style' },\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputResizeType: { ...textArea, property: 'resize' },\n inputMinHeight: { ...textArea, property: 'min-height' },\n inputTextAlign: { ...textArea, property: 'text-align' },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-area',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n box-sizing: border-box;\n\t\t\t}\n\t\t\ttextarea {\n\t\t\t\theight: 100%;\n\t\t\t}\n ${resetInputLabelPosition('vaadin-text-area')}\n\t\t\t${useHostExternalPadding(TextAreaClass.cssVarList)}\n\t\t\t${resetInputContainer('vaadin-text-area')}\n\t\t\t${resetInputField('vaadin-text-area')}\n\t\t\t${resetInputPlaceholder('vaadin-text-area', 'textarea')}\n\t\t\t${resetInputCursor('vaadin-text-area')}\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import { TextAreaClass } from '../../components/descope-text-area/TextAreaClass';\nimport { refs } from './inputWrapper';\n\nconst vars = TextAreaClass.cssVarList;\n\nconst textArea = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputResizeType]: 'vertical',\n [vars.inputMinHeight]: '5em',\n textAlign: {\n right: { [vars.inputTextAlign]: 'right' },\n left: { [vars.inputTextAlign]: 'left' },\n center: { [vars.inputTextAlign]: 'center' },\n },\n\n _readonly: {\n [vars.inputResizeType]: 'none',\n },\n};\n\nexport default textArea;\nexport { vars };\n","import { compose } from '../helpers';\nimport {\n changeMixin,\n inputEventsDispatchingMixin,\n inputValidationMixin,\n normalizeBooleanAttributesMixin,\n} from '../mixins';\nimport { createBaseClass } from './createBaseClass';\n\nexport const createBaseInputClass = (...args) =>\n compose(\n inputValidationMixin,\n changeMixin,\n normalizeBooleanAttributesMixin,\n inputEventsDispatchingMixin\n )(createBaseClass(...args));\n","import { createBaseInputClass } from '../../../baseClasses/createBaseInputClass';\nimport { forwardAttrs, getComponentName, syncAttrs } from '../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('boolean-field-internal');\n\nconst forwardAttributes = ['disabled', 'label', 'invalid', 'readonly'];\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass BooleanInputInternal extends BaseInputClass {\n static get observedAttributes() {\n return ['readonly'];\n }\n\n constructor() {\n super();\n this.innerHTML = `\n\t\t\t<div class=\"wrapper\">\n\t\t\t\t<vaadin-checkbox></vaadin-checkbox>\n\t\t\t</div>\n\t\t`;\n this.wrapperEle = this.querySelector('div');\n this.checkbox = this.querySelector('vaadin-checkbox');\n }\n\n get value() {\n return this.checkbox?.checked;\n }\n\n set value(val) {\n this.checkbox.checked = val;\n }\n\n get checked() {\n return this.value;\n }\n\n set checked(val) {\n this.value = val;\n }\n\n init() {\n this.addEventListener('focus', (e) => {\n if (e.isTrusted) {\n this.checkbox.focus();\n }\n });\n super.init?.();\n\n forwardAttrs(this, this.checkbox, { includeAttrs: forwardAttributes });\n syncAttrs(this, this.checkbox, { includeAttrs: ['checked'] });\n\n // we need it in order to set the focus ring and trigger validation on descope-checkbox\n this.handleFocusEventsDispatching([this.checkbox]);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'readonly') {\n this.onReadOnlyChange(newValue !== null);\n }\n }\n\n onReadOnlyChange(val) {\n this.baseElement.setAttribute('inert', val);\n }\n\n getValidity() {\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n return {};\n }\n}\n\nexport default BooleanInputInternal;\n","import { forwardAttrs, forwardProps, syncAttrs } from '../../helpers/componentHelpers';\nimport { componentName as descopeInternalComponentName } from './descope-boolean-field-internal/BooleanFieldInternal';\n\nexport const booleanFieldMixin = (superclass) =>\n class BooleanFieldMixinClass extends superclass {\n init() {\n super.init?.();\n\n const template = document.createElement('template');\n template.innerHTML = `\n\t\t\t\t<${descopeInternalComponentName}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\tslot=\"input\"\n\t\t\t\t></${descopeInternalComponentName}>\n\t\t\t`;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n this.checkbox = this.inputElement.querySelector('vaadin-checkbox');\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'required',\n 'full-width',\n 'size',\n 'label',\n 'invalid',\n 'disabled',\n 'readonly',\n ],\n });\n\n forwardProps(this.inputElement, this, ['checked']);\n syncAttrs(this, this.inputElement, { includeAttrs: ['checked'] });\n }\n };\n","import { resetInputFieldDefaultWidth } from '../../helpers/themeHelpers/resetHelpers';\n\nexport default `\n:host {\n\tdisplay: inline-flex;\n}\n\n${resetInputFieldDefaultWidth()}\n\n.wrapper {\n\tdisplay: flex;\n\tbox-sizing: border-box;\n}\nvaadin-text-field {\n\tposition: relative;\n\tpadding: 0;\n\tdisplay: inline-flex;\n\talign-items: flex-start;\n}\nvaadin-text-field::before {\n\theight: 0;\n\tmargin: 0;\n}\nvaadin-text-field::part(label) {\n position: absolute;\n top: 0;\n}\nvaadin-text-field::part(input-field) {\n\tpadding: 0;\n\tbackground: none;\n\tmin-height: 0;\n}\nvaadin-text-field::part(input-field)::after {\n background: none;\n}\nvaadin-text-field[focus-ring]::part(input-field) {\n\tbox-shadow: none;\n}\n\nvaadin-checkbox [slot=\"label\"] {\n align-self: flex-start;\n padding: 0;\n}\n[required] vaadin-checkbox [slot=\"label\"]:not(:empty) {\n\tpadding-inline-end: 1em;\n}\ndescope-boolean-field-internal {\n -webkit-mask-image: none;\n min-height: initial;\n}\n`;\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { compose } from '../../../helpers';\nimport {\n createStyleMixin,\n proxyInputMixin,\n draggableMixin,\n componentNameValidationMixin,\n createProxy,\n} from '../../../mixins';\nimport { booleanFieldMixin } from '../booleanFieldMixin';\nimport commonStyles from '../commonStyles';\nimport { useHostExternalPadding } from '../../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('checkbox');\n\nconst {\n host,\n component,\n checkboxElement,\n checkboxSurface,\n checkboxLabel,\n requiredIndicator,\n helperText,\n errorMessage,\n} = {\n host: { selector: () => ':host' },\n requiredIndicator: { selector: '[required] vaadin-checkbox [slot=\"label\"]:not(:empty)::after' },\n component: { selector: 'vaadin-checkbox' },\n checkboxElement: { selector: 'vaadin-checkbox::part(checkbox)' },\n checkboxSurface: { selector: 'vaadin-checkbox::part(checkbox)::after' },\n checkboxLabel: { selector: 'vaadin-checkbox [slot=\"label\"]:not(:empty)' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const CheckboxClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n\n fontSize: [host, checkboxElement, checkboxLabel],\n fontFamily: [checkboxLabel, helperText, errorMessage],\n\n labelTextColor: { ...checkboxLabel, property: 'color' },\n labelSpacing: { ...checkboxLabel, property: 'padding-inline-start' },\n labelLineHeight: { ...checkboxLabel, property: 'line-height' },\n labelFontWeight: { ...checkboxLabel, property: 'font-weight' },\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n\n inputValueTextColor: { ...checkboxSurface, property: 'color' },\n inputBackgroundColor: { ...checkboxElement, property: 'background-color' },\n\n inputBorderRadius: { ...checkboxElement, property: 'border-radius' },\n inputBorderWidth: { ...checkboxElement, property: 'border-width' },\n inputBorderOffset: { ...checkboxElement, property: 'border-offset' },\n inputBorderColor: { ...checkboxElement, property: 'border-color' },\n inputBorderStyle: { ...checkboxElement, property: 'border-style' },\n\n inputOutlineWidth: { ...checkboxElement, property: 'outline-width' },\n inputOutlineOffset: { ...checkboxElement, property: 'outline-offset' },\n inputOutlineColor: { ...checkboxElement, property: 'outline-color' },\n inputOutlineStyle: { ...checkboxElement, property: 'outline-style' },\n\n inputSize: [\n { ...checkboxElement, property: 'width' },\n { ...checkboxElement, property: 'height' },\n { ...checkboxSurface, property: 'font-size' },\n { ...component, property: 'font-size' },\n ],\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin,\n booleanFieldMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t${commonStyles}\n ${useHostExternalPadding(CheckboxClass.cssVarList)}\n\n :host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n }\n\n :host ::part(error-message) {\n direction: ltr;\n }\n\n vaadin-text-field {\n width: 100%;\n }\n\n descope-boolean-field-internal {\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: 100%;\n height: 100%;\n }\n\n vaadin-checkbox::part(checkbox) {\n margin: 0;\n }\n\n vaadin-checkbox::part(checkbox)::after {\n top: 0;\n left: 0;\n }\n\n vaadin-text-field::part(input-field)::after {\n content: none;\n }\n `,\n excludeAttrsSync: ['label', 'tabindex'],\n componentName,\n })\n);\n","import { CheckboxClass } from '../../components/boolean-fields/descope-checkbox/CheckboxClass';\nimport { refs } from './inputWrapper';\n\nconst vars = CheckboxClass.cssVarList;\nconst checkboxSize = '1.35em';\n\nconst checkbox = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.labelFontWeight]: '400',\n [vars.labelLineHeight]: checkboxSize,\n [vars.labelSpacing]: '1em',\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.inputSize]: checkboxSize,\n\n _checked: {\n [vars.inputValueTextColor]: refs.valueTextColor,\n },\n\n _disabled: {\n [vars.labelTextColor]: refs.labelTextColor,\n },\n};\n\nexport default checkbox;\nexport { vars };\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { compose } from '../../../helpers';\nimport {\n createStyleMixin,\n proxyInputMixin,\n draggableMixin,\n componentNameValidationMixin,\n createProxy,\n} from '../../../mixins';\nimport { booleanFieldMixin } from '../booleanFieldMixin';\nimport commonStyles from '../commonStyles';\nimport { useHostExternalPadding } from '../../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('switch-toggle');\n\nconst {\n host,\n component,\n checkboxElement: track,\n checkboxSurface: knob,\n checkboxLabel,\n requiredIndicator,\n helperText,\n errorMessage,\n} = {\n host: { selector: () => ':host' },\n requiredIndicator: { selector: '[required] vaadin-checkbox [slot=\"label\"]:not(:empty)::after' },\n component: { selector: 'vaadin-checkbox' },\n checkboxElement: { selector: 'vaadin-checkbox::part(checkbox)' },\n checkboxSurface: { selector: 'vaadin-checkbox::part(checkbox)::after' },\n checkboxLabel: { selector: 'vaadin-checkbox [slot=\"label\"]:not(:empty)' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const SwitchToggleClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n\n fontSize: [component, checkboxLabel, checkboxLabel],\n fontFamily: [checkboxLabel, helperText, errorMessage],\n\n labelTextColor: { ...checkboxLabel, property: 'color' },\n labelSpacing: { ...checkboxLabel, property: 'padding-inline-start' },\n labelLineHeight: { ...checkboxLabel, property: 'line-height' },\n labelFontWeight: { ...checkboxLabel, property: 'font-weight' },\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n\n trackBorderWidth: { ...track, property: 'border-width' },\n trackBorderStyle: { ...track, property: 'border-style' },\n trackBorderColor: { ...track, property: 'border-color' },\n trackBackgroundColor: { ...track, property: 'background-color' },\n trackBorderRadius: { ...track, property: 'border-radius' },\n trackWidth: [{ ...track, property: 'width' }],\n trackHeight: [\n { ...knob, property: 'font-size' },\n { ...track, property: 'height' },\n ],\n\n knobSize: [\n { ...knob, property: 'width' },\n { ...knob, property: 'height' },\n ],\n knobTextColor: { ...knob, property: 'color' },\n knobRadius: { ...knob, property: 'border-radius' },\n knobTransitionDuration: { ...knob, property: 'transition' },\n knobColor: { ...knob, property: 'background-color' },\n knobTopOffset: { ...knob, property: 'top' },\n knobLeftOffset: { ...knob, property: 'left' },\n\n inputOutlineWidth: { ...track, property: 'outline-width' },\n inputOutlineOffset: { ...track, property: 'outline-offset' },\n inputOutlineColor: { ...track, property: 'outline-color' },\n inputOutlineStyle: { ...track, property: 'outline-style' },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin,\n booleanFieldMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t${commonStyles}\n\t\t\t${useHostExternalPadding(SwitchToggleClass.cssVarList)}\n\n :host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n }\n\n :host ::part(error-message) {\n direction: ltr;\n }\n\n vaadin-text-field {\n width: 100%;\n }\n\n vaadin-text-field::part(input-field)::after {\n content: none;\n }\n\n descope-boolean-field-internal {\n\t\t\t\tpadding: 0;\n width: 100%;\n }\n\n vaadin-text-field::part(input-field) {\n cursor: pointer;\n }\n\n vaadin-checkbox {\n cursor: pointer;\n }\n\n vaadin-checkbox [slot=\"label\"]:not(:empty) {\n cursor: pointer;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox) {\n margin: 0;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox)::before {\n content: '';\n\t\t\t}\n\n vaadin-checkbox[active]::part(checkbox) {\n\t\t\t\ttransform: none;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox)::after {\n\t\t\t\tposition: absolute;\n\t\t\t\topacity: 1;\n\t\t\t\tcontent: '';\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['label', 'tabindex'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { SwitchToggleClass } from '../../components/boolean-fields/descope-switch-toggle/SwitchToggleClass';\nimport { refs } from './inputWrapper';\n\nconst knobMargin = '2px';\nconst checkboxHeight = '1.25em';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = SwitchToggleClass.cssVarList;\n\nconst switchToggle = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n\n [vars.trackBorderStyle]: refs.borderStyle,\n [vars.trackBorderWidth]: refs.borderWidth, // var `trackBorderWidth` used outside the theme for `left` margin calculation\n [vars.trackBorderColor]: refs.borderColor,\n [vars.trackBackgroundColor]: refs.backgroundColor,\n [vars.trackBorderRadius]: globalRefs.radius.md,\n [vars.trackWidth]: '2.5em', // var `trackWidth` used outside the theme for `left` margin calculation\n [vars.trackHeight]: checkboxHeight,\n\n [vars.knobSize]: `calc(1em - ${knobMargin})`,\n [vars.knobRadius]: '50%',\n [vars.knobTopOffset]: '1px',\n [vars.knobLeftOffset]: knobMargin,\n [vars.knobColor]: refs.labelTextColor,\n [vars.knobTransitionDuration]: '0.3s',\n\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelFontWeight]: '400',\n [vars.labelLineHeight]: '1.35em',\n [vars.labelSpacing]: '1em',\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n\n _checked: {\n [vars.trackBorderColor]: refs.borderColor,\n [vars.knobLeftOffset]: `calc(100% - var(${vars.knobSize}) - ${knobMargin})`,\n [vars.knobColor]: refs.valueTextColor,\n [vars.knobTextColor]: refs.valueTextColor,\n },\n\n _disabled: {\n [vars.knobColor]: globalRefs.colors.surface.light,\n [vars.trackBorderColor]: globalRefs.colors.surface.light,\n [vars.trackBackgroundColor]: globalRefs.colors.surface.main,\n [vars.labelTextColor]: refs.labelTextColor,\n _checked: {\n [vars.knobColor]: globalRefs.colors.surface.light,\n [vars.trackBackgroundColor]: globalRefs.colors.surface.main,\n },\n },\n\n _invalid: {\n [vars.trackBorderColor]: globalRefs.colors.error.main,\n [vars.knobColor]: globalRefs.colors.error.main,\n },\n};\n\nexport default switchToggle;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('container');\n\nclass RawContainer extends createBaseClass({ componentName, baseSelector: 'slot' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: auto;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\t\t</style>\n\t\t<slot></slot>\n\t`;\n }\n}\n\nexport const ContainerClass = compose(\n createStyleMixin({\n mappings: {\n hostHeight: { selector: () => ':host', property: 'height' },\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n itemsGrow: { selector: () => '::slotted(*)', property: 'flex-grow', fallback: '0' },\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [{ property: 'padding-left' }, { property: 'padding-right' }],\n\n flexDirection: {},\n justifyContent: {},\n alignItems: {},\n gap: {},\n flexWrap: {},\n\n backgroundColor: {},\n color: {},\n borderRadius: {},\n\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n boxShadow: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawContainer);\n","import globals from '../globals';\nimport { getThemeRefs, createHelperVars } from '../../helpers/themeHelpers';\nimport { ContainerClass, componentName } from '../../components/descope-container/ContainerClass';\n\nconst globalRefs = getThemeRefs(globals);\n\nconst compVars = ContainerClass.cssVarList;\n\nconst verticalAlignment = {\n start: { verticalAlignment: 'start' },\n center: { verticalAlignment: 'safe center' },\n end: { verticalAlignment: 'end' },\n};\n\nconst horizontalAlignment = {\n start: { horizontalAlignment: 'start' },\n center: { horizontalAlignment: 'safe center' },\n end: { horizontalAlignment: 'end' },\n};\n\nconst [helperTheme, helperRefs, helperVars] = createHelperVars(\n {\n verticalAlignment,\n horizontalAlignment,\n shadowColor: '#00000020', // if we want to support transparency vars, we should use different color format\n },\n componentName\n);\n\nconst { shadowColor } = helperRefs;\n\nconst container = {\n ...helperTheme,\n\n [compVars.itemsGrow]: '0',\n [compVars.hostWidth]: '100%',\n [compVars.boxShadow]: 'none',\n [compVars.backgroundColor]: globalRefs.colors.surface.main,\n [compVars.color]: globalRefs.colors.surface.contrast,\n [compVars.borderRadius]: '0px',\n [compVars.hostDirection]: globalRefs.direction,\n\n verticalPadding: {\n sm: { [compVars.verticalPadding]: '5px' },\n md: { [compVars.verticalPadding]: '10px' },\n lg: { [compVars.verticalPadding]: '20px' },\n },\n\n horizontalPadding: {\n sm: { [compVars.horizontalPadding]: '5px' },\n md: { [compVars.horizontalPadding]: '10px' },\n lg: { [compVars.horizontalPadding]: '20px' },\n },\n\n direction: {\n row: {\n [compVars.flexDirection]: 'row',\n [compVars.alignItems]: helperRefs.verticalAlignment,\n [compVars.justifyContent]: helperRefs.horizontalAlignment,\n [compVars.flexWrap]: 'wrap',\n horizontalAlignment: {\n spaceBetween: {\n [helperVars.horizontalAlignment]: 'space-between',\n },\n },\n },\n column: {\n [compVars.flexDirection]: 'column',\n [compVars.alignItems]: helperRefs.horizontalAlignment,\n [compVars.justifyContent]: helperRefs.verticalAlignment,\n verticalAlignment: {\n spaceBetween: {\n [helperVars.verticalAlignment]: 'space-between',\n },\n },\n },\n },\n\n spaceBetween: {\n sm: { [compVars.gap]: '10px' },\n md: { [compVars.gap]: '20px' },\n lg: { [compVars.gap]: '30px' },\n },\n\n shadow: {\n sm: {\n [compVars.boxShadow]: `${globalRefs.shadow.wide.sm} ${shadowColor}, ${globalRefs.shadow.narrow.sm} ${shadowColor}`,\n },\n md: {\n [compVars.boxShadow]: `${globalRefs.shadow.wide.md} ${shadowColor}, ${globalRefs.shadow.narrow.md} ${shadowColor}`,\n },\n lg: {\n [compVars.boxShadow]: `${globalRefs.shadow.wide.lg} ${shadowColor}, ${globalRefs.shadow.narrow.lg} ${shadowColor}`,\n },\n xl: {\n [compVars.boxShadow]: `${globalRefs.shadow.wide.xl} ${shadowColor}, ${globalRefs.shadow.narrow.xl} ${shadowColor}`,\n },\n '2xl': {\n [helperVars.shadowColor]: '#00000050', // mimic daisyUI shadow settings\n [compVars.boxShadow]: `${globalRefs.shadow.wide['2xl']} ${shadowColor}`,\n },\n },\n\n borderRadius: {\n sm: { [compVars.borderRadius]: globalRefs.radius.sm },\n md: { [compVars.borderRadius]: globalRefs.radius.md },\n lg: { [compVars.borderRadius]: globalRefs.radius.lg },\n xl: { [compVars.borderRadius]: globalRefs.radius.xl },\n '2xl': { [compVars.borderRadius]: globalRefs.radius['2xl'] },\n '3xl': { [compVars.borderRadius]: globalRefs.radius['3xl'] },\n },\n};\n\nexport default container;\n\nexport const vars = {\n ...compVars,\n ...helperVars,\n};\n","import { compose } from '../helpers';\nimport { componentNameValidationMixin, createStyleMixin, draggableMixin } from '../mixins';\nimport { createBaseClass } from './createBaseClass';\n\nexport const createCssVarImageClass = ({ componentName, varName, fallbackVarName }) => {\n let style;\n const getContent = () => style;\n\n class RawCssVarImageClass extends createBaseClass({\n componentName,\n baseSelector: ':host > div',\n }) {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\t\t\t\t:host([draggable=\"true\"]) > div {\n\t\t\t\t\tpointer-events: none\n\t\t\t\t}\t\t\n\t\t\t\t:host > div {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tmax-width: 100%;\n\t\t\t\t\tmax-height: 100%;\n\t\t\t\t\tobject-fit: contain;\n\t\t\t\t\tmargin: auto;\n\t\t\t\t\t${getContent()}\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<div></div>\n\t\t\t`;\n }\n }\n\n const CssVarImageClass = compose(\n createStyleMixin({\n mappings: {\n height: { selector: () => ':host > div' },\n width: { selector: () => ':host > div' },\n [varName]: { property: 'content' },\n [fallbackVarName]: { property: 'content' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n )(RawCssVarImageClass);\n\n style = `content: var(${CssVarImageClass.cssVarList[varName]}, var(${CssVarImageClass.cssVarList[fallbackVarName]}));`;\n\n return CssVarImageClass;\n};\n","import { getComponentName } from '../../helpers/componentHelpers';\nimport { createCssVarImageClass } from '../../baseClasses/createCssVarImageClass';\n\nexport const componentName = getComponentName('logo');\n\nexport const LogoClass = createCssVarImageClass({\n componentName,\n varName: 'url',\n fallbackVarName: 'fallbackUrl',\n});\n","import { LogoClass } from '../../components/descope-logo/LogoClass';\n\nconst vars = LogoClass.cssVarList;\n\nconst logo = {\n [vars.fallbackUrl]: 'url(https://imgs.descope.com/components/no-logo-placeholder.svg)',\n};\n\nexport default logo;\nexport { vars };\n","import { getComponentName } from '../../helpers/componentHelpers';\nimport { createCssVarImageClass } from '../../baseClasses/createCssVarImageClass';\n\nexport const componentName = getComponentName('totp-image');\n\nexport const TotpImageClass = createCssVarImageClass({\n componentName,\n varName: 'url',\n fallbackVarName: 'fallbackUrl',\n});\n","import { TotpImageClass } from '../../components/descope-totp-image/TotpImageClass';\n\nconst vars = TotpImageClass.cssVarList;\n\nconst logo = {\n [vars.fallbackUrl]: 'url(https://imgs.descope.com/components/totp-placeholder.svg)',\n};\n\nexport default logo;\nexport { vars };\n","import { getComponentName } from '../../helpers/componentHelpers';\nimport { createCssVarImageClass } from '../../baseClasses/createCssVarImageClass';\n\nexport const componentName = getComponentName('notp-image');\n\nexport const NotpImageClass = createCssVarImageClass({\n componentName,\n varName: 'url',\n fallbackVarName: 'fallbackUrl',\n});\n","import { NotpImageClass } from '../../components/descope-notp-image/NotpImageClass';\n\nconst vars = NotpImageClass.cssVarList;\n\nconst logo = {\n [vars.fallbackUrl]: 'url(https://imgs.descope.com/components/notp-placeholder.svg)',\n};\n\nexport default logo;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\n\nexport const componentName = getComponentName('text');\n\nclass RawText extends createBaseClass({ componentName, baseSelector: ':host > slot' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <style>\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n </style>\n <slot part=\"text-wrapper\"></slot>\n `;\n }\n\n get hideWhenEmpty() {\n return this.getAttribute('hide-when-empty') === 'true';\n }\n\n init() {\n super.init();\n\n observeChildren(this, () => {\n const hasChildren = !!this.childNodes.length;\n this.style.display = !hasChildren && this.hideWhenEmpty ? 'none' : '';\n });\n }\n}\n\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontSize: {},\n textColor: { property: 'color' },\n textLineHeight: { property: 'line-height' },\n textLetterSpacing: { property: 'letter-spacing' },\n textShadow: {},\n textAlign: {},\n textTransform: {},\n fontFamily: {},\n fontStyle: {},\n fontWeight: {},\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawText);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { TextClass } from '../../components/descope-text/TextClass';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = TextClass.cssVarList;\n\nconst text = {\n [vars.hostDirection]: globalRefs.direction,\n [vars.textLineHeight]: '1.35em',\n [vars.textAlign]: 'left',\n [vars.textColor]: globalRefs.colors.surface.dark,\n\n variant: {\n h1: {\n [vars.fontSize]: globalRefs.typography.h1.size,\n [vars.fontWeight]: globalRefs.typography.h1.weight,\n [vars.fontFamily]: globalRefs.typography.h1.font,\n },\n h2: {\n [vars.fontSize]: globalRefs.typography.h2.size,\n [vars.fontWeight]: globalRefs.typography.h2.weight,\n [vars.fontFamily]: globalRefs.typography.h2.font,\n },\n h3: {\n [vars.fontSize]: globalRefs.typography.h3.size,\n [vars.fontWeight]: globalRefs.typography.h3.weight,\n [vars.fontFamily]: globalRefs.typography.h3.font,\n },\n subtitle1: {\n [vars.fontSize]: globalRefs.typography.subtitle1.size,\n [vars.fontWeight]: globalRefs.typography.subtitle1.weight,\n [vars.fontFamily]: globalRefs.typography.subtitle1.font,\n },\n subtitle2: {\n [vars.fontSize]: globalRefs.typography.subtitle2.size,\n [vars.fontWeight]: globalRefs.typography.subtitle2.weight,\n [vars.fontFamily]: globalRefs.typography.subtitle2.font,\n },\n body1: {\n [vars.fontSize]: globalRefs.typography.body1.size,\n [vars.fontWeight]: globalRefs.typography.body1.weight,\n [vars.fontFamily]: globalRefs.typography.body1.font,\n },\n body2: {\n [vars.fontSize]: globalRefs.typography.body2.size,\n [vars.fontWeight]: globalRefs.typography.body2.weight,\n [vars.fontFamily]: globalRefs.typography.body2.font,\n },\n },\n\n mode: {\n primary: {\n [vars.textColor]: globalRefs.colors.surface.contrast,\n },\n secondary: {\n [vars.textColor]: globalRefs.colors.surface.dark,\n },\n error: {\n [vars.textColor]: globalRefs.colors.error.main,\n },\n success: {\n [vars.textColor]: globalRefs.colors.success.main,\n },\n },\n\n textAlign: {\n right: { [vars.textAlign]: 'right' },\n left: { [vars.textAlign]: 'left' },\n center: { [vars.textAlign]: 'center' },\n },\n\n _fullWidth: {\n [vars.hostWidth]: '100%',\n },\n\n _italic: {\n [vars.fontStyle]: 'italic',\n },\n\n _uppercase: {\n [vars.textTransform]: 'uppercase',\n },\n\n _lowercase: {\n [vars.textTransform]: 'lowercase',\n },\n};\n\nexport default text;\nexport { vars };\n","export const disableRules = [\n 'blockquote',\n 'list',\n 'image',\n 'table',\n 'code',\n 'hr',\n 'backticks',\n 'fence',\n 'reference',\n 'heading',\n 'lheading',\n 'html_block',\n];\n","export const decodeHTML = (html) => {\n const textArea = document.createElement('textarea');\n textArea.innerHTML = html;\n return textArea.value;\n};\n","/* eslint-disable no-param-reassign */\n\nimport MarkdownIt from 'markdown-it';\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport { disableRules } from './consts';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { decodeHTML } from './helpers';\n\nexport const componentName = getComponentName('enriched-text');\n\nclass EnrichedText extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n #origLinkRenderer;\n\n #origEmRenderer;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <style>\n :host {\n line-height: 1em;\n word-break: break-word;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n *, *:last-child {\n margin: 0;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n p {\n margin-bottom: 1em;\n }\n a {\n cursor: pointer;\n }\n blockquote {\n padding: 0 2em;\n }\n u {\n text-decoration: underline\n }\n s {\n color: currentColor;\n }\n </style>\n <slot part=\"text-wrapper\" style=\"display:none\"></slot>\n <div class=\"content\"></div>\n `;\n\n this.textSlot = this.shadowRoot.querySelector('slot');\n\n this.#initProcessor();\n\n observeChildren(this, this.#parseChildren.bind(this));\n }\n\n static get observedAttributes() {\n return ['readonly', 'link-target-blank'];\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (newValue !== oldValue) {\n if (attrName === 'readonly') {\n this.onReadOnlyChange(newValue === 'true');\n }\n\n if (attrName === 'link-target-blank') {\n this.#initProcessor();\n }\n }\n }\n\n // We're overriding the rule for em with single underscore to perform as underline. (_underline_)\n customUnderlineRenderer() {\n this.processor.renderer.rules.em_open = (tokens, idx, options, env, self) => {\n if (tokens[idx].markup === '_') tokens[idx].tag = 'u';\n return this.#origEmRenderer(tokens, idx, options, env, self);\n };\n this.processor.renderer.rules.em_close = (tokens, idx, options, env, self) => {\n if (tokens[idx].markup === '_') tokens[idx].tag = 'u';\n return this.#origEmRenderer(tokens, idx, options, env, self);\n };\n }\n\n #customizeLinkRenderer() {\n if (this.linkTargetBlank) {\n this.processor.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // Add a new `target` attribute, or replace the value of the existing one.\n tokens[idx].attrSet('target', '_blank');\n // Pass the token to the default renderer.\n return this.#origLinkRenderer(tokens, idx, options, env, self);\n };\n } else {\n this.processor.renderer.rules.link_open = this.#origLinkRenderer;\n }\n }\n\n #disableCustomRules() {\n if (!this.processor) {\n return;\n }\n this.processor.disable(disableRules);\n }\n\n #updateProcessorRules() {\n this.#disableCustomRules();\n }\n\n #storeOrigRenderers() {\n const defaultLinkRenderer = (tokens, idx, options, _, self) =>\n self.renderToken(tokens, idx, options);\n this.#origLinkRenderer = this.processor.renderer.rules.link_open || defaultLinkRenderer;\n\n const defaultStrongRenderer = (tokens, idx, options, _, self) =>\n self.renderToken(tokens, idx, options);\n this.#origEmRenderer = this.processor.renderer.rules.em_open || defaultStrongRenderer;\n }\n\n #initProcessor() {\n this.processor = new MarkdownIt('commonmark', { html: true });\n this.#storeOrigRenderers();\n this.#updateProcessorRules();\n this.#customizeLinkRenderer();\n this.customUnderlineRenderer();\n }\n\n get linkTargetBlank() {\n return this.getAttribute('link-target-blank') === 'true';\n }\n\n get contentNode() {\n return this.shadowRoot.querySelector('.content');\n }\n\n #parseChildren() {\n if (!this.processor) {\n return;\n }\n\n let html = decodeHTML(this.innerHTML);\n\n if (!html?.trim() && this.isConnected) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n\n try {\n const tokens = this.processor.parse(html, { references: undefined });\n html = this.processor.renderer.render(tokens, { html: true, breaks: true });\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('Not parsing invalid markdown token');\n }\n\n this.contentNode.innerHTML = html;\n }\n\n onReadOnlyChange(isReadOnly) {\n if (isReadOnly) {\n this.contentNode.setAttribute('inert', isReadOnly);\n } else {\n this.contentNode.removeAttribute('inert');\n }\n }\n}\n\nexport const EnrichedTextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDisplay: { selector: () => ':host', property: 'display', fallback: 'inline-block' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontSize: {},\n fontFamily: {},\n fontWeight: {},\n fontWeightBold: [\n { selector: () => ':host strong', property: 'font-weight' },\n { selector: () => ':host b', property: 'font-weight' },\n ],\n textColor: { property: 'color' },\n textLineHeight: { property: 'line-height' },\n textAlign: {},\n linkColor: { selector: 'a', property: 'color' },\n linkTextDecoration: { selector: 'a', property: 'text-decoration' },\n linkHoverTextDecoration: { selector: 'a:hover', property: 'text-decoration' },\n minHeight: {},\n minWidth: {},\n },\n }),\n createStyleMixin({ componentNameOverride: getComponentName('link') }),\n createStyleMixin({ componentNameOverride: getComponentName('text') }),\n draggableMixin,\n componentNameValidationMixin\n)(EnrichedText);\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { TextClass } from '../descope-text/TextClass';\nimport { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('link');\n\nclass RawLink extends createBaseClass({ componentName, baseSelector: ':host a' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t\t:host {\n\t\t\tdisplay: inline-block;\n line-height: 1em;\n\t\t}\n\t\t:host a {\n\t\t\tdisplay: inline;\n\t\t}\n\t\t</style>\n\t\t<div>\n\t\t\t<descope-text>\n\t\t\t\t<a>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</a>\n\t\t\t</descope-text>\n\t\t</div>\n\t\t`;\n\n forwardAttrs(this, this.shadowRoot.querySelector('a'), {\n includeAttrs: ['href', 'target', 'tooltip'],\n mapAttrs: {\n tooltip: 'title',\n },\n });\n\n forwardAttrs(this, this.shadowRoot.querySelector('descope-text'), {\n includeAttrs: ['mode', 'variant'],\n });\n }\n}\n\nconst selectors = {\n host: { selector: () => ':host' },\n link: { selector: () => ':host a' },\n anchor: {},\n wrapper: { selector: () => ':host > div' },\n text: { selector: () => TextClass.componentName },\n};\n\nconst { anchor, text, host, wrapper, link } = selectors;\n\nexport const LinkClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...text, property: 'direction' },\n textAlign: wrapper,\n textDecoration: { ...link, property: 'text-decoration', fallback: 'none' },\n textColor: [\n { ...anchor, property: 'color' },\n { ...text, property: TextClass.cssVarList.textColor },\n ],\n cursor: anchor,\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawLink);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { LinkClass } from '../../components/descope-link/LinkClass';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = LinkClass.cssVarList;\n\nconst link = {\n [vars.hostDirection]: globalRefs.direction,\n [vars.cursor]: 'pointer',\n\n [vars.textColor]: globalRefs.colors.primary.main,\n\n textAlign: {\n right: { [vars.textAlign]: 'right' },\n left: { [vars.textAlign]: 'left' },\n center: { [vars.textAlign]: 'center' },\n },\n\n _fullWidth: {\n [vars.hostWidth]: '100%',\n },\n\n _hover: {\n [vars.textDecoration]: 'underline',\n },\n\n mode: {\n secondary: {\n [vars.textColor]: globalRefs.colors.secondary.main,\n },\n error: {\n [vars.textColor]: globalRefs.colors.error.main,\n },\n success: {\n [vars.textColor]: globalRefs.colors.success.main,\n },\n },\n};\n\nexport default link;\nexport { vars };\n","import globals from '../globals';\nimport { getThemeRefs, useVar } from '../../helpers/themeHelpers';\nimport { EnrichedTextClass } from '../../components/descope-enriched-text/EnrichedTextClass';\nimport { vars as textCompVars } from './text';\nimport { vars as linkCompVars } from './link';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = EnrichedTextClass.cssVarList;\n\nconst enrichedText = {\n [vars.hostDirection]: globalRefs.direction,\n [vars.hostWidth]: useVar(textCompVars.hostWidth),\n\n [vars.textLineHeight]: useVar(textCompVars.textLineHeight),\n [vars.textColor]: useVar(textCompVars.textColor),\n [vars.textAlign]: useVar(textCompVars.textAlign),\n\n [vars.fontSize]: useVar(textCompVars.fontSize),\n [vars.fontWeight]: useVar(textCompVars.fontWeight),\n [vars.fontFamily]: useVar(textCompVars.fontFamily),\n\n [vars.linkColor]: useVar(linkCompVars.textColor),\n [vars.linkTextDecoration]: 'none',\n [vars.linkHoverTextDecoration]: 'underline',\n\n [vars.fontWeightBold]: '900',\n [vars.minWidth]: '0.25em',\n [vars.minHeight]: '1.35em',\n\n [vars.hostDisplay]: 'inline-block',\n\n _empty: {\n _hideWhenEmpty: {\n [vars.hostDisplay]: 'none',\n },\n },\n};\n\nexport default enrichedText;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\nimport { TextClass } from '../descope-text/TextClass';\n\nexport const componentName = getComponentName('divider');\nclass RawDivider extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t}\n\t\t\t\t:host > div {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t}\n\t\t\t\t:host > div::before,\n\t\t\t\t:host > div::after {\n\t\t\t\t\tcontent: '';\n\t\t\t\t\tflex-grow: 1;\n\t\t\t\t}\n\t\t\t\tdescope-text {\n\t\t\t\t\tflex-grow: 0;\n\t\t\t\t\tflex-shrink: 0;\n\t\t\t\t}\n\t\t\t\t:host(:empty) descope-text {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t\t:host([vertical=\"true\"]) div {\n\t\t\t\t\twidth: fit-content;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<div>\n\t\t\t\t<descope-text>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</descope-text>\n\t\t\t</div>\n\t\t`;\n\n this.textComponent = this.shadowRoot.querySelector('descope-text');\n\n forwardAttrs(this, this.textComponent, {\n includeAttrs: ['mode', 'variant', 'italic'],\n });\n }\n}\n\nconst textVars = TextClass.cssVarList;\nconst { host, before, after, text } = {\n host: { selector: () => ':host' },\n before: { selector: '::before' },\n after: { selector: '::after' },\n text: { selector: 'descope-text' },\n};\n\nexport const DividerClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostPadding: { ...host, property: 'padding' },\n hostDirection: { ...text, property: 'direction' },\n\n minHeight: {},\n alignItems: {},\n alignSelf: {},\n flexDirection: {},\n textAlign: { ...text, property: textVars.textAlign },\n\n labelTextWidth: { ...text, property: 'width' },\n labelTextMaxWidth: { ...text, property: 'max-width' },\n labelTextVerticalSpacing: [\n { ...text, property: 'padding-top' },\n { ...text, property: 'padding-bottom' },\n ],\n labelTextHorizontalSpacing: [\n { ...text, property: 'padding-right' },\n { ...text, property: 'padding-left' },\n ],\n\n stripeColor: [\n { ...before, property: 'background-color' },\n { ...after, property: 'background-color' },\n ],\n stripeHorizontalThickness: [\n { ...before, property: 'height' },\n { ...after, property: 'height' },\n ],\n stripeVerticalThickness: [\n { ...before, property: 'width' },\n { ...after, property: 'width' },\n ],\n stripeColorOpacity: [\n { ...before, property: 'opacity' },\n { ...after, property: 'opacity' },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawDivider);\n","import globals from '../globals';\nimport { componentName, DividerClass } from '../../components/descope-divider/DividerClass';\nimport { createHelperVars, getThemeRefs } from '../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\nconst compVars = DividerClass.cssVarList;\n\nconst [helperTheme, helperRefs, helperVars] = createHelperVars(\n {\n thickness: '2px',\n spacing: '10px',\n },\n componentName\n);\n\nconst divider = {\n ...helperTheme,\n\n [compVars.hostDirection]: globalRefs.direction,\n [compVars.alignItems]: 'center',\n [compVars.flexDirection]: 'row',\n [compVars.alignSelf]: 'stretch',\n [compVars.hostWidth]: '100%',\n [compVars.stripeColor]: globalRefs.colors.surface.light,\n [compVars.stripeColorOpacity]: '0.5',\n [compVars.stripeHorizontalThickness]: helperRefs.thickness,\n [compVars.labelTextWidth]: 'fit-content',\n [compVars.labelTextMaxWidth]: 'calc(100% - 100px)',\n [compVars.labelTextHorizontalSpacing]: helperRefs.spacing,\n [compVars.textAlign]: 'center',\n\n _vertical: {\n [compVars.minHeight]: '200px',\n [compVars.flexDirection]: 'column',\n [compVars.hostWidth]: 'fit-content',\n [compVars.hostPadding]: `0 calc(${helperRefs.thickness} * 3)`,\n [compVars.stripeVerticalThickness]: helperRefs.thickness,\n [compVars.labelTextWidth]: 'fit-content',\n [compVars.labelTextMaxWidth]: '100%',\n [compVars.labelTextVerticalSpacing]: helperRefs.spacing,\n },\n};\n\nexport default divider;\n\nexport const vars = {\n ...compVars,\n ...helperVars,\n};\n","/* eslint-disable no-param-reassign */\nimport debounce from 'lodash.debounce';\nimport { createBaseInputClass } from '../../../baseClasses/createBaseInputClass';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport { sanitizeStr, focusElement, createInputMaskStyle, toggleMaskVisibility } from './helpers';\n\nexport const componentName = getComponentName('passcode-internal');\n\nconst observedAttributes = ['digits', 'loading'];\n\nconst forwardAttributes = ['disabled', 'bordered', 'size', 'invalid', 'readonly'];\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass PasscodeInternal extends BaseInputClass {\n static get observedAttributes() {\n return observedAttributes.concat(BaseInputClass.observedAttributes || []);\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n\t\t<div class=\"wrapper\"></div>\n\t\t<div class=\"loader-container\">\n <descope-loader-radial size=\"xs\" mode=\"primary\"></descope-loader-radial>\n </div>\n\t\t<style>\n\t\t\t.wrapper {\n\t\t\t\tdisplay: flex;\n\t\t\t\twidth: 100%;\n\t\t\t\tjustify-content: space-between;\n direction: ltr;\n position: relative;\n\t\t\t}\n\n descope-text-field {\n direction: ltr;\n }\n\n .loader-container {\n display: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\t\t</style>\n\t\t`;\n\n this.wrapperEle = this.querySelector('.wrapper');\n this.loaderContainer = this.querySelector('.loader-container');\n }\n\n renderInputs() {\n const inputs = [...Array(this.digits).keys()].map(\n (idx) => `\n\t\t<descope-text-field\n\t\t\tdata-id=${idx}\n\t\t\ttype=\"tel\"\n\t\t\tautocomplete=\"one-time-code\"\n\t\t\tinputMode=\"numeric\"\n\t\t></descope-text-field>\n\t`\n );\n\n this.wrapperEle.innerHTML = inputs.join('');\n\n this.inputs = Array.from(this.querySelectorAll('descope-text-field'));\n\n this.initInputs();\n }\n\n handleLoadingState(isLoading) {\n if (isLoading) {\n this.setAttribute('inert', 'true');\n } else {\n this.removeAttribute('inert');\n }\n }\n\n get digits() {\n return Number.parseInt(this.getAttribute('digits'), 10) || 6;\n }\n\n get value() {\n return this.inputs?.map(({ value }) => value).join('') || '';\n }\n\n set value(val) {\n if (val === this.value) return;\n\n this.parseInputValue(this.inputs[0], sanitizeStr(val));\n }\n\n getValidity() {\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n if (this.pattern && !new RegExp(this.pattern).test(this.value)) {\n return { patternMismatch: true };\n }\n\n return {};\n }\n\n init() {\n // we are adding listeners before calling to super because it's stopping the events\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) this.inputs[0].focus();\n });\n\n super.init?.();\n\n this.renderInputs();\n }\n\n // eslint-disable-next-line class-methods-use-this\n getInputIdx(inputEle) {\n return Number.parseInt(inputEle.getAttribute('data-id'), 10);\n }\n\n getNextInput(currInput) {\n const currentIdx = this.getInputIdx(currInput);\n const newIdx = Math.min(currentIdx + 1, this.inputs.length - 1);\n return this.inputs[newIdx];\n }\n\n getPrevInput(currInput) {\n const currentIdx = this.getInputIdx(currInput);\n const newIdx = Math.max(currentIdx - 1, 0);\n return this.inputs[newIdx];\n }\n\n fillDigits(charArr, currentInput) {\n for (let i = 0; i < charArr.length; i += 1) {\n currentInput.value = charArr[i] ?? '';\n\n const nextInput = this.getNextInput(currentInput);\n\n if (nextInput === currentInput) break;\n currentInput = nextInput;\n }\n\n focusElement(currentInput);\n }\n\n parseInputValue(input, value = '') {\n const charArr = value.split('');\n\n if (!charArr.length) {\n // if we got an invalid value we want to clear the input\n input.value = '';\n } else this.fillDigits(charArr, input);\n }\n\n initInputs() {\n this.inputs.forEach((input) => {\n input.shadowRoot.appendChild(createInputMaskStyle());\n\n const handleParseInput = (val) => {\n this.parseInputValue(input, val);\n toggleMaskVisibility(input);\n };\n\n const debouncedHandleParseInput = debounce(handleParseInput, 20, { trailing: true });\n\n // sanitize the input\n input.addEventListener('input', (e) => {\n input.value = sanitizeStr(input.value);\n\n if (input.value) {\n toggleMaskVisibility(input, input.value[0]);\n }\n\n setTimeout(() => {\n if (e?.inputType === 'deleteContentBackward') {\n focusElement(this.getPrevInput(input));\n }\n });\n debouncedHandleParseInput(input.value);\n });\n\n // we want backspace to focus on the previous digit\n input.onkeydown = ({ key }) => {\n // when user deletes a digit, we want to focus the previous digit\n if (key === 'Backspace') {\n // if value is empty then the input element does not fire `input` event\n // if this is the case, we focus the element here.\n // otherwise, the focusElement occurs as part of the `input` event listener\n if (!input.value) {\n setTimeout(() => focusElement(this.getPrevInput(input)), 0);\n } else {\n input.setSelectionRange(1, 1);\n }\n } else if (key.length === 1) {\n // we want only characters and not command keys\n input.value = ''; // we are clearing the previous value so we can override it with the new value\n }\n };\n\n forwardAttrs(this, input, { includeAttrs: forwardAttributes });\n });\n\n this.handleFocusEventsDispatching(this.inputs);\n this.handleInputEventDispatching();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n // sync attributes to inputs\n if (oldValue !== newValue) {\n if (observedAttributes.includes(attrName)) {\n if (attrName === 'digits') {\n this.renderInputs();\n }\n if (attrName === 'loading') {\n this.handleLoadingState(newValue === 'true');\n }\n }\n }\n }\n\n get pattern() {\n return `^$|^\\\\d{${this.digits},}$`;\n }\n}\n\nexport default PasscodeInternal;\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('loader-radial');\n\nclass RawLoaderRadial extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t\t\t@keyframes spin {\n\t\t\t\t0% { transform: rotate(0deg); }\n\t\t\t\t100% { transform: rotate(360deg); }\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tposition: relative;\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\t\t\t:host > div {\n\t\t\t\tanimation-name: spin;\n\t\t\t}\n\t\t</style>\n\t\t<div></div>\n\t`;\n }\n}\n\nexport const LoaderRadialClass = compose(\n createStyleMixin({\n mappings: {\n hostDisplay: { property: 'display' },\n spinnerSize: [{ property: 'width' }, { property: 'height' }],\n spinnerBorderWidth: { property: 'border-width' },\n spinnerBorderStyle: { property: 'border-style' },\n spinnerBorderRadius: { property: 'border-radius' },\n spinnerQuadrant1Color: { property: 'border-top-color' },\n spinnerQuadrant2Color: { property: 'border-bottom-color' },\n spinnerQuadrant3Color: { property: 'border-right-color' },\n spinnerQuadrant4Color: { property: 'border-left-color' },\n animationDuration: {},\n animationTimingFunction: {},\n animationIterationCount: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawLoaderRadial);\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport { componentName as descopeInternalComponentName } from './descope-passcode-internal/PasscodeInternal';\nimport { TextFieldClass } from '../descope-text-field/TextFieldClass';\nimport { LoaderRadialClass } from '../descope-loader-radial/LoaderRadialClass';\nimport { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\nimport {\n resetInputCursor,\n resetInputLabelPosition,\n resetInputFieldDefaultWidth,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('passcode');\n\nconst observedAttributes = ['digits'];\n\nconst customMixin = (superclass) =>\n class PasscodeMixinClass extends superclass {\n static get observedAttributes() {\n return observedAttributes.concat(superclass.observedAttributes || []);\n }\n\n get digits() {\n return Number.parseInt(this.getAttribute('digits'), 10) || 6;\n }\n\n init() {\n super.init?.();\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n bordered=\"true\"\n name=\"code\"\n tabindex=\"-1\"\n slot=\"input\"\n ><slot></slot></${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, { includeAttrs: ['digits', 'size', 'loading'] });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'digits') {\n this.style.setProperty('--passcode-digits-count', newValue);\n }\n }\n };\n\nconst {\n host,\n digitField,\n label,\n requiredIndicator,\n internalWrapper,\n focusedDigitField,\n errorMessage,\n} = {\n host: { selector: () => ':host' },\n focusedDigitField: { selector: () => `${TextFieldClass.componentName}[focused=\"true\"]` },\n digitField: { selector: () => TextFieldClass.componentName },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n internalWrapper: { selector: 'descope-passcode-internal .wrapper' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nconst textVars = TextFieldClass.cssVarList;\nconst loaderVars = LoaderRadialClass.cssVarList;\n\nexport const PasscodeClass = compose(\n createStyleMixin({\n mappings: {\n fontSize: [{ ...digitField, property: textVars.fontSize }, host],\n hostWidth: { property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n fontFamily: [host, { ...label }],\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n digitValueTextColor: {\n selector: TextFieldClass.componentName,\n property: textVars.inputValueTextColor,\n },\n digitSize: [\n { ...digitField, property: 'height' },\n { ...digitField, property: 'width' },\n ],\n digitPadding: { ...digitField, property: textVars.inputHorizontalPadding },\n digitTextAlign: { ...digitField, property: textVars.inputTextAlign },\n digitCaretTextColor: { ...digitField, property: textVars.inputCaretTextColor },\n digitSpacing: { ...internalWrapper, property: 'gap' },\n digitOutlineColor: { ...digitField, property: textVars.inputOutlineColor },\n digitOutlineWidth: { ...digitField, property: textVars.inputOutlineWidth },\n\n focusedDigitFieldOutlineColor: { ...focusedDigitField, property: textVars.inputOutlineColor },\n overlayOpacity: { ...internalWrapper, property: 'opacity' },\n spinnerSize: { selector: LoaderRadialClass.componentName, property: loaderVars.spinnerSize },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tmin-width: calc(var(--passcode-digits-count) * 2em);\n\t\t\t}\n\t\t\t${resetInputFieldDefaultWidth()}\n\t\t\t:host::after {\n\t\t\t\tbackground-color: transparent;\n\t\t\t}\n\t\t\t:host::part(input-field)::after {\n\t\t\t\tbackground-color: transparent;\n\t\t\t}\n\n :host([loading=\"true\"]) descope-passcode-internal .loader-container {\n display: block;\n }\n\n\t\t\tdescope-passcode-internal {\n\t\t\t\t-webkit-mask-image: none;\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tmin-height: initial;\n\t\t\t}\n\n\t\t\tdescope-passcode-internal .wrapper {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tmin-height: initial;\n\t\t\t\theight: 100%;\n\t\t\t\tjustify-content: space-between;\n\t\t\t}\n\n\t\t\tdescope-passcode-internal descope-text-field {\n\t\t\t\tmin-width: 2em;\n\t\t\t\tmax-width: var(${textVars.inputHeight});\n\t\t\t}\n\n\t\t\tvaadin-text-field::part(input-field) {\n\t\t\t\tbackground-color: transparent;\n\t\t\t\tpadding: 0;\n\t\t\t\toverflow: hidden;\n\t\t\t\t-webkit-mask-image: none;\n\t\t\t}\n\n /* safari */\n\t\t\tvaadin-text-field::part(input-field)::after {\n opacity: 0;\n }\n\n\t\t\tvaadin-text-field {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\tvaadin-text-field::before {\n\t\t\t\theight: 0;\n\t\t\t}\n\n\t\t\tvaadin-text-field[readonly] > input:placeholder-shown {\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\tvaadin-text-field[readonly]::part(input-field)::after {\n\t\t\t\tborder: 0 solid;\n\t\t\t}\n\n\t\t\tvaadin-text-field::part(input-field) {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n ${resetInputLabelPosition('vaadin-text-field')}\n\t\t\t${resetInputCursor('vaadin-text-field')}\n \t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nexport default PasscodeClass;\n","import { PasscodeClass } from '../../components/descope-passcode/PasscodeClass';\nimport { refs } from './inputWrapper';\n\nconst vars = PasscodeClass.cssVarList;\n\nconst passcode = {\n [vars.hostDirection]: refs.direction,\n [vars.fontFamily]: refs.fontFamily,\n [vars.fontSize]: refs.fontSize,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.digitValueTextColor]: refs.valueTextColor,\n [vars.digitPadding]: '0',\n [vars.digitTextAlign]: 'center',\n [vars.digitSpacing]: '4px',\n [vars.hostWidth]: refs.width,\n [vars.digitOutlineColor]: 'transparent',\n [vars.digitOutlineWidth]: refs.outlineWidth,\n [vars.focusedDigitFieldOutlineColor]: refs.outlineColor,\n [vars.digitSize]: refs.inputHeight,\n\n size: {\n xs: { [vars.spinnerSize]: '15px' },\n sm: { [vars.spinnerSize]: '20px' },\n md: { [vars.spinnerSize]: '20px' },\n lg: { [vars.spinnerSize]: '20px' },\n },\n\n _hideCursor: {\n [vars.digitCaretTextColor]: 'transparent',\n },\n\n _loading: {\n [vars.overlayOpacity]: refs.overlayOpacity,\n },\n};\n\nexport default passcode;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('loader-linear');\n\nclass RawLoaderLinear extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n static get componentName() {\n return componentName;\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t\t\t@keyframes tilt {\n\t\t\t\t0% { transform: translateX(0); }\n\t\t\t\t50% { transform: translateX(400%); }\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tposition: relative;\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\t\t\tdiv::after {\n\t\t\t\tcontent: '';\n\t\t\t\tanimation-name: tilt;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 0;\n\t\t\t}\n\t\t\t:host > div {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t</style>\n\t\t<div></div>\n\t`;\n }\n}\n\nconst selectors = {\n after: { selector: '::after' },\n host: { selector: () => ':host' },\n};\n\nconst { after, host } = selectors;\n\nexport const LoaderLinearClass = compose(\n createStyleMixin({\n mappings: {\n hostDisplay: {},\n hostWidth: { ...host, property: 'width' },\n barHeight: [{ property: 'height' }, { ...after, property: 'height' }],\n barBorderRadius: [{ property: 'border-radius' }, { ...after, property: 'border-radius' }],\n verticalPadding: [\n { ...host, property: 'padding-top' },\n { ...host, property: 'padding-bottom' },\n ],\n barBackgroundColor: { property: 'background-color' },\n barColor: { ...after, property: 'background-color' },\n barWidth: { ...after, property: 'width' },\n animationDuration: [{}, after],\n animationTimingFunction: [{}, after],\n animationIterationCount: [{}, after],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawLoaderLinear);\n","import globals from '../../globals';\nimport { getThemeRefs } from '../../../helpers/themeHelpers';\nimport { LoaderLinearClass } from '../../../components/descope-loader-linear/LoaderLinearClass';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = LoaderLinearClass.cssVarList;\n\nconst loaderLinear = {\n [vars.hostDisplay]: 'inline-block',\n [vars.hostWidth]: '100%',\n\n [vars.barColor]: globalRefs.colors.surface.contrast,\n [vars.barWidth]: '20%',\n\n [vars.barBackgroundColor]: globalRefs.colors.surface.light,\n [vars.barBorderRadius]: '4px',\n\n [vars.animationDuration]: '2s',\n [vars.animationTimingFunction]: 'linear',\n [vars.animationIterationCount]: 'infinite',\n [vars.verticalPadding]: '0.25em',\n\n size: {\n xs: { [vars.barHeight]: '2px' },\n sm: { [vars.barHeight]: '4px' },\n md: { [vars.barHeight]: '6px' },\n lg: { [vars.barHeight]: '8px' },\n },\n\n mode: {\n primary: {\n [vars.barColor]: globalRefs.colors.primary.main,\n },\n secondary: {\n [vars.barColor]: globalRefs.colors.secondary.main,\n },\n },\n\n _hidden: {\n [vars.hostDisplay]: 'none',\n },\n};\n\nexport default loaderLinear;\nexport { vars };\n","import globals from '../../globals';\nimport {\n LoaderRadialClass,\n componentName,\n} from '../../../components/descope-loader-radial/LoaderRadialClass';\nimport { createHelperVars, getThemeRefs } from '../../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\nconst compVars = LoaderRadialClass.cssVarList;\n\nconst [helperTheme, helperRefs, helperVars] = createHelperVars(\n {\n spinnerColor: globalRefs.colors.surface.contrast,\n mode: {\n primary: {\n spinnerColor: globalRefs.colors.primary.main,\n },\n secondary: {\n spinnerColor: globalRefs.colors.secondary.main,\n },\n },\n },\n componentName\n);\n\nconst loaderRadial = {\n ...helperTheme,\n\n [compVars.animationDuration]: '2s',\n [compVars.animationTimingFunction]: 'linear',\n [compVars.animationIterationCount]: 'infinite',\n [compVars.spinnerBorderStyle]: 'solid',\n [compVars.spinnerBorderWidth]: '0.2em',\n [compVars.spinnerBorderRadius]: '50%',\n [compVars.spinnerQuadrant1Color]: helperRefs.spinnerColor,\n [compVars.spinnerQuadrant2Color]: 'transparent',\n [compVars.spinnerQuadrant3Color]: helperRefs.spinnerColor,\n [compVars.spinnerQuadrant4Color]: 'transparent',\n\n size: {\n xs: { [compVars.spinnerSize]: '20px' },\n sm: { [compVars.spinnerSize]: '30px' },\n md: { [compVars.spinnerSize]: '40px' },\n lg: { [compVars.spinnerSize]: '60px' },\n xl: { [compVars.spinnerSize]: '80px' },\n },\n\n _hidden: {\n [compVars.hostDisplay]: 'none',\n },\n};\n\nexport default loaderRadial;\nexport const vars = {\n ...compVars,\n ...helperVars,\n};\n","import { compose } from '../../helpers';\nimport {\n getComponentName,\n observeAttributes,\n observeChildren,\n} from '../../helpers/componentHelpers';\nimport {\n resetInputLabelPosition,\n resetInputCursor,\n resetInputPlaceholder,\n resetInputReadonlyStyle,\n useHostExternalPadding,\n inputFloatingLabelStyle,\n} from '../../helpers/themeHelpers/resetHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n portalMixin,\n proxyInputMixin,\n} from '../../mixins';\n\nexport const componentName = getComponentName('combo-box');\n\nconst ComboBoxMixin = (superclass) =>\n class ComboBoxMixinClass extends superclass {\n static get observedAttributes() {\n return ['label-type'];\n }\n\n // eslint-disable-next-line class-methods-use-this\n #renderItem = ({ displayName, value, label }) => {\n return `<span data-name=\"${label}\" data-id=\"${value}\">${displayName || label}</span>`;\n };\n\n #data;\n\n get defaultValue() {\n return this.getAttribute('default-value');\n }\n\n get renderItem() {\n return this.#renderItem;\n }\n\n set renderItem(renderFn) {\n this.#renderItem = renderFn;\n this.renderItems();\n }\n\n get data() {\n if (this.#data) return this.#data;\n\n const dataAttr = this.getAttribute('data');\n\n if (dataAttr) {\n try {\n const data = JSON.parse(dataAttr);\n if (this.isValidDataType(data)) {\n return data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"data\" -', e.message);\n }\n }\n\n return [];\n }\n\n set data(data) {\n if (this.isValidDataType(data)) {\n this.#data = data;\n this.renderItems();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data must be an array, received:', data);\n }\n\n return isValid;\n }\n\n getItemsTemplate() {\n return this.data?.reduce?.((acc, item) => acc + (this.renderItem?.(item || {}) || ''), '');\n }\n\n renderItems() {\n const template = this.getItemsTemplate();\n if (template) this.innerHTML = template;\n }\n\n handleSelectedItem() {\n const currentSelected = this.baseElement.selectedItem?.['data-id'];\n\n this.baseElement.selectedItem = undefined;\n\n // if previously selected item ID exists in current children, set it as selected\n if (currentSelected) {\n this.value = currentSelected;\n }\n\n // otherwise, if default value is specified, set default value as selected item\n if (!this.value) {\n this.setDefaultValue();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n customValueTransformFn(val) {\n return val;\n }\n\n // We want to override Vaadin's Combo Box value setter. This is needed since Vaadin couples between the\n // field that it searches the value, and the finaly display value of the input.\n // We provide a custom transform function to override that behavior.\n setComboBoxDescriptor() {\n const valueDescriptor = Object.getOwnPropertyDescriptor(\n this.inputElement.constructor.prototype,\n 'value'\n );\n\n const comboBox = this;\n\n Object.defineProperties(this.inputElement, {\n value: {\n ...valueDescriptor,\n set(val) {\n if (!comboBox.baseElement.items?.length) {\n return;\n }\n\n const transformedValue = comboBox.customValueTransformFn(val) || '';\n\n if (transformedValue === this.value) {\n return;\n }\n\n valueDescriptor.set.call(this, transformedValue);\n },\n },\n });\n }\n\n // vaadin api is to set props on their combo box node,\n // in order to avoid it, we are passing the children of this component\n // to the items & renderer props, so it will be used as the combo box items\n #onChildrenChange() {\n const baseElement = this.shadowRoot.querySelector(this.baseSelector);\n const items = Array.from(this.children);\n\n // we want the data-name attribute to be accessible as an object attribute\n if (items.length) {\n items.forEach((node) => {\n Object.defineProperty(node, 'data-name', {\n value: node.getAttribute('data-name'),\n configurable: true,\n writable: true,\n });\n Object.defineProperty(node, 'data-id', {\n value: node.getAttribute('data-id'),\n configurable: true,\n writable: true,\n });\n });\n\n baseElement.items = items;\n\n setTimeout(() => {\n // set timeout to ensure this runs after customValueTransformFn had the chance to be overriden\n this.handleSelectedItem();\n }, 0);\n }\n\n // use vaadin combobox custom renderer to render options as HTML\n // and not via default renderer, which renders only the data-name's value\n // in its own HTML template\n baseElement.renderer = (root, combo, model) => {\n // eslint-disable-next-line no-param-reassign\n root.innerHTML = model.item.outerHTML;\n };\n }\n\n // the default vaadin behavior is to attach the overlay to the body when opened\n // we do not want that because it's difficult to style the overlay in this way\n // so we override it to open inside the shadow DOM\n #overrideOverlaySettings() {\n const overlay = this.baseElement.shadowRoot.querySelector('vaadin-combo-box-overlay');\n overlay._attachOverlay = () => {\n overlay.bringToFront();\n };\n overlay._detachOverlay = () => {};\n overlay._enterModalState = () => {};\n }\n\n init() {\n super.init?.();\n\n // eslint-disable-next-line func-names\n this.getValidity = function () {\n if (!this.value && this.isRequired) {\n return {\n valueMissing: true,\n };\n }\n return {};\n };\n\n this.setComboBoxDescriptor();\n\n this.#overrideOverlaySettings();\n\n this.renderItems();\n\n observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });\n\n observeChildren(this, this.#onChildrenChange.bind(this));\n\n this.setDefaultValue();\n\n this.baseElement.addEventListener('selected-item-changed', () => {\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n });\n }\n\n onLabelClick() {\n if (this.isReadOnly || this.isDisabled) {\n return;\n }\n this.focus();\n this.setAttribute('opened', 'true');\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'label-type') {\n if (newValue === 'floating') {\n this.addEventListener('click', this.onLabelClick);\n } else {\n this.removeEventListener('click', this.onLabelClick);\n }\n }\n }\n }\n\n setDefaultValue() {\n this.value = this.defaultValue;\n }\n\n set value(val) {\n if (val) {\n const child = this.baseElement.items?.find((item) => item['data-id'] === val);\n\n if (child) {\n this.baseElement.selectedItem = child;\n }\n } else {\n this.baseElement.selectedItem = undefined;\n }\n }\n\n get value() {\n return this.baseElement.selectedItem?.['data-id'] || this.allowCustomValue\n ? this.baseElement.__data.value || ''\n : '';\n }\n\n get allowCustomValue() {\n return this.getAttribute('allow-custom-value') === 'true';\n }\n };\n\nconst {\n host,\n inputField,\n inputElement,\n placeholder,\n toggle,\n clearButton,\n label,\n requiredIndicator,\n helperText,\n errorMessage,\n} = {\n host: { selector: () => ':host' },\n inputField: { selector: '::part(input-field)' },\n inputElement: { selector: 'input' },\n placeholder: { selector: '> input:placeholder-shown' },\n toggle: { selector: '::part(toggle-button)' },\n clearButton: { selector: '::part(clear-button)' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const ComboBoxClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n fontFamily: [label, placeholder, inputField, helperText, errorMessage],\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n inputHeight: { ...inputField, property: 'height' },\n inputBackgroundColor: { ...inputField, property: 'background-color' },\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n inputValueTextColor: { ...inputField, property: 'color' },\n inputPlaceholderTextColor: { ...placeholder, property: 'color' },\n inputDropdownButtonCursor: [\n { ...toggle, property: 'cursor' },\n { ...clearButton, property: 'cursor' },\n ],\n inputDropdownButtonColor: [\n { ...toggle, property: 'color' },\n { ...clearButton, property: 'color' },\n ],\n inputDropdownButtonSize: [\n { ...toggle, property: 'font-size' },\n { ...clearButton, property: 'font-size' },\n ],\n inputDropdownButtonOffset: [\n { ...toggle, property: 'margin-right' },\n { ...toggle, property: 'margin-left' },\n ],\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n inputHorizontalPadding: [\n { ...inputElement, property: 'padding-left' },\n { ...inputElement, property: 'padding-right' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: { ...placeholder, property: 'opacity' },\n inputVerticalAlignment: { ...inputField, property: 'align-items' },\n valueInputHeight: { ...inputElement, property: 'height' },\n valueInputMarginBottom: { ...inputElement, property: 'margin-bottom' },\n\n // we need to use the variables from the portal mixin\n // so we need to use an arrow function on the selector\n // for that to work, because ComboBox is not available\n // at this time.\n overlayBackground: { property: () => ComboBoxClass.cssVarList.overlay.backgroundColor },\n overlayTextColor: {\n property: () => ComboBoxClass.cssVarList.overlay.textColor,\n },\n overlayBorder: { property: () => ComboBoxClass.cssVarList.overlay.border },\n overlayFontSize: { property: () => ComboBoxClass.cssVarList.overlay.fontSize },\n overlayFontFamily: { property: () => ComboBoxClass.cssVarList.overlay.fontFamily },\n overlayCursor: { property: () => ComboBoxClass.cssVarList.overlay.cursor },\n overlayItemBoxShadow: { property: () => ComboBoxClass.cssVarList.overlay.itemBoxShadow },\n overlayItemPaddingInlineStart: {\n property: () => ComboBoxClass.cssVarList.overlay.itemPaddingInlineStart,\n },\n overlayItemPaddingInlineEnd: {\n property: () => ComboBoxClass.cssVarList.overlay.itemPaddingInlineEnd,\n },\n },\n }),\n draggableMixin,\n portalMixin({\n name: 'overlay',\n selector: '',\n mappings: {\n backgroundColor: { selector: 'vaadin-combo-box-scroller' },\n minHeight: { selector: 'vaadin-combo-box-overlay' },\n margin: { selector: 'vaadin-combo-box-overlay' },\n cursor: { selector: 'vaadin-combo-box-item' },\n fontFamily: { selector: 'vaadin-combo-box-item' },\n textColor: { selector: 'vaadin-combo-box-item', property: 'color' },\n fontSize: { selector: 'vaadin-combo-box-item' },\n itemBoxShadow: { selector: 'vaadin-combo-box-item', property: 'box-shadow' },\n itemPaddingInlineStart: {\n selector: 'vaadin-combo-box-item',\n property: 'padding-inline-start',\n },\n itemPaddingInlineEnd: { selector: 'vaadin-combo-box-item', property: 'padding-inline-end' },\n },\n forward: {\n include: false,\n attributes: ['size'],\n },\n }),\n proxyInputMixin({ proxyProps: ['selectionStart'], inputEvent: 'selected-item-changed' }),\n componentNameValidationMixin,\n ComboBoxMixin\n)(\n createProxy({\n slots: ['', 'prefix'],\n wrappedEleName: 'vaadin-combo-box',\n style: () => `\n\t\t:host {\n\t\t\tdisplay: inline-flex;\n\t\t\tbox-sizing: border-box;\n\t\t\t-webkit-mask-image: none;\n\t\t}\n\t\t${useHostExternalPadding(ComboBoxClass.cssVarList)}\n\t\t${resetInputReadonlyStyle('vaadin-combo-box')}\n\t\t${resetInputPlaceholder('vaadin-combo-box')}\n\t\t${resetInputCursor('vaadin-combo-box')}\n\n\t\tvaadin-combo-box {\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t\tvaadin-combo-box::before {\n\t\t\theight: initial;\n\t\t}\n\t\tvaadin-combo-box [slot=\"input\"] {\n\t\t\t-webkit-mask-image: none;\n\t\t\tmin-height: 0;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\tvaadin-combo-box::part(input-field) {\n\t\t\tpadding: 0;\n\t\t\tbox-shadow: none;\n\t\t}\n\n vaadin-combo-box::part(toggle-button),\n vaadin-combo-box::part(clear-button) {\n align-self: center;\n }\n\n vaadin-combo-box[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-combo-box[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n \n ${resetInputLabelPosition('vaadin-combo-box')}\n ${inputFloatingLabelStyle()}\n\t\t`,\n // Note: we exclude `size` to avoid overriding Vaadin's ComboBox property\n // with the same name. Including it will cause Vaadin to calculate NaN size,\n // and reset items to an empty array, and opening the list box with no items\n // to display.\n excludeAttrsSync: ['tabindex', 'size', 'data'],\n componentName,\n includeForwardProps: ['items', 'renderer', 'selectedItem'],\n })\n);\n","import globals from '../globals';\nimport { ComboBoxClass } from '../../components/descope-combo-box/ComboBoxClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = ComboBoxClass.cssVarList;\n\nexport const comboBox = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.inputHeight]: refs.inputHeight,\n [vars.inputDropdownButtonColor]: globalRefs.colors.surface.dark,\n [vars.inputDropdownButtonCursor]: 'pointer',\n [vars.inputDropdownButtonSize]: refs.toggleButtonSize,\n [vars.inputDropdownButtonOffset]: globalRefs.spacing.xs,\n [vars.overlayItemPaddingInlineStart]: globalRefs.spacing.xs,\n [vars.overlayItemPaddingInlineEnd]: globalRefs.spacing.lg,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n\n _readonly: {\n [vars.inputDropdownButtonCursor]: 'default',\n },\n\n // Overlay theme exposed via the component:\n [vars.overlayFontSize]: refs.fontSize,\n [vars.overlayFontFamily]: refs.fontFamily,\n [vars.overlayCursor]: 'pointer',\n [vars.overlayItemBoxShadow]: 'none',\n [vars.overlayBackground]: refs.backgroundColor,\n [vars.overlayTextColor]: refs.valueTextColor,\n\n // Overlay direct theme:\n [vars.overlay.minHeight]: '400px',\n [vars.overlay.margin]: '0',\n};\n\nexport default comboBox;\nexport { vars };\n","import { createStyleMixin, draggableMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\n\nconst observedAttributes = ['src', 'alt'];\n\nexport const componentName = getComponentName('image');\n\nconst BaseClass = createBaseClass({ componentName, baseSelector: ':host > img' });\nclass RawImage extends BaseClass {\n static get observedAttributes() {\n return observedAttributes.concat(BaseClass.observedAttributes || []);\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t\t\t:host > img {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\t\t</style>\n\t\t<img/>\n\t`;\n }\n\n connectedCallback() {\n super.connectedCallback?.();\n\n forwardAttrs(this, this.baseElement, { includeAttrs: observedAttributes });\n }\n}\n\nexport const ImageClass = compose(\n createStyleMixin({\n mappings: {\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin\n)(RawImage);\n","import { ImageClass } from '../../components/descope-image/ImageClass';\n\nconst vars = ImageClass.cssVarList;\n\nconst image = {};\n\nexport default image;\nexport { vars };\n","export default [\n // United States should be the first option\n {\n name: 'United States',\n dialCode: '+1',\n code: 'US',\n },\n ...[\n {\n name: 'Afghanistan',\n dialCode: '+93',\n code: 'AF',\n },\n {\n name: 'Aland Islands',\n dialCode: '+358',\n code: 'AX',\n },\n {\n name: 'Albania',\n dialCode: '+355',\n code: 'AL',\n },\n {\n name: 'Algeria',\n dialCode: '+213',\n code: 'DZ',\n },\n {\n name: 'AmericanSamoa',\n dialCode: '+1684',\n code: 'AS',\n },\n {\n name: 'Andorra',\n dialCode: '+376',\n code: 'AD',\n },\n {\n name: 'Angola',\n dialCode: '+244',\n code: 'AO',\n },\n {\n name: 'Anguilla',\n dialCode: '+1264',\n code: 'AI',\n },\n {\n name: 'Antarctica',\n dialCode: '+672',\n code: 'AQ',\n },\n {\n name: 'Antigua and Barbuda',\n dialCode: '+1268',\n code: 'AG',\n },\n {\n name: 'Argentina',\n dialCode: '+54',\n code: 'AR',\n },\n {\n name: 'Armenia',\n dialCode: '+374',\n code: 'AM',\n },\n {\n name: 'Aruba',\n dialCode: '+297',\n code: 'AW',\n },\n {\n name: 'Australia',\n dialCode: '+61',\n code: 'AU',\n },\n {\n name: 'Austria',\n dialCode: '+43',\n code: 'AT',\n },\n {\n name: 'Azerbaijan',\n dialCode: '+994',\n code: 'AZ',\n },\n {\n name: 'Bahamas',\n dialCode: '+1242',\n code: 'BS',\n },\n {\n name: 'Bahrain',\n dialCode: '+973',\n code: 'BH',\n },\n {\n name: 'Bangladesh',\n dialCode: '+880',\n code: 'BD',\n },\n {\n name: 'Barbados',\n dialCode: '+1246',\n code: 'BB',\n },\n {\n name: 'Belarus',\n dialCode: '+375',\n code: 'BY',\n },\n {\n name: 'Belgium',\n dialCode: '+32',\n code: 'BE',\n },\n {\n name: 'Belize',\n dialCode: '+501',\n code: 'BZ',\n },\n {\n name: 'Benin',\n dialCode: '+229',\n code: 'BJ',\n },\n {\n name: 'Bermuda',\n dialCode: '+1441',\n code: 'BM',\n },\n {\n name: 'Bhutan',\n dialCode: '+975',\n code: 'BT',\n },\n {\n name: 'Bolivia, Plurinational State of',\n dialCode: '+591',\n code: 'BO',\n },\n {\n name: 'Bosnia and Herzegovina',\n dialCode: '+387',\n code: 'BA',\n },\n {\n name: 'Botswana',\n dialCode: '+267',\n code: 'BW',\n },\n {\n name: 'Brazil',\n dialCode: '+55',\n code: 'BR',\n },\n {\n name: 'British Indian Ocean Territory',\n dialCode: '+246',\n code: 'IO',\n },\n {\n name: 'Brunei Darussalam',\n dialCode: '+673',\n code: 'BN',\n },\n {\n name: 'Bulgaria',\n dialCode: '+359',\n code: 'BG',\n },\n {\n name: 'Burkina Faso',\n dialCode: '+226',\n code: 'BF',\n },\n {\n name: 'Burundi',\n dialCode: '+257',\n code: 'BI',\n },\n {\n name: 'Cambodia',\n dialCode: '+855',\n code: 'KH',\n },\n {\n name: 'Cameroon',\n dialCode: '+237',\n code: 'CM',\n },\n {\n name: 'Canada',\n dialCode: '+1',\n code: 'CA',\n },\n {\n name: 'Cape Verde',\n dialCode: '+238',\n code: 'CV',\n },\n {\n name: 'Cayman Islands',\n dialCode: '+345',\n code: 'KY',\n },\n {\n name: 'Central African Republic',\n dialCode: '+236',\n code: 'CF',\n },\n {\n name: 'Chad',\n dialCode: '+235',\n code: 'TD',\n },\n {\n name: 'Chile',\n dialCode: '+56',\n code: 'CL',\n },\n {\n name: 'China',\n dialCode: '+86',\n code: 'CN',\n },\n {\n name: 'Christmas Island',\n dialCode: '+61',\n code: 'CX',\n },\n {\n name: 'Cocos (Keeling) Islands',\n dialCode: '+61',\n code: 'CC',\n },\n {\n name: 'Colombia',\n dialCode: '+57',\n code: 'CO',\n },\n {\n name: 'Comoros',\n dialCode: '+269',\n code: 'KM',\n },\n {\n name: 'Congo',\n dialCode: '+242',\n code: 'CG',\n },\n {\n name: 'Congo, The Democratic Republic of the Congo',\n dialCode: '+243',\n code: 'CD',\n },\n {\n name: 'Cook Islands',\n dialCode: '+682',\n code: 'CK',\n },\n {\n name: 'Costa Rica',\n dialCode: '+506',\n code: 'CR',\n },\n {\n name: \"Cote d'Ivoire\",\n dialCode: '+225',\n code: 'CI',\n },\n {\n name: 'Croatia',\n dialCode: '+385',\n code: 'HR',\n },\n {\n name: 'Cuba',\n dialCode: '+53',\n code: 'CU',\n },\n {\n name: 'Cyprus',\n dialCode: '+357',\n code: 'CY',\n },\n {\n name: 'Czech Republic',\n dialCode: '+420',\n code: 'CZ',\n },\n {\n name: 'Denmark',\n dialCode: '+45',\n code: 'DK',\n },\n {\n name: 'Djibouti',\n dialCode: '+253',\n code: 'DJ',\n },\n {\n name: 'Dominica',\n dialCode: '+1767',\n code: 'DM',\n },\n {\n name: 'Dominican Republic',\n dialCode: '+1849',\n code: 'DO',\n },\n {\n name: 'Ecuador',\n dialCode: '+593',\n code: 'EC',\n },\n {\n name: 'Egypt',\n dialCode: '+20',\n code: 'EG',\n },\n {\n name: 'El Salvador',\n dialCode: '+503',\n code: 'SV',\n },\n {\n name: 'Equatorial Guinea',\n dialCode: '+240',\n code: 'GQ',\n },\n {\n name: 'Eritrea',\n dialCode: '+291',\n code: 'ER',\n },\n {\n name: 'Estonia',\n dialCode: '+372',\n code: 'EE',\n },\n {\n name: 'Ethiopia',\n dialCode: '+251',\n code: 'ET',\n },\n {\n name: 'Falkland Islands (Malvinas)',\n dialCode: '+500',\n code: 'FK',\n },\n {\n name: 'Faroe Islands',\n dialCode: '+298',\n code: 'FO',\n },\n {\n name: 'Fiji',\n dialCode: '+679',\n code: 'FJ',\n },\n {\n name: 'Finland',\n dialCode: '+358',\n code: 'FI',\n },\n {\n name: 'France',\n dialCode: '+33',\n code: 'FR',\n },\n {\n name: 'French Guiana',\n dialCode: '+594',\n code: 'GF',\n },\n {\n name: 'French Polynesia',\n dialCode: '+689',\n code: 'PF',\n },\n {\n name: 'Gabon',\n dialCode: '+241',\n code: 'GA',\n },\n {\n name: 'Gambia',\n dialCode: '+220',\n code: 'GM',\n },\n {\n name: 'Georgia',\n dialCode: '+995',\n code: 'GE',\n },\n {\n name: 'Germany',\n dialCode: '+49',\n code: 'DE',\n },\n {\n name: 'Ghana',\n dialCode: '+233',\n code: 'GH',\n },\n {\n name: 'Gibraltar',\n dialCode: '+350',\n code: 'GI',\n },\n {\n name: 'Greece',\n dialCode: '+30',\n code: 'GR',\n },\n {\n name: 'Greenland',\n dialCode: '+299',\n code: 'GL',\n },\n {\n name: 'Grenada',\n dialCode: '+1473',\n code: 'GD',\n },\n {\n name: 'Guadeloupe',\n dialCode: '+590',\n code: 'GP',\n },\n {\n name: 'Guam',\n dialCode: '+1671',\n code: 'GU',\n },\n {\n name: 'Guatemala',\n dialCode: '+502',\n code: 'GT',\n },\n {\n name: 'Guernsey',\n dialCode: '+44',\n code: 'GG',\n },\n {\n name: 'Guinea',\n dialCode: '+224',\n code: 'GN',\n },\n {\n name: 'Guinea-Bissau',\n dialCode: '+245',\n code: 'GW',\n },\n {\n name: 'Guyana',\n dialCode: '+595',\n code: 'GY',\n },\n {\n name: 'Haiti',\n dialCode: '+509',\n code: 'HT',\n },\n {\n name: 'Holy See (Vatican City State)',\n dialCode: '+379',\n code: 'VA',\n },\n {\n name: 'Honduras',\n dialCode: '+504',\n code: 'HN',\n },\n {\n name: 'Hong Kong',\n dialCode: '+852',\n code: 'HK',\n },\n {\n name: 'Hungary',\n dialCode: '+36',\n code: 'HU',\n },\n {\n name: 'Iceland',\n dialCode: '+354',\n code: 'IS',\n },\n {\n name: 'India',\n dialCode: '+91',\n code: 'IN',\n },\n {\n name: 'Indonesia',\n dialCode: '+62',\n code: 'ID',\n },\n {\n name: 'Iran, Islamic Republic of Persian Gulf',\n dialCode: '+98',\n code: 'IR',\n },\n {\n name: 'Iraq',\n dialCode: '+964',\n code: 'IQ',\n },\n {\n name: 'Ireland',\n dialCode: '+353',\n code: 'IE',\n },\n {\n name: 'Isle of Man',\n dialCode: '+44',\n code: 'IM',\n },\n {\n name: 'Israel',\n dialCode: '+972',\n code: 'IL',\n },\n {\n name: 'Italy',\n dialCode: '+39',\n code: 'IT',\n },\n {\n name: 'Jamaica',\n dialCode: '+1876',\n code: 'JM',\n },\n {\n name: 'Japan',\n dialCode: '+81',\n code: 'JP',\n },\n {\n name: 'Jersey',\n dialCode: '+44',\n code: 'JE',\n },\n {\n name: 'Jordan',\n dialCode: '+962',\n code: 'JO',\n },\n {\n name: 'Kazakhstan',\n dialCode: '+77',\n code: 'KZ',\n },\n {\n name: 'Kenya',\n dialCode: '+254',\n code: 'KE',\n },\n {\n name: 'Kiribati',\n dialCode: '+686',\n code: 'KI',\n },\n {\n name: \"Korea, Democratic People's Republic of Korea\",\n dialCode: '+850',\n code: 'KP',\n },\n {\n name: 'Korea, Republic of South Korea',\n dialCode: '+82',\n code: 'KR',\n },\n {\n name: 'Kuwait',\n dialCode: '+965',\n code: 'KW',\n },\n {\n name: 'Kyrgyzstan',\n dialCode: '+996',\n code: 'KG',\n },\n {\n name: 'Laos',\n dialCode: '+856',\n code: 'LA',\n },\n {\n name: 'Latvia',\n dialCode: '+371',\n code: 'LV',\n },\n {\n name: 'Lebanon',\n dialCode: '+961',\n code: 'LB',\n },\n {\n name: 'Lesotho',\n dialCode: '+266',\n code: 'LS',\n },\n {\n name: 'Liberia',\n dialCode: '+231',\n code: 'LR',\n },\n {\n name: 'Libyan Arab Jamahiriya',\n dialCode: '+218',\n code: 'LY',\n },\n {\n name: 'Liechtenstein',\n dialCode: '+423',\n code: 'LI',\n },\n {\n name: 'Lithuania',\n dialCode: '+370',\n code: 'LT',\n },\n {\n name: 'Luxembourg',\n dialCode: '+352',\n code: 'LU',\n },\n {\n name: 'Macao',\n dialCode: '+853',\n code: 'MO',\n },\n {\n name: 'Macedonia',\n dialCode: '+389',\n code: 'MK',\n },\n {\n name: 'Madagascar',\n dialCode: '+261',\n code: 'MG',\n },\n {\n name: 'Malawi',\n dialCode: '+265',\n code: 'MW',\n },\n {\n name: 'Malaysia',\n dialCode: '+60',\n code: 'MY',\n },\n {\n name: 'Maldives',\n dialCode: '+960',\n code: 'MV',\n },\n {\n name: 'Mali',\n dialCode: '+223',\n code: 'ML',\n },\n {\n name: 'Malta',\n dialCode: '+356',\n code: 'MT',\n },\n {\n name: 'Marshall Islands',\n dialCode: '+692',\n code: 'MH',\n },\n {\n name: 'Martinique',\n dialCode: '+596',\n code: 'MQ',\n },\n {\n name: 'Mauritania',\n dialCode: '+222',\n code: 'MR',\n },\n {\n name: 'Mauritius',\n dialCode: '+230',\n code: 'MU',\n },\n {\n name: 'Mayotte',\n dialCode: '+262',\n code: 'YT',\n },\n {\n name: 'Mexico',\n dialCode: '+52',\n code: 'MX',\n },\n {\n name: 'Micronesia, Federated States of Micronesia',\n dialCode: '+691',\n code: 'FM',\n },\n {\n name: 'Moldova',\n dialCode: '+373',\n code: 'MD',\n },\n {\n name: 'Monaco',\n dialCode: '+377',\n code: 'MC',\n },\n {\n name: 'Mongolia',\n dialCode: '+976',\n code: 'MN',\n },\n {\n name: 'Montenegro',\n dialCode: '+382',\n code: 'ME',\n },\n {\n name: 'Montserrat',\n dialCode: '+1664',\n code: 'MS',\n },\n {\n name: 'Morocco',\n dialCode: '+212',\n code: 'MA',\n },\n {\n name: 'Mozambique',\n dialCode: '+258',\n code: 'MZ',\n },\n {\n name: 'Myanmar',\n dialCode: '+95',\n code: 'MM',\n },\n {\n name: 'Namibia',\n dialCode: '+264',\n code: 'NA',\n },\n {\n name: 'Nauru',\n dialCode: '+674',\n code: 'NR',\n },\n {\n name: 'Nepal',\n dialCode: '+977',\n code: 'NP',\n },\n {\n name: 'Netherlands',\n dialCode: '+31',\n code: 'NL',\n },\n {\n name: 'Netherlands Antilles',\n dialCode: '+599',\n code: 'AN',\n },\n {\n name: 'New Caledonia',\n dialCode: '+687',\n code: 'NC',\n },\n {\n name: 'New Zealand',\n dialCode: '+64',\n code: 'NZ',\n },\n {\n name: 'Nicaragua',\n dialCode: '+505',\n code: 'NI',\n },\n {\n name: 'Niger',\n dialCode: '+227',\n code: 'NE',\n },\n {\n name: 'Nigeria',\n dialCode: '+234',\n code: 'NG',\n },\n {\n name: 'Niue',\n dialCode: '+683',\n code: 'NU',\n },\n {\n name: 'Norfolk Island',\n dialCode: '+672',\n code: 'NF',\n },\n {\n name: 'Northern Mariana Islands',\n dialCode: '+1670',\n code: 'MP',\n },\n {\n name: 'Norway',\n dialCode: '+47',\n code: 'NO',\n },\n {\n name: 'Oman',\n dialCode: '+968',\n code: 'OM',\n },\n {\n name: 'Pakistan',\n dialCode: '+92',\n code: 'PK',\n },\n {\n name: 'Palau',\n dialCode: '+680',\n code: 'PW',\n },\n {\n name: 'Palestinian Territory, Occupied',\n dialCode: '+970',\n code: 'PS',\n },\n {\n name: 'Panama',\n dialCode: '+507',\n code: 'PA',\n },\n {\n name: 'Papua New Guinea',\n dialCode: '+675',\n code: 'PG',\n },\n {\n name: 'Paraguay',\n dialCode: '+595',\n code: 'PY',\n },\n {\n name: 'Peru',\n dialCode: '+51',\n code: 'PE',\n },\n {\n name: 'Philippines',\n dialCode: '+63',\n code: 'PH',\n },\n {\n name: 'Pitcairn',\n dialCode: '+872',\n code: 'PN',\n },\n {\n name: 'Poland',\n dialCode: '+48',\n code: 'PL',\n },\n {\n name: 'Portugal',\n dialCode: '+351',\n code: 'PT',\n },\n {\n name: 'Puerto Rico',\n dialCode: '+1939',\n code: 'PR',\n },\n {\n name: 'Qatar',\n dialCode: '+974',\n code: 'QA',\n },\n {\n name: 'Romania',\n dialCode: '+40',\n code: 'RO',\n },\n {\n name: 'Russia',\n dialCode: '+7',\n code: 'RU',\n },\n {\n name: 'Rwanda',\n dialCode: '+250',\n code: 'RW',\n },\n {\n name: 'Reunion',\n dialCode: '+262',\n code: 'RE',\n },\n {\n name: 'Saint Barthelemy',\n dialCode: '+590',\n code: 'BL',\n },\n {\n name: 'Saint Helena, Ascension and Tristan Da Cunha',\n dialCode: '+290',\n code: 'SH',\n },\n {\n name: 'Saint Kitts and Nevis',\n dialCode: '+1869',\n code: 'KN',\n },\n {\n name: 'Saint Lucia',\n dialCode: '+1758',\n code: 'LC',\n },\n {\n name: 'Saint Martin',\n dialCode: '+590',\n code: 'MF',\n },\n {\n name: 'Saint Pierre and Miquelon',\n dialCode: '+508',\n code: 'PM',\n },\n {\n name: 'Saint Vincent and the Grenadines',\n dialCode: '+1784',\n code: 'VC',\n },\n {\n name: 'Samoa',\n dialCode: '+685',\n code: 'WS',\n },\n {\n name: 'San Marino',\n dialCode: '+378',\n code: 'SM',\n },\n {\n name: 'Sao Tome and Principe',\n dialCode: '+239',\n code: 'ST',\n },\n {\n name: 'Saudi Arabia',\n dialCode: '+966',\n code: 'SA',\n },\n {\n name: 'Senegal',\n dialCode: '+221',\n code: 'SN',\n },\n {\n name: 'Serbia',\n dialCode: '+381',\n code: 'RS',\n },\n {\n name: 'Seychelles',\n dialCode: '+248',\n code: 'SC',\n },\n {\n name: 'Sierra Leone',\n dialCode: '+232',\n code: 'SL',\n },\n {\n name: 'Singapore',\n dialCode: '+65',\n code: 'SG',\n },\n {\n name: 'Slovakia',\n dialCode: '+421',\n code: 'SK',\n },\n {\n name: 'Slovenia',\n dialCode: '+386',\n code: 'SI',\n },\n {\n name: 'Solomon Islands',\n dialCode: '+677',\n code: 'SB',\n },\n {\n name: 'Somalia',\n dialCode: '+252',\n code: 'SO',\n },\n {\n name: 'South Africa',\n dialCode: '+27',\n code: 'ZA',\n },\n {\n name: 'South Sudan',\n dialCode: '+211',\n code: 'SS',\n },\n {\n name: 'South Georgia and the South Sandwich Islands',\n dialCode: '+500',\n code: 'GS',\n },\n {\n name: 'Spain',\n dialCode: '+34',\n code: 'ES',\n },\n {\n name: 'Sri Lanka',\n dialCode: '+94',\n code: 'LK',\n },\n {\n name: 'Sudan',\n dialCode: '+249',\n code: 'SD',\n },\n {\n name: 'Suriname',\n dialCode: '+597',\n code: 'SR',\n },\n {\n name: 'Svalbard and Jan Mayen',\n dialCode: '+47',\n code: 'SJ',\n },\n {\n name: 'Swaziland',\n dialCode: '+268',\n code: 'SZ',\n },\n {\n name: 'Sweden',\n dialCode: '+46',\n code: 'SE',\n },\n {\n name: 'Switzerland',\n dialCode: '+41',\n code: 'CH',\n },\n {\n name: 'Syrian Arab Republic',\n dialCode: '+963',\n code: 'SY',\n },\n {\n name: 'Taiwan',\n dialCode: '+886',\n code: 'TW',\n },\n {\n name: 'Tajikistan',\n dialCode: '+992',\n code: 'TJ',\n },\n {\n name: 'Tanzania, United Republic of Tanzania',\n dialCode: '+255',\n code: 'TZ',\n },\n {\n name: 'Thailand',\n dialCode: '+66',\n code: 'TH',\n },\n {\n name: 'Timor-Leste',\n dialCode: '+670',\n code: 'TL',\n },\n {\n name: 'Togo',\n dialCode: '+228',\n code: 'TG',\n },\n {\n name: 'Tokelau',\n dialCode: '+690',\n code: 'TK',\n },\n {\n name: 'Tonga',\n dialCode: '+676',\n code: 'TO',\n },\n {\n name: 'Trinidad and Tobago',\n dialCode: '+1868',\n code: 'TT',\n },\n {\n name: 'Tunisia',\n dialCode: '+216',\n code: 'TN',\n },\n {\n name: 'Turkey',\n dialCode: '+90',\n code: 'TR',\n },\n {\n name: 'Turkmenistan',\n dialCode: '+993',\n code: 'TM',\n },\n {\n name: 'Turks and Caicos Islands',\n dialCode: '+1649',\n code: 'TC',\n },\n {\n name: 'Tuvalu',\n dialCode: '+688',\n code: 'TV',\n },\n {\n name: 'Uganda',\n dialCode: '+256',\n code: 'UG',\n },\n {\n name: 'Ukraine',\n dialCode: '+380',\n code: 'UA',\n },\n {\n name: 'United Arab Emirates',\n dialCode: '+971',\n code: 'AE',\n },\n {\n name: 'United Kingdom',\n dialCode: '+44',\n code: 'GB',\n },\n {\n name: 'Uruguay',\n dialCode: '+598',\n code: 'UY',\n },\n {\n name: 'Uzbekistan',\n dialCode: '+998',\n code: 'UZ',\n },\n {\n name: 'Vanuatu',\n dialCode: '+678',\n code: 'VU',\n },\n {\n name: 'Venezuela, Bolivarian Republic of Venezuela',\n dialCode: '+58',\n code: 'VE',\n },\n {\n name: 'Vietnam',\n dialCode: '+84',\n code: 'VN',\n },\n {\n name: 'Virgin Islands, British',\n dialCode: '+1284',\n code: 'VG',\n },\n {\n name: 'Virgin Islands, U.S.',\n dialCode: '+1340',\n code: 'VI',\n },\n {\n name: 'Wallis and Futuna',\n dialCode: '+681',\n code: 'WF',\n },\n {\n name: 'Yemen',\n dialCode: '+967',\n code: 'YE',\n },\n {\n name: 'Zambia',\n dialCode: '+260',\n code: 'ZM',\n },\n {\n name: 'Zimbabwe',\n dialCode: '+263',\n code: 'ZW',\n },\n ].sort((a, b) => (a.name < b.name ? -1 : 1)),\n];\n","import parsePhone from 'libphonenumber-js/min';\nimport { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport { forwardAttrs, getComponentName } from '../../../../helpers/componentHelpers';\nimport CountryCodes from '../../CountryCodes';\nimport { comboBoxItem } from '../helpers';\n\nexport const componentName = getComponentName('phone-field-internal');\n\nconst commonAttrs = ['disabled', 'size', 'bordered', 'invalid', 'readonly'];\nconst countryAttrs = ['country-input-placeholder', 'default-code', 'restrict-countries'];\nconst phoneAttrs = ['phone-input-placeholder', 'maxlength', 'autocomplete', 'name'];\nconst labelTypeAttrs = ['label-type', 'country-input-label', 'label'];\nconst mapAttrs = {\n 'country-input-label': 'label',\n 'country-input-placeholder': 'placeholder',\n 'phone-input-placeholder': 'placeholder',\n};\n\nconst inputRelatedAttrs = [].concat(commonAttrs, countryAttrs, phoneAttrs, labelTypeAttrs);\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass PhoneFieldInternal extends BaseInputClass {\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], inputRelatedAttrs);\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n <div>\n <descope-combo-box\n item-label-path=\"data-name\"\n item-value-path=\"data-id\"\n >\n ${CountryCodes.map((item) => comboBoxItem(item)).join('')}\n </descope-combo-box>\n <div class=\"separator\"></div>\n <descope-text-field type=\"tel\"></descope-text-field>\n </div>\n `;\n\n this.countryCodeInput = this.querySelector('descope-combo-box');\n this.phoneNumberInput = this.querySelector('descope-text-field');\n this.inputs = [this.countryCodeInput, this.phoneNumberInput];\n\n forwardAttrs(this, this.countryCodeInput, { includeAttrs: ['label-type'] });\n forwardAttrs(this, this.phoneNumberInput, { includeAttrs: ['label-type', 'required'] });\n\n // override combo box setter to display dialCode value in input\n this.countryCodeInput.customValueTransformFn = (val) => {\n const [, dialCode] = val?.split?.(' ') || [];\n return dialCode;\n };\n }\n\n get value() {\n if (!this.phoneNumberValue) {\n return '';\n }\n return `${this.countryCodeInput.value}-${this.phoneNumberInput.value}`;\n }\n\n set value(val) {\n const parsed = parsePhone(val || '');\n const countryCode = parsed?.countryCallingCode ? `+${parsed.countryCallingCode}` : '';\n const phoneNumber = parsed?.nationalNumber || '';\n\n if (countryCode) {\n const countryCodeItem = this.getCountryByDialCode(countryCode);\n if (countryCodeItem) {\n this.countryCodeInput.selectedItem = countryCodeItem;\n }\n } else {\n this.countryCodeInput.selectedItem = undefined;\n }\n this.phoneNumberInput.value = this.phoneNumberInput.value || phoneNumber;\n }\n\n get phoneNumberValue() {\n return this.phoneNumberInput.value;\n }\n\n get countryCodeValue() {\n return this.countryCodeInput.shadowRoot.querySelector('input').value;\n }\n\n get minLength() {\n return parseInt(this.getAttribute('minlength'), 10) || 0;\n }\n\n getValidity() {\n const hasCode = this.countryCodeInput.value;\n const hasPhone = this.phoneNumberInput.value;\n const emptyValue = !hasCode || !hasPhone;\n const hasMinPhoneLength =\n this.phoneNumberInput.value?.length && this.phoneNumberInput.value.length < this.minLength;\n\n if (this.isRequired && emptyValue) {\n return { valueMissing: true };\n }\n if (hasMinPhoneLength) {\n return { tooShort: true };\n }\n if (hasPhone && !hasCode) {\n return { valueMissing: true };\n }\n return {};\n }\n\n init() {\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) this.inputs[1].focus();\n });\n\n super.init?.();\n this.initInputs();\n }\n\n getRestrictedCountries() {\n return this.getAttribute('restrict-countries')?.split(',') || [];\n }\n\n getCountryByDialCode(countryDialCode) {\n return this.countryCodeInput.items?.find((c) => c.getAttribute('data-id') === countryDialCode);\n }\n\n getCountryByCodeId(countryCode) {\n return this.countryCodeInput.items?.find(\n (c) => c.getAttribute('data-country-code') === countryCode\n );\n }\n\n updateCountryCodeItems(restrictCountries) {\n const items = restrictCountries.length\n ? CountryCodes.filter((c) => restrictCountries.includes(c.code))\n : CountryCodes;\n this.querySelector('descope-combo-box').innerHTML = items\n .map((item) => comboBoxItem(item))\n .join('');\n }\n\n handleDefaultCountryCode(countryCode) {\n if (!this.countryCodeInput.value) {\n const countryCodeItem = this.getCountryByCodeId(countryCode);\n // When replacing the input component (inserting internal component into text-field) -\n // Vaadin resets the input's value. We use setTimeout in order to make sure this happens\n // after the reset.\n if (countryCodeItem) {\n setTimeout(() => {\n this.countryCodeInput.selectedItem = countryCodeItem;\n });\n }\n }\n }\n\n initInputs() {\n // Sanitize phone input value to filter everything but digits\n this.phoneNumberInput.addEventListener('input', (e) => {\n const telDigitsRegExp = /^\\d$/;\n const sanitizedInput = e.target.value\n .split('')\n .filter((char) => telDigitsRegExp.test(char))\n .join('');\n e.target.value = sanitizedInput;\n });\n\n this.handleFocusEventsDispatching(this.inputs);\n this.handleInputEventDispatching();\n }\n\n handleLabelTypeAttrs(attrName, newValue) {\n // set or remove label attributes from inner text/combo components on `label-type` change\n const attr = mapAttrs[attrName] || attrName;\n\n if (attrName === 'label-type') {\n this.onLabelTypeChange(newValue);\n }\n // on inner components label attr change - set label attributes for text/combo components\n // only if label-type is `floating`\n else if (this.getAttribute('label-type') === 'floating') {\n if (attrName === 'country-input-label') {\n this.countryCodeInput.setAttribute(attr, newValue);\n } else if (attrName === 'label') {\n this.phoneNumberInput.setAttribute(attr, newValue);\n }\n }\n }\n\n onLabelTypeChange(newValue) {\n if (newValue === 'floating') {\n // on change to `floating` label - set inner components `label` and `placeholder`\n this.countryCodeInput.setAttribute('label', this.getAttribute('country-input-label') || '');\n this.countryCodeInput.setAttribute(\n 'placeholder',\n this.getAttribute('country-input-placeholder') || ''\n );\n this.phoneNumberInput.setAttribute('label', this.getAttribute('label') || '');\n this.phoneNumberInput.setAttribute(\n 'placeholder',\n this.getAttribute('phone-input-placeholder') || ''\n );\n } else {\n // for other cases - reset inner components label-type and labels\n this.inputs.forEach((input) => input.removeAttribute('label'));\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'default-code' && newValue) {\n this.handleDefaultCountryCode(newValue);\n } else if (inputRelatedAttrs.includes(attrName)) {\n const attr = mapAttrs[attrName] || attrName;\n\n if (commonAttrs.includes(attrName)) {\n this.inputs.forEach((input) => input.setAttribute(attr, newValue));\n } else if (countryAttrs.includes(attrName)) {\n this.countryCodeInput.setAttribute(attr, newValue);\n } else if (phoneAttrs.includes(attrName)) {\n this.phoneNumberInput.setAttribute(attr, newValue);\n }\n }\n\n if (labelTypeAttrs.includes(attrName)) {\n this.handleLabelTypeAttrs(attrName, newValue);\n }\n\n if (attrName === 'restrict-countries') {\n this.updateCountryCodeItems(this.getRestrictedCountries());\n }\n }\n }\n}\n\nexport default PhoneFieldInternal;\n","import { componentName as descopeInternalComponentName } from './descope-phone-field-internal/PhoneFieldInternal';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport { compose } from '../../../helpers';\nimport { createProxy, createStyleMixin, draggableMixin, proxyInputMixin } from '../../../mixins';\nimport { TextFieldClass } from '../../descope-text-field/TextFieldClass';\nimport { ComboBoxClass } from '../../descope-combo-box/ComboBoxClass';\nimport CountryCodes from '../CountryCodes';\nimport {\n resetInputCursor,\n resetInputLabelPosition,\n resetInputFieldDefaultWidth,\n resetInputFieldInvalidBackgroundColor,\n useHostExternalPadding,\n} from '../../../helpers/themeHelpers/resetHelpers';\n\nconst textVars = TextFieldClass.cssVarList;\nconst comboVars = ComboBoxClass.cssVarList;\n\nexport const componentName = getComponentName('phone-field');\n\nconst customMixin = (superclass) =>\n class PhoneFieldMixinClass extends superclass {\n static get CountryCodes() {\n return CountryCodes;\n }\n\n init() {\n super.init?.();\n\n const template = document.createElement('template');\n\n template.innerHTML = `\n\t\t\t\t<${descopeInternalComponentName}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\tslot=\"input\"\n\t\t\t\t></${descopeInternalComponentName}>\n \t\t`;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this.shadowRoot.host, this.inputElement, {\n includeAttrs: [\n 'size',\n 'bordered',\n 'invalid',\n 'minlength',\n 'maxlength',\n 'default-code',\n 'country-input-placeholder',\n 'phone-input-placeholder',\n 'disabled',\n 'restrict-countries',\n 'country-input-label',\n 'readonly',\n 'label',\n 'label-type',\n ],\n });\n }\n };\n\nconst {\n host,\n label,\n requiredIndicator,\n inputField,\n countryCodeInput,\n phoneInput,\n separator,\n errorMessage,\n helperText,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n inputField: { selector: '::part(input-field)' },\n phoneInput: { selector: () => 'descope-text-field' },\n countryCodeInput: { selector: () => 'descope-combo-box' },\n separator: { selector: 'descope-phone-field-internal .separator' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const PhoneFieldClass = compose(\n createStyleMixin({\n mappings: {\n fontSize: [\n host,\n inputField,\n {\n selector: TextFieldClass.componentName,\n property: TextFieldClass.cssVarList.fontSize,\n },\n {\n selector: ComboBoxClass.componentName,\n property: ComboBoxClass.cssVarList.fontSize,\n },\n ],\n fontFamily: [\n label,\n errorMessage,\n helperText,\n {\n ...countryCodeInput,\n property: ComboBoxClass.cssVarList.overlay.fontFamily,\n },\n ],\n hostWidth: [\n { ...host, property: 'width' },\n { ...phoneInput, property: 'width' },\n { ...countryCodeInput, property: '--vaadin-combo-box-overlay-width' },\n ],\n hostDirection: { ...host, property: 'direction' },\n\n inputBorderStyle: [\n { ...inputField, property: 'border-style' },\n { ...separator, property: 'border-left-style' },\n ],\n inputBorderWidth: [\n { ...inputField, property: 'border-width' },\n { ...separator, property: 'border-left-width' },\n ],\n inputBorderColor: [\n { ...inputField, property: 'border-color' },\n { ...separator, property: 'border-left-color' },\n ],\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n countryCodeInputWidth: { ...countryCodeInput, property: comboVars.hostWidth },\n countryCodeDropdownWidth: {\n ...countryCodeInput,\n property: '--vaadin-combo-box-overlay-width',\n },\n phoneInputWidth: { ...phoneInput, property: 'width' },\n\n horizontalPadding: [\n { ...phoneInput, property: 'padding-left' },\n { ...phoneInput, property: 'padding-right' },\n { ...countryCodeInput, property: 'padding-left' },\n { ...countryCodeInput, property: 'padding-right' },\n ],\n\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n\n inputValueTextColor: [\n { ...phoneInput, property: textVars.inputValueTextColor },\n { ...countryCodeInput, property: comboVars.inputValueTextColor },\n ],\n\n inputPlaceholderTextColor: { ...phoneInput, property: textVars.inputPlaceholderColor },\n\n overlayItemBackgroundColor: {\n selector: 'descope-combo-box',\n property: comboVars.overlayItemBackgroundColor,\n },\n\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n\n valueInputHeight: [{ ...countryCodeInput, property: comboVars.valueInputHeight }],\n valueInputMarginBottom: [{ ...phoneInput, property: textVars.valueInputMarginBottom }],\n marginInlineStart: [\n { ...phoneInput, property: textVars.marginInlineStart },\n { ...countryCodeInput, property: comboVars.marginInlineStart },\n ],\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tmin-width: 15em;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\t\t\t${useHostExternalPadding(PhoneFieldClass.cssVarList)}\n\t\t\t${resetInputCursor('vaadin-text-field')}\n\t\t\t${resetInputFieldInvalidBackgroundColor('vaadin-text-field')}\n\t\t\t${resetInputFieldDefaultWidth()}\n\n\t\t\tdiv {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\t\t\tvaadin-text-field {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tpadding: 0;\n\t\t\t}\n\t\t\tvaadin-text-field[focus-ring]::part(input-field) {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\t\t\tvaadin-text-field::before {\n\t\t\t\theight: 0;\n\t\t\t}\n\t\t\tvaadin-text-field::part(input-field) {\n\t\t\t\tpadding: 0;\n\t\t\t\tbackground: transparent;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\tdescope-phone-field-internal {\n\t\t\t\t-webkit-mask-image: none;\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n direction: ltr;\n\t\t\t}\n\t\t\tdescope-phone-field-internal > div {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t}\n\t\t\tdescope-phone-field-internal .separator {\n\t\t\t\tflex: 0;\n\t\t\t\tborder: none;\n\t\t\t}\n\t\t\tdescope-combo-box {\n\t\t\t\tflex-shrink: 0;\n\t\t\t\tmin-width: 5.75em;\n\t\t\t\t${comboVars.inputOutlineWidth}: 0;\n\t\t\t\t${comboVars.inputOutlineOffset}: 0;\n\t\t\t\t${comboVars.inputBorderWidth}: 0;\n\t\t\t\t${comboVars.inputBorderRadius}: 0;\n\t\t\t}\n\t\t\tdescope-text-field {\n\t\t\t\tflex-grow: 1;\n\t\t\t\t${textVars.inputOutlineWidth}: 0;\n\t\t\t\t${textVars.inputOutlineOffset}: 0;\n\t\t\t\t${textVars.inputBorderWidth}: 0;\n\t\t\t\t${textVars.inputBorderRadius}: 0;\n }\n\n :host([label-type=\"floating\"]) vaadin-text-field::part(label) {\n display: none;\n }\n descope-text-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n descope-text-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\n\t\t\tvaadin-text-field::part(input-field)::after {\n\t\t\t\tborder: none;\n\t\t\t}\n ${resetInputLabelPosition('vaadin-text-field')}\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nexport default PhoneFieldClass;\n","import { PhoneFieldClass } from '../../components/phone-fields/descope-phone-field/PhoneFieldClass';\nimport { refs } from './inputWrapper';\n\nconst vars = PhoneFieldClass.cssVarList;\n\nconst phoneField = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.phoneInputWidth]: refs.minWidth,\n [vars.countryCodeInputWidth]: '5em',\n [vars.countryCodeDropdownWidth]: '20em',\n [vars.marginInlineStart]: '-0.25em',\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n\n // '@overlay': {\n // \toverlayItemBackgroundColor: 'red'\n // }\n};\n\nexport default phoneField;\nexport { vars };\n","import { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport { getComponentName } from '../../../../helpers/componentHelpers';\nimport { getCountryByCodeId } from '../../helpers';\n\nexport const componentName = getComponentName('phone-field-internal-input-box');\n\nconst observedAttributes = [\n 'disabled',\n 'size',\n 'bordered',\n 'invalid',\n 'readonly',\n 'phone-input-placeholder',\n 'name',\n 'autocomplete',\n 'label-type',\n];\nconst mapAttrs = {\n 'phone-input-placeholder': 'placeholder',\n};\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass PhoneFieldInternal extends BaseInputClass {\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], observedAttributes);\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n <div>\n <descope-text-field tabindex=\"1\"></descope-text-field>\n </div>\n `;\n\n this.phoneNumberInput = this.querySelector('descope-text-field');\n }\n\n get defaultCountryCode() {\n return getCountryByCodeId(this.getAttribute('default-code'));\n }\n\n get hasDefaultCode() {\n return !!this.getAttribute('default-code');\n }\n\n get value() {\n if (!this.phoneNumberValue) {\n return '';\n }\n\n if (this.hasDefaultCode) {\n // we want to transform phone numbers to a valid {dialCode}-{phoneNumber} format\n // e.g.:\n // +972-12345 => +972-12345\n // 972-12345 => +972-12345\n // 12345 => +972-12345\n //\n // we also want to handle any extra dash if added in the start of the phone number\n // e.g.:\n // +972--12345 => +972-12345\n const pattern = new RegExp(`\\\\+?${parseInt(this.defaultCountryCode, 10)}--?`);\n return `${this.defaultCountryCode}-${this.phoneNumberInput.value.replace(pattern, '')}`;\n }\n\n return this.phoneNumberInput.value;\n }\n\n set value(val) {\n this.phoneNumberInput.value = val;\n }\n\n get phoneNumberValue() {\n return this.phoneNumberInput.value;\n }\n\n get minLength() {\n return parseInt(this.getAttribute('minlength'), 10) || 0;\n }\n\n get maxLength() {\n return parseInt(this.getAttribute('maxlength'), 10) || 50;\n }\n\n getValidity() {\n const validPhonePattern = /^\\+?\\d{1,4}-?(?:\\d-?){1,15}$/;\n const stripValue = this.value.replace(/\\D/g, '');\n\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n\n if (stripValue.length < this.minLength) {\n return { tooShort: true };\n }\n\n if (stripValue.length > this.maxLength) {\n return { tooLong: true };\n }\n\n if (!validPhonePattern.test(this.value)) {\n return { patternMismatch: true };\n }\n\n return {};\n }\n\n init() {\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) this.phoneNumberInput.focus();\n });\n\n super.init?.();\n this.initInputs();\n }\n\n getCountryByDialCode(countryDialCode) {\n return this.countryCodeInput.items?.find(\n (c) => c.getAttribute('data-country-code') === countryDialCode\n );\n }\n\n initInputs() {\n // Sanitize phone input value to filter everything but digits\n this.phoneNumberInput.addEventListener('input', (e) => {\n if (e.target.value.length === 1 && e.target.value === '-') {\n e.target.value = '';\n }\n\n e.target.value = e.target.value\n .replace(/(?!^)\\+/g, '')\n .replace('--', '-')\n .replace('+-', '+');\n\n const telDigitsRegExp = /^[+\\d-]+$/;\n const sanitizedInput = e.target.value\n .split('')\n .filter((char) => telDigitsRegExp.test(char))\n .join('');\n\n e.target.value = sanitizedInput;\n });\n\n this.handleFocusEventsDispatching([this.phoneNumberInput]);\n this.handleInputEventDispatching();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n\n if (oldValue !== newValue && observedAttributes.includes(attrName)) {\n const attr = mapAttrs[attrName] || attrName;\n this.phoneNumberInput.setAttribute(attr, newValue);\n }\n }\n}\n\nexport default PhoneFieldInternal;\n","import { componentName as descopeInternalComponentName } from './descope-phone-input-box-internal/PhoneFieldInternalInputBox';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport { compose } from '../../../helpers';\nimport { createProxy, createStyleMixin, draggableMixin, proxyInputMixin } from '../../../mixins';\nimport { TextFieldClass } from '../../descope-text-field/TextFieldClass';\nimport CountryCodes from '../CountryCodes';\nimport {\n resetInputLabelPosition,\n resetInputCursor,\n resetInputFieldDefaultWidth,\n resetInputFieldInvalidBackgroundColor,\n useHostExternalPadding,\n inputFloatingLabelStyle,\n} from '../../../helpers/themeHelpers/resetHelpers';\n\nconst textVars = TextFieldClass.cssVarList;\n\nexport const componentName = getComponentName('phone-input-box-field');\n\nconst customMixin = (superclass) =>\n class PhoneInputBoxFieldMixinClass extends superclass {\n static get CountryCodes() {\n return CountryCodes;\n }\n\n init() {\n super.init?.();\n\n const template = document.createElement('template');\n\n template.innerHTML = `\n\t\t\t\t<${descopeInternalComponentName}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\tslot=\"input\"\n\t\t\t\t></${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this.shadowRoot.host, this.inputElement, {\n includeAttrs: [\n 'size',\n 'bordered',\n 'invalid',\n 'minlength',\n 'maxlength',\n 'default-code',\n 'disabled',\n 'phone-input-placeholder',\n 'label',\n 'label-type',\n ],\n });\n }\n };\n\nconst {\n host,\n label,\n inputElement,\n requiredIndicator,\n inputField,\n phoneInput,\n errorMessage,\n helperText,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n placeholder: { selector: '> input:placeholder-shown' },\n inputElement: { selector: 'input' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n inputField: { selector: '::part(input-field)' },\n phoneInput: { selector: () => 'descope-text-field' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const PhoneFieldInputBoxClass = compose(\n createStyleMixin({\n mappings: {\n fontSize: [\n host,\n inputField,\n {\n selector: TextFieldClass.componentName,\n property: TextFieldClass.cssVarList.fontSize,\n },\n ],\n fontFamily: [label, errorMessage, helperText],\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: { ...host, property: 'direction' },\n\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n inputHorizontalPadding: [\n { ...phoneInput, property: 'padding-left' },\n { ...phoneInput, property: 'padding-right' },\n ],\n\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n\n inputValueTextColor: { ...phoneInput, property: textVars.inputValueTextColor },\n\n inputPlaceholderTextColor: { ...phoneInput, property: textVars.inputPlaceholderColor },\n\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n valueInputHeight: { ...inputElement, property: 'height' },\n valueInputMarginBottom: {\n selector: TextFieldClass.componentName,\n property: textVars.valueInputMarginBottom,\n },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n :host {\n display: inline-flex;\n max-width: 100%;\n box-sizing: border-box;\n }\n ${useHostExternalPadding(PhoneFieldInputBoxClass.cssVarList)}\n ${resetInputCursor('vaadin-text-field')}\n ${resetInputFieldInvalidBackgroundColor('vaadin-text-field')}\n ${resetInputFieldDefaultWidth()}\n\n vaadin-text-field {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 0;\n }\n vaadin-text-field[focus-ring]::part(input-field) {\n box-shadow: none;\n }\n vaadin-text-field::before {\n height: 0;\n }\n vaadin-text-field::part(input-field) {\n padding: 0;\n background: transparent;\n overflow: hidden;\n -webkit-mask-image: none;\n }\n descope-phone-field-internal-input-box {\n -webkit-mask-image: none;\n padding: 0;\n width: 100%;\n height: 100%;\n }\n descope-phone-field-internal-input-box > div {\n width: 100%;\n height: 100%;\n }\n descope-phone-field-internal-input-box .separator {\n flex: 0;\n border: none;\n }\n descope-text-field {\n flex-grow: 1;\n width: 100%;\n ${textVars.inputOutlineWidth}: 0;\n ${textVars.inputOutlineOffset}: 0;\n ${textVars.inputBorderWidth}: 0;\n ${textVars.inputBorderRadius}: 0;\n direction: ltr;\n }\n vaadin-text-field[readonly] > input:placeholder-shown {\n opacity: 1;\n }\n vaadin-text-field::part(input-field)::after {\n border: none;\n }\n\n vaadin-text-field[label-type=\"floating\"]:not([focused])[readonly] input:placeholder-shown {\n opacity: 0;\n }\n vaadin-text-field[label-type=\"floating\"]:not([focused])[disabled] input:placeholder-shown {\n opacity: 0;\n }\n\n ${resetInputLabelPosition('vaadin-text-field')}\n ${inputFloatingLabelStyle()}\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nexport default PhoneFieldInputBoxClass;\n","import { PhoneFieldInputBoxClass } from '../../components/phone-fields/descope-phone-input-box-field/PhoneFieldInputBoxClass';\nimport { refs } from './inputWrapper';\n\nconst vars = PhoneFieldInputBoxClass.cssVarList;\n\nconst phoneInputBoxField = {\n [vars.hostWidth]: '16em',\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n [vars.inputHorizontalPadding]: '0',\n\n _fullWidth: {\n [vars.hostWidth]: refs.width,\n },\n};\n\nexport default phoneInputBoxField;\nexport { vars };\n","import { getComponentName } from '../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('new-password-internal');\n","export const interpolateString = (template, values) =>\n template.replace(/{{(\\w+)+}}/g, (match, key) => values?.[key] || match);\n","// eslint-disable-next-line max-classes-per-file\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { interpolateString } from './helpers';\n\nexport const componentName = getComponentName('policy-validation');\n\nconst overrideAttrs = ['data-password-policy-value-minlength'];\nconst dataAttrs = ['data', 'active-policies', 'overrides', ...overrideAttrs];\nconst policyAttrs = ['label', 'value', ...dataAttrs];\n\nclass RawPolicyValidation extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n #availablePolicies;\n\n #activePolicies = [];\n\n #overrides;\n\n static get observedAttributes() {\n return policyAttrs;\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div>\n <div class=\"label\"></div>\n <ul></ul>\n </div>\n <style>\n :host > div {\n width: 100%;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n }\n .label {\n max-width: 100%;\n text-wrap: wrap;\n overflow-wrap: break-word;\n }\n .hide-label .label {\n display: none;\n }\n ul {\n display: flex;\n flex-direction: column;\n padding: 0;\n margin: 0;\n }\n ul, li {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n li::before {\n display: inline-block;\n width: 1em;\n text-align: center;\n }\n </style>\n\t\t`;\n\n this.panel = this.shadowRoot.querySelector(':host > div');\n this.label = this.shadowRoot.querySelector('.label');\n this.list = this.shadowRoot.querySelector('ul');\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (oldValue !== newValue) {\n if (attrName === 'label') {\n this.updateLabel(newValue);\n }\n\n // we're don't know the order in which the attributes are forwarded, so we're trying to render every time\n // once `data` and `active-policies` are populated, the render will be executed.\n // once the `overrides` object is updated, we want to re-render the panel.\n if (dataAttrs.includes(attrName)) {\n if (attrName === 'data') {\n try {\n this.availablePolicies = JSON.parse(newValue);\n } catch {\n // eslint-disable-next-line no-console\n console.error('Failed to set available policies');\n }\n }\n if (attrName === 'active-policies') {\n this.#activePolicies = (newValue || '').split(',');\n }\n\n if (attrName === 'data-password-policy-value-minlength') {\n const ln = Number(newValue);\n if (!Number.isNaN(ln) && ln > 0) {\n this.#overrides = { ...this.#overrides, minlength: { value: `${ln}` } };\n }\n }\n }\n\n this.renderItems(this.#availablePolicies, this.#activePolicies, this.#overrides);\n }\n }\n\n get availablePolicies() {\n return this.#availablePolicies || [];\n }\n\n set availablePolicies(val) {\n this.#availablePolicies = val;\n }\n\n get value() {\n return this.getAttribute('value') || '';\n }\n\n validate() {\n let policies = this.#availablePolicies;\n\n if (this.#overrides) {\n policies = this.#availablePolicies.map((policy) =>\n this.#overrides[policy.id] ? { ...policy, data: this.#overrides[policy.id] } : policy\n );\n }\n\n return this.#activePolicies.reduce((results, id) => {\n const policy = policies.find((p) => p.id === id);\n\n if (!policy) {\n return results;\n }\n\n const { pattern, message, data } = policy;\n\n if (!pattern || !message) {\n return results;\n }\n\n const exp = new RegExp(interpolateString(pattern, data));\n\n const validationResult = {\n valid: exp.test(this.value),\n message: interpolateString(message, data),\n id,\n };\n\n results.push(validationResult);\n\n return results;\n }, []);\n }\n\n get isValid() {\n return !this.validate().some(({ valid }) => valid === false);\n }\n\n getValidationItemTemplate({ valid, message }) {\n const status = !this.value ? 'none' : valid;\n return `\n <li class=\"item\" data-valid=\"${status}\">\n <span class=\"message\">${message}</span>\n </li>\n `;\n }\n\n renderItems(availablePolicies, activePolicies) {\n if (!availablePolicies || !activePolicies.length) {\n return;\n }\n\n this.list.innerHTML = this.validate().map(this.getValidationItemTemplate.bind(this)).join('');\n }\n\n updateLabel(val) {\n if (!val) {\n this.classList.add('hide-label');\n this.label.innerHTML = '';\n } else {\n this.label.innerHTML = val;\n this.classList.remove('hide-label');\n }\n }\n}\n\nconst { host, item, symbolDefault, symbolSuccess, symbolError } = {\n host: { selector: () => ':host > div' },\n item: { selector: () => '.item' },\n symbolDefault: { selector: () => '.item[data-valid=\"none\"]::before' },\n symbolSuccess: { selector: () => '.item[data-valid=\"true\"]::before' },\n symbolError: { selector: () => '.item[data-valid=\"false\"]::before' },\n};\n\nexport const PolicyValidationClass = compose(\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') }),\n createStyleMixin({\n mappings: {\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontSize: {},\n fontFamily: {},\n padding: {},\n borderWidth: { ...host, property: 'border-width' },\n borderStyle: { ...host, property: 'border-style' },\n borderColor: { ...host, property: 'border-color' },\n borderRadius: { ...host, property: 'border-radius' },\n backgroundColor: { ...host, property: 'background-color' },\n textColor: { property: 'color' },\n labelMargin: { ...host, property: 'gap' },\n itemsSpacing: { ...item, property: 'line-height' },\n itemSymbolSuccessColor: { ...symbolSuccess, property: 'color' },\n itemSymbolErrorColor: { ...symbolError, property: 'color' },\n itemSymbolDefault: { ...symbolDefault, property: 'content' },\n itemSymbolSuccess: { ...symbolSuccess, property: 'content' },\n itemSymbolError: { ...symbolError, property: 'content' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawPolicyValidation);\n","import { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\nimport { compose } from '../../helpers';\nimport { createStyleMixin, proxyInputMixin, draggableMixin, createProxy } from '../../mixins';\nimport { componentName as descopeInternalComponentName } from './descope-new-password-internal/componentName';\nimport { PasswordClass } from '../descope-password/PasswordClass';\nimport { useHostExternalPadding } from '../../helpers/themeHelpers/resetHelpers';\nimport { PolicyValidationClass } from '../descope-policy-validation/PolicyValidationClass';\n\nexport const componentName = getComponentName('new-password');\n\nconst policyPreviewVars = PolicyValidationClass.cssVarList;\n\nconst customMixin = (superclass) =>\n class NewPasswordMixinClass extends superclass {\n init() {\n super.init?.();\n\n const template = document.createElement('template');\n\n const externalInputAttr = this.getAttribute('external-input');\n\n template.innerHTML = `\n\t\t\t<${descopeInternalComponentName}\n\t\t\t\tname=\"new-password\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\tslot=\"input\"\n external-input=\"${externalInputAttr}\"\n\t\t\t>\n </${descopeInternalComponentName}>\n\t\t\t`;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n if (this.getAttribute('external-input') === 'true') {\n this.initExternalInput();\n }\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'password-label',\n 'password-placeholder',\n 'confirm-label',\n 'confirm-placeholder',\n 'full-width',\n 'size',\n 'bordered',\n 'label',\n 'has-confirm',\n 'invalid',\n 'readonly',\n 'draggable',\n 'has-validation',\n 'policy-label',\n 'active-policies',\n 'available-policies',\n 'data-password-policy-value-minlength',\n 'label-type',\n 'manual-visibility-toggle',\n ],\n });\n }\n\n createSlottedExternalInput(node, slotName) {\n const externalInput = node.querySelector('input');\n const slotEle = document.createElement('slot');\n\n const targetSlot = externalInput.getAttribute('slot');\n\n slotEle.setAttribute('name', slotName);\n slotEle.setAttribute('slot', targetSlot);\n\n node.appendChild(slotEle);\n\n // move external input\n externalInput.setAttribute('slot', slotName);\n externalInput.setAttribute('data-hidden-input', 'true');\n\n this.appendChild(externalInput);\n }\n\n initExternalInput() {\n // get descope input components\n this.passwordInput = this.inputElement.querySelector('[data-id=\"password\"]');\n this.confirmInput = this.inputElement.querySelector('[data-id=\"confirm\"]');\n\n // create slots for external password input\n this.createSlottedExternalInput(this.passwordInput, 'external-password-input');\n this.createSlottedExternalInput(this.confirmInput, 'external-confirm-input');\n }\n };\n\nconst {\n host,\n label,\n internalInputsWrapper,\n errorMessage,\n helperText,\n passwordInput,\n policyPreview,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n internalInputsWrapper: { selector: 'descope-new-password-internal .wrapper' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n passwordInput: { selector: 'descope-password' },\n policyPreview: { selector: 'descope-policy-validation' },\n};\n\nexport const NewPasswordClass = compose(\n createStyleMixin({\n mappings: {\n fontSize: [\n host,\n {},\n {\n selector: PasswordClass.componentName,\n property: PasswordClass.cssVarList.fontSize,\n },\n ],\n fontFamily: [label, errorMessage, helperText],\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n labelTextColor: { ...label, property: 'color' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: [\n { ...host, property: 'direction' },\n { ...passwordInput, property: PasswordClass.cssVarList.hostDirection },\n ],\n inputsRequiredIndicator: { ...host, property: 'content' },\n spaceBetweenInputs: { ...internalInputsWrapper, property: 'gap' },\n policyPreviewBackgroundColor: {\n ...policyPreview,\n property: policyPreviewVars.backgroundColor,\n },\n policyPreviewPadding: { ...policyPreview, property: policyPreviewVars.padding },\n\n valueInputHeight: { ...passwordInput, property: PasswordClass.cssVarList.valueInputHeight },\n valueInputMarginBottom: {\n ...passwordInput,\n property: PasswordClass.cssVarList.valueInputMarginBottom,\n },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t:host {\n\t\t\tdisplay: inline-block;\n\t\t\tmax-width: 100%;\n\t\t\tbox-sizing: border-box;\n\t\t}\n :host ::part(error-message) {\n direction: ltr;\n }\n\t\t${useHostExternalPadding(PasswordClass.cssVarList)}\n\t\tvaadin-text-field {\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t}\n\t\tvaadin-text-field::part(input-field) {\n\t\t\tmin-height: 0;\n\t\t\tbackground: transparent;\n\t\t\tbox-shadow: none;\n\t\t\tpadding: 0;\n\t\t}\n\t\tvaadin-text-field::part(input-field)::after {\n\t\t\tbackground: transparent;\n\t\t\topacity: 0;\n\t\t}\n\t\tdescope-new-password-internal {\n\t\t\t-webkit-mask-image: none;\n\t\t\tmin-height: 0;\n\t\t\twidth: 100%;\n\t\t\tpadding: 0;\n\t\t}\n\t\tdescope-new-password-internal > .wrapper {\n -webkit-mask-image: none;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t}\n\t\tdescope-password {\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t}\n\t\tdescope-new-password-internal vaadin-password-field::before {\n\t\t\theight: initial;\n\t\t}\n descope-policy-validation {\n margin-top: 8px;\n display: flex;\n }\n descope-policy-validation.hidden {\n display: none;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { NewPasswordClass } from '../../components/descope-new-password/NewPasswordClass';\nimport { refs } from './inputWrapper';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = NewPasswordClass.cssVarList;\n\nconst newPassword = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.spaceBetweenInputs]: '1em',\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.policyPreviewBackgroundColor]: 'none',\n [vars.policyPreviewPadding]: globalRefs.spacing.lg,\n [vars.valueInputHeight]: refs.valueInputHeight,\n\n _required: {\n // NewPassword doesn't pass `required` attribute to its Password components.\n // That's why we fake the required indicator on each input.\n // We do that by injecting `::after` element, and populating it with requiredIndicator content.\n [vars.inputsRequiredIndicator]: refs.requiredIndicator, // used to populate required content for NewPassword input fields outside the theme\n },\n};\n\nexport default newPassword;\nexport { vars };\n","export const getFileBase64 = (fileObj) => {\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.onload = (e) => resolve(e.target.result);\n reader.readAsDataURL(fileObj);\n });\n};\n\nexport const getFilename = (fileObj) => {\n return fileObj.name.replace(/^.*\\\\/, '');\n};\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { createBaseInputClass } from '../../baseClasses/createBaseInputClass';\nimport { ButtonClass } from '../descope-button/ButtonClass';\nimport { getFileBase64, getFilename } from './helpers';\n\nexport const componentName = getComponentName('upload-file');\n\nconst observedAttributes = [\n 'title',\n 'description',\n 'button-label',\n 'accept',\n 'readonly',\n 'button-mode',\n 'button-variant',\n 'required',\n 'size',\n 'icon',\n];\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: ':host > div' });\n\nclass RawUploadFile extends BaseInputClass {\n static get observedAttributes() {\n return observedAttributes.concat(BaseInputClass.observedAttributes || []);\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t\t<style>\n\t\t\t:host {\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\t\t\t:host > div {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\ttext-align: center;\n\t\t\t\tflex-direction: column;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t.button-wrapper {\n\t\t\t\tposition: relative;\n\t\t\t\twidth: fit-content;\n\t\t\t}\n\t\t\tinput {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\topacity: 0;\n\t\t\t}\n\t\t\t</style>\n\t\t\t<div>\n <slot name=\"icon\"></slot>\n\t\t\t\t<div class=\"title\">\n\t\t\t\t\t<span class=\"title-text\"></span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"description\"></div>\n\t\t\t\t<div class=\"button-wrapper\">\n\t\t\t\t\t<input type=\"file\" tabindex=\"-1\" />\n\t\t\t\t\t<descope-button></descope-button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n this.wrapperEle = this.shadowRoot.querySelector('.wrapper');\n this.inputElement = this.shadowRoot.querySelector('input');\n\n this.button.onclick = () => this.inputElement.click();\n\n this.inputElement.onchange = async (e) => {\n const receivedFileList = e.target.files;\n\n if (!receivedFileList.length) {\n return;\n }\n\n this.value = await getFileBase64(receivedFileList[0]);\n\n this.updateDescription(getFilename(receivedFileList[0]));\n };\n\n this.oninvalid = () => {\n this.setAttribute('invalid', 'true');\n };\n }\n\n // this is a temp solution,\n // we should show the input error message like we have in all other inputs\n /*\n reportValidity() {\n this.defaultReportValidity();\n }\n */\n\n getValidity() {\n if (this.isRequired && !this.input.value) {\n return { valueMissing: true };\n }\n this.removeAttribute('invalid');\n return {};\n }\n\n initInputs() {\n const button = this.rootElement.querySelector('descope-button');\n button.onclick = () => this.inputElement.click();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'title') {\n this.updateTitle(newValue);\n } else if (attrName === 'description') {\n this.updateDescription(newValue);\n } else if (attrName === 'button-label') {\n this.updateButtonLabel(newValue);\n } else if (attrName === 'button-mode') {\n this.updateButtonMode(newValue);\n } else if (attrName === 'button-variant') {\n this.updateButtonVariant(newValue);\n } else if (attrName === 'size') {\n this.updateButtonSize(newValue);\n } else if (attrName === 'accept') {\n this.updateInputAccept(newValue);\n } else if (attrName === 'readonly') {\n this.updateReadOnly(newValue);\n }\n }\n }\n\n get button() {\n return this.shadowRoot.querySelector('descope-button');\n }\n\n get input() {\n return this.shadowRoot.querySelector('input');\n }\n\n get title() {\n return this.shadowRoot.querySelector('.title-text');\n }\n\n get description() {\n return this.shadowRoot.querySelector('.description');\n }\n\n get icon() {\n return this.shadowRoot.querySelector('.icon');\n }\n\n updateTitle(val) {\n this.title.innerHTML = val;\n }\n\n updateDescription(val) {\n this.description.innerHTML = val;\n }\n\n updateButtonLabel(val) {\n this.button.innerHTML = val;\n }\n\n updateButtonSize(val) {\n this.button.setAttribute('size', val);\n }\n\n updateButtonMode(val) {\n this.button.setAttribute('mode', val);\n }\n\n updateButtonVariant(val) {\n this.button.setAttribute('variant', val);\n }\n\n updateInputAccept(val) {\n this.input.setAttribute('accept', val);\n }\n\n updateReadOnly(val) {\n if (val === 'true') {\n this.input.setAttribute('disabled', 'true');\n } else {\n this.input.removeAttribute('disabled');\n }\n }\n}\n\nconst buttonVars = ButtonClass.cssVarList;\nconst { host, wrapper, icon, title, description, requiredIndicator } = {\n host: { selector: () => ':host' },\n wrapper: { selector: () => ':host > div' },\n icon: { selector: () => '::slotted(*)' },\n title: { selector: () => '.title' },\n description: { selector: () => '.description' },\n requiredIndicator: { selector: () => '.title::after' },\n};\n\nexport const UploadFileClass = compose(\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') }),\n createStyleMixin({\n mappings: {\n fontSize: {},\n fontFamily: {},\n borderColor: {},\n borderWidth: {},\n borderStyle: {},\n borderRadius: {},\n hostHeight: { ...host, property: 'height' },\n hostWidth: { ...host, property: 'width' },\n hostPadding: { property: 'padding' },\n hostDirection: [\n { ...host, property: 'direction' },\n { selector: () => ButtonClass.componentName, property: buttonVars.hostDirection },\n ],\n gap: { ...wrapper },\n lineHeight: { ...wrapper, property: 'line-height' },\n titleFontSize: { ...title, property: 'font-size' },\n titleFontWeight: { ...title, property: 'font-weight' },\n descriptionFontSize: { ...description, property: 'font-size' },\n labelTextColor: [\n { ...title, property: 'color' },\n { ...description, property: 'color' },\n ],\n iconSize: { ...icon, property: 'width' },\n requiredIndicator: { ...requiredIndicator, property: 'content' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawUploadFile);\n","import { UploadFileClass } from '../../components/descope-upload-file/UploadFileClass';\nimport { refs } from './inputWrapper';\n\nconst vars = UploadFileClass.cssVarList;\n\nconst uploadFile = {\n [vars.hostDirection]: refs.direction,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.fontFamily]: refs.fontFamily,\n\n [vars.iconSize]: '2em',\n\n [vars.hostPadding]: '0.75em',\n [vars.gap]: '0.5em',\n\n [vars.fontSize]: '16px',\n [vars.titleFontWeight]: '500',\n [vars.lineHeight]: '1em',\n\n [vars.borderWidth]: refs.borderWidth,\n [vars.borderColor]: refs.borderColor,\n [vars.borderRadius]: refs.borderRadius,\n [vars.borderStyle]: 'dashed',\n\n _required: {\n [vars.requiredIndicator]: refs.requiredIndicator,\n },\n\n size: {\n xs: {\n [vars.hostHeight]: '196px',\n [vars.hostWidth]: '200px',\n [vars.titleFontSize]: '0.875em',\n [vars.descriptionFontSize]: '0.875em',\n [vars.lineHeight]: '1.25em',\n },\n sm: {\n [vars.hostHeight]: '216px',\n [vars.hostWidth]: '230px',\n [vars.titleFontSize]: '1em',\n [vars.descriptionFontSize]: '0.875em',\n [vars.lineHeight]: '1.25em',\n },\n md: {\n [vars.hostHeight]: '256px',\n [vars.hostWidth]: '312px',\n [vars.titleFontSize]: '1.125em',\n [vars.descriptionFontSize]: '1em',\n [vars.lineHeight]: '1.5em',\n },\n lg: {\n [vars.hostHeight]: '280px',\n [vars.hostWidth]: '336px',\n [vars.titleFontSize]: '1.125em',\n [vars.descriptionFontSize]: '1.125em',\n [vars.lineHeight]: '1.75em',\n },\n },\n\n _fullWidth: {\n [vars.hostWidth]: refs.width,\n },\n};\n\nexport default uploadFile;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../../mixins';\nimport { createBaseClass } from '../../../baseClasses/createBaseClass';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport { ButtonClass } from '../../descope-button/ButtonClass';\n\nexport const componentName = getComponentName('button-selection-group-item');\n\nclass RawSelectItem extends createBaseClass({\n componentName,\n baseSelector: ':host > descope-button',\n}) {\n get size() {\n return this.getAttribute('size') || 'md';\n }\n\n get variant() {\n return this.getAttribute('variant') || 'contained';\n }\n\n get value() {\n return this.getAttribute('value') || '';\n }\n\n set value(value) {\n this.setAttribute('value', value);\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n descope-button {\n max-width: 100%;\n }\n\t\t\tdescope-button > slot {\n\t\t\t\twidth: 100%;\n\t\t\t\toverflow: hidden;\n text-overflow: ellipsis;\n display: inline-block;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n max-width: 100%\n\t\t\t}\n\t\t</style>\n <descope-button variant=\"${this.variant}\" size=\"${this.size}\" mode=\"primary\">\n <slot></slot>\n </descope-button>\n\t`;\n\n forwardAttrs(this, this.baseElement, { includeAttrs: ['size', 'variant'] });\n forwardAttrs(this.baseElement, this, { includeAttrs: ['focused', 'active'] });\n }\n\n handleFocus() {\n this.shadowRoot.querySelector('descope-button')?.focus();\n }\n\n focus() {\n this.handleFocus();\n }\n\n init() {\n super.init();\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) {\n this.handleFocus();\n }\n });\n }\n}\n\nexport const ButtonSelectionGroupItemClass = compose(\n createStyleMixin({\n mappings: {\n hostDirection: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.hostDirection,\n },\n backgroundColor: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.backgroundColor,\n },\n labelTextColor: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.labelTextColor,\n },\n borderColor: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.borderColor,\n },\n borderWidth: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.borderWidth,\n },\n borderStyle: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.borderStyle,\n },\n borderRadius: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.borderRadius,\n },\n outlineColor: {\n selector: () => ButtonClass.componentName,\n property: ButtonClass.cssVarList.outlineColor,\n },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawSelectItem);\n","import { ButtonSelectionGroupItemClass } from '../../../components/button-selection-group-fields/descope-button-selection-group-item/ButtonSelectionGroupItemClass';\nimport { getThemeRefs } from '../../../helpers/themeHelpers';\nimport globals from '../../globals';\n\nconst globalRefs = getThemeRefs(globals);\n\nexport const vars = ButtonSelectionGroupItemClass.cssVarList;\n\nconst buttonSelectionGroupItem = {\n [vars.hostDirection]: 'inherit',\n [vars.backgroundColor]: globalRefs.colors.surface.main,\n [vars.labelTextColor]: globalRefs.colors.surface.contrast,\n [vars.borderColor]: globalRefs.colors.surface.light,\n [vars.borderStyle]: 'solid',\n [vars.borderRadius]: globalRefs.radius.sm,\n [vars.outlineColor]: 'transparent',\n [vars.borderWidth]: globalRefs.border.xs,\n\n _hover: {\n [vars.backgroundColor]: globalRefs.colors.surface.highlight,\n },\n\n _focused: {\n [vars.outlineColor]: globalRefs.colors.surface.light,\n },\n\n _selected: {\n [vars.borderColor]: globalRefs.colors.surface.contrast,\n [vars.backgroundColor]: globalRefs.colors.surface.contrast,\n [vars.labelTextColor]: globalRefs.colors.surface.main,\n },\n};\n\nexport default buttonSelectionGroupItem;\n","import { createBaseInputClass } from '../../baseClasses/createBaseInputClass';\nimport { observeAttributes } from '../../helpers/componentHelpers';\nimport { createDispatchEvent } from '../../helpers/mixinsHelpers';\n\nexport const createBaseButtonSelectionGroupInternalClass = (componentName) => {\n class BaseButtonSelectionGroupInternalClass extends createBaseInputClass({\n componentName,\n baseSelector: 'slot',\n }) {\n constructor() {\n super();\n\n this.innerHTML = `\n <style>\n slot {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n }\n </style>\n <slot part=\"wrapper\"></slot>\n `;\n }\n\n dispatchChange = createDispatchEvent.bind(this, 'change');\n\n get items() {\n return this.querySelector('slot').assignedElements();\n }\n\n get isReadonly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n get size() {\n return this.getAttribute('size') || 'md';\n }\n\n // eslint-disable-next-line getter-return, class-methods-use-this\n get value() {\n // eslint-disable-next-line no-console\n console.warn('get value', 'is not implemented');\n }\n\n // eslint-disable-next-line class-methods-use-this\n set value(value) {\n // eslint-disable-next-line no-console\n console.warn('set value', 'is not implemented');\n }\n\n onSizeChange() {\n this.items.forEach((item) => {\n item.setAttribute('size', this.size);\n });\n }\n\n onReadOnlyChange() {\n this.querySelector('slot').toggleAttribute('inert', this.isReadonly);\n }\n\n // eslint-disable-next-line class-methods-use-this\n getValidity() {\n // eslint-disable-next-line no-console\n console.warn('getValidity', 'is not implemented');\n }\n\n onObservedAttributeChange(attrs) {\n attrs.forEach((attr) => {\n switch (attr) {\n case 'size':\n this.onSizeChange();\n break;\n case 'readonly':\n this.onReadOnlyChange();\n break;\n default:\n break;\n }\n });\n }\n\n init() {\n // we are adding listeners before calling to super because it's stopping the events\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) {\n this.items[0]?.focus();\n }\n });\n\n super.init?.();\n\n observeAttributes(this, this.onObservedAttributeChange.bind(this), {\n includeAttrs: ['size', 'readonly'],\n });\n }\n }\n\n return BaseButtonSelectionGroupInternalClass;\n};\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { createBaseButtonSelectionGroupInternalClass } from '../createBaseButtonSelectionGroupInternalClass';\n\nexport const componentName = getComponentName('button-selection-group-internal');\n\nexport class ButtonSelectionGroupInternalClass extends createBaseButtonSelectionGroupInternalClass(\n componentName\n) {\n getSelectedNode() {\n return this.items.find((item) => item.hasAttribute('selected'));\n }\n\n get allowDeselect() {\n return this.getAttribute('allow-deselect') === 'true';\n }\n\n removeSelected() {\n this.getSelectedNode()?.removeAttribute('selected');\n }\n\n onClick(e) {\n if (e.target !== e.currentTarget) {\n if (e.target === this.getSelectedNode() && this.allowDeselect) {\n this.removeSelected();\n } else {\n this.setSelected(e.target);\n }\n this.dispatchChange();\n }\n }\n\n setSelected(node) {\n if (node !== this.getSelectedNode()) {\n this.removeSelected();\n node?.setAttribute('selected', 'true');\n }\n }\n\n get defaultValue() {\n return this.getAttribute('default-value');\n }\n\n setDefaultValue() {\n // we want to defer this action until all attributes are synched\n setTimeout(() => {\n if (this.defaultValue) {\n this.value = this.defaultValue;\n this.setCustomValidity();\n }\n });\n }\n\n get value() {\n return this.getSelectedNode()?.value || '';\n }\n\n set value(value) {\n const node = this.items.find((child) => child.value === value);\n this.setSelected(node);\n }\n\n getValidity() {\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n\n return {};\n }\n\n init() {\n super.init();\n\n this.setDefaultValue();\n\n this.querySelector('slot').addEventListener('click', this.onClick.bind(this));\n }\n}\n","import { observeAttributes, observeChildren } from '../../helpers/componentHelpers';\nimport {\n resetInputLabelPosition,\n resetInputCursor,\n resetInputFieldDefaultWidth,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const buttonSelectionGroupBaseMixin = (superclass) =>\n class ButtonSelectionGroupMixinClass extends superclass {\n // eslint-disable-next-line class-methods-use-this\n #renderItem = ({ value, label }) =>\n `<descope-button-selection-group-item value=\"${value}\">${label}</descope-button-selection-group-item>`;\n\n #data;\n\n get renderItem() {\n return this.#renderItem;\n }\n\n set renderItem(renderFn) {\n this.#renderItem = renderFn;\n this.renderItems();\n }\n\n get size() {\n return this.inputElement?.size;\n }\n\n get data() {\n if (this.#data) return this.#data;\n\n const dataAttr = this.getAttribute('data');\n\n if (dataAttr) {\n try {\n const data = JSON.parse(dataAttr);\n if (this.isValidDataType(data)) {\n return data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"data\" - ', e.message);\n }\n }\n\n return [];\n }\n\n set data(data) {\n if (this.isValidDataType(data)) {\n this.#data = data;\n this.renderItems();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data must be an array, received:', data);\n }\n\n return isValid;\n }\n\n getItemsTemplate() {\n return this.data?.reduce?.((acc, item) => acc + (this.renderItem?.(item || {}) || ''), '');\n }\n\n renderItems() {\n const template = this.getItemsTemplate();\n if (template) this.innerHTML = template;\n }\n\n init() {\n super.init?.();\n\n this.renderItems();\n\n observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });\n\n // we want new items to get the size\n observeChildren(this, ({ addedNodes }) => {\n addedNodes.forEach((node) => {\n node.setAttribute('size', this.size);\n });\n });\n }\n };\n\nconst { host, label, requiredIndicator, internalWrapper, errorMessage } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n internalWrapper: { selector: () => ':host [part=\"internal-component\"] slot' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const buttonSelectionGroupMappings = {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n fontFamily: host,\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n itemsSpacing: { ...internalWrapper, property: 'gap' },\n};\n\nexport const buttonSelectionGroupStyles = `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n\t\t\t}\n\t\t\t${resetInputFieldDefaultWidth()}\n\t\t\t:host::after {\n\t\t\t\tbackground-color: transparent;\n\t\t\t}\n\t\t\t:host::part(input-field)::after {\n\t\t\t\tbackground-color: transparent;\n\t\t\t}\n\n [part=\"internal-component\"] {\n\t\t\t\t-webkit-mask-image: none;\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n display: inline-block;\n\t\t\t\tmin-height: initial;\n\t\t\t}\n\n\t\t\tvaadin-text-field::part(input-field) {\n\t\t\t\tbackground-color: transparent;\n\t\t\t\tpadding: 0;\n\t\t\t\toverflow: hidden;\n\t\t\t\t-webkit-mask-image: none;\n\t\t\t}\n\n\t\t\tvaadin-text-field {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: 100%\n\t\t\t}\n\n\t\t\tvaadin-text-field::before {\n\t\t\t\theight: 0;\n\t\t\t}\n\n\t\t\tvaadin-text-field[readonly] > input:placeholder-shown {\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\tvaadin-text-field[readonly]::part(input-field)::after {\n\t\t\t\tborder: 0 solid;\n\t\t\t}\n\n\t\t\tvaadin-text-field::part(input-field) {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n ${resetInputLabelPosition('vaadin-text-field')}\n\t\t\t${resetInputCursor('vaadin-text-field')}\n `;\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../../mixins';\nimport { componentName as descopeInternalComponentName } from '../descope-button-selection-group-internal/ButtonSelectionGroupInternalClass';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport {\n buttonSelectionGroupBaseMixin,\n buttonSelectionGroupMappings,\n buttonSelectionGroupStyles,\n} from '../baseButtonSelectionGroup';\n\nexport const componentName = getComponentName('button-selection-group');\n\nconst buttonSelectionGroupMixin = (superclass) =>\n class ButtonMultiSelectionGroupMixinClass extends superclass {\n init() {\n super.init?.();\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n \tname=\"button-selection-group\"\n \tslot=\"input\"\n tabindex=\"-1\"\n part=\"internal-component\"\n >\n <slot></slot>\n </${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: ['size', 'default-value', 'allow-deselect'],\n });\n }\n };\n\nexport const ButtonSelectionGroupClass = compose(\n createStyleMixin({\n mappings: {\n ...buttonSelectionGroupMappings,\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin,\n buttonSelectionGroupBaseMixin,\n buttonSelectionGroupMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => buttonSelectionGroupStyles,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nexport default ButtonSelectionGroupClass;\n","import { getThemeRefs } from '../../../helpers/themeHelpers';\nimport globals from '../../globals';\nimport { refs } from '../inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\n\nexport const createBaseButtonSelectionGroupMappings = (vars) => ({\n [vars.hostDirection]: refs.direction,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.itemsSpacing]: globalRefs.spacing.sm,\n [vars.hostWidth]: refs.width,\n});\n","import { ButtonSelectionGroupClass } from '../../../components/button-selection-group-fields/descope-button-selection-group/ButtonSelectionGroupClass';\nimport { createBaseButtonSelectionGroupMappings } from './baseButtonSelectionGroup';\n\nconst vars = ButtonSelectionGroupClass.cssVarList;\n\nconst buttonSelectionGroup = {\n ...createBaseButtonSelectionGroupMappings(vars),\n};\n\nexport default buttonSelectionGroup;\nexport { vars };\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { createBaseButtonSelectionGroupInternalClass } from '../createBaseButtonSelectionGroupInternalClass';\n\nexport const componentName = getComponentName('button-multi-selection-group-internal');\n\nexport class ButtonMultiSelectionGroupInternalClass extends createBaseButtonSelectionGroupInternalClass(\n componentName\n) {\n #getSelectedNodes() {\n return this.items.filter((item) => item.hasAttribute('selected'));\n }\n\n onClick(e) {\n if (e.target !== e.currentTarget) {\n if (this.#getSelectedNodes().includes(e.target)) {\n e.target.removeAttribute('selected');\n } else {\n e.target.setAttribute('selected', 'true');\n }\n this.dispatchChange();\n }\n }\n\n get value() {\n return this.#getSelectedNodes().map((node) => node.value);\n }\n\n set value(values) {\n this.items.forEach((item) => {\n if (values.includes(item.value)) {\n item.setAttribute('selected', 'true');\n } else {\n item.removeAttribute('selected');\n }\n });\n }\n\n get minItemsSelection() {\n return parseInt(this.getAttribute('min-items-selection'), 10) || 0;\n }\n\n get maxItemsSelection() {\n return parseInt(this.getAttribute('max-items-selection'), 10) || 0;\n }\n\n // eslint-disable-next-line class-methods-use-this\n #isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('default-values must be an array, received:', data);\n }\n\n return isValid;\n }\n\n get defaultValues() {\n const defaultValuesAttr = this.getAttribute('default-values');\n if (defaultValuesAttr) {\n try {\n const defaultValues = JSON.parse(defaultValuesAttr);\n if (this.#isValidDataType(defaultValues)) {\n return defaultValues;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"default-values\" -', e.message);\n }\n }\n return [];\n }\n\n setDefaultValues() {\n // we want to defer this action until all attributes are synced\n setTimeout(() => {\n if (this.defaultValues) {\n this.value = this.defaultValues;\n this.setCustomValidity();\n }\n });\n }\n\n getValidity() {\n if (this.isRequired && !this.value.length) {\n return { valueMissing: true };\n }\n // If the field is not required, no minimum selection can be set\n if (this.isRequired && this.minItemsSelection && this.value.length < this.minItemsSelection) {\n return {\n rangeUnderflow: true,\n };\n }\n if (this.maxItemsSelection && this.value.length > this.maxItemsSelection) {\n return {\n rangeOverflow: true,\n };\n }\n return {};\n }\n\n init() {\n super.init();\n\n this.setDefaultValues();\n\n this.querySelector('slot').addEventListener('click', this.onClick.bind(this));\n }\n}\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../../mixins';\nimport { componentName as descopeInternalComponentName } from '../descope-button-multi-selection-group-internal/ButtonMultiSelectionGroupInternalClass';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport {\n buttonSelectionGroupBaseMixin,\n buttonSelectionGroupMappings,\n buttonSelectionGroupStyles,\n} from '../baseButtonSelectionGroup';\n\nexport const componentName = getComponentName('button-multi-selection-group');\n\nconst buttonMultiSelectionGroupMixin = (superclass) =>\n class ButtonMultiSelectionGroupMixinClass extends superclass {\n init() {\n super.init?.();\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n \tname=\"button-selection-group\"\n \tslot=\"input\"\n tabindex=\"-1\"\n part=\"internal-component\"\n >\n <slot></slot>\n </${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: ['size', 'default-values', 'min-items-selection', 'max-items-selection'],\n });\n }\n };\n\nexport const ButtonMultiSelectionGroupClass = compose(\n createStyleMixin({\n mappings: {\n ...buttonSelectionGroupMappings,\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin,\n buttonSelectionGroupBaseMixin,\n buttonMultiSelectionGroupMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => buttonSelectionGroupStyles,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nexport default ButtonMultiSelectionGroupClass;\n","import { ButtonMultiSelectionGroupClass } from '../../../components/button-selection-group-fields/descope-button-multi-selection-group/ButtonMultiSelectionGroupClass';\nimport { createBaseButtonSelectionGroupMappings } from './baseButtonSelectionGroup';\n\nconst vars = ButtonMultiSelectionGroupClass.cssVarList;\n\nconst buttonMultiSelectionGroup = {\n ...createBaseButtonSelectionGroupMappings(vars),\n};\n\nexport default buttonMultiSelectionGroup;\nexport { vars };\n","import { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n portalMixin,\n} from '../../mixins';\n\nexport const componentName = getComponentName('modal');\n\nconst customMixin = (superclass) =>\n class ModalMixinClass extends superclass {\n get opened() {\n return this.getAttribute('opened') === 'true';\n }\n\n handleOpened() {\n forwardAttrs(this, this.baseElement, { includeAttrs: ['opened'] });\n if (this.opened) {\n this.style.display = '';\n } else {\n this.style.display = 'none';\n }\n }\n\n init() {\n super.init?.();\n this.style.display = 'none';\n\n // vaadin-dialog might not be loaded in time\n // in order to make sure it's loaded before this block is running\n // we are wrapping it with setTimeout\n setTimeout(() => {\n // we want to sync descope-modal content through vaadin-dialog into the overlay\n // so we are adding a slot to the overlay, which allows us to forward the content from\n // vaadin-dialog to vaadin-dialog-overlay\n this.baseElement.shadowRoot\n .querySelector('vaadin-dialog-overlay')\n .appendChild(document.createElement('slot'));\n\n this.#overrideOverlaySettings();\n\n // we need to always open the modal in `opened=false`\n // to prevent it from rendering outside the dialog\n // first, we have to run `overrideOverlaySettings` to setup\n // the component.\n this.handleOpened();\n });\n }\n\n // the default vaadin behavior is to attach the overlay to the body when opened\n // we do not want that because it's difficult to style the overlay in this way\n // so we override it to open inside the shadow DOM\n #overrideOverlaySettings() {\n const overlay = this.baseElement.shadowRoot.querySelector('vaadin-dialog-overlay');\n\n overlay._attachOverlay = () => {\n overlay.bringToFront();\n this.baseElement.setAttribute('style', 'display:flex!important;');\n };\n overlay._detachOverlay = () => {\n this.baseElement.style.display = 'none';\n };\n overlay._enterModalState = () => {};\n\n overlay.close = () => false;\n }\n };\n\nexport const ModalClass = compose(\n createStyleMixin({\n mappings: {\n overlayBackgroundColor: { property: () => ModalClass.cssVarList.overlay.backgroundColor },\n overlayShadow: { property: () => ModalClass.cssVarList.overlay.shadow },\n overlayWidth: { property: () => ModalClass.cssVarList.overlay.width },\n },\n }),\n portalMixin({\n name: 'overlay',\n selector: '',\n mappings: {\n hostDisplay: {\n selector: () => ':host(.descope-modal)',\n property: 'display',\n important: true,\n },\n backgroundColor: [\n { selector: () => '::part(content)', property: 'background-color' },\n { selector: () => '::part(overlay)', property: 'background-color' },\n ],\n width: { selector: () => '::part(overlay)', property: 'width' },\n shadow: { selector: () => '::part(overlay)', property: 'box-shadow' },\n },\n forward: {\n include: false,\n attributes: ['opened'],\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [''],\n wrappedEleName: 'vaadin-dialog',\n style: () => ``,\n excludeAttrsSync: ['tabindex', 'opened'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { ModalClass } from '../../components/descope-modal/ModalClass';\n\nconst globalRefs = getThemeRefs(globals);\n\nconst compVars = ModalClass.cssVarList;\n\nconst modal = {\n [compVars.overlayBackgroundColor]: globalRefs.colors.surface.main,\n [compVars.overlayShadow]: globalRefs.shadow.wide['2xl'],\n [compVars.overlayWidth]: '540px',\n};\n\nexport default modal;\n\nexport const vars = {\n ...compVars,\n};\n","import { toTitle } from '../../helpers';\n\nexport const isValidDataType = (data) => {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data must be an array, received:', data);\n }\n\n return isValid;\n};\n\nexport const isPlainObject = (value) => value?.constructor === Object;\n\nconst isXml = (str) => /^\\s*<[\\s\\S]*>/.test(str);\n\nconst escapeXML = (s) => {\n const dom = document.createElement('div');\n dom.textContent = s;\n return dom.innerHTML;\n};\n\nexport const getValueType = (value) => {\n if (isPlainObject(value)) return 'object';\n if (Array.isArray(value)) return 'array';\n if (isXml(value)) return 'xml';\n\n return 'text';\n};\n\nexport const renderCodeSnippet = (value, lang) =>\n `<descope-code-snippet lang=\"${lang}\" class=\"row-details__value code\">${value}</descope-code-snippet>`;\n\nexport const renderText = (text) =>\n `<div class=\"row-details__value text\" title=\"${text}\">${text}</div>`;\nconst renderJson = (value) => renderCodeSnippet(JSON.stringify(value, null, 2), 'json');\nconst renderXml = (value) => renderCodeSnippet(escapeXML(value), 'xml');\n\nconst defaultRowDetailsValueRenderer = (value) => {\n const valueType = getValueType(value);\n\n if (valueType === 'object') {\n return renderJson(value);\n }\n\n if (valueType === 'xml') {\n return renderXml(value);\n }\n\n if (valueType === 'array') {\n if (value.some((v) => getValueType(v) === 'object')) {\n return renderJson(value);\n }\n return renderText(value.join(',\\n'));\n }\n\n return renderText(value);\n};\n\nexport const defaultRowDetailsRenderer = (item, itemLabelsMapping) => {\n return `\n <div class=\"row-details\">\n ${Object.entries(item)\n .map(\n ([key, value]) =>\n `<div class=\"row-details__item\" >\n <div class=\"row-details__label\">${itemLabelsMapping[key] || toTitle(key)}</div>\n ${defaultRowDetailsValueRenderer(value)}\n </div>`\n )\n .join('\\n')}\n</div>\n `;\n};\n","import { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '../../mixins';\n\nimport { defaultRowDetailsRenderer, isValidDataType } from './helpers';\n\nexport const componentName = getComponentName('grid');\n\nconst GridMixin = (superclass) =>\n class GridMixinClass extends superclass {\n #columns;\n\n init() {\n super.init?.();\n this.handleColumns();\n this.forwardSelectedItemsChange();\n\n // disable the grid sort\n this.baseElement._mapSorters = () => {};\n\n // there is an issue in vaadin that on some cases when trying to render the details panel, the row is null and this fn throwing\n // so we override it to prevent the error\n const origUpdateDetailsCellHeight = this.baseElement._updateDetailsCellHeight;\n this.baseElement._updateDetailsCellHeight = (row) => {\n if (!row) return;\n origUpdateDetailsCellHeight.call(this.baseElement, row);\n };\n\n this.baseElement.rowDetailsRenderer = this.#rowDetailsRenderer.bind(this);\n }\n\n // this renders the details panel content\n // in order to open it, the descope-grid-item-details-column should be used\n #rowDetailsRenderer = async (cell, _col, model) => {\n // prevent details panel from being scrolled into view when clicked\n cell.addEventListener('mousedown', (e) => e.stopImmediatePropagation(), true);\n\n const template = this.getRowDetailsTemplate(model.item);\n\n // eslint-disable-next-line no-param-reassign\n cell.innerHTML = '';\n cell.append(template.content.cloneNode(true));\n };\n\n getRowDetailsTemplate(item) {\n const itemLabelsMapping = this.#columns.reduce(\n (acc, { path, header }) => (!path || !header ? acc : { ...acc, [path]: header }),\n {}\n );\n const template =\n this.rowDetailsRenderer?.(item, itemLabelsMapping) ??\n defaultRowDetailsRenderer(item, itemLabelsMapping);\n\n switch (true) {\n case template instanceof HTMLTemplateElement:\n return template;\n case typeof template === 'string':\n return Object.assign(document.createElement('template'), { innerHTML: template });\n default:\n throw new Error('rowDetailsRenderer should return a string or a template');\n }\n }\n\n forwardSelectedItemsChange() {\n this.baseElement.addEventListener('selected-items-changed', (e) => {\n this.dispatchEvent(\n new CustomEvent('selected-items-changed', {\n bubbles: true,\n composed: true,\n detail: e.detail,\n })\n );\n });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'columns') {\n this.setColumnsDataFromAttr();\n }\n }\n\n handleColumns() {\n if (this.columnsAttr) {\n this.setColumnsDataFromAttr();\n } else if (this.children.length) {\n this.setColumnsFromChildren();\n }\n }\n\n setColumnsFromChildren() {\n this.#columns = Array.from(this.children).map((child) => {\n return {\n path: child.getAttribute('path'),\n header: child.getAttribute('header'),\n type: child.localName.match('^descope-grid-(\\\\w+)-column$')?.[1] || 'text',\n\n attrs: ['frozen', 'resizable', 'auto-width', 'status'].reduce((acc, attrName) => {\n const attrVal = child.getAttribute(attrName);\n\n if (attrVal) {\n acc[attrName] = attrVal;\n }\n\n return acc;\n }, {}),\n };\n });\n }\n\n get columnsAttr() {\n return this.getAttribute('columns');\n }\n\n setColumnsDataFromAttr() {\n try {\n const data = JSON.parse(this.columnsAttr);\n if (isValidDataType(data)) {\n this.columns = data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"columns\" -', e.message);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n #renderColumn = ({ path, header, type, attrs }) => {\n const colAttrs = Object.entries(attrs)\n .map(([key, value]) => `${key}=\"${value}\"`)\n .join(' ');\n\n const tagName = `descope-grid-${type}-column`;\n\n return `<${tagName} header=\"${header}\" path=\"${path}\" ${colAttrs}></${tagName}>`;\n };\n\n get renderColumn() {\n return this.#renderColumn;\n }\n\n set renderColumn(renderFn) {\n this.#renderColumn = renderFn;\n this.renderColumns();\n }\n\n getColumnsTemplate() {\n return this.#columns?.reduce?.(\n (acc, item) => acc + (this.renderColumn?.(item || {}) || ''),\n ''\n );\n }\n\n // there is an issue in vaadin-grid, when rowDetailsRenderer is set, it renders an empty details panel\n reassignRowDetailsRenderer() {\n this.baseElement.rowDetailsRenderer = null;\n setTimeout(() => {\n this.baseElement.rowDetailsRenderer = this.#rowDetailsRenderer.bind(this);\n }, 0);\n }\n\n renderColumns() {\n const template = this.getColumnsTemplate();\n if (template) {\n this.reassignRowDetailsRenderer();\n this.innerHTML = template;\n }\n }\n\n get grid() {\n return this.shadowRoot.querySelector('vaadin-grid');\n }\n\n get data() {\n return this.grid.items;\n }\n\n set data(data) {\n if (isValidDataType(data) && this.grid.items !== data) {\n this.grid.items = data;\n\n if (this.grid.selectedItems) {\n const itemsIds = new Set(\n this.grid.items.map((item) => item[this.uniqueColumnId] ?? item)\n );\n\n const newSelectedItems = this.grid.selectedItems.filter((selectedItem) =>\n itemsIds.has(selectedItem[this.uniqueColumnId] ?? selectedItem)\n );\n\n // we want to update the selected items only if there is a reason,\n // to prevent redundant notifications\n if (this.grid.selectedItems.length !== newSelectedItems.length) {\n this.grid.selectedItems = newSelectedItems;\n }\n }\n }\n }\n\n get columns() {\n return this.#columns;\n }\n\n set columns(data) {\n this.#columns = data;\n this.renderColumns();\n }\n\n get paths() {\n return this.columns.map((col) => col.path);\n }\n\n get uniqueColumnId() {\n return this.getAttribute('unique-column-id');\n }\n };\n\nconst {\n host,\n headerRow,\n headerRowCell,\n contentRow,\n firstRow,\n sortIndicators,\n activeSortIndicator,\n selectedRow,\n rowSeparator,\n resizeHandle,\n toggleDetailsPanelButton,\n toggleDetailsPanelButtonOpened,\n toggleDetailsPanelButtonClosed,\n detailsPanel,\n detailsPanelLabels,\n selectedRowCell,\n detailsPanelContent,\n} = {\n host: { selector: () => 'vaadin-grid' },\n headerRow: { selector: () => '::part(header-cell)' },\n headerRowCell: { selector: () => 'vaadin-grid::part(header-cell)' },\n contentRow: { selector: () => '::part(cell)' },\n firstRow: { selector: () => '::part(first-header-row-cell)' },\n selectedRow: { selector: () => '::part(selected-row)' },\n selectedRowCell: { selector: () => '::part(selected-row-cell)' },\n sortIndicators: { selector: () => 'vaadin-grid-sorter::part(indicators)' },\n activeSortIndicator: { selector: () => 'vaadin-grid-sorter[direction]' },\n rowSeparator: { selector: () => 'vaadin-grid::part(body-cell)' },\n resizeHandle: { selector: () => '::part(resize-handle)' },\n toggleDetailsPanelButton: { selector: () => 'vaadin-grid vaadin-icon.toggle-details-button' },\n toggleDetailsPanelButtonOpened: {\n selector: () => 'vaadin-grid vaadin-icon.toggle-details-button.opened',\n },\n toggleDetailsPanelButtonClosed: {\n selector: () => 'vaadin-grid vaadin-icon.toggle-details-button.closed',\n },\n detailsPanel: { selector: () => 'vaadin-grid::part(details-cell)' },\n detailsPanelLabels: { selector: () => 'vaadin-grid .row-details__label' },\n detailsPanelContent: { selector: () => 'vaadin-grid .row-details' },\n};\n\nexport const GridClass = compose(\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') }),\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostHeight: { selector: () => ':host', property: 'height' },\n hostMinHeight: { selector: () => ':host', property: 'min-height' },\n fontFamily: [{ ...headerRow }, { ...contentRow }],\n fontSize: [{ ...headerRow }, { ...contentRow }],\n fontWeight: { ...contentRow },\n valueTextColor: { ...contentRow, property: 'color' },\n backgroundColor: [\n { ...host, property: 'background-color' },\n { ...contentRow, property: 'background-color' },\n ],\n sortIndicatorsColor: { ...sortIndicators, property: 'color' },\n activeSortIndicator: { ...activeSortIndicator, property: 'color' },\n borderColor: { ...host, property: 'border-color' },\n borderWidth: { ...host, property: 'border-width' },\n borderStyle: { ...host, property: 'border-style' },\n borderRadius: { ...host, property: 'border-radius' },\n selectedBackgroundColor: [\n { ...selectedRow, property: 'background-color' },\n { ...selectedRowCell, property: 'background-color' },\n ],\n headerRowTextColor: { ...headerRowCell, property: 'color' },\n separatorColor: [\n { ...firstRow, property: 'border-bottom-color' },\n { ...rowSeparator, property: 'border-top-color' },\n ],\n resizeHandleColor: { ...resizeHandle, property: 'background-color' },\n hostDirection: { ...host, property: 'direction', fallback: 'ltr' },\n toggleDetailsPanelButtonSize: [\n { ...toggleDetailsPanelButton, property: 'width' },\n { ...toggleDetailsPanelButton, property: 'height' },\n ],\n toggleDetailsPanelButtonOpenedColor: { ...toggleDetailsPanelButtonOpened, property: 'color' },\n toggleDetailsPanelButtonClosedColor: { ...toggleDetailsPanelButtonClosed, property: 'color' },\n toggleDetailsPanelButtonCursor: { ...toggleDetailsPanelButton, property: 'cursor' },\n detailsPanelBackgroundColor: { ...detailsPanel, property: 'background-color' },\n detailsPanelBorderTopColor: { ...detailsPanel, property: 'border-top-color' },\n detailsPanelLabelsColor: { ...detailsPanelLabels, property: 'color' },\n detailsPanelLabelsFontSize: { ...detailsPanelLabels, property: 'font-size' },\n detailsPanelItemsGap: { ...detailsPanelContent, property: 'grid-gap' },\n detailsPanelPadding: { ...detailsPanelContent, property: 'padding' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n GridMixin\n)(\n createProxy({\n delegatesFocus: false,\n slots: [''],\n wrappedEleName: 'vaadin-grid',\n style: () => `\n /*css*/\n vaadin-grid {\n overflow: hidden;\n height: 100%;\n min-height: 300px;\n }\n vaadin-grid-cell-content {\n display: flex;\n }\n vaadin-grid::part(selected-row-cell) {\n background-image: none;\n box-shadow: none;\n background-color: inherit;\n }\n vaadin-grid::part(details-cell) {\n border-top-style: dashed;\n border-top-width: 1px;\n }\n vaadin-grid .row-details {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max(200px, calc(100%/4 - var(${GridClass.cssVarList.detailsPanelItemsGap}))), 1fr));\n width: 100%;\n }\n vaadin-grid .row-details__item:has(.row-details__value.code) {\n grid-column: 1 / -1;\n order: 2;\n }\n vaadin-grid .row-details__value.text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: pre;\n }\n vaadin-grid .row-details__value.code {\n margin-top: 5px;\n max-height: 120px;\n overflow: scroll;\n font-size: 0.85em;\n }\n vaadin-grid vaadin-icon.toggle-details-button {\n margin: auto;\n }\n /*!css*/\n\t\t`,\n excludeAttrsSync: ['columns', 'tabindex'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { GridClass } from '../../components/descope-grid/GridClass';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = GridClass.cssVarList;\n\nexport const grid = {\n [vars.hostWidth]: '100%',\n [vars.hostHeight]: '100%',\n [vars.hostMinHeight]: '400px',\n [vars.fontWeight]: '400',\n [vars.backgroundColor]: globalRefs.colors.surface.main,\n\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n\n [vars.sortIndicatorsColor]: globalRefs.colors.surface.light,\n [vars.activeSortIndicator]: globalRefs.colors.surface.dark,\n [vars.resizeHandleColor]: globalRefs.colors.surface.light,\n\n [vars.borderWidth]: refs.borderWidth,\n [vars.borderStyle]: refs.borderStyle,\n [vars.borderRadius]: refs.borderRadius,\n [vars.borderColor]: 'transparent',\n\n [vars.headerRowTextColor]: globalRefs.colors.surface.dark,\n [vars.separatorColor]: globalRefs.colors.surface.light,\n\n [vars.valueTextColor]: globalRefs.colors.surface.contrast,\n [vars.selectedBackgroundColor]: globalRefs.colors.surface.highlight,\n [vars.hostDirection]: globalRefs.direction,\n\n [vars.toggleDetailsPanelButtonSize]: '1em',\n [vars.toggleDetailsPanelButtonOpenedColor]: globalRefs.colors.surface.contrast,\n [vars.toggleDetailsPanelButtonClosedColor]: globalRefs.colors.surface.light,\n [vars.toggleDetailsPanelButtonCursor]: 'pointer',\n [vars.detailsPanelBackgroundColor]: globalRefs.colors.surface.highlight,\n [vars.detailsPanelBorderTopColor]: globalRefs.colors.surface.light,\n [vars.detailsPanelLabelsColor]: globalRefs.colors.surface.dark,\n [vars.detailsPanelLabelsFontSize]: '0.8em',\n [vars.detailsPanelItemsGap]: '2em',\n [vars.detailsPanelPadding]: '12px 0',\n\n _bordered: {\n [vars.borderColor]: refs.borderColor,\n },\n};\n\nexport default grid;\nexport { vars };\n","import { compose } from '../../../helpers';\nimport { getComponentName } from '../../../helpers/componentHelpers';\nimport { createStyleMixin, createProxy } from '../../../mixins';\n\nexport const componentName = getComponentName('notification-card');\n\nconst notificationCardMixin = (superclass) =>\n class NotificationCardMixinClass extends superclass {\n close() {\n // if animation is not applied to the element, the node will not be removed\n // from the DOM. We should avoid that. So, if in any case we allow\n // customizing the animation - we should check if animation is applied\n // and if it's not applied - remove the element from the DOM and dispatch\n // `card-closed` event.\n this.baseElement.addEventListener('animationend', () => {\n this.remove();\n this.dispatchEvent(new Event('card-closed'));\n });\n\n this.setAttribute('opened', 'false');\n }\n\n constructor() {\n super();\n\n this.baseElement.innerHTML = `\n <div part=\"root\">\n <div part=\"content\">\n <slot></slot>\n </div>\n <div part=\"close\">\n <slot name=\"close\"></slot>\n </div>\n </div>\n `;\n\n this.closeEle = this.shadowRoot.querySelector('[part=\"close\"]');\n }\n\n init() {\n super.init?.();\n\n this.closeEle.onclick = () => {\n this.close();\n };\n }\n };\n\nconst selectors = {\n content: () => 'vaadin-notification-card::part(content)',\n overlay: () => 'vaadin-notification-card::part(overlay)',\n};\n\nexport const NotificationCardClass = compose(\n createStyleMixin({\n mappings: {\n hostMinWidth: { selector: selectors.content, property: 'min-width' },\n fontFamily: {},\n fontSize: {},\n backgroundColor: { selector: selectors.content },\n textColor: { property: 'color' },\n boxShadow: {},\n borderWidth: { selector: selectors.content, property: 'border-width' },\n borderColor: { selector: selectors.content, property: 'border-color' },\n borderStyle: { selector: selectors.content, property: 'border-style' },\n borderRadius: [\n { selector: selectors.content, property: 'border-radius' },\n { selector: selectors.overlay, property: 'border-radius' },\n ],\n verticalPadding: [\n { selector: selectors.content, property: 'padding-top' },\n { selector: selectors.content, property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { selector: selectors.content, property: 'padding-right' },\n { selector: selectors.content, property: 'padding-left' },\n ],\n },\n }),\n notificationCardMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-notification-card',\n style: () => `\n vaadin-notification-card {\n box-shadow: none;\n }\n ::part(overlay) {\n box-shadow: none;\n background: none;\n }\n\n [part=\"close\"] {\n cursor: pointer;\n display: flex;\n }\n\n [part=\"content\"] {\n display: flex;\n align-items: center;\n flex-grow: 1;\n }\n\n [part=\"root\"] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n }\n `,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { NotificationCardClass } from '../../components/descope-notification/descope-notification-card/NotificationCardClass';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = NotificationCardClass.cssVarList;\n\nconst shadowColor = '#00000020';\n\nconst notification = {\n [vars.hostMinWidth]: '415px',\n [vars.fontFamily]: globalRefs.fonts.font1.family,\n [vars.fontSize]: globalRefs.typography.body1.size,\n [vars.backgroundColor]: globalRefs.colors.surface.main,\n [vars.textColor]: globalRefs.colors.surface.contrast,\n [vars.boxShadow]: `${globalRefs.shadow.wide.xl} ${shadowColor}, ${globalRefs.shadow.narrow.xl} ${shadowColor}`,\n [vars.verticalPadding]: '0.625em',\n [vars.horizontalPadding]: '1.5em',\n [vars.borderRadius]: globalRefs.radius.xs,\n\n _bordered: {\n [vars.borderWidth]: globalRefs.border.sm,\n [vars.borderStyle]: 'solid',\n [vars.borderColor]: 'transparent',\n },\n\n size: {\n xs: { [vars.fontSize]: '12px' },\n sm: { [vars.fontSize]: '14px' },\n md: { [vars.fontSize]: '16px' },\n lg: { [vars.fontSize]: '18px' },\n },\n\n mode: {\n primary: {\n [vars.backgroundColor]: globalRefs.colors.primary.main,\n [vars.textColor]: globalRefs.colors.primary.contrast,\n [vars.borderColor]: globalRefs.colors.primary.light,\n },\n success: {\n [vars.backgroundColor]: globalRefs.colors.success.main,\n [vars.textColor]: globalRefs.colors.success.contrast,\n [vars.borderColor]: globalRefs.colors.success.light,\n },\n error: {\n [vars.backgroundColor]: globalRefs.colors.error.main,\n [vars.textColor]: globalRefs.colors.error.contrast,\n [vars.borderColor]: globalRefs.colors.error.light,\n },\n },\n};\n\nexport default notification;\nexport { vars };\n","import { compose, compareArraysUnordered } from '../../helpers';\nimport {\n forwardAttrs,\n getComponentName,\n observeAttributes,\n observeChildren,\n} from '../../helpers/componentHelpers';\nimport {\n resetInputLabelPosition,\n resetInputCursor,\n resetInputPlaceholder,\n resetInputReadonlyStyle,\n useHostExternalPadding,\n inputFloatingLabelStyle,\n} from '../../helpers/themeHelpers/resetHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n portalMixin,\n proxyInputMixin,\n changeMixin,\n} from '../../mixins';\n\nexport const componentName = getComponentName('multi-select-combo-box');\n\nconst multiSelectComboBoxMixin = (superclass) =>\n class MultiSelectComboBoxMixinClass extends superclass {\n static get observedAttributes() {\n return ['readonly'];\n }\n\n // eslint-disable-next-line class-methods-use-this\n #renderItem = ({ displayName, value, label }) => {\n return `<span data-name=\"${label}\" data-id=\"${value}\">${displayName || label}</span>`;\n };\n\n #data;\n\n #value = [];\n\n get defaultValues() {\n const defaultValuesAttr = this.getAttribute('default-values');\n if (defaultValuesAttr) {\n try {\n const defaultValues = JSON.parse(defaultValuesAttr);\n if (this.isValidDataType(defaultValues)) {\n return defaultValues;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"default-values\" -', e.message);\n }\n }\n return [];\n }\n\n get renderItem() {\n return this.#renderItem;\n }\n\n set renderItem(renderFn) {\n this.#renderItem = renderFn;\n this.renderItems();\n }\n\n get data() {\n if (this.#data) return this.#data;\n\n const dataAttr = this.getAttribute('data');\n\n if (dataAttr) {\n try {\n const data = JSON.parse(dataAttr);\n if (this.isValidDataType(data)) {\n return data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"data\" -', e.message);\n }\n }\n\n return [];\n }\n\n set data(data) {\n if (this.isValidDataType(data)) {\n this.#data = data;\n this.renderItems();\n }\n }\n\n get allowCustomValues() {\n return this.getAttribute('allow-custom-value') === 'true';\n }\n\n get minItemsSelection() {\n return parseInt(this.getAttribute('min-items-selection'), 10) || 0;\n }\n\n get maxItemsSelection() {\n return parseInt(this.getAttribute('max-items-selection'), 10) || 0;\n }\n\n // eslint-disable-next-line class-methods-use-this\n isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data and default-values must be an array, received:', data);\n }\n\n return isValid;\n }\n\n getItemsTemplate() {\n return this.data?.reduce?.((acc, item) => acc + (this.renderItem?.(item || {}) || ''), '');\n }\n\n renderItems() {\n const template = this.getItemsTemplate();\n if (template) this.innerHTML = template;\n }\n\n updateSelectedItems() {\n // This is a list of all the selected items, including ones that may have been removed from the DOM\n const currentSelected =\n this.baseElement.selectedItems?.map((item) => item.getAttribute('data-id')) || [];\n\n // if there are selected items, we want to trigger a potential update to the value if some child elements were removed\n if (currentSelected.length > 0) {\n // setting the value checks that the selected items are still in the DOM and will not set the value if they are not\n this.value = currentSelected;\n }\n\n // otherwise, if default value is specified, set default value as selected item\n if (this.value.length === 0) {\n this.setDefaultValues();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n customValueTransformFn(val) {\n return val;\n }\n\n // We want to override Vaadin's Combo Box value setter. This is needed since Vaadin couples between the\n // field that it searches the value, and the finaly display value of the input.\n // We provide a custom transform function to override that behavior.\n setComboBoxDescriptor() {\n const valueDescriptor = Object.getOwnPropertyDescriptor(\n this.inputElement.constructor.prototype,\n 'value'\n );\n\n const comboBox = this;\n\n Object.defineProperties(this.inputElement, {\n value: {\n ...valueDescriptor,\n set(val) {\n const transformedValue = comboBox.customValueTransformFn(val) || '';\n\n if (transformedValue === this.value) {\n return;\n }\n\n valueDescriptor.set.call(this, transformedValue);\n },\n },\n });\n }\n\n // To prevent duplicate items for the multi select options, we dedup them based on the \"data-id\" attribute\n // eslint-disable-next-line class-methods-use-this\n #dedupItems(items) {\n return Array.from(\n new Map(items.map((item) => [item.getAttribute('data-id'), item])).values()\n );\n }\n\n // vaadin api is to set props on their combo box node,\n // in order to avoid it, we are passing the children of this component\n // to the items & renderer props, so it will be used as the combo box items\n #onChildrenChange() {\n const items = Array.from(this.children);\n const dedupItems = this.#dedupItems(items);\n\n // we want the data-name attribute to be accessible as an object attribute\n if (items.length) {\n this.removeAttribute('has-no-options');\n\n dedupItems.forEach((node) => {\n Object.defineProperty(node, 'data-name', {\n value: node.getAttribute('data-name'),\n configurable: true,\n writable: true,\n });\n Object.defineProperty(node, 'data-id', {\n value: node.getAttribute('data-id'),\n configurable: true,\n writable: true,\n });\n });\n\n this.baseElement.items = dedupItems;\n\n setTimeout(() => {\n // set timeout to ensure this runs after customValueTransformFn had the chance to be overriden\n this.updateSelectedItems();\n }, 0);\n } else {\n this.baseElement.items = [];\n this.setAttribute('has-no-options', '');\n }\n\n // use vaadin combobox custom renderer to render options as HTML\n // and not via default renderer, which renders only the data-name's value\n // in its own HTML template\n this.baseElement.renderer = (root, combo, model) => {\n // eslint-disable-next-line no-param-reassign\n root.innerHTML = model.item.outerHTML;\n };\n }\n\n // the default vaadin behavior is to attach the overlay to the body when opened\n // we do not want that because it's difficult to style the overlay in this way\n // so we override it to open inside the shadow DOM\n #overrideOverlaySettings() {\n const overlay = this.baseElement.shadowRoot\n .querySelector('vaadin-multi-select-combo-box-internal')\n .shadowRoot.querySelector('vaadin-multi-select-combo-box-overlay');\n overlay._attachOverlay = () => {\n overlay.bringToFront();\n };\n overlay._detachOverlay = () => {};\n overlay._enterModalState = () => {};\n }\n\n #handleCustomValues() {\n if (this.allowCustomValues) {\n this.baseElement.addEventListener('custom-value-set', (e) => {\n const newItemHtml = this.#renderItem({\n label: e.detail,\n displayName: e.detail,\n value: e.detail,\n });\n this.innerHTML += newItemHtml;\n // The internal filter needs to be removed, otherwise there's a bug where a new custom item\n // added can't be removed from the dropdown because of how the vaadin component is implemented\n this.baseElement._lastFilter = '';\n // The value needs to be set with a timeout because it needs to execute after\n // the custom value is added to items by the children change observer\n setTimeout(() => {\n this.value = [...this.value, e.detail];\n }, 0);\n });\n }\n }\n\n setGetValidity() {\n // eslint-disable-next-line func-names\n this.getValidity = function () {\n if (this.isRequired && !this.value.length) {\n return {\n valueMissing: true,\n };\n }\n // If the field is not required, no minimum selection can be set\n if (\n this.isRequired &&\n this.minItemsSelection &&\n this.value.length < this.minItemsSelection\n ) {\n return {\n rangeUnderflow: true,\n };\n }\n if (this.maxItemsSelection && this.value.length > this.maxItemsSelection) {\n return {\n rangeOverflow: true,\n };\n }\n return {};\n };\n\n // This is required to override the default validity check of the vaadin component\n // which is triggered when the component is checked for validity after blur\n // Without this, our minItemsSelection and maxItemsSelection constraints will not be checked\n const that = this;\n // eslint-disable-next-line func-names\n this.baseElement.checkValidity = () => {\n return that.validity.valid;\n };\n }\n\n init() {\n super.init?.();\n\n this.setGetValidity();\n\n this.setComboBoxDescriptor();\n\n this.#overrideOverlaySettings();\n\n this.#handleCustomValues();\n\n this.renderItems();\n\n observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });\n\n observeChildren(this, this.#onChildrenChange.bind(this));\n\n // Note: we need to forward the `placeholder` because the vaadin component observes it and\n // tries to override it, causing us to lose the user set placeholder.\n forwardAttrs(this, this.baseElement, { includeAttrs: ['placeholder'] });\n\n this.setDefaultValues();\n\n this.baseElement.addEventListener('selected-items-changed', () => {\n this.#updateInternalValue();\n this.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n });\n }\n\n setDefaultValues() {\n const initialDefaultValues = this.defaultValues;\n if (initialDefaultValues.length > 0) {\n this.value = this.defaultValues;\n }\n }\n\n #updateInternalValue() {\n // This is done here because we don't want to return a different copy of the same array\n // every time get value is called if a new value wasn't set\n this.#value =\n this.baseElement.selectedItems?.map((elem) => elem.getAttribute('data-id')) || [];\n }\n\n // Updating the value will update the selectedItems, which will trigger an event 'selected-items-changed'\n // which we listen to in the init function to update the internal value\n set value(vals) {\n if (vals && vals.length > 0) {\n // Filters the children of the component to find the ones that match the values,\n // since it's possible that some values that are trying to set are not in the children\n const selectedChildren = this.baseElement.items?.filter((item) =>\n vals.includes(item['data-id'])\n );\n\n // If the component allows custom values, we need to add the values that are not present in the children\n if (this.allowCustomValues) {\n const existingValues =\n selectedChildren?.map((child) => child.getAttribute('data-id')) || [];\n const missingValues = vals.filter((val) => !existingValues.includes(val));\n\n if (missingValues.length) {\n const newItemsHtml = missingValues.reduce((acc, val) => {\n const newItemHtml = this.#renderItem({\n label: val,\n displayName: val,\n value: val,\n });\n return acc + newItemHtml;\n }, '');\n this.innerHTML += newItemsHtml;\n\n // The value needs to be set with a timeout because it needs to execute after\n // the custom values are added to the items by the children change observer\n setTimeout(() => {\n this.value = vals;\n }, 0);\n return;\n }\n }\n\n const newSelectedValues =\n selectedChildren?.map((child) => child.getAttribute('data-id')) || [];\n if (!compareArraysUnordered(this.#value, newSelectedValues)) {\n this.baseElement.selectedItems = selectedChildren;\n }\n } else {\n this.baseElement.selectedItems = [];\n }\n }\n\n get value() {\n return this.#value;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'readonly') {\n this.onReadOnlyChange(newValue !== null && newValue === 'true');\n }\n }\n\n onReadOnlyChange(val) {\n if (val) {\n this.baseElement?.shadowRoot\n ?.querySelector('vaadin-multi-select-combo-box-internal')\n ?.setAttribute('inert', val);\n } else {\n this.baseElement?.shadowRoot\n ?.querySelector('vaadin-multi-select-combo-box-internal')\n ?.removeAttribute('inert');\n }\n }\n };\n\nconst {\n host,\n inputField,\n inputElement,\n placeholder,\n toggle,\n clearButton,\n label,\n requiredIndicator,\n helperText,\n errorMessage,\n chip,\n chipLabel,\n overflowChipFirstBorder,\n overflowChipSecondBorder,\n} = {\n host: { selector: () => ':host' },\n inputField: { selector: '::part(input-field)' },\n inputElement: { selector: 'input' },\n placeholder: { selector: '> input:placeholder-shown' },\n toggle: { selector: '::part(toggle-button)' },\n clearButton: { selector: '::part(clear-button)' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n chip: { selector: 'vaadin-multi-select-combo-box-chip' },\n chipLabel: { selector: 'vaadin-multi-select-combo-box-chip::part(label)' },\n overflowChipFirstBorder: {\n selector: \"vaadin-multi-select-combo-box-chip[slot='overflow']::before\",\n },\n overflowChipSecondBorder: {\n selector: \"vaadin-multi-select-combo-box-chip[slot='overflow']::after\",\n },\n};\n\nexport const MultiSelectComboBoxClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n chipFontSize: { ...chipLabel, property: 'font-size' },\n fontFamily: [label, placeholder, inputField, helperText, errorMessage, chipLabel],\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n inputHeight: { ...inputField, property: 'min-height' },\n inputBackgroundColor: { ...inputField, property: 'background-color' },\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n inputValueTextColor: { ...inputField, property: 'color' },\n inputPlaceholderTextColor: { ...placeholder, property: 'color' },\n inputDropdownButtonCursor: [\n { ...toggle, property: 'cursor' },\n { ...clearButton, property: 'cursor' },\n ],\n inputDropdownButtonColor: [\n { ...toggle, property: 'color' },\n { ...clearButton, property: 'color' },\n ],\n inputDropdownButtonSize: [\n { ...toggle, property: 'font-size' },\n { ...clearButton, property: 'font-size' },\n ],\n inputDropdownButtonOffset: [\n { ...toggle, property: 'margin-right' },\n { ...toggle, property: 'margin-left' },\n ],\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n inputHorizontalPadding: [\n { ...inputElement, property: 'padding-left' },\n { ...inputElement, property: 'padding-right' },\n { ...inputField, property: 'padding-inline-start' },\n ],\n inputVerticalPadding: [\n { ...inputField, property: 'padding-top' },\n { ...inputField, property: 'padding-bottom' },\n ],\n chipTextColor: { ...chipLabel, property: 'color' },\n chipBackgroundColor: [\n { ...chip, property: 'background-color' },\n { ...overflowChipFirstBorder, property: 'border-color' },\n { ...overflowChipSecondBorder, property: 'border-color' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelLeftPosition: { ...label, property: 'left' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: { ...placeholder, property: 'opacity' },\n inputVerticalAlignment: { ...inputField, property: 'align-items' },\n\n // we need to use the variables from the portal mixin\n // so we need to use an arrow function on the selector\n // for that to work, because ComboBox is not available\n // at this time.\n overlayBackground: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.backgroundColor,\n },\n overlayTextColor: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.textColor,\n },\n overlayBorder: { property: () => MultiSelectComboBoxClass.cssVarList.overlay.border },\n overlayFontSize: { property: () => MultiSelectComboBoxClass.cssVarList.overlay.fontSize },\n overlayFontFamily: { property: () => MultiSelectComboBoxClass.cssVarList.overlay.fontFamily },\n overlayCursor: { property: () => MultiSelectComboBoxClass.cssVarList.overlay.cursor },\n overlayItemBoxShadow: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.itemBoxShadow,\n },\n overlayItemPaddingInlineStart: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.itemPaddingInlineStart,\n },\n overlayItemPaddingInlineEnd: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.itemPaddingInlineEnd,\n },\n },\n }),\n draggableMixin,\n portalMixin({\n name: 'overlay',\n selector: 'vaadin-multi-select-combo-box-internal',\n mappings: {\n backgroundColor: { selector: 'vaadin-multi-select-combo-box-scroller' },\n minHeight: { selector: 'vaadin-multi-select-combo-box-overlay' },\n margin: { selector: 'vaadin-multi-select-combo-box-overlay' },\n cursor: { selector: 'vaadin-multi-select-combo-box-item' },\n fontFamily: { selector: 'vaadin-multi-select-combo-box-item' },\n textColor: { selector: 'vaadin-multi-select-combo-box-item', property: 'color' },\n fontSize: { selector: 'vaadin-multi-select-combo-box-item' },\n itemBoxShadow: { selector: 'vaadin-multi-select-combo-box-item', property: 'box-shadow' },\n itemPaddingInlineStart: {\n selector: 'vaadin-multi-select-combo-box-item',\n property: 'padding-inline-start',\n },\n itemPaddingInlineEnd: {\n selector: 'vaadin-multi-select-combo-box-item',\n property: 'padding-inline-end',\n },\n },\n forward: {\n include: false,\n attributes: ['size'],\n },\n }),\n proxyInputMixin({ proxyProps: ['selectionStart'], inputEvent: 'selected-items-changed' }),\n changeMixin,\n componentNameValidationMixin,\n multiSelectComboBoxMixin\n)(\n createProxy({\n slots: ['', 'prefix'],\n wrappedEleName: 'vaadin-multi-select-combo-box',\n style: () => `\n\t\t:host {\n\t\t\tdisplay: inline-flex;\n\t\t\tbox-sizing: border-box;\n\t\t\t-webkit-mask-image: none;\n\t\t}\n\t\t${useHostExternalPadding(MultiSelectComboBoxClass.cssVarList)}\n\t\t${resetInputReadonlyStyle('vaadin-multi-select-combo-box')}\n\t\t${resetInputPlaceholder('vaadin-multi-select-combo-box')}\n\t\t${resetInputCursor('vaadin-multi-select-combo-box')}\n\n\t\tvaadin-multi-select-combo-box {\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t\tvaadin-multi-select-combo-box::before {\n\t\t\theight: initial;\n\t\t}\n\t\tvaadin-multi-select-combo-box [slot=\"input\"] {\n\t\t\t-webkit-mask-image: none;\n\t\t\tmin-height: 0;\n align-self: center;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\tvaadin-multi-select-combo-box[readonly] [slot=\"input\"] {\n flex-grow: 1;\n flex-basis: 4em;\n\t\t}\n\n\t\t::part(input-field) {\n padding: 0;\n\t\t\tbox-shadow: none;\n\t\t}\n ${resetInputLabelPosition('vaadin-multi-select-combo-box')}\n :host([has-label]) vaadin-multi-select-combo-box-chip::part(label) {\n display: block;\n }\n\n vaadin-multi-select-combo-box vaadin-multi-select-combo-box-chip[slot='overflow']::before,\n vaadin-multi-select-combo-box vaadin-multi-select-combo-box-chip[slot='overflow']::after {\n left: -4px;\n right: -4px;\n border-left-width: 0;\n border-inline-start-style: solid;\n border-inline-start-width: 2px;\n }\n vaadin-multi-select-combo-box vaadin-multi-select-combo-box-chip[slot='overflow']::after {\n left: -8px;\n right: -8px;\n }\n\n :host([has-no-options][allow-custom-value='true']) ::part(toggle-button) {\n display: none;\n }\n\n ${inputFloatingLabelStyle()}\n\n vaadin-multi-select-combo-box::part(toggle-button),\n vaadin-multi-select-combo-box::part(clear-button) {\n align-self: center;\n }\n\n vaadin-multi-select-combo-box[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-multi-select-combo-box[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\n\t\t`,\n // Note: we exclude `size` to avoid overriding Vaadin's ComboBox property\n // with the same name. Including it will cause Vaadin to calculate NaN size,\n // and reset items to an empty array, and opening the list box with no items\n // to display.\n // Note: we exclude `placeholder` because the vaadin component observes it and\n // tries to override it, causing us to lose the user set placeholder.\n excludeAttrsSync: ['tabindex', 'size', 'data', 'placeholder'],\n componentName,\n includeForwardProps: ['items', 'renderer', 'selectedItems'],\n })\n);\n","import globals from '../globals';\nimport { MultiSelectComboBoxClass } from '../../components/descope-multi-select-combo-box/MultiSelectComboBoxClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = MultiSelectComboBoxClass.cssVarList;\n\nexport const multiSelectComboBox = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.inputVerticalPadding]: refs.verticalPadding,\n [vars.inputHeight]: refs.inputHeight,\n [vars.inputDropdownButtonColor]: globalRefs.colors.surface.dark,\n [vars.inputDropdownButtonCursor]: 'pointer',\n [vars.inputDropdownButtonSize]: refs.toggleButtonSize,\n [vars.inputDropdownButtonOffset]: globalRefs.spacing.xs,\n [vars.overlayItemPaddingInlineStart]: globalRefs.spacing.xs,\n [vars.overlayItemPaddingInlineEnd]: globalRefs.spacing.lg,\n [vars.chipFontSize]: refs.chipFontSize,\n [vars.chipTextColor]: globalRefs.colors.surface.contrast,\n [vars.chipBackgroundColor]: globalRefs.colors.surface.light,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelLeftPosition]: refs.labelLeftPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n\n labelType: {\n floating: {\n [vars.inputHorizontalPadding]: '0.25em',\n _hasValue: {\n [vars.inputHorizontalPadding]: '0.45em',\n },\n },\n },\n\n _readonly: {\n [vars.inputDropdownButtonCursor]: 'default',\n },\n\n // Overlay theme exposed via the component:\n [vars.overlayFontSize]: refs.fontSize,\n [vars.overlayFontFamily]: refs.fontFamily,\n [vars.overlayCursor]: 'pointer',\n [vars.overlayItemBoxShadow]: 'none',\n [vars.overlayBackground]: refs.backgroundColor,\n [vars.overlayTextColor]: refs.valueTextColor,\n\n // Overlay direct theme:\n [vars.overlay.minHeight]: '400px',\n [vars.overlay.margin]: '0',\n};\n\nexport default multiSelectComboBox;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('badge');\n\nclass RawBadge extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n :host {\n display: inline-flex;\n }\n :host > div {\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\t\t</style>\n\t\t<div>\n <slot></slot>\n\t\t</div>\n\t\t`;\n }\n}\n\nexport const BadgeClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [{ selector: () => ':host', property: 'width' }],\n hostDirection: { property: 'direction' },\n\n fontFamily: {},\n fontSize: {},\n fontWeight: {},\n textTransform: {},\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [{ property: 'padding-left' }, { property: 'padding-right' }],\n\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n borderRadius: {},\n\n backgroundColor: {},\n\n textColor: { property: 'color' },\n textAlign: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawBadge);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { BadgeClass } from '../../components/descope-badge/BadgeClass';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = BadgeClass.cssVarList;\n\nconst badge = {\n [vars.hostWidth]: 'fit-content',\n [vars.hostDirection]: globalRefs.direction,\n\n [vars.textAlign]: 'center',\n\n [vars.fontFamily]: globalRefs.fonts.font1.family,\n [vars.fontWeight]: '400',\n\n [vars.verticalPadding]: '0.25em',\n [vars.horizontalPadding]: '0.5em',\n\n [vars.borderWidth]: globalRefs.border.xs,\n [vars.borderRadius]: globalRefs.radius.xs,\n [vars.borderColor]: 'transparent',\n [vars.borderStyle]: 'solid',\n\n _fullWidth: {\n [vars.hostWidth]: '100%',\n },\n\n size: {\n xs: { [vars.fontSize]: '12px' },\n sm: { [vars.fontSize]: '14px' },\n md: { [vars.fontSize]: '16px' },\n lg: { [vars.fontSize]: '18px' },\n },\n\n mode: {\n default: {\n [vars.textColor]: globalRefs.colors.surface.dark,\n _bordered: {\n [vars.borderColor]: globalRefs.colors.surface.light,\n },\n },\n primary: {\n [vars.textColor]: globalRefs.colors.primary.main,\n _bordered: {\n [vars.borderColor]: globalRefs.colors.primary.light,\n },\n },\n secondary: {\n [vars.textColor]: globalRefs.colors.secondary.main,\n _bordered: {\n [vars.borderColor]: globalRefs.colors.secondary.light,\n },\n },\n error: {\n [vars.textColor]: globalRefs.colors.error.main,\n _bordered: {\n [vars.borderColor]: globalRefs.colors.error.light,\n },\n },\n success: {\n [vars.textColor]: globalRefs.colors.success.main,\n _bordered: {\n [vars.borderColor]: globalRefs.colors.success.light,\n },\n },\n },\n};\n\nexport default badge;\nexport { vars };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName, observeAttributes } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('avatar');\nclass RawAvatar extends createBaseClass({ componentName, baseSelector: ':host > .wrapper' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n .editableBadge {\n border: 1px solid;\n border-radius: 100%;\n height: fit-content;\n width: 25%;\n height: 25%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5%;\n box-sizing: border-box;\n position: absolute;\n bottom: 0;\n inset-inline-end: 0;\n }\n\n vaadin-icon {\n color: currentcolor;\n }\n\n vaadin-avatar {\n width: 100%;\n height: 100%;\n margin: 0;\n border: none\n }\n\n .wrapper {\n display: inline-flex;\n position: relative;\n width: 100%;\n height: 100%;\n }\n </style>\n\n\n <div class=\"wrapper\">\n <vaadin-avatar></vaadin-avatar>\n <div class=\"editableBadge\">\n <vaadin-icon icon=\"vaadin:pencil\"></vaadin-icon>\n </div>\n </div>\n\t\t`;\n\n this.avatarComponent = this.shadowRoot.querySelector('vaadin-avatar');\n\n forwardAttrs(this, this.avatarComponent, {\n includeAttrs: ['display-name', 'img', 'abbr'],\n mapAttrs: { 'display-name': 'name' },\n });\n\n const editableIcon = this.shadowRoot.querySelector('.editableBadge');\n\n observeAttributes(\n this,\n () => {\n editableIcon.style.display = this.isEditable ? '' : 'none';\n },\n { includeAttrs: ['editable'] }\n );\n }\n\n get isEditable() {\n return this.getAttribute('editable') === 'true';\n }\n}\n\nconst { host, editableBadge, avatar } = {\n host: { selector: () => ':host' },\n editableBadge: { selector: '> .editableBadge' },\n avatar: { selector: 'vaadin-avatar' },\n};\n\nexport const AvatarClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [\n { ...host, property: 'width' },\n { ...host, property: 'min-width' },\n ],\n hostHeight: { ...host, property: 'height' },\n cursor: [avatar, host],\n hostDirection: { ...host, property: 'direction' },\n avatarTextColor: { ...avatar, property: 'color' },\n avatarBackgroundColor: { ...avatar, property: 'background-color' },\n editableIconColor: { ...editableBadge, property: 'color' },\n editableBorderColor: { ...editableBadge, property: 'border-color' },\n editableBackgroundColor: { ...editableBadge, property: 'background-color' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawAvatar);\n","import globals from '../globals';\nimport { AvatarClass } from '../../components/descope-avatar/AvatarClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\nconst compVars = AvatarClass.cssVarList;\n\nconst avatar = {\n [compVars.hostDirection]: globalRefs.direction,\n [compVars.editableIconColor]: globalRefs.colors.surface.dark,\n [compVars.editableBorderColor]: globalRefs.colors.surface.dark,\n [compVars.editableBackgroundColor]: globalRefs.colors.surface.main,\n [compVars.avatarTextColor]: globalRefs.colors.surface.main,\n [compVars.avatarBackgroundColor]: globalRefs.colors.surface.dark,\n\n _editable: {\n [compVars.cursor]: 'pointer',\n },\n\n size: {\n xs: {\n [compVars.hostWidth]: '30px',\n [compVars.hostHeight]: '30px',\n },\n sm: {\n [compVars.hostWidth]: '40px',\n [compVars.hostHeight]: '40px',\n },\n md: {\n [compVars.hostWidth]: '60px',\n [compVars.hostHeight]: '60px',\n },\n lg: {\n [compVars.hostWidth]: '98px',\n [compVars.hostHeight]: '98px',\n },\n },\n};\n\nexport default avatar;\n\nexport const vars = {\n ...compVars,\n};\n","import { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport {\n getComponentName,\n forwardAttrs,\n observeChildren,\n} from '../../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('mappings-field-internal');\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass MappingsFieldInternal extends BaseInputClass {\n #errorItem;\n\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], [\n 'label-value',\n 'label-attr',\n 'button-label',\n 'invalid',\n 'readonly',\n 'disabled',\n ]);\n }\n\n // eslint-disable-next-line class-methods-use-this\n isValidDataType(data) {\n try {\n return data.every(\n (obj) =>\n typeof obj === 'object' &&\n !Array.isArray(obj) &&\n Object.getOwnPropertyNames(obj).length === 1 &&\n typeof obj[Object.keys(obj)[0]] === 'string' &&\n obj[Object.keys(obj)[0]].trim() !== ''\n );\n } catch (e) {\n return false;\n }\n }\n\n get labelValue() {\n return this.getAttribute('label-value') || 'Value';\n }\n\n get labelAttr() {\n return this.getAttribute('label-attr') || 'Attribute';\n }\n\n get buttonLabel() {\n return this.getAttribute('button-label') || 'Add mapping';\n }\n\n get options() {\n return this.getAttribute('options') || [];\n }\n\n addNewMappingItem(focusNewItem) {\n const newMappingItem = document.createElement('descope-mapping-item');\n newMappingItem.setAttribute('bordered', 'true');\n this.mappingsContainerEle.appendChild(newMappingItem);\n forwardAttrs(this, newMappingItem, {\n includeAttrs: ['size', 'full-width', 'separator', 'options', 'disabled'],\n });\n // This needs to be done with the timeout, otherwise the validation is performed\n // before the new item is added and thus returns a wrong result\n setTimeout(() => {\n this.setCustomValidity('');\n newMappingItem.addEventListener('mapping-item-removed', () => {\n // If the removed item was the one that was invalid, we need to reset the invalid indication for the internal\n if (newMappingItem === this.#errorItem) {\n this.resetInvalidIndication();\n this.#errorItem = undefined;\n }\n newMappingItem.remove();\n this.setCustomValidity('');\n });\n this.dispatchEvent(new CustomEvent('mapping-item-added', { bubbles: true, composed: true }));\n if (focusNewItem) {\n newMappingItem.focus();\n }\n }, 0);\n return newMappingItem;\n }\n\n get items() {\n return Array.from(this.mappingsContainerEle.querySelectorAll('descope-mapping-item'));\n }\n\n get value() {\n return this.items.reduce((acc, item) => {\n if (!item.value) {\n return acc;\n }\n\n return [...acc, item.value];\n }, []);\n }\n\n set value(mappings) {\n if (!this.isValidDataType(mappings)) {\n // eslint-disable-next-line no-console\n console.error(\n 'received invalid value to set - should be an array of objects with one key-value pair'\n );\n return;\n }\n\n const currentItems = this.items;\n\n // Remove extra mapping items we don't need\n if (currentItems.length > mappings.length) {\n for (let i = mappings.length; i < currentItems.length; i++) {\n this.mappingsContainerEle.removeChild(currentItems[i]);\n }\n }\n\n // Add or update items\n mappings.forEach((mapping, index) => {\n const mappingItem = currentItems[index];\n if (mappingItem) {\n // Set existing item value\n mappingItem.value = mapping;\n } else {\n // Add new item\n const newMappingItem = this.addNewMappingItem(false);\n // Setting the new item value needs to be done with the timeout,\n // otherwise the value is not set correctly\n setTimeout(() => {\n newMappingItem.value = mapping;\n }, 0);\n }\n });\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n <div class=\"labels-container\" part=\"labels\"></div>\n <div class=\"mappings-container\"></div>\n <div class=\"button-container\"></div>\n `;\n\n this.labelsEle = this.querySelector('.labels-container');\n this.mappingsContainerEle = this.querySelector('.mappings-container');\n this.buttonContainer = this.querySelector('.button-container');\n }\n\n initLabels() {\n this.labelsEle.innerHTML = `\n <descope-text variant=\"body2\" part=\"value-label\">${this.labelValue}</descope-text>\n <descope-text variant=\"body2\" part=\"attr-label\">${this.labelAttr}</descope-text>\n `;\n }\n\n initAddButton() {\n this.buttonContainer.innerHTML = `\n <descope-button variant=\"link\" mode=\"primary\" disabled=\"${this.isDisabled}\">\n <vaadin-icon icon=\"vaadin:plus\"></vaadin-icon>\n ${this.buttonLabel}\n </descope-button>\n `;\n const button = this.querySelector('descope-button');\n button.onclick = () => {\n this.addNewMappingItem(true);\n };\n forwardAttrs(this, button, {\n includeAttrs: ['disabled'],\n });\n }\n\n #onMappingsContainerChildrenChange() {\n this.labelsEle.style.display = this.items.length ? 'grid' : 'none';\n }\n\n init() {\n // This event listener needs to be placed before the super.init() call\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) {\n const focusedElement =\n this.#errorItem || this.items[0] || this.querySelector('descope-button');\n focusedElement.focus();\n }\n });\n\n super.init?.();\n this.initLabels();\n this.initAddButton();\n\n // This event listener is responsible for removing the invalid attribute\n // from the internal once the invalid item turns valid\n this.addEventListener('input', () => {\n const isErrorItemMounted = this.mappingsContainerEle.contains(this.#errorItem);\n if (isErrorItemMounted && this.#errorItem?.checkValidity()) {\n // Item has changed, it was invalid before and now it's valid\n this.resetInvalidIndication();\n this.#errorItem.removeAttribute('invalid');\n this.#errorItem = undefined;\n }\n });\n\n observeChildren(this.mappingsContainerEle, this.#onMappingsContainerChildrenChange.bind(this));\n }\n\n resetInvalidIndication() {\n this.removeAttribute('invalid');\n }\n\n getValidity() {\n const errorItem = this.items.find((item) => !item.checkValidity());\n if (errorItem) {\n return errorItem.validity;\n }\n\n return {};\n }\n\n #handleInvalidMappings(isInvalid) {\n if (isInvalid) {\n this.#errorItem = this.items.find((item) => !item.checkValidity());\n this.#errorItem?.reportValidity();\n this.#errorItem?.setAttribute('invalid', 'true');\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (attrName === 'label-value' || attrName === 'label-attr') {\n this.initLabels();\n }\n if (attrName === 'button-label') {\n this.initAddButton();\n }\n if (attrName === 'invalid') {\n this.#handleInvalidMappings(newValue === 'true');\n }\n if (attrName === 'readonly') {\n this.toggleAttribute('inert', newValue === 'true');\n }\n }\n}\n\nexport default MappingsFieldInternal;\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../../mixins';\nimport { TextClass } from '../../descope-text/TextClass';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName, syncAttrs } from '../../../helpers/componentHelpers';\nimport { componentName as descopeInternalComponentName } from './descope-mappings-field-internal/MappingsFieldInternal';\n\nexport const componentName = getComponentName('mappings-field');\n\nconst customMixin = (superclass) =>\n class MappingsFieldMixinClass extends superclass {\n get defaultValues() {\n const defaultValuesAttr = this.getAttribute('default-values');\n if (defaultValuesAttr) {\n try {\n return JSON.parse(defaultValuesAttr);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"default-values\" -', e.message);\n }\n }\n return [];\n }\n\n setDefaultValues() {\n const initialDefaultValues = this.defaultValues;\n if (Object.keys(initialDefaultValues).length > 0) {\n this.inputElement.value = initialDefaultValues;\n }\n }\n\n init() {\n super.init?.();\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n tabindex=\"-1\"\n ></${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'default-values',\n 'invalid',\n 'readonly',\n 'disabled',\n ],\n });\n\n // This is required since when we remove the invalid attribute from the internal mappings field,\n // we want to reflect the change in the parent component\n syncAttrs(this, this.inputElement, { includeAttrs: ['invalid'] });\n\n this.setDefaultValues();\n }\n };\n\nconst {\n host,\n helperText,\n errorMessage,\n mappingItem,\n labels,\n labelsText,\n valueLabel,\n attrLabel,\n separator,\n labelsContainer,\n} = {\n host: { selector: () => ':host' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n mappingItem: { selector: 'descope-mapping-item::part(wrapper)' },\n labels: { selector: 'descope-mappings-field-internal [part=\"labels\"] descope-text' },\n labelsText: {\n selector: 'descope-mappings-field-internal [part=\"labels\"] descope-text::part(text-wrapper)',\n },\n valueLabel: { selector: 'descope-mappings-field-internal [part=\"labels\"] [part=\"value-label\"]' },\n attrLabel: { selector: 'descope-mappings-field-internal [part=\"labels\"] [part=\"attr-label\"]' },\n separator: { selector: 'descope-mapping-item::part(separator)' },\n labelsContainer: { selector: 'descope-mappings-field-internal [part=\"labels\"]' },\n};\n\nexport const MappingsFieldClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host, { ...separator, property: 'margin-top' }],\n fontFamily: [helperText, errorMessage, labels],\n separatorFontSize: { ...separator, property: 'font-size' },\n labelsFontSize: { ...labelsText, property: 'font-size' },\n labelsLineHeight: [\n { ...labelsText, property: 'line-height' },\n { ...labels, property: 'line-height' },\n ],\n labelTextColor: [\n { ...labels, property: TextClass.cssVarList.textColor },\n { ...separator, property: 'color' },\n ],\n itemMarginBottom: { ...mappingItem, property: 'margin-bottom' },\n valueLabelMinWidth: { ...valueLabel, property: 'min-width' },\n attrLabelMinWidth: { ...attrLabel, property: 'min-width' },\n labelsMarginBottom: { ...labelsContainer, property: 'margin-bottom' },\n separatorWidth: {},\n removeButtonWidth: {},\n },\n }),\n draggableMixin,\n proxyInputMixin({\n proxyProps: ['value', 'selectionStart'],\n inputEvent: 'input',\n proxyParentValidation: true,\n }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-custom-field',\n style: () => `\n :host {\n display: inline-flex;\n max-width: 100%;\n direction: ltr;\n }\n vaadin-custom-field {\n line-height: unset;\n width: 100%;\n }\n\n descope-mappings-field-internal [part=\"labels\"] {\n display: none;\n grid-template-columns: 1fr var(${MappingsFieldClass.cssVarList.separatorWidth}) 1fr var(${MappingsFieldClass.cssVarList.removeButtonWidth});\n }\n\n descope-mappings-field-internal [part=\"labels\"] [part=\"value-label\"],\n descope-mappings-field-internal [part=\"labels\"] [part=\"attr-label\"] {\n ${TextClass.cssVarList.fontWeight}: 500;\n }\n\n descope-mappings-field-internal [part=\"labels\"] [part=\"value-label\"] {\n grid-column: 1 / span 1;\n }\n\n descope-mappings-field-internal [part=\"labels\"] [part=\"attr-label\"] {\n grid-column: 3 / span 1;\n }\n\n descope-mapping-item::part(wrapper) {\n display: grid;\n grid-template-columns: 1fr var(${MappingsFieldClass.cssVarList.separatorWidth}) 1fr var(${MappingsFieldClass.cssVarList.removeButtonWidth});\n }\n `,\n excludeAttrsSync: [\n 'tabindex',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'options',\n 'error-message',\n ],\n componentName,\n })\n);\n\nexport default MappingsFieldClass;\n","import globals from '../globals';\nimport { MappingsFieldClass } from '../../components/mapping-fields/descope-mappings-field/MappingsFieldClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\n\nconst vars = MappingsFieldClass.cssVarList;\n\nexport const mappingsField = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.separatorFontSize]: '14px',\n [vars.labelsFontSize]: '14px',\n [vars.labelsLineHeight]: '1',\n [vars.labelsMarginBottom]: '6px',\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.itemMarginBottom]: '1em',\n // To be positioned correctly, the min width has to match the text field min width\n [vars.valueLabelMinWidth]: refs.minWidth,\n // To be positioned correctly, the min width has to match the combo box field min width\n [vars.attrLabelMinWidth]: `calc(12em + 2 * ${globalRefs.border.xs})`,\n [vars.separatorWidth]: '70px',\n [vars.removeButtonWidth]: '60px',\n};\n\nexport default mappingsField;\nexport { vars };\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxNCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEgMTZDMSAxNy4xIDEuOSAxOCAzIDE4SDExQzEyLjEgMTggMTMgMTcuMSAxMyAxNlY0SDFWMTZaTTMgNkgxMVYxNkgzVjZaTTEwLjUgMUw5LjUgMEg0LjVMMy41IDFIMFYzSDE0VjFIMTAuNVoiIGZpbGw9ImN1cnJlbnRjb2xvciIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwLjAwMDIgMC45OTIxNDlDMTAuMDAwMiAxLjAxNjE1IDEwLjAwMDIgMS4wMTYxNSAxMC4wMDAyIDEuMDE2MTVMOC4yMjQxOSAzLjAwODE1SDIuOTkyMTlDMi40NjQxOSAzLjAwODE1IDIuMDA4MTkgMy40NDAxNSAyLjAwODE5IDMuOTkyMTVWMTIuMDA4MkMyLjAwODE5IDEyLjUzNjIgMi40NDAxOSAxMi45OTIyIDIuOTkyMTkgMTIuOTkyMkg1LjUzNjE5QzUuODQ4MTkgMTMuMDQwMiA2LjE2MDE5IDEzLjA0MDIgNi40NzIxOSAxMi45OTIySDExLjAwODJDMTEuNTM2MiAxMi45OTIyIDExLjk5MjIgMTIuNTYwMiAxMS45OTIyIDEyLjAwODJWNy43ODQxNkwxMy45MzYyIDUuNjI0MTVMMTQuMDA4MiA1LjY3MjE1VjExLjk4NDJDMTQuMDA4MiAxMy42NjQyIDEyLjY2NDIgMTUuMDA4MiAxMS4wMDgyIDE1LjAwODJIMy4wMTYxOUMxLjMzNjE5IDE1LjAwODIgLTAuMDA3ODEyNSAxMy42NjQyIC0wLjAwNzgxMjUgMTEuOTg0MlYzLjk5MjE1Qy0wLjAwNzgxMjUgMi4zMzYxNSAxLjMzNjE5IDAuOTkyMTQ5IDMuMDE2MTkgMC45OTIxNDlIMTAuMDAwMlpNMTEuMjcyMiAyLjYyNDE1TDEyLjYxNjIgNC4xMTIxNUw3LjcyMDE5IDkuNjgwMTZDNy41MDQxOSA5LjkyMDE2IDYuODMyMTkgMTAuMjMyMiA1LjY4MDE5IDEwLjYxNjJDNS42NTYxOSAxMC42NDAyIDUuNjA4MTkgMTAuNjQwMiA1LjU2MDE5IDEwLjYxNjJDNS40NjQxOSAxMC41OTIyIDUuMzkyMTkgMTAuNDcyMiA1LjQ0MDE5IDEwLjM3NjJDNS43NTIxOSA5LjI0ODE2IDYuMDQwMTkgOC41NTIxNiA2LjI1NjE5IDguMzEyMTZMMTEuMjcyMiAyLjYyNDE1Wk0xMS45MjAyIDEuODU2MTVMMTMuMjg4MiAwLjMyMDE0OUMxMy42NDgyIC0wLjA4Nzg1MTYgMTQuMjcyMiAtMC4xMTE4NTIgMTQuNjgwMiAwLjI3MjE0OUMxNS4wODgyIDAuNjMyMTQ5IDE1LjExMjIgMS4yODAxNSAxNC43NTIyIDEuNjg4MTVMMTMuMjY0MiAzLjM2ODE1TDExLjkyMDIgMS44NTYxNVoiIGZpbGw9ImN1cnJlbnRjb2xvciIvPgo8L3N2Zz4K\"","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport deleteIcon from './delete.svg';\nimport editIcon from './edit.svg';\nimport { TextClass } from '../descope-text/TextClass';\nimport { ButtonClass } from '../descope-button/ButtonClass';\nimport { BadgeClass } from '../descope-badge/BadgeClass';\n\nexport const componentName = getComponentName('user-attribute');\nclass RawUserAttribute extends createBaseClass({\n componentName,\n baseSelector: ':host > .root',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n vaadin-icon {\n color: currentcolor;\n }\n\n .root {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n }\n\n .btn-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-grow: 0;\n }\n\n .text-wrapper {\n display: flex;\n align-items: center;\n flex-grow: 1;\n }\n\n descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: initial;\n }\n\n descope-text {\n display: inline-flex;\n }\n\n descope-badge {\n margin-inline-end: 10px;\n }\n\n .hidden {\n visibility: hidden;\n }\n\n descope-text[data-id=\"label-text\"].required:after {\n content: '*';\n color: var(${TextClass.cssVarList.textColor});\n }\n </style>\n\n\n <div class=\"root\">\n <div class=\"text-wrapper\">\n <descope-text st-text-align=\"auto\" data-id=\"label-text\" variant=\"body1\" mode=\"secondary\"></descope-text>\n <descope-text st-text-align=\"auto\" data-id=\"value-text\" variant=\"body1\" mode=\"primary\"></descope-text>\n </div>\n\n <div class=\"btn-wrapper\">\n <descope-badge mode=\"default\" bordered=\"true\" size=\"xs\"></descope-badge>\n <descope-button size=\"xs\" data-id=\"edit-btn\" square=\"true\" variant=\"link\" mode=\"primary\">\n <vaadin-icon src=${editIcon}></vaadin-icon>\n </descope-button>\n <descope-button size=\"xs\" data-id=\"delete-btn\" square=\"true\" variant=\"link\" mode=\"primary\">\n <vaadin-icon src=${deleteIcon}></vaadin-icon>\n </descope-button>\n </div\n </div>\n\t\t`;\n\n this.deleteButton = this.shadowRoot.querySelector('descope-button[data-id=\"delete-btn\"]');\n this.editButton = this.shadowRoot.querySelector('descope-button[data-id=\"edit-btn\"]');\n this.badge = this.shadowRoot.querySelector('descope-badge');\n this.labelText = this.shadowRoot.querySelector('descope-text[data-id=\"label-text\"]');\n this.valueText = this.shadowRoot.querySelector('descope-text[data-id=\"value-text\"]');\n }\n\n onLabelChange() {\n this.labelText.innerText = this.label;\n this.labelText.setAttribute('title', this.label);\n }\n\n onValueOrPlaceholderChange() {\n const text = this.value || this.placeholder;\n const mode = this.value ? 'primary' : 'secondary';\n\n this.valueText.innerText = text;\n this.valueText.setAttribute('title', text);\n this.valueText.setAttribute('mode', mode);\n }\n\n onBadgeLabelChange() {\n if (!this.badgeLabel) {\n this.badge.style.display = 'none';\n } else {\n this.badge.innerText = this.badgeLabel;\n this.badge.style.display = '';\n }\n }\n\n onBadgeTooltipTextChange() {\n this.badge.setAttribute('title', this.badgeTooltipText || this.badgeLabel);\n }\n\n onIsRequiredChange() {\n this.labelText.classList.toggle('required', this.isRequired);\n }\n\n get label() {\n return this.getAttribute('label') || '';\n }\n\n get value() {\n return this.getAttribute('value') || '';\n }\n\n get placeholder() {\n return this.getAttribute('placeholder') || '';\n }\n\n get isRequired() {\n return this.getAttribute('required') === 'true';\n }\n\n get badgeLabel() {\n return this.getAttribute('badge-label') || '';\n }\n\n get badgeTooltipText() {\n return this.getAttribute('badge-tooltip-text') || '';\n }\n\n init() {\n this.onLabelChange();\n this.onValueOrPlaceholderChange();\n this.onIsRequiredChange();\n this.onBadgeLabelChange();\n this.onBadgeTooltipTextChange();\n this.handleDeleteButtonVisibility();\n\n this.deleteButton.addEventListener('click', () =>\n this.dispatchEvent(new CustomEvent('delete-clicked', { bubbles: true, composed: true }))\n );\n\n this.editButton.addEventListener('click', () =>\n this.dispatchEvent(new CustomEvent('edit-clicked', { bubbles: true, composed: true }))\n );\n }\n\n static get observedAttributes() {\n return [\n 'label',\n 'value',\n 'placeholder',\n 'required',\n 'badge-label',\n 'badge-tooltip-text',\n ].concat(super.observedAttributes);\n }\n\n handleDeleteButtonVisibility() {\n this.deleteButton.classList.toggle('hidden', this.isRequired || !this.value);\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (oldValue === newValue) {\n return;\n }\n\n if (name === 'label') {\n this.onLabelChange();\n } else if (name === 'value' || name === 'placeholder') {\n this.onValueOrPlaceholderChange();\n } else if (name === 'required') {\n this.onIsRequiredChange();\n } else if (name === 'badge-label') {\n this.onBadgeLabelChange();\n } else if (name === 'badge-tooltip-text') {\n this.onBadgeTooltipTextChange();\n }\n\n if (name === 'value' || name === 'required') {\n this.handleDeleteButtonVisibility();\n }\n }\n}\n\nconst { host, textFields, buttons, badge, labelText, valueText, textWrapper } = {\n host: { selector: () => ':host' },\n textFields: { selector: 'descope-text' },\n valueText: { selector: 'descope-text[data-id=\"value-text\"]' },\n labelText: { selector: 'descope-text[data-id=\"label-text\"]' },\n buttons: { selector: 'descope-button' },\n badge: { selector: 'descope-badge' },\n textWrapper: { selector: ' .text-wrapper' },\n};\n\nexport const UserAttributeClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: [\n { ...host, property: 'direction' },\n { ...textFields, property: TextClass.cssVarList.hostDirection },\n { ...buttons, property: ButtonClass.cssVarList.hostDirection },\n { ...badge, property: BadgeClass.cssVarList.hostDirection },\n ],\n labelTextWidth: { ...labelText, property: 'width' },\n valueTextWidth: { ...valueText, property: 'width' },\n badgeMaxWidth: { ...badge, property: 'max-width' },\n itemsGap: [{ property: 'gap' }, { ...textWrapper, property: 'gap' }],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawUserAttribute);\n","import globals from '../globals';\nimport { UserAttributeClass } from '../../components/descope-user-attribute/UserAttributeClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\nexport const vars = UserAttributeClass.cssVarList;\n\nconst userAttribute = {\n [vars.hostDirection]: globalRefs.direction,\n [vars.labelTextWidth]: '150px',\n [vars.valueTextWidth]: '200px',\n [vars.badgeMaxWidth]: '85px',\n [vars.itemsGap]: '16px',\n [vars.hostMinWidth]: '530px',\n _fullWidth: {\n [vars.hostWidth]: '100%',\n },\n};\n\nexport default userAttribute;\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTggMEMzLjYgMCAwIDMuNiAwIDhDMCAxMi40IDMuNiAxNiA4IDE2QzEyLjQgMTYgMTYgMTIuNCAxNiA4QzE2IDMuNiAxMi40IDAgOCAwWk03LjEgMTEuN0wyLjkgNy42TDQuMyA2LjJMNyA4LjlMMTIgNEwxMy40IDUuNEw3LjEgMTEuN1oiIGZpbGw9IiM0Q0FGNTAiLz4KPC9zdmc+Cg==\"","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport greenVIcon from './green-v.svg';\nimport { TextClass } from '../descope-text/TextClass';\nimport { ButtonClass } from '../descope-button/ButtonClass';\nimport { BadgeClass } from '../descope-badge/BadgeClass';\n\nexport const componentName = getComponentName('user-auth-method');\nclass RawUserAuthMethod extends createBaseClass({\n componentName,\n baseSelector: ':host > .root',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n vaadin-icon {\n color: currentcolor;\n }\n\n .root {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n }\n\n .btn-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-grow: 0;\n }\n\n .text-wrapper {\n display: flex;\n align-items: center;\n flex-grow: 1;\n }\n\n descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: initial;\n }\n\n descope-text {\n display: inline-flex;\n }\n\n .fulfilled-indicator {\n width: 1em;\n height: 1em;\n display: flex;\n align-items: center;\n padding-inline-end: 1em;\n }\n\n .hidden {\n display: none;\n }\n\n .hidden-btn {\n width: 0;\n overflow: hidden;\n }\n\n slot[name=\"method-icon\"]{\n display: inline-flex;\n align-items: center;\n }\n </style>\n\n\n <div class=\"root\">\n <div class=\"text-wrapper\">\n <slot name=\"method-icon\"></slot>\n <descope-text st-text-align=\"auto\" data-id=\"label-text\" variant=\"body1\" mode=\"primary\"></descope-text>\n </div>\n\n <div class=\"btn-wrapper\">\n <descope-button size=\"sm\" variant=\"link\" mode=\"primary\">\n <slot name=\"button-icon\"></slot>\n </descope-button>\n <div class=\"fulfilled-indicator\">\n <vaadin-icon src=${greenVIcon}></vaadin-icon>\n </div>\n <descope-button class=\"hidden-btn\" size=\"sm\" variant=\"link\" mode=\"primary\"></descope-button>\n </div>\n </div>\n\t\t`;\n\n this.button = this.shadowRoot.querySelector('descope-button');\n this.fulfilledIndicator = this.shadowRoot.querySelector('.fulfilled-indicator');\n this.labelText = this.shadowRoot.querySelector('descope-text[data-id=\"label-text\"]');\n }\n\n onLabelChange() {\n this.labelText.innerText = this.label;\n this.labelText.setAttribute('title', this.label);\n }\n\n onButtonLabelChange() {\n let textSpanEle = this.button.querySelector('span');\n\n if (this.buttonLabel) {\n if (!textSpanEle) {\n textSpanEle = document.createElement('span');\n this.button.appendChild(textSpanEle);\n }\n textSpanEle.innerText = this.buttonLabel;\n } else if (textSpanEle) {\n this.button.removeChild(textSpanEle);\n }\n }\n\n onFulfilledChange() {\n this.button.classList.toggle('hidden', this.isFulfilled);\n this.fulfilledIndicator.classList.toggle('hidden', !this.isFulfilled);\n }\n\n get label() {\n return this.getAttribute('label') || '';\n }\n\n get buttonLabel() {\n return this.getAttribute('button-label') || '';\n }\n\n get isFulfilled() {\n return this.getAttribute('fulfilled') === 'true';\n }\n\n init() {\n this.onLabelChange();\n this.onButtonLabelChange();\n this.onFulfilledChange();\n\n this.button.addEventListener('click', () =>\n this.dispatchEvent(new CustomEvent('button-clicked', { bubbles: true, composed: true }))\n );\n }\n\n static get observedAttributes() {\n return ['label', 'fulfilled'].concat(super.observedAttributes);\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n if (oldValue === newValue) {\n return;\n }\n\n if (name === 'label') {\n this.onLabelChange();\n } else if (name === 'fulfilled') {\n this.onFulfilledChange();\n } else if (name === 'button-label') {\n this.onButtonLabelChange();\n }\n }\n}\n\nconst { host, textField, buttons, badge, textWrapper, methodIconSlot } = {\n host: { selector: () => ':host' },\n textField: { selector: 'descope-text' },\n buttons: { selector: 'descope-button' },\n badge: { selector: 'descope-badge' },\n textWrapper: { selector: ' .text-wrapper' },\n methodIconSlot: { selector: 'slot[name=\"method-icon\"]' },\n};\n\nexport const UserAuthMethodClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: [\n { ...host, property: 'direction' },\n { ...textField, property: TextClass.cssVarList.hostDirection },\n { ...buttons, property: ButtonClass.cssVarList.hostDirection },\n { ...badge, property: BadgeClass.cssVarList.hostDirection },\n ],\n labelTextWidth: { ...textField, property: 'width' },\n itemsGap: [{ property: 'gap' }, { ...textWrapper, property: 'gap' }],\n iconSize: [\n { ...methodIconSlot, property: 'width' },\n { ...methodIconSlot, property: 'height' },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawUserAuthMethod);\n","import globals from '../globals';\nimport { UserAuthMethodClass } from '../../components/descope-user-auth-method/UserAuthMethodClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\nexport const vars = UserAuthMethodClass.cssVarList;\n\nconst userAuthMethod = {\n [vars.hostDirection]: globalRefs.direction,\n [vars.labelTextWidth]: '200px',\n [vars.itemsGap]: '16px',\n [vars.hostMinWidth]: '530px',\n [vars.iconSize]: '24px',\n _fullWidth: {\n [vars.hostWidth]: '100%',\n },\n};\n\nexport default userAuthMethod;\n","import { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport {\n getComponentName,\n forwardAttrs,\n observeAttributes,\n} from '../../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('saml-group-mappings-internal');\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: '' });\n\nclass SamlGroupMappingsInternal extends BaseInputClass {\n static get observedAttributes() {\n return ['invalid'].concat(BaseInputClass.observedAttributes || []);\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n <descope-text-field variant=\"body2\" bordered=\"true\"></descope-text-field>\n <descope-mappings-field></descope-mappings-field>\n `;\n\n this.groupInputElement = this.querySelector('descope-text-field');\n this.mappingsElement = this.querySelector('descope-mappings-field');\n }\n\n resetInvalidIndication() {\n this.removeAttribute('invalid');\n }\n\n handleMappingsInvalidChange(changedAttributes) {\n if (changedAttributes.includes('invalid')) {\n if (!this.mappingsElement.hasAttribute('invalid')) {\n this.resetInvalidIndication();\n }\n }\n }\n\n initFocusHandler() {\n // This event listener needs to be placed before the super.init() call\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) {\n const focusedElement = this.mappingsElement.checkValidity()\n ? this.groupInputElement\n : this.mappingsElement;\n focusedElement.focus();\n }\n });\n }\n\n init() {\n // This needs to be placed before the super.init() call to work\n this.initFocusHandler();\n\n super.init?.();\n\n forwardAttrs(this, this.groupInputElement, {\n mapAttrs: { 'label-group': 'label' },\n includeAttrs: ['size', 'label-group', 'readonly', 'disabled'],\n });\n\n forwardAttrs(this, this.mappingsElement, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'readonly',\n 'disabled',\n 'data-errormessage-pattern-mismatch',\n ],\n });\n\n // Observing the invalid attribute of the mappings field to reset the invalid state for this component.\n // When an invalid item turns valid, the mappings field will remove the invalid attribute, and at this component\n // level, we need to remove the invalid attribute as well to be able to mark the component as invalid the next time\n observeAttributes(this.mappingsElement, this.handleMappingsInvalidChange.bind(this), {\n includeAttrs: ['invalid'],\n });\n }\n\n get value() {\n return {\n group: this.groupInputElement.value,\n mappings: this.mappingsElement.value,\n };\n }\n\n set value(value) {\n if (value?.group && typeof value.group === 'string') {\n this.groupInputElement.value = value.group;\n }\n if (Array.isArray(value?.mappings)) {\n this.mappingsElement.value = value.mappings;\n }\n }\n\n getValidity() {\n if (!this.groupInputElement.checkValidity()) {\n return this.groupInputElement.validity;\n }\n if (!this.mappingsElement.checkValidity()) {\n return this.mappingsElement.validity;\n }\n\n return {};\n }\n\n #handleInvalidState(isInvalid) {\n if (isInvalid) {\n if (!this.groupInputElement.checkValidity()) {\n this.groupInputElement.setAttribute('invalid', 'true');\n return;\n }\n\n if (!this.mappingsElement.checkValidity()) {\n this.mappingsElement.setAttribute('invalid', 'true');\n }\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (attrName === 'invalid') {\n this.#handleInvalidState(newValue === 'true');\n }\n }\n}\n\nexport default SamlGroupMappingsInternal;\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../../mixins';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName, syncAttrs } from '../../../helpers/componentHelpers';\nimport { componentName as descopeInternalComponentName } from './descope-saml-group-mappings-internal/SamlGroupMappingsInternal';\n\nexport const componentName = getComponentName('saml-group-mappings');\n\nconst customMixin = (superclass) =>\n class SamlGroupMappingsMixinClass extends superclass {\n init() {\n super.init?.();\n\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n tabindex=\"-1\"\n ></${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'label-group',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'readonly',\n 'disabled',\n ],\n });\n\n syncAttrs(this, this.inputElement, { includeAttrs: ['invalid'] });\n }\n };\n\nconst { host, groupInput } = {\n host: { selector: () => ':host' },\n groupInput: { selector: 'descope-text-field' },\n};\n\nexport const SamlGroupMappingsClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n groupNameInputMarginBottom: { ...groupInput, property: 'margin-bottom' },\n },\n }),\n draggableMixin,\n proxyInputMixin({\n proxyProps: ['value', 'selectionStart'],\n inputEvent: 'input',\n triggerValidationEvents: ['mapping-item-added', 'mapping-item-removed'],\n proxyParentValidation: true,\n }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-custom-field',\n style: () => `\n :host {\n display: inline-flex;\n max-width: 100%;\n direction: ltr;\n }\n\n vaadin-custom-field {\n line-height: unset;\n width: 100%;\n }\n\n descope-text-field {\n width: auto;\n }\n\n descope-mappings-field {\n display: block;\n }\n `,\n excludeAttrsSync: [\n 'tabindex',\n 'label-group',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'error-message',\n ],\n componentName,\n })\n);\n\nexport default SamlGroupMappingsClass;\n","import { SamlGroupMappingsClass } from '../../components/mapping-fields/descope-saml-group-mappings/SamlGroupMappingsClass';\nimport { refs } from './inputWrapper';\n\nconst vars = SamlGroupMappingsClass.cssVarList;\n\nexport const samlGroupMappings = {\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.groupNameInputMarginBottom]: '1em',\n};\n\nexport default samlGroupMappings;\nexport { vars };\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { PolicyValidationClass } from '../../components/descope-policy-validation/PolicyValidationClass';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\nconst vars = PolicyValidationClass.cssVarList;\n\nconst policyValidation = {\n [vars.fontFamily]: refs.fontFamily,\n [vars.fontSize]: refs.labelFontSize,\n [vars.textColor]: refs.labelTextColor,\n [vars.borderWidth]: refs.borderWidth,\n [vars.borderStyle]: refs.borderStyle,\n [vars.borderColor]: refs.borderColor,\n [vars.borderRadius]: globalRefs.radius.sm,\n [vars.backgroundColor]: 'none',\n [vars.padding]: '0px',\n [vars.labelMargin]: globalRefs.spacing.sm,\n [vars.itemsSpacing]: globalRefs.spacing.lg,\n [vars.itemSymbolDefault]: \"'\\\\2022'\", // \"•\"\n [vars.itemSymbolSuccess]: \"'\\\\2713'\", // \"✓\"\n [vars.itemSymbolError]: \"'\\\\2A09'\", // \"⨉\"\n [vars.itemSymbolSuccessColor]: globalRefs.colors.success.main,\n [vars.itemSymbolErrorColor]: globalRefs.colors.error.main,\n};\n\nexport default policyValidation;\nexport { vars };\n","import { IconClass } from '../../components/descope-icon/IconClass';\n\nexport const vars = IconClass.cssVarList;\n\nconst icon = {};\n\nexport default icon;\n","export const decode = (input) => {\n const txt = document.createElement('textarea');\n txt.innerHTML = input;\n return txt.value;\n};\n\nexport const tpl = (input, inline) => {\n return inline ? input : `<pre>${input}</pre>`;\n};\n","import hljs from 'highlight.js';\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { decode, tpl } from './helpers';\n\nexport const componentName = getComponentName('code-snippet');\n\nclass CodeSnippet extends createBaseClass({ componentName, baseSelector: ':host > code' }) {\n static get observedAttributes() {\n return ['lang', 'inline'];\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <style>\n :host {\n display: inline-block;\n width: 100%;\n }\n code {\n display: block;\n width: 100%;\n min-height: 1em;\n overflow-x: scroll;\n overflow-y: scroll;\n }\n pre {\n margin: 0;\n }\n </style>\n <code class=\"hljs\"></code>\n `;\n }\n\n init() {\n super.init?.();\n\n this.lang = this.getAttribute('lang');\n this.isInline = this.getAttribute('inline') === 'true';\n\n observeChildren(this, this.#renderSnippet.bind(this));\n }\n\n get contentNode() {\n return this.shadowRoot.querySelector(this.baseSelector);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'inline') {\n this.isInline = newValue;\n }\n\n if (attrName === 'lang') {\n this.lang = newValue;\n }\n\n this.#renderSnippet();\n }\n }\n\n #renderSnippet() {\n const sanitized = decode(this.textContent);\n const language = this.lang;\n\n if (!language) {\n this.contentNode.textContent = sanitized;\n return;\n }\n\n const { value: highlighted } = hljs.highlight(sanitized, { language });\n\n this.contentNode.innerHTML = tpl(highlighted, this.isInline);\n }\n}\n\nconst {\n root,\n docTag,\n keyword,\n metaKeyword,\n templateTag,\n templateVariable,\n type,\n variableLanguage,\n title,\n titleClass,\n titleClassInherited,\n titleFunction,\n attr,\n attribute,\n literal,\n meta,\n number,\n operator,\n variable,\n selectorAttr,\n selectorClass,\n selectorId,\n regexp,\n string,\n metaString,\n builtIn,\n symbol,\n comment,\n code,\n formula,\n name,\n quote,\n selectorTag,\n selectorPseudo,\n subst,\n section,\n bullet,\n emphasis,\n strong,\n addition,\n deletion,\n charEscape,\n link,\n params,\n property,\n punctuation,\n tag,\n} = {\n root: { selector: () => '.hljs' },\n docTag: { selector: () => '.hljs-doctag' },\n keyword: { selector: () => '.hljs-keyword' },\n metaKeyword: { selector: () => '.hljs-meta .hljs-keyword' },\n templateTag: { selector: () => '.hljs-template-tag' },\n templateVariable: { selector: () => '.hljs-template-variable' },\n type: { selector: () => '.hljs-type' },\n variableLanguage: { selector: () => '.hljs-variable.language' },\n title: { selector: () => '.hljs-title' },\n titleClass: { selector: () => '.hljs-title.class_' },\n titleClassInherited: { selector: () => '.hljs-title.class_.inherited__' },\n titleFunction: { selector: () => '.hljs-title.function_' },\n attr: { selector: () => '.hljs-attr' },\n attribute: { selector: () => '.hljs-attribute' },\n literal: { selector: () => '.hljs-literal' },\n meta: { selector: () => '.hljs-meta' },\n number: { selector: () => '.hljs-number' },\n operator: { selector: () => '.hljs-operator' },\n variable: { selector: () => '.hljs-variable' },\n selectorAttr: { selector: () => '.hljs-selector-attr' },\n selectorClass: { selector: () => '.hljs-selector-class' },\n selectorId: { selector: () => '.hljs-selector-id' },\n regexp: { selector: () => '.hljs-regexp' },\n string: { selector: () => '.hljs-string' },\n metaString: { selector: () => '.hljs-meta .hljs-string' },\n builtIn: { selector: () => '.hljs-built_in' },\n symbol: { selector: () => '.hljs-symbol' },\n comment: { selector: () => '.hljs-comment' },\n code: { selector: () => '.hljs-code' },\n formula: { selector: () => '.hljs-formula' },\n name: { selector: () => '.hljs-name' },\n quote: { selector: () => '.hljs-quote' },\n selectorTag: { selector: () => '.hljs-selector-tag' },\n selectorPseudo: { selector: () => '.hljs-selector-pseudo' },\n subst: { selector: () => '.hljs-subst' },\n section: { selector: () => '.hljs-section' },\n bullet: { selector: () => '.hljs-bullet' },\n emphasis: { selector: () => '.hljs-emphasis' },\n strong: { selector: () => '.hljs-strong' },\n addition: { selector: () => '.hljs-addition' },\n deletion: { selector: () => '.hljs-deletion' },\n charEscape: { selector: () => '.hljs-char.escape' },\n link: { selector: () => '.hljs-link' },\n params: { selector: () => '.hljs-params' },\n property: { selector: () => '.hljs-property' },\n punctuation: { selector: () => '.hljs-punctuation' },\n tag: { selector: () => '.hljs-tag' },\n};\n\nexport const CodeSnippetClass = compose(\n createStyleMixin({\n mappings: {\n rootBgColor: { ...root, property: 'background-color' },\n rootTextColor: { ...root, property: 'color' },\n docTagTextColor: { ...docTag, property: 'color' },\n keywordTextColor: { ...keyword, property: 'color' },\n metaKeywordTextColor: { ...metaKeyword, property: 'color' },\n templateTagTextColor: { ...templateTag, property: 'color' },\n templateVariableTextColor: { ...templateVariable, property: 'color' },\n typeTextColor: { ...type, property: 'color' },\n variableLanguageTextColor: { ...variableLanguage, property: 'color' },\n titleTextColor: { ...title, property: 'color' },\n titleClassTextColor: { ...titleClass, property: 'color' },\n titleClassInheritedTextColor: { ...titleClassInherited, property: 'color' },\n titleFunctionTextColor: { ...titleFunction, property: 'color' },\n attrTextColor: { ...attr, property: 'color' },\n attributeTextColor: { ...attribute, property: 'color' },\n literalTextColor: { ...literal, property: 'color' },\n metaTextColor: { ...meta, property: 'color' },\n numberTextColor: { ...number, property: 'color' },\n operatorTextColor: { ...operator, property: 'color' },\n variableTextColor: { ...variable, property: 'color' },\n selectorAttrTextColor: { ...selectorAttr, property: 'color' },\n selectorClassTextColor: { ...selectorClass, property: 'color' },\n selectorIdTextColor: { ...selectorId, property: 'color' },\n regexpTextColor: { ...regexp, property: 'color' },\n stringTextColor: { ...string, property: 'color' },\n metaStringTextColor: { ...metaString, property: 'color' },\n builtInTextColor: { ...builtIn, property: 'color' },\n symbolTextColor: { ...symbol, property: 'color' },\n commentTextColor: { ...comment, property: 'color' },\n codeTextColor: { ...code, property: 'color' },\n formulaTextColor: { ...formula, property: 'color' },\n nameTextColor: { ...name, property: 'color' },\n quoteTextColor: { ...quote, property: 'color' },\n selectorTagTextColor: { ...selectorTag, property: 'color' },\n selectorPseudoTextColor: { ...selectorPseudo, property: 'color' },\n substTextColor: { ...subst, property: 'color' },\n sectionTextColor: { ...section, property: 'color' },\n bulletTextColor: { ...bullet, property: 'color' },\n emphasisTextColor: { ...emphasis, property: 'color' },\n strongTextColor: { ...strong, property: 'color' },\n additionTextColor: { ...addition, property: 'color' },\n additionBgColor: { ...addition, property: 'background-color' },\n deletionTextColor: { ...deletion, property: 'color' },\n deletionBgColor: { ...deletion, property: 'background-color' },\n charEscapeTextColor: { ...charEscape, property: 'color' },\n linkTextColor: { ...link, property: 'color' },\n paramsTextColor: { ...params, property: 'color' },\n propertyTextColor: { ...property, property: 'color' },\n punctuationTextColor: { ...punctuation, property: 'color' },\n tagTextColor: { ...tag, property: 'color' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(CodeSnippet);\n","import globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { CodeSnippetClass } from '../../components/descope-code-snippet/CodeSnippetClass';\n\nconst globalRefs = getThemeRefs(globals);\n\nconst vars = CodeSnippetClass.cssVarList;\n\nconst light = {\n color1: '#fa0',\n color2: '#d73a49',\n color3: '#6f42c1',\n color4: '#005cc5',\n color5: '#e36209',\n color6: '#6a737d',\n color7: '#22863a',\n color8: '#24292e',\n color9: '#735c0f',\n color10: '#f0fff4',\n color11: '#b31d28',\n color12: '#ffeef0',\n color13: '#032f62',\n};\n\nconst dark = {\n color1: '#c9d1d9',\n color2: '#ff7b72',\n color3: '#d2a8ff',\n color4: '#79c0ff',\n color5: '#ffa657',\n color6: '#8b949e',\n color7: '#7ee787',\n color8: '#c9d1d9',\n color9: '#735c0f',\n color10: '#f0fff4',\n color11: '#67060c',\n color12: '#ffeef0',\n color13: '#a5d6ff',\n};\n\nconst CodeSnippet = {\n [vars.rootBgColor]: globalRefs.colors.surface.main,\n [vars.rootTextColor]: globalRefs.colors.surface.contrast,\n [vars.docTagTextColor]: light.color2,\n [vars.keywordTextColor]: light.color2,\n [vars.metaKeywordTextColor]: light.color2,\n [vars.templateTagTextColor]: light.color2,\n [vars.templateVariableTextColor]: light.color2,\n [vars.typeTextColor]: light.color2,\n [vars.variableLanguageTextColor]: light.color2,\n [vars.titleTextColor]: light.color3,\n [vars.titleClassTextColor]: light.color3,\n [vars.titleClassInheritedTextColor]: light.color3,\n [vars.titleFunctionTextColor]: light.color3,\n [vars.attrTextColor]: light.color4,\n [vars.attributeTextColor]: light.color4,\n [vars.literalTextColor]: light.color4,\n [vars.metaTextColor]: light.color4,\n [vars.numberTextColor]: light.color4,\n [vars.operatorTextColor]: light.color4,\n [vars.variableTextColor]: light.color4,\n [vars.selectorAttrTextColor]: light.color4,\n [vars.selectorClassTextColor]: light.color4,\n [vars.selectorIdTextColor]: light.color4,\n [vars.regexpTextColor]: light.color13,\n [vars.stringTextColor]: light.color13,\n [vars.metaStringTextColor]: light.color13,\n [vars.builtInTextColor]: light.color5,\n [vars.symbolTextColor]: light.color5,\n [vars.commentTextColor]: light.color6,\n [vars.codeTextColor]: light.color6,\n [vars.formulaTextColor]: light.color6,\n [vars.nameTextColor]: light.color7,\n [vars.quoteTextColor]: light.color7,\n [vars.selectorTagTextColor]: light.color7,\n [vars.selectorPseudoTextColor]: light.color7,\n [vars.substTextColor]: light.color8,\n [vars.sectionTextColor]: light.color4,\n [vars.bulletTextColor]: light.color9,\n [vars.emphasisTextColor]: light.color8,\n [vars.strongTextColor]: light.color8,\n [vars.additionTextColor]: light.color7,\n [vars.additionBgColor]: light.color10,\n [vars.deletionTextColor]: light.color2,\n [vars.deletionBgColor]: light.color10,\n /* purposely ignored */\n // [vars.charEscapeTextColor]: '',\n // [vars.linkTextColor]: '',\n // [vars.paramsTextColor]: '',\n // [vars.propertyTextColor]: '',\n // [vars.punctuationTextColor]: '',\n // [vars.tagTextColor ]: '',\n};\n\nexport const codeSnippetDarkThemeOverrides = {\n codeSnippet: {\n [vars.rootBgColor]: globalRefs.colors.surface.main,\n [vars.rootTextColor]: globalRefs.colors.surface.contrast,\n [vars.docTagTextColor]: dark.color2,\n [vars.keywordTextColor]: dark.color2,\n [vars.metaKeywordTextColor]: dark.color2,\n [vars.templateTagTextColor]: dark.color2,\n [vars.templateVariableTextColor]: dark.color2,\n [vars.typeTextColor]: dark.color2,\n [vars.variableLanguageTextColor]: dark.color2,\n [vars.titleTextColor]: dark.color3,\n [vars.titleClassTextColor]: dark.color3,\n [vars.titleClassInheritedTextColor]: dark.color3,\n [vars.titleFunctionTextColor]: dark.color3,\n [vars.attrTextColor]: dark.color4,\n [vars.attributeTextColor]: dark.color4,\n [vars.literalTextColor]: dark.color4,\n [vars.metaTextColor]: dark.color4,\n [vars.numberTextColor]: dark.color4,\n [vars.operatorTextColor]: dark.color4,\n [vars.variableTextColor]: dark.color4,\n [vars.selectorAttrTextColor]: dark.color4,\n [vars.selectorClassTextColor]: dark.color4,\n [vars.selectorIdTextColor]: dark.color4,\n [vars.regexpTextColor]: dark.color13,\n [vars.stringTextColor]: dark.color13,\n [vars.metaStringTextColor]: dark.color13,\n [vars.builtInTextColor]: dark.color5,\n [vars.symbolTextColor]: dark.color5,\n [vars.commentTextColor]: dark.color6,\n [vars.codeTextColor]: dark.color6,\n [vars.formulaTextColor]: dark.color6,\n [vars.nameTextColor]: dark.color7,\n [vars.quoteTextColor]: dark.color7,\n [vars.selectorTagTextColor]: dark.color7,\n [vars.selectorPseudoTextColor]: dark.color7,\n [vars.substTextColor]: dark.color8,\n [vars.sectionTextColor]: dark.color4,\n [vars.bulletTextColor]: dark.color9,\n [vars.emphasisTextColor]: dark.color8,\n [vars.strongTextColor]: dark.color8,\n [vars.additionTextColor]: dark.color7,\n [vars.additionBgColor]: dark.color10,\n [vars.deletionTextColor]: dark.color2,\n [vars.deletionBgColor]: dark.color10,\n },\n};\n\nexport default CodeSnippet;\nexport { vars };\n","import { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n proxyInputMixin,\n} from '../../mixins';\n\nexport const componentName = getComponentName('radio-button');\n\nconst customMixin = (superclass) =>\n class CustomMixin extends superclass {\n constructor() {\n super();\n\n this.baseElement.checkValidity = () => {};\n }\n\n init() {\n // we are forwarding vaadin checked-changed event\n this.baseElement.addEventListener('checked-changed', (e) => {\n this.dispatchEvent(\n new CustomEvent(\n 'checked-changed',\n { detail: e.detail },\n { bubbles: true, composed: true }\n )\n );\n });\n\n super.init?.();\n\n observeChildren(this, this.renderLabel.bind(this));\n }\n\n renderLabel() {\n this.baseElement.setAttribute('label', this.textContent);\n }\n\n get value() {\n return this.getAttribute('value');\n }\n };\n\nexport const RadioButtonClass = compose(\n createStyleMixin({\n mappings: {\n cursor: [{}, { selector: 'label' }],\n fontSize: [{ selector: 'label' }, {}],\n labelTextColor: { selector: 'label', property: 'color' },\n fontFamily: { selector: 'label' },\n radioSize: [\n { selector: '::part(radio)', property: 'height' },\n { selector: '::part(radio)', property: 'width' },\n ],\n radioBackgroundColor: { selector: '::part(radio)', property: 'background-color' },\n radioMargin: { selector: '::part(radio)', property: 'margin' },\n radioCheckedSize: { selector: '::part(radio)::after', property: 'border-width' },\n radioCheckedColor: { selector: '::part(radio)::after', property: 'border-color' },\n radioBorderColor: { selector: '::part(radio)', property: 'border-color', fallback: 'none' },\n radioBorderWidth: { selector: '::part(radio)', property: 'border-width', fallback: 0 },\n radioBorderStyle: { selector: '::part(radio)', property: 'border-style', fallback: 'solid' },\n },\n }),\n proxyInputMixin({ proxyProps: ['setSelectionRange'] }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [''],\n wrappedEleName: 'vaadin-radio-button',\n excludeAttrsSync: ['tabindex', 'data'],\n includeForwardProps: ['checked', 'name', 'disabled'],\n componentName,\n })\n);\n","import { compose } from '../../helpers';\nimport {\n forwardAttrs,\n getComponentName,\n observeAttributes,\n observeChildren,\n} from '../../helpers/componentHelpers';\nimport { resetInputLabelPosition } from '../../helpers/themeHelpers/resetHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n proxyInputMixin,\n} from '../../mixins';\nimport textFieldMappings from '../descope-text-field/textFieldMappings';\nimport { componentName as childNodeName, RadioButtonClass } from './RadioButtonClass';\n\nexport const componentName = getComponentName('radio-group');\n\nconst RadioGroupMixin = (superclass) =>\n class RadioGroupMixinClass extends superclass {\n // eslint-disable-next-line class-methods-use-this\n #renderItem = ({ value, label }) =>\n `<descope-radio-button value=\"${value}\">${label}</descope-radio-button>`;\n\n #data;\n\n constructor() {\n super();\n\n // we are overriding vaadin children getter so it will run on our custom elements\n Object.defineProperty(this.baseElement, 'children', {\n get: () => this.querySelectorAll(childNodeName),\n });\n\n // we are overriding vaadin __filterRadioButtons so it will run on our custom elements\n this.baseElement.__filterRadioButtons = (nodes) => {\n return nodes.filter((node) => node.localName === childNodeName);\n };\n\n // vaadin radio group missing some input properties\n this.baseElement.setCustomValidity = () => {};\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n get size() {\n return this.getAttribute('size');\n }\n\n get data() {\n if (this.#data) return this.#data;\n\n const dataAttr = this.getAttribute('data');\n\n if (dataAttr) {\n try {\n const data = JSON.parse(dataAttr);\n if (this.isValidDataType(data)) {\n return data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"data\" - ', e.message);\n }\n }\n\n return [];\n }\n\n set data(data) {\n if (this.isValidDataType(data)) {\n this.#data = data;\n this.renderItems();\n }\n }\n\n get defaultValue() {\n return this.getAttribute('default-value');\n }\n\n // eslint-disable-next-line class-methods-use-this\n isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data must be an array, received:', data);\n }\n\n return isValid;\n }\n\n getItemsTemplate() {\n return this.data?.reduce?.((acc, item) => acc + (this.#renderItem?.(item || {}) || ''), '');\n }\n\n renderItems() {\n const template = this.getItemsTemplate();\n if (template) this.innerHTML = template;\n }\n\n init() {\n super.init?.();\n\n this.inputElement = this.baseElement;\n\n this.renderItems();\n\n observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });\n\n Object.defineProperty(this.baseElement, 'validity', {\n get: () => {\n return { valueMissing: !this.baseElement.checkValidity() };\n },\n });\n\n forwardAttrs(this, this.baseElement, {\n includeAttrs: ['layout'],\n mapAttrs: { layout: 'theme' },\n });\n\n setTimeout(() => {\n if (this.defaultValue) {\n this.value = this.defaultValue;\n }\n });\n\n // we want new items to get the size\n observeChildren(this, ({ addedNodes }) => {\n addedNodes.forEach((node) => {\n node.setAttribute('size', this.size);\n });\n });\n\n observeAttributes(\n this,\n () => {\n this.items.forEach((item) => {\n item.setAttribute('size', this.size);\n });\n },\n {\n includeAttrs: ['size'],\n }\n );\n }\n };\n\nexport const RadioGroupClass = compose(\n createStyleMixin({\n mappings: {\n ...textFieldMappings,\n buttonsSpacing: { selector: '::part(group-field)', property: 'justify-content' },\n buttonsRowGap: { selector: '::part(group-field)', property: 'row-gap' },\n buttonsColumnGap: { selector: '::part(group-field)', property: 'column-gap' },\n itemsLabelColor: {\n selector: () => `::slotted(${RadioButtonClass.componentName})`,\n property: RadioButtonClass.cssVarList.labelTextColor,\n },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['setSelectionRange'] }),\n componentNameValidationMixin,\n RadioGroupMixin\n)(\n createProxy({\n slots: ['', 'prefix'],\n wrappedEleName: 'vaadin-radio-group',\n style: () => `\n :host {\n display: inline-block;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n vaadin-radio-group {\n padding: 0;\n width: 100%;\n }\n\n ${resetInputLabelPosition('vaadin-radio-group')}\n `,\n\n excludeAttrsSync: ['tabindex', 'size', 'data', 'direction'],\n componentName,\n includeForwardProps: ['value'],\n })\n);\n","import { RadioGroupClass } from '../../../components/descope-radio-group/RadioGroupClass';\nimport { getThemeRefs } from '../../../helpers/themeHelpers';\nimport globals from '../../globals';\nimport { refs } from '../inputWrapper';\n\nconst vars = RadioGroupClass.cssVarList;\nconst globalRefs = getThemeRefs(globals);\n\nexport const radioGroup = {\n [vars.buttonsRowGap]: '9px',\n [vars.hostWidth]: refs.width,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.helperTextColor]: refs.helperTextColor,\n [vars.itemsLabelColor]: globalRefs.colors.surface.contrast,\n\n textAlign: {\n right: { [vars.inputTextAlign]: 'right' },\n left: { [vars.inputTextAlign]: 'left' },\n center: { [vars.inputTextAlign]: 'center' },\n },\n\n _fullWidth: {\n [vars.buttonsSpacing]: 'space-between',\n },\n\n _disabled: {\n [vars.itemsLabelColor]: globalRefs.colors.surface.light,\n },\n};\n\nexport default radioGroup;\nexport { vars };\n","import { RadioButtonClass } from '../../../components/descope-radio-group/RadioButtonClass';\nimport { getThemeRefs } from '../../../helpers/themeHelpers';\nimport globals from '../../globals';\nimport { refs } from '../inputWrapper';\n\nconst vars = RadioButtonClass.cssVarList;\nconst globalRefs = getThemeRefs(globals);\n\nexport const radioButton = {\n [vars.fontFamily]: refs.fontFamily,\n [vars.radioSize]: 'calc(1em + 6px)',\n [vars.radioMargin]: 'auto 4px',\n [vars.radioCheckedSize]: `calc(var(${vars.radioSize})/5)`,\n [vars.radioCheckedColor]: globalRefs.colors.surface.light,\n [vars.radioBackgroundColor]: globalRefs.colors.surface.light,\n [vars.radioBorderColor]: 'none',\n [vars.radioBorderWidth]: 0,\n\n _checked: {\n [vars.radioBackgroundColor]: globalRefs.colors.surface.contrast,\n },\n\n _hover: {\n cursor: 'pointer',\n },\n\n size: {\n xs: {\n [vars.fontSize]: '12px',\n },\n sm: {\n [vars.fontSize]: '14px',\n },\n md: {\n [vars.fontSize]: '16px',\n },\n lg: {\n [vars.fontSize]: '18px',\n },\n },\n};\n\nexport default radioButton;\nexport { vars };\n","export const SUPPORTED_FORMATS = ['MM/DD/YYYY', 'DD/MM/YYYY', 'YYYY/MM/DD'];\n\nexport const DEFAULT_FORMAT = SUPPORTED_FORMATS[0];\n\nexport const NATIVE_FORMAT = 'YYYY-MM-DD';\n\nexport const YEARS_RANGE = 100;\n\nexport const DIVIDER = '/';\n\nexport const COUNTER_SUPPORTED_KEYS = [\n 'Backspace',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowDown',\n 'ArrowUp',\n 'PageUp',\n 'PageDown',\n 'Meta',\n];\n\nexport const months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nexport const weekdays = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n];\n\nexport const counterConfig = {\n MONTH: { id: 'month', min: 1, max: 12, placeholder: 'MM', count: 5, shiftCount: 10 },\n DAY: { id: 'day', min: 1, max: 31, placeholder: 'DD', count: 5, shiftCount: 10 },\n YEAR: { id: 'year', min: 0, max: 9999, placeholder: 'YYYY', count: 10, shiftCount: 100 },\n};\n\nexport const BUTTON_LABEL_DONE = 'Done';\nexport const BUTTON_LABEL_CANCEL = 'Cancel';\nexport const CALENDAR_LABEL_TODAY = 'Today';\n","import { COUNTER_SUPPORTED_KEYS } from './consts';\n\nexport const isValidTimestamp = (val) => !Number.isNaN(Number(val));\n\nexport const isNumber = (val) => !Number.isNaN(Number(val));\n\nexport const getTimestampParts = (timestamp) => {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n return [year, month, day];\n};\n\nexport const formatTimestamp = (timestamp, format) => {\n const [year, month, day] = getTimestampParts(timestamp);\n\n const parts = {\n DD: String(day).padStart(2, '0'),\n MM: String(month).padStart(2, '0'),\n YYYY: String(year),\n };\n\n return format.replace(/DD|MM|YYYY/g, (match) => parts[match]);\n};\n\n// polyfill for safari Date API (which doesn't accept \"YYYY-MM-DD\" string as value)\nexport const newDate = (date) => {\n if (typeof date === 'number') {\n return new Date(date);\n }\n if (typeof date === 'string') {\n return new Date(date.replace(/-/g, '/'));\n }\n return new Date();\n};\n\nexport const isSupportedKey = (key) => COUNTER_SUPPORTED_KEYS.includes(key);\n\nexport const getKeyMap = (key, shiftKey, metaKey) => {\n return {\n refresh: metaKey && key.toLowerCase() === 'r',\n tab: key === 'Tab',\n shiftTab: shiftKey && key === 'Tab',\n backspace: key === 'Backspace',\n arrowUp: !shiftKey && key === 'ArrowUp',\n arrowDown: !shiftKey && key === 'ArrowDown',\n arrowLeft: !shiftKey && key === 'ArrowLeft',\n arrowRight: !shiftKey && key === 'ArrowRight',\n pageUp: !shiftKey && key === 'PageUp',\n pageDown: !shiftKey && key === 'PageDown',\n shiftArrowUp: shiftKey && key === 'ArrowUp',\n shiftArrowDown: shiftKey && key === 'ArrowDown',\n shiftPageUp: shiftKey && key === 'PageUp',\n shiftPageDown: shiftKey && key === 'PageDown',\n };\n};\n\nexport const getCurrentTime = () => newDate().getTime();\nexport const getFullYear = (timestamp) => newDate(timestamp).getFullYear().toString();\nexport const getMonth = (timestamp) => (newDate(timestamp).getMonth() + 1).toString();\nexport const getCurrentDay = () => newDate().getDate();\nexport const getCurrentYear = () => newDate().getFullYear().toString();\n\n// Vaadin uses \"constructed stylesheet\" to hide the host in dialog components.\n// To override it, we need to push an overriding constructed stylesheet to the shadow DOM\n// opened issue in vaadin: https://github.com/vaadin/web-components/issues/7979\nexport const overrideConstructedStylesheet = (ele) => {\n const cs = new CSSStyleSheet();\n cs.insertRule(':host{display:block!important;}');\n ele?.shadowRoot?.adoptedStyleSheets?.push(cs);\n};\n","export const calendarIcon = `\n<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 5H15V4.50468C15 4.21404 15.226 4 15.5047 4H16.4953C16.786 4 17 4.22595 17 4.50468V5H18.7568C19.3028 5 19.75 5.44725 19.75 5.99896V7.00104C19.75 7.55734 19.3053 8 18.7568 8H5.24317C4.69717 8 4.25 7.55275 4.25 7.00104V5.99896C4.25 5.44266 4.69466 5 5.24317 5H7V4.50468C7 4.21404 7.22596 4 7.50468 4H8.49532C8.78596 4 9 4.22595 9 4.50468V5ZM5.50468 9H6.49532C6.78596 9 7 9.22596 7 9.50468V10.4953C7 10.786 6.77404 11 6.49532 11H5.50468C5.21404 11 5 10.774 5 10.4953V9.50468C5 9.21404 5.22595 9 5.50468 9ZM8.50468 9H9.49532C9.78596 9 10 9.22596 10 9.50468V10.4953C10 10.786 9.77404 11 9.49532 11H8.50468C8.21404 11 8 10.774 8 10.4953V9.50468C8 9.21404 8.22596 9 8.50468 9ZM11.5047 9H12.4953C12.786 9 13 9.22596 13 9.50468V10.4953C13 10.786 12.774 11 12.4953 11H11.5047C11.214 11 11 10.774 11 10.4953V9.50468C11 9.21404 11.226 9 11.5047 9ZM5.50468 12H6.49532C6.78596 12 7 12.226 7 12.5047V13.4953C7 13.786 6.77404 14 6.49532 14H5.50468C5.21404 14 5 13.774 5 13.4953V12.5047C5 12.214 5.22595 12 5.50468 12ZM8.50468 12H9.49532C9.78596 12 10 12.226 10 12.5047V13.4953C10 13.786 9.77404 14 9.49532 14H8.50468C8.21404 14 8 13.774 8 13.4953V12.5047C8 12.214 8.22596 12 8.50468 12ZM11.5047 12H12.4953C12.786 12 13 12.226 13 12.5047V13.4953C13 13.786 12.774 14 12.4953 14H11.5047C11.214 14 11 13.774 11 13.4953V12.5047C11 12.214 11.226 12 11.5047 12ZM5.50468 15H6.49532C6.78596 15 7 15.226 7 15.5047V16.4953C7 16.786 6.77404 17 6.49532 17H5.50468C5.21404 17 5 16.774 5 16.4953V15.5047C5 15.214 5.22595 15 5.50468 15ZM8.50468 15H9.49532C9.78596 15 10 15.226 10 15.5047V16.4953C10 16.786 9.77404 17 9.49532 17H8.50468C8.21404 17 8 16.774 8 16.4953V15.5047C8 15.214 8.22596 15 8.50468 15ZM11.5047 15H12.4953C12.786 15 13 15.226 13 15.5047V16.4953C13 16.786 12.774 17 12.4953 17H11.5047C11.214 17 11 16.774 11 16.4953V15.5047C11 15.214 11.226 15 11.5047 15ZM14.5047 9H15.4953C15.786 9 16 9.22596 16 9.50468V10.4953C16 10.786 15.774 11 15.4953 11H14.5047C14.214 11 14 10.774 14 10.4953V9.50468C14 9.21404 14.226 9 14.5047 9ZM14.5047 12H15.4953C15.786 12 16 12.226 16 12.5047V13.4953C16 13.786 15.774 14 15.4953 14H14.5047C14.214 14 14 13.774 14 13.4953V12.5047C14 12.214 14.226 12 14.5047 12ZM14.5047 15H15.4953C15.786 15 16 15.226 16 15.5047V16.4953C16 16.786 15.774 17 15.4953 17H14.5047C14.214 17 14 16.774 14 16.4953V15.5047C14 15.214 14.226 15 14.5047 15ZM17.5047 15H18.4953C18.786 15 19 15.226 19 15.5047V16.4953C19 16.786 18.774 17 18.4953 17H17.5047C17.214 17 17 16.774 17 16.4953V15.5047C17 15.214 17.226 15 17.5047 15ZM5.50468 18H6.49532C6.78596 18 7 18.226 7 18.5047V19.4953C7 19.786 6.77404 20 6.49532 20H5.50468C5.21404 20 5 19.774 5 19.4953V18.5047C5 18.214 5.22595 18 5.50468 18ZM8.50468 18H9.49532C9.78596 18 10 18.226 10 18.5047V19.4953C10 19.786 9.77404 20 9.49532 20H8.50468C8.21404 20 8 19.774 8 19.4953V18.5047C8 18.214 8.22596 18 8.50468 18ZM11.5047 18H12.4953C12.786 18 13 18.226 13 18.5047V19.4953C13 19.786 12.774 20 12.4953 20H11.5047C11.214 20 11 19.774 11 19.4953V18.5047C11 18.214 11.226 18 11.5047 18ZM14.5047 18H15.4953C15.786 18 16 18.226 16 18.5047V19.4953C16 19.786 15.774 20 15.4953 20H14.5047C14.214 20 14 19.774 14 19.4953V18.5047C14 18.214 14.226 18 14.5047 18ZM17.5047 18H18.4953C18.786 18 19 18.226 19 18.5047V19.4953C19 19.786 18.774 20 18.4953 20H17.5047C17.214 20 17 19.774 17 19.4953V18.5047C17 18.214 17.226 18 17.5047 18ZM17.5047 12H18.4953C18.786 12 19 12.226 19 12.5047V13.4953C19 13.786 18.774 14 18.4953 14H17.5047C17.214 14 17 13.774 17 13.4953V12.5047C17 12.214 17.226 12 17.5047 12ZM17.5047 9H18.4953C18.786 9 19 9.22596 19 9.50468V10.4953C19 10.786 18.774 11 18.4953 11H17.5047C17.214 11 17 10.774 17 10.4953V9.50468C17 9.21404 17.226 9 17.5047 9Z\" fill=\"#808080\"/>\n</svg>\n`;\n\nexport const arrowRightIcon = `\n<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9.27283 6.78069C8.87912 6.34164 8.91587 5.66655 9.35492 5.27283C9.79397 4.87912 10.4691 4.91587 10.8628 5.35492C10.8628 5.35492 16.0022 10.9543 16.366 11.36C16.7298 11.7657 16.7298 12.2392 16.366 12.6448L10.8628 18.6451C10.4691 19.0841 9.79397 19.1209 9.35492 18.7272C8.91587 18.3334 8.87912 17.6584 9.27283 17.2193L14.1368 12L9.27283 6.78069Z\" fill=\"#808080\"/>\n</svg>`;\n\nexport const arrowLeftIcon = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M14.7272 17.2193C15.1209 17.6584 15.0841 18.3334 14.6451 18.7272C14.206 19.1209 13.5309 19.0841 13.1372 18.6451C13.1372 18.6451 7.99776 13.0457 7.63399 12.64C7.27023 12.2343 7.27023 11.7608 7.63399 11.3552L13.1372 5.35492C13.5309 4.91587 14.206 4.87912 14.6451 5.27283C15.0841 5.66655 15.1209 6.34164 14.7272 6.78069L9.86322 12L14.7272 17.2193Z\" fill=\"#808080\"/>\n</svg>`;\n","import { months, weekdays } from '../consts';\nimport { getTimestampParts, newDate } from '../helpers';\n\nconst isValidAttrArr = (arr, count) =>\n Array.isArray(arr) && arr.length === count && arr.filter(Boolean).length === count;\n\nconst generateYearList = (range) => {\n const [start, end] = range;\n const years = [];\n\n for (let year = start; year <= end; year++) {\n years.push(year);\n }\n\n return years;\n};\n\nconst getMaxDaysInMonth = (year, month) => {\n return new Date(year, month, 0).getDate();\n};\n\nconst comboBoxItemTpl = ({ label, dataId, dataName }) => `\n\t<div\n\t\tstyle=\"display:flex; flex-direction: column;\"\n\t\tdata-id=\"${dataId}\"\n\t\tdata-name=\"${dataName}\"\n\t>\n\t\t\t${label}\n\t</div>\n`;\n\nexport const createMonthView = (year, month, shortWeekdays) => {\n const daysInMonth = getMaxDaysInMonth(year, month);\n\n // Get day of the week (0 = Sunday, 1 = Monday, etc.)\n const firstDayOfMonth = new Date(year, month - 1, 1).getDay();\n\n let monthView = '<table>';\n\n // Add the table headers (days of the week)\n monthView += `<thead><tr>${shortWeekdays.reduce(\n (acc, d) => `${acc}<th><span class=\"weekday\">${d}</span></th>`,\n ''\n )}</tr></thead>`;\n\n monthView += '<tbody>';\n\n // Add empty cells for the days before the start of the month\n monthView += '<tr>';\n for (let i = 0; i < firstDayOfMonth; i++) {\n monthView += '<td></td>';\n }\n\n // Add days of the month\n let dayOfWeek = firstDayOfMonth;\n for (let i = 1; i <= daysInMonth; i++) {\n if (dayOfWeek === 7) {\n dayOfWeek = 0;\n monthView += '</tr><tr>';\n }\n\n monthView += `\n <td\n data-date-day=\"${i}\"\n class=\"day-entry\">\n <span class=\"day\" data-date-day=${i}>\n ${i}\n </span>\n </td>\n `;\n dayOfWeek++;\n }\n\n // Add empty cells for the days after the end of the month\n while (dayOfWeek < 7) {\n monthView += '<td></td>';\n dayOfWeek++;\n }\n\n monthView += '</tr></tbody></table>';\n\n return monthView;\n};\n\nexport const getYearOptions = (range) =>\n generateYearList(range)\n .map((item) => comboBoxItemTpl({ label: item, dataId: item, dataName: item }))\n .join('');\n\nexport const getMonthsOptions = (customMonths = months) =>\n customMonths\n .map((item, index) => comboBoxItemTpl({ label: item, dataId: index + 1, dataName: item }))\n .join('');\n\nexport const isViewVisible = (selectionTimestamp, previewTimestamp) => {\n const [previewYear, previewMonth] = getTimestampParts(previewTimestamp);\n const [selectedYear, selectedMonth] = getTimestampParts(selectionTimestamp);\n return selectedYear === previewYear && selectedMonth === previewMonth;\n};\n\nexport const createInputs = () => {\n const ele = document.createElement('span');\n\n ele.innerHTML = `\n <descope-combo-box\n label-type=\"static\"\n bordered=\"true\"\n item-label-path=\"data-name\"\n item-value-path=\"data-id\"\n class=\"month-input\"\n >\n ${getMonthsOptions()}\n </descope-combo-box>\n <descope-combo-box\n allow-custom-value=\"true\"\n label-type=\"static\"\n bordered=\"true\"\n item-label-path=\"data-name\"\n item-value-path=\"data-id\"\n class=\"year-input\"\n no-empty-value=\"true\"\n >\n </descope-combo-box>\n `;\n\n return ele;\n};\n\nexport const initComboBox = (input, onChange, onBlur) => {\n input.addEventListener('input', onChange);\n input.addEventListener('focusout', onBlur);\n return input;\n};\n\nexport const ensureMonthNamesArr = (attrVal) => {\n const monthArr = attrVal?.split(',');\n return isValidAttrArr(monthArr, 12) ? monthArr : months;\n};\n\nexport const ensureWeekdayNamesArr = (attrVal) => {\n const customWeekdayArr = attrVal?.split?.(',');\n const isCustomValid = isValidAttrArr(customWeekdayArr, 7);\n return isCustomValid ? customWeekdayArr : weekdays;\n};\n\nexport const ensureShortWeekdayNamesArr = (attrVal) => {\n const customShortWeekdays = attrVal;\n\n if (!attrVal || !isValidAttrArr(customShortWeekdays, 7)) {\n return weekdays.map((d) => d.substring(0, 3));\n }\n\n return customShortWeekdays.map((d) => d.substring(0, 3));\n};\n\nexport const truncateWeekdays = (arr) => arr.map((d) => d.substring(0, 3));\n\nexport const prevMonth = (timestamp) => {\n const date = newDate(timestamp);\n const month = date.getMonth();\n\n if (month === 0) {\n const year = date.getFullYear();\n date.setFullYear(year - 1);\n date.setMonth(11);\n } else {\n date.setMonth(month - 1);\n }\n\n return date;\n};\n\nexport const nextMonth = (timestamp) => {\n const date = newDate(timestamp);\n const month = date.getMonth();\n\n if (month === 11) {\n const year = date.getFullYear();\n date.setFullYear(year + 1);\n date.setMonth(0);\n } else {\n date.setMonth(month + 1);\n }\n\n return date;\n};\n","import { createBaseInputClass } from '../../../baseClasses/createBaseInputClass';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport { inputFloatingLabelStyle } from '../../../helpers/themeHelpers/resetHelpers';\nimport { componentNameValidationMixin, createStyleMixin, draggableMixin } from '../../../mixins';\nimport {\n getCurrentDay,\n getTimestampParts,\n isValidTimestamp,\n newDate,\n formatTimestamp,\n getCurrentTime,\n getFullYear,\n getMonth,\n} from '../helpers';\nimport { arrowLeftIcon, arrowRightIcon } from '../icons';\nimport {\n BUTTON_LABEL_CANCEL,\n BUTTON_LABEL_DONE,\n CALENDAR_LABEL_TODAY,\n NATIVE_FORMAT,\n YEARS_RANGE,\n} from '../consts';\nimport {\n createMonthView,\n createInputs,\n getYearOptions,\n initComboBox,\n ensureMonthNamesArr,\n isViewVisible,\n ensureWeekdayNamesArr,\n truncateWeekdays,\n prevMonth,\n nextMonth,\n} from './helpers';\nimport { ButtonClass } from '../../descope-button/ButtonClass';\n\nexport const componentName = getComponentName('calendar');\n\nconst observedAttrs = [\n 'initial-value',\n 'initial-year',\n 'initial-month',\n 'years-range',\n 'calendar-months',\n 'calendar-weekdays',\n 'calendar-label-today',\n 'st-host-direction',\n 'disabled',\n 'full-width',\n];\n\nconst calendarUiAttrs = ['calendar-label-submit', 'calendar-label-cancel'];\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass RawCalendar extends BaseInputClass {\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], observedAttrs, calendarUiAttrs);\n }\n\n // preview state timestamp\n preview;\n\n // value timestamp\n timestamp;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <style>\n :host {\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n user-select: none;\n -webkit-user-select: none;\n }\n\n :host ::slotted {\n padding: 0;\n }\n\n [data-toggle-calendar] {\n cursor: pointer;\n display: flex;\n align-self: center;\n z-index: 1;\n }\n\n [data-disabled=\"true\"] {\n pointer-events: none;\n }\n\n .calendar .day {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .nav {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n }\n\n .selectors,\n .selectors span {\n display: flex;\n justify-content: center;\n }\n\n descope-button {\n padding: 0;\n ${ButtonClass.cssVarList.horizontalPadding}: 0;\n ${ButtonClass.cssVarList.verticalPadding}: 0;\n ${ButtonClass.cssVarList.outlineWidth}: 0;\n }\n\n ${inputFloatingLabelStyle()}\n </style>\n <div>\n <nav class=\"nav top-nav\">\n <div class=\"nav-prev\">\n <descope-icon></descope-icon>\n </div>\n <div class=\"selectors\"></div>\n <div class=\"nav-next\">\n <descope-icon></descope-icon>\n </div>\n </nav>\n <div class=\"calendar\"></div>\n <nav class=\"nav bottom-nav\">\n <descope-button class=\"cancel-button\" variant=\"link\" mode=\"primary\">Cancel</descope-button>\n <descope-button class=\"submit-button\" variant=\"link\" mode=\"primary\" disabled=\"true\">Done</descope-button>\n </nav>\n </div>\n `;\n }\n\n set value(val) {\n if (!val) return;\n\n const timestamp = newDate(val).getTime();\n\n if (!isValidTimestamp(timestamp) || timestamp === this.timestmap) {\n return;\n }\n\n this.timestamp = timestamp;\n\n this.renderCalendar();\n }\n\n get value() {\n return this.timestamp ? formatTimestamp(this.timestamp, NATIVE_FORMAT) : '';\n }\n\n get isSelectedView() {\n return isViewVisible(this.preview, this.timestamp);\n }\n\n get isTodayView() {\n return isViewVisible(getCurrentTime(), this.preview);\n }\n\n get monthNames() {\n return ensureMonthNamesArr(this.getAttribute('calendar-months'));\n }\n\n get weekdayNames() {\n return ensureWeekdayNamesArr(this.getAttribute('calendar-weekdays'));\n }\n\n get hasYearValue() {\n return !!this.yearInput.value;\n }\n\n get hasMonthValue() {\n return !!this.monthInput.value;\n }\n\n get yearsRange() {\n const range = this.getAttribute('years-range')?.split('-');\n\n if (range?.length === 2) {\n const [start, end] = range.map(Number);\n if (start <= end) return [start, end];\n }\n\n const currentYear = newDate().getFullYear();\n\n return [currentYear, currentYear + YEARS_RANGE];\n }\n\n init() {\n super.init?.();\n this.initCalendar();\n this.renderCalendar();\n }\n\n initCalendar() {\n this.calendar = this.shadowRoot.querySelector('.calendar');\n\n this.navPrevEle = this.shadowRoot.querySelector('.nav-prev');\n this.navNextEle = this.shadowRoot.querySelector('.nav-next');\n this.submitButton = this.shadowRoot.querySelector('.submit-button');\n this.cancelButton = this.shadowRoot.querySelector('.cancel-button');\n\n this.initInputs();\n this.initNav();\n\n this.addEventListener('day-changed', () => this.submitButton.removeAttribute('disabled'));\n // This is a workaround for descope-components inside Vaadin's Popover component.\n // When we sync attributes, the `disabled` attribute is being compared to the attribute\n // on Vaadin component; since the Vaadin component has no `disabled` attribute, we sync\n // that back to our component. This happens when using Popover, and for specific attributes,\n // namely `disabled`. This is pending a more generic fix in the way we sync attibutes.\n this.submitButton.shadowRoot.querySelector('vaadin-button').setAttribute('disabled', 'true');\n }\n\n initInputs() {\n const ele = createInputs(this.monthNames, this.yearsRange);\n this.shadowRoot.querySelector('.selectors').appendChild(ele);\n\n this.monthInput = initComboBox(\n this.shadowRoot.querySelector('.month-input'),\n this.onMonthChange.bind(this),\n this.onMonthInputBlur.bind(this)\n );\n\n this.yearInput = initComboBox(\n this.shadowRoot.querySelector('.year-input'),\n this.onYearChange.bind(this),\n this.onYearInputBlur.bind(this)\n );\n\n [this.monthInput, this.yearInput].forEach((selector) =>\n forwardAttrs(this, selector, {\n includeAttrs: ['disabled', 'size', 'st-host-direction'],\n })\n );\n }\n\n initNav() {\n this.navPrevEle.addEventListener('click', this.navPrevMonth.bind(this));\n this.navNextEle.addEventListener('click', this.navNextMonth.bind(this));\n this.cancelButton.addEventListener('click', this.onCancel.bind(this));\n this.submitButton.addEventListener('click', this.onSubmit.bind(this));\n\n [this.navPrevEle, this.navNextEle].forEach((btn) =>\n forwardAttrs(this, btn, {\n includeAttrs: ['size'],\n })\n );\n\n this.shadowRoot.querySelector('.nav-next descope-icon').innerHTML = arrowRightIcon;\n this.shadowRoot.querySelector('.nav-prev descope-icon').innerHTML = arrowLeftIcon;\n }\n\n onSubmit() {\n if (this.isDisabled) return;\n if (!this.value) return;\n this.dispatchEvent(new CustomEvent('date-submit', { detail: newDate(this.preview) }));\n }\n\n onCancel() {\n if (this.isDisabled) return;\n this.dispatchEvent(new CustomEvent('cancel'));\n this.dispatchEvent(new CustomEvent('date-cancel'));\n this.clearSelectedDay();\n }\n\n clearSelectedDay() {\n this.getSelectedDayEle()?.removeAttribute('data-selected');\n this.submitButton.setAttribute('disabled', 'true');\n this.timestamp = '';\n }\n\n updateInputs() {\n if (this.yearInput && this.monthInput) {\n const timestamp = this.preview || getCurrentTime();\n const year = getFullYear(timestamp);\n const month = getMonth(timestamp);\n this.monthInput.value = month;\n // For the yearInput we update the base element directly to properly trigger the change event\n // since this can be a custom value\n this.yearInput.baseElement.value = year;\n }\n }\n\n renderCalendar() {\n const date = newDate(this.preview || getCurrentTime());\n const timestamp = date.getTime();\n\n const [year, month] = getTimestampParts(timestamp);\n\n if (this.calendar) {\n this.calendar.innerHTML = createMonthView(year, month, truncateWeekdays(this.weekdayNames));\n }\n\n Array.from(this.calendar?.querySelectorAll('.day-entry .day') || []).forEach((ele) =>\n ele.addEventListener('click', this.onDayChange.bind(this))\n );\n\n this.updateInputs();\n this.setSelectedDay();\n this.setCurrentDay();\n }\n\n onDayChange(e) {\n if (this.isDisabled) return;\n const date = newDate(this.preview);\n date.setDate(Number(e.target.getAttribute('data-date-day')));\n this.value = formatTimestamp(date.getTime(), NATIVE_FORMAT);\n this.dispatchEvent(new CustomEvent('day-changed', { detail: date }));\n }\n\n onYearChange(e) {\n if (!e.target.value) return;\n const date = newDate(this.preview);\n date.setFullYear(Number(e.target.value.trim()));\n this.preview = date.getTime();\n this.renderCalendar();\n this.dispatchEvent(new CustomEvent('year-changed', { detail: date }));\n }\n\n onMonthChange(e) {\n if (!e.target.value) return;\n const date = newDate(this.preview);\n date.setMonth(Number(e.target.value) - 1);\n this.preview = date.getTime();\n this.renderCalendar();\n this.dispatchEvent(new CustomEvent('month-changed', { detail: date }));\n }\n\n onYearInputBlur(e) {\n this.yearInput.baseElement.value = e.target.value || getFullYear(this.preview);\n }\n\n onMonthInputBlur(e) {\n this.monthInput.baseElement.value = e.target.value || getMonth(this.preview);\n }\n\n getSelectedDayEle() {\n const day = newDate(this.timestamp).getDate();\n return this.calendar?.querySelector(`[data-date-day=\"${day}\"]`);\n }\n\n getCurrentDayEle() {\n return this.calendar?.querySelector(`[data-date-day=\"${getCurrentDay()}\"]`);\n }\n\n clearSelectedDays() {\n const cells = this.calendar?.querySelectorAll(`[data-selected]`);\n if (!cells) return;\n cells.forEach((c) => c.removeAttribute('data-selected'));\n }\n\n setSelectedDay() {\n this.clearSelectedDays();\n if (this.value && this.isSelectedView) {\n this.getSelectedDayEle().setAttribute('data-selected', 'true');\n }\n }\n\n setCurrentDay() {\n if (this.isTodayView) {\n const ele = this.getCurrentDayEle();\n const title = this.getAttribute('calendar-label-today') || CALENDAR_LABEL_TODAY;\n ele.setAttribute('data-current-day', 'true');\n ele.setAttribute('title', title);\n }\n }\n\n navPrevMonth() {\n if (this.isDisabled) {\n return;\n }\n const date = prevMonth(this.preview);\n this.preview = date.getTime();\n this.renderCalendar();\n }\n\n navNextMonth() {\n if (this.isDisabled) {\n return;\n }\n const date = nextMonth(this.preview);\n this.preview = date.getTime();\n this.renderCalendar();\n }\n\n clearValue() {\n this.timestamp = '';\n this.value = '';\n this.removeAttribute('preview');\n this.submitButton.setAttribute('disabled', 'true');\n }\n\n onInitialValueChange(newValue) {\n // if component already has a value don't re-set value\n if (this.value) {\n return;\n }\n\n const date = newDate(newValue);\n const timestamp = date.getTime();\n\n if (isValidTimestamp(timestamp)) {\n this.timestamp = timestamp;\n this.preview = timestamp;\n } else {\n this.clearValue();\n }\n }\n\n onYearsRangeChange() {\n setTimeout(() => {\n if (this.yearInput) {\n this.yearInput.innerHTML = getYearOptions(this.yearsRange);\n }\n });\n }\n\n onMonthNamesChange() {\n Array.from(this.monthInput?.children || []).forEach((child, index) => {\n const month = this.monthNames[index];\n child.setAttribute('data-name', month);\n // eslint-disable-next-line no-param-reassign\n child.textContent = month;\n });\n }\n\n onSubmitLabelChange(newValue) {\n if (this.submitButton) {\n this.submitButton.textContent = newValue || BUTTON_LABEL_DONE;\n }\n }\n\n onCancelLabelChange(newValue) {\n if (this.cancelButton) {\n this.cancelButton.textContent = newValue || BUTTON_LABEL_CANCEL;\n }\n }\n\n onInitialMonthChange(val) {\n const currYear = getFullYear(this.preview);\n this.preview = newDate(`${currYear}/${val}/1`).getTime();\n }\n\n onInitialYearChange(val) {\n const currMonth = getMonth(this.preview);\n this.preview = newDate(`${val}/${currMonth}/1`).getTime();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (oldValue !== newValue) {\n // attrs for which affect static ui parts doesn't require calendar re-render\n if (calendarUiAttrs.includes(attrName)) {\n if (attrName === 'calendar-label-submit') {\n this.onSubmitLabelChange(newValue);\n }\n if (attrName === 'calendar-label-cancel') {\n this.onCancelLabelChange(newValue);\n }\n } else {\n // we want to render the calendar for each of these attr change\n\n if (newValue && attrName === 'initial-value') {\n this.onInitialValueChange(newValue);\n }\n if (newValue && attrName === 'initial-month') {\n this.onInitialMonthChange(newValue);\n }\n if (newValue && attrName === 'initial-year') {\n this.onInitialYearChange(newValue);\n }\n if (attrName === 'years-range') {\n this.onYearsRangeChange(Number(newValue));\n }\n if (attrName === 'calendar-months') {\n this.onMonthNamesChange();\n }\n if (attrName === 'calendar-label-today') {\n this.setCurrentDay(newValue);\n }\n if (attrName === 'disabled') {\n setTimeout(() => {\n this.cancelButton?.setAttribute('disabled', newValue === 'true');\n });\n }\n\n this.renderCalendar();\n }\n }\n }\n\n getValidity() {\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n return {};\n }\n}\n\nconst {\n calendar,\n day,\n dayEntry,\n currentDay,\n selectedDay,\n disabledDay,\n weekday,\n topNav,\n topNavSelectors,\n bottomNav,\n navPrev,\n navNext,\n navPrevRTL,\n navNextRTL,\n yearInput,\n monthInput,\n} = {\n calendar: { selector: () => '.calendar' },\n topNav: { selector: () => '.nav.top-nav' },\n topNavSelectors: { selector: () => '.nav.top-nav .selectors > span' },\n bottomNav: { selector: () => '.nav.bottom-nav' },\n day: { selector: () => '.day' },\n dayEntry: { selector: () => '.day-entry' },\n currentDay: { selector: () => '.day-entry[data-current-day] .day' },\n selectedDay: { selector: () => '.day-entry[data-selected] .day' },\n disabledDay: { selector: () => '.day-entry[data-disabled=\"true\"] .day' },\n weekday: { selector: () => '.weekday' },\n navPrev: { selector: () => '.nav-prev' },\n navNext: { selector: () => '.nav-next' },\n navPrevRTL: { selector: () => ':host(:dir(rtl)) .nav-prev' },\n navNextRTL: { selector: () => ':host(:dir(rtl)) .nav-next' },\n yearInput: { selector: () => '.year-input' },\n monthInput: { selector: () => '.month-input' },\n};\n\nexport const CalendarClass = compose(\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') }),\n createStyleMixin({\n mappings: {\n fontSize: {},\n fontFamily: {},\n hostWidth: [\n { selector: () => ':host', property: 'width' },\n { selector: 'table', property: 'width' },\n ],\n hostDirection: { property: 'direction' },\n\n topNavVerticalPadding: [\n { ...topNav, property: 'padding-top' },\n { ...topNav, property: 'padding-bottom' },\n ],\n topNavHorizointalPadding: [\n { ...topNav, property: 'padding-right' },\n { ...topNav, property: 'padding-left' },\n ],\n topNavAlignment: { ...topNav, property: 'justify-content' },\n topNavGap: { ...topNav, property: 'gap' },\n topNavSelectorsGap: { ...topNavSelectors, property: 'gap' },\n\n bottomNavVerticalPadding: [\n { ...bottomNav, property: 'padding-top' },\n { ...bottomNav, property: 'padding-bottom' },\n ],\n bottomNavHorizontalPadding: [\n { ...bottomNav, property: 'padding-right' },\n { ...bottomNav, property: 'padding-left' },\n ],\n bottomNavAlignment: { ...bottomNav, property: 'justify-content' },\n bottomNavGap: { ...bottomNav, property: 'gap' },\n\n navMarginBottom: { ...topNav, property: 'margin-bottom' },\n\n calendarPadding: [\n { ...calendar, property: 'padding-bottom' },\n { ...calendar, property: 'padding-right' },\n { ...calendar, property: 'padding-left' },\n ],\n\n navBorderBottomWidth: { ...topNav, property: 'border-bottom-width' },\n navBorderBottomColor: { ...topNav, property: 'border-bottom-color' },\n navBorderBottomStyle: { ...topNav, property: 'border-bottom-style' },\n\n weekdayFontSize: { ...weekday, property: 'font-size' },\n weekdayFontWeight: { ...weekday, property: 'font-weight' },\n\n currentDayBorderColor: {\n ...currentDay,\n property: 'border-color',\n },\n currentDayBorderWidth: {\n ...currentDay,\n property: 'border-width',\n },\n currentDayBorderStyle: {\n ...currentDay,\n property: 'border-style',\n },\n\n dayHeight: { ...dayEntry, property: 'height' },\n daySize: [\n { ...day, property: 'height' },\n { ...day, property: 'width' },\n ],\n dayPadding: { ...day, property: 'padding' },\n dayRadius: { ...day, property: 'border-radius' },\n dayTextAlign: { ...day, property: 'text-align' },\n dayBlockAlign: { ...day, property: 'margin' },\n dayTextColor: { ...day, property: 'color' },\n dayFontWeight: { ...day, property: 'font-weight' },\n dayBackgroundColor: { ...day, property: 'background-color' },\n dayCursor: { ...day, property: 'cursor' },\n dayFontSize: { ...day, property: 'font-size' },\n\n dayBackgroundColorHover: {\n selector: () => '.day:hover',\n property: 'background-color',\n },\n\n daySelectedTextdColor: {\n ...selectedDay,\n property: 'color',\n },\n daySelectedBackgroundColor: {\n ...selectedDay,\n property: 'background-color',\n },\n dayDisabledTextdColor: {\n ...disabledDay,\n property: 'color',\n },\n\n yearInputWidth: { ...yearInput, property: 'width' },\n monthInputWidth: { ...monthInput, property: 'width' },\n\n navButtonSize: [\n { ...navPrev, property: 'width' },\n { ...navPrev, property: 'height' },\n { ...navNext, property: 'width' },\n { ...navNext, property: 'height' },\n ],\n navButtonCursor: [\n { ...navPrev, property: 'cursor' },\n { ...navNext, property: 'cursor' },\n ],\n navButtonRotation: [\n { ...navPrevRTL, property: 'transform' },\n { ...navNextRTL, property: 'transform' },\n ],\n navButtonOpacity: [\n { ...navPrev, property: 'opacity' },\n { ...navNext, property: 'opacity' },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawCalendar);\n","import globals from '../globals';\nimport { CalendarClass } from '../../components/descope-date-field/descope-calendar/CalendarClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport { refs } from './inputWrapper';\n\nconst globalRefs = getThemeRefs(globals);\n\nconst vars = CalendarClass.cssVarList;\n\nconst calendar = {\n [vars.fontFamily]: refs.fontFamily,\n [vars.fontSize]: refs.fontSize,\n [vars.hostDirection]: refs.direction,\n\n [vars.calendarPadding]: '1em',\n\n [vars.topNavVerticalPadding]: '1em',\n [vars.topNavHorizontalPadding]: '1em',\n [vars.topNavAlignment]: 'space-between',\n [vars.topNavGap]: '0',\n [vars.topNavSelectorsGap]: '0.5em',\n\n [vars.bottomNavVerticalPadding]: '0.75em',\n [vars.bottomNavHorizontalPadding]: '1.5em',\n [vars.bottomNavAlignment]: 'space-between',\n [vars.bottomNavGap]: '0.5em',\n\n [vars.navMarginBottom]: '0.75em',\n [vars.navBorderBottomWidth]: '1px',\n [vars.navBorderBottomColor]: globalRefs.colors.surface.highlight,\n [vars.navBorderBottomStyle]: 'solid',\n\n [vars.yearInputWidth]: '6em',\n [vars.monthInputWidth]: '8em',\n\n [vars.navButtonSize]: '24px',\n [vars.navButtonCursor]: 'pointer',\n\n [vars.weekdayFontSize]: '0.875em',\n [vars.weekdayFontWeight]: '500',\n [vars.weekdayTextColor]: globalRefs.colors.surface.dark,\n\n // day table cell\n [vars.dayWidth]: '2.705em',\n [vars.dayHeight]: '3.125em',\n\n // day value\n [vars.daySize]: '2.125em',\n [vars.dayFontSize]: '1em',\n [vars.dayRadius]: '50%',\n [vars.dayTextAlign]: 'center',\n [vars.dayPadding]: '0',\n [vars.dayTextColor]: globalRefs.colors.surface.contrast,\n [vars.dayFontWeight]: '500',\n [vars.dayBackgroundColor]: 'transparent',\n [vars.dayCursor]: 'pointer',\n [vars.dayBackgroundColorHover]: globalRefs.colors.primary.highlight,\n\n // selected day\n [vars.daySelectedBackgroundColor]: globalRefs.colors.primary.main,\n [vars.daySelectedTextdColor]: globalRefs.colors.primary.contrast,\n\n // disabled day (out of min/max range)\n [vars.dayDisabledTextdColor]: globalRefs.colors.surface.light,\n\n // today\n [vars.currentDayBorderColor]: globalRefs.colors.surface.light,\n [vars.currentDayBorderWidth]: '1px',\n [vars.currentDayBorderStyle]: 'solid',\n\n size: {\n xs: { [vars.fontSize]: '12px' },\n sm: { [vars.fontSize]: '14px' },\n md: { [vars.fontSize]: '16px' },\n lg: { [vars.fontSize]: '18px' },\n },\n\n [vars.navButtonRotation]: 'rotate(180deg)',\n\n _disabled: {\n [vars.navButtonOpacity]: '0.5',\n [vars.dayBackgroundColorHover]: 'none',\n [vars.navButtonCursor]: 'default',\n [vars.dayCursor]: 'default',\n },\n\n _fullWidth: {\n [vars.hostWidth]: '100%',\n [vars.dayBlockAlign]: '0 auto',\n },\n};\n\nexport default calendar;\nexport { vars };\n","import { DIVIDER, SUPPORTED_FORMATS } from './consts';\nimport { newDate } from './helpers';\n\nconst patterns = {\n MM: '(0?[1-9]|1[0-2])',\n DD: '(0?[1-9]|[12][0-9]|3[01])',\n YYYY: '([0-9]{4})',\n};\n\nconst createPattern = (format) => {\n const pattern = format\n .split(DIVIDER)\n .map((part) => patterns[part])\n .join('\\\\D');\n\n return `^${pattern}$`;\n};\n\nconst createToValuesFn = (format) => {\n const order = format.split(DIVIDER);\n return (match) => {\n const values = {};\n order.forEach((part, index) => {\n values[part] = match[index + 1];\n });\n return [values.YYYY, values.MM, values.DD];\n };\n};\n\nconst createDate = (val, regexp, toValuesFn) => {\n const match = regexp.exec(val);\n if (!match) return null;\n const [year, month, day] = toValuesFn(match);\n return newDate([year, month, day].join(DIVIDER));\n};\n\nconst createFormat = (format) => {\n const pattern = createPattern(format);\n const toValuesFn = createToValuesFn(format);\n const regexp = new RegExp(pattern);\n\n return {\n pattern,\n validate: (val) => regexp.test(val),\n getDate: (val) => createDate(val, regexp, toValuesFn),\n };\n};\n\nexport const formats = Object.fromEntries(SUPPORTED_FORMATS.map((f) => [f, createFormat(f)]));\n","// DateCounterClass allows us to add several counters to the input, and use them seperately.\n// For examele, we have a DayCounter, MonthCounter and YearCounter, which can each separately navigate\n// between different ranges.\nexport class DateCounter {\n constructor({ id, min, max, placeholder }) {\n this.id = id;\n this.data = [];\n this.min = min;\n this.max = max;\n this.placeholder = placeholder;\n }\n\n get #initialNumValue() {\n return this.data.length ? this.numberValue : 0;\n }\n\n get numberValue() {\n return Number(this.stringValue);\n }\n\n get stringValue() {\n return (this.data.join('') || this.placeholder).padStart(this.length, '0');\n }\n\n get isFull() {\n return this.numberValue * 10 > this.max || this.data.length === this.length;\n }\n\n get isEmpty() {\n return this.stringValue === this.placeholder;\n }\n\n get length() {\n return this.max.toString().length;\n }\n\n set(val) {\n this.data = val.toString().split('');\n }\n\n add(num) {\n this.data.push(num);\n\n if (this.numberValue > this.max) {\n this.data.length = 0;\n this.data.push(num);\n } else if (this.length < this.data.length) {\n this.data.shift();\n }\n\n return num;\n }\n\n del() {\n if (!this.data.filter((d) => d !== '0').filter(Boolean).length) {\n this.data.length = 0;\n } else {\n this.data.pop();\n }\n }\n\n clear() {\n this.data = [];\n }\n\n inc(gap) {\n this.replaceValue(this.#initialNumValue + (gap || 1));\n }\n\n dec(gap) {\n this.replaceValue(this.#initialNumValue - (gap || 1));\n }\n\n isInRange(val) {\n return val >= this.min && val <= this.max;\n }\n\n replaceValue(val) {\n if (this.isInRange(val)) {\n this.data = val.toString().padStart(this.length, 0).split('');\n }\n }\n}\n","import { createBaseInputClass } from '../../baseClasses/createBaseInputClass';\nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n portalMixin,\n} from '../../mixins';\nimport { forwardAttrs, getComponentName } from '../../helpers/componentHelpers';\nimport { compose } from '../../helpers';\nimport {\n newDate,\n isValidTimestamp,\n formatTimestamp,\n isSupportedKey,\n isNumber,\n getKeyMap,\n getCurrentTime,\n overrideConstructedStylesheet,\n} from './helpers';\nimport { formats } from './formats';\nimport { calendarIcon } from './icons';\nimport { counterConfig, DEFAULT_FORMAT, DIVIDER, NATIVE_FORMAT } from './consts';\nimport { DateCounter } from './DateCounterClass';\n\nexport const componentName = getComponentName('date-field');\n\n// we set baseSelector to `vaadin-popover` as a temporary hack, so our portalMixin will\n// be able to process this component's overlay. The whole process needs refactoring as soon as possible.\nconst BASE_SELECTOR = 'vaadin-popover';\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: BASE_SELECTOR });\n\nconst dateFieldAttrs = ['format', 'opened', 'initial-value'];\nconst calendarAttrs = ['years-range', 'calendar-months', 'calendar-weekdays'];\nconst observedAttrs = [...dateFieldAttrs, ...calendarAttrs];\n\nclass RawDateFieldClass extends BaseInputClass {\n timestamp = '';\n\n format = DEFAULT_FORMAT;\n\n selectedCounterIdx = 0;\n\n dateCounters = [\n new DateCounter(counterConfig.MONTH),\n new DateCounter(counterConfig.DAY),\n new DateCounter(counterConfig.YEAR),\n ];\n\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], observedAttrs);\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <style>\n :host {\n display: inline-block;\n box-sizing: border-box;\n user-select: none;\n max-width: 100%;\n }\n\n :host ::slotted {\n padding: 0;\n }\n\n .toggle-calendar {\n cursor: pointer;\n display: flex;\n align-self: center;\n z-index: 1;\n }\n\n descope-text-field .overlay-position-anchor {\n position: absolute;\n height: 100%;\n width: 0;\n z-index: 1;\n pointer-events: none;\n }\n </style>\n <div>\n <descope-text-field>\n <span slot=\"prefix\" class=\"overlay-position-anchor\"></span>\n <span slot=\"suffix\" class=\"toggle-calendar\">\n <descope-icon>${calendarIcon}</descope-icon>\n </span>\n </descope-text-field>\n <vaadin-popover></vaadin-popover>\n </div>\n `;\n\n this.inputElement = this.shadowRoot.querySelector('descope-text-field');\n this.popoverToggleButton = this.inputElement.querySelector('.toggle-calendar');\n this.overlayPositionAnchor = this.inputElement.querySelector('.overlay-position-anchor');\n\n this.oninvalid = () => {\n this.inputElement.setAttribute('invalid', 'true');\n this.inputElement.focus();\n };\n }\n\n get opened() {\n return this.getAttribute('opened') === 'true';\n }\n\n // returns the input's value as a timestamp\n get inputValueTimestamp() {\n const date = formats[this.format].getDate(this.inputElement.value);\n\n if (!isValidTimestamp(date?.getTime())) {\n return null;\n }\n\n return date.getTime();\n }\n\n get sortedCounters() {\n return this.format\n .split(DIVIDER)\n .map((placeholder) => this.dateCounters.find((dc) => dc.placeholder === placeholder));\n }\n\n get activeCounter() {\n return this.sortedCounters[this.selectedCounterIdx];\n }\n\n get countersValue() {\n return this.sortedCounters.map((dc) => dc.stringValue).join(DIVIDER);\n }\n\n get overlay() {\n return this.baseElement.shadowRoot?.querySelector('vaadin-popover-overlay');\n }\n\n get backdrop() {\n return this.overlay.shadowRoot?.querySelector('#backdrop');\n }\n\n get calendar() {\n return this.overlay?.querySelector('descope-calendar');\n }\n\n get value() {\n return this.timestamp;\n }\n\n set value(val) {\n if (!val) return;\n\n const numVal = Number(val);\n const isValTimestamp = !Number.isNaN(numVal);\n\n let date;\n let timestamp;\n\n if (isValTimestamp) {\n date = newDate(numVal);\n timestamp = numVal;\n } else {\n date = newDate(val);\n timestamp = date.getTime();\n }\n\n if (!isValidTimestamp(timestamp) || timestamp === this.timestamp) {\n return;\n }\n\n this.timestamp = timestamp;\n\n this.updateInputDisplay();\n this.updateDateCounters(date);\n\n // since baseElement is set to vaadin-popover, we need to manually dispatch an input event to trigger getValidity\n this.dispatchEvent(new Event('input'));\n }\n\n updateInputDisplay() {\n this.inputElement.value = formatTimestamp(newDate(this.value).getTime(), this.format);\n }\n\n init() {\n super.init?.();\n\n this.updateFormatPattern();\n this.initPopover();\n this.initInputElement();\n\n setTimeout(() => {\n this.#overrideOverlaySettings();\n }, 0);\n }\n\n initInputElement() {\n this.popoverToggleButton.addEventListener('click', this.onPopoverToggle.bind(this));\n\n this.inputElement.addEventListener('focus', this.onFocus.bind(this));\n this.inputElement.addEventListener('blur', this.onBlur.bind(this));\n this.inputElement.addEventListener('input', this.onInput.bind(this));\n this.inputElement.addEventListener('click', this.handleMouseCaretPositionChange.bind(this));\n this.inputElement.addEventListener('keydown', this.handleKeyDownValueChange.bind(this));\n this.inputElement.addEventListener('keydown', this.handleKeydownCaretPositionChange.bind(this));\n this.inputElement.addEventListener('keydown', this.handleValueChange.bind(this));\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'label',\n 'label-type',\n 'placeholder',\n 'disabled',\n 'readonly',\n 'bordered',\n 'required',\n 'full-width',\n 'st-host-direction',\n 'pattern',\n 'invalid',\n 'bordered',\n ],\n });\n }\n\n initPopover() {\n this.baseElement.target = this.overlayPositionAnchor;\n this.baseElement.trigger = ['click'];\n this.baseElement.withBackdrop = true;\n this.baseElement.noCloseOnOutsideClick = true;\n this.baseElement.renderer = this.#popoverRenderer.bind(this);\n\n // override vaadin's constructed stylesheet which hides the host element\n overrideConstructedStylesheet(this.baseElement);\n\n // block popover events from focusing/blurring the text-field\n this.baseElement.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n });\n }\n\n #popoverRenderer(root) {\n // popoverRenderer should run only once, when the popover is first rendering.\n if (!root.firstChild) {\n root.appendChild(this.#getPopoverContent());\n\n // To prevent position flickering of the dialog we set opacity to 0\n root.style.setProperty('opacity', '0');\n\n setTimeout(() => {\n // on first render we adjust the a anchor element in the input\n // so vaadin computes the popover position according to the anchor position\n // (otherwise it will simply center the popover below the input).\n this.#adjustOverlayPosition();\n\n // remove opacity to show overlay\n root.style.setProperty('opacity', '1');\n\n // on outside click - close popover. this event runs once on popover first render\n // and does not need to be cleared\n this.backdrop.addEventListener('click', this.closePopover.bind(this));\n });\n }\n\n this.updateCalendarView();\n }\n\n #getPopoverContent() {\n const ele = document.createElement('span');\n\n ele.innerHTML = `<descope-calendar></descope-calendar>`;\n\n const calendar = ele.querySelector('descope-calendar');\n\n calendar.addEventListener('date-submit', this.onCalendarSubmit.bind(this));\n calendar.addEventListener('cancel', this.closePopover.bind(this));\n\n return ele;\n }\n\n #adjustOverlayPosition() {\n const { width: inputEleWidth } = this.inputElement.getClientRects()[0];\n const { width: calendarEleWidth } = this.calendar.getClientRects()[0];\n const pos = inputEleWidth - calendarEleWidth / 2;\n /* eslint-disable no-use-before-define */\n this.overlayPositionAnchor.style.setProperty(\n DateFieldClass.cssVarList.overlayAnchorPos,\n `${pos}px`\n );\n }\n\n // the default vaadin behavior is to attach the overlay to the body when opened\n // we do not want that because it's difficult to style the overlay in this way\n // so we override it to open inside the shadow DOM\n #overrideOverlaySettings() {\n this.overlay._attachOverlay = () => this.overlay.bringToFront();\n this.overlay._detachOverlay = () => {};\n this.overlay._enterModalState = () => {};\n }\n\n onPopoverToggle() {\n this.opened ? this.closePopover() : this.openPopover();\n }\n\n openPopover() {\n this.setAttribute('opened', 'true');\n }\n\n closePopover() {\n this.removeAttribute('opened');\n this.inputElement.focus();\n }\n\n getCounterById(id) {\n return this.dateCounters.find((dc) => dc.id === id);\n }\n\n onCalendarSubmit() {\n if (!this.isReadOnly) {\n if (!this.calendar.value) return;\n\n const calendarDate = newDate(this.calendar.value);\n\n this.value = calendarDate.getTime();\n\n this.getCounterById('year').replaceValue(calendarDate.getFullYear());\n this.getCounterById('month').replaceValue(calendarDate.getMonth() + 1);\n this.getCounterById('day').replaceValue(calendarDate.getDate());\n\n this.dispatchEvent(new Event('input'));\n }\n\n this.closePopover();\n }\n\n updateCalendarView() {\n const validInputVal =\n isValidTimestamp(newDate(this.inputElement.value || '').getTime()) &&\n formats[this.format].validate(this.inputElement.value);\n\n if (this.inputValueTimestamp || validInputVal) {\n this.calendar.setAttribute(\n 'initial-value',\n formatTimestamp(this.inputValueTimestamp || this.timestamp, NATIVE_FORMAT)\n );\n } else {\n this.calendar.clearValue();\n this.calendar.setAttribute('preview', formatTimestamp(getCurrentTime(), NATIVE_FORMAT));\n }\n\n forwardAttrs(this, this.calendar, {\n includeAttrs: [\n 'st-host-direction',\n 'readonly',\n 'initial-month',\n 'initial-year',\n 'years-range',\n 'calendar-label-submit',\n 'calendar-label-cancel',\n 'calendar-months',\n 'calendar-weekdays',\n 'calendar-weekdays-short',\n ],\n });\n }\n\n onInput(e) {\n if (!e.target.value) {\n this.calendar?.clear();\n this.calendar?.renderCalendar();\n }\n }\n\n onFocus() {\n if (!this.inputElement.value) {\n this.inputElement.value = this.format;\n this.setInputSelectionRange();\n }\n }\n\n clearInputValue() {\n this.inputElement.value = '';\n this.resetDateCounters();\n }\n\n onBlur() {\n if (this.inputValueTimestamp) {\n this.value = this.inputValueTimestamp;\n } else if (!this.opened && this.countersValue === this.format) {\n this.clearInputValue();\n }\n }\n\n onFormatUpdate(format) {\n if (Object.keys(formats).includes(format)) {\n this.format = format;\n this.updateFormatPattern();\n }\n }\n\n updateFormatPattern() {\n const format = this.getAttribute('format') || this.format || DEFAULT_FORMAT;\n this.setAttribute('type', 'date');\n this.setAttribute('pattern', formats[format].pattern);\n }\n\n handleValueChange(e) {\n if (isNumber(e.key)) {\n e.preventDefault();\n\n this.handleCountersValue(e.key);\n\n if (this.activeCounter.isFull) {\n this.selectNextCounter();\n }\n\n this.setInputSelectionRange();\n }\n }\n\n getCounterIdx(caretPos) {\n const [counter1ln, counter2ln] = this.sortedCounters.map((dc) => dc.length);\n\n const c1 = caretPos <= counter1ln;\n const c2 = caretPos >= counter1ln && caretPos <= counter1ln + counter2ln + 1;\n const c3 = caretPos >= counter1ln + counter2ln + 2;\n\n return [c1, c2, c3].indexOf(true);\n }\n\n handleCountersValue(val) {\n this.activeCounter.add(val);\n this.inputElement.value = this.countersValue;\n }\n\n setSelectedCounterByCaretPosition(e) {\n this.selectedCounterIdx = this.getCounterIdx(e.target.selectionStart);\n }\n\n selectNextCounter() {\n if (this.selectedCounterIdx < this.dateCounters.length) {\n this.selectedCounterIdx = Math.min(this.selectedCounterIdx + 1, 2);\n }\n }\n\n selectPrevCounter() {\n if (this.selectedCounterIdx > 0) {\n this.selectedCounterIdx = Math.min(this.selectedCounterIdx - 1, 1);\n }\n }\n\n // Sets the text selection range in the input element based on the selected counter.\n // The function calculates the starting position of the selection by summing the lengths\n // of all counters before the currently selected counter (`selectedCounterIdx`).\n // It then selects the entire length of the current counter in the input element.\n setInputSelectionRange() {\n // For preview/readonly state we don't have a caret or a caretIdx, so we skip setting input selection range\n if (this.selectedCounterIdx < 0) {\n return;\n }\n\n const caretStart = this.sortedCounters\n .slice(0, this.selectedCounterIdx)\n .reduce((acc, counter) => acc + counter.length, this.selectedCounterIdx);\n\n this.inputElement.setSelectionRange(\n caretStart,\n caretStart + this.sortedCounters[this.selectedCounterIdx].length\n );\n }\n\n resetDateCounters() {\n this.dateCounters.forEach((dc) => dc.clear());\n }\n\n // in case value is set from external source we need to update date counters\n updateDateCounters(date) {\n this.dateCounters.forEach((dc) => {\n switch (dc.id) {\n case counterConfig.MONTH.id:\n dc.set(date.getMonth() + 1);\n break;\n case counterConfig.YEAR.id:\n dc.set(date.getFullYear());\n break;\n case counterConfig.DAY.id:\n dc.set(date.getDate());\n break;\n default:\n break;\n }\n });\n }\n\n handleKeyDownValueChange(e) {\n if (this.isReadOnly) {\n return;\n }\n\n const { key, shiftKey, metaKey } = e;\n const keys = getKeyMap(key, shiftKey, metaKey);\n const allowedOperations = keys.refresh || keys.tab || keys.shiftTab;\n\n if (this.opened) {\n this.closePopover();\n }\n\n if (isSupportedKey(key)) {\n e.preventDefault();\n const counter = this.activeCounter;\n\n if (!counter) return;\n\n const counterData = Object.values(counterConfig).find((config) => config.id === counter.id);\n const { count, shiftCount } = counterData;\n\n if (keys.backspace) this.handleBackspace();\n else if (keys.arrowUp) counter.inc();\n else if (keys.arrowDown) counter.dec();\n else if (keys.shiftArrowUp) counter.inc(count);\n else if (keys.shiftArrowDown) counter.dec(count);\n else if (keys.pageUp) counter.inc(count);\n else if (keys.pageDown) counter.dec(count);\n else if (keys.shiftPageUp) counter.inc(shiftCount);\n else if (keys.shiftPageDown) counter.dec(shiftCount);\n\n this.inputElement.value = this.countersValue;\n\n this.setInputSelectionRange();\n } else if (!allowedOperations) {\n e.preventDefault();\n }\n }\n\n handleBackspace() {\n const counter = this.activeCounter;\n\n if (counter.isEmpty) {\n this.selectPrevCounter();\n this.setInputSelectionRange();\n } else {\n counter.del();\n }\n }\n\n handleKeydownCaretPositionChange(e) {\n if (this.opened) {\n return;\n }\n\n const { key } = e;\n\n if (isSupportedKey(key)) {\n e.preventDefault();\n\n const keys = getKeyMap(key, false);\n\n if (keys.arrowRight) this.selectNextCounter();\n else if (keys.arrowLeft) this.selectPrevCounter();\n\n this.setInputSelectionRange();\n }\n }\n\n handleMouseCaretPositionChange(e) {\n if (this.opened) {\n return;\n }\n e.preventDefault();\n this.setSelectedCounterByCaretPosition(e);\n this.setInputSelectionRange();\n }\n\n onInitialValueChange(val) {\n // if component already has a value don't re-set value\n if (this.value) return;\n\n // we need to wait for the text-field to init\n setTimeout(() => {\n this.value = val;\n });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (dateFieldAttrs.includes(attrName)) {\n if (newValue && attrName === 'format') {\n this.onFormatUpdate(newValue);\n }\n if (attrName === 'initial-value') {\n this.onInitialValueChange(newValue);\n }\n } else if (calendarAttrs.includes(attrName)) {\n if (newValue) {\n this.calendar?.setAttribute(attrName, newValue);\n } else {\n this.calendar?.removeAttribute(attrName);\n }\n }\n }\n }\n\n getValidity() {\n if (this.isRequired && !this.inputElement.value) {\n return { valueMissing: true };\n }\n\n return {};\n }\n}\n\nconst { host, input, toggleButton, overlayAnchor, overlayAnchorRTL, overlay, backdrop } = {\n host: { selector: () => ':host' },\n input: { selector: () => 'descope-text-field' },\n toggleButton: { selector: () => '.toggle-calendar' },\n overlayAnchor: { selector: () => ':host .overlay-position-anchor' },\n overlayAnchorRTL: { selector: ':host([st-host-direction=\"rtl\"]) .overlay-position-anchor' },\n overlay: { selector: 'vaadin-popover-overlay::part(overlay)' },\n backdrop: { selector: 'vaadin-popover-overlay::part(backdrop)' },\n};\n\nexport const DateFieldClass = compose(\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') }),\n createStyleMixin({\n mappings: {\n iconMargin: { ...toggleButton, property: 'margin-inline-end' },\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n textAlign: { ...input, property: 'text-align' },\n overlayAnchorPos: [\n { ...overlayAnchor, property: 'right' },\n { ...overlayAnchorRTL, property: 'left' },\n ],\n overlayGap: {\n property: () => DateFieldClass.cssVarList.overlayGap,\n },\n\n overlayBackgroundColor: {\n property: () => DateFieldClass.cssVarList.overlayBackgroundColor,\n },\n overlayPadding: {\n property: () => DateFieldClass.cssVarList.overlayPadding,\n },\n overlayBoxShadow: { property: () => DateFieldClass.overlayBoxShadow },\n overlayOutlineWidth: {\n property: () => DateFieldClass.cssVarList.overlayOutlineWidth,\n },\n overlayOutlineColor: {\n property: () => DateFieldClass.cssVarList.overlayOutlineColor,\n },\n overlayOutlineStyle: {\n property: () => DateFieldClass.cssVarList.overlayOutlineStyle,\n },\n },\n }),\n portalMixin({\n name: 'overlay',\n selector: '',\n mappings: {\n marginTop: { ...overlay, property: 'margin-top' },\n backgroundColor: { ...overlay },\n backdropBackgroundColor: { ...backdrop, property: 'background-color' },\n backdropPointerEvents: { ...backdrop, property: 'pointer-events' },\n padding: { ...overlay },\n boxShadow: { ...overlay },\n outlineWidth: { ...overlay },\n outlineColor: { ...overlay },\n outlineStyle: { ...overlay },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawDateFieldClass);\n","import { DateFieldClass } from '../../components/descope-date-field/DateFieldClass';\nimport { refs } from './inputWrapper';\nimport globals from '../globals';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\n\nconst globalRefs = getThemeRefs(globals);\n\nconst shadowColor = '#00000020';\nconst { shadow } = globalRefs;\n\nconst vars = DateFieldClass.cssVarList;\n\nconst dateField = {\n [vars.hostWidth]: refs.width,\n [vars.hostMinWidth]: refs.minWidth,\n [vars.hostDirection]: refs.direction,\n [vars.fontSize]: refs.fontSize,\n [vars.fontFamily]: refs.fontFamily,\n [vars.labelFontSize]: refs.labelFontSize,\n [vars.labelFontWeight]: refs.labelFontWeight,\n [vars.labelTextColor]: refs.labelTextColor,\n [vars.errorMessageTextColor]: refs.errorMessageTextColor,\n [vars.inputValueTextColor]: refs.valueTextColor,\n [vars.inputPlaceholderColor]: refs.placeholderTextColor,\n [vars.inputBorderWidth]: refs.borderWidth,\n [vars.inputBorderStyle]: refs.borderStyle,\n [vars.inputBorderColor]: refs.borderColor,\n [vars.inputBorderRadius]: refs.borderRadius,\n [vars.inputOutlineWidth]: refs.outlineWidth,\n [vars.inputOutlineStyle]: refs.outlineStyle,\n [vars.inputOutlineColor]: refs.outlineColor,\n [vars.inputOutlineOffset]: refs.outlineOffset,\n [vars.inputBackgroundColor]: refs.backgroundColor,\n [vars.labelRequiredIndicator]: refs.requiredIndicator,\n [vars.inputHorizontalPadding]: refs.horizontalPadding,\n [vars.inputHeight]: refs.inputHeight,\n [vars.labelPosition]: refs.labelPosition,\n [vars.labelTopPosition]: refs.labelTopPosition,\n [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,\n [vars.inputTransformY]: refs.inputTransformY,\n [vars.inputTransition]: refs.inputTransition,\n [vars.marginInlineStart]: refs.marginInlineStart,\n [vars.placeholderOpacity]: refs.placeholderOpacity,\n [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,\n [vars.valueInputHeight]: refs.valueInputHeight,\n [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,\n\n [vars.iconMargin]: '0.375em',\n\n [vars.overlay.marginTop]: `calc(${refs.outlineWidth} + 1px)`,\n [vars.overlay.backgroundColor]: refs.backgroundColor,\n [vars.overlay.backdropBackgroundColor]: 'transparent',\n [vars.overlay.backdropPointerEvents]: 'all',\n [vars.overlay.boxShadow]: `${shadow.wide.xl} ${shadowColor}, ${shadow.narrow.xl} ${shadowColor}`,\n [vars.overlay.outlineWidth]: '0',\n [vars.overlay.outlineColor]: 'transparent',\n [vars.overlay.outlineStyle]: 'none',\n [vars.overlay.direction]: refs.direction,\n [vars.overlay.padding]: '0',\n};\n\nexport default dateField;\nexport { vars };\n","export const activeableMixin = (superclass) =>\n class ActiveableMixinClass extends superclass {\n init() {\n super.init?.();\n\n this.baseElement.addEventListener('mousedown', (e) => {\n e.preventDefault();\n this.setAttribute('active', 'true');\n window.addEventListener('mouseup', () => this.removeAttribute('active'), {\n once: true,\n });\n });\n }\n };\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { activeableMixin } from '../../mixins/activableMixin';\n\nexport const componentName = getComponentName('list-item');\n\nconst customMixin = (superclass) =>\n class ListItemMixinClass extends superclass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <style>\n /*css*/\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n\n /*!css*/\n </style>\n <slot></slot>\n `;\n }\n };\n\nexport const ListItemClass = compose(\n createStyleMixin({\n mappings: {\n padding: {},\n backgroundColor: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n borderRadius: {},\n outline: {},\n cursor: {},\n gap: {},\n maxWidth: { selector: () => ':host' },\n alignItems: {},\n flexDirection: {},\n transition: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin,\n activeableMixin\n)(createBaseClass({ componentName, baseSelector: 'slot' }));\n","import { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport { ListItemClass } from './ListItemClass';\n\nexport const componentName = getComponentName('list');\n\nclass RawList extends createBaseClass({ componentName, baseSelector: '.wrapper' }) {\n static get observedAttributes() {\n return ['variant', 'readonly'];\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n\t /*css*/\n .wrapper {\n overflow: auto;\n display: grid;\n max-height: 100%;\n width: 100%;\n }\n\n :host {\n display: inline-flex;\n width: 100%;\n }\n slot[name=\"empty-state\"] {\n justify-content: center;\n align-items: center;\n display: flex;\n flex-grow: 1;\n }\n\n :host slot[name=\"empty-state\"] {\n display: none;\n }\n :host([empty]) slot[name=\"empty-state\"] {\n display: flex;\n }\n ::slotted(:not([slot])) {\n width: 100%;\n }\n /*!css*/\n\t\t</style>\n\n <div class=\"wrapper\">\n <slot></slot>\n <slot name=\"empty-state\">\n No item...\n </slot>\n </div>\n\t`;\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n #handleEmptyState() {\n if (this.items.length === 0) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n }\n\n get variant() {\n return this.getAttribute('variant') || 'list';\n }\n\n #handleItemsVariant() {\n this.items.forEach((item) => {\n let listItem = item;\n if (listItem.localName !== ListItemClass.componentName) {\n listItem = item.querySelector(ListItemClass.componentName);\n }\n\n const listItemVariant = this.variant === 'tiles' ? 'tile' : 'row';\n listItem.setAttribute('variant', listItemVariant);\n });\n }\n\n init() {\n super.init?.();\n\n // we want new items to get the size\n observeChildren(this, () => {\n this.#handleEmptyState();\n this.#handleItemsVariant();\n this.#handleReadOnly();\n });\n }\n\n get isReadOnly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n #handleReadOnly() {\n this.items.forEach((item) => {\n if (this.isReadOnly) item.setAttribute('inert', '');\n else item.removeAttribute('inert');\n });\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (newValue === oldValue) return;\n\n if (name === 'variant') {\n this.#handleItemsVariant();\n } else if (name === 'readonly') {\n this.#handleReadOnly();\n }\n }\n}\n\nexport const ListClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n maxHeight: { selector: () => ':host' },\n minHeight: {},\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [{ property: 'padding-left' }, { property: 'padding-right' }],\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontFamily: {},\n gap: {},\n\n backgroundColor: {},\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n boxShadow: {},\n gridTemplateColumns: {},\n maxItemsWidth: { selector: () => '::slotted(:not([slot]))', property: 'max-width' },\n minItemsWidth: { selector: () => '::slotted(:not([slot]))', property: 'min-width' },\n itemsHorizontalAlign: { selector: () => '::slotted(*)', property: 'justify-self' },\n emptyStateTextColor: { selector: () => 'slot[name=\"empty-state\"]', property: 'color' },\n emptyStateTextFontFamily: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'font-family',\n },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawList);\n","import globals from '../../globals';\nimport { getThemeRefs, createHelperVars, useVar } from '../../../helpers/themeHelpers';\nimport { ListClass, componentName } from '../../../components/descope-list/ListClass';\n\nconst globalRefs = getThemeRefs(globals);\n\nconst compVars = ListClass.cssVarList;\n\nconst [helperTheme, helperRefs, helperVars] = createHelperVars(\n { shadowColor: '#00000020' },\n componentName\n);\n\nconst { shadowColor } = helperRefs;\n\nconst list = {\n ...helperTheme,\n\n [compVars.hostWidth]: '100%',\n [compVars.backgroundColor]: globalRefs.colors.surface.main,\n [compVars.fontFamily]: globalRefs.fonts.font1.family,\n [compVars.borderColor]: globalRefs.colors.surface.light,\n [compVars.borderStyle]: 'solid',\n [compVars.borderWidth]: globalRefs.border.xs,\n [compVars.borderRadius]: globalRefs.radius.sm,\n [compVars.gap]: globalRefs.spacing.md,\n [compVars.verticalPadding]: globalRefs.spacing.lg,\n [compVars.horizontalPadding]: globalRefs.spacing.lg,\n [compVars.boxShadow]: `${globalRefs.shadow.wide.sm} ${shadowColor}, ${globalRefs.shadow.narrow.sm} ${shadowColor}`,\n [compVars.maxHeight]: '100%',\n [compVars.hostDirection]: globalRefs.direction,\n [compVars.minItemsWidth]: '150px',\n\n _empty: {\n [compVars.minHeight]: '150px',\n [compVars.emptyStateTextColor]: globalRefs.colors.surface.dark,\n [compVars.emptyStateTextFontFamily]: globalRefs.fonts.font1.family,\n },\n\n variant: {\n tiles: {\n [compVars.gridTemplateColumns]: `repeat(auto-fit, minmax(min(${useVar(\n compVars.minItemsWidth\n )}, 100%), 1fr))`,\n [compVars.maxItemsWidth]: '200px',\n [compVars.itemsHorizontalAlign]: 'center',\n },\n },\n};\n\nexport default list;\n\nexport const vars = {\n ...compVars,\n ...helperVars,\n};\n","import globals from '../../globals';\nimport { getThemeRefs } from '../../../helpers/themeHelpers';\nimport { ListItemClass } from '../../../components/descope-list/ListItemClass';\n\nconst globalRefs = getThemeRefs(globals);\n\nexport const vars = ListItemClass.cssVarList;\n\nconst list = {\n [vars.backgroundColor]: globalRefs.colors.surface.main,\n [vars.padding]: globalRefs.spacing.lg,\n [vars.gap]: globalRefs.spacing.md,\n [vars.borderStyle]: 'solid',\n [vars.borderWidth]: globalRefs.border.xs,\n [vars.borderColor]: globalRefs.colors.surface.main,\n [vars.borderRadius]: globalRefs.radius.sm,\n [vars.cursor]: 'pointer',\n [vars.alignItems]: 'center',\n [vars.flexDirection]: 'row',\n [vars.transition]: 'border-color 0.2s, background-color 0.2s',\n\n variant: {\n tile: {\n [vars.alignItems]: 'flex-start',\n [vars.flexDirection]: 'column',\n [vars.borderColor]: globalRefs.colors.surface.light,\n },\n },\n\n _hover: {\n [vars.backgroundColor]: globalRefs.colors.surface.highlight,\n },\n\n _active: {\n [vars.backgroundColor]: globalRefs.colors.surface.main,\n [vars.borderColor]: globalRefs.colors.primary.light,\n [vars.outline]: `1px solid ${globalRefs.colors.primary.light}`,\n },\n};\n\nexport default list;\n","import { observeAttributes } from '../helpers/componentHelpers';\n\nconst defaultValidateSchema = () => true;\nconst defaultItemRenderer = (item) => `<pre>${JSON.stringify(item, null, 4)}</pre>`;\n\nconst createTemplate = (templateString) => {\n const template = document.createElement('template');\n template.innerHTML = templateString;\n\n return template;\n};\n\nconst getTemplateContent = (templateOrString) => {\n if (typeof templateOrString === 'string') {\n return createTemplate(templateOrString).content;\n }\n\n if (templateOrString instanceof HTMLTemplateElement) {\n return templateOrString.content;\n }\n\n // eslint-disable-next-line no-console\n console.error('Invalid template', templateOrString);\n return null;\n};\n\nexport const createDynamicDataMixin =\n ({\n itemRenderer = defaultItemRenderer,\n validateSchema = defaultValidateSchema,\n slotName,\n rerenderAttrsList = [],\n }) =>\n (superclass) =>\n class DynamicDataMixinClass extends superclass {\n #data = [];\n\n // eslint-disable-next-line class-methods-use-this\n #validateSchema(data) {\n if (!validateSchema) return true;\n\n const validation = validateSchema(data);\n if (validation === true) return true;\n\n // eslint-disable-next-line no-console\n console.error('Data schema validation failed', validation || '');\n\n return false;\n }\n\n #removeOldItems() {\n const selector = slotName ? `*[slot=\"${slotName}\"]` : ':not([slot])';\n this.baseElement.querySelectorAll(selector).forEach((item) => item.remove());\n }\n\n #renderItems() {\n this.#removeOldItems();\n this.data.forEach((item, index) => {\n const content = getTemplateContent(itemRenderer(item, index, this));\n this.baseElement.appendChild(content?.cloneNode(true));\n });\n }\n\n set data(value) {\n if (this.#validateSchema(value)) {\n this.#data = value;\n this.#renderItems();\n }\n }\n\n get data() {\n return this.#data;\n }\n\n init() {\n super.init?.();\n\n if (rerenderAttrsList.length) {\n observeAttributes(\n this,\n (attrs) => {\n if (attrs.includes('data')) this.#handleDataAttr();\n if (attrs.some((attr) => attr !== 'data')) this.#renderItems();\n },\n { includeAttrs: [...rerenderAttrsList, 'data'] }\n );\n } else {\n this.#renderItems();\n }\n }\n\n #handleDataAttr() {\n const dataAttr = this.getAttribute('data');\n\n if (!dataAttr) return;\n\n try {\n this.#data = JSON.parse(dataAttr);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('Invalid JSON data', dataAttr);\n }\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (newValue === oldValue) return;\n\n if (name === 'data') {\n try {\n this.data = JSON.parse(newValue);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('Invalid JSON data', newValue);\n }\n }\n }\n };\n","import { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n} from '../../mixins';\nimport { createDynamicDataMixin } from '../../mixins/createDynamicDataMixin';\nimport { TextClass } from '../descope-text/TextClass';\n\nexport const componentName = getComponentName('apps-list');\n\nconst limitAbbreviation = (str, limit = 2) =>\n str\n .trim()\n .split(' ')\n .splice(0, limit)\n .map((s) => s[0]?.toUpperCase())\n .join('');\n\nconst itemRenderer = ({ name, icon, url }, _, ref) => `\n <a ${url ? `href=\"${url}\" title=\"${url}\"` : ''} target=\"_blank\">\n <descope-list-item>\n <descope-avatar\n ${icon ? `img=\"${icon}\"` : ''}\n ${name ? `display-name=\"${name}\" abbr=${limitAbbreviation(name)}` : ''}\n size=${ref.size}\n ></descope-avatar>\n <descope-text\n variant=\"body1\"\n mode=\"primary\"\n >${name}</descope-text>\n </descope-list-item>\n </a>\n`;\n\nconst customMixin = (superclass) =>\n class AppsListMixinClass extends superclass {\n get size() {\n return this.getAttribute('size') || 'sm';\n }\n };\n\nexport const AppsListClass = compose(\n createStyleMixin({\n mappings: {\n maxHeight: { selector: () => ':host' },\n minHeight: { selector: () => ':host' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n itemsFontWeight: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontWeight,\n },\n itemsFontSize: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontSize,\n },\n itemsTextAlign: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.textAlign,\n },\n },\n }),\n createDynamicDataMixin({ itemRenderer, rerenderAttrsList: ['size'] }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: ['empty-state'],\n wrappedEleName: 'descope-list',\n excludeAttrsSync: ['tabindex', 'class', 'empty'],\n componentName,\n style: () => `\n :host {\n width: 100%;\n display: inline-flex;\n }\n\n descope-text::part(text-wrapper) {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n a {\n text-decoration: none;\n }\n\n descope-text {\n ${TextClass.cssVarList.hostDirection}: var(${AppsListClass.cssVarList.hostDirection});\n }\n `,\n })\n);\n","import { AppsListClass } from '../../components/descope-apps-list/AppsListClass';\nimport { getThemeRefs } from '../../helpers/themeHelpers';\nimport globals from '../globals';\n\nexport const vars = AppsListClass.cssVarList;\nconst globalRefs = getThemeRefs(globals);\n\nconst defaultHeight = '400px';\n\nconst appsList = {\n [vars.itemsFontWeight]: 'normal',\n [vars.itemsTextAlign]: 'start',\n [vars.hostDirection]: globalRefs.direction,\n [vars.maxHeight]: defaultHeight,\n\n _empty: {\n [vars.minHeight]: defaultHeight,\n },\n\n size: {\n xs: {\n [vars.itemsFontSize]: '14px',\n },\n sm: {\n [vars.itemsFontSize]: '14px',\n },\n md: {\n [vars.itemsFontSize]: '16px',\n },\n lg: {\n [vars.itemsFontSize]: '20px',\n },\n },\n};\n\nexport default appsList;\n","import * as button from './button';\nimport * as textField from './textField';\nimport * as password from './password';\nimport * as numberField from './numberField';\nimport * as emailField from './emailField';\nimport * as textArea from './textArea';\nimport * as checkbox from './checkbox';\nimport * as switchToggle from './switchToggle';\nimport * as container from './container';\nimport * as logo from './logo';\nimport * as totpImage from './totpImage';\nimport * as notpImage from './notpImage';\nimport * as text from './text';\nimport * as enrichedText from './enrichedText';\nimport * as link from './link';\nimport * as divider from './divider';\nimport * as passcode from './passcode';\nimport { loaderRadial, loaderLinear } from './loader';\nimport * as comboBox from './comboBox';\nimport * as image from './image';\nimport * as phoneField from './phoneField';\nimport * as phoneInputBoxField from './phoneInputBoxField';\nimport * as newPassword from './newPassword';\nimport * as inputWrapper from './inputWrapper';\nimport * as uploadFile from './uploadFile';\nimport * as buttonSelectionGroupItem from './buttonSelectionGroup/buttonSelectionGroupItem';\nimport * as buttonSelectionGroup from './buttonSelectionGroup/buttonSelectionGroup';\nimport * as buttonMultiSelectionGroup from './buttonSelectionGroup/buttonMultiSelectionGroup';\nimport * as modal from './modal';\nimport * as grid from './grid';\nimport * as notificationCard from './notificationCard';\nimport * as multiSelectComboBox from './multiSelectComboBox';\nimport * as badge from './badge';\nimport * as avatar from './avatar';\nimport * as mappingsField from './mappingsField';\nimport * as userAttribute from './userAttribute';\nimport * as userAuthMethod from './userAuthMethod';\nimport * as samlGroupMappings from './samlGroupMappings';\nimport * as policyValidation from './policyValidation';\nimport * as icon from './icon';\nimport * as codeSnippet from './codeSnippet';\nimport * as radioGroup from './radioGroup/radioGroup';\nimport * as radioButton from './radioGroup/radioButton';\nimport * as calendar from './calendar';\nimport * as dateField from './dateField';\nimport * as list from './list/list';\nimport * as listItem from './list/listItem';\nimport * as appsList from './appsList';\n\nconst components = {\n button,\n textField,\n password,\n numberField,\n emailField,\n textArea,\n checkbox,\n switchToggle,\n container,\n logo,\n totpImage,\n notpImage,\n text,\n enrichedText,\n link,\n divider,\n passcode,\n loaderRadial,\n loaderLinear,\n comboBox,\n image,\n phoneField,\n phoneInputBoxField,\n newPassword,\n inputWrapper,\n uploadFile,\n buttonSelectionGroupItem,\n buttonSelectionGroup,\n buttonMultiSelectionGroup,\n modal,\n grid,\n notificationCard,\n multiSelectComboBox,\n badge,\n avatar,\n mappingsField,\n userAttribute,\n userAuthMethod,\n samlGroupMappings,\n policyValidation,\n icon,\n codeSnippet,\n radioGroup,\n radioButton,\n calendar,\n dateField,\n list,\n listItem,\n appsList,\n};\n\nconst theme = Object.keys(components).reduce(\n (acc, comp) => ({ ...acc, [comp]: components[comp].default }),\n {}\n);\nconst vars = Object.keys(components).reduce(\n (acc, comp) => ({ ...acc, [comp]: components[comp].vars }),\n {}\n);\n\nexport default theme;\nexport { vars };\n","import globals, { vars as globalsVars } from './globals';\nimport components, { vars as componentsVars } from './components';\n\nexport const defaultTheme = { globals, components };\nexport const themeVars = { globals: globalsVars, components: componentsVars };\n","import merge from 'lodash.merge';\nimport { defaultTheme } from './theme';\nimport { codeSnippetDarkThemeOverrides } from './theme/components/codeSnippet';\n\nexport const colors = {\n surface: {\n main: '#181a1c',\n dark: '#bec4ca',\n light: '#555f68',\n highlight: '#22262a',\n contrast: '#f5f6f7',\n },\n primary: {\n main: '#1f80ff',\n dark: '#71aeff',\n light: '#004094',\n highlight: '#00214d',\n contrast: '#000000',\n },\n secondary: {\n main: '#a665eb',\n dark: '#b9a0f3',\n light: '#683ae6',\n highlight: '#361299',\n contrast: '#000000',\n },\n success: {\n main: '#27963c',\n dark: '#8bc3a2',\n light: '#004d0f',\n highlight: '#001f00',\n contrast: '#000000',\n },\n error: {\n main: '#f85249',\n dark: '#fa7c75',\n light: '#c51107',\n highlight: '#4a0603',\n contrast: '#000000',\n },\n};\n\nconst darkTheme = merge({}, defaultTheme, {\n globals: {\n colors,\n },\n components: {\n ...codeSnippetDarkThemeOverrides,\n },\n});\n\nexport default darkTheme;\n","import { draggableMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('recaptcha');\n\nconst observedAttributes = ['enabled', 'site-key', 'action', 'enterprise'];\n\nconst BaseClass = createBaseClass({\n componentName,\n baseSelector: ':host > div',\n});\nclass RawRecaptcha extends BaseClass {\n static get observedAttributes() {\n return observedAttributes.concat(BaseClass.observedAttributes || []);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (oldValue !== newValue) {\n if (attrName === 'enabled') {\n this.#toggleRecaptcha(newValue === 'true');\n }\n }\n }\n\n renderRecaptcha(enabled) {\n if (enabled) {\n this.recaptchaEle.style.display = '';\n this.mockRecaptchaEle.style.display = 'none';\n } else {\n this.recaptchaEle.style.display = 'none';\n this.mockRecaptchaEle.style.display = '';\n }\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<style>\n :host {\n display: inline-flex;\n }\n :host > div {\n display: flex;\n }\n :host #recaptcha .grecaptcha-badge {\n box-shadow: none !important;\n }\n :host #recaptcha .grecaptcha-logo {\n height: 100%;\n }\n :host #recaptcha {\n\t\t\t\twidth: 100%;\n height: 100%;\n\t\t\t}\n :host img {\n width: 256px;\n }\n\t\t</style>\n <div>\n <span id=\"recaptcha\"></span>\n <img src=\"https://imgs.descope.com/connectors/templates/recaptcha/recaptcha-big.png\" alt=\"recaptcha\"/>\n </div>\n\t`;\n\n this.recaptchaEle = this.baseElement.querySelector('#recaptcha');\n this.mockRecaptchaEle = this.baseElement.querySelector('img');\n }\n\n get enterprise() {\n return this.getAttribute('enterprise') === 'true';\n }\n\n get siteKey() {\n return this.getAttribute('site-key');\n }\n\n get action() {\n return this.getAttribute('action') || 'load';\n }\n\n get enabled() {\n return this.getAttribute('enabled') === 'true';\n }\n\n get scriptURL() {\n const url = new URL('https://www.google.com/recaptcha/');\n url.pathname += `${this.enterprise ? 'enterprise' : 'api'}.js`;\n url.searchParams.append('onload', 'onRecaptchaLoadCallback');\n url.searchParams.append('render', 'explicit');\n return url.toString();\n }\n\n #toggleRecaptcha(enabled) {\n this.renderRecaptcha(enabled);\n if (enabled) {\n this.#createOnLoadScript();\n if (!document.getElementById('recaptcha-script')) {\n this.#loadRecaptchaScript();\n } else {\n window.onRecaptchaLoadCallback();\n }\n }\n }\n\n #loadRecaptchaScript() {\n const script = document.createElement('script');\n script.src = this.scriptURL;\n script.async = true;\n script.id = 'recaptcha-script';\n script.defer = true;\n document.body.appendChild(script);\n }\n\n get grecaptchaInstance() {\n return this.enterprise ? window.grecaptcha?.enterprise : window.grecaptcha;\n }\n\n #getNewToken(grecaptchaInstance, currentNode, recaptchaWidgetId) {\n if (!this.isConnected) {\n return;\n }\n\n grecaptchaInstance.ready(() => {\n // clone the node and append it to the body so that it can be used by the grepcaptcha script\n const cloneNode = currentNode\n .querySelector('textarea[name^=\"g-recaptcha-response\"]')\n ?.cloneNode();\n if (cloneNode) {\n cloneNode.style.display = 'none';\n document.body.appendChild(cloneNode);\n }\n\n // cleaning up the recaptcha element we added to the body\n const removeCloneNode = () => {\n cloneNode.remove();\n };\n\n if (!this.siteKey) {\n return;\n }\n // we should pass recaptchaWidgetId, but this does not allow us to run execute multiple times\n // also calling grecaptchaInstance.reset() does not work\n const exec = grecaptchaInstance?.execute(recaptchaWidgetId, { action: this.action });\n exec.then((token, e) => {\n if (e) {\n // eslint-disable-next-line no-console\n console.warn('could not execute recaptcha', e);\n } else {\n this.updateComponentsContext({\n risktoken: token,\n riskaction: this.action,\n });\n // if the component is still connected, we should try to get a new token before the token expires (2 minutes)\n if (this.isConnected) {\n setTimeout(() => {\n this.#getNewToken(grecaptchaInstance, currentNode, recaptchaWidgetId);\n }, 110000);\n }\n }\n removeCloneNode();\n });\n });\n }\n\n #createOnLoadScript() {\n window.onRecaptchaLoadCallback = () => {\n const currentNode = this.recaptchaEle;\n\n // if there are child nodes, it means that the recaptcha was already rendered\n if (currentNode.hasChildNodes()) {\n return;\n }\n\n const { grecaptchaInstance } = this;\n\n if (!grecaptchaInstance) {\n return;\n }\n\n setTimeout(() => {\n const recaptchaWidgetId = grecaptchaInstance.render(currentNode, {\n sitekey: this.siteKey,\n badge: 'inline',\n size: 'invisible',\n });\n this.#getNewToken(grecaptchaInstance, currentNode, recaptchaWidgetId);\n }, 0);\n };\n }\n}\n\nexport const RecaptchaClass = compose(draggableMixin)(RawRecaptcha);\n","import { compose } from '../../helpers';\nimport { forwardAttrs, getComponentName, syncAttrs } from '../../helpers/componentHelpers';\nimport {\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n hoverableMixin,\n} from '../../mixins';\n\nexport const componentName = getComponentName('notification');\n\nconst NotificationMixin = (superclass) =>\n class NotificationMixinClass extends superclass {\n #card;\n\n constructor() {\n super();\n\n const that = this;\n\n Object.defineProperty(this.baseElement, '_container', {\n get() {\n if (!NotificationMixinClass._container) {\n NotificationMixinClass._container = document.createElement(\n 'descope-notification-container'\n );\n\n // we are overriding the container position to be absolute because we want to keep in inside the flow/widget boundaries\n NotificationMixinClass._container.style.position = 'absolute';\n\n // we're adding the container to body to avoid Vaadin's container's `openChanged`\n // from breaking when trying to remove it directly from the body.\n document.body.appendChild(NotificationMixinClass._container);\n }\n\n if (!NotificationMixinClass._container.isConnected) {\n // Then, we're adding the container to the parentNode, which is the desired location\n // for us on the DOM\n setTimeout(() => that.parentNode.appendChild(NotificationMixinClass._container));\n }\n\n return NotificationMixinClass._container;\n },\n });\n\n Object.defineProperty(this.baseElement, '_card', {\n get() {\n return that.#card;\n },\n });\n\n // we want to replace the card with vaadin's remove notification so it will not throw\n this.baseElement._removeNotificationCard = this.close.bind(this);\n }\n\n close() {\n this.#card.close();\n }\n\n init() {\n super.init?.();\n\n this.createCard();\n\n forwardAttrs(this, this.#card);\n syncAttrs(this.#card, this, { includeAttrs: ['opened'] });\n\n this.baseElement.renderer = (cardRoot) => {\n Array.from(this.childNodes).forEach((child) => cardRoot.appendChild(child));\n };\n }\n\n // eslint-disable-next-line class-methods-use-this\n get isContainerEmpty() {\n return !NotificationMixinClass._container.children.length;\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeContainer() {\n NotificationMixinClass._container.remove();\n }\n\n removeNotification() {\n // remove descope-notification from the DOM\n this.remove();\n // if needed, remove descope-notification-container\n if (this.isContainerEmpty) this.removeContainer();\n }\n\n createCard() {\n this.#card = document.createElement('descope-notification-card');\n this.#card.addEventListener('card-closed', this.removeNotification.bind(this));\n }\n };\n\nexport const NotificationClass = compose(\n draggableMixin,\n componentNameValidationMixin,\n hoverableMixin,\n NotificationMixin\n)(\n createProxy({\n wrappedEleName: 'vaadin-notification',\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n"],"names":["forwardProps","colors","shadow","vars","observedAttributes","componentName","host","label","globalRefs","compVars","helperTheme","helperRefs","helperVars","placeholder","requiredIndicator","inputField","input","helperText","errorMessage","observedAttrs","customMixin","proxyInputMixin","theme","textField","inputElement","textArea","descopeInternalComponentName","component","checkboxLabel","shadowColor","logo","text","selectors","wrapper","link","textCompVars","linkCompVars","textVars","after","internalWrapper","toggle","clearButton","BaseClass","phoneInput","separator","BaseInputClass","icon","title","badge","avatar","buttons","textWrapper","CodeSnippet","childNodeName","calendar","list","button","password","numberField","emailField","checkbox","switchToggle","container","enrichedText","divider","passcode","loaderRadial","loaderLinear","comboBox","image","phoneField","phoneInputBoxField","newPassword","uploadFile","buttonSelectionGroupItem","buttonSelectionGroup","buttonMultiSelectionGroup","modal","grid","multiSelectComboBox","mappingsField","userAttribute","userAuthMethod","samlGroupMappings","policyValidation","radioGroup","radioButton","dateField","appsList","components","globalsVars","componentsVars"],"mappings":"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","x_google_ignoreList":[17]}