@descope/web-components-ui 1.0.131 → 1.0.132

Sign up to get free protection for your applications and to get access to all the features.
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