@descope/web-components-ui 3.12.1 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs.js +4121 -2426
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.esm.js +3165 -1468
- package/dist/index.esm.js.map +1 -1
- package/dist/umd/6618.js +591 -0
- package/dist/umd/{7387.js.LICENSE.txt → 6618.js.LICENSE.txt} +6 -0
- package/dist/umd/6618.js.map +1 -0
- package/dist/umd/8350.js +2 -0
- package/dist/umd/8350.js.map +1 -0
- package/dist/umd/9265.js +2 -0
- package/dist/umd/9265.js.map +1 -0
- package/dist/umd/DescopeDev.js +1 -1
- package/dist/umd/DescopeDev.js.map +1 -1
- package/dist/umd/descope-date-field-descope-calendar-index-js.js +449 -1
- package/dist/umd/descope-date-field-descope-calendar-index-js.js.map +1 -1
- package/dist/umd/descope-date-field-index-js.js +1 -1
- package/dist/umd/descope-date-field-index-js.js.map +1 -1
- package/dist/umd/descope-email-field-index-js.js +2 -2
- package/dist/umd/descope-email-field-index-js.js.map +1 -1
- package/dist/umd/descope-hybrid-field-index-js.js +1 -1
- package/dist/umd/descope-hybrid-field-index-js.js.map +1 -1
- package/dist/umd/descope-month-day-field-picker.js +114 -0
- package/dist/umd/descope-month-day-field-picker.js.LICENSE.txt +11 -0
- package/dist/umd/descope-month-day-field-picker.js.map +1 -0
- package/dist/umd/descope-month-day-field.js +2 -0
- package/dist/umd/descope-month-day-field.js.map +1 -0
- package/dist/umd/descope-new-password-index-js.js +1 -1
- package/dist/umd/descope-new-password-index-js.js.map +1 -1
- package/dist/umd/descope-number-field-index-js.js +1 -1
- package/dist/umd/descope-number-field-index-js.js.map +1 -1
- package/dist/umd/descope-passcode-index-js.js +1 -1
- package/dist/umd/descope-passcode-index-js.js.map +1 -1
- package/dist/umd/descope-radio-group-index-js.js +1 -1
- package/dist/umd/descope-radio-group-index-js.js.map +1 -1
- package/dist/umd/descope-security-questions-setup-index-js.js +1 -1
- package/dist/umd/descope-security-questions-setup-index-js.js.map +1 -1
- package/dist/umd/descope-security-questions-verify-index-js.js +1 -1
- package/dist/umd/descope-security-questions-verify-index-js.js.map +1 -1
- package/dist/umd/descope-text-field.js +38 -0
- package/dist/umd/descope-text-field.js.map +1 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
- package/dist/umd/mapping-fields-descope-mappings-field-index-js.js.map +1 -1
- package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js +1 -1
- package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js.map +1 -1
- package/dist/umd/phone-fields-descope-phone-field-descope-phone-field-internal-index-js.js +1 -1
- package/dist/umd/phone-fields-descope-phone-field-descope-phone-field-internal-index-js.js.map +1 -1
- package/dist/umd/phone-fields-descope-phone-field-index-js.js +1 -1
- package/dist/umd/phone-fields-descope-phone-field-index-js.js.map +1 -1
- package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js +1 -1
- package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js.map +1 -1
- package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +1 -1
- package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js.map +1 -1
- package/package.json +39 -36
- package/src/components/descope-date-field/DateFieldClass.js +1 -1
- package/src/components/descope-date-field/index.js +1 -1
- package/src/components/descope-email-field/EmailFieldClass.js +1 -1
- package/src/components/descope-new-password/index.js +1 -1
- package/src/components/descope-number-field/NumberFieldClass.js +1 -1
- package/src/components/descope-passcode/PasscodeClass.js +1 -1
- package/src/components/descope-passcode/index.js +1 -1
- package/src/components/descope-radio-group/RadioGroupClass.js +1 -1
- package/src/components/descope-security-questions-setup/SecurityQuestionsSetupClass.js +1 -1
- package/src/components/descope-security-questions-setup/index.js +1 -1
- package/src/components/descope-security-questions-verify/SecurityQuestionsVerifyClass.js +1 -1
- package/src/components/descope-security-questions-verify/index.js +1 -1
- package/src/components/mapping-fields/descope-mappings-field/index.js +1 -1
- package/src/components/mapping-fields/descope-saml-group-mappings/index.js +1 -1
- package/src/components/phone-fields/descope-phone-field/PhoneFieldClass.js +1 -1
- package/src/components/phone-fields/descope-phone-field/descope-phone-field-internal/index.js +1 -1
- package/src/components/phone-fields/descope-phone-field/index.js +1 -1
- package/src/components/phone-fields/descope-phone-input-box-field/PhoneFieldInputBoxClass.js +1 -1
- package/src/components/phone-fields/descope-phone-input-box-field/descope-phone-input-box-internal/index.js +1 -1
- package/src/components/phone-fields/descope-phone-input-box-field/index.js +1 -1
- package/src/index.cjs.js +2 -2
- package/src/index.js +0 -1
- package/src/theme/components/index.js +5 -1
- package/stories/descope-text-field.stories.js +1 -1
- package/dist/umd/3685.js +0 -2
- package/dist/umd/3685.js.map +0 -1
- package/dist/umd/4518.js +0 -450
- package/dist/umd/4518.js.map +0 -1
- package/dist/umd/7387.js +0 -144
- package/dist/umd/7387.js.map +0 -1
- package/dist/umd/descope-text-field-index-js.js +0 -38
- package/dist/umd/descope-text-field-index-js.js.map +0 -1
- package/src/components/descope-text-field/TextFieldClass.js +0 -142
- package/src/components/descope-text-field/index.js +0 -9
- package/src/components/descope-text-field/textFieldMappings.js +0 -169
- package/src/theme/components/textField.js +0 -71
- /package/dist/umd/{4518.js.LICENSE.txt → descope-date-field-descope-calendar-index-js.js.LICENSE.txt} +0 -0
- /package/dist/umd/{descope-text-field-index-js.js.LICENSE.txt → descope-text-field.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descope-new-password-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/./src/baseClasses/createBaseInputClass.js","webpack://@descope/web-components-ui/./src/components/descope-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","webpack://@descope/web-components-ui/./src/components/descope-text-field/TextFieldClass.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/index.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/textFieldMappings.js"],"sourcesContent":["import { compose } from '../helpers';\nimport {\n changeMixin,\n inputEventsDispatchingMixin,\n inputValidationMixin,\n normalizeBooleanAttributesMixin,\n} from '../mixins';\nimport { createBaseClass } from './createBaseClass';\n\nexport const createBaseInputClass = (...args) =>\n compose(\n inputValidationMixin,\n changeMixin,\n normalizeBooleanAttributesMixin,\n inputEventsDispatchingMixin\n )(createBaseClass(...args));\n","import { 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-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","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport textFieldMappings from './textFieldMappings';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('text-field');\n\nconst observedAttrs = ['type', 'label-type', 'copy-to-clipboard'];\n\nconst customMixin = (superclass) =>\n class TextFieldClass extends superclass {\n static get observedAttributes() {\n return observedAttrs.concat(superclass.observedAttributes || []);\n }\n\n icon;\n\n init() {\n super.init?.();\n }\n\n renderCopyToClipboard(shouldRender) {\n if (!shouldRender) {\n this.icon?.remove();\n return;\n }\n\n const iconInitConfig = {\n icon: 'vaadin:copy-o',\n title: 'Copy',\n style: 'cursor: pointer',\n };\n\n const iconCopiedConfig = {\n icon: 'vaadin:check-circle-o',\n title: 'Copied',\n style: 'cursor: initial',\n };\n\n this.icon = Object.assign(document.createElement('vaadin-icon'), {\n slot: 'suffix',\n ...iconInitConfig,\n });\n\n this.baseElement.appendChild(this.icon);\n this.icon.addEventListener('click', () => {\n navigator.clipboard.writeText(this.value);\n Object.assign(this.icon, iconCopiedConfig);\n\n // we want the icon to go back to the initial state after 5 seconds\n setTimeout(() => {\n Object.assign(this.icon, iconInitConfig);\n }, 5000);\n });\n }\n\n onLabelClick() {\n this.focus();\n }\n\n attributeChangedCallback(attrName, oldVal, newVal) {\n super.attributeChangeCallback?.(attrName, oldVal, newVal);\n\n // Vaadin doesn't allow to change the input type attribute.\n // We need the ability to do that, so we're overriding their\n // behavior with their private API.\n // When receiving a `type` attribute, we use their private API\n // to set it on the input.\n if (attrName === 'type') {\n this.baseElement._setType(newVal);\n }\n\n if (oldVal !== newVal) {\n if (attrName === 'label-type') {\n if (newVal === 'floating') {\n this.addEventListener('click', this.onLabelClick);\n } else {\n this.removeEventListener('click', this.onLabelClick);\n }\n } else if (attrName === 'copy-to-clipboard') {\n this.renderCopyToClipboard(newVal === 'true');\n }\n }\n }\n };\n\nexport const TextFieldClass = compose(\n createStyleMixin({\n mappings: textFieldMappings,\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'], useProxyTargets: true }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: ['prefix', 'suffix'],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${TextFieldClass.cssVarList.inputOutlineWidth}) + var(${\n TextFieldClass.cssVarList.inputOutlineOffset\n }));\n box-sizing: border-box;\n\t\t\t}\n :host(:is([readonly], [disabled])) ::slotted(:is(input, textarea):placeholder-shown) {\n opacity: 1;\n }\n\n vaadin-text-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-text-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n ${resetInputLabelPosition('vaadin-text-field')}\n\t\t\t${useHostExternalPadding(TextFieldClass.cssVarList)}\n\t\t\t${resetInputOverrides('vaadin-text-field', TextFieldClass.cssVarList)}\n ${inputFloatingLabelStyle()}\n\n vaadin-text-field vaadin-icon {\n align-self: center;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex', 'style'],\n componentName,\n })\n);\n","import '@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: { selector: '[required]::part(required-indicator)::after' },\n placeholder: [\n { selector: '> input:placeholder-shown' },\n { selector: () => ':host::slotted(input:placeholder-shown)' },\n ],\n disabledPlaceholder: { selector: '> input:disabled::placeholder' },\n inputField: { selector: '::part(input-field)' },\n input: { selector: 'input' },\n inputMask: { selector: '::part(input-field)::before' },\n inputDisabled: { selector: 'input:disabled' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n inputIcon: { selector: 'vaadin-icon' },\n externalInput: { selector: () => '::slotted(input)' },\n externalInputDisabled: { selector: () => '::slotted(input:disabled)' },\n externalPlaceholder: { selector: () => '::slotted(input:placeholder-shown)' },\n externalDisabledPlaceholder: { selector: () => '::slotted(input:disabled::placeholder)' },\n};\n\nexport default {\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n fontFamily: [label, inputField, helperText, errorMessage],\n\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n\n inputValueFontWeight: [\n { ...input, property: 'font-weight' },\n { ...externalInput, property: 'font-weight' },\n ],\n inputPlaceholderFontWeight: [\n { selector: () => ':host input:placeholder-shown', property: 'font-weight' },\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: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n errorMessageFontSize: { ...errorMessage, property: 'font-size' },\n\n helperTextColor: { ...helperText, property: '-webkit-text-fill-color' },\n\n inputValueTextColor: [\n { ...inputField, property: 'color' },\n { ...inputDisabled, property: '-webkit-text-fill-color' },\n { ...externalInputDisabled, property: '-webkit-text-fill-color' },\n ],\n inputCaretTextColor: [\n { ...input, property: 'caret-color' },\n { ...externalInput, property: 'caret-color' },\n ],\n\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n inputHeight: { ...inputField, property: 'height' },\n inputHorizontalPadding: [\n { ...input, property: 'padding-left' },\n { ...input, property: 'padding-right' },\n { ...externalInput, property: 'padding-left' },\n { ...externalInput, property: 'padding-right' },\n ],\n\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n\n textAlign: {},\n\n inputTextAlign: [\n { ...input, property: 'text-align' },\n { ...externalInput, property: 'text-align' },\n ],\n\n inputPlaceholderColor: [\n { selector: () => ':host input:placeholder-shown', property: 'color' },\n { ...externalPlaceholder, property: 'color' },\n { ...placeholder, property: 'color' },\n { ...disabledPlaceholder, property: '-webkit-text-fill-color' },\n { ...externalDisabledPlaceholder, property: '-webkit-text-fill-color' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: [\n { selector: '> input:placeholder-shown', property: 'opacity' },\n { ...externalPlaceholder, property: 'opacity' },\n ],\n inputVerticalAlignment: [\n { ...inputField, property: 'align-items' },\n { ...externalInput, property: 'align-items' },\n ],\n valueInputHeight: [\n { ...input, property: 'height' },\n { ...externalInput, property: 'height' },\n ],\n valueInputMarginBottom: [\n { ...input, property: 'margin-bottom' },\n { ...externalInput, property: 'margin-bottom' },\n ],\n\n inputIconOffset: [\n { ...inputIcon, property: 'margin-right' },\n { ...inputIcon, property: 'margin-left' },\n ],\n inputIconSize: { ...inputIcon, property: 'font-size' },\n inputIconColor: { ...inputIcon, property: 'color' },\n 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"],"names":["createBaseInputClass","args","componentName","policyPreviewVars","cssVarList","host","label","internalInputsWrapper","errorMessage","helperText","passwordInput","policyPreview","selector","NewPasswordClass","mappings","fontSize","property","fontFamily","labelFontSize","labelFontWeight","inputValueFontWeight","inputPlaceholderFontWeight","helperTextFontWeight","errorMessageFontWeight","labelTextColor","errorMessageTextColor","errorMessageIcon","errorMessageIconSize","errorMessageIconPadding","errorMessageIconRepeat","errorMessageIconPosition","errorMessageFontSize","hostWidth","hostMinWidth","hostDirection","inputsRequiredIndicator","spaceBetweenInputs","policyPreviewBackgroundColor","backgroundColor","policyPreviewPadding","padding","valueInputHeight","valueInputMarginBottom","proxyProps","superclass","init","super","template","document","createElement","externalInputAttr","this","getAttribute","innerHTML","baseElement","appendChild","content","cloneNode","inputElement","shadowRoot","querySelector","initExternalInput","includeAttrs","createSlottedExternalInput","node","slotName","externalInput","slotEle","targetSlot","setAttribute","confirmInput","slots","wrappedEleName","style","excludeAttrsSync","passwordAttrPrefixRegex","confirmAttrPrefixRegex","removeAttrPrefix","attr","prefix","replace","passwordInputAttrs","confirmInputAttrs","policyPanelAttrs","commonAttrs","inputRelatedAttrs","concat","BaseInputClass","customElements","define","observedAttributes","constructor","wrapperEle","value","val","hasConfirm","onHasConfirmChange","classList","toggle","onHasValidationChange","hasValidation","policyPanel","getValidity","isRequired","valueMissing","isValid","typeMismatch","patternMismatch","min","minVal","parseInt","length","tooShort","addEventListener","e","isTrusted","focus","renderInputs","hasExternalInput","passwordStrength","inputs","initInputs","detail","once","target","mapAttrs","handleIndicatorStyle","forEach","input","isInvalid","hasAttribute","handleInputsInvalidAttribute","changedAttributes","includes","inputInvalidValue","rootInvalidValue","handleFocusEventsDispatching","togglePasswordStrength","activePolicies","insertBefore","remove","split","toggleBooleanAttribute","ele","name","removeAttribute","attributeChangedCallback","attrName","oldValue","newValue","inputField","inputElementPlaceholder","revealButtonContainer","revealButtonIcon","requiredIndicator","PasswordClass","inputHeight","inputHorizontalPadding","inputBackgroundColor","inputBorderStyle","inputBorderWidth","inputBorderColor","inputBorderRadius","inputOutlineColor","inputOutlineStyle","inputOutlineOffset","inputOutlineWidth","labelRequiredIndicator","inputPlaceholderTextColor","inputValueTextColor","revealButtonOffset","revealButtonSize","revealButtonColor","labelPosition","labelTopPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","inputType","inputName","noBlurDispatch","useProxyTargets","manualToggleVisibility","handleCaretOnVisibilityChange","origSetPasswordVisible","_setPasswordVisible","origSetFocused","_setFocused","setFocus","bind","createExternalInput","handlePasswordVisibility","caretPosition","origTogglePasswordVisibility","_togglePasswordVisibility","setTimeout","setSelectionRange","focused","call","resetPasswordVisibilityToggle","origSetFocus","origBoundRevealButtonMouseDown","__boundRevealButtonMouseDown","removeEventListener","_passwordVisibleChanged","showPasswordVisibility","hidePasswordVisibility","isReadOnly","isDraggable","inputEle","prevType","onComplete","_","dataAttrs","policyAttrs","RawPolicyValidation","baseSelector","attachShadow","mode","panel","list","updateLabel","availablePolicies","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","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","componentNameOverride","borderWidth","borderStyle","borderColor","borderRadius","textColor","labelMargin","itemsSpacing","itemSymbolSuccessColor","itemSymbolErrorColor","itemSymbolDefault","itemSymbolSuccess","itemSymbolError","interpolateString","values","match","key","observedAttrs","TextFieldClass","icon","renderCopyToClipboard","shouldRender","iconInitConfig","title","iconCopiedConfig","Object","assign","slot","navigator","clipboard","writeText","onLabelClick","oldVal","newVal","attributeChangeCallback","_setType","placeholder","inputMask","disabledPlaceholder","inputDisabled","inputIcon","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","inputDirection","helperTextColor","inputCaretTextColor","textAlign","inputTextAlign","inputPlaceholderColor","inputIconOffset","inputIconSize","inputIconColor","inputTextSecurity"],"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 { getComponentName } 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\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'],\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","observedAttrs","TextFieldClass","mappings","proxyProps","useProxyTargets","superclass","observedAttributes","concat","icon","init","super","renderCopyToClipboard","shouldRender","this","remove","iconInitConfig","title","style","iconCopiedConfig","Object","assign","document","createElement","slot","baseElement","appendChild","addEventListener","navigator","clipboard","writeText","value","setTimeout","onLabelClick","focus","attributeChangedCallback","attrName","oldVal","newVal","attributeChangeCallback","_setType","removeEventListener","slots","wrappedEleName","cssVarList","inputOutlineWidth","inputOutlineOffset","excludeAttrsSync","customElements","define","host","label","placeholder","requiredIndicator","inputField","input","inputMask","helperText","errorMessage","disabledPlaceholder","inputDisabled","inputIcon","externalInput","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","selector","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","policyPreviewVars","internalInputsWrapper","passwordInput","policyPreview","NewPasswordClass","inputsRequiredIndicator","spaceBetweenInputs","policyPreviewBackgroundColor","backgroundColor","policyPreviewPadding","padding","template","externalInputAttr","getAttribute","innerHTML","content","cloneNode","inputElement","shadowRoot","querySelector","initExternalInput","includeAttrs","createSlottedExternalInput","node","slotName","slotEle","targetSlot","setAttribute","confirmInput","passwordAttrPrefixRegex","confirmAttrPrefixRegex","removeAttrPrefix","attr","prefix","replace","passwordInputAttrs","confirmInputAttrs","policyPanelAttrs","commonAttrs","inputRelatedAttrs","BaseInputClass","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","mapAttrs","handleIndicatorStyle","forEach","isInvalid","hasAttribute","handleInputsInvalidAttribute","changedAttributes","includes","inputInvalidValue","rootInvalidValue","handleFocusEventsDispatching","togglePasswordStrength","activePolicies","insertBefore","split","toggleBooleanAttribute","ele","name","removeAttribute","oldValue","newValue","inputElementPlaceholder","revealButtonContainer","revealButtonIcon","PasswordClass","inputPlaceholderTextColor","revealButtonOffset","revealButtonSize","revealButtonColor","inputType","inputName","noBlurDispatch","manualToggleVisibility","handleCaretOnVisibilityChange","origSetPasswordVisible","_setPasswordVisible","origSetFocused","_setFocused","setFocus","bind","createExternalInput","handlePasswordVisibility","caretPosition","origTogglePasswordVisibility","_togglePasswordVisibility","setSelectionRange","focused","call","resetPasswordVisibilityToggle","origSetFocus","origBoundRevealButtonMouseDown","__boundRevealButtonMouseDown","_passwordVisibleChanged","showPasswordVisibility","hidePasswordVisibility","isReadOnly","isDraggable","inputEle","prevType","onComplete","_","dataAttrs","policyAttrs","RawPolicyValidation","baseSelector","attachShadow","mode","panel","list","updateLabel","availablePolicies","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","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","componentNameOverride","borderWidth","borderStyle","borderColor","borderRadius","textColor","labelMargin","itemsSpacing","itemSymbolSuccessColor","itemSymbolErrorColor","itemSymbolDefault","itemSymbolSuccess","itemSymbolError","interpolateString","values","match","key"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[7944],{
|
|
1
|
+
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[7944],{47656(e,t,r){r.d(t,{A:()=>m});const{host:o,label:p,placeholder:i,requiredIndicator:n,inputField:l,input:a,inputMask:s,helperText:d,errorMessage:c,disabledPlaceholder:u,inputDisabled:y,inputIcon:h,externalInput:g,externalInputDisabled:b,externalPlaceholder:f,externalDisabledPlaceholder:x}={host:{selector:()=>":host"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},placeholder:[{selector:"> input:placeholder-shown"},{selector:()=>":host::slotted(input:placeholder-shown)"}],disabledPlaceholder:{selector:"> input:disabled::placeholder"},inputField:{selector:"::part(input-field)"},input:{selector:"input"},inputMask:{selector:"::part(input-field)::before"},inputDisabled:{selector:"input:disabled"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},inputIcon:{selector:"vaadin-icon"},externalInput:{selector:()=>"::slotted(input)"},externalInputDisabled:{selector:()=>"::slotted(input:disabled)"},externalPlaceholder:{selector:()=>"::slotted(input:placeholder-shown)"},externalDisabledPlaceholder:{selector:()=>"::slotted(input:disabled::placeholder)"}},m={fontSize:[{},o],fontFamily:[p,l,d,c],labelFontSize:{...p,property:"font-size"},labelFontWeight:{...p,property:"font-weight"},inputValueFontWeight:[{...a,property:"font-weight"},{...g,property:"font-weight"}],inputPlaceholderFontWeight:[{selector:()=>":host input:placeholder-shown",property:"font-weight"},{...f,property:"font-weight"}],helperTextFontWeight:{...d,property:"font-weight"},errorMessageFontWeight:{...c,property:"font-weight"},labelTextColor:[{...p,property:"color"},{...n,property:"color"},{...p,property:"-webkit-text-fill-color"},{...n,property:"-webkit-text-fill-color"}],hostWidth:{...o,property:"width"},hostMinWidth:{...o,property:"min-width"},hostDirection:{...o,property:"direction"},inputDirection:{...a,property:"direction"},inputBackgroundColor:[{...l,property:"background-color"},{...s,property:"background-color"}],errorMessageTextColor:{...c,property:"color"},errorMessageIcon:{...c,property:"background-image"},errorMessageIconSize:{...c,property:"background-size"},errorMessageIconPadding:{...c,property:"padding-inline-start"},errorMessageIconRepeat:{...c,property:"background-repeat"},errorMessageIconPosition:{...c,property:"background-position"},errorMessageFontSize:{...c,property:"font-size"},helperTextColor:{...d,property:"-webkit-text-fill-color"},inputValueTextColor:[{...l,property:"color"},{...y,property:"-webkit-text-fill-color"},{...b,property:"-webkit-text-fill-color"}],inputCaretTextColor:[{...a,property:"caret-color"},{...g,property:"caret-color"}],labelRequiredIndicator:{...n,property:"content"},inputBorderColor:{...l,property:"border-color"},inputBorderWidth:{...l,property:"border-width"},inputBorderStyle:{...l,property:"border-style"},inputBorderRadius:{...l,property:"border-radius"},inputHeight:{...l,property:"height"},inputHorizontalPadding:[{...a,property:"padding-left"},{...a,property:"padding-right"},{...g,property:"padding-left"},{...g,property:"padding-right"}],inputOutlineColor:{...l,property:"outline-color"},inputOutlineStyle:{...l,property:"outline-style"},inputOutlineWidth:{...l,property:"outline-width"},inputOutlineOffset:{...l,property:"outline-offset"},textAlign:{},inputTextAlign:[{...a,property:"text-align"},{...g,property:"text-align"}],inputPlaceholderColor:[{selector:()=>":host input:placeholder-shown",property:"color"},{...f,property:"color"},{...i,property:"color"},{...u,property:"-webkit-text-fill-color"},{...x,property:"-webkit-text-fill-color"}],labelPosition:{...p,property:"position"},labelTopPosition:{...p,property:"top"},labelHorizontalPosition:[{...p,property:"left"},{...p,property:"right"}],inputTransformY:{...p,property:"transform"},inputTransition:{...p,property:"transition"},marginInlineStart:{...p,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...f,property:"opacity"}],inputVerticalAlignment:[{...l,property:"align-items"},{...g,property:"align-items"}],valueInputHeight:[{...a,property:"height"},{...g,property:"height"}],valueInputMarginBottom:[{...a,property:"margin-bottom"},{...g,property:"margin-bottom"}],inputIconOffset:[{...h,property:"margin-right"},{...h,property:"margin-left"}],inputIconSize:{...h,property:"font-size"},inputIconColor:{...h,property:"color"},inputTextSecurity:[{...a,property:"-webkit-text-security"},{...a,property:"text-security"},{...g,property:"-webkit-text-security"},{...g,property:"text-security"}]}},72598(e,t,r){r.r(t),r.d(t,{NumberFieldClass:()=>s,componentName:()=>a}),r(15648);var o=r(47656),p=r(79365),i=r(9696),n=r(97810),l=r(73551);const a=(0,n.xE)("number-field"),s=(0,i.Zz)((0,p.RF)({mappings:o.A}),p.VO,(0,p.OZ)({proxyProps:["value","selectionStart"]}),p.tQ)((0,p.tz)({slots:["","prefix","suffix"],wrappedEleName:"vaadin-number-field",style:()=>`\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${s.cssVarList.inputOutlineWidth}) + var(${s.cssVarList.inputOutlineOffset}));\n\t\t\t}\n ${(0,l.$J)("vaadin-number-field")}\n\t\t\t${(0,l.cy)(s.cssVarList)}\n\t\t\t${(0,l.LJ)("vaadin-number-field",s.cssVarList)}\n ${(0,l.Kl)()}\n\n vaadin-number-field[label-type="floating"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-number-field[label-type="floating"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\t\t`,excludeAttrsSync:["tabindex","style"],componentName:a}));customElements.define(a,s)}}]);
|
|
2
2
|
//# sourceMappingURL=descope-number-field-index-js.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descope-number-field-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/./src/components/descope-number-field/NumberFieldClass.js","webpack://@descope/web-components-ui/./src/components/descope-number-field/index.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/textFieldMappings.js"],"sourcesContent":["import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport textFieldMappings from '../descope-text-field/textFieldMappings';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('number-field');\n\nexport const NumberFieldClass = compose(\n createStyleMixin({\n mappings: textFieldMappings,\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin\n)(\n createProxy({\n slots: ['', 'prefix', 'suffix'],\n wrappedEleName: 'vaadin-number-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${NumberFieldClass.cssVarList.inputOutlineWidth}) + var(${\n NumberFieldClass.cssVarList.inputOutlineOffset\n }));\n\t\t\t}\n ${resetInputLabelPosition('vaadin-number-field')}\n\t\t\t${useHostExternalPadding(NumberFieldClass.cssVarList)}\n\t\t\t${resetInputOverrides('vaadin-number-field', NumberFieldClass.cssVarList)}\n ${inputFloatingLabelStyle()}\n\n vaadin-number-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-number-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex', 'style'],\n componentName,\n })\n);\n","import '@vaadin/number-field';\nimport { componentName, NumberFieldClass } from './NumberFieldClass';\n\ncustomElements.define(componentName, NumberFieldClass);\n\nexport { NumberFieldClass, 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: { selector: '[required]::part(required-indicator)::after' },\n placeholder: [\n { selector: '> input:placeholder-shown' },\n { selector: () => ':host::slotted(input:placeholder-shown)' },\n ],\n disabledPlaceholder: { selector: '> input:disabled::placeholder' },\n inputField: { selector: '::part(input-field)' },\n input: { selector: 'input' },\n inputMask: { selector: '::part(input-field)::before' },\n inputDisabled: { selector: 'input:disabled' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n inputIcon: { selector: 'vaadin-icon' },\n externalInput: { selector: () => '::slotted(input)' },\n externalInputDisabled: { selector: () => '::slotted(input:disabled)' },\n externalPlaceholder: { selector: () => '::slotted(input:placeholder-shown)' },\n externalDisabledPlaceholder: { selector: () => '::slotted(input:disabled::placeholder)' },\n};\n\nexport default {\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n fontFamily: [label, inputField, helperText, errorMessage],\n\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n\n inputValueFontWeight: [\n { ...input, property: 'font-weight' },\n { ...externalInput, property: 'font-weight' },\n ],\n inputPlaceholderFontWeight: [\n { selector: () => ':host input:placeholder-shown', property: 'font-weight' },\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: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n errorMessageFontSize: { ...errorMessage, property: 'font-size' },\n\n helperTextColor: { ...helperText, property: '-webkit-text-fill-color' },\n\n inputValueTextColor: [\n { ...inputField, property: 'color' },\n { ...inputDisabled, property: '-webkit-text-fill-color' },\n { ...externalInputDisabled, property: '-webkit-text-fill-color' },\n ],\n inputCaretTextColor: [\n { ...input, property: 'caret-color' },\n { ...externalInput, property: 'caret-color' },\n ],\n\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n inputHeight: { ...inputField, property: 'height' },\n inputHorizontalPadding: [\n { ...input, property: 'padding-left' },\n { ...input, property: 'padding-right' },\n { ...externalInput, property: 'padding-left' },\n { ...externalInput, property: 'padding-right' },\n ],\n\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n\n textAlign: {},\n\n inputTextAlign: [\n { ...input, property: 'text-align' },\n { ...externalInput, property: 'text-align' },\n ],\n\n inputPlaceholderColor: [\n { selector: () => ':host input:placeholder-shown', property: 'color' },\n { ...externalPlaceholder, property: 'color' },\n { ...placeholder, property: 'color' },\n { ...disabledPlaceholder, property: '-webkit-text-fill-color' },\n { ...externalDisabledPlaceholder, property: '-webkit-text-fill-color' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: [\n { selector: '> input:placeholder-shown', property: 'opacity' },\n { ...externalPlaceholder, property: 'opacity' },\n ],\n inputVerticalAlignment: [\n { ...inputField, property: 'align-items' },\n { ...externalInput, property: 'align-items' },\n ],\n valueInputHeight: [\n { ...input, property: 'height' },\n { ...externalInput, property: 'height' },\n ],\n valueInputMarginBottom: [\n { ...input, property: 'margin-bottom' },\n { ...externalInput, property: 'margin-bottom' },\n ],\n\n inputIconOffset: [\n { ...inputIcon, property: 'margin-right' },\n { ...inputIcon, property: 'margin-left' },\n ],\n inputIconSize: { ...inputIcon, property: 'font-size' },\n inputIconColor: { ...inputIcon, property: 'color' },\n 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"],"names":["componentName","NumberFieldClass","mappings","textFieldMappings","proxyProps","slots","wrappedEleName","style","cssVarList","inputOutlineWidth","inputOutlineOffset","excludeAttrsSync","customElements","define","host","label","placeholder","requiredIndicator","inputField","input","inputMask","helperText","errorMessage","disabledPlaceholder","inputDisabled","inputIcon","externalInput","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","selector","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"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"descope-number-field-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-text-field/src/component/textFieldMappings.js","webpack://@descope/web-components-ui/./src/components/descope-number-field/NumberFieldClass.js","webpack://@descope/web-components-ui/./src/components/descope-number-field/index.js"],"sourcesContent":["const {\n host,\n label,\n placeholder,\n requiredIndicator,\n inputField,\n input,\n inputMask,\n helperText,\n errorMessage,\n disabledPlaceholder,\n inputDisabled,\n inputIcon,\n externalInput,\n externalInputDisabled,\n externalPlaceholder,\n externalDisabledPlaceholder,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n requiredIndicator: {\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 textFieldMappings from '@descope-ui/descope-text-field/mappings';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('number-field');\n\nexport const NumberFieldClass = compose(\n createStyleMixin({\n mappings: textFieldMappings,\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin\n)(\n createProxy({\n slots: ['', 'prefix', 'suffix'],\n wrappedEleName: 'vaadin-number-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${NumberFieldClass.cssVarList.inputOutlineWidth}) + var(${\n NumberFieldClass.cssVarList.inputOutlineOffset\n }));\n\t\t\t}\n ${resetInputLabelPosition('vaadin-number-field')}\n\t\t\t${useHostExternalPadding(NumberFieldClass.cssVarList)}\n\t\t\t${resetInputOverrides('vaadin-number-field', NumberFieldClass.cssVarList)}\n ${inputFloatingLabelStyle()}\n\n vaadin-number-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-number-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex', 'style'],\n componentName,\n })\n);\n","import '@vaadin/number-field';\nimport { componentName, NumberFieldClass } from './NumberFieldClass';\n\ncustomElements.define(componentName, NumberFieldClass);\n\nexport { NumberFieldClass, componentName };\n"],"names":["host","label","placeholder","requiredIndicator","inputField","input","inputMask","helperText","errorMessage","disabledPlaceholder","inputDisabled","inputIcon","externalInput","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","selector","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","inputOutlineWidth","inputOutlineOffset","textAlign","inputTextAlign","inputPlaceholderColor","labelPosition","labelTopPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","valueInputHeight","valueInputMarginBottom","inputIconOffset","inputIconSize","inputIconColor","inputTextSecurity","componentName","NumberFieldClass","mappings","textFieldMappings","proxyProps","slots","wrappedEleName","style","cssVarList","excludeAttrsSync","customElements","define"],"sourceRoot":""}
|