@descope/web-components-ui 1.0.334 → 1.0.336

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 (43) hide show
  1. package/dist/cjs/index.cjs.js +186 -550
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +189 -556
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/4392.js +1 -1
  6. package/dist/umd/4978.js +1 -1
  7. package/dist/umd/DescopeDev.js +1 -1
  8. package/dist/umd/descope-email-field-index-js.js +4 -4
  9. package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js +1 -1
  10. package/dist/umd/descope-new-password-index-js.js +1 -1
  11. package/dist/umd/descope-number-field-index-js.js +1 -1
  12. package/dist/umd/descope-passcode-index-js.js +1 -1
  13. package/dist/umd/descope-password-index-js.js +1 -1
  14. package/dist/umd/descope-radio-group-index-js.js +1 -1
  15. package/dist/umd/descope-text-field-index-js.js +2 -2
  16. package/dist/umd/index.js +1 -1
  17. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
  18. package/dist/umd/phone-fields-descope-phone-field-descope-phone-field-internal-index-js.js +1 -1
  19. package/dist/umd/phone-fields-descope-phone-field-index-js.js +1 -1
  20. package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js +2 -2
  21. package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +1 -1
  22. package/package.json +1 -1
  23. package/src/components/descope-email-field/EmailFieldClass.js +3 -103
  24. package/src/components/descope-new-password/NewPasswordClass.js +0 -24
  25. package/src/components/descope-password/PasswordClass.js +1 -126
  26. package/src/components/descope-text-field/TextFieldClass.js +51 -29
  27. package/src/components/descope-text-field/index.js +2 -0
  28. package/src/components/descope-text-field/textFieldMappings.js +14 -36
  29. package/src/components/phone-fields/descope-phone-field/PhoneFieldClass.js +2 -11
  30. package/src/components/phone-fields/descope-phone-field/descope-phone-field-internal/PhoneFieldInternal.js +2 -5
  31. package/src/components/phone-fields/descope-phone-input-box-field/descope-phone-input-box-internal/PhoneFieldInternalInputBox.js +1 -1
  32. package/src/mixins/proxyInputMixin.js +2 -5
  33. package/src/theme/components/comboBox.js +10 -15
  34. package/src/theme/components/emailField.js +10 -15
  35. package/src/theme/components/inputWrapper.js +1 -0
  36. package/src/theme/components/multiSelectComboBox.js +9 -10
  37. package/src/theme/components/newPassword.js +1 -6
  38. package/src/theme/components/numberField.js +10 -15
  39. package/src/theme/components/password.js +9 -14
  40. package/src/theme/components/phoneField.js +3 -8
  41. package/src/theme/components/phoneInputBoxField.js +9 -14
  42. package/src/theme/components/textField.js +16 -15
  43. package/src/helpers/externalInputs.js +0 -76
