@descope/web-components-ui 3.22.1 → 3.22.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"descope-new-password-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-text-field/src/component/TextFieldClass.js","webpack://@descope/web-components-ui/../components/descope-text-field/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-text-field/src/component/textFieldMappings.js","webpack://@descope/web-components-ui/./src/baseClasses/createBaseInputClass.js","webpack://@descope/web-components-ui/./src/components/descope-new-password/NewPasswordClass.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-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-new-password/index.js","webpack://@descope/web-components-ui/./src/components/descope-password/PasswordClass.js","webpack://@descope/web-components-ui/./src/components/descope-password/index.js","webpack://@descope/web-components-ui/./src/components/descope-password/passwordDraggableMixin.js","webpack://@descope/web-components-ui/./src/components/descope-policy-validation/PolicyValidationClass.js","webpack://@descope/web-components-ui/./src/components/descope-policy-validation/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-policy-validation/index.js"],"sourcesContent":["import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n forwardAttrs,\n} from '@descope-ui/common/components-helpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '@descope-ui/common/theme-helpers';\nimport textFieldMappings from './textFieldMappings';\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 // Excluded from syncAttrs (bidirectional would let vaadin revert host\n // values). Push host → vaadin one-way so authored placeholder applies.\n forwardAttrs(this, this.baseElement, { includeAttrs: ['placeholder'] });\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({\n proxyProps: ['value', 'selectionStart', 'selectionEnd'],\n useProxyTargets: true,\n }),\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', 'placeholder'],\n componentName,\n }),\n);\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","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: {\n selector: '[required]::part(required-indicator)::after',\n },\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: {\n selector: () => '::slotted(input:disabled::placeholder)',\n },\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 inputValueFontWeight: [\n { ...input, property: 'font-weight' },\n { ...externalInput, property: 'font-weight' },\n ],\n inputPlaceholderFontWeight: [\n {\n selector: () => ':host input:placeholder-shown',\n property: 'font-weight',\n },\n { ...externalPlaceholder, property: 'font-weight' },\n ],\n helperTextFontWeight: { ...helperText, property: 'font-weight' },\n errorMessageFontWeight: { ...errorMessage, 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: {\n ...errorMessage,\n property: 'padding-inline-start',\n },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: {\n ...errorMessage,\n property: 'background-position',\n },\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 inputTextSecurity: [\n { ...input, property: '-webkit-text-security' },\n { ...input, property: 'text-security' },\n { ...externalInput, property: '-webkit-text-security' },\n { ...externalInput, property: 'text-security' },\n ],\n};\n","import { compose } from '../helpers';\nimport {\n changeMixin,\n inputEventsDispatchingMixin,\n inputValidationMixin,\n normalizeBooleanAttributesMixin,\n} from '../mixins';\nimport { createBaseClass } from './createBaseClass';\n\nexport const createBaseInputClass = (...args) =>\n compose(\n inputValidationMixin,\n changeMixin,\n normalizeBooleanAttributesMixin,\n inputEventsDispatchingMixin\n )(createBaseClass(...args));\n","import { 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 'disabled',\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 'data-password-policy-value-disallowedchars',\n 'data-password-policy-value-email',\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 inputValueFontWeight: {\n ...passwordInput,\n property: PasswordClass.cssVarList.inputValueFontWeight,\n },\n inputPlaceholderFontWeight: {\n ...passwordInput,\n property: PasswordClass.cssVarList.inputPlaceholderFontWeight,\n },\n helperTextFontWeight: { ...helperText, property: 'font-weight' },\n errorMessageFontWeight: { ...errorMessage, 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', 'style'],\n componentName,\n })\n);\n","import { getComponentName } from '../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('new-password-internal');\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 'data-password-policy-value-disallowedchars',\n 'data-password-policy-value-email',\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 if (this.passwordStrength) {\n this.passwordStrength.remove();\n this.passwordStrength = null;\n }\n }\n\n get activePolicies() {\n return (this.getAttribute('active-policies') || '').split(',');\n }\n\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 { componentName, NewPasswordClass } from './NewPasswordClass';\nimport '@descope-ui/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","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 inputValueFontWeight: [\n { ...inputElement, property: 'font-weight' },\n { selector: () => ':host ::slotted(input)', property: 'font-weight' },\n ],\n inputPlaceholderFontWeight: [\n { ...inputElementPlaceholder, property: 'font-weight' },\n { selector: () => ':host ::slotted(input:placeholder-shown)', property: 'font-weight' },\n ],\n helperTextFontWeight: { ...helperText, property: 'font-weight' },\n errorMessageFontWeight: { ...errorMessage, property: 'font-weight' },\n labelTextColor: [\n { ...label, property: 'color' },\n { ...label, property: '-webkit-text-fill-color' },\n { ...requiredIndicator, property: 'color' },\n { ...requiredIndicator, property: '-webkit-text-fill-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', 'style'],\n componentName,\n })\n);\n","import '@vaadin/password-field';\nimport { componentName, PasswordClass } from './PasswordClass';\n\ncustomElements.define(componentName, PasswordClass);\n\nexport { PasswordClass, componentName };\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 { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { interpolateString } from './helpers';\n\nexport const componentName = getComponentName('policy-validation');\n\nconst overrideAttrs = [\n 'data-password-policy-value-minlength',\n 'data-password-policy-value-passwordstrength',\n 'data-password-policy-actual-passwordstrength',\n 'data-password-policy-value-disallowedchars',\n 'data-password-policy-value-email',\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 // disallowedchars: this stores the configured char list in\n // overrides.disallowedchars.value so the message can interpolate\n // `{{value}}`. The regex pattern itself is built upstream (orchestrator\n // or caller) and shipped on the policy entry — it is not derived from\n // this override. When the attribute is cleared, drop the override so\n // the panel doesn't keep stale data.\n if (attrName === 'data-password-policy-value-disallowedchars') {\n if (newValue) {\n this.#overrides = {\n ...this.#overrides,\n disallowedchars: {\n ...this.#overrides?.disallowedchars,\n value: newValue,\n },\n };\n } else if (this.#overrides?.disallowedchars) {\n const { disallowedchars: _drop, ...rest } = this.#overrides;\n this.#overrides = rest;\n }\n }\n\n // disallowemail: stash the user's email so the STR_NEQ_CI comparator\n // has an `expected` to compare against the live password value. Clear\n // the override when the attribute is removed/empty so we don't keep\n // blocking against a previous user's email.\n if (attrName === 'data-password-policy-value-email') {\n if (newValue) {\n this.#overrides = {\n ...this.#overrides,\n disallowemail: {\n ...this.#overrides?.disallowemail,\n expected: newValue,\n },\n };\n } else if (this.#overrides?.disallowemail) {\n const { disallowemail: _drop, ...rest } = this.#overrides;\n this.#overrides = rest;\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 const normalizedCompare = typeof compare === 'string' ? compare.toUpperCase() : compare;\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 (normalizedCompare === 'STR_NEQ_CI') {\n // Compare the live password against the configured string AND its\n // local-part (before '@'), case-insensitively. Used by the\n // disallowemail policy.\n const expected = (data?.expected ?? '').toLowerCase();\n const actual = (this.value ?? '').toLowerCase();\n if (!expected || !actual) {\n // nothing to compare → mark valid so we don't block the flow\n validationResult.valid = true;\n } else {\n const at = expected.indexOf('@');\n const localPart = at > 0 ? expected.slice(0, at) : expected;\n validationResult.valid = actual !== expected && actual !== localPart;\n }\n } else if (compare) {\n validationResult.valid = this.compareValues(\n normalizedCompare,\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 buildValidationItem({ valid, message }) {\n const status = !this.value ? 'none' : valid;\n const li = document.createElement('li');\n li.className = 'item';\n li.dataset.valid = status;\n const span = document.createElement('span');\n span.className = 'message';\n // `textContent` handles any tenant-configured string in `message` safely\n // (e.g. the disallowedchars list) without needing to escape HTML.\n span.textContent = message ?? '';\n li.appendChild(span);\n return li;\n }\n\n renderItems(availablePolicies, activePolicies) {\n if (!availablePolicies || !activePolicies.length) {\n return;\n }\n\n this.list.replaceChildren(...this.validate().map(this.buildValidationItem.bind(this)));\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","export const interpolateString = (template, values) =>\n template.replace(/{{(\\w+)+}}/g, (match, key) => values?.[key] || match);\n","import { componentName, PolicyValidationClass } from './PolicyValidationClass';\n\ncustomElements.define(componentName, PolicyValidationClass);\n\nexport { PolicyValidationClass, componentName };\n"],"names":["componentName","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_2__","xE","observedAttrs","TextFieldClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_1__","Zz","_descope_ui_common_components_mixins__WEBPACK_IMPORTED_MODULE_0__","RF","mappings","_textFieldMappings__WEBPACK_IMPORTED_MODULE_4__","A","VO","OZ","proxyProps","useProxyTargets","tQ","superclass","observedAttributes","concat","icon","init","super","EA","this","baseElement","includeAttrs","renderCopyToClipboard","shouldRender","remove","iconInitConfig","title","style","iconCopiedConfig","Object","assign","document","createElement","slot","appendChild","addEventListener","navigator","clipboard","writeText","value","setTimeout","onLabelClick","focus","attributeChangedCallback","attrName","oldVal","newVal","attributeChangeCallback","_setType","removeEventListener","tz","slots","wrappedEleName","cssVarList","inputOutlineWidth","inputOutlineOffset","_descope_ui_common_theme_helpers__WEBPACK_IMPORTED_MODULE_3__","$J","cy","LJ","Kl","excludeAttrsSync","customElements","define","_TextFieldClass__WEBPACK_IMPORTED_MODULE_3__","T","w","host","label","placeholder","requiredIndicator","inputField","input","inputMask","helperText","errorMessage","disabledPlaceholder","inputDisabled","inputIcon","externalInput","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","selector","__WEBPACK_DEFAULT_EXPORT__","fontSize","fontFamily","labelFontSize","property","labelFontWeight","inputValueFontWeight","inputPlaceholderFontWeight","helperTextFontWeight","errorMessageFontWeight","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","textAlign","inputTextAlign","inputPlaceholderColor","labelPosition","labelTopPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","valueInputHeight","valueInputMarginBottom","inputIconOffset","inputIconSize","inputIconColor","inputTextSecurity","createBaseInputClass","args","_helpers__WEBPACK_IMPORTED_MODULE_0__","_mixins__WEBPACK_IMPORTED_MODULE_1__","XX","_$","yF","jd","_createBaseClass__WEBPACK_IMPORTED_MODULE_2__","q","_helpers_componentHelpers__WEBPACK_IMPORTED_MODULE_0__","policyPreviewVars","_descope_policy_validation_PolicyValidationClass__WEBPACK_IMPORTED_MODULE_6__","internalInputsWrapper","passwordInput","policyPreview","NewPasswordClass","_helpers__WEBPACK_IMPORTED_MODULE_1__","_mixins__WEBPACK_IMPORTED_MODULE_2__","_descope_password_PasswordClass__WEBPACK_IMPORTED_MODULE_4__","M","inputsRequiredIndicator","spaceBetweenInputs","policyPreviewBackgroundColor","backgroundColor","policyPreviewPadding","padding","template","externalInputAttr","getAttribute","innerHTML","_descope_new_password_internal_componentName__WEBPACK_IMPORTED_MODULE_3__","content","cloneNode","inputElement","shadowRoot","querySelector","initExternalInput","createSlottedExternalInput","node","slotName","slotEle","targetSlot","setAttribute","confirmInput","_helpers_themeHelpers_resetHelpers__WEBPACK_IMPORTED_MODULE_5__","passwordAttrPrefixRegex","confirmAttrPrefixRegex","removeAttrPrefix","attr","prefix","replace","passwordInputAttrs","confirmInputAttrs","policyPanelAttrs","commonAttrs","inputRelatedAttrs","BaseInputClass","y","baseSelector","constructor","wrapperEle","val","hasConfirm","onHasConfirmChange","classList","toggle","onHasValidationChange","hasValidation","policyPanel","getValidity","isRequired","valueMissing","isValid","typeMismatch","patternMismatch","min","minVal","parseInt","length","tooShort","e","isTrusted","renderInputs","hasExternalInput","passwordStrength","inputs","initInputs","detail","once","target","componentHelpers","mapAttrs","handleIndicatorStyle","forEach","componentsHelpers","fz","isInvalid","hasAttribute","handleInputsInvalidAttribute","mx","changedAttributes","includes","inputInvalidValue","rootInvalidValue","handleFocusEventsDispatching","togglePasswordStrength","activePolicies","Promise","all","__webpack_require__","then","bind","insertBefore","split","toggleBooleanAttribute","ele","name","removeAttribute","oldValue","newValue","_NewPasswordClass__WEBPACK_IMPORTED_MODULE_0__","_helpers_componentHelpers__WEBPACK_IMPORTED_MODULE_2__","inputElementPlaceholder","revealButtonContainer","revealButtonIcon","PasswordClass","_mixins__WEBPACK_IMPORTED_MODULE_0__","inputPlaceholderTextColor","revealButtonOffset","revealButtonSize","revealButtonColor","RV","inputType","inputName","noBlurDispatch","_passwordDraggableMixin__WEBPACK_IMPORTED_MODULE_3__","manualToggleVisibility","handleCaretOnVisibilityChange","origSetPasswordVisible","_setPasswordVisible","origSetFocused","_setFocused","setFocus","createExternalInput","handlePasswordVisibility","caretPosition","origTogglePasswordVisibility","_togglePasswordVisibility","setSelectionRange","focused","call","resetPasswordVisibilityToggle","origSetFocus","origBoundRevealButtonMouseDown","__boundRevealButtonMouseDown","_passwordVisibleChanged","showPasswordVisibility","hidePasswordVisibility","_helpers_themeHelpers_resetHelpers__WEBPACK_IMPORTED_MODULE_4__","I4","_PasswordClass__WEBPACK_IMPORTED_MODULE_1__","isReadOnly","isDraggable","inputEle","prevType","onComplete","_","_helpers_componentHelpers__WEBPACK_IMPORTED_MODULE_4__","dataAttrs","policyAttrs","RawPolicyValidation","_baseClasses_createBaseClass__WEBPACK_IMPORTED_MODULE_2__","availablePolicies","overrides","attachShadow","mode","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_0__","panel","list","updateLabel","JSON","parse","console","error","ln","Number","isNaN","minlength","passwordstrength","expected","actual","disallowedchars","_drop","rest","disallowemail","renderItems","getStrengthScore","compareValues","comparison","toUpperCase","Error","validate","policies","map","policy","data","id","reduce","results","find","p","pattern","message","compare","normalizedCompare","validationResult","_helpers__WEBPACK_IMPORTED_MODULE_5__","z","exp","RegExp","valid","test","toLowerCase","at","indexOf","localPart","slice","push","some","buildValidationItem","status","li","className","dataset","span","textContent","replaceChildren","add","item","symbolDefault","symbolSuccess","symbolError","PolicyValidationClass","_helpers__WEBPACK_IMPORTED_MODULE_3__","componentNameOverride","borderWidth","borderStyle","borderColor","borderRadius","textColor","labelMargin","itemsSpacing","itemSymbolSuccessColor","itemSymbolErrorColor","itemSymbolDefault","itemSymbolSuccess","itemSymbolError","interpolateString","values","match","key","_PolicyValidationClass__WEBPACK_IMPORTED_MODULE_0__"],"sourceRoot":""}
1
+ {"version":3,"file":"descope-new-password-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-text-field/src/component/TextFieldClass.js","webpack://@descope/web-components-ui/../components/descope-text-field/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-text-field/src/component/textFieldMappings.js","webpack://@descope/web-components-ui/./src/baseClasses/createBaseInputClass.js","webpack://@descope/web-components-ui/./src/components/descope-new-password/NewPasswordClass.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-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-new-password/index.js","webpack://@descope/web-components-ui/./src/components/descope-password/PasswordClass.js","webpack://@descope/web-components-ui/./src/components/descope-password/index.js","webpack://@descope/web-components-ui/./src/components/descope-password/passwordDraggableMixin.js","webpack://@descope/web-components-ui/./src/components/descope-policy-validation/PolicyValidationClass.js","webpack://@descope/web-components-ui/./src/components/descope-policy-validation/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-policy-validation/index.js"],"sourcesContent":["import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n forwardAttrs,\n} from '@descope-ui/common/components-helpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '@descope-ui/common/theme-helpers';\nimport textFieldMappings from './textFieldMappings';\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 // Excluded from syncAttrs (bidirectional would let vaadin revert host\n // values). Push host → vaadin one-way so authored placeholder applies.\n forwardAttrs(this, this.baseElement, { includeAttrs: ['placeholder'] });\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({\n proxyProps: ['value', 'selectionStart', 'selectionEnd'],\n useProxyTargets: true,\n }),\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', 'placeholder'],\n componentName,\n }),\n);\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","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: {\n selector: '[required]::part(required-indicator)::after',\n },\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: {\n selector: () => '::slotted(input:disabled::placeholder)',\n },\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 inputValueFontWeight: [\n { ...input, property: 'font-weight' },\n { ...externalInput, property: 'font-weight' },\n ],\n inputPlaceholderFontWeight: [\n {\n selector: () => ':host input:placeholder-shown',\n property: 'font-weight',\n },\n { ...externalPlaceholder, property: 'font-weight' },\n ],\n helperTextFontWeight: { ...helperText, property: 'font-weight' },\n errorMessageFontWeight: { ...errorMessage, 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: {\n ...errorMessage,\n property: 'padding-inline-start',\n },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: {\n ...errorMessage,\n property: 'background-position',\n },\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 inputTextSecurity: [\n { ...input, property: '-webkit-text-security' },\n { ...input, property: 'text-security' },\n { ...externalInput, property: '-webkit-text-security' },\n { ...externalInput, property: 'text-security' },\n ],\n};\n","import { compose } from '../helpers';\nimport {\n changeMixin,\n inputEventsDispatchingMixin,\n inputValidationMixin,\n normalizeBooleanAttributesMixin,\n} from '../mixins';\nimport { createBaseClass } from './createBaseClass';\n\nexport const createBaseInputClass = (...args) =>\n compose(\n inputValidationMixin,\n changeMixin,\n normalizeBooleanAttributesMixin,\n inputEventsDispatchingMixin\n )(createBaseClass(...args));\n","import { 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 'disabled',\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 'data-password-policy-value-disallowedchars',\n 'data-password-policy-value-email',\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 inputValueFontWeight: {\n ...passwordInput,\n property: PasswordClass.cssVarList.inputValueFontWeight,\n },\n inputPlaceholderFontWeight: {\n ...passwordInput,\n property: PasswordClass.cssVarList.inputPlaceholderFontWeight,\n },\n helperTextFontWeight: { ...helperText, property: 'font-weight' },\n errorMessageFontWeight: { ...errorMessage, 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', 'style'],\n componentName,\n })\n);\n","import { getComponentName } from '../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('new-password-internal');\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 'data-password-policy-value-disallowedchars',\n 'data-password-policy-value-email',\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 if (this.passwordStrength) {\n this.passwordStrength.remove();\n this.passwordStrength = null;\n }\n }\n\n get activePolicies() {\n return (this.getAttribute('active-policies') || '').split(',');\n }\n\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 { componentName, NewPasswordClass } from './NewPasswordClass';\nimport '@descope-ui/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","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 this.stopRevealButtonEnterPropagation();\n }\n\n // Vaadin toggles visibility on Enter keydown but lets the event bubble,\n // and the SDK submits the form on any Enter that reaches the flow root.\n stopRevealButtonEnterPropagation() {\n this.revealButton.addEventListener('keydown', (e) => {\n if (e.key === 'Enter') e.stopPropagation();\n });\n }\n\n get revealButton() {\n return this.baseElement.querySelector('vaadin-password-field-button');\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.revealButton.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 inputValueFontWeight: [\n { ...inputElement, property: 'font-weight' },\n { selector: () => ':host ::slotted(input)', property: 'font-weight' },\n ],\n inputPlaceholderFontWeight: [\n { ...inputElementPlaceholder, property: 'font-weight' },\n { selector: () => ':host ::slotted(input:placeholder-shown)', property: 'font-weight' },\n ],\n helperTextFontWeight: { ...helperText, property: 'font-weight' },\n errorMessageFontWeight: { ...errorMessage, property: 'font-weight' },\n labelTextColor: [\n { ...label, property: 'color' },\n { ...label, property: '-webkit-text-fill-color' },\n { ...requiredIndicator, property: 'color' },\n { ...requiredIndicator, property: '-webkit-text-fill-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', 'style'],\n componentName,\n })\n);\n","import '@vaadin/password-field';\nimport { componentName, PasswordClass } from './PasswordClass';\n\ncustomElements.define(componentName, PasswordClass);\n\nexport { PasswordClass, componentName };\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 { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { interpolateString } from './helpers';\n\nexport const componentName = getComponentName('policy-validation');\n\nconst overrideAttrs = [\n 'data-password-policy-value-minlength',\n 'data-password-policy-value-passwordstrength',\n 'data-password-policy-actual-passwordstrength',\n 'data-password-policy-value-disallowedchars',\n 'data-password-policy-value-email',\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 // disallowedchars: this stores the configured char list in\n // overrides.disallowedchars.value so the message can interpolate\n // `{{value}}`. The regex pattern itself is built upstream (orchestrator\n // or caller) and shipped on the policy entry — it is not derived from\n // this override. When the attribute is cleared, drop the override so\n // the panel doesn't keep stale data.\n if (attrName === 'data-password-policy-value-disallowedchars') {\n if (newValue) {\n this.#overrides = {\n ...this.#overrides,\n disallowedchars: {\n ...this.#overrides?.disallowedchars,\n value: newValue,\n },\n };\n } else if (this.#overrides?.disallowedchars) {\n const { disallowedchars: _drop, ...rest } = this.#overrides;\n this.#overrides = rest;\n }\n }\n\n // disallowemail: stash the user's email so the STR_NEQ_CI comparator\n // has an `expected` to compare against the live password value. Clear\n // the override when the attribute is removed/empty so we don't keep\n // blocking against a previous user's email.\n if (attrName === 'data-password-policy-value-email') {\n if (newValue) {\n this.#overrides = {\n ...this.#overrides,\n disallowemail: {\n ...this.#overrides?.disallowemail,\n expected: newValue,\n },\n };\n } else if (this.#overrides?.disallowemail) {\n const { disallowemail: _drop, ...rest } = this.#overrides;\n this.#overrides = rest;\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 const normalizedCompare = typeof compare === 'string' ? compare.toUpperCase() : compare;\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 (normalizedCompare === 'STR_NEQ_CI') {\n // Compare the live password against the configured string AND its\n // local-part (before '@'), case-insensitively. Used by the\n // disallowemail policy.\n const expected = (data?.expected ?? '').toLowerCase();\n const actual = (this.value ?? '').toLowerCase();\n if (!expected || !actual) {\n // nothing to compare → mark valid so we don't block the flow\n validationResult.valid = true;\n } else {\n const at = expected.indexOf('@');\n const localPart = at > 0 ? expected.slice(0, at) : expected;\n validationResult.valid = actual !== expected && actual !== localPart;\n }\n } else if (compare) {\n validationResult.valid = this.compareValues(\n normalizedCompare,\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 buildValidationItem({ valid, message }) {\n const status = !this.value ? 'none' : valid;\n const li = document.createElement('li');\n li.className = 'item';\n li.dataset.valid = status;\n const span = document.createElement('span');\n span.className = 'message';\n // `textContent` handles any tenant-configured string in `message` safely\n // (e.g. the disallowedchars list) without needing to escape HTML.\n span.textContent = message ?? '';\n li.appendChild(span);\n return li;\n }\n\n renderItems(availablePolicies, activePolicies) {\n if (!availablePolicies || !activePolicies.length) {\n return;\n }\n\n this.list.replaceChildren(...this.validate().map(this.buildValidationItem.bind(this)));\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","export const interpolateString = (template, values) =>\n template.replace(/{{(\\w+)+}}/g, (match, key) => values?.[key] || match);\n","import { componentName, PolicyValidationClass } from './PolicyValidationClass';\n\ncustomElements.define(componentName, PolicyValidationClass);\n\nexport { PolicyValidationClass, componentName };\n"],"names":["componentName","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_2__","xE","observedAttrs","TextFieldClass","_descope_ui_common_utils__WEBPACK_IMPORTED_MODULE_1__","Zz","_descope_ui_common_components_mixins__WEBPACK_IMPORTED_MODULE_0__","RF","mappings","_textFieldMappings__WEBPACK_IMPORTED_MODULE_4__","A","VO","OZ","proxyProps","useProxyTargets","tQ","superclass","observedAttributes","concat","icon","init","super","EA","this","baseElement","includeAttrs","renderCopyToClipboard","shouldRender","remove","iconInitConfig","title","style","iconCopiedConfig","Object","assign","document","createElement","slot","appendChild","addEventListener","navigator","clipboard","writeText","value","setTimeout","onLabelClick","focus","attributeChangedCallback","attrName","oldVal","newVal","attributeChangeCallback","_setType","removeEventListener","tz","slots","wrappedEleName","cssVarList","inputOutlineWidth","inputOutlineOffset","_descope_ui_common_theme_helpers__WEBPACK_IMPORTED_MODULE_3__","$J","cy","LJ","Kl","excludeAttrsSync","customElements","define","_TextFieldClass__WEBPACK_IMPORTED_MODULE_3__","T","w","host","label","placeholder","requiredIndicator","inputField","input","inputMask","helperText","errorMessage","disabledPlaceholder","inputDisabled","inputIcon","externalInput","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","selector","__WEBPACK_DEFAULT_EXPORT__","fontSize","fontFamily","labelFontSize","property","labelFontWeight","inputValueFontWeight","inputPlaceholderFontWeight","helperTextFontWeight","errorMessageFontWeight","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","textAlign","inputTextAlign","inputPlaceholderColor","labelPosition","labelTopPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","valueInputHeight","valueInputMarginBottom","inputIconOffset","inputIconSize","inputIconColor","inputTextSecurity","createBaseInputClass","args","_helpers__WEBPACK_IMPORTED_MODULE_0__","_mixins__WEBPACK_IMPORTED_MODULE_1__","XX","_$","yF","jd","_createBaseClass__WEBPACK_IMPORTED_MODULE_2__","q","_helpers_componentHelpers__WEBPACK_IMPORTED_MODULE_0__","policyPreviewVars","_descope_policy_validation_PolicyValidationClass__WEBPACK_IMPORTED_MODULE_6__","internalInputsWrapper","passwordInput","policyPreview","NewPasswordClass","_helpers__WEBPACK_IMPORTED_MODULE_1__","_mixins__WEBPACK_IMPORTED_MODULE_2__","_descope_password_PasswordClass__WEBPACK_IMPORTED_MODULE_4__","M","inputsRequiredIndicator","spaceBetweenInputs","policyPreviewBackgroundColor","backgroundColor","policyPreviewPadding","padding","template","externalInputAttr","getAttribute","innerHTML","_descope_new_password_internal_componentName__WEBPACK_IMPORTED_MODULE_3__","content","cloneNode","inputElement","shadowRoot","querySelector","initExternalInput","createSlottedExternalInput","node","slotName","slotEle","targetSlot","setAttribute","confirmInput","_helpers_themeHelpers_resetHelpers__WEBPACK_IMPORTED_MODULE_5__","passwordAttrPrefixRegex","confirmAttrPrefixRegex","removeAttrPrefix","attr","prefix","replace","passwordInputAttrs","confirmInputAttrs","policyPanelAttrs","commonAttrs","inputRelatedAttrs","BaseInputClass","y","baseSelector","constructor","wrapperEle","val","hasConfirm","onHasConfirmChange","classList","toggle","onHasValidationChange","hasValidation","policyPanel","getValidity","isRequired","valueMissing","isValid","typeMismatch","patternMismatch","min","minVal","parseInt","length","tooShort","e","isTrusted","renderInputs","hasExternalInput","passwordStrength","inputs","initInputs","detail","once","target","componentHelpers","mapAttrs","handleIndicatorStyle","forEach","componentsHelpers","fz","isInvalid","hasAttribute","handleInputsInvalidAttribute","mx","changedAttributes","includes","inputInvalidValue","rootInvalidValue","handleFocusEventsDispatching","togglePasswordStrength","activePolicies","Promise","all","__webpack_require__","then","bind","insertBefore","split","toggleBooleanAttribute","ele","name","removeAttribute","oldValue","newValue","_NewPasswordClass__WEBPACK_IMPORTED_MODULE_0__","_helpers_componentHelpers__WEBPACK_IMPORTED_MODULE_2__","inputElementPlaceholder","revealButtonContainer","revealButtonIcon","PasswordClass","_mixins__WEBPACK_IMPORTED_MODULE_0__","inputPlaceholderTextColor","revealButtonOffset","revealButtonSize","revealButtonColor","RV","inputType","inputName","noBlurDispatch","_passwordDraggableMixin__WEBPACK_IMPORTED_MODULE_3__","manualToggleVisibility","handleCaretOnVisibilityChange","origSetPasswordVisible","_setPasswordVisible","origSetFocused","_setFocused","setFocus","stopRevealButtonEnterPropagation","revealButton","key","stopPropagation","createExternalInput","handlePasswordVisibility","caretPosition","origTogglePasswordVisibility","_togglePasswordVisibility","setSelectionRange","focused","call","resetPasswordVisibilityToggle","origSetFocus","origBoundRevealButtonMouseDown","__boundRevealButtonMouseDown","_passwordVisibleChanged","showPasswordVisibility","hidePasswordVisibility","_helpers_themeHelpers_resetHelpers__WEBPACK_IMPORTED_MODULE_4__","I4","_PasswordClass__WEBPACK_IMPORTED_MODULE_1__","isReadOnly","isDraggable","inputEle","prevType","onComplete","_","_helpers_componentHelpers__WEBPACK_IMPORTED_MODULE_4__","dataAttrs","policyAttrs","RawPolicyValidation","_baseClasses_createBaseClass__WEBPACK_IMPORTED_MODULE_2__","availablePolicies","overrides","attachShadow","mode","_descope_ui_common_components_helpers__WEBPACK_IMPORTED_MODULE_0__","panel","list","updateLabel","JSON","parse","console","error","ln","Number","isNaN","minlength","passwordstrength","expected","actual","disallowedchars","_drop","rest","disallowemail","renderItems","getStrengthScore","compareValues","comparison","toUpperCase","Error","validate","policies","map","policy","data","id","reduce","results","find","p","pattern","message","compare","normalizedCompare","validationResult","_helpers__WEBPACK_IMPORTED_MODULE_5__","z","exp","RegExp","valid","test","toLowerCase","at","indexOf","localPart","slice","push","some","buildValidationItem","status","li","className","dataset","span","textContent","replaceChildren","add","item","symbolDefault","symbolSuccess","symbolError","PolicyValidationClass","_helpers__WEBPACK_IMPORTED_MODULE_3__","componentNameOverride","borderWidth","borderStyle","borderColor","borderRadius","textColor","labelMargin","itemsSpacing","itemSymbolSuccessColor","itemSymbolErrorColor","itemSymbolDefault","itemSymbolSuccess","itemSymbolError","interpolateString","values","match","_PolicyValidationClass__WEBPACK_IMPORTED_MODULE_0__"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[6969],{5810(t,e,i){i.d(e,{M:()=>f,T:()=>l});var r=i(79365),o=i(9696),s=i(97810),n=i(16616),a=i(73551);const l=(0,s.xE)("password"),{host:p,inputField:d,inputElement:u,inputElementPlaceholder:h,revealButtonContainer:c,revealButtonIcon:b,label:y,requiredIndicator:g,errorMessage:w,helperText:m}={host:{selector:()=>":host"},inputField:{selector:"::part(input-field)"},inputElement:{selector:"> input"},inputElementPlaceholder:{selector:()=>":host input:placeholder-shown"},revealButtonContainer:{selector:"::part(reveal-button)"},revealButtonIcon:{selector:"::part(reveal-button)::before"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"}},f=(0,o.Zz)((0,r.RF)({mappings:{hostWidth:{...p,property:"width"},hostMinWidth:{...p,property:"min-width"},hostDirection:{...p,property:"direction"},fontSize:[{},p],fontFamily:[y,d,w,m],inputHeight:{...d,property:"height"},inputHorizontalPadding:[{...u,property:"padding-left"},{...u,property:"padding-right"}],inputBackgroundColor:{...d,property:"background-color"},inputBorderStyle:{...d,property:"border-style"},inputBorderWidth:{...d,property:"border-width"},inputBorderColor:{...d,property:"border-color"},inputBorderRadius:{...d,property:"border-radius"},inputOutlineColor:{...d,property:"outline-color"},inputOutlineStyle:{...d,property:"outline-style"},inputOutlineOffset:{...d,property:"outline-offset"},inputOutlineWidth:{...d,property:"outline-width"},labelFontSize:{...y,property:"font-size"},labelFontWeight:{...y,property:"font-weight"},inputValueFontWeight:[{...u,property:"font-weight"},{selector:()=>":host ::slotted(input)",property:"font-weight"}],inputPlaceholderFontWeight:[{...h,property:"font-weight"},{selector:()=>":host ::slotted(input:placeholder-shown)",property:"font-weight"}],helperTextFontWeight:{...m,property:"font-weight"},errorMessageFontWeight:{...w,property:"font-weight"},labelTextColor:[{...y,property:"color"},{...y,property:"-webkit-text-fill-color"},{...g,property:"color"},{...g,property:"-webkit-text-fill-color"}],labelRequiredIndicator:{...g,property:"content"},errorMessageTextColor:{...w,property:"color"},errorMessageIcon:{...w,property:"background-image"},errorMessageIconSize:{...w,property:"background-size"},errorMessageIconPadding:{...w,property:"padding-inline-start"},errorMessageIconRepeat:{...w,property:"background-repeat"},errorMessageIconPosition:{...w,property:"background-position"},errorMessageFontSize:{...w,property:"font-size"},inputPlaceholderTextColor:[{...h,property:"color"},{selector:()=>":host ::slotted(input:placeholder-shown)",property:"color"}],inputValueTextColor:[{...u,property:"color"},{selector:()=>":host ::slotted(input)",property:"color"}],revealButtonOffset:[{...c,property:"margin-right"},{...c,property:"margin-left"}],revealButtonSize:{...c,property:"font-size"},revealButtonColor:{...b,property:"color"},labelPosition:{...y,property:"position"},labelTopPosition:{...y,property:"top"},labelHorizontalPosition:[{...y,property:"left"},{...y,property:"right"}],inputTransformY:{...y,property:"transform"},inputTransition:{...y,property:"transition"},marginInlineStart:{...y,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...u,property:"opacity"}],inputVerticalAlignment:{...d,property:"align-items"},valueInputHeight:{...u,property:"height"}}}),r.VO,(0,r.RV)({inputType:"password",inputName:"password",includeAttrs:["disabled","readonly","pattern","type","autocomplete"],noBlurDispatch:!0}),(0,r.OZ)({proxyProps:["value","selectionStart"],useProxyTargets:!0}),r.tQ,n.A,t=>class extends t{static get observedAttributes(){return["manual-visibility-toggle"]}get manualToggleVisibility(){return"true"===this.getAttribute("manual-visibility-toggle")}init(){super.init?.(),this.handleCaretOnVisibilityChange(),this.origSetPasswordVisible=this.baseElement._setPasswordVisible,this.origSetFocused=this.baseElement._setFocused,this.baseElement._setFocused=this.setFocus.bind(this),this.initExternalInput()}initExternalInput(){const t=this.createExternalInput();t&&this.handlePasswordVisibility(t)}get caretPosition(){return this.value?.length||0}handleCaretOnVisibilityChange(){const t=this.baseElement._togglePasswordVisibility.bind(this.baseElement);this.baseElement._togglePasswordVisibility=()=>{setTimeout(()=>(t(),this.inputElement.setSelectionRange(this.caretPosition,this.caretPosition),!1))}}setFocus(t){this.manualToggleVisibility&&(this.baseElement._setPasswordVisible=()=>{}),this.origSetFocused.call(this.baseElement,t),this.baseElement._setPasswordVisible=this.origSetPasswordVisible.bind(this.baseElement)}resetPasswordVisibilityToggle(){this.baseElement._setPasswordVisible=this.origSetPasswordVisible,this.baseElement._setFocused=this.origSetFocus}attributeChangedCallback(t,e,i){super.attributeChangedCallback?.(t,e,i)}handlePasswordVisibility(t){const e=this.baseElement.__boundRevealButtonMouseDown;this.baseElement.querySelector("vaadin-password-field-button").removeEventListener("mousedown",e),this.baseElement._passwordVisibleChanged=()=>{},this.baseElement._togglePasswordVisibility=()=>{"password"===t.getAttribute("type")?this.showPasswordVisibility(t):this.hidePasswordVisibility(t)}}showPasswordVisibility(t){t.setAttribute("type","text"),this.setAttribute("password-visible","true")}hidePasswordVisibility(t){t.setAttribute("type","password"),this.setAttribute("password-visible","false")}})((0,r.tz)({slots:["","suffix"],wrappedEleName:"vaadin-password-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\tmin-width: 10em;\n box-sizing: border-box;\n position: relative;\n\t\t\t}\n\t\t\t${(0,a.cy)(f.cssVarList)}\n\t\t\t${(0,a.I4)("vaadin-password-field")}\n ${(0,a.$J)("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(${f.cssVarList.inputOutlineColor});\n\t\t\t}\n\n ${(0,a.Kl)()}\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`,excludeAttrsSync:["tabindex","style"],componentName:l}))},19169(t,e,i){i.r(e),i.d(e,{PasswordClass:()=>r.M,componentName:()=>r.T}),i(51899);var r=i(5810);customElements.define(r.T,r.M)},16616(t,e,i){i.d(e,{A:()=>r});const r=t=>class extends t{get isReadOnly(){return this.hasAttribute("readonly")&&"false"!==this.getAttribute("readonly")}init(){super.init?.();const t=this.querySelector("input");t?.addEventListener("mousedown",e=>{if(this.isDraggable&&this.isReadOnly){t.setAttribute("inert","true");const i=e.target,r=i.getAttribute("type");i.setAttribute("type","text"),setTimeout(()=>{i.focus()});const o=e=>{i.setAttribute("type",r),t.removeAttribute("inert"),this.removeEventListener("mouseup",o),this.removeEventListener("dragend",o)};this.addEventListener("dragend",o,{once:!0}),this.addEventListener("mouseup",o,{once:!0})}})}}}}]);
1
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[6969],{5810(t,e,i){i.d(e,{M:()=>f,T:()=>l});var r=i(79365),o=i(9696),n=i(97810),s=i(16616),a=i(73551);const l=(0,n.xE)("password"),{host:p,inputField:d,inputElement:u,inputElementPlaceholder:h,revealButtonContainer:c,revealButtonIcon:b,label:g,requiredIndicator:y,errorMessage:w,helperText:m}={host:{selector:()=>":host"},inputField:{selector:"::part(input-field)"},inputElement:{selector:"> input"},inputElementPlaceholder:{selector:()=>":host input:placeholder-shown"},revealButtonContainer:{selector:"::part(reveal-button)"},revealButtonIcon:{selector:"::part(reveal-button)::before"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"}},f=(0,o.Zz)((0,r.RF)({mappings:{hostWidth:{...p,property:"width"},hostMinWidth:{...p,property:"min-width"},hostDirection:{...p,property:"direction"},fontSize:[{},p],fontFamily:[g,d,w,m],inputHeight:{...d,property:"height"},inputHorizontalPadding:[{...u,property:"padding-left"},{...u,property:"padding-right"}],inputBackgroundColor:{...d,property:"background-color"},inputBorderStyle:{...d,property:"border-style"},inputBorderWidth:{...d,property:"border-width"},inputBorderColor:{...d,property:"border-color"},inputBorderRadius:{...d,property:"border-radius"},inputOutlineColor:{...d,property:"outline-color"},inputOutlineStyle:{...d,property:"outline-style"},inputOutlineOffset:{...d,property:"outline-offset"},inputOutlineWidth:{...d,property:"outline-width"},labelFontSize:{...g,property:"font-size"},labelFontWeight:{...g,property:"font-weight"},inputValueFontWeight:[{...u,property:"font-weight"},{selector:()=>":host ::slotted(input)",property:"font-weight"}],inputPlaceholderFontWeight:[{...h,property:"font-weight"},{selector:()=>":host ::slotted(input:placeholder-shown)",property:"font-weight"}],helperTextFontWeight:{...m,property:"font-weight"},errorMessageFontWeight:{...w,property:"font-weight"},labelTextColor:[{...g,property:"color"},{...g,property:"-webkit-text-fill-color"},{...y,property:"color"},{...y,property:"-webkit-text-fill-color"}],labelRequiredIndicator:{...y,property:"content"},errorMessageTextColor:{...w,property:"color"},errorMessageIcon:{...w,property:"background-image"},errorMessageIconSize:{...w,property:"background-size"},errorMessageIconPadding:{...w,property:"padding-inline-start"},errorMessageIconRepeat:{...w,property:"background-repeat"},errorMessageIconPosition:{...w,property:"background-position"},errorMessageFontSize:{...w,property:"font-size"},inputPlaceholderTextColor:[{...h,property:"color"},{selector:()=>":host ::slotted(input:placeholder-shown)",property:"color"}],inputValueTextColor:[{...u,property:"color"},{selector:()=>":host ::slotted(input)",property:"color"}],revealButtonOffset:[{...c,property:"margin-right"},{...c,property:"margin-left"}],revealButtonSize:{...c,property:"font-size"},revealButtonColor:{...b,property:"color"},labelPosition:{...g,property:"position"},labelTopPosition:{...g,property:"top"},labelHorizontalPosition:[{...g,property:"left"},{...g,property:"right"}],inputTransformY:{...g,property:"transform"},inputTransition:{...g,property:"transition"},marginInlineStart:{...g,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...u,property:"opacity"}],inputVerticalAlignment:{...d,property:"align-items"},valueInputHeight:{...u,property:"height"}}}),r.VO,(0,r.RV)({inputType:"password",inputName:"password",includeAttrs:["disabled","readonly","pattern","type","autocomplete"],noBlurDispatch:!0}),(0,r.OZ)({proxyProps:["value","selectionStart"],useProxyTargets:!0}),r.tQ,s.A,t=>class extends t{static get observedAttributes(){return["manual-visibility-toggle"]}get manualToggleVisibility(){return"true"===this.getAttribute("manual-visibility-toggle")}init(){super.init?.(),this.handleCaretOnVisibilityChange(),this.origSetPasswordVisible=this.baseElement._setPasswordVisible,this.origSetFocused=this.baseElement._setFocused,this.baseElement._setFocused=this.setFocus.bind(this),this.initExternalInput(),this.stopRevealButtonEnterPropagation()}stopRevealButtonEnterPropagation(){this.revealButton.addEventListener("keydown",t=>{"Enter"===t.key&&t.stopPropagation()})}get revealButton(){return this.baseElement.querySelector("vaadin-password-field-button")}initExternalInput(){const t=this.createExternalInput();t&&this.handlePasswordVisibility(t)}get caretPosition(){return this.value?.length||0}handleCaretOnVisibilityChange(){const t=this.baseElement._togglePasswordVisibility.bind(this.baseElement);this.baseElement._togglePasswordVisibility=()=>{setTimeout(()=>(t(),this.inputElement.setSelectionRange(this.caretPosition,this.caretPosition),!1))}}setFocus(t){this.manualToggleVisibility&&(this.baseElement._setPasswordVisible=()=>{}),this.origSetFocused.call(this.baseElement,t),this.baseElement._setPasswordVisible=this.origSetPasswordVisible.bind(this.baseElement)}resetPasswordVisibilityToggle(){this.baseElement._setPasswordVisible=this.origSetPasswordVisible,this.baseElement._setFocused=this.origSetFocus}attributeChangedCallback(t,e,i){super.attributeChangedCallback?.(t,e,i)}handlePasswordVisibility(t){const e=this.baseElement.__boundRevealButtonMouseDown;this.revealButton.removeEventListener("mousedown",e),this.baseElement._passwordVisibleChanged=()=>{},this.baseElement._togglePasswordVisibility=()=>{"password"===t.getAttribute("type")?this.showPasswordVisibility(t):this.hidePasswordVisibility(t)}}showPasswordVisibility(t){t.setAttribute("type","text"),this.setAttribute("password-visible","true")}hidePasswordVisibility(t){t.setAttribute("type","password"),this.setAttribute("password-visible","false")}})((0,r.tz)({slots:["","suffix"],wrappedEleName:"vaadin-password-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\tmin-width: 10em;\n box-sizing: border-box;\n position: relative;\n\t\t\t}\n\t\t\t${(0,a.cy)(f.cssVarList)}\n\t\t\t${(0,a.I4)("vaadin-password-field")}\n ${(0,a.$J)("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(${f.cssVarList.inputOutlineColor});\n\t\t\t}\n\n ${(0,a.Kl)()}\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`,excludeAttrsSync:["tabindex","style"],componentName:l}))},19169(t,e,i){i.r(e),i.d(e,{PasswordClass:()=>r.M,componentName:()=>r.T}),i(51899);var r=i(5810);customElements.define(r.T,r.M)},16616(t,e,i){i.d(e,{A:()=>r});const r=t=>class extends t{get isReadOnly(){return this.hasAttribute("readonly")&&"false"!==this.getAttribute("readonly")}init(){super.init?.();const t=this.querySelector("input");t?.addEventListener("mousedown",e=>{if(this.isDraggable&&this.isReadOnly){t.setAttribute("inert","true");const i=e.target,r=i.getAttribute("type");i.setAttribute("type","text"),setTimeout(()=>{i.focus()});const o=e=>{i.setAttribute("type",r),t.removeAttribute("inert"),this.removeEventListener("mouseup",o),this.removeEventListener("dragend",o)};this.addEventListener("dragend",o,{once:!0}),this.addEventListener("mouseup",o,{once:!0})}})}}}}]);
2
2
  //# sourceMappingURL=descope-password-index-js.js.map