@descope/web-components-ui 1.0.74 → 1.0.76

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. package/dist/index.esm.js +2550 -632
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/umd/447.js +1 -1
  4. package/dist/umd/744.js +1 -1
  5. package/dist/umd/878.js +1 -0
  6. package/dist/umd/descope-combo-box-index-js.js +1 -1
  7. package/dist/umd/descope-passcode-descope-passcode-internal-index-js.js +1 -1
  8. package/dist/umd/descope-passcode-index-js.js +1 -1
  9. package/dist/umd/descope-phone-field-descope-phone-field-internal-index-js.js +1 -0
  10. package/dist/umd/descope-phone-field-index-js.js +1 -0
  11. package/dist/umd/descope-text-area-index-js.js +1 -1
  12. package/dist/umd/descope-text-field-index-js.js +1 -1
  13. package/dist/umd/index.js +1 -1
  14. package/package.json +1 -1
  15. package/src/components/descope-combo-box/ComboBox.js +85 -50
  16. package/src/components/descope-passcode/Passcode.js +43 -12
  17. package/src/components/descope-passcode/descope-passcode-internal/PasscodeInternal.js +32 -14
  18. package/src/components/descope-phone-field/CountryCodes.js +1212 -0
  19. package/src/components/descope-phone-field/PhoneField.js +186 -0
  20. package/src/components/descope-phone-field/descope-phone-field-internal/PhoneFieldInternal.js +213 -0
  21. package/src/components/descope-phone-field/descope-phone-field-internal/index.js +6 -0
  22. package/src/components/descope-phone-field/helpers.js +23 -0
  23. package/src/components/descope-phone-field/index.js +9 -0
  24. package/src/components/descope-text-area/TextArea.js +3 -1
  25. package/src/components/descope-text-field/TextField.js +38 -3
  26. package/src/components/descope-text-field/textFieldMappings.js +22 -14
  27. package/src/index.js +1 -0
  28. package/src/mixins/inputValidationMixin.js +21 -2
  29. package/src/mixins/normalizeBooleanAttributesMixin.js +16 -7
  30. package/src/mixins/portalMixin.js +8 -3
  31. package/src/mixins/proxyInputMixin.js +1 -1
  32. package/src/theme/components/button.js +0 -3
  33. package/src/theme/components/comboBox.js +39 -9
  34. package/src/theme/components/index.js +3 -1
  35. package/src/theme/components/passcode.js +36 -3
  36. package/src/theme/components/phoneField.js +74 -0
  37. package/src/theme/components/textArea.js +5 -2
  38. package/src/theme/components/textField.js +6 -3
@@ -15,7 +15,12 @@ const sanitizeSelector = (selector) => selector.replace(/[^\w\s]/gi, '');
15
15
 
16
16
  const getDomNode = (maybeDomNode) => maybeDomNode.host || maybeDomNode;
17
17
 
