@descope/web-components-ui 1.0.131 → 1.0.132

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 (49) hide show
  1. package/dist/cjs/index.cjs.js +234 -186
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +234 -187
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/201.js +1 -1
  6. package/dist/umd/241.js +1 -1
  7. package/dist/umd/447.js +1 -1
  8. package/dist/umd/481.js +1 -1
  9. package/dist/umd/boolean-fields-descope-checkbox-index-js.js +1 -1
  10. package/dist/umd/boolean-fields-descope-switch-toggle-index-js.js +1 -1
  11. package/dist/umd/descope-button-index-js.js +1 -1
  12. package/dist/umd/descope-combo-box-index-js.js +1 -1
  13. package/dist/umd/descope-email-field-index-js.js +1 -1
  14. package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js +1 -1
  15. package/dist/umd/descope-number-field-index-js.js +1 -1
  16. package/dist/umd/descope-passcode-index-js.js +1 -1
  17. package/dist/umd/descope-phone-field-index-js.js +1 -1
  18. package/dist/umd/descope-text-area-index-js.js +1 -1
  19. package/dist/umd/descope-text-field-index-js.js +1 -1
  20. package/dist/umd/descope-text-index-js.js +1 -1
  21. package/dist/umd/index.js +1 -1
  22. package/package.json +1 -1
  23. package/src/components/boolean-fields/descope-checkbox/CheckboxClass.js +11 -12
  24. package/src/components/boolean-fields/descope-switch-toggle/SwitchToggleClass.js +8 -9
  25. package/src/components/descope-button/ButtonClass.js +4 -5
  26. package/src/components/descope-combo-box/ComboBoxClass.js +24 -8
  27. package/src/components/descope-email-field/EmailFieldClass.js +2 -2
  28. package/src/components/descope-new-password/NewPasswordClass.js +5 -5
  29. package/src/components/descope-new-password/descope-new-password-internal/NewPasswordInternal.js +0 -1
  30. package/src/components/descope-number-field/NumberFieldClass.js +2 -2
  31. package/src/components/descope-passcode/PasscodeClass.js +5 -1
  32. package/src/components/descope-password/PasswordClass.js +22 -9
  33. package/src/components/descope-phone-field/PhoneFieldClass.js +9 -14
  34. package/src/components/descope-text/TextClass.js +1 -1
  35. package/src/components/descope-text-area/TextAreaClass.js +9 -10
  36. package/src/components/descope-text-field/TextFieldClass.js +2 -3
  37. package/src/components/descope-text-field/textFieldMappings.js +14 -21
  38. package/src/helpers/themeHelpers/resetHelpers.js +22 -6
  39. package/src/mixins/normalizeBooleanAttributesMixin.js +2 -1
  40. package/src/theme/components/comboBox.js +3 -0
  41. package/src/theme/components/emailField.js +2 -0
  42. package/src/theme/components/inputWrapper.js +5 -1
  43. package/src/theme/components/newPassword.js +1 -0
  44. package/src/theme/components/numberField.js +3 -1
  45. package/src/theme/components/passcode.js +1 -0
  46. package/src/theme/components/password.js +3 -1
  47. package/src/theme/components/phoneField.js +1 -1
  48. package/src/theme/components/textArea.js +1 -0
  49. package/src/theme/components/textField.js +2 -0
@@ -1,6 +1,6 @@
1
1
  import { compose } from '../../helpers';
2
2
  import { getComponentName, observeChildren } from '../../helpers/componentHelpers';
