@descope/web-components-ui 1.0.79 → 1.0.81
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1236 -598
- package/dist/index.esm.js.map +1 -1
- package/dist/umd/387.js +1 -0
- package/dist/umd/988.js +1 -1
- package/dist/umd/descope-checkbox-descope-checkbox-internal-index-js.js +1 -0
- package/dist/umd/descope-checkbox-index-js.js +1 -1
- package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js +1 -0
- package/dist/umd/descope-new-password-index-js.js +1 -0
- package/dist/umd/descope-passcode-descope-passcode-internal-index-js.js +1 -1
- package/dist/umd/descope-password-field-index-js.js +1 -1
- package/dist/umd/descope-phone-field-descope-phone-field-internal-index-js.js +1 -1
- package/dist/umd/descope-phone-field-index-js.js +1 -1
- package/dist/umd/index.js +1 -1
- package/package.json +1 -1
- package/src/components/descope-checkbox/Checkbox.js +161 -13
- package/src/components/descope-checkbox/descope-checkbox-internal/CheckboxInternal.js +63 -0
- package/src/components/descope-checkbox/descope-checkbox-internal/index.js +3 -0
- package/src/components/descope-checkbox/index.js +3 -3
- package/src/components/descope-new-password/NewPassword.js +129 -0
- package/src/components/descope-new-password/descope-new-password-internal/NewPasswordInternal.js +189 -0
- package/src/components/descope-new-password/descope-new-password-internal/componentName.js +3 -0
- package/src/components/descope-new-password/descope-new-password-internal/index.js +4 -0
- package/src/components/descope-new-password/index.js +6 -0
- package/src/components/descope-passcode/descope-passcode-internal/PasscodeInternal.js +3 -0
- package/src/components/descope-password-field/PasswordField.js +37 -36
- package/src/components/descope-phone-field/PhoneField.js +3 -2
- package/src/components/descope-phone-field/descope-phone-field-internal/PhoneFieldInternal.js +4 -1
- package/src/components/descope-switch-toggle/SwitchToggle.js +1 -1
- package/src/components/descope-switch-toggle/index.js +1 -1
- package/src/helpers/componentHelpers.js +3 -3
- package/src/index.js +1 -0
- package/src/mixins/createProxy.js +2 -25
- package/src/mixins/inputEventsDispatchingMixin.js +15 -15
- package/src/mixins/inputValidationMixin.js +6 -2
- package/src/mixins/proxyInputMixin.js +6 -36
- package/src/theme/components/checkbox.js +71 -1
- package/src/theme/components/index.js +3 -1
- package/src/theme/components/newPassword.js +48 -0
- package/src/theme/components/passwordField.js +55 -3
- package/src/theme/components/switchToggle.js +4 -4
@@ -64,21 +64,6 @@ export const proxyInputMixin = (superclass) =>
|
|
64
64
|
return this.inputElement.validity
|
65
65
|
}
|
66
66
|
|
67
|
-
reportValidityOnInternalInput() {
|
68
|
-
setTimeout(() => {
|
69
|
-
this.inputElement.focus();
|
70
|
-
this.inputElement.reportValidity()
|
71
|
-
})
|
72
|
-
}
|
73
|
-
|
74
|
-
// we want reportValidity to behave like form submission
|
75
|
-
reportValidity() {
|
76
|
-
if (!this.checkValidity()) {
|
77
|
-
this.setAttribute('invalid', 'true');
|
78
|
-
this.reportValidityOnInternalInput();
|
79
|
-
}
|
80
|
-
}
|
81
|
-
|
82
67
|
handleInternalInputErrorMessage() {
|
83
68
|
if (!this.inputElement.checkValidity()) {
|
84
69
|
this.inputElement.setCustomValidity(this.validationMessage)
|
@@ -120,30 +105,15 @@ export const proxyInputMixin = (superclass) =>
|
|
120
105
|
}
|
121
106
|
})
|
122
107
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
if (e.relatedTarget?.form && e.relatedTarget?.form === this.form && e.relatedTarget?.nodeName === 'BUTTON') {
|
128
|
-
if (!this.checkValidity()) {
|
129
|
-
this.setAttribute('invalid', 'true');
|
130
|
-
}
|
131
|
-
|
132
|
-
if (this.hasAttribute('invalid')) {
|
133
|
-
this.reportValidityOnInternalInput()
|
134
|
-
}
|
108
|
+
|
109
|
+
this.addEventListener('invalid', () => {
|
110
|
+
if (!this.checkValidity()) {
|
111
|
+
this.setAttribute('invalid', 'true');
|
135
112
|
}
|
113
|
+
this.#handleErrorMessage()
|
136
114
|
})
|
137
115
|
|
138
|
-
this.
|
139
|
-
|
140
|
-
this.handleInternalInputErrorMessage()
|
141
|
-
|
142
|
-
// this is needed in order to make sure the form input validation is working
|
143
|
-
// we do not want it to happen when the component is nested
|
144
|
-
if (!this.hasAttribute('tabindex') && this.getRootNode() === document) {
|
145
|
-
this.setAttribute('tabindex', 0);
|
146
|
-
}
|
116
|
+
this.handleInternalInputErrorMessage();
|
147
117
|
|
148
118
|
// sync properties
|
149
119
|
propertyObserver(this, this.inputElement, 'value');
|
@@ -1,10 +1,80 @@
|
|
1
|
+
import globals from '../globals';
|
2
|
+
import { getThemeRefs } from '../../helpers/themeHelpers';
|
1
3
|
import Checkbox from '../../components/descope-checkbox/Checkbox';
|
2
4
|
|
5
|
+
const globalRefs = getThemeRefs(globals);
|
3
6
|
const vars = Checkbox.cssVarList;
|
4
7
|
|
5
8
|
const checkbox = {
|
9
|
+
[vars.checkboxBackgroundColor]: globalRefs.colors.surface.main,
|
10
|
+
|
11
|
+
[vars.labelFontSize]: '12px',
|
12
|
+
[vars.labelFontWeight]: '400',
|
13
|
+
[vars.labelTextColor]: globalRefs.colors.surface.contrast,
|
6
14
|
[vars.cursor]: 'pointer',
|
7
|
-
|
15
|
+
|
16
|
+
[vars.checkboxWidth]: 'calc(1em - 2px)',
|
17
|
+
[vars.checkboxHeight]: 'calc(1em - 2px)',
|
18
|
+
[vars.labelMargin]: 'calc(1em + 5px)',
|
19
|
+
|
20
|
+
size: {
|
21
|
+
xs: {
|
22
|
+
[vars.labelFontSize]: '12px',
|
23
|
+
[vars.labelLineHeight]: '1.1em',
|
24
|
+
[vars.checkmarkSize]: '18px',
|
25
|
+
[vars.checkboxRadius]: globalRefs.radius.sm,
|
26
|
+
},
|
27
|
+
sm: {
|
28
|
+
[vars.labelFontSize]: '14px',
|
29
|
+
[vars.labelLineHeight]: '1.2em',
|
30
|
+
[vars.checkmarkSize]: '22px',
|
31
|
+
[vars.checkboxRadius]: globalRefs.radius.sm,
|
32
|
+
},
|
33
|
+
md: {
|
34
|
+
[vars.labelFontSize]: '16px',
|
35
|
+
[vars.labelLineHeight]: '1.35em',
|
36
|
+
[vars.checkmarkSize]: '26px',
|
37
|
+
[vars.checkboxRadius]: globalRefs.radius.sm,
|
38
|
+
},
|
39
|
+
lg: {
|
40
|
+
[vars.labelFontSize]: '20px',
|
41
|
+
[vars.labelLineHeight]: '1.5em',
|
42
|
+
[vars.checkmarkSize]: '34px',
|
43
|
+
[vars.checkboxRadius]: globalRefs.radius.sm,
|
44
|
+
},
|
45
|
+
xl: {
|
46
|
+
[vars.labelFontSize]: '20px',
|
47
|
+
[vars.labelLineHeight]: '1.75em',
|
48
|
+
[vars.checkmarkSize]: '38px',
|
49
|
+
[vars.checkboxRadius]: globalRefs.radius.sm,
|
50
|
+
}
|
51
|
+
},
|
52
|
+
|
53
|
+
_fullWidth: {
|
54
|
+
[vars.width]: '100%',
|
55
|
+
},
|
56
|
+
|
57
|
+
_checked: {
|
58
|
+
[vars.checkboxBackgroundColor]: globalRefs.colors.primary.main,
|
59
|
+
[vars.checkmarkTextColor]: globalRefs.colors.primary.contrast,
|
60
|
+
},
|
61
|
+
|
62
|
+
_disabled: {
|
63
|
+
[vars.checkboxBackgroundColor]: globalRefs.colors.surface.main,
|
64
|
+
},
|
65
|
+
|
66
|
+
_focusRing: {
|
67
|
+
[vars.checkboxOutlineWidth]: '2px',
|
68
|
+
[vars.checkboxOutlineOffset]: '1px',
|
69
|
+
[vars.checkboxOutlineColor]: globalRefs.colors.primary.main,
|
70
|
+
[vars.checkboxOutlineStyle]: 'solid'
|
71
|
+
},
|
72
|
+
|
73
|
+
_invalid: {
|
74
|
+
[vars.checkboxOutlineColor]: globalRefs.colors.error.main,
|
75
|
+
[vars.labelTextColor]: globalRefs.colors.error.main
|
76
|
+
},
|
77
|
+
|
8
78
|
};
|
9
79
|
|
10
80
|
export default checkbox;
|
@@ -16,6 +16,7 @@ import { loaderRadial, loaderLinear } from './loader';
|
|
16
16
|
import comboBox from './comboBox';
|
17
17
|
import image from './image';
|
18
18
|
import phoneField from './phoneField';
|
19
|
+
import newPassword from './newPassword';
|
19
20
|
|
20
21
|
export default {
|
21
22
|
button,
|
@@ -36,5 +37,6 @@ export default {
|
|
36
37
|
loaderLinear,
|
37
38
|
comboBox,
|
38
39
|
image,
|
39
|
-
phoneField
|
40
|
+
phoneField,
|
41
|
+
newPassword,
|
40
42
|
};
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import globals from '../globals';
|
2
|
+
import { getThemeRefs } from '../../helpers/themeHelpers';
|
3
|
+
import NewPassword from '../../components/descope-new-password/NewPassword';
|
4
|
+
|
5
|
+
const globalRefs = getThemeRefs(globals);
|
6
|
+
|
7
|
+
const vars = NewPassword.cssVarList;
|
8
|
+
|
9
|
+
const newPassword = {
|
10
|
+
_required: {
|
11
|
+
[vars.requiredContent]: "'*'",
|
12
|
+
},
|
13
|
+
|
14
|
+
[vars.inputLabelTextColor]: globalRefs.colors.surface.contrast,
|
15
|
+
[vars.inputTextColor]: globalRefs.colors.surface.contrast,
|
16
|
+
[vars.placeholderTextColor]: globalRefs.colors.surface.main,
|
17
|
+
[vars.inputsGap]: '1em',
|
18
|
+
|
19
|
+
size: {
|
20
|
+
xs: {
|
21
|
+
[vars.fieldsMargin]: '0',
|
22
|
+
},
|
23
|
+
sm: {
|
24
|
+
[vars.fieldsMargin]: '0',
|
25
|
+
},
|
26
|
+
md: {
|
27
|
+
[vars.fieldsMargin]: '0.5em',
|
28
|
+
},
|
29
|
+
lg: {
|
30
|
+
[vars.fieldsMargin]: '1em',
|
31
|
+
},
|
32
|
+
xl: {
|
33
|
+
[vars.fieldsMargin]: '2em',
|
34
|
+
},
|
35
|
+
},
|
36
|
+
|
37
|
+
_fullWidth: {
|
38
|
+
[vars.componentWidth]: '100%'
|
39
|
+
},
|
40
|
+
|
41
|
+
_invalid: {
|
42
|
+
[vars.inputLabelTextColor]: globalRefs.colors.error.main,
|
43
|
+
[vars.inputTextColor]: globalRefs.colors.error.main,
|
44
|
+
[vars.placeholderTextColor]: globalRefs.colors.error.light,
|
45
|
+
}
|
46
|
+
};
|
47
|
+
|
48
|
+
export default newPassword;
|
@@ -1,11 +1,63 @@
|
|
1
1
|
import PasswordField from '../../components/descope-password-field/PasswordField';
|
2
|
-
import
|
2
|
+
import globals from '../globals';
|
3
|
+
import { getThemeRefs } from '../../helpers/themeHelpers';
|
4
|
+
|
5
|
+
const globalRefs = getThemeRefs(globals);
|
3
6
|
|
4
7
|
const vars = PasswordField.cssVarList;
|
5
8
|
|
6
9
|
const passwordField = {
|
7
|
-
|
8
|
-
[vars.
|
10
|
+
[vars.wrapperBorderStyle]: 'solid',
|
11
|
+
[vars.wrapperBorderWidth]: '1px',
|
12
|
+
[vars.wrapperBorderColor]: 'transparent',
|
13
|
+
[vars.wrapperBorderRadius]: globalRefs.radius.sm,
|
14
|
+
|
15
|
+
[vars.labelTextColor]: globalRefs.colors.surface.contrast,
|
16
|
+
[vars.inputTextColor]: globalRefs.colors.surface.contrast,
|
17
|
+
[vars.placeholderTextColor]: globalRefs.colors.surface.main,
|
18
|
+
|
19
|
+
[vars.pointerCursor]: 'pointer',
|
20
|
+
|
21
|
+
[vars.padding]: `0`,
|
22
|
+
|
23
|
+
size: {
|
24
|
+
xs: {
|
25
|
+
[vars.height]: '14px',
|
26
|
+
[vars.fontSize]: '8px',
|
27
|
+
},
|
28
|
+
sm: {
|
29
|
+
[vars.height]: '20px',
|
30
|
+
[vars.fontSize]: '10px',
|
31
|
+
},
|
32
|
+
md: {
|
33
|
+
[vars.height]: '30px',
|
34
|
+
[vars.fontSize]: '14px',
|
35
|
+
},
|
36
|
+
lg: {
|
37
|
+
[vars.height]: '40px',
|
38
|
+
[vars.fontSize]: '20px',
|
39
|
+
},
|
40
|
+
xl: {
|
41
|
+
[vars.height]: '50px',
|
42
|
+
[vars.fontSize]: '25px',
|
43
|
+
}
|
44
|
+
},
|
45
|
+
|
46
|
+
_bordered: {
|
47
|
+
[vars.padding]: `0 0.5em`,
|
48
|
+
[vars.wrapperBorderColor]: globalRefs.colors.surface.main
|
49
|
+
},
|
50
|
+
|
51
|
+
_fullWidth: {
|
52
|
+
[vars.width]: '100%'
|
53
|
+
},
|
54
|
+
|
55
|
+
_invalid: {
|
56
|
+
[vars.labelTextColor]: globalRefs.colors.error.main,
|
57
|
+
[vars.inputTextColor]: globalRefs.colors.error.main,
|
58
|
+
[vars.placeholderTextColor]: globalRefs.colors.error.light,
|
59
|
+
[vars.wrapperBorderColor]: globalRefs.colors.error.main
|
60
|
+
},
|
9
61
|
};
|
10
62
|
|
11
63
|
export default passwordField;
|
@@ -2,9 +2,9 @@ import SwitchToggle from '../../components/descope-switch-toggle/SwitchToggle';
|
|
2
2
|
|
3
3
|
const vars = SwitchToggle.cssVarList;
|
4
4
|
|
5
|
-
const
|
6
|
-
|
7
|
-
|
5
|
+
const switchToggle = {
|
6
|
+
[vars.width]: '70px',
|
7
|
+
[vars.cursor]: [{}, { selector: '> label' }]
|
8
8
|
};
|
9
9
|
|
10
|
-
export default
|
10
|
+
export default switchToggle;
|