@descope/web-components-ui 1.0.358 → 1.0.360
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 +55 -103
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.esm.js +108 -119
- package/dist/index.esm.js.map +1 -1
- package/dist/umd/4392.js +1 -1
- package/dist/umd/4525.js +37 -0
- package/dist/umd/DescopeDev.js +1 -1
- package/dist/umd/descope-email-field-index-js.js +1 -1
- package/dist/umd/descope-enriched-text-index-js.js +1 -1
- package/dist/umd/descope-new-password-index-js.js +1 -1
- package/dist/umd/descope-number-field-index-js.js +1 -1
- package/dist/umd/descope-passcode-descope-passcode-internal-index-js.js +1 -1
- package/dist/umd/descope-passcode-index-js.js +1 -37
- package/dist/umd/descope-radio-group-index-js.js +1 -1
- package/dist/umd/descope-text-field-index-js.js +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
- package/package.json +3 -1
- package/src/components/descope-enriched-text/EnrichedTextClass.js +1 -0
- package/src/components/descope-passcode/PasscodeClass.js +6 -1
- package/src/components/descope-passcode/descope-passcode-internal/PasscodeInternal.js +23 -12
- package/src/components/descope-passcode/descope-passcode-internal/helpers.js +33 -5
- package/src/components/descope-text-field/textFieldMappings.js +6 -1
- package/src/helpers/themeHelpers/index.js +1 -1
- package/src/theme/components/enrichedText.js +14 -75
- package/src/theme/components/index.js +2 -2
- package/src/theme/components/text.js +1 -0
- /package/dist/umd/{descope-passcode-index-js.js.LICENSE.txt → 4525.js.LICENSE.txt} +0 -0
package/dist/index.esm.js
CHANGED
@@ -4,6 +4,7 @@ import '@vaadin/checkbox';
|
|
4
4
|
import '@vaadin/text-field';
|
5
5
|
import '@vaadin/email-field';
|
6
6
|
import '@vaadin/number-field';
|
7
|
+
import debounce from 'lodash.debounce';
|
7
8
|
import '@vaadin/icons';
|
8
9
|
import '@vaadin/icon';
|
9
10
|
import '@vaadin/password-field';
|
@@ -2518,6 +2519,7 @@ const {
|
|
2518
2519
|
requiredIndicator: requiredIndicator$9,
|
2519
2520
|
inputField: inputField$6,
|
2520
2521
|
input,
|
2522
|
+
inputMask,
|
2521
2523
|
helperText: helperText$8,
|
2522
2524
|
errorMessage: errorMessage$a,
|
2523
2525
|
disabledPlaceholder,
|
@@ -2534,6 +2536,7 @@ const {
|
|
2534
2536
|
disabledPlaceholder: { selector: '> input:disabled::placeholder' },
|
2535
2537
|
inputField: { selector: '::part(input-field)' },
|
2536
2538
|
input: { selector: 'input' },
|
2539
|
+
inputMask: { selector: '::part(input-field)::before' },
|
2537
2540
|
inputDisabled: { selector: 'input:disabled' },
|
2538
2541
|
helperText: { selector: '::part(helper-text)' },
|
2539
2542
|
errorMessage: { selector: '::part(error-message)' },
|
@@ -2559,7 +2562,10 @@ var textFieldMappings = {
|
|
2559
2562
|
hostMinWidth: { ...host$i, property: 'min-width' },
|
2560
2563
|
hostDirection: { ...host$i, property: 'direction' },
|
2561
2564
|
|
2562
|
-
inputBackgroundColor:
|
2565
|
+
inputBackgroundColor: [
|
2566
|
+
{ ...inputField$6, property: 'background-color' },
|
2567
|
+
{ ...inputMask, property: 'background-color' },
|
2568
|
+
],
|
2563
2569
|
|
2564
2570
|
errorMessageTextColor: { ...errorMessage$a, property: 'color' },
|
2565
2571
|
helperTextColor: { ...helperText$8, property: '-webkit-text-fill-color' },
|
@@ -2870,18 +2876,46 @@ const NumberFieldClass = compose(
|
|
2870
2876
|
|
2871
2877
|
customElements.define(componentName$I, NumberFieldClass);
|
2872
2878
|
|
2879
|
+
const INPUT_MASK_TEXT_PROP = '--descope-input-mask-content';
|
2880
|
+
const INPUT_MASK_DISPLAY_PROP = '--descope-input-mask-display';
|
2881
|
+
const INPUT_MASK_FALLBACK_PROP = '--descope-input-mask-fallback';
|
2882
|
+
|
2873
2883
|
const focusElement = (ele) => {
|
2874
2884
|
ele?.focus();
|
2875
2885
|
ele?.setSelectionRange?.(1, 1);
|
2876
2886
|
};
|
2877
2887
|
|
2878
|
-
const
|
2879
|
-
|
2888
|
+
const sanitizeStr = (str) => {
|
2889
|
+
return str.replace(/\D/g, '') || '';
|
2890
|
+
};
|
2880
2891
|
|
2881
|
-
|
2882
|
-
|
2892
|
+
// During debounced input we hide the value with a mask.
|
2893
|
+
// This allows us to hide the multiple population of the first input
|
2894
|
+
// in case of an automated input (e.g. Safari OTP Autofill or paste).
|
2895
|
+
const createInputMaskStyle = () => {
|
2896
|
+
const ele = document.createElement('style');
|
2897
|
+
ele.id = 'input-mask';
|
2898
|
+
ele.innerHTML = `vaadin-text-field::part(input-field)::before {
|
2899
|
+
${INPUT_MASK_FALLBACK_PROP}: '';
|
2900
|
+
content: var(${INPUT_MASK_TEXT_PROP}, var(${INPUT_MASK_FALLBACK_PROP}));
|
2901
|
+
position: absolute;
|
2902
|
+
width: 100%;
|
2903
|
+
height: 100%;
|
2904
|
+
display: var(${INPUT_MASK_DISPLAY_PROP}, none);
|
2905
|
+
align-items: center;
|
2906
|
+
justify-content: center;
|
2907
|
+
}`;
|
2908
|
+
return ele;
|
2909
|
+
};
|
2883
2910
|
|
2884
|
-
|
2911
|
+
const toggleMaskVisibility = (input, value) => {
|
2912
|
+
if (value) {
|
2913
|
+
input.style.setProperty(INPUT_MASK_TEXT_PROP, `"${value}"`);
|
2914
|
+
input.style.setProperty(INPUT_MASK_DISPLAY_PROP, 'flex');
|
2915
|
+
} else {
|
2916
|
+
input.style.removeProperty(INPUT_MASK_TEXT_PROP);
|
2917
|
+
input.style.removeProperty(INPUT_MASK_DISPLAY_PROP);
|
2918
|
+
}
|
2885
2919
|
};
|
2886
2920
|
|
2887
2921
|
/* eslint-disable no-param-reassign */
|
@@ -2972,11 +3006,7 @@ class PasscodeInternal extends BaseInputClass$7 {
|
|
2972
3006
|
set value(val) {
|
2973
3007
|
if (val === this.value) return;
|
2974
3008
|
|
2975
|
-
|
2976
|
-
|
2977
|
-
if (charArr.length) {
|
2978
|
-
this.fillDigits(charArr, this.inputs[0]);
|
2979
|
-
}
|
3009
|
+
this.parseInputValue(this.inputs[0], sanitizeStr(val));
|
2980
3010
|
}
|
2981
3011
|
|
2982
3012
|
getValidity() {
|
@@ -3032,8 +3062,8 @@ class PasscodeInternal extends BaseInputClass$7 {
|
|
3032
3062
|
focusElement(currentInput);
|
3033
3063
|
}
|
3034
3064
|
|
3035
|
-
parseInputValue(input) {
|
3036
|
-
const charArr =
|
3065
|
+
parseInputValue(input, value = '') {
|
3066
|
+
const charArr = value.split('');
|
3037
3067
|
|
3038
3068
|
if (!charArr.length) {
|
3039
3069
|
// if we got an invalid value we want to clear the input
|
@@ -3045,15 +3075,30 @@ class PasscodeInternal extends BaseInputClass$7 {
|
|
3045
3075
|
let currentInput;
|
3046
3076
|
|
3047
3077
|
this.inputs.forEach((input) => {
|
3078
|
+
input.shadowRoot.appendChild(createInputMaskStyle());
|
3079
|
+
|
3048
3080
|
input.addEventListener('change', (e) => {
|
3049
3081
|
if (currentInput !== e.target) {
|
3050
|
-
this.parseInputValue(input);
|
3082
|
+
this.parseInputValue(input, input.value);
|
3051
3083
|
this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));
|
3052
3084
|
}
|
3053
3085
|
});
|
3054
3086
|
|
3087
|
+
const handleParseInput = (val) => {
|
3088
|
+
this.parseInputValue(input, val);
|
3089
|
+
toggleMaskVisibility(input);
|
3090
|
+
};
|
3091
|
+
|
3092
|
+
const debouncedHandleParseInput = debounce(handleParseInput, 20, { trailing: true });
|
3093
|
+
|
3055
3094
|
// sanitize the input
|
3056
3095
|
input.addEventListener('input', (e) => {
|
3096
|
+
input.value = sanitizeStr(input.value);
|
3097
|
+
|
3098
|
+
if (input.value) {
|
3099
|
+
toggleMaskVisibility(input, input.value[0]);
|
3100
|
+
}
|
3101
|
+
|
3057
3102
|
// when using iPhone's code autofill we get only `change` events.
|
3058
3103
|
// In other scenarios we get `input` AND `change` events.
|
3059
3104
|
// In order to be parse the digits properly in iPhone, we need to listen to `change` event
|
@@ -3064,12 +3109,11 @@ class PasscodeInternal extends BaseInputClass$7 {
|
|
3064
3109
|
currentInput = e.target;
|
3065
3110
|
setTimeout(() => {
|
3066
3111
|
currentInput = null;
|
3067
|
-
if (e
|
3112
|
+
if (e?.inputType === 'deleteContentBackward') {
|
3068
3113
|
focusElement(this.getPrevInput(input));
|
3069
3114
|
}
|
3070
3115
|
});
|
3071
|
-
|
3072
|
-
this.parseInputValue(input);
|
3116
|
+
debouncedHandleParseInput(input.value);
|
3073
3117
|
});
|
3074
3118
|
|
3075
3119
|
// we want backspace to focus on the previous digit
|
@@ -3394,10 +3438,15 @@ const PasscodeClass = compose(
|
|
3394
3438
|
-webkit-mask-image: none;
|
3395
3439
|
}
|
3396
3440
|
|
3441
|
+
/* safari */
|
3442
|
+
vaadin-text-field::part(input-field)::after {
|
3443
|
+
opacity: 0;
|
3444
|
+
}
|
3445
|
+
|
3397
3446
|
vaadin-text-field {
|
3398
3447
|
margin: 0;
|
3399
3448
|
padding: 0;
|
3400
|
-
width: 100
|
3449
|
+
width: 100%;
|
3401
3450
|
}
|
3402
3451
|
|
3403
3452
|
vaadin-text-field::before {
|
@@ -3718,7 +3767,7 @@ const decodeHTML = (html) => {
|
|
3718
3767
|
|
3719
3768
|
const componentName$D = getComponentName('enriched-text');
|
3720
3769
|
|
3721
|
-
|
3770
|
+
class EnrichedText extends createBaseClass({ componentName: componentName$D, baseSelector: ':host > div' }) {
|
3722
3771
|
#origLinkRenderer;
|
3723
3772
|
|
3724
3773
|
#origEmRenderer;
|
@@ -3878,7 +3927,7 @@ let EnrichedText$2 = class EnrichedText extends createBaseClass({ componentName:
|
|
3878
3927
|
this.contentNode.removeAttribute('inert');
|
3879
3928
|
}
|
3880
3929
|
}
|
3881
|
-
}
|
3930
|
+
}
|
3882
3931
|
|
3883
3932
|
const EnrichedTextClass = compose(
|
3884
3933
|
createStyleMixin({
|
@@ -3903,9 +3952,10 @@ const EnrichedTextClass = compose(
|
|
3903
3952
|
},
|
3904
3953
|
}),
|
3905
3954
|
createStyleMixin({ componentNameOverride: getComponentName('link') }),
|
3955
|
+
createStyleMixin({ componentNameOverride: getComponentName('text') }),
|
3906
3956
|
draggableMixin,
|
3907
3957
|
componentNameValidationMixin
|
3908
|
-
)(EnrichedText
|
3958
|
+
)(EnrichedText);
|
3909
3959
|
|
3910
3960
|
customElements.define(componentName$D, EnrichedTextClass);
|
3911
3961
|
|
@@ -12941,6 +12991,7 @@ const text = {
|
|
12941
12991
|
[vars$v.textLineHeight]: '1.35em',
|
12942
12992
|
[vars$v.textAlign]: 'left',
|
12943
12993
|
[vars$v.textColor]: globalRefs$m.colors.surface.dark,
|
12994
|
+
|
12944
12995
|
variant: {
|
12945
12996
|
h1: {
|
12946
12997
|
[vars$v.fontSize]: globalRefs$m.typography.h1.size,
|
@@ -13024,33 +13075,31 @@ var text$1 = /*#__PURE__*/Object.freeze({
|
|
13024
13075
|
});
|
13025
13076
|
|
13026
13077
|
const globalRefs$l = getThemeRefs(globals);
|
13027
|
-
const vars$u =
|
13078
|
+
const vars$u = LinkClass.cssVarList;
|
13028
13079
|
|
13029
|
-
const
|
13080
|
+
const link = {
|
13030
13081
|
[vars$u.hostDirection]: globalRefs$l.direction,
|
13082
|
+
[vars$u.cursor]: 'pointer',
|
13031
13083
|
|
13032
|
-
[vars$u.
|
13033
|
-
[vars$u.fontWeight]: globalRefs$l.typography.body1.weight,
|
13034
|
-
[vars$u.fontWeightBold]: '900',
|
13035
|
-
[vars$u.fontFamily]: globalRefs$l.typography.body1.font,
|
13084
|
+
[vars$u.textColor]: globalRefs$l.colors.primary.main,
|
13036
13085
|
|
13037
|
-
|
13038
|
-
|
13039
|
-
|
13086
|
+
textAlign: {
|
13087
|
+
right: { [vars$u.textAlign]: 'right' },
|
13088
|
+
left: { [vars$u.textAlign]: 'left' },
|
13089
|
+
center: { [vars$u.textAlign]: 'center' },
|
13090
|
+
},
|
13040
13091
|
|
13041
|
-
|
13042
|
-
|
13043
|
-
|
13092
|
+
_fullWidth: {
|
13093
|
+
[vars$u.hostWidth]: '100%',
|
13094
|
+
},
|
13044
13095
|
|
13045
|
-
|
13046
|
-
|
13096
|
+
_hover: {
|
13097
|
+
[vars$u.textDecoration]: 'underline',
|
13098
|
+
},
|
13047
13099
|
|
13048
13100
|
mode: {
|
13049
|
-
primary: {
|
13050
|
-
[vars$u.textColor]: globalRefs$l.colors.surface.contrast,
|
13051
|
-
},
|
13052
13101
|
secondary: {
|
13053
|
-
[vars$u.textColor]: globalRefs$l.colors.
|
13102
|
+
[vars$u.textColor]: globalRefs$l.colors.secondary.main,
|
13054
13103
|
},
|
13055
13104
|
error: {
|
13056
13105
|
[vars$u.textColor]: globalRefs$l.colors.error.main,
|
@@ -13059,101 +13108,41 @@ const EnrichedText = {
|
|
13059
13108
|
[vars$u.textColor]: globalRefs$l.colors.success.main,
|
13060
13109
|
},
|
13061
13110
|
},
|
13062
|
-
|
13063
|
-
variant: {
|
13064
|
-
h1: {
|
13065
|
-
[vars$u.fontSize]: globalRefs$l.typography.h1.size,
|
13066
|
-
[vars$u.fontWeight]: globalRefs$l.typography.h1.weight,
|
13067
|
-
[vars$u.fontFamily]: globalRefs$l.typography.h1.font,
|
13068
|
-
},
|
13069
|
-
h2: {
|
13070
|
-
[vars$u.fontSize]: globalRefs$l.typography.h2.size,
|
13071
|
-
[vars$u.fontWeight]: globalRefs$l.typography.h2.weight,
|
13072
|
-
[vars$u.fontFamily]: globalRefs$l.typography.h2.font,
|
13073
|
-
},
|
13074
|
-
h3: {
|
13075
|
-
[vars$u.fontSize]: globalRefs$l.typography.h3.size,
|
13076
|
-
[vars$u.fontWeight]: globalRefs$l.typography.h3.weight,
|
13077
|
-
[vars$u.fontFamily]: globalRefs$l.typography.h3.font,
|
13078
|
-
},
|
13079
|
-
subtitle1: {
|
13080
|
-
[vars$u.fontSize]: globalRefs$l.typography.subtitle1.size,
|
13081
|
-
[vars$u.fontWeight]: globalRefs$l.typography.subtitle1.weight,
|
13082
|
-
[vars$u.fontFamily]: globalRefs$l.typography.subtitle1.font,
|
13083
|
-
},
|
13084
|
-
subtitle2: {
|
13085
|
-
[vars$u.fontSize]: globalRefs$l.typography.subtitle2.size,
|
13086
|
-
[vars$u.fontWeight]: globalRefs$l.typography.subtitle2.weight,
|
13087
|
-
[vars$u.fontFamily]: globalRefs$l.typography.subtitle2.font,
|
13088
|
-
},
|
13089
|
-
body1: {
|
13090
|
-
[vars$u.fontSize]: globalRefs$l.typography.body1.size,
|
13091
|
-
[vars$u.fontWeight]: globalRefs$l.typography.body1.weight,
|
13092
|
-
[vars$u.fontFamily]: globalRefs$l.typography.body1.font,
|
13093
|
-
},
|
13094
|
-
body2: {
|
13095
|
-
[vars$u.fontSize]: globalRefs$l.typography.body2.size,
|
13096
|
-
[vars$u.fontWeight]: globalRefs$l.typography.body2.weight,
|
13097
|
-
[vars$u.fontFamily]: globalRefs$l.typography.body2.font,
|
13098
|
-
},
|
13099
|
-
},
|
13100
|
-
|
13101
|
-
textAlign: {
|
13102
|
-
right: { [vars$u.textAlign]: 'right' },
|
13103
|
-
left: { [vars$u.textAlign]: 'left' },
|
13104
|
-
center: { [vars$u.textAlign]: 'center' },
|
13105
|
-
},
|
13106
|
-
|
13107
|
-
_fullWidth: {
|
13108
|
-
[vars$u.hostWidth]: '100%',
|
13109
|
-
},
|
13110
13111
|
};
|
13111
13112
|
|
13112
|
-
var
|
13113
|
+
var link$1 = /*#__PURE__*/Object.freeze({
|
13113
13114
|
__proto__: null,
|
13114
|
-
default:
|
13115
|
+
default: link,
|
13115
13116
|
vars: vars$u
|
13116
13117
|
});
|
13117
13118
|
|
13118
13119
|
const globalRefs$k = getThemeRefs(globals);
|
13119
|
-
const vars$t =
|
13120
|
+
const vars$t = EnrichedTextClass.cssVarList;
|
13120
13121
|
|
13121
|
-
const
|
13122
|
+
const enrichedText = {
|
13122
13123
|
[vars$t.hostDirection]: globalRefs$k.direction,
|
13123
|
-
[vars$t.
|
13124
|
+
[vars$t.hostWidth]: useVar(vars$v.hostWidth),
|
13124
13125
|
|
13125
|
-
[vars$t.
|
13126
|
+
[vars$t.textLineHeight]: useVar(vars$v.textLineHeight),
|
13127
|
+
[vars$t.textColor]: useVar(vars$v.textColor),
|
13128
|
+
[vars$t.textAlign]: useVar(vars$v.textAlign),
|
13126
13129
|
|
13127
|
-
|
13128
|
-
|
13129
|
-
|
13130
|
-
center: { [vars$t.textAlign]: 'center' },
|
13131
|
-
},
|
13130
|
+
[vars$t.fontSize]: useVar(vars$v.fontSize),
|
13131
|
+
[vars$t.fontWeight]: useVar(vars$v.fontWeight),
|
13132
|
+
[vars$t.fontFamily]: useVar(vars$v.fontFamily),
|
13132
13133
|
|
13133
|
-
|
13134
|
-
|
13135
|
-
|
13136
|
-
|
13137
|
-
_hover: {
|
13138
|
-
[vars$t.textDecoration]: 'underline',
|
13139
|
-
},
|
13134
|
+
[vars$t.linkColor]: useVar(vars$u.textColor),
|
13135
|
+
[vars$t.linkTextDecoration]: 'none',
|
13136
|
+
[vars$t.linkHoverTextDecoration]: 'underline',
|
13140
13137
|
|
13141
|
-
|
13142
|
-
|
13143
|
-
|
13144
|
-
},
|
13145
|
-
error: {
|
13146
|
-
[vars$t.textColor]: globalRefs$k.colors.error.main,
|
13147
|
-
},
|
13148
|
-
success: {
|
13149
|
-
[vars$t.textColor]: globalRefs$k.colors.success.main,
|
13150
|
-
},
|
13151
|
-
},
|
13138
|
+
[vars$t.fontWeightBold]: '900',
|
13139
|
+
[vars$t.minWidth]: '0.25em',
|
13140
|
+
[vars$t.minHeight]: '1.35em',
|
13152
13141
|
};
|
13153
13142
|
|
13154
|
-
var
|
13143
|
+
var enrichedText$1 = /*#__PURE__*/Object.freeze({
|
13155
13144
|
__proto__: null,
|
13156
|
-
default:
|
13145
|
+
default: enrichedText,
|
13157
13146
|
vars: vars$t
|
13158
13147
|
});
|
13159
13148
|
|
@@ -14363,7 +14352,7 @@ const components = {
|
|
14363
14352
|
totpImage,
|
14364
14353
|
notpImage,
|
14365
14354
|
text: text$1,
|
14366
|
-
|
14355
|
+
enrichedText: enrichedText$1,
|
14367
14356
|
link: link$1,
|
14368
14357
|
divider: divider$1,
|
14369
14358
|
passcode: passcode$1,
|