@descope/web-components-ui 1.0.74 → 1.0.76

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.
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
  });