@descope/web-components-ui 1.77.0 → 1.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/cjs/index.cjs.js +49 -2
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +49 -2
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/2739.js +1 -1
  6. package/dist/umd/2739.js.map +1 -1
  7. package/dist/umd/7092.js +1 -1
  8. package/dist/umd/7092.js.map +1 -1
  9. package/dist/umd/DescopeDev.js +1 -1
  10. package/dist/umd/DescopeDev.js.map +1 -1
  11. package/dist/umd/boolean-fields-descope-checkbox-index-js.js +1 -1
  12. package/dist/umd/boolean-fields-descope-checkbox-index-js.js.map +1 -1
  13. package/dist/umd/boolean-fields-descope-switch-toggle-index-js.js +1 -1
  14. package/dist/umd/boolean-fields-descope-switch-toggle-index-js.js.map +1 -1
  15. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js +1 -1
  16. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js.map +1 -1
  17. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js +1 -1
  18. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js.map +1 -1
  19. package/dist/umd/descope-date-field-index-js.js +1 -1
  20. package/dist/umd/descope-date-field-index-js.js.map +1 -1
  21. package/dist/umd/descope-email-field-index-js.js +1 -1
  22. package/dist/umd/descope-email-field-index-js.js.map +1 -1
  23. package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js +1 -1
  24. package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js.map +1 -1
  25. package/dist/umd/descope-grid-index-js.js +1 -1
  26. package/dist/umd/descope-grid-index-js.js.map +1 -1
  27. package/dist/umd/descope-hybrid-field-index-js.js +2 -2
  28. package/dist/umd/descope-hybrid-field-index-js.js.map +1 -1
  29. package/dist/umd/descope-multi-select-combo-box-index-js.js +1 -1
  30. package/dist/umd/descope-multi-select-combo-box-index-js.js.map +1 -1
  31. package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js +1 -1
  32. package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js.map +1 -1
  33. package/dist/umd/descope-new-password-index-js.js +1 -1
  34. package/dist/umd/descope-new-password-index-js.js.map +1 -1
  35. package/dist/umd/descope-number-field-index-js.js +1 -1
  36. package/dist/umd/descope-number-field-index-js.js.map +1 -1
  37. package/dist/umd/descope-passcode-index-js.js +2 -2
  38. package/dist/umd/descope-passcode-index-js.js.map +1 -1
  39. package/dist/umd/descope-password-index-js.js +1 -1
  40. package/dist/umd/descope-password-index-js.js.map +1 -1
  41. package/dist/umd/descope-radio-group-index-js.js +1 -1
  42. package/dist/umd/descope-radio-group-index-js.js.map +1 -1
  43. package/dist/umd/descope-scopes-list-index-js.js +1 -1
  44. package/dist/umd/descope-scopes-list-index-js.js.map +1 -1
  45. package/dist/umd/descope-security-questions-setup-index-js.js +1 -1
  46. package/dist/umd/descope-security-questions-setup-index-js.js.map +1 -1
  47. package/dist/umd/descope-security-questions-verify-index-js.js +2 -2
  48. package/dist/umd/descope-security-questions-verify-index-js.js.map +1 -1
  49. package/dist/umd/descope-text-area-index-js.js +1 -1
  50. package/dist/umd/descope-text-area-index-js.js.map +1 -1
  51. package/dist/umd/descope-text-field-index-js.js +2 -2
  52. package/dist/umd/descope-text-field-index-js.js.map +1 -1
  53. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
  54. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js.map +1 -1
  55. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js +1 -1
  56. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js.map +1 -1
  57. package/dist/umd/phone-fields-descope-phone-field-index-js.js +1 -1
  58. package/dist/umd/phone-fields-descope-phone-field-index-js.js.map +1 -1
  59. package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +1 -1
  60. package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js.map +1 -1
  61. package/package.json +6 -6
  62. package/src/components/boolean-fields/descope-checkbox/CheckboxClass.js +1 -0
  63. package/src/components/boolean-fields/descope-switch-toggle/SwitchToggleClass.js +1 -0
  64. package/src/components/button-selection-group-fields/baseButtonSelectionGroup.js +1 -0
  65. package/src/components/descope-hybrid-field/HybridFieldClass.js +10 -0
  66. package/src/components/descope-multi-select-combo-box/MultiSelectComboBoxClass.js +1 -0
  67. package/src/components/descope-new-password/NewPasswordClass.js +1 -0
  68. package/src/components/descope-passcode/PasscodeClass.js +1 -0
  69. package/src/components/descope-password/PasswordClass.js +2 -1
  70. package/src/components/descope-security-questions-verify/SecurityQuestionsVerifyClass.js +4 -0
  71. package/src/components/descope-text-area/TextAreaClass.js +1 -0
  72. package/src/components/descope-text-field/textFieldMappings.js +1 -0
  73. package/src/components/mapping-fields/descope-saml-group-mappings/SamlGroupMappingsClass.js +1 -0
  74. package/src/components/phone-fields/descope-phone-field/PhoneFieldClass.js +2 -1
  75. package/src/components/phone-fields/descope-phone-input-box-field/PhoneFieldInputBoxClass.js +1 -0
  76. package/src/theme/components/buttonSelectionGroup/baseButtonSelectionGroup.js +1 -0
  77. package/src/theme/components/checkbox.js +1 -0
  78. package/src/theme/components/emailField.js +1 -0
  79. package/src/theme/components/hybridField.js +1 -0
  80. package/src/theme/components/inputWrapper.js +1 -0
  81. package/src/theme/components/multiSelectComboBox.js +1 -0
  82. package/src/theme/components/newPassword.js +1 -0
  83. package/src/theme/components/numberField.js +1 -0
  84. package/src/theme/components/passcode.js +1 -0
  85. package/src/theme/components/password.js +1 -0
  86. package/src/theme/components/phoneField.js +1 -0
  87. package/src/theme/components/phoneInputBoxField.js +1 -0
  88. package/src/theme/components/radioGroup/radioGroup.js +1 -0
  89. package/src/theme/components/samlGroupMappings.js +1 -0
  90. package/src/theme/components/switchToggle.js +1 -0
  91. package/src/theme/components/textArea.js +1 -0
  92. package/src/theme/components/textField.js +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"descope-new-password-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/./src/baseClasses/createBaseInputClass.js","webpack://@descope/web-components-ui/./src/components/descope-password/PasswordClass.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/textFieldMappings.js","webpack://@descope/web-components-ui/./src/components/descope-new-password/descope-new-password-internal/componentName.js","webpack://@descope/web-components-ui/./src/components/descope-policy-validation/PolicyValidationClass.js","webpack://@descope/web-components-ui/./src/components/descope-password/passwordDraggableMixin.js","webpack://@descope/web-components-ui/./src/components/descope-password/index.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/index.js","webpack://@descope/web-components-ui/./src/components/descope-policy-validation/index.js","webpack://@descope/web-components-ui/./src/components/descope-new-password/index.js","webpack://@descope/web-components-ui/./src/helpers/themeHelpers/resetHelpers.js","webpack://@descope/web-components-ui/./src/components/descope-new-password/descope-new-password-internal/NewPasswordInternal.js","webpack://@descope/web-components-ui/./src/components/descope-new-password/descope-new-password-internal/index.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/TextFieldClass.js","webpack://@descope/web-components-ui/./src/components/descope-new-password/NewPasswordClass.js","webpack://@descope/web-components-ui/./src/components/descope-policy-validation/helpers.js"],"sourcesContent":["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 {\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 errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\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 inputName: '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","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 inputDirection: { ...input, property: 'direction' },\n\n inputBackgroundColor: [\n { ...inputField, property: 'background-color' },\n { ...inputMask, property: 'background-color' },\n ],\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n\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","import { getComponentName } from '../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('new-password-internal');\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';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('policy-validation');\n\nconst overrideAttrs = [\n 'data-password-policy-value-minlength',\n 'data-password-policy-value-passwordstrength',\n 'data-password-policy-actual-passwordstrength',\n];\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\t\t`;\n\n injectStyle(\n `\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 `,\n this\n );\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 if (attrName === 'data-password-policy-value-passwordstrength') {\n const passwordStrength = parseInt(newValue);\n if (!Number.isNaN(passwordStrength) && passwordStrength >= 0) {\n this.#overrides = {\n ...this.#overrides,\n passwordstrength: {\n ...this.#overrides?.passwordstrength,\n expected: passwordStrength,\n },\n };\n }\n }\n\n if (attrName === 'data-password-policy-actual-passwordstrength') {\n const ln = Number(newValue);\n if (!Number.isNaN(ln) && ln >= 0) {\n this.#overrides = {\n ...this.#overrides,\n passwordstrength: { ...this.#overrides?.passwordstrength, actual: ln },\n };\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 getStrengthScore() {\n return this.value.length;\n }\n\n compareValues(comparison, expected, actual) {\n switch (comparison.toUpperCase()) {\n case 'GTE': // Greater than or equal to\n return actual >= expected;\n case 'GT': // Greater than\n return actual > expected;\n case 'LTE': // Less than or equal to\n return actual <= expected;\n case 'LT': // Less than\n return actual < expected;\n case 'EQ': // Equal to\n return actual === expected;\n case 'NEQ': // Not equal to\n return actual !== expected;\n default:\n throw new Error(`Invalid comparison type: ${comparison}`);\n }\n }\n\n validate() {\n let policies = this.#availablePolicies;\n\n if (this.#overrides) {\n policies = this.#availablePolicies.map((policy) => {\n const data = this.#overrides[policy.id];\n\n if (!data) return policy;\n\n const res = { ...policy, data };\n\n return res;\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, compare } = policy;\n\n if ((!pattern && !compare) || !message) {\n return results;\n }\n\n const validationResult = {\n message: interpolateString(message, data),\n id,\n };\n\n if (pattern) {\n const exp = new RegExp(interpolateString(pattern, data));\n validationResult.valid = exp.test(this.value);\n } else if (compare) {\n validationResult.valid = this.compareValues(\n compare,\n data?.expected ?? -1,\n data?.actual ?? -1\n );\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.textContent = '';\n } else {\n this.label.textContent = 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","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 '@vaadin/password-field';\nimport { componentName, PasswordClass } from './PasswordClass';\n\ncustomElements.define(componentName, PasswordClass);\n\nexport { PasswordClass, componentName };\n","import '@vaadin/text-field';\nimport '@vaadin/icons';\nimport '@vaadin/icon';\n\nimport { componentName, TextFieldClass } from './TextFieldClass';\n\ncustomElements.define(componentName, TextFieldClass);\n\nexport { TextFieldClass, componentName };\n","import { componentName, PolicyValidationClass } from './PolicyValidationClass';\n\ncustomElements.define(componentName, PolicyValidationClass);\n\nexport { PolicyValidationClass, componentName };\n","import { componentName, NewPasswordClass } from './NewPasswordClass';\nimport '../descope-text-field';\nimport '../descope-password';\nimport '../descope-policy-validation';\nimport './descope-new-password-internal';\n\ncustomElements.define(componentName, NewPasswordClass);\n\nexport { NewPasswordClass, componentName };\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 { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseInputClass } from '../../../baseClasses/createBaseInputClass';\nimport { forwardAttrs, observeAttributes } from '../../../helpers/componentHelpers';\nimport { NewPasswordClass } from '../NewPasswordClass';\nimport { componentName } from './componentName';\n\nconst passwordAttrPrefixRegex = /^password-/;\nconst confirmAttrPrefixRegex = /^confirm-/;\n\nconst removeAttrPrefix = (attr, prefix) => attr.replace(prefix, '');\n\nconst passwordInputAttrs = ['password-label', 'password-placeholder'];\nconst confirmInputAttrs = ['confirm-label', 'confirm-placeholder'];\nconst policyPanelAttrs = [\n 'has-validation',\n 'policy-label',\n 'available-policies',\n 'active-policies',\n 'data-password-policy-value-minlength',\n 'data-password-policy-value-passwordstrength',\n 'manual-visibility-toggle',\n];\nconst commonAttrs = [\n 'has-confirm',\n 'disabled',\n 'bordered',\n 'size',\n 'full-width',\n 'maxlength',\n 'invalid',\n 'readonly',\n 'draggable',\n 'autocomplete',\n 'label-type',\n 'manual-visibility-toggle',\n];\n\nconst inputRelatedAttrs = [].concat(\n commonAttrs,\n passwordInputAttrs,\n confirmInputAttrs,\n policyPanelAttrs\n);\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass NewPasswordInternal extends BaseInputClass {\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], inputRelatedAttrs);\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n\t\t\t<div class=\"wrapper\"></div>\n\t\t`;\n\n this.wrapperEle = this.querySelector('.wrapper');\n }\n\n get value() {\n return this.passwordInput?.value || '';\n }\n\n set value(val) {\n if (val === this.value) return;\n this.passwordInput.value = val;\n }\n\n get hasConfirm() {\n return this.getAttribute('has-confirm') === 'true';\n }\n\n onHasConfirmChange(hasConfirm) {\n this.confirmInput.classList.toggle('hidden', !hasConfirm);\n }\n\n onHasValidationChange(hasValidation) {\n this.policyPanel.classList.toggle('hidden', !hasValidation);\n }\n\n get hasValidation() {\n return this.getAttribute('has-validation') === 'true';\n }\n\n getValidity() {\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n\n if (this.value && !this.policyPanel.isValid) {\n return { typeMismatch: true };\n }\n\n if (this.hasConfirm && this.confirmInput && this.value !== this.confirmInput.value) {\n return { patternMismatch: true };\n }\n\n const min = this.getAttribute('minlength');\n const minVal = parseInt(min, 10) || 0;\n const minValid = this.value.length >= minVal;\n if (!minValid) {\n return { tooShort: 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) {\n this.passwordInput.focus();\n }\n });\n super.init?.();\n this.renderInputs(this.hasConfirm, this.hasValidation);\n }\n\n renderInputs() {\n const hasExternalInput = this.getAttribute('external-input') === 'true';\n const template = `\n <div class=\"password-input-container\">\n <descope-password\n autocomplete=\"new-password\"\n manual-visibility-toggle=\"true\"\n data-id=\"password\"\n external-input=\"${hasExternalInput}\"\n ></descope-password>\n <descope-policy-validation></descope-policy-validation>\n </div>\n <descope-password\n autocomplete=\"new-password\"\n manual-visibility-toggle=\"true\"\n external-input=\"${hasExternalInput}\"\n data-id=\"confirm\"\n ></descope-password>\n `;\n\n this.wrapperEle.innerHTML = template;\n\n this.passwordInput = this.querySelector('[data-id=\"password\"]');\n this.confirmInput = this.querySelector('[data-id=\"confirm\"]');\n this.policyPanel = this.querySelector('descope-policy-validation');\n this.passwordStrength = this.querySelector('descope-password-strength');\n\n this.inputs = [this.passwordInput, this.confirmInput];\n\n this.initInputs();\n\n // sync input value to policy validation panel\n this.passwordInput.addEventListener('input', (e) => {\n this.passwordStrength?.addEventListener(\n 'score-changed',\n ({ detail }) => {\n this.policyPanel.setAttribute('data-password-policy-actual-passwordstrength', detail);\n },\n { once: true }\n );\n this.passwordStrength?.setAttribute('value', e.target.value);\n this.policyPanel.setAttribute('value', e.target.value);\n });\n\n forwardAttrs(this, this.policyPanel, {\n includeAttrs: policyPanelAttrs,\n mapAttrs: {\n 'policy-label': 'label',\n 'available-policies': 'data',\n },\n });\n }\n\n // the inputs are not required but we still want it to have a required\n // indicator in case the root component is required\n handleIndicatorStyle() {\n this.inputs.forEach((input) => {\n injectStyle(\n `\n\t\t\t\t:host ::part(required-indicator)::after {\n\t\t\t\t\tcontent: var(${NewPasswordClass.cssVarList.inputsRequiredIndicator});\n width: 1em;\n text-align: center;\n\t\t\t\t}\n :host ::part(required-indicator) {\n display: inline-flex;\n }\n\t\t\t\t`,\n input\n );\n });\n }\n\n get isInvalid() {\n return this.hasAttribute('invalid') && this.getAttribute('invalid') !== 'false';\n }\n\n // for some reason, Vaadin is removing the invalid attribute on several events,\n // e.g. focus, input, etc..., so we need to make sure the inputs will stay invalid\n // if the root component is invalid\n handleInputsInvalidAttribute() {\n this.inputs.forEach((input) => {\n input &&\n observeAttributes(\n input,\n (changedAttributes) => {\n if (changedAttributes.includes('invalid')) {\n const inputInvalidValue = input.getAttribute('invalid');\n const rootInvalidValue = this.getAttribute('invalid');\n\n if (this.isInvalid && rootInvalidValue !== inputInvalidValue) {\n input.setAttribute('invalid', 'true');\n }\n }\n },\n {}\n );\n });\n }\n\n initInputs() {\n this.handleIndicatorStyle();\n this.handleInputsInvalidAttribute();\n this.handleFocusEventsDispatching(this.inputs);\n }\n\n async togglePasswordStrength() {\n if (this.activePolicies.includes('passwordstrength')) {\n if (!this.passwordStrength) {\n await import('@descope-ui/descope-password-strength');\n this.passwordStrength = document.createElement('descope-password-strength');\n this.passwordStrength.setAttribute('options', 'Very weak,Weak,Average,Strong,Very strong');\n this.passwordStrength.setAttribute('value', this.passwordInput.value || '');\n this.passwordStrength.setAttribute(\n 'st-host-direction',\n this.getAttribute('st-host-direction')\n );\n this.passwordStrength.setAttribute('full-width', 'true');\n this.querySelector('.password-input-container').insertBefore(\n this.passwordStrength,\n this.policyPanel\n );\n }\n } else {\n if (this.passwordStrength) {\n this.passwordStrength.remove();\n this.passwordStrength = null;\n }\n }\n }\n\n get activePolicies() {\n return (this.getAttribute('active-policies') || '').split(',');\n }\n\n // eslint-disable-next-line class-methods-use-this\n toggleBooleanAttribute(ele, name, value) {\n value === null ? ele?.removeAttribute(name) : ele?.setAttribute(name, value);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'has-validation') {\n this.onHasValidationChange(newValue === 'true');\n } else if (attrName === 'has-confirm') {\n this.onHasConfirmChange(newValue === 'true');\n } else if (commonAttrs.includes(attrName)) {\n this.inputs.forEach((input) => this.toggleBooleanAttribute(input, attrName, newValue));\n } else if (passwordInputAttrs.includes(attrName)) {\n this.toggleBooleanAttribute(\n this.passwordInput,\n removeAttrPrefix(attrName, passwordAttrPrefixRegex),\n newValue\n );\n } else if (confirmInputAttrs.includes(attrName)) {\n this.toggleBooleanAttribute(\n this.confirmInput,\n removeAttrPrefix(attrName, confirmAttrPrefixRegex),\n newValue\n );\n }\n if (attrName === 'active-policies') {\n this.togglePasswordStrength();\n }\n }\n }\n}\n\nexport default NewPasswordInternal;\n","import NewPasswordInternal from './NewPasswordInternal';\nimport { componentName } from './componentName';\n\ncustomElements.define(componentName, NewPasswordInternal);\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', 'style'],\n componentName,\n })\n);\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 'data-password-policy-value-passwordstrength',\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('name', this.getAttribute('name'));\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 errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\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 .hidden {\n display: none;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","export const interpolateString = (template, values) =>\n template.replace(/{{(\\w+)+}}/g, (match, key) => values?.[key] || match);\n"],"names":["createBaseInputClass","args","componentName","host","inputField","inputElement","inputElementPlaceholder","revealButtonContainer","revealButtonIcon","label","requiredIndicator","errorMessage","helperText","selector","PasswordClass","mappings","hostWidth","property","hostMinWidth","hostDirection","fontSize","fontFamily","inputHeight","inputHorizontalPadding","inputBackgroundColor","inputBorderStyle","inputBorderWidth","inputBorderColor","inputBorderRadius","inputOutlineColor","inputOutlineStyle","inputOutlineOffset","inputOutlineWidth","labelFontSize","labelFontWeight","labelTextColor","labelRequiredIndicator","errorMessageTextColor","errorMessageIcon","errorMessageIconSize","errorMessageIconPadding","errorMessageIconRepeat","errorMessageIconPosition","inputPlaceholderTextColor","inputValueTextColor","revealButtonOffset","revealButtonSize","revealButtonColor","labelPosition","labelTopPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","valueInputHeight","inputType","inputName","includeAttrs","noBlurDispatch","proxyProps","useProxyTargets","superclass","observedAttributes","manualToggleVisibility","this","getAttribute","init","super","handleCaretOnVisibilityChange","origSetPasswordVisible","baseElement","_setPasswordVisible","origSetFocused","_setFocused","setFocus","bind","initExternalInput","externalInput","createExternalInput","handlePasswordVisibility","caretPosition","value","length","origTogglePasswordVisibility","_togglePasswordVisibility","setTimeout","setSelectionRange","focused","call","resetPasswordVisibilityToggle","origSetFocus","attributeChangedCallback","attrName","oldValue","newValue","origBoundRevealButtonMouseDown","__boundRevealButtonMouseDown","querySelector","removeEventListener","_passwordVisibleChanged","showPasswordVisibility","hidePasswordVisibility","input","setAttribute","slots","wrappedEleName","style","cssVarList","excludeAttrsSync","placeholder","inputMask","disabledPlaceholder","inputDisabled","inputIcon","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","inputDirection","helperTextColor","inputCaretTextColor","textAlign","inputTextAlign","inputPlaceholderColor","valueInputMarginBottom","inputIconOffset","inputIconSize","inputIconColor","dataAttrs","policyAttrs","RawPolicyValidation","baseSelector","constructor","attachShadow","mode","innerHTML","panel","shadowRoot","list","updateLabel","includes","availablePolicies","JSON","parse","console","error","split","ln","Number","isNaN","minlength","passwordStrength","parseInt","passwordstrength","expected","actual","renderItems","val","getStrengthScore","compareValues","comparison","toUpperCase","Error","validate","policies","map","policy","data","id","reduce","results","find","p","pattern","message","compare","validationResult","exp","RegExp","valid","test","push","isValid","some","getValidationItemTemplate","activePolicies","join","textContent","classList","remove","add","item","symbolDefault","symbolSuccess","symbolError","PolicyValidationClass","componentNameOverride","padding","borderWidth","borderStyle","borderColor","borderRadius","backgroundColor","textColor","labelMargin","itemsSpacing","itemSymbolSuccessColor","itemSymbolErrorColor","itemSymbolDefault","itemSymbolSuccess","itemSymbolError","isReadOnly","hasAttribute","ele","addEventListener","e","isDraggable","inputEle","target","prevType","focus","onComplete","_","removeAttribute","once","customElements","define","useHostExternalPadding","resetInputContainer","name","resetInputField","resetInputCursor","resetInputPlaceholder","resetInputFieldDefaultWidth","resetInputReadonlyStyle","resetInputFieldInvalidBackgroundColor","resetInputOverrides","resetInputAutoFill","resetInitialHeight","resetInputElement","resetInputFieldUnderlayingBorder","resetInputLabelPosition","inputFloatingLabelStyle","passwordAttrPrefixRegex","confirmAttrPrefixRegex","removeAttrPrefix","attr","prefix","replace","passwordInputAttrs","confirmInputAttrs","policyPanelAttrs","commonAttrs","inputRelatedAttrs","concat","BaseInputClass","wrapperEle","passwordInput","hasConfirm","onHasConfirmChange","confirmInput","toggle","onHasValidationChange","hasValidation","policyPanel","getValidity","isRequired","valueMissing","typeMismatch","patternMismatch","min","minVal","tooShort","isTrusted","renderInputs","hasExternalInput","template","inputs","initInputs","detail","mapAttrs","handleIndicatorStyle","forEach","NewPasswordClass","inputsRequiredIndicator","isInvalid","handleInputsInvalidAttribute","changedAttributes","inputInvalidValue","rootInvalidValue","handleFocusEventsDispatching","togglePasswordStrength","document","createElement","insertBefore","toggleBooleanAttribute","observedAttrs","TextFieldClass","icon","renderCopyToClipboard","shouldRender","iconInitConfig","title","iconCopiedConfig","Object","assign","slot","appendChild","navigator","clipboard","writeText","onLabelClick","oldVal","newVal","attributeChangeCallback","_setType","policyPreviewVars","internalInputsWrapper","policyPreview","spaceBetweenInputs","policyPreviewBackgroundColor","policyPreviewPadding","externalInputAttr","content","cloneNode","createSlottedExternalInput","node","slotName","slotEle","targetSlot","interpolateString","values","match","key"],"sourceRoot":""}