3
- import { resetInputCursor, resetInputPlaceholder, resetInputReadonlyStyle } from '../../helpers/themeHelpers/resetHelpers';
3
+ import { resetInputCursor, resetInputPlaceholder, resetInputReadonlyStyle, useHostExternalPadding } from '../../helpers/themeHelpers/resetHelpers';
4
4
  import {
5
5
  createStyleMixin,
6
6
  draggableMixin,
@@ -65,6 +65,7 @@ const ComboBoxMixin = (superclass) => class ComboBoxMixinClass extends superclas
65
65
  const {
66
66
  host,
67
67
  inputField,
68
+ inputElement,
68
69
  placeholder,
69
70
  toggle,
70
71
  label,
@@ -74,6 +75,7 @@ const {
74
75
  } = {
75
76
  host: { selector: () => ':host' },
76
77
  inputField: { selector: '::part(input-field)' },
78
+ inputElement: { selector: 'input' },
77
79
  placeholder: { selector: '> input:placeholder-shown' },
78
80
  toggle: { selector: '::part(toggle-button)' },
79
81
  label: { selector: '::part(label)' },
@@ -93,8 +95,8 @@ export const ComboBoxClass = compose(
93
95
  hostWidth: { ...host, property: 'width' },
94
96
  // we apply font-size also on the host so we can set its width with em
95
97
  fontSize: [
96
- { property: 'font-size' },
97
- { ...host, property: 'font-size' }
98
+ {},
99
+ host,
98
100
  ],
99
101
  fontFamily: [
100
102
  label,
@@ -118,10 +120,19 @@ export const ComboBoxClass = compose(
118
120
  inputPlaceholderTextColor: { ...placeholder, property: 'color' },
119
121
  inputDropdownButtonCursor: { ...toggle, property: 'cursor' },
120
122
  inputDropdownButtonColor: { ...toggle, property: 'color' },
123
+ inputDropdownButtonSize: { ...toggle, property: 'font-size' },
124
+ inputDropdownButtonOffset: [
125
+ { ...toggle, property: 'margin-right' },
126
+ { ...toggle, property: 'margin-left' },
127
+ ],
121
128
  inputOutlineColor: { ...inputField, property: 'outline-color' },
122
129
  inputOutlineWidth: { ...inputField, property: 'outline-width' },
123
130
  inputOutlineStyle: { ...inputField, property: 'outline-style' },
124
131
  inputOutlineOffset: { ...inputField, property: 'outline-offset' },
132
+ inputHorizontalPadding: [
133
+ { ...inputElement, property: 'padding-left' },
134
+ { ...inputElement, property: 'padding-right' }
135
+ ],
125
136
 
126
137
  // we need to use the variables from the portal mixin
127
138
  // so we need to use an arrow function on the selector
@@ -159,24 +170,29 @@ export const ComboBoxClass = compose(
159
170
  display: inline-flex;
160
171
  box-sizing: border-box;
161
172
  -webkit-mask-image: none;
162
- padding: calc(var(${ComboBoxClass.cssVarList.inputOutlineWidth}) + var(${ComboBoxClass.cssVarList.inputOutlineOffset}))
163
173
  }
174
+ ${useHostExternalPadding(ComboBoxClass.cssVarList)}
175
+ ${resetInputReadonlyStyle('vaadin-combo-box')}
176
+ ${resetInputPlaceholder('vaadin-combo-box')}
177
+ ${resetInputCursor('vaadin-combo-box')}
178
+
164
179
  vaadin-combo-box {
165
180
  padding: 0;
166
181
  width: 100%;
167
182
  }
183
+ vaadin-combo-box::before {
184
+ height: initial;
185
+ }
168
186
  vaadin-combo-box [slot="input"] {
169
187
  -webkit-mask-image: none;
170
188
  min-height: 0;
189
+ box-sizing: border-box;
171
190
  }
172
191
 
173
192
  vaadin-combo-box::part(input-field) {
174
193
  padding: 0;
194
+ box-shadow: none;
175
195
  }
176
-
177
- ${resetInputReadonlyStyle('vaadin-combo-box')}
178
- ${resetInputPlaceholder('vaadin-combo-box')}
179
- ${resetInputCursor('vaadin-combo-box')}
180
196
  `,
181
197
  // Note: we exclude `size` to avoid overriding Vaadin's ComboBox property
182
198
  // with the same name. Including it will cause Vaadin to calculate NaN size,
@@ -8,7 +8,7 @@ import {
8
8
  import textFieldMappings from '../descope-text-field/textFieldMappings';
9
9
  import { compose } from '../../helpers';
10
10
  import { getComponentName } from '../../helpers/componentHelpers';
11
- import { resetInputOverrides } from '../../helpers/themeHelpers/resetHelpers';
11
+ import { resetInputOverrides, useHostExternalPadding } from '../../helpers/themeHelpers/resetHelpers';
12
12
 
13
13
  export const componentName = getComponentName('email-field');
14
14
 
@@ -27,9 +27,9 @@ export const EmailFieldClass = compose(
27
27
  :host {
28
28
  display: inline-block;
29
29
  max-width: 100%;
30
- min-width: 10em;
31
30
  padding: calc(var(${EmailFieldClass.cssVarList.inputOutlineWidth}) + var(${EmailFieldClass.cssVarList.inputOutlineOffset}))
32
31
  }
32
+ ${useHostExternalPadding(EmailFieldClass.cssVarList)}
33
33
  ${resetInputOverrides('vaadin-email-field', EmailFieldClass.cssVarList)}
34
34
  `,
35
35
  excludeAttrsSync: ['tabindex'],
@@ -8,7 +8,7 @@ import {
8
8
  } from '../../mixins';
9
9
  import { componentName as descopeInternalComponentName } from './descope-new-password-internal/componentName';
10
10
  import { PasswordClass } from '../descope-password/PasswordClass';
11
- import { resetInputFieldDefaultWidth } from '../../helpers/themeHelpers/resetHelpers';
11
+ import { useHostExternalPadding } from '../../helpers/themeHelpers/resetHelpers';
12
12
 
13
13
  export const componentName = getComponentName('new-password');
14
14
 
@@ -73,6 +73,7 @@ export const NewPasswordClass = compose(
73
73
  mappings: {
74
74
  fontSize: [
75
75
  host,
76
+ {},
76
77
  {
77
78
  selector: PasswordClass.componentName,
78
79
  property: PasswordClass.cssVarList.fontSize
@@ -84,6 +85,7 @@ export const NewPasswordClass = compose(
84
85
  helperText
85
86
  ],
86
87
  hostWidth: { ...host, property: 'width' },
88
+ hostMinWidth: { ...host, property: 'min-width' },
87
89
  inputsRequiredIndicator: { ...host, property: 'content' },
88
90
  spaceBetweenInputs: { ...internalInputsWrapper, property: 'gap' },
89
91
  }
@@ -99,10 +101,9 @@ export const NewPasswordClass = compose(
99
101
  :host {
100
102
  display: inline-block;
101
103
  max-width: 100%;
102
- min-width: 10em;
103
104
  box-sizing: border-box;
104
105
  }
105
- ${resetInputFieldDefaultWidth()}
106
+ ${useHostExternalPadding(PasswordClass.cssVarList)}
106
107
  vaadin-text-field {
107
108
  padding: 0;
108
109
  width: 100%;
@@ -111,7 +112,6 @@ export const NewPasswordClass = compose(
111
112
  vaadin-text-field::part(input-field) {
112
113
  min-height: 0;
113
114
  background: transparent;
114
- overflow: hidden;
115
115
  box-shadow: none;
116
116
  padding: 0;
117
117
  }
@@ -130,7 +130,7 @@ export const NewPasswordClass = compose(
130
130
  width: 100%;
131
131
  height: 100%;
132
132
  display: flex;
133
- flex-direction: column;
133
+ flex-direction: column;
134
134
  }
135
135
  descope-password {
136
136
  display: block;
@@ -19,7 +19,6 @@ const commonAttrs = [
19
19
  'invalid',
20
20
  'readonly',
21
21
  'draggable'
22
-
23
22
  ];
24
23
 
25
24
  const inputRelatedAttrs = [].concat(commonAttrs, passwordInputAttrs, confirmInputAttrs);
@@ -8,7 +8,7 @@ import {
8
8
  import textFieldMappings from '../descope-text-field/textFieldMappings';
9
9
  import { compose } from '../../helpers';
10
10
  import { getComponentName } from '../../helpers/componentHelpers';
11
- import { resetInputOverrides } from '../../helpers/themeHelpers/resetHelpers';
11
+ import { resetInputOverrides, useHostExternalPadding } from '../../helpers/themeHelpers/resetHelpers';
12
12
 
13
13
  export const componentName = getComponentName('number-field');
14
14
 
@@ -27,9 +27,9 @@ export const NumberFieldClass = compose(
27
27
  :host {
28
28
  display: inline-block;
29
29
  max-width: 100%;
30
- min-width: 10em;
31
30
  padding: calc(var(${NumberFieldClass.cssVarList.inputOutlineWidth}) + var(${NumberFieldClass.cssVarList.inputOutlineOffset}));
32
31
  }
32
+ ${useHostExternalPadding(NumberFieldClass.cssVarList)}
33
33
  ${resetInputOverrides('vaadin-number-field', NumberFieldClass.cssVarList)}
34
34
  `,
35
35
  excludeAttrsSync: ['tabindex'],
@@ -93,7 +93,11 @@ export const PasscodeClass = compose(
93
93
  selector: TextFieldClass.componentName,
94
94
  property: textVars.inputValueTextColor
95
95
  },
96
- digitPadding: { ...digitField, property: textVars.inputPadding },
96
+ digitSize: [
97
+ { ...digitField, property: 'height' },
98
+ { ...digitField, property: 'width' }
99
+ ],
100
+ digitPadding: { ...digitField, property: textVars.inputHorizontalPadding },
97
101
  digitTextAlign: { ...digitField, property: textVars.inputTextAlign },
98
102
  digitCaretTextColor: { ...digitField, property: textVars.inputCaretTextColor },
99
103
  digitSpacing: { ...internalWrapper, property: 'gap' },
@@ -8,7 +8,7 @@ import {
8
8
  import { compose } from '../../helpers';
9
9
  import { getComponentName } from '../../helpers/componentHelpers';
10
10
  import passwordDraggableMixin from './passwordDraggableMixin';
11
- import { resetInputCursor } from '../../helpers/themeHelpers/resetHelpers';
11
+ import { resetInputCursor, useHostExternalPadding } from '../../helpers/themeHelpers/resetHelpers';
12
12
 
13
13
  export const componentName = getComponentName('password');
14
14
 
@@ -40,9 +40,10 @@ export const PasswordClass = compose(
40
40
  createStyleMixin({
41
41
  mappings: {
42
42
  hostWidth: { ...host, property: 'width' },
43
+ hostMinWidth: { ...host, property: 'min-width' },
43
44
  fontSize: [
44
- { property: 'font-size' },
45
- { ...host, property: 'font-size' }
45
+ {},
46
+ host,
46
47
  ],
47
48
  fontFamily: [
48
49
  label,
@@ -51,6 +52,10 @@ export const PasswordClass = compose(
51
52
  helperText
52
53
  ],
53
54
  inputHeight: { ...inputField, property: 'height' },
55
+ inputHorizontalPadding: [
56
+ { ...inputElement, property: 'padding-left' },
57
+ { ...inputElement, property: 'padding-right' }
58
+ ],
54
59
  inputBackgroundColor: { ...inputField, property: 'background-color' },
55
60
 
56
61
  inputBorderStyle: { ...inputField, property: 'border-style' },
@@ -75,7 +80,12 @@ export const PasswordClass = compose(
75
80
  ],
76
81
  inputPlaceholderTextColor: { ...inputElementPlaceholder, property: 'color' },
77
82
 
78
- revealButtonOffset: { ...revealButtonContainer, property: 'margin' }
83
+ revealButtonOffset: [
84
+ { ...revealButtonContainer, property: 'margin-right' },
85
+ { ...revealButtonContainer, property: 'margin-left' }
86
+ ],
87
+ revealButtonSize: { ...revealButtonContainer, property: 'font-size' },
88
+
79
89
  }
80
90
  }),
81
91
  draggableMixin,
@@ -89,17 +99,22 @@ export const PasswordClass = compose(
89
99
  style: () => `
90
100
  :host {
91
101
  display: inline-block;
92
- min-width: 10em;
93
102
  max-width: 100%;
94
- box-sizing: border-box;
95
- padding: calc(var(${PasswordClass.cssVarList.inputOutlineWidth}) + var(${PasswordClass.cssVarList.inputOutlineOffset}));
103
+ min-width: 10em;
96
104
  }
105
+ ${useHostExternalPadding(PasswordClass.cssVarList)}
106
+ ${resetInputCursor('vaadin-password-field')}
107
+
97
108
  vaadin-password-field {
98
109
  width: 100%;
99
110
  box-sizing: border-box;
100
111
  padding: 0;
101
112
  }
113
+ vaadin-password-field > input {
114
+ box-sizing: border-box;
115
+ }
102
116
  vaadin-password-field::part(input-field) {
117
+ box-sizing: border-box;
103
118
  padding: 0;
104
119
  }
105
120
  vaadin-password-field[focus-ring]::part(input-field) {
@@ -122,8 +137,6 @@ export const PasswordClass = compose(
122
137
  cursor: pointer;
123
138
  }
124
139
 
125
- ${resetInputCursor('vaadin-password-field')}
126
-
127
140
  [readonly] vaadin-password-field-button {
128
141
  pointer-events: none;
129
142
  }
@@ -10,7 +10,7 @@ import {
10
10
  import { TextFieldClass } from '../descope-text-field/TextFieldClass';
11
11
  import { ComboBoxClass } from '../descope-combo-box/ComboBoxClass';
12
12
  import CountryCodes from './CountryCodes';
13
- import { resetInputCursor, resetInputFieldInvalidBackgroundColor, resetInputFieldDefaultWidth } from '../../helpers/themeHelpers/resetHelpers';
13
+ import { resetInputCursor, resetInputFieldInvalidBackgroundColor, useHostExternalPadding } from '../../helpers/themeHelpers/resetHelpers';
14
14
 
15
15
  const textVars = TextFieldClass.cssVarList;
16
16
  const comboVars = ComboBoxClass.cssVarList;
@@ -84,8 +84,8 @@ export const PhoneFieldClass = compose(
84
84
  createStyleMixin({
85
85
  mappings: {
86
86
  fontSize: [
87
- { ...host, property: 'font-size' },
88
- { ...inputField, property: 'font-size' },
87
+ host,
88
+ inputField,
89
89
  {
90
90
  selector: TextFieldClass.componentName,
91
91
  property: TextFieldClass.cssVarList.fontSize
@@ -124,8 +124,6 @@ export const PhoneFieldClass = compose(
124
124
  ],
125
125
  inputBorderRadius: { ...inputField, property: 'border-radius' },
126
126
 
127
- inputHeight: { ...inputField, property: 'height' },
128
-
129
127
  countryCodeInputWidth: { ...countryCodeInput, property: comboVars.hostWidth },
130
128
  countryCodeDropdownWidth: {
131
129
  ...countryCodeInput,
@@ -170,8 +168,11 @@ export const PhoneFieldClass = compose(
170
168
  max-width: 100%;
171
169
  min-width: 15em;
172
170
  box-sizing: border-box;
173
- padding: calc(var(${PhoneFieldClass.cssVarList.inputOutlineWidth}) + var(${PhoneFieldClass.cssVarList.inputOutlineOffset}))
174
171
  }
172
+ ${useHostExternalPadding(PhoneFieldClass.cssVarList)}
173
+ ${resetInputCursor('vaadin-text-field')}
174
+ ${resetInputFieldInvalidBackgroundColor('vaadin-text-field')}
175
+
175
176
  div {
176
177
  display: inline-flex;
177
178
  }
@@ -210,7 +211,7 @@ export const PhoneFieldClass = compose(
210
211
  }
211
212
  descope-combo-box {
212
213
  flex-shrink: 0;
213
- height: 100%;
214
+ min-width: 5.75em;
214
215
  ${comboVars.inputOutlineWidth}: 0;
215
216
  ${comboVars.inputOutlineOffset}: 0;
216
217
  ${comboVars.inputBorderWidth}: 0;
@@ -218,9 +219,8 @@ export const PhoneFieldClass = compose(
218
219
  }
219
220
  descope-text-field {
220
221
  flex-grow: 1;
221
- min-height: 0;
222
- height: 100%;
223
222
  ${textVars.inputOutlineWidth}: 0;
223
+ ${comboVars.inputOutlineOffset}: 0;
224
224
  ${textVars.inputBorderWidth}: 0;
225
225
  ${textVars.inputBorderRadius}: 0;
226
226
  }
@@ -230,11 +230,6 @@ export const PhoneFieldClass = compose(
230
230
  vaadin-text-field::part(input-field)::after {
231
231
  border: none;
232
232
  }
233
-
234
- ${resetInputFieldDefaultWidth()}
235
- ${resetInputCursor('vaadin-text-field')}
236
- ${resetInputFieldInvalidBackgroundColor('vaadin-text-field')}
237
-
238
233
  `,
239
234
  excludeAttrsSync: ['tabindex'],
240
235
  componentName
@@ -32,7 +32,7 @@ export const TextClass = compose(
32
32
  createStyleMixin({
33
33
  mappings: {
34
34
  hostWidth: { selector: () => ':host', property: 'width' },
35
- fontSize: { property: 'font-size' },
35
+ fontSize: {},
36
36
  textColor: { property: 'color' },
37
37
  textLineHeight: { property: 'line-height' },
38
38
  textLetterSpacing: { property: 'letter-spacing' },
@@ -7,7 +7,7 @@ import {
7
7
  } from '../../mixins';
8
8
  import { compose } from '../../helpers';
9
9
  import { getComponentName } from '../../helpers/componentHelpers';
10
- import { resetInputContainer, resetInputCursor, resetInputField, resetInputPlaceholder } from '../../helpers/themeHelpers/resetHelpers';
10
+ import { resetInputContainer, resetInputCursor, resetInputField, resetInputPlaceholder, useHostExternalPadding } from '../../helpers/themeHelpers/resetHelpers';
11
11
 
12
12
  export const componentName = getComponentName('text-area');
13
13
 
@@ -35,15 +35,16 @@ export const TextAreaClass = compose(
35
35
  createStyleMixin({
36
36
  mappings: {
37
37
  hostWidth: { ...host, property: 'width' },
38
+ hostMinWidth: { ...host, property: 'min-width' },
38
39
  fontSize: [
39
- { ...host, property: 'font-size' },
40
- { ...textArea, property: 'font-size' }
40
+ host,
41
+ textArea,
41
42
  ],
42
43
  fontFamily: [
43
- { ...label, property: 'font-family' },
44
- { ...inputField, property: 'font-family' },
45
- { ...helperText, property: 'font-family' },
46
- { ...errorMessage, property: 'font-family' }
44
+ label,
45
+ inputField,
46
+ helperText,
47
+ errorMessage,
47
48
  ],
48
49
  labelTextColor: [
49
50
  { ...label, property: 'color' },
@@ -74,11 +75,9 @@ export const TextAreaClass = compose(
74
75
  style: () => `
75
76
  :host {
76
77
  display: inline-block;
77
- min-width: 10em;
78
78
  max-width: 100%;
79
- padding: calc(var(${TextAreaClass.cssVarList.inputOutlineWidth}) + var(${TextAreaClass.cssVarList.inputOutlineOffset}));
80
79
  }
81
-
80
+ ${useHostExternalPadding(TextAreaClass.cssVarList)}
82
81
  ${resetInputContainer('vaadin-text-area')}
83
82
  ${resetInputField('vaadin-text-area')}
84
83
  ${resetInputPlaceholder('vaadin-text-area', 'textarea')}
@@ -8,7 +8,7 @@ import {
8
8
  import textFieldMappings from './textFieldMappings';
9
9
  import { compose } from '../../helpers';
10
10
  import { getComponentName } from '../../helpers/componentHelpers';
11
- import { resetInputFieldDefaultWidth, resetInputOverrides } from '../../helpers/themeHelpers/resetHelpers';
11
+ import { resetInputOverrides, useHostExternalPadding } from '../../helpers/themeHelpers/resetHelpers';
12
12
 
13
13
  export const componentName = getComponentName('text-field');
14
14
 
@@ -50,10 +50,9 @@ export const TextFieldClass = compose(
50
50
  :host {
51
51
  display: inline-block;
52
52
  max-width: 100%;
53
- min-width: 10em;
54
53
  padding: calc(var(${TextFieldClass.cssVarList.inputOutlineWidth}) + var(${TextFieldClass.cssVarList.inputOutlineOffset}));
55
54
  }
56
- ${resetInputFieldDefaultWidth()}
55
+ ${useHostExternalPadding(TextFieldClass.cssVarList)}
57
56
  ${resetInputOverrides('vaadin-text-field', TextFieldClass.cssVarList)}
58
57
  `,
59
58
  excludeAttrsSync: ['tabindex'],
@@ -5,7 +5,6 @@ const {
5
5
  requiredIndicator,
6
6
  inputField,
7
7
  input,
8
- readOnlyInput,
9
8
  helperText,
10
9
  errorMessage
11
10
  } = {
@@ -15,7 +14,6 @@ const {
15
14
  placeholder: { selector: '> input:placeholder-shown' },
16
15
  inputField: { selector: '::part(input-field)' },
17
16
  input: { selector: 'input' },
18
- readOnlyInput: { selector: '[readonly]::part(input-field)::after' },
19
17
  helperText: { selector: '::part(helper-text)' },
20
18
  errorMessage: { selector: '::part(error-message)' }
21
19
  };
@@ -23,17 +21,18 @@ const {
23
21
  export default {
24
22
  // we apply font-size also on the host so we can set its width with em
25
23
  fontSize: [
26
- { property: 'font-size' },
27
- { ...host, property: 'font-size' }
24
+ {},
25
+ host,
28
26
  ],
29
27
  fontFamily: [
30
- { ...label, property: 'font-family' },
31
- { ...inputField, property: 'font-family' },
32
- { ...helperText, property: 'font-family' },
33
- { ...errorMessage, property: 'font-family' }
28
+ label,
29
+ inputField,
30
+ helperText,
31
+ errorMessage,
34
32
  ],
35
33
 
36
34
  hostWidth: { ...host, property: 'width' },
35
+ hostMinWidth: { ...host, property: 'min-width' },
37
36
 
38
37
  inputBackgroundColor: { ...inputField, property: 'background-color' },
39
38
 
@@ -47,22 +46,16 @@ export default {
47
46
 
48
47
  labelRequiredIndicator: { ...requiredIndicator, property: 'content' },
49
48
 
50
- inputBorderColor: [
51
- { ...inputField, property: 'border-color' },
52
- { ...readOnlyInput, property: 'border-color' }
53
- ],
54
- inputBorderWidth: [
55
- { ...inputField, property: 'border-width' },
56
- { ...readOnlyInput, property: 'border-width' }
57
- ],
58
- inputBorderStyle: [
59
- { ...inputField, property: 'border-style' },
60
- { ...readOnlyInput, property: 'border-style' }
61
- ],
49
+ inputBorderColor: { ...inputField, property: 'border-color' },
50
+ inputBorderWidth: { ...inputField, property: 'border-width' },
51
+ inputBorderStyle: { ...inputField, property: 'border-style' },
62
52
  inputBorderRadius: { ...inputField, property: 'border-radius' },
63
53
 
64
54
  inputHeight: { ...inputField, property: 'height' },
65
- inputPadding: { ...inputField, property: 'padding' },
55
+ inputHorizontalPadding: [
56
+ { ...input, property: 'padding-left' },
57
+ { ...input, property: 'padding-right' }
58
+ ],
66
59
 
67
60
  inputOutlineColor: { ...inputField, property: 'outline-color' },
68
61
  inputOutlineStyle: { ...inputField, property: 'outline-style' },
@@ -5,18 +5,34 @@ export const resetInputOverrides = (name, cssVarList) => `
5
5
  ${resetInputField(name)}
6
6
  ${resetInputAutoFill(name, cssVarList)}
7
7
  ${resetInputFieldInvalidBackgroundColor(name)}
8
+ ${resetInitialHeight(name)}
9
+ ${resetInputElement(name)}
10
+ ${resetInputFieldunderlayingBorder(name)}
11
+ `;
12
+
13
+ export const useHostExternalPadding = (cssVarList) => `
14
+ :host {
15
+ padding: calc(var(${cssVarList.inputOutlineWidth}) + var(${cssVarList.inputOutlineOffset}))
16
+ }
17
+ `;
18
+
19
+ export const resetInputFieldunderlayingBorder = (name) => `
20
+ ${name}::part(input-field)::after {
21
+ border: none;
22
+ }
23
+ `;
8
24
 
25
+ export const resetInitialHeight = (name) => `
9
26
  ${name}::before {
10
27
  height: unset;
11
28
  }
29
+ `;
12
30
 
31
+ export const resetInputElement = (name) => `
13
32
  ${name} > input {
14
- -webkit-mask-image: none;
15
- min-height: 0;
16
- }
17
-
18
- ${name}::part(input-field)::after {
19
- opacity: 0 !important;
33
+ -webkit-mask-image: none;
34
+ min-height: 0;
35
+ box-sizing: border-box;
20
36
  }
21
37
  `;
22
38
 
@@ -15,7 +15,8 @@ const booleanAttributesList = [
15
15
  'has-error-message',
16
16
  'focus-ring',
17
17
  'opened',
18
- 'active'
18
+ 'active',
19
+ 'password-visible'
19
20
  ]
20
21
 
21
22
  const isBooleanAttribute = (attr) => {
@@ -23,9 +23,12 @@ export const comboBox = {
23
23
  [vars.inputValueTextColor]: refs.valueTextColor,
24
24
  [vars.inputPlaceholderTextColor]: refs.placeholderTextColor,
25
25
  [vars.inputBackgroundColor]: refs.backgroundColor,
26
+ [vars.inputHorizontalPadding]: refs.horizontalPadding,
26
27
  [vars.inputHeight]: refs.inputHeight,
27
28
  [vars.inputDropdownButtonColor]: globalRefs.colors.surface.contrast,
28
29
  [vars.inputDropdownButtonCursor]: 'pointer',
30
+ [vars.inputDropdownButtonSize]: refs.toggleButtonSize,
31
+ [vars.inputDropdownButtonOffset]: globalRefs.spacing.xs,
29
32
 
30
33
  _readonly: {
31
34
  [vars.inputDropdownButtonCursor]: 'default'
@@ -5,6 +5,7 @@ const vars = EmailFieldClass.cssVarList;
5
5
 
6
6
  const emailField = {
7
7
  [vars.hostWidth]: refs.width,
8
+ [vars.hostMinWidth]: refs.minWidth,
8
9
  [vars.fontSize]: refs.fontSize,
9
10
  [vars.fontFamily]: refs.fontFamily,
10
11
  [vars.labelTextColor]: refs.labelTextColor,
@@ -20,6 +21,7 @@ const emailField = {
20
21
  [vars.inputOutlineColor]: refs.outlineColor,
21
22
  [vars.inputOutlineOffset]: refs.outlineOffset,
22
23
  [vars.inputBackgroundColor]: refs.backgroundColor,
24
+ [vars.inputHorizontalPadding]: refs.horizontalPadding,
23
25
  [vars.inputHeight]: refs.inputHeight
24
26
  };
25
27
 
@@ -21,7 +21,11 @@ const [theme, refs, vars] = createHelperVars({
21
21
  outlineColor: 'transparent',
22
22
  outlineOffset: '0px', // we need to keep the px unit even for 0 value, as this var is used for calc in different component classes
23
23
 
24
- inputHeight: '2em',
24
+ minWidth: '10em',
25
+ toggleButtonSize: '1.5em',
26
+ inputHeight: '3em',
27
+ horizontalPadding: '0.5em',
28
+ verticalPadding: '0.5em',
25
29
 
26
30
  backgroundColor: globalRefs.colors.surface.light,
27
31
 
@@ -5,6 +5,7 @@ const vars = NewPasswordClass.cssVarList;
5
5
 
6
6
  const newPassword = {
7
7
  [vars.hostWidth]: refs.width,
8
+ [vars.hostMinWidth]: refs.minWidth,
8
9
  [vars.fontSize]: refs.fontSize,
9
10
  [vars.fontFamily]: refs.fontFamily,
10
11
  [vars.spaceBetweenInputs]: '1em',
@@ -5,6 +5,7 @@ const vars = NumberFieldClass.cssVarList;
5
5
 
6
6
  const numberField = {
7
7
  [vars.hostWidth]: refs.width,
8
+ [vars.hostMinWidth]: refs.minWidth,
8
9
  [vars.fontSize]: refs.fontSize,
9
10
  [vars.fontFamily]: refs.fontFamily,
10
11
  [vars.labelTextColor]: refs.labelTextColor,
@@ -20,7 +21,8 @@ const numberField = {
20
21
  [vars.inputOutlineOffset]: refs.outlineOffset,
21
22
  [vars.inputBackgroundColor]: refs.backgroundColor,
22
23
  [vars.labelRequiredIndicator]: refs.requiredIndicator,
23
- [vars.inputHeight]: refs.inputHeight,
24
+ [vars.inputHorizontalPadding]: refs.horizontalPadding,
25
+ [vars.inputHeight]: refs.inputHeight
24
26
  };
25
27
 
26
28
  export default numberField;
@@ -19,6 +19,7 @@ const passcode = {
19
19
  [vars.digitOutlineColor]: 'transparent',
20
20
  [vars.digitOutlineWidth]: refs.outlineWidth,
21
21
  [vars.focusedDigitFieldOutlineColor]: refs.outlineColor,
22
+ [vars.digitSize]: refs.inputHeight,
22
23
 
23
24
  _hideCursor: {
24
25
  [vars.digitCaretTextColor]: 'transparent',
@@ -11,6 +11,7 @@ const password = {
11
11
  [vars.fontSize]: refs.fontSize,
12
12
  [vars.fontFamily]: refs.fontFamily,
13
13
  [vars.labelTextColor]: refs.labelTextColor,
14
+ [vars.inputHorizontalPadding]: refs.horizontalPadding,
14
15
  [vars.inputHeight]: refs.inputHeight,
15
16
  [vars.inputBackgroundColor]: refs.backgroundColor,
16
17
  [vars.labelRequiredIndicator]: refs.requiredIndicator,
@@ -24,7 +25,8 @@ const password = {
24
25
  [vars.inputOutlineStyle]: refs.outlineStyle,
25
26
  [vars.inputOutlineColor]: refs.outlineColor,
26
27
  [vars.inputOutlineOffset]: refs.outlineOffset,
27
- [vars.revealButtonOffset]: globalRefs.spacing.md
28
+ [vars.revealButtonOffset]: globalRefs.spacing.md,
29
+ [vars.revealButtonSize]: refs.toggleButtonSize
28
30
  };
29
31
 
30
32
  export default password;
@@ -20,7 +20,7 @@ const phoneField = {
20
20
  [vars.inputOutlineColor]: refs.outlineColor,
21
21
  [vars.inputOutlineOffset]: refs.outlineOffset,
22
22
  [vars.inputHeight]: refs.inputHeight,
23
- [vars.phoneInputWidth]: '10em',
23
+ [vars.phoneInputWidth]: refs.minWidth,
24
24
  [vars.countryCodeInputWidth]: '5em',
25
25
  [vars.countryCodeDropdownWidth]: '20em',
26
26