@descope/web-components-ui 1.0.45 → 1.0.47
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.esm.js +235 -137
- package/dist/index.esm.js.map +1 -1
- package/dist/umd/599.js +1 -1
- package/dist/umd/63.js +1 -1
- package/dist/umd/938.js +1 -1
- package/dist/umd/descope-button-index-js.js +1 -1
- package/dist/umd/descope-checkbox-index-js.js +1 -1
- package/dist/umd/descope-email-field-index-js.js +1 -1
- package/dist/umd/descope-logo-index-js.js +1 -0
- package/dist/umd/descope-number-field-index-js.js +1 -1
- package/dist/umd/descope-passcode-index-js.js +1 -0
- package/dist/umd/descope-password-field-index-js.js +1 -1
- package/dist/umd/descope-switch-toggle-index-js.js +1 -1
- package/dist/umd/descope-text-area-index-js.js +1 -1
- package/dist/umd/index.js +1 -1
- package/package.json +1 -1
- package/src/components/descope-button/Button.js +5 -2
- package/src/components/descope-checkbox/Checkbox.js +8 -3
- package/src/components/descope-container/Container.js +1 -1
- package/src/components/descope-email-field/EmailField.js +3 -0
- package/src/components/descope-logo/Logo.js +57 -0
- package/src/components/descope-logo/index.js +5 -0
- package/src/components/descope-number-field/NumberField.js +3 -0
- package/src/components/descope-passcode/Passcode.js +252 -0
- package/src/components/descope-passcode/index.js +79 -0
- package/src/components/descope-password-field/PasswordField.js +3 -0
- package/src/components/descope-switch-toggle/SwitchToggle.js +7 -2
- package/src/components/descope-text-area/TextArea.js +7 -2
- package/src/components/descope-text-field/TextField.js +5 -1
- package/src/componentsHelpers/createStyleMixin/helpers.js +1 -1
- package/src/componentsHelpers/createStyleMixin/index.js +3 -3
- package/src/componentsHelpers/inputMixin.js +19 -4
- package/src/dev/index.js +2 -7
- package/src/theme/components/index.js +3 -1
- package/src/theme/components/logo.js +9 -0
- package/src/theme/components/input.js +0 -106
@@ -1,3 +1,15 @@
|
|
1
|
+
const propertyObserver = (src, target, property) => {
|
2
|
+
Object.defineProperty(src, property, {
|
3
|
+
set: function (v) {
|
4
|
+
return target[property] = v
|
5
|
+
},
|
6
|
+
get: function () {
|
7
|
+
return target[property]
|
8
|
+
},
|
9
|
+
configurable: true
|
10
|
+
});
|
11
|
+
}
|
12
|
+
|
1
13
|
export const inputMixin = (superclass) =>
|
2
14
|
class InputMixinClass extends superclass {
|
3
15
|
static get formAssociated() {
|
@@ -17,6 +29,7 @@ export const inputMixin = (superclass) =>
|
|
17
29
|
}
|
18
30
|
|
19
31
|
connectedCallback() {
|
32
|
+
this.baseEle = this.shadowRoot.querySelector(this.baseSelector)
|
20
33
|
super.connectedCallback?.();
|
21
34
|
|
22
35
|
// this is needed in order to make sure the form input validation is working
|
@@ -24,13 +37,15 @@ export const inputMixin = (superclass) =>
|
|
24
37
|
this.setAttribute('tabindex', 0);
|
25
38
|
}
|
26
39
|
|
27
|
-
// vaadin does not expose all those validation attributes so we need to take it from the input
|
28
|
-
// https://github.com/vaadin/web-components/issues/1177
|
29
40
|
const input =
|
30
|
-
this.
|
31
|
-
this.
|
41
|
+
this.baseEle.querySelector('input') ||
|
42
|
+
this.baseEle.querySelector('textarea');
|
32
43
|
if (!input) throw Error('no input was found');
|
33
44
|
|
45
|
+
// sync properties
|
46
|
+
propertyObserver(this, input, 'value')
|
47
|
+
this.setSelectionRange = input.setSelectionRange.bind(input)
|
48
|
+
|
34
49
|
this.checkValidity = () => input.checkValidity();
|
35
50
|
this.reportValidity = () => input.reportValidity();
|
36
51
|
this.validity = input.validity;
|
package/src/dev/index.js
CHANGED
@@ -1,7 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
// this file is used for exposing stuff to the dev env only
|
5
|
-
|
6
|
-
export const getDefaultThemeStyles = (themeName) =>
|
7
|
-
themeToStyle(theme, themeName);
|
1
|
+
export {default as defaultTheme} from '../theme';
|
2
|
+
export { themeToStyle } from '../themeHelpers';
|
@@ -7,6 +7,7 @@ import textArea from './textArea';
|
|
7
7
|
import checkbox from './checkbox';
|
8
8
|
import switchToggle from './switchToggle';
|
9
9
|
import container from './container';
|
10
|
+
import logo from './logo';
|
10
11
|
|
11
12
|
export default {
|
12
13
|
button,
|
@@ -17,5 +18,6 @@ export default {
|
|
17
18
|
textArea,
|
18
19
|
checkbox,
|
19
20
|
switchToggle,
|
20
|
-
container
|
21
|
+
container,
|
22
|
+
logo
|
21
23
|
};
|
@@ -1,106 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
getComponentName,
|
3
|
-
createStyleMixin,
|
4
|
-
draggableMixin,
|
5
|
-
createProxy,
|
6
|
-
inputMixin,
|
7
|
-
compose,
|
8
|
-
componentNameValidationMixin
|
9
|
-
} from '../../componentsHelpers';
|
10
|
-
import { matchHostStyle } from '../../componentsHelpers/createStyleMixin/helpers';
|
11
|
-
|
12
|
-
export const componentName = getComponentName('text-field');
|
13
|
-
|
14
|
-
const selectors = {
|
15
|
-
label: '::part(label)',
|
16
|
-
input: '::part(input-field)',
|
17
|
-
readOnlyInput: '[readonly]::part(input-field)::after',
|
18
|
-
placeholder: '> input:placeholder-shown'
|
19
|
-
};
|
20
|
-
|
21
|
-
let overrides = ``;
|
22
|
-
|
23
|
-
export const textFieldMappings = {
|
24
|
-
color: { selector: selectors.input },
|
25
|
-
backgroundColor: { selector: selectors.input },
|
26
|
-
width: [matchHostStyle()],
|
27
|
-
color: { selector: selectors.input },
|
28
|
-
borderColor: [
|
29
|
-
{ selector: selectors.input },
|
30
|
-
{ selector: selectors.readOnlyInput }
|
31
|
-
],
|
32
|
-
borderWidth: [
|
33
|
-
{ selector: selectors.input },
|
34
|
-
{ selector: selectors.readOnlyInput }
|
35
|
-
],
|
36
|
-
borderStyle: [
|
37
|
-
{ selector: selectors.input },
|
38
|
-
{ selector: selectors.readOnlyInput }
|
39
|
-
],
|
40
|
-
borderRadius: { selector: selectors.input },
|
41
|
-
boxShadow: { selector: selectors.input },
|
42
|
-
fontSize: {},
|
43
|
-
height: { selector: selectors.input },
|
44
|
-
padding: { selector: selectors.input },
|
45
|
-
outline: { selector: selectors.input },
|
46
|
-
outlineOffset: { selector: selectors.input },
|
47
|
-
|
48
|
-
placeholderColor: { selector: selectors.placeholder, property: 'color' }
|
49
|
-
// borderWidthReadOnly: [borderWidth('[readonly]::part(input-field)::after')]
|
50
|
-
};
|
51
|
-
|
52
|
-
const TextField = compose(
|
53
|
-
createStyleMixin({
|
54
|
-
mappings: textFieldMappings
|
55
|
-
}),
|
56
|
-
draggableMixin,
|
57
|
-
inputMixin,
|
58
|
-
componentNameValidationMixin
|
59
|
-
)(
|
60
|
-
createProxy({
|
61
|
-
slots: ['prefix', 'suffix'],
|
62
|
-
wrappedEleName: 'vaadin-text-field',
|
63
|
-
style: () => overrides,
|
64
|
-
excludeAttrsSync: ['tabindex'],
|
65
|
-
componentName
|
66
|
-
})
|
67
|
-
);
|
68
|
-
|
69
|
-
overrides = `
|
70
|
-
vaadin-text-field {
|
71
|
-
margin: 0;
|
72
|
-
padding: 0;
|
73
|
-
}
|
74
|
-
vaadin-text-field::part(input-field) {
|
75
|
-
overflow: hidden;
|
76
|
-
}
|
77
|
-
vaadin-text-field[readonly] > input:placeholder-shown {
|
78
|
-
opacity: 1;
|
79
|
-
}
|
80
|
-
vaadin-text-field input:-webkit-autofill,
|
81
|
-
vaadin-text-field input:-webkit-autofill::first-line,
|
82
|
-
vaadin-text-field input:-webkit-autofill:hover,
|
83
|
-
vaadin-text-field input:-webkit-autofill:active,
|
84
|
-
vaadin-text-field input:-webkit-autofill:focus {
|
85
|
-
-webkit-text-fill-color: var(${TextField.cssVarList.color});
|
86
|
-
box-shadow: 0 0 0 var(${TextField.cssVarList.height}) var(${TextField.cssVarList.backgroundColor}) inset;
|
87
|
-
}
|
88
|
-
vaadin-text-field > label,
|
89
|
-
vaadin-text-field::part(input-field) {
|
90
|
-
cursor: pointer;
|
91
|
-
color: var(${TextField.cssVarList.color});
|
92
|
-
}
|
93
|
-
vaadin-text-field::part(input-field):focus {
|
94
|
-
cursor: text;
|
95
|
-
}
|
96
|
-
vaadin-text-field[required]::part(required-indicator)::after {
|
97
|
-
font-size: "12px";
|
98
|
-
content: "*";
|
99
|
-
color: var(${TextField.cssVarList.color});
|
100
|
-
}
|
101
|
-
vaadin-text-field[readonly]::part(input-field)::after {
|
102
|
-
border: 0 solid;
|
103
|
-
}
|
104
|
-
`;
|
105
|
-
|
106
|
-
export default TextField;
|