1
+ {"version":3,"file":"descope-new-password-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/./src/baseClasses/createBaseInputClass.js","webpack://@descope/web-components-ui/./src/components/descope-password/PasswordClass.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/textFieldMappings.js","webpack://@descope/web-components-ui/./src/components/descope-new-password/descope-new-password-internal/componentName.js","webpack://@descope/web-components-ui/./src/components/descope-policy-validation/PolicyValidationClass.js","webpack://@descope/web-components-ui/./src/components/descope-password/passwordDraggableMixin.js","webpack://@descope/web-components-ui/./src/components/descope-password/index.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/index.js","webpack://@descope/web-components-ui/./src/components/descope-policy-validation/index.js","webpack://@descope/web-components-ui/./src/components/descope-new-password/index.js","webpack://@descope/web-components-ui/./src/helpers/themeHelpers/resetHelpers.js","webpack://@descope/web-components-ui/./src/components/descope-new-password/descope-new-password-internal/NewPasswordInternal.js","webpack://@descope/web-components-ui/./src/components/descope-new-password/descope-new-password-internal/index.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/TextFieldClass.js","webpack://@descope/web-components-ui/./src/components/descope-new-password/NewPasswordClass.js","webpack://@descope/web-components-ui/./src/components/descope-policy-validation/helpers.js"],"sourcesContent":["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 {\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 errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n errorMessageFontSize: { ...errorMessage, property: 'font-size' },\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 inputName: '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","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 inputDirection: { ...input, property: 'direction' },\n\n inputBackgroundColor: [\n { ...inputField, property: 'background-color' },\n { ...inputMask, property: 'background-color' },\n ],\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n errorMessageFontSize: { ...errorMessage, property: 'font-size' },\n\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","import { getComponentName } from '../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('new-password-internal');\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';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('policy-validation');\n\nconst overrideAttrs = [\n 'data-password-policy-value-minlength',\n 'data-password-policy-value-passwordstrength',\n 'data-password-policy-actual-passwordstrength',\n];\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\t\t`;\n\n injectStyle(\n `\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 `,\n this\n );\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 if (attrName === 'data-password-policy-value-passwordstrength') {\n const passwordStrength = parseInt(newValue);\n if (!Number.isNaN(passwordStrength) && passwordStrength >= 0) {\n this.#overrides = {\n ...this.#overrides,\n passwordstrength: {\n ...this.#overrides?.passwordstrength,\n expected: passwordStrength,\n },\n };\n }\n }\n\n if (attrName === 'data-password-policy-actual-passwordstrength') {\n const ln = Number(newValue);\n if (!Number.isNaN(ln) && ln >= 0) {\n this.#overrides = {\n ...this.#overrides,\n passwordstrength: { ...this.#overrides?.passwordstrength, actual: ln },\n };\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 getStrengthScore() {\n return this.value.length;\n }\n\n compareValues(comparison, expected, actual) {\n switch (comparison.toUpperCase()) {\n case 'GTE': // Greater than or equal to\n return actual >= expected;\n case 'GT': // Greater than\n return actual > expected;\n case 'LTE': // Less than or equal to\n return actual <= expected;\n case 'LT': // Less than\n return actual < expected;\n case 'EQ': // Equal to\n return actual === expected;\n case 'NEQ': // Not equal to\n return actual !== expected;\n default:\n throw new Error(`Invalid comparison type: ${comparison}`);\n }\n }\n\n validate() {\n let policies = this.#availablePolicies;\n\n if (this.#overrides) {\n policies = this.#availablePolicies.map((policy) => {\n const data = this.#overrides[policy.id];\n\n if (!data) return policy;\n\n const res = { ...policy, data };\n\n return res;\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, compare } = policy;\n\n if ((!pattern && !compare) || !message) {\n return results;\n }\n\n const validationResult = {\n message: interpolateString(message, data),\n id,\n };\n\n if (pattern) {\n const exp = new RegExp(interpolateString(pattern, data));\n validationResult.valid = exp.test(this.value);\n } else if (compare) {\n validationResult.valid = this.compareValues(\n compare,\n data?.expected ?? -1,\n data?.actual ?? -1\n );\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.textContent = '';\n } else {\n this.label.textContent = 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","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 '@vaadin/password-field';\nimport { componentName, PasswordClass } from './PasswordClass';\n\ncustomElements.define(componentName, PasswordClass);\n\nexport { PasswordClass, componentName };\n","import '@vaadin/text-field';\nimport '@vaadin/icons';\nimport '@vaadin/icon';\n\nimport { componentName, TextFieldClass } from './TextFieldClass';\n\ncustomElements.define(componentName, TextFieldClass);\n\nexport { TextFieldClass, componentName };\n","import { componentName, PolicyValidationClass } from './PolicyValidationClass';\n\ncustomElements.define(componentName, PolicyValidationClass);\n\nexport { PolicyValidationClass, componentName };\n","import { componentName, NewPasswordClass } from './NewPasswordClass';\nimport '../descope-text-field';\nimport '../descope-password';\nimport '../descope-policy-validation';\nimport './descope-new-password-internal';\n\ncustomElements.define(componentName, NewPasswordClass);\n\nexport { NewPasswordClass, componentName };\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 { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseInputClass } from '../../../baseClasses/createBaseInputClass';\nimport { forwardAttrs, observeAttributes } from '../../../helpers/componentHelpers';\nimport { NewPasswordClass } from '../NewPasswordClass';\nimport { componentName } from './componentName';\n\nconst passwordAttrPrefixRegex = /^password-/;\nconst confirmAttrPrefixRegex = /^confirm-/;\n\nconst removeAttrPrefix = (attr, prefix) => attr.replace(prefix, '');\n\nconst passwordInputAttrs = ['password-label', 'password-placeholder'];\nconst confirmInputAttrs = ['confirm-label', 'confirm-placeholder'];\nconst policyPanelAttrs = [\n 'has-validation',\n 'policy-label',\n 'available-policies',\n 'active-policies',\n 'data-password-policy-value-minlength',\n 'data-password-policy-value-passwordstrength',\n 'manual-visibility-toggle',\n];\nconst commonAttrs = [\n 'has-confirm',\n 'disabled',\n 'bordered',\n 'size',\n 'full-width',\n 'maxlength',\n 'invalid',\n 'readonly',\n 'draggable',\n 'autocomplete',\n 'label-type',\n 'manual-visibility-toggle',\n];\n\nconst inputRelatedAttrs = [].concat(\n commonAttrs,\n passwordInputAttrs,\n confirmInputAttrs,\n policyPanelAttrs\n);\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass NewPasswordInternal extends BaseInputClass {\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], inputRelatedAttrs);\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n\t\t\t<div class=\"wrapper\"></div>\n\t\t`;\n\n this.wrapperEle = this.querySelector('.wrapper');\n }\n\n get value() {\n return this.passwordInput?.value || '';\n }\n\n set value(val) {\n if (val === this.value) return;\n this.passwordInput.value = val;\n }\n\n get hasConfirm() {\n return this.getAttribute('has-confirm') === 'true';\n }\n\n onHasConfirmChange(hasConfirm) {\n this.confirmInput.classList.toggle('hidden', !hasConfirm);\n }\n\n onHasValidationChange(hasValidation) {\n this.policyPanel.classList.toggle('hidden', !hasValidation);\n }\n\n get hasValidation() {\n return this.getAttribute('has-validation') === 'true';\n }\n\n getValidity() {\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n\n if (this.value && !this.policyPanel.isValid) {\n return { typeMismatch: true };\n }\n\n if (this.hasConfirm && this.confirmInput && this.value !== this.confirmInput.value) {\n return { patternMismatch: true };\n }\n\n const min = this.getAttribute('minlength');\n const minVal = parseInt(min, 10) || 0;\n const minValid = this.value.length >= minVal;\n if (!minValid) {\n return { tooShort: 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) {\n this.passwordInput.focus();\n }\n });\n super.init?.();\n this.renderInputs(this.hasConfirm, this.hasValidation);\n }\n\n renderInputs() {\n const hasExternalInput = this.getAttribute('external-input') === 'true';\n const template = `\n <div class=\"password-input-container\">\n <descope-password\n autocomplete=\"new-password\"\n manual-visibility-toggle=\"true\"\n data-id=\"password\"\n external-input=\"${hasExternalInput}\"\n ></descope-password>\n <descope-policy-validation></descope-policy-validation>\n </div>\n <descope-password\n autocomplete=\"new-password\"\n manual-visibility-toggle=\"true\"\n external-input=\"${hasExternalInput}\"\n data-id=\"confirm\"\n ></descope-password>\n `;\n\n this.wrapperEle.innerHTML = template;\n\n this.passwordInput = this.querySelector('[data-id=\"password\"]');\n this.confirmInput = this.querySelector('[data-id=\"confirm\"]');\n this.policyPanel = this.querySelector('descope-policy-validation');\n this.passwordStrength = this.querySelector('descope-password-strength');\n\n this.inputs = [this.passwordInput, this.confirmInput];\n\n this.initInputs();\n\n // sync input value to policy validation panel\n this.passwordInput.addEventListener('input', (e) => {\n this.passwordStrength?.addEventListener(\n 'score-changed',\n ({ detail }) => {\n this.policyPanel.setAttribute('data-password-policy-actual-passwordstrength', detail);\n },\n { once: true }\n );\n this.passwordStrength?.setAttribute('value', e.target.value);\n this.policyPanel.setAttribute('value', e.target.value);\n });\n\n forwardAttrs(this, this.policyPanel, {\n includeAttrs: policyPanelAttrs,\n mapAttrs: {\n 'policy-label': 'label',\n 'available-policies': 'data',\n },\n });\n }\n\n // the inputs are not required but we still want it to have a required\n // indicator in case the root component is required\n handleIndicatorStyle() {\n this.inputs.forEach((input) => {\n injectStyle(\n `\n\t\t\t\t:host ::part(required-indicator)::after {\n\t\t\t\t\tcontent: var(${NewPasswordClass.cssVarList.inputsRequiredIndicator});\n width: 1em;\n text-align: center;\n\t\t\t\t}\n :host ::part(required-indicator) {\n display: inline-flex;\n }\n\t\t\t\t`,\n input\n );\n });\n }\n\n get isInvalid() {\n return this.hasAttribute('invalid') && this.getAttribute('invalid') !== 'false';\n }\n\n // for some reason, Vaadin is removing the invalid attribute on several events,\n // e.g. focus, input, etc..., so we need to make sure the inputs will stay invalid\n // if the root component is invalid\n handleInputsInvalidAttribute() {\n this.inputs.forEach((input) => {\n input &&\n observeAttributes(\n input,\n (changedAttributes) => {\n if (changedAttributes.includes('invalid')) {\n const inputInvalidValue = input.getAttribute('invalid');\n const rootInvalidValue = this.getAttribute('invalid');\n\n if (this.isInvalid && rootInvalidValue !== inputInvalidValue) {\n input.setAttribute('invalid', 'true');\n }\n }\n },\n {}\n );\n });\n }\n\n initInputs() {\n this.handleIndicatorStyle();\n this.handleInputsInvalidAttribute();\n this.handleFocusEventsDispatching(this.inputs);\n }\n\n async togglePasswordStrength() {\n if (this.activePolicies.includes('passwordstrength')) {\n if (!this.passwordStrength) {\n await import('@descope-ui/descope-password-strength');\n this.passwordStrength = document.createElement('descope-password-strength');\n this.passwordStrength.setAttribute('options', 'Very weak,Weak,Average,Strong,Very strong');\n this.passwordStrength.setAttribute('value', this.passwordInput.value || '');\n this.passwordStrength.setAttribute(\n 'st-host-direction',\n this.getAttribute('st-host-direction')\n );\n this.passwordStrength.setAttribute('full-width', 'true');\n this.querySelector('.password-input-container').insertBefore(\n this.passwordStrength,\n this.policyPanel\n );\n }\n } else {\n if (this.passwordStrength) {\n this.passwordStrength.remove();\n this.passwordStrength = null;\n }\n }\n }\n\n get activePolicies() {\n return (this.getAttribute('active-policies') || '').split(',');\n }\n\n // eslint-disable-next-line class-methods-use-this\n toggleBooleanAttribute(ele, name, value) {\n value === null ? ele?.removeAttribute(name) : ele?.setAttribute(name, value);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'has-validation') {\n this.onHasValidationChange(newValue === 'true');\n } else if (attrName === 'has-confirm') {\n this.onHasConfirmChange(newValue === 'true');\n } else if (commonAttrs.includes(attrName)) {\n this.inputs.forEach((input) => this.toggleBooleanAttribute(input, attrName, newValue));\n } else if (passwordInputAttrs.includes(attrName)) {\n this.toggleBooleanAttribute(\n this.passwordInput,\n removeAttrPrefix(attrName, passwordAttrPrefixRegex),\n newValue\n );\n } else if (confirmInputAttrs.includes(attrName)) {\n this.toggleBooleanAttribute(\n this.confirmInput,\n removeAttrPrefix(attrName, confirmAttrPrefixRegex),\n newValue\n );\n }\n if (attrName === 'active-policies') {\n this.togglePasswordStrength();\n }\n }\n }\n}\n\nexport default NewPasswordInternal;\n","import NewPasswordInternal from './NewPasswordInternal';\nimport { componentName } from './componentName';\n\ncustomElements.define(componentName, NewPasswordInternal);\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', 'style'],\n componentName,\n })\n);\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 'data-password-policy-value-passwordstrength',\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('name', this.getAttribute('name'));\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 errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n errorMessageFontSize: { ...errorMessage, property: 'font-size' },\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 .hidden {\n display: none;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n","export const interpolateString = (template, values) =>\n template.replace(/{{(\\w+)+}}/g, (match, key) => values?.[key] || match);\n"],"names":["createBaseInputClass","args","componentName","host","inputField","inputElement","inputElementPlaceholder","revealButtonContainer","revealButtonIcon","label","requiredIndicator","errorMessage","helperText","selector","PasswordClass","mappings","hostWidth","property","hostMinWidth","hostDirection","fontSize","fontFamily","inputHeight","inputHorizontalPadding","inputBackgroundColor","inputBorderStyle","inputBorderWidth","inputBorderColor","inputBorderRadius","inputOutlineColor","inputOutlineStyle","inputOutlineOffset","inputOutlineWidth","labelFontSize","labelFontWeight","labelTextColor","labelRequiredIndicator","errorMessageTextColor","errorMessageIcon","errorMessageIconSize","errorMessageIconPadding","errorMessageIconRepeat","errorMessageIconPosition","errorMessageFontSize","inputPlaceholderTextColor","inputValueTextColor","revealButtonOffset","revealButtonSize","revealButtonColor","labelPosition","labelTopPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","valueInputHeight","inputType","inputName","includeAttrs","noBlurDispatch","proxyProps","useProxyTargets","superclass","observedAttributes","manualToggleVisibility","this","getAttribute","init","super","handleCaretOnVisibilityChange","origSetPasswordVisible","baseElement","_setPasswordVisible","origSetFocused","_setFocused","setFocus","bind","initExternalInput","externalInput","createExternalInput","handlePasswordVisibility","caretPosition","value","length","origTogglePasswordVisibility","_togglePasswordVisibility","setTimeout","setSelectionRange","focused","call","resetPasswordVisibilityToggle","origSetFocus","attributeChangedCallback","attrName","oldValue","newValue","origBoundRevealButtonMouseDown","__boundRevealButtonMouseDown","querySelector","removeEventListener","_passwordVisibleChanged","showPasswordVisibility","hidePasswordVisibility","input","setAttribute","slots","wrappedEleName","style","cssVarList","excludeAttrsSync","placeholder","inputMask","disabledPlaceholder","inputDisabled","inputIcon","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","inputDirection","helperTextColor","inputCaretTextColor","textAlign","inputTextAlign","inputPlaceholderColor","valueInputMarginBottom","inputIconOffset","inputIconSize","inputIconColor","dataAttrs","policyAttrs","RawPolicyValidation","baseSelector","constructor","attachShadow","mode","innerHTML","panel","shadowRoot","list","updateLabel","includes","availablePolicies","JSON","parse","console","error","split","ln","Number","isNaN","minlength","passwordStrength","parseInt","passwordstrength","expected","actual","renderItems","val","getStrengthScore","compareValues","comparison","toUpperCase","Error","validate","policies","map","policy","data","id","reduce","results","find","p","pattern","message","compare","validationResult","exp","RegExp","valid","test","push","isValid","some","getValidationItemTemplate","activePolicies","join","textContent","classList","remove","add","item","symbolDefault","symbolSuccess","symbolError","PolicyValidationClass","componentNameOverride","padding","borderWidth","borderStyle","borderColor","borderRadius","backgroundColor","textColor","labelMargin","itemsSpacing","itemSymbolSuccessColor","itemSymbolErrorColor","itemSymbolDefault","itemSymbolSuccess","itemSymbolError","isReadOnly","hasAttribute","ele","addEventListener","e","isDraggable","inputEle","target","prevType","focus","onComplete","_","removeAttribute","once","customElements","define","useHostExternalPadding","resetInputContainer","name","resetInputField","resetInputCursor","resetInputPlaceholder","resetInputFieldDefaultWidth","resetInputReadonlyStyle","resetInputFieldInvalidBackgroundColor","resetInputOverrides","resetInputAutoFill","resetInitialHeight","resetInputElement","resetInputFieldUnderlayingBorder","resetInputLabelPosition","inputFloatingLabelStyle","passwordAttrPrefixRegex","confirmAttrPrefixRegex","removeAttrPrefix","attr","prefix","replace","passwordInputAttrs","confirmInputAttrs","policyPanelAttrs","commonAttrs","inputRelatedAttrs","concat","BaseInputClass","wrapperEle","passwordInput","hasConfirm","onHasConfirmChange","confirmInput","toggle","onHasValidationChange","hasValidation","policyPanel","getValidity","isRequired","valueMissing","typeMismatch","patternMismatch","min","minVal","tooShort","isTrusted","renderInputs","hasExternalInput","template","inputs","initInputs","detail","mapAttrs","handleIndicatorStyle","forEach","NewPasswordClass","inputsRequiredIndicator","isInvalid","handleInputsInvalidAttribute","changedAttributes","inputInvalidValue","rootInvalidValue","handleFocusEventsDispatching","togglePasswordStrength","document","createElement","insertBefore","toggleBooleanAttribute","observedAttrs","TextFieldClass","icon","renderCopyToClipboard","shouldRender","iconInitConfig","title","iconCopiedConfig","Object","assign","slot","appendChild","navigator","clipboard","writeText","onLabelClick","oldVal","newVal","attributeChangeCallback","_setType","policyPreviewVars","internalInputsWrapper","policyPreview","spaceBetweenInputs","policyPreviewBackgroundColor","policyPreviewPadding","externalInputAttr","content","cloneNode","createSlottedExternalInput","node","slotName","slotEle","targetSlot","interpolateString","values","match","key"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[7944],{6424:(e,t,r)=>{r.d(t,{A:()=>m});const{host:n,label:o,placeholder:i,requiredIndicator:l,inputField:p,input:a,inputMask:d,helperText:s,errorMessage:c,disabledPlaceholder:u,inputDisabled:h,inputIcon:b,externalInput:y,externalInputDisabled:g,externalPlaceholder:f,externalDisabledPlaceholder:x}={host:{selector:()=>":host"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},placeholder:[{selector:"> input:placeholder-shown"},{selector:()=>":host::slotted(input:placeholder-shown)"}],disabledPlaceholder:{selector:"> input:disabled::placeholder"},inputField:{selector:"::part(input-field)"},input:{selector:"input"},inputMask:{selector:"::part(input-field)::before"},inputDisabled:{selector:"input:disabled"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},inputIcon:{selector:"vaadin-icon"},externalInput:{selector:()=>"::slotted(input)"},externalInputDisabled:{selector:()=>"::slotted(input:disabled)"},externalPlaceholder:{selector:()=>"::slotted(input:placeholder-shown)"},externalDisabledPlaceholder:{selector:()=>"::slotted(input:disabled::placeholder)"}},m={fontSize:[{},n],fontFamily:[o,p,s,c],labelFontSize:{...o,property:"font-size"},labelFontWeight:{...o,property:"font-weight"},labelTextColor:[{...o,property:"color"},{...l,property:"color"},{...o,property:"-webkit-text-fill-color"},{...l,property:"-webkit-text-fill-color"}],hostWidth:{...n,property:"width"},hostMinWidth:{...n,property:"min-width"},hostDirection:{...n,property:"direction"},inputDirection:{...a,property:"direction"},inputBackgroundColor:[{...p,property:"background-color"},{...d,property:"background-color"}],errorMessageTextColor:{...c,property:"color"},errorMessageIcon:{...c,property:"background-image"},errorMessageIconSize:{...c,property:"background-size"},errorMessageIconPadding:{...c,property:"padding-inline-start"},errorMessageIconRepeat:{...c,property:"background-repeat"},errorMessageIconPosition:{...c,property:"background-position"},helperTextColor:{...s,property:"-webkit-text-fill-color"},inputValueTextColor:[{...p,property:"color"},{...h,property:"-webkit-text-fill-color"},{...g,property:"-webkit-text-fill-color"}],inputCaretTextColor:[{...a,property:"caret-color"},{...y,property:"caret-color"}],labelRequiredIndicator:{...l,property:"content"},inputBorderColor:{...p,property:"border-color"},inputBorderWidth:{...p,property:"border-width"},inputBorderStyle:{...p,property:"border-style"},inputBorderRadius:{...p,property:"border-radius"},inputHeight:{...p,property:"height"},inputHorizontalPadding:[{...a,property:"padding-left"},{...a,property:"padding-right"},{...y,property:"padding-left"},{...y,property:"padding-right"}],inputOutlineColor:{...p,property:"outline-color"},inputOutlineStyle:{...p,property:"outline-style"},inputOutlineWidth:{...p,property:"outline-width"},inputOutlineOffset:{...p,property:"outline-offset"},textAlign:{},inputTextAlign:[{...a,property:"text-align"},{...y,property:"text-align"}],inputPlaceholderColor:[{selector:()=>":host input:placeholder-shown",property:"color"},{...f,property:"color"},{...i,property:"color"},{...u,property:"-webkit-text-fill-color"},{...x,property:"-webkit-text-fill-color"}],labelPosition:{...o,property:"position"},labelTopPosition:{...o,property:"top"},labelHorizontalPosition:[{...o,property:"left"},{...o,property:"right"}],inputTransformY:{...o,property:"transform"},inputTransition:{...o,property:"transition"},marginInlineStart:{...o,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...f,property:"opacity"}],inputVerticalAlignment:[{...p,property:"align-items"},{...y,property:"align-items"}],valueInputHeight:[{...a,property:"height"},{...y,property:"height"}],valueInputMarginBottom:[{...a,property:"margin-bottom"},{...y,property:"margin-bottom"}],inputIconOffset:[{...b,property:"margin-right"},{...b,property:"margin-left"}],inputIconSize:{...b,property:"font-size"},inputIconColor:{...b,property:"color"}}},72598:(e,t,r)=>{r.r(t),r.d(t,{NumberFieldClass:()=>d,componentName:()=>a}),r(15648);var n=r(79365),o=r(6424),i=r(9696),l=r(97810),p=r(73551);const a=(0,l.xE)("number-field"),d=(0,i.Zz)((0,n.RF)({mappings:o.A}),n.VO,(0,n.OZ)({proxyProps:["value","selectionStart"]}),n.tQ)((0,n.tz)({slots:["","prefix","suffix"],wrappedEleName:"vaadin-number-field",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(${d.cssVarList.inputOutlineWidth}) + var(${d.cssVarList.inputOutlineOffset}));\n\t\t\t}\n ${(0,p.$J)("vaadin-number-field")}\n\t\t\t${(0,p.cy)(d.cssVarList)}\n\t\t\t${(0,p.LJ)("vaadin-number-field",d.cssVarList)}\n ${(0,p.Kl)()}\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`,excludeAttrsSync:["tabindex"],componentName:a}));customElements.define(a,d)},73551:(e,t,r)=>{r.d(t,{$J:()=>u,I4:()=>l,Kl:()=>h,LJ:()=>c,Qv:()=>i,X6:()=>a,cy:()=>n,fu:()=>d,kG:()=>s,lS:()=>p,zm:()=>o});const n=e=>`\n :host {\n padding: calc(var(${e.inputOutlineWidth}) + var(${e.inputOutlineOffset}))\n }\n`,o=e=>`\n ${e} {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n`,i=e=>`\n ${e}::part(input-field) {\n overflow: hidden;\n padding: 0;\n box-shadow: none;\n }\n`,l=e=>`\n ${e} > label,\n ${e}::part(label),\n ${e}::part(required-indicator) {\n cursor: pointer;\n }\n`,p=(e,t="input")=>`\n ${e}[disabled] > ${t}:placeholder-shown,\n\t${e}[readonly] > ${t}:placeholder-shown {\n\t\topacity: 1;\n\t}\n`,a=()=>"\n :host {\n --vaadin-field-default-width: auto;\n box-sizing: border-box;\n }\n",d=e=>`\n ${e}::part(input-field)::after {\n opacity: 0;\n }\n`,s=e=>`\n ${e}::part(input-field)::after {\n background: none;\n }\n`,c=(e,t)=>`\n ${o(e)}\n ${l(e)}\n ${p(e)}\n ${i(e)}\n ${((e,t)=>`\n ${e} input:-webkit-autofill,\n ${e} input:-webkit-autofill::first-line,\n ${e} input:-webkit-autofill:hover,\n ${e} input:-webkit-autofill:active,\n ${e} input:-webkit-autofill:focus {\n -webkit-text-fill-color: var(${t.inputValueTextColor});\n box-shadow: 0 0 0 var(${t.inputHeight}) var(${t.inputBackgroundColor}) inset;\n }\n`)(e,t)}\n ${s(e)}\n ${(e=>`\n ${e}::before {\n\t\theight: unset;\n\t}\n`)(e)}\n ${(e=>`\n ${e} > input {\n -webkit-mask-image: none;\n min-height: 0;\n box-sizing: border-box;\n }\n`)(e)}\n ${(e=>`\n ${e}::part(input-field)::after {\n border: none;\n }\n`)(e)}\n`,u=e=>`\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 ${e} [slot="label"] {\n max-width: calc(100% - 1em);\n overflow: hidden;\n text-overflow: ellipsis;\n padding-bottom: 0.5em;\n }\n`,h=()=>'\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 '}}]);
1
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[7944],{6424:(e,t,r)=>{r.d(t,{A:()=>m});const{host:n,label:o,placeholder:i,requiredIndicator:l,inputField:p,input:a,inputMask:d,helperText:s,errorMessage:c,disabledPlaceholder:u,inputDisabled:h,inputIcon:b,externalInput:y,externalInputDisabled:g,externalPlaceholder:f,externalDisabledPlaceholder:x}={host:{selector:()=>":host"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},placeholder:[{selector:"> input:placeholder-shown"},{selector:()=>":host::slotted(input:placeholder-shown)"}],disabledPlaceholder:{selector:"> input:disabled::placeholder"},inputField:{selector:"::part(input-field)"},input:{selector:"input"},inputMask:{selector:"::part(input-field)::before"},inputDisabled:{selector:"input:disabled"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},inputIcon:{selector:"vaadin-icon"},externalInput:{selector:()=>"::slotted(input)"},externalInputDisabled:{selector:()=>"::slotted(input:disabled)"},externalPlaceholder:{selector:()=>"::slotted(input:placeholder-shown)"},externalDisabledPlaceholder:{selector:()=>"::slotted(input:disabled::placeholder)"}},m={fontSize:[{},n],fontFamily:[o,p,s,c],labelFontSize:{...o,property:"font-size"},labelFontWeight:{...o,property:"font-weight"},labelTextColor:[{...o,property:"color"},{...l,property:"color"},{...o,property:"-webkit-text-fill-color"},{...l,property:"-webkit-text-fill-color"}],hostWidth:{...n,property:"width"},hostMinWidth:{...n,property:"min-width"},hostDirection:{...n,property:"direction"},inputDirection:{...a,property:"direction"},inputBackgroundColor:[{...p,property:"background-color"},{...d,property:"background-color"}],errorMessageTextColor:{...c,property:"color"},errorMessageIcon:{...c,property:"background-image"},errorMessageIconSize:{...c,property:"background-size"},errorMessageIconPadding:{...c,property:"padding-inline-start"},errorMessageIconRepeat:{...c,property:"background-repeat"},errorMessageIconPosition:{...c,property:"background-position"},errorMessageFontSize:{...c,property:"font-size"},helperTextColor:{...s,property:"-webkit-text-fill-color"},inputValueTextColor:[{...p,property:"color"},{...h,property:"-webkit-text-fill-color"},{...g,property:"-webkit-text-fill-color"}],inputCaretTextColor:[{...a,property:"caret-color"},{...y,property:"caret-color"}],labelRequiredIndicator:{...l,property:"content"},inputBorderColor:{...p,property:"border-color"},inputBorderWidth:{...p,property:"border-width"},inputBorderStyle:{...p,property:"border-style"},inputBorderRadius:{...p,property:"border-radius"},inputHeight:{...p,property:"height"},inputHorizontalPadding:[{...a,property:"padding-left"},{...a,property:"padding-right"},{...y,property:"padding-left"},{...y,property:"padding-right"}],inputOutlineColor:{...p,property:"outline-color"},inputOutlineStyle:{...p,property:"outline-style"},inputOutlineWidth:{...p,property:"outline-width"},inputOutlineOffset:{...p,property:"outline-offset"},textAlign:{},inputTextAlign:[{...a,property:"text-align"},{...y,property:"text-align"}],inputPlaceholderColor:[{selector:()=>":host input:placeholder-shown",property:"color"},{...f,property:"color"},{...i,property:"color"},{...u,property:"-webkit-text-fill-color"},{...x,property:"-webkit-text-fill-color"}],labelPosition:{...o,property:"position"},labelTopPosition:{...o,property:"top"},labelHorizontalPosition:[{...o,property:"left"},{...o,property:"right"}],inputTransformY:{...o,property:"transform"},inputTransition:{...o,property:"transition"},marginInlineStart:{...o,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...f,property:"opacity"}],inputVerticalAlignment:[{...p,property:"align-items"},{...y,property:"align-items"}],valueInputHeight:[{...a,property:"height"},{...y,property:"height"}],valueInputMarginBottom:[{...a,property:"margin-bottom"},{...y,property:"margin-bottom"}],inputIconOffset:[{...b,property:"margin-right"},{...b,property:"margin-left"}],inputIconSize:{...b,property:"font-size"},inputIconColor:{...b,property:"color"}}},72598:(e,t,r)=>{r.r(t),r.d(t,{NumberFieldClass:()=>d,componentName:()=>a}),r(15648);var n=r(79365),o=r(6424),i=r(9696),l=r(97810),p=r(73551);const a=(0,l.xE)("number-field"),d=(0,i.Zz)((0,n.RF)({mappings:o.A}),n.VO,(0,n.OZ)({proxyProps:["value","selectionStart"]}),n.tQ)((0,n.tz)({slots:["","prefix","suffix"],wrappedEleName:"vaadin-number-field",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(${d.cssVarList.inputOutlineWidth}) + var(${d.cssVarList.inputOutlineOffset}));\n\t\t\t}\n ${(0,p.$J)("vaadin-number-field")}\n\t\t\t${(0,p.cy)(d.cssVarList)}\n\t\t\t${(0,p.LJ)("vaadin-number-field",d.cssVarList)}\n ${(0,p.Kl)()}\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`,excludeAttrsSync:["tabindex"],componentName:a}));customElements.define(a,d)},73551:(e,t,r)=>{r.d(t,{$J:()=>u,I4:()=>l,Kl:()=>h,LJ:()=>c,Qv:()=>i,X6:()=>a,cy:()=>n,fu:()=>d,kG:()=>s,lS:()=>p,zm:()=>o});const n=e=>`\n :host {\n padding: calc(var(${e.inputOutlineWidth}) + var(${e.inputOutlineOffset}))\n }\n`,o=e=>`\n ${e} {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n`,i=e=>`\n ${e}::part(input-field) {\n overflow: hidden;\n padding: 0;\n box-shadow: none;\n }\n`,l=e=>`\n ${e} > label,\n ${e}::part(label),\n ${e}::part(required-indicator) {\n cursor: pointer;\n }\n`,p=(e,t="input")=>`\n ${e}[disabled] > ${t}:placeholder-shown,\n\t${e}[readonly] > ${t}:placeholder-shown {\n\t\topacity: 1;\n\t}\n`,a=()=>"\n :host {\n --vaadin-field-default-width: auto;\n box-sizing: border-box;\n }\n",d=e=>`\n ${e}::part(input-field)::after {\n opacity: 0;\n }\n`,s=e=>`\n ${e}::part(input-field)::after {\n background: none;\n }\n`,c=(e,t)=>`\n ${o(e)}\n ${l(e)}\n ${p(e)}\n ${i(e)}\n ${((e,t)=>`\n ${e} input:-webkit-autofill,\n ${e} input:-webkit-autofill::first-line,\n ${e} input:-webkit-autofill:hover,\n ${e} input:-webkit-autofill:active,\n ${e} input:-webkit-autofill:focus {\n -webkit-text-fill-color: var(${t.inputValueTextColor});\n box-shadow: 0 0 0 var(${t.inputHeight}) var(${t.inputBackgroundColor}) inset;\n }\n`)(e,t)}\n ${s(e)}\n ${(e=>`\n ${e}::before {\n\t\theight: unset;\n\t}\n`)(e)}\n ${(e=>`\n ${e} > input {\n -webkit-mask-image: none;\n min-height: 0;\n box-sizing: border-box;\n }\n`)(e)}\n ${(e=>`\n ${e}::part(input-field)::after {\n border: none;\n }\n`)(e)}\n`,u=e=>`\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 ${e} [slot="label"] {\n max-width: calc(100% - 1em);\n overflow: hidden;\n text-overflow: ellipsis;\n padding-bottom: 0.5em;\n }\n`,h=()=>'\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 '}}]);
2
2
  //# sourceMappingURL=descope-number-field-index-js.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"descope-number-field-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/./src/components/descope-text-field/textFieldMappings.js","webpack://@descope/web-components-ui/./src/components/descope-number-field/NumberFieldClass.js","webpack://@descope/web-components-ui/./src/components/descope-number-field/index.js","webpack://@descope/web-components-ui/./src/helpers/themeHelpers/resetHelpers.js"],"sourcesContent":["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 inputDirection: { ...input, property: 'direction' },\n\n inputBackgroundColor: [\n { ...inputField, property: 'background-color' },\n { ...inputMask, property: 'background-color' },\n ],\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n\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","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 '@vaadin/number-field';\nimport { componentName, NumberFieldClass } from './NumberFieldClass';\n\ncustomElements.define(componentName, NumberFieldClass);\n\nexport { NumberFieldClass, componentName };\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"],"names":["host","label","placeholder","requiredIndicator","inputField","input","inputMask","helperText","errorMessage","disabledPlaceholder","inputDisabled","inputIcon","externalInput","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","selector","fontSize","fontFamily","labelFontSize","property","labelFontWeight","labelTextColor","hostWidth","hostMinWidth","hostDirection","inputDirection","inputBackgroundColor","errorMessageTextColor","errorMessageIcon","errorMessageIconSize","errorMessageIconPadding","errorMessageIconRepeat","errorMessageIconPosition","helperTextColor","inputValueTextColor","inputCaretTextColor","labelRequiredIndicator","inputBorderColor","inputBorderWidth","inputBorderStyle","inputBorderRadius","inputHeight","inputHorizontalPadding","inputOutlineColor","inputOutlineStyle","inputOutlineWidth","inputOutlineOffset","textAlign","inputTextAlign","inputPlaceholderColor","labelPosition","labelTopPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","valueInputHeight","valueInputMarginBottom","inputIconOffset","inputIconSize","inputIconColor","componentName","NumberFieldClass","mappings","textFieldMappings","proxyProps","slots","wrappedEleName","style","cssVarList","excludeAttrsSync","customElements","define","useHostExternalPadding","resetInputContainer","name","resetInputField","resetInputCursor","resetInputPlaceholder","ele","resetInputFieldDefaultWidth","resetInputReadonlyStyle","resetInputFieldInvalidBackgroundColor","resetInputOverrides","resetInputAutoFill","resetInitialHeight","resetInputElement","resetInputFieldUnderlayingBorder","resetInputLabelPosition","inputFloatingLabelStyle"],"sourceRoot":""}