18
- export const portalMixin = ({ name, selector, mappings = {} }) => (superclass) => {
18
+ export const portalMixin = ({
19
+ name,
20
+ selector,
21
+ mappings = {},
22
+ forward: { attributes = [], include = true } = {}
23
+ }) => (superclass) => {
19
24
  const eleDisplayName = name || sanitizeSelector(selector)
20
25
 
21
26
  const BaseClass = createStyleMixin({
@@ -58,9 +63,9 @@ export const portalMixin = ({ name, selector, mappings = {} }) => (superclass) =
58
63
 
59
64
  init() {
60
65
  super.init?.();
61
- forwardAttrs(this, this.#portalEle, { excludeAttrs: ['hover'] })
66
+ forwardAttrs(this, this.#portalEle, { [include ? 'includeAttrs' : 'excludeAttrs']: attributes })
62
67
 
63
68
  this.#handleHoverAttribute();
64
69
  }
65
70
  }
66
- }
71
+ }
@@ -1,7 +1,7 @@
1
1
  import { createDispatchEvent } from "../helpers/mixinsHelpers";
2
2
  import { inputValidationMixin } from "./inputValidationMixin";
3
3
 
4
- const errorAttrs = ['invalid', 'has-error-message'];
4
+ const errorAttrs = ['invalid', 'required'];
5
5
 
6
6
  const propertyObserver = (src, target, property) => {
7
7
  Object.defineProperty(src, property, {
@@ -83,10 +83,7 @@ const button = {
83
83
  },
84
84
  link: {
85
85
  [vars.color]: helperRefs.main,
86
- [vars.padding]: 0,
87
- [vars.margin]: 0,
88
86
  [vars.lineHeight]: helperRefs.height,
89
- [vars.borderRadius]: 0,
90
87
  _hover: {
91
88
  [vars.color]: helperRefs.main,
92
89
  [vars.textDecoration]: 'underline'
@@ -1,6 +1,5 @@
1
1
  import globals from '../globals';
2
2
  import ComboBox from '../../components/descope-combo-box/ComboBox';
3
- import { textField } from './textField';
4
3
  import { getThemeRefs } from '../../helpers/themeHelpers';
5
4
 
6
5
  const globalRefs = getThemeRefs(globals);
@@ -8,18 +7,49 @@ const globalRefs = getThemeRefs(globals);
8
7
  const vars = ComboBox.cssVarList;
9
8
 
10
9
  export const comboBox = {
11
- ...textField(ComboBox.cssVarList),
10
+ [vars.borderColor]: globalRefs.colors.surface.main,
11
+ [vars.borderWidth]: '1px',
12
+ [vars.borderStyle]: 'solid',
13
+ [vars.cursor]: 'pointer',
14
+ [vars.padding]: '0',
15
+ [vars.placeholderColor]: globalRefs.colors.surface.main,
16
+ [vars.toggleColor]: globalRefs.colors.surface.contrast,
17
+ [vars.toggleCursor]: 'pointer',
12
18
  size: {
13
19
  xs: {
14
- [vars.width]: '30px'
20
+ [vars.height]: '14px',
21
+ [vars.fontSize]: '8px',
22
+ [vars.padding]: `0 ${globalRefs.spacing.xs}`
23
+ },
24
+ sm: {
25
+ [vars.height]: '20px',
26
+ [vars.fontSize]: '10px',
27
+ [vars.padding]: `0 ${globalRefs.spacing.sm}`
28
+ },
29
+ md: {
30
+ [vars.height]: '30px',
31
+ [vars.fontSize]: '14px',
32
+ [vars.padding]: `0 ${globalRefs.spacing.md}`
33
+ },
34
+ lg: {
35
+ [vars.height]: '40px',
36
+ [vars.fontSize]: '20px',
37
+ [vars.padding]: `0 ${globalRefs.spacing.lg}`
38
+ },
39
+ xl: {
40
+ [vars.height]: '50px',
41
+ [vars.fontSize]: '25px',
42
+ [vars.padding]: `0 ${globalRefs.spacing.xl}`
15
43
  }
16
44
  },
17
- [vars.borderColor]: 'green',
18
- [vars.borderWidth]: '0',
19
- [vars.cursor]: 'pointer',
20
- [vars.padding]: '0',
21
- // [vars.overlayBackground]: 'blue',
22
- // [vars.overlayBorder]: '3px solid red',
45
+ _invalid: {
46
+ [vars.borderColor]: globalRefs.colors.error.main,
47
+ [vars.placeholderColor]: globalRefs.colors.error.light,
48
+ [vars.toggleColor]: globalRefs.colors.error.main,
49
+ },
50
+ // [vars.overlayCursor]: 'pointer',
51
+ // [vars.overlayBackground]: globalRefs.colors.surface.light,
52
+ // [vars.overlayBorder]: `2px solid red`,
23
53
  };
24
54
 
25
55
  export default comboBox;
@@ -15,6 +15,7 @@ import passcode from './passcode';
15
15
  import { loaderRadial, loaderLinear } from './loader';
16
16
  import comboBox from './comboBox';
17
17
  import image from './image';
18
+ import phoneField from './phoneField';
18
19
 
19
20
  export default {
20
21
  button,
@@ -34,5 +35,6 @@ export default {
34
35
  loaderRadial,
35
36
  loaderLinear,
36
37
  comboBox,
37
- image
38
+ image,
39
+ phoneField
38
40
  };
@@ -1,8 +1,41 @@
1
1
  import Passcode from '../../components/descope-passcode/Passcode';
2
- import { textField } from './textField';
2
+ import { getThemeRefs } from '../../helpers/themeHelpers';
3
+ import globals from '../globals';
4
+
5
+ const vars = Passcode.cssVarList
6
+ const globalRefs = getThemeRefs(globals);
3
7
 
4
8
  const passcode = {
5
- ...textField(Passcode.cssVarList),
6
- };
9
+ [vars.backgroundColor]: globalRefs.colors.surface.light,
10
+ [vars.outlineWidth]: '2px',
11
+ [vars.outlineColor]: globalRefs.colors.primary.main,
12
+ [vars.padding]: '0',
13
+ [vars.textAlign]: 'center',
14
+ [vars.borderColor]: 'transparent',
15
+ [vars.digitsGap]: '4px',
16
+ [vars.focusedValidDigitFieldBorderColor]: globalRefs.colors.primary.main,
17
+
18
+ _hideCursor: {
19
+ [vars.caretColor]: 'transparent',
20
+ },
21
+
22
+ _disabled: {
23
+ [vars.backgroundColor]: globalRefs.colors.surface.main
24
+ },
25
+
26
+ _fullWidth: {
27
+ [vars.width]: '100%'
28
+ },
29
+
30
+ _bordered: {
31
+ [vars.borderColor]: globalRefs.colors.surface.main
32
+ },
33
+
34
+ _invalid: {
35
+ [vars.borderColor]: globalRefs.colors.error.main,
36
+ [vars.color]: globalRefs.colors.error.main,
37
+ [vars.outlineColor]: globalRefs.colors.error.light,
38
+ },
39
+ }
7
40
 
8
41
  export default passcode;
@@ -0,0 +1,74 @@
1
+ import globals from '../globals';
2
+ import PhoneField from '../../components/descope-phone-field/PhoneField';
3
+ import { getThemeRefs } from '../../helpers/themeHelpers';
4
+
5
+ const globalRefs = getThemeRefs(globals);
6
+ const vars = PhoneField.cssVarList;
7
+
8
+ const phoneField = {
9
+ [vars.wrapperBorderStyle]: 'solid',
10
+ [vars.wrapperBorderWidth]: '1px',
11
+ [vars.wrapperBorderColor]: 'transparent',
12
+ [vars.wrapperBorderRadius]: globalRefs.radius.sm,
13
+ [vars.placeholderColor]: globalRefs.colors.surface.main,
14
+
15
+ [vars.padding]: '0',
16
+
17
+ [vars.phoneInputWidth]: '15em',
18
+ [vars.countryCodeInputWidth]: '7em',
19
+
20
+ size: {
21
+ xs: {
22
+ [vars.inputHeight]: '14px',
23
+ [vars.fontSize]: '8px',
24
+ [vars.padding]: `0 ${globalRefs.spacing.xs}`,
25
+ [vars.countryCodeDropdownWidth]: '200px',
26
+ },
27
+ sm: {
28
+ [vars.inputHeight]: '20px',
29
+ [vars.fontSize]: '10px',
30
+ [vars.padding]: `0 ${globalRefs.spacing.sm}`,
31
+ [vars.countryCodeDropdownWidth]: '240px',
32
+ },
33
+ md: {
34
+ [vars.inputHeight]: '30px',
35
+ [vars.fontSize]: '14px',
36
+ [vars.padding]: `0 ${globalRefs.spacing.md}`,
37
+ [vars.countryCodeDropdownWidth]: '250px',
38
+ },
39
+ lg: {
40
+ [vars.inputHeight]: '40px',
41
+ [vars.fontSize]: '46px',
42
+ [vars.padding]: `0 ${globalRefs.spacing.lg}`,
43
+ [vars.countryCodeDropdownWidth]: '250px',
44
+ },
45
+ xl: {
46
+ [vars.inputHeight]: '50px',
47
+ [vars.fontSize]: '25px',
48
+ [vars.padding]: `0 ${globalRefs.spacing.xl}`,
49
+ [vars.countryCodeDropdownWidth]: '400px',
50
+ }
51
+ },
52
+
53
+ _fullWidth: {
54
+ [vars.componentWidth]: '100%',
55
+ [vars.phoneInputWidth]: '100%',
56
+ [vars.countryCodeDropdownWidth]: '100%',
57
+ },
58
+
59
+ _bordered: {
60
+ [vars.wrapperBorderColor]: globalRefs.colors.surface.main
61
+ },
62
+
63
+ _invalid: {
64
+ [vars.color]: globalRefs.colors.error.main,
65
+ [vars.placeholderColor]: globalRefs.colors.error.light,
66
+ [vars.wrapperBorderColor]: globalRefs.colors.error.main
67
+ },
68
+
69
+ // '@overlay': {
70
+ // overlayItemBackgroundColor: 'red'
71
+ // }
72
+ };
73
+
74
+ export default phoneField;
@@ -15,13 +15,16 @@ const textArea = {
15
15
  [vars.borderWidth]: '1px',
16
16
  [vars.borderStyle]: 'solid',
17
17
  [vars.borderColor]: 'transparent',
18
+ [vars.outlineWidth]: '2px',
19
+ [vars.outlineStyle]: 'solid',
20
+
18
21
 
19
22
  _bordered: {
20
23
  [vars.borderColor]: globalRefs.colors.surface.main
21
24
  },
22
25
 
23
26
  _focused: {
24
- [vars.outline]: `2px solid ${globalRefs.colors.surface.main}`
27
+ [vars.outlineColor]: globalRefs.colors.surface.main
25
28
  },
26
29
 
27
30
  _fullWidth: {
@@ -33,7 +36,7 @@ const textArea = {
33
36
  },
34
37
 
35
38
  _invalid: {
36
- [vars.outline]: `2px solid ${globalRefs.colors.error.main}`
39
+ [vars.outlineColor]: globalRefs.colors.error.main
37
40
  }
38
41
  };
39
42
 
@@ -25,7 +25,7 @@ export const textField = (vars) => ({
25
25
  },
26
26
  lg: {
27
27
  [vars.height]: '40px',
28
- [vars.fontSize]: '16px',
28
+ [vars.fontSize]: '20px',
29
29
  [vars.padding]: `0 ${globalRefs.spacing.lg}`
30
30
  },
31
31
  xl: {
@@ -36,7 +36,7 @@ export const textField = (vars) => ({
36
36
  },
37
37
 
38
38
  [vars.color]: globalRefs.colors.surface.contrast,
39
- [vars.placeholderColor]: globalRefs.colors.surface.contrast,
39
+ [vars.placeholderColor]: globalRefs.colors.surface.main,
40
40
 
41
41
  [vars.backgroundColor]: globalRefs.colors.surface.light,
42
42
 
@@ -56,7 +56,9 @@ export const textField = (vars) => ({
56
56
  },
57
57
 
58
58
  _focused: {
59
- [vars.outline]: `2px solid ${globalRefs.colors.surface.main}`
59
+ [vars.outlineWidth]: '2px',
60
+ [vars.outlineStyle]: 'solid',
61
+ [vars.outlineColor]: globalRefs.colors.surface.main
60
62
  },
61
63
 
62
64
  _bordered: {
@@ -66,6 +68,7 @@ export const textField = (vars) => ({
66
68
  _invalid: {
67
69
  [vars.borderColor]: globalRefs.colors.error.main,
68
70
  [vars.color]: globalRefs.colors.error.main,
71
+ [vars.outlineColor]: globalRefs.colors.error.light,
69
72
  [vars.placeholderColor]: globalRefs.colors.error.light
70
73
  }
71
74
  });