@@ -9,10 +9,7 @@ const {
9
9
  errorMessage,
10
10
  disabledPlaceholder,
11
11
  inputDisabled,
12
- externalInput,
13
- externalInputDisabled,
14
- externalPlaceholder,
15
- externalDisabledPlaceholder,
12
+ inputIcon,
16
13
  } = {
17
14
  host: { selector: () => ':host' },
18
15
  label: { selector: '::part(label)' },
@@ -27,10 +24,7 @@ const {
27
24
  inputDisabled: { selector: 'input:disabled' },
28
25
  helperText: { selector: '::part(helper-text)' },
29
26
  errorMessage: { selector: '::part(error-message)' },
30
- externalInput: { selector: () => '::slotted(input)' },
31
- externalInputDisabled: { selector: () => '::slotted(input:disabled)' },
32
- externalPlaceholder: { selector: () => '::slotted(input:placeholder-shown)' },
33
- externalDisabledPlaceholder: { selector: () => '::slotted(input:disabled::placeholder)' },
27
+ inputIcon: { selector: 'vaadin-icon' },
34
28
  };
35
29
 
36
30
  export default {
@@ -60,12 +54,8 @@ export default {
60
54
  inputValueTextColor: [
61
55
  { ...inputField, property: 'color' },
62
56
  { ...inputDisabled, property: '-webkit-text-fill-color' },
63
- { ...externalInputDisabled, property: '-webkit-text-fill-color' },
64
- ],
65
- inputCaretTextColor: [
66
- { ...input, property: 'color' },
67
- { ...externalInput, property: 'color' },
68
57
  ],
58
+ inputCaretTextColor: [{ ...input, property: 'color' }],
69
59
 
70
60
  labelRequiredIndicator: { ...requiredIndicator, property: 'content' },
71
61
 
@@ -78,8 +68,6 @@ export default {
78
68
  inputHorizontalPadding: [
79
69
  { ...input, property: 'padding-left' },
80
70
  { ...input, property: 'padding-right' },
81
- { ...externalInput, property: 'padding-left' },
82
- { ...externalInput, property: 'padding-right' },
83
71
  ],
84
72
 
85
73
  inputOutlineColor: { ...inputField, property: 'outline-color' },
@@ -87,17 +75,12 @@ export default {
87
75
  inputOutlineWidth: { ...inputField, property: 'outline-width' },
88
76
  inputOutlineOffset: { ...inputField, property: 'outline-offset' },
89
77
 
90
- inputTextAlign: [
91
- { ...input, property: 'text-align' },
92
- { ...externalInput, property: 'text-align' },
93
- ],
78
+ inputTextAlign: [{ ...input, property: 'text-align' }],
94
79
 
95
80
  inputPlaceholderColor: [
96
81
  { selector: () => ':host input:placeholder-shown', property: 'color' },
97
82
  { ...placeholder, property: 'color' },
98
- { ...externalPlaceholder, property: 'color' },
99
83
  { ...disabledPlaceholder, property: '-webkit-text-fill-color' },
100
- { ...externalDisabledPlaceholder, property: '-webkit-text-fill-color' },
101
84
  ],
102
85
 
103
86
  labelPosition: { ...label, property: 'position' },
@@ -109,20 +92,15 @@ export default {
109
92
  inputTransformY: { ...label, property: 'transform' },
110
93
  inputTransition: { ...label, property: 'transition' },
111
94
  marginInlineStart: { ...label, property: 'margin-inline-start' },
112
- placeholderOpacity: [
113
- { selector: '> input:placeholder-shown', property: 'opacity' },
114
- { ...externalPlaceholder, property: 'opacity' },
115
- ],
116
- inputVerticalAlignment: [
117
- { ...inputField, property: 'align-items' },
118
- { ...externalInput, property: 'align-items' },
119
- ],
120
- valueInputHeight: [
121
- { ...input, property: 'height' },
122
- { ...externalInput, property: 'height' },
123
- ],
124
- valueInputMarginBottom: [
125
- { ...input, property: 'margin-bottom' },
126
- { ...externalInput, property: 'margin-bottom' },
95
+ placeholderOpacity: [{ selector: '> input:placeholder-shown', property: 'opacity' }],
96
+ inputVerticalAlignment: [{ ...inputField, property: 'align-items' }],
97
+ valueInputHeight: [{ ...input, property: 'height' }],
98
+ valueInputMarginBottom: [{ ...input, property: 'margin-bottom' }],
99
+
100
+ inputIconOffset: [
101
+ { ...inputIcon, property: 'margin-right' },
102
+ { ...inputIcon, property: 'margin-left' },
127
103
  ],
104
+ inputIconSize: { ...inputIcon, property: 'font-size' },
105
+ inputIconColor: { ...inputIcon, property: 'color' },
128
106
  };
@@ -68,7 +68,6 @@ const {
68
68
  inputField,
69
69
  countryCodeInput,
70
70
  phoneInput,
71
- phoneExternalInput,
72
71
  separator,
73
72
  errorMessage,
74
73
  helperText,
@@ -78,7 +77,6 @@ const {
78
77
  requiredIndicator: { selector: '[required]::part(required-indicator)::after' },
79
78
  inputField: { selector: '::part(input-field)' },
80
79
  phoneInput: { selector: () => 'descope-text-field' },
81
- phoneExternalInput: { selector: () => '::slotted(input)' },
82
80
  countryCodeInput: { selector: () => 'descope-combo-box' },
83
81
  separator: { selector: 'descope-phone-field-internal .separator' },
84
82
  helperText: { selector: '::part(helper-text)' },
@@ -168,17 +166,10 @@ export const PhoneFieldClass = compose(
168
166
  inputOutlineWidth: { ...inputField, property: 'outline-width' },
169
167
  inputOutlineOffset: { ...inputField, property: 'outline-offset' },
170
168
 
171
- valueInputHeight: [
172
- { ...phoneExternalInput, property: textVars.valueInputHeight },
173
- { ...countryCodeInput, property: comboVars.valueInputHeight },
174
- ],
175
- valueInputMarginBottom: [
176
- { ...phoneInput, property: textVars.valueInputMarginBottom },
177
- { ...phoneExternalInput, property: 'margin-bottom' },
178
- ],
169
+ valueInputHeight: [{ ...countryCodeInput, property: comboVars.valueInputHeight }],
170
+ valueInputMarginBottom: [{ ...phoneInput, property: textVars.valueInputMarginBottom }],
179
171
  marginInlineStart: [
180
172
  { ...phoneInput, property: textVars.marginInlineStart },
181
- { ...phoneExternalInput, property: 'margin-inline-start' },
182
173
  { ...countryCodeInput, property: comboVars.marginInlineStart },
183
174
  ],
184
175
  },
@@ -1,5 +1,5 @@
1
1
  import { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';
2
- import { forwardAttrs, getComponentName, syncAttrs } from '../../../../helpers/componentHelpers';
2
+ import { forwardAttrs, getComponentName } from '../../../../helpers/componentHelpers';
3
3
  import CountryCodes from '../../CountryCodes';
4
4
  import { comboBoxItem } from '../helpers';
5
5
 
@@ -36,7 +36,7 @@ class PhoneFieldInternal extends BaseInputClass {
36
36
  ${CountryCodes.map((item) => comboBoxItem(item)).join('')}
37
37
  </descope-combo-box>
38
38
  <div class="separator"></div>
39
- <descope-text-field type="tel" external-input="true"></descope-text-field>
39
+ <descope-text-field type="tel"></descope-text-field>
40
40
  </div>
41
41
  `;
42
42
 
@@ -47,9 +47,6 @@ class PhoneFieldInternal extends BaseInputClass {
47
47
  forwardAttrs(this, this.countryCodeInput, { includeAttrs: ['label-type'] });
48
48
  forwardAttrs(this, this.phoneNumberInput, { includeAttrs: ['label-type'] });
49
49
 
50
- const externalInput = this.phoneNumberInput.querySelector('input');
51
- syncAttrs(this.phoneNumberInput, externalInput, { includeAttrs: ['focused'] });
52
-
53
50
  // override combo box setter to display dialCode value in input
54
51
  this.countryCodeInput.customValueTransformFn = (val) => {
55
52
  const [, dialCode] = val?.split?.(' ') || [];
@@ -31,7 +31,7 @@ class PhoneFieldInternal extends BaseInputClass {
31
31
 
32
32
  this.innerHTML = `
33
33
  <div>
34
- <descope-text-field tabindex="1" external-input="true"></descope-text-field>
34
+ <descope-text-field tabindex="1"></descope-text-field>
35
35
  </div>
36
36
  `;
37
37
 
@@ -42,7 +42,7 @@ const proxyInputMixin =
42
42
  ({
43
43
  proxyProps = [],
44
44
  // useProxyTargets flag allows to forwardProps to other targets, other than
45
- // `this.inputElement`. It's to be used within `external-input` components,
45
+ // `this.inputElement`.
46
46
  // if needed
47
47
  useProxyTargets = false,
48
48
  // allows us to set the event that should trigger validation
@@ -171,10 +171,7 @@ const proxyInputMixin =
171
171
 
172
172
  // sync properties
173
173
  proxyProps.forEach((prop) => {
174
- const externalInput = this.querySelector('input[slot="external-input"]') || null;
175
- const proxyTargets = useProxyTargets
176
- ? [this.baseElement, externalInput].filter(Boolean)
177
- : [];
174
+ const proxyTargets = useProxyTargets ? [this.baseElement].filter(Boolean) : [];
178
175
  forwardProps(this, [this.inputElement, ...proxyTargets], prop);
179
176
  });
180
177
 
@@ -35,21 +35,16 @@ export const comboBox = {
35
35
  [vars.inputDropdownButtonOffset]: globalRefs.spacing.xs,
36
36
  [vars.overlayItemPaddingInlineStart]: globalRefs.spacing.xs,
37
37
  [vars.overlayItemPaddingInlineEnd]: globalRefs.spacing.lg,
38
-
39
- labelType: {
40
- floating: {
41
- [vars.labelPosition]: refs.labelPosition,
42
- [vars.labelTopPosition]: refs.labelTopPosition,
43
- [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
44
- [vars.inputTransformY]: refs.inputTransformY,
45
- [vars.inputTransition]: refs.inputTransition,
46
- [vars.marginInlineStart]: refs.marginInlineStart,
47
- [vars.placeholderOpacity]: refs.placeholderOpacity,
48
- [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,
49
- [vars.valueInputHeight]: refs.valueInputHeight,
50
- [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,
51
- },
52
- },
38
+ [vars.labelPosition]: refs.labelPosition,
39
+ [vars.labelTopPosition]: refs.labelTopPosition,
40
+ [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
41
+ [vars.inputTransformY]: refs.inputTransformY,
42
+ [vars.inputTransition]: refs.inputTransition,
43
+ [vars.marginInlineStart]: refs.marginInlineStart,
44
+ [vars.placeholderOpacity]: refs.placeholderOpacity,
45
+ [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,
46
+ [vars.valueInputHeight]: refs.valueInputHeight,
47
+ [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,
53
48
 
54
49
  _readonly: {
55
50
  [vars.inputDropdownButtonCursor]: 'default',
@@ -27,21 +27,16 @@ const emailField = {
27
27
  [vars.inputBackgroundColor]: refs.backgroundColor,
28
28
  [vars.inputHorizontalPadding]: refs.horizontalPadding,
29
29
  [vars.inputHeight]: refs.inputHeight,
30
-
31
- labelType: {
32
- floating: {
33
- [vars.labelPosition]: refs.labelPosition,
34
- [vars.labelTopPosition]: refs.labelTopPosition,
35
- [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
36
- [vars.inputTransformY]: refs.inputTransformY,
37
- [vars.inputTransition]: refs.inputTransition,
38
- [vars.marginInlineStart]: refs.marginInlineStart,
39
- [vars.placeholderOpacity]: refs.placeholderOpacity,
40
- [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,
41
- [vars.valueInputHeight]: refs.valueInputHeight,
42
- [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,
43
- },
44
- },
30
+ [vars.labelPosition]: refs.labelPosition,
31
+ [vars.labelTopPosition]: refs.labelTopPosition,
32
+ [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
33
+ [vars.inputTransformY]: refs.inputTransformY,
34
+ [vars.inputTransition]: refs.inputTransition,
35
+ [vars.marginInlineStart]: refs.marginInlineStart,
36
+ [vars.placeholderOpacity]: refs.placeholderOpacity,
37
+ [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,
38
+ [vars.valueInputHeight]: refs.valueInputHeight,
39
+ [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,
45
40
  };
46
41
 
47
42
  export default emailField;
@@ -28,6 +28,7 @@ const [theme, refs, vars] = createHelperVars(
28
28
 
29
29
  minWidth: '10em',
30
30
  toggleButtonSize: '1.5em',
31
+ inputIconSize: '1em',
31
32
  inputHeight: '3em',
32
33
  horizontalPadding: '0.5em',
33
34
  verticalPadding: '0.5em',
@@ -39,20 +39,19 @@ export const multiSelectComboBox = {
39
39
  [vars.chipFontSize]: refs.chipFontSize,
40
40
  [vars.chipTextColor]: globalRefs.colors.surface.contrast,
41
41
  [vars.chipBackgroundColor]: globalRefs.colors.surface.light,
42
+ [vars.labelPosition]: refs.labelPosition,
43
+ [vars.labelTopPosition]: refs.labelTopPosition,
44
+ [vars.labelLeftPosition]: refs.labelLeftPosition,
45
+ [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
46
+ [vars.inputTransformY]: refs.inputTransformY,
47
+ [vars.inputTransition]: refs.inputTransition,
48
+ [vars.marginInlineStart]: refs.marginInlineStart,
49
+ [vars.placeholderOpacity]: refs.placeholderOpacity,
50
+ [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,
42
51
 
43
52
  labelType: {
44
53
  floating: {
45
- [vars.labelPosition]: refs.labelPosition,
46
- [vars.labelTopPosition]: refs.labelTopPosition,
47
- [vars.labelLeftPosition]: refs.labelLeftPosition,
48
- [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
49
- [vars.inputTransformY]: refs.inputTransformY,
50
- [vars.inputTransition]: refs.inputTransition,
51
- [vars.marginInlineStart]: refs.marginInlineStart,
52
- [vars.placeholderOpacity]: refs.placeholderOpacity,
53
- [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,
54
54
  [vars.inputHorizontalPadding]: '0.25em',
55
-
56
55
  _hasValue: {
57
56
  [vars.inputHorizontalPadding]: '0.45em',
58
57
  },
@@ -19,12 +19,7 @@ const newPassword = {
19
19
  [vars.errorMessageTextColor]: refs.errorMessageTextColor,
20
20
  [vars.policyPreviewBackgroundColor]: 'none',
21
21
  [vars.policyPreviewPadding]: globalRefs.spacing.lg,
22
-
23
- labelType: {
24
- floating: {
25
- [vars.valueInputHeight]: refs.valueInputHeight,
26
- },
27
- },
22
+ [vars.valueInputHeight]: refs.valueInputHeight,
28
23
 
29
24
  _required: {
30
25
  // NewPassword doesn't pass `required` attribute to its Password components.
@@ -27,21 +27,16 @@ const numberField = {
27
27
  [vars.labelRequiredIndicator]: refs.requiredIndicator,
28
28
  [vars.inputHorizontalPadding]: refs.horizontalPadding,
29
29
  [vars.inputHeight]: refs.inputHeight,
30
-
31
- labelType: {
32
- floating: {
33
- [vars.labelPosition]: refs.labelPosition,
34
- [vars.labelTopPosition]: refs.labelTopPosition,
35
- [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
36
- [vars.inputTransformY]: refs.inputTransformY,
37
- [vars.inputTransition]: refs.inputTransition,
38
- [vars.marginInlineStart]: refs.marginInlineStart,
39
- [vars.placeholderOpacity]: refs.placeholderOpacity,
40
- [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,
41
- [vars.valueInputHeight]: refs.valueInputHeight,
42
- [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,
43
- },
44
- },
30
+ [vars.labelPosition]: refs.labelPosition,
31
+ [vars.labelTopPosition]: refs.labelTopPosition,
32
+ [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
33
+ [vars.inputTransformY]: refs.inputTransformY,
34
+ [vars.inputTransition]: refs.inputTransition,
35
+ [vars.marginInlineStart]: refs.marginInlineStart,
36
+ [vars.placeholderOpacity]: refs.placeholderOpacity,
37
+ [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,
38
+ [vars.valueInputHeight]: refs.valueInputHeight,
39
+ [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,
45
40
  };
46
41
 
47
42
  export default numberField;
@@ -33,20 +33,15 @@ const password = {
33
33
  [vars.revealButtonOffset]: globalRefs.spacing.md,
34
34
  [vars.revealButtonSize]: refs.toggleButtonSize,
35
35
  [vars.revealButtonColor]: refs.placeholderTextColor,
36
-
37
- labelType: {
38
- floating: {
39
- [vars.labelPosition]: refs.labelPosition,
40
- [vars.labelTopPosition]: refs.labelTopPosition,
41
- [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
42
- [vars.inputTransformY]: refs.inputTransformY,
43
- [vars.inputTransition]: refs.inputTransition,
44
- [vars.marginInlineStart]: refs.marginInlineStart,
45
- [vars.placeholderOpacity]: refs.placeholderOpacity,
46
- [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,
47
- [vars.valueInputHeight]: refs.valueInputHeight,
48
- },
49
- },
36
+ [vars.labelPosition]: refs.labelPosition,
37
+ [vars.labelTopPosition]: refs.labelTopPosition,
38
+ [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
39
+ [vars.inputTransformY]: refs.inputTransformY,
40
+ [vars.inputTransition]: refs.inputTransition,
41
+ [vars.marginInlineStart]: refs.marginInlineStart,
42
+ [vars.placeholderOpacity]: refs.placeholderOpacity,
43
+ [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,
44
+ [vars.valueInputHeight]: refs.valueInputHeight,
50
45
  };
51
46
 
52
47
  export default password;
@@ -24,14 +24,9 @@ const phoneField = {
24
24
  [vars.phoneInputWidth]: refs.minWidth,
25
25
  [vars.countryCodeInputWidth]: '5em',
26
26
  [vars.countryCodeDropdownWidth]: '20em',
27
-
28
- labelType: {
29
- floating: {
30
- [vars.marginInlineStart]: '-0.25em',
31
- [vars.valueInputHeight]: '1.65em',
32
- [vars.valueInputMarginBottom]: '0.25em',
33
- },
34
- },
27
+ [vars.marginInlineStart]: '-0.25em',
28
+ [vars.valueInputHeight]: refs.valueInputHeight,
29
+ [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,
35
30
 
36
31
  // '@overlay': {
37
32
  // overlayItemBackgroundColor: 'red'
@@ -24,20 +24,15 @@ const phoneInputBoxField = {
24
24
  [vars.inputOutlineWidth]: refs.outlineWidth,
25
25
  [vars.inputOutlineColor]: refs.outlineColor,
26
26
  [vars.inputOutlineOffset]: refs.outlineOffset,
27
-
28
- labelType: {
29
- floating: {
30
- [vars.labelPosition]: refs.labelPosition,
31
- [vars.labelTopPosition]: refs.labelTopPosition,
32
- [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
33
- [vars.inputTransformY]: refs.inputTransformY,
34
- [vars.inputTransition]: refs.inputTransition,
35
- [vars.marginInlineStart]: refs.marginInlineStart,
36
- [vars.valueInputHeight]: refs.valueInputHeight,
37
- [vars.valueInputMarginBottom]: '0.25em',
38
- [vars.inputHorizontalPadding]: '0',
39
- },
40
- },
27
+ [vars.labelPosition]: refs.labelPosition,
28
+ [vars.labelTopPosition]: refs.labelTopPosition,
29
+ [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
30
+ [vars.inputTransformY]: refs.inputTransformY,
31
+ [vars.inputTransition]: refs.inputTransition,
32
+ [vars.marginInlineStart]: refs.marginInlineStart,
33
+ [vars.valueInputHeight]: refs.valueInputHeight,
34
+ [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,
35
+ [vars.inputHorizontalPadding]: '0',
41
36
 
42
37
  _fullWidth: {
43
38
  [vars.hostWidth]: refs.width,
@@ -1,6 +1,9 @@
1
+ import globals from '../globals';
2
+ import { getThemeRefs } from '../../helpers/themeHelpers';
1
3
  import { TextFieldClass } from '../../components/descope-text-field/TextFieldClass';
2
4
  import { refs } from './inputWrapper';
3
5
 
6
+ const globalRefs = getThemeRefs(globals);
4
7
  const vars = TextFieldClass.cssVarList;
5
8
 
6
9
  export const textField = {
@@ -33,21 +36,19 @@ export const textField = {
33
36
  left: { [vars.inputTextAlign]: 'left' },
34
37
  center: { [vars.inputTextAlign]: 'center' },
35
38
  },
36
-
37
- labelType: {
38
- floating: {
39
- [vars.labelPosition]: refs.labelPosition,
40
- [vars.labelTopPosition]: refs.labelTopPosition,
41
- [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
42
- [vars.inputTransformY]: refs.inputTransformY,
43
- [vars.inputTransition]: refs.inputTransition,
44
- [vars.marginInlineStart]: refs.marginInlineStart,
45
- [vars.placeholderOpacity]: refs.placeholderOpacity,
46
- [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,
47
- [vars.valueInputHeight]: refs.valueInputHeight,
48
- [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,
49
- },
50
- },
39
+ [vars.labelPosition]: refs.labelPosition,
40
+ [vars.labelTopPosition]: refs.labelTopPosition,
41
+ [vars.labelHorizontalPosition]: refs.labelHorizontalPosition,
42
+ [vars.inputTransformY]: refs.inputTransformY,
43
+ [vars.inputTransition]: refs.inputTransition,
44
+ [vars.marginInlineStart]: refs.marginInlineStart,
45
+ [vars.placeholderOpacity]: refs.placeholderOpacity,
46
+ [vars.inputVerticalAlignment]: refs.inputVerticalAlignment,
47
+ [vars.valueInputHeight]: refs.valueInputHeight,
48
+ [vars.valueInputMarginBottom]: refs.valueInputMarginBottom,
49
+ [vars.inputIconOffset]: globalRefs.spacing.md,
50
+ [vars.inputIconSize]: refs.inputIconSize,
51
+ [vars.inputIconColor]: refs.placeholderTextColor,
51
52
  };
52
53
 
53
54
  export default textField;
@@ -1,76 +0,0 @@
1
- // since on load we can only sample the color of the placeholder,
2
- // we need to temporarily populate the input in order to sample the value color
3
- const getValueColor = (ele, computedStyle) => {
4
- // eslint-disable-next-line no-param-reassign
5
- ele.value = '_';
6
-
7
- const valueColor = computedStyle.getPropertyValue('color');
8
-
9
- // eslint-disable-next-line no-param-reassign
10
- ele.value = '';
11
-
12
- return valueColor;
13
- };
14
-
15
- export const createExternalInputSlot = (slotName, targetSlotName) => {
16
- const slotEle = document.createElement('slot');
17
-
18
- slotEle.setAttribute('name', slotName);
19
- slotEle.setAttribute('slot', targetSlotName);
20
-
21
- return slotEle;
22
- };
23
-
24
- export const createExternalInputEle = (targetSlotName, type, autocompleteType) => {
25
- const inputEle = document.createElement('input');
26
-
27
- inputEle.setAttribute('slot', targetSlotName);
28
- inputEle.setAttribute('type', type);
29
- inputEle.setAttribute('data-hidden-input', 'true');
30
- inputEle.setAttribute('autocomplete', autocompleteType);
31
-
32
- return inputEle;
33
- };
34
-
35
- // We apply the original input's style to the external-input.
36
- // Eventually, the user should interact directly with the external input.
37
- // We keep the original input
38
- export const applyExternalInputStyles = (sourceInputEle, targetInputEle, labelType) => {
39
- const computedStyle = getComputedStyle(sourceInputEle);
40
-
41
- // Get minimal set of computed theme properties to set on external input
42
- const height = computedStyle.getPropertyValue('height');
43
- const paddingLeft = computedStyle.getPropertyValue('padding-left');
44
- const paddingRight = computedStyle.getPropertyValue('padding-right');
45
- const fontSize = computedStyle.getPropertyValue('font-size');
46
- const fontFamily = computedStyle.getPropertyValue('font-family');
47
- const letterSpacing = computedStyle.getPropertyValue('letter-spacing');
48
- const caretColor = computedStyle.getPropertyValue('caret-color');
49
-
50
- const valueColor = getValueColor(sourceInputEle, computedStyle);
51
-
52
- const commonThemeStyles = [
53
- ['all', 'unset'],
54
- ['position', 'absolute'],
55
- ['background-color', 'transparent'],
56
- ['height', height],
57
- ['left', paddingLeft],
58
- ['right', paddingRight],
59
- ['font-size', fontSize],
60
- ['font-family', fontFamily],
61
- ['letter-spacing', letterSpacing],
62
- ['width', `calc(100% - ${paddingLeft} - ${paddingRight}`],
63
- ['caret-color', caretColor], // this is for seeing caret when focusing on external input
64
- ['color', valueColor],
65
- ];
66
-
67
- commonThemeStyles.forEach(([key, val]) =>
68
- targetInputEle.style.setProperty(key, val, 'important')
69
- );
70
-
71
- // Handle floating label theme properties
72
- if (labelType === 'floating') {
73
- const marginBottom = computedStyle.getPropertyValue('margin-bottom');
74
- targetInputEle.style.setProperty('margin-bottom', marginBottom, 'important');
75
- }
76
- };