1
+ {"version":3,"file":"descope-number-field-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/./src/components/descope-text-field/textFieldMappings.js","webpack://@descope/web-components-ui/./src/components/descope-number-field/NumberFieldClass.js","webpack://@descope/web-components-ui/./src/components/descope-number-field/index.js","webpack://@descope/web-components-ui/./src/helpers/themeHelpers/resetHelpers.js"],"sourcesContent":["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 inputDirection: { ...input, property: 'direction' },\n\n inputBackgroundColor: [\n { ...inputField, property: 'background-color' },\n { ...inputMask, property: 'background-color' },\n ],\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n errorMessageFontSize: { ...errorMessage, property: 'font-size' },\n\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","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 '@vaadin/number-field';\nimport { componentName, NumberFieldClass } from './NumberFieldClass';\n\ncustomElements.define(componentName, NumberFieldClass);\n\nexport { NumberFieldClass, componentName };\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"],"names":["host","label","placeholder","requiredIndicator","inputField","input","inputMask","helperText","errorMessage","disabledPlaceholder","inputDisabled","inputIcon","externalInput","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","selector","fontSize","fontFamily","labelFontSize","property","labelFontWeight","labelTextColor","hostWidth","hostMinWidth","hostDirection","inputDirection","inputBackgroundColor","errorMessageTextColor","errorMessageIcon","errorMessageIconSize","errorMessageIconPadding","errorMessageIconRepeat","errorMessageIconPosition","errorMessageFontSize","helperTextColor","inputValueTextColor","inputCaretTextColor","labelRequiredIndicator","inputBorderColor","inputBorderWidth","inputBorderStyle","inputBorderRadius","inputHeight","inputHorizontalPadding","inputOutlineColor","inputOutlineStyle","inputOutlineWidth","inputOutlineOffset","textAlign","inputTextAlign","inputPlaceholderColor","labelPosition","labelTopPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","valueInputHeight","valueInputMarginBottom","inputIconOffset","inputIconSize","inputIconColor","componentName","NumberFieldClass","mappings","textFieldMappings","proxyProps","slots","wrappedEleName","style","cssVarList","excludeAttrsSync","customElements","define","useHostExternalPadding","resetInputContainer","name","resetInputField","resetInputCursor","resetInputPlaceholder","ele","resetInputFieldDefaultWidth","resetInputReadonlyStyle","resetInputFieldInvalidBackgroundColor","resetInputOverrides","resetInputAutoFill","resetInitialHeight","resetInputElement","resetInputFieldUnderlayingBorder","resetInputLabelPosition","inputFloatingLabelStyle"],"sourceRoot":""}