@descope/web-components-ui 1.0.131 → 1.0.133

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 (52) hide show
  1. package/dist/cjs/index.cjs.js +239 -194
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +239 -195
  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-link-index-js.js +1 -1
  15. package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js +1 -1
  16. package/dist/umd/descope-number-field-index-js.js +1 -1
  17. package/dist/umd/descope-passcode-index-js.js +1 -1
  18. package/dist/umd/descope-phone-field-index-js.js +1 -1
  19. package/dist/umd/descope-text-area-index-js.js +1 -1
  20. package/dist/umd/descope-text-field-index-js.js +1 -1
  21. package/dist/umd/descope-text-index-js.js +1 -1
  22. package/dist/umd/index.js +1 -1
  23. package/package.json +1 -1
  24. package/src/components/boolean-fields/descope-checkbox/CheckboxClass.js +11 -12
  25. package/src/components/boolean-fields/descope-switch-toggle/SwitchToggleClass.js +8 -9
  26. package/src/components/descope-button/ButtonClass.js +4 -5
  27. package/src/components/descope-combo-box/ComboBoxClass.js +24 -8
  28. package/src/components/descope-email-field/EmailFieldClass.js +2 -2
  29. package/src/components/descope-link/LinkClass.js +5 -4
  30. package/src/components/descope-new-password/NewPasswordClass.js +5 -5
  31. package/src/components/descope-new-password/descope-new-password-internal/NewPasswordInternal.js +0 -1
  32. package/src/components/descope-number-field/NumberFieldClass.js +2 -2
  33. package/src/components/descope-passcode/PasscodeClass.js +5 -1
  34. package/src/components/descope-password/PasswordClass.js +22 -9
  35. package/src/components/descope-phone-field/PhoneFieldClass.js +9 -14
  36. package/src/components/descope-text/TextClass.js +1 -1
  37. package/src/components/descope-text-area/TextAreaClass.js +9 -10
  38. package/src/components/descope-text-field/TextFieldClass.js +2 -3
  39. package/src/components/descope-text-field/textFieldMappings.js +14 -21
  40. package/src/helpers/themeHelpers/resetHelpers.js +22 -6
  41. package/src/mixins/normalizeBooleanAttributesMixin.js +2 -1
  42. package/src/theme/components/comboBox.js +3 -0
  43. package/src/theme/components/emailField.js +2 -0
  44. package/src/theme/components/inputWrapper.js +5 -1
  45. package/src/theme/components/link.js +0 -4
  46. package/src/theme/components/newPassword.js +1 -0
  47. package/src/theme/components/numberField.js +3 -1
  48. package/src/theme/components/passcode.js +1 -0
  49. package/src/theme/components/password.js +3 -1
  50. package/src/theme/components/phoneField.js +1 -1
  51. package/src/theme/components/textArea.js +1 -0
  52. package/src/theme/components/textField.js +2 -0
@@ -510,6 +510,107 @@ const globals = {
510
510
  };
511
511
  const vars$m = getThemeVars(globals);
512
512
 
513
+ const resetInputOverrides = (name, cssVarList) => `
514
+ ${resetInputContainer(name)}
515
+ ${resetInputCursor(name)}
516
+ ${resetInputPlaceholder(name)}
517
+ ${resetInputField(name)}
518
+ ${resetInputAutoFill(name, cssVarList)}
519
+ ${resetInputFieldInvalidBackgroundColor(name)}
520
+ ${resetInitialHeight(name)}
521
+ ${resetInputElement(name)}
522
+ ${resetInputFieldunderlayingBorder(name)}
523
+ `;
524
+
525
+ const useHostExternalPadding = (cssVarList) => `
526
+ :host {
527
+ padding: calc(var(${cssVarList.inputOutlineWidth}) + var(${cssVarList.inputOutlineOffset}))
528
+ }
529
+ `;
530
+
531
+ const resetInputFieldunderlayingBorder = (name) => `
532
+ ${name}::part(input-field)::after {
533
+ border: none;
534
+ }
535
+ `;
536
+
537
+ const resetInitialHeight = (name) => `
538
+ ${name}::before {
539
+ height: unset;
540
+ }
541
+ `;
542
+
543
+ const resetInputElement = (name) => `
544
+ ${name} > input {
545
+ -webkit-mask-image: none;
546
+ min-height: 0;
547
+ box-sizing: border-box;
548
+ }
549
+ `;
550
+
551
+ const resetInputContainer = (name) => `
552
+ ${name} {
553
+ margin: 0;
554
+ padding: 0;
555
+ width: 100%;
556
+ height: 100%;
557
+ box-sizing: border-box;
558
+ }
559
+ `;
560
+
561
+ const resetInputField = (name) => `
562
+ ${name}::part(input-field) {
563
+ overflow: hidden;
564
+ padding: 0;
565
+ box-shadow: none;
566
+ }
567
+ `;
568
+
569
+ const resetInputCursor = (name) => `
570
+ ${name} > label,
571
+ ${name}::part(label),
572
+ ${name}::part(required-indicator) {
573
+ cursor: pointer;
574
+ }
575
+ `;
576
+
577
+ const resetInputPlaceholder = (name, ele = 'input') => `
578
+ ${name}[disabled] > ${ele}:placeholder-shown,
579
+ ${name}[readonly] > ${ele}:placeholder-shown {
580
+ opacity: 1;
581
+ }
582
+ `;
583
+
584
+ const resetInputAutoFill = (name, cssVarList) => `
585
+ ${name} input:-webkit-autofill,
586
+ ${name} input:-webkit-autofill::first-line,
587
+ ${name} input:-webkit-autofill:hover,
588
+ ${name} input:-webkit-autofill:active,
589
+ ${name} input:-webkit-autofill:focus {
590
+ -webkit-text-fill-color: var(${cssVarList.inputValueTextColor});
591
+ box-shadow: 0 0 0 var(${cssVarList.inputHeight}) var(${cssVarList.inputBackgroundColor}) inset;
592
+ }
593
+ `;
594
+
595
+ const resetInputFieldDefaultWidth = () => `
596
+ :host {
597
+ --vaadin-field-default-width: auto;
598
+ box-sizing: border-box;
599
+ }
600
+ `;
601
+
602
+ const resetInputReadonlyStyle = (name) => `
603
+ ${name}::part(input-field)::after {
604
+ opacity: 0;
605
+ }
606
+ `;
607
+
608
+ const resetInputFieldInvalidBackgroundColor = (name) => `
609
+ ${name}::part(input-field)::after {
610
+ background: none;
611
+ }
612
+ `;
613
+
513
614
  const createCssVarFallback = (first, ...rest) =>
514
615
  `var(${first}${rest.length ? ` , ${createCssVarFallback(...rest)}` : ''})`;
515
616
 
@@ -859,7 +960,8 @@ const booleanAttributesList = [
859
960
  'has-error-message',
860
961
  'focus-ring',
861
962
  'opened',
862
- 'active'
963
+ 'active',
964
+ 'password-visible'
863
965
  ];
864
966
 
865
967
  const isBooleanAttribute = (attr) => {
@@ -1496,8 +1598,8 @@ const ButtonClass = compose(
1496
1598
  createStyleMixin({
1497
1599
  mappings: {
1498
1600
  hostWidth: { ...host$c, property: 'width' },
1499
- fontSize: { property: 'font-size' },
1500
- fontFamily: { property: 'font-family' },
1601
+ fontSize: {},
1602
+ fontFamily: {},
1501
1603
 
1502
1604
  cursor: {},
1503
1605
  backgroundColor: {},
@@ -1538,9 +1640,7 @@ const ButtonClass = compose(
1538
1640
  ${iconStyles}
1539
1641
  ${loadingIndicatorStyles}
1540
1642
  ${editorOverrides}
1541
- :host {
1542
- padding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}))
1543
- }
1643
+ ${useHostExternalPadding(ButtonClass.cssVarList)}
1544
1644
  `,
1545
1645
  excludeAttrsSync: ['tabindex'],
1546
1646
  componentName: componentName$o
@@ -1687,7 +1787,6 @@ const {
1687
1787
  requiredIndicator: requiredIndicator$7,
1688
1788
  inputField: inputField$4,
1689
1789
  input,
1690
- readOnlyInput,
1691
1790
  helperText: helperText$7,
1692
1791
  errorMessage: errorMessage$7
1693
1792
  } = {
@@ -1697,7 +1796,6 @@ const {
1697
1796
  placeholder: { selector: '> input:placeholder-shown' },
1698
1797
  inputField: { selector: '::part(input-field)' },
1699
1798
  input: { selector: 'input' },
1700
- readOnlyInput: { selector: '[readonly]::part(input-field)::after' },
1701
1799
  helperText: { selector: '::part(helper-text)' },
1702
1800
  errorMessage: { selector: '::part(error-message)' }
1703
1801
  };
@@ -1705,17 +1803,18 @@ const {
1705
1803
  var textFieldMappings = {
1706
1804
  // we apply font-size also on the host so we can set its width with em
1707
1805
  fontSize: [
1708
- { property: 'font-size' },
1709
- { ...host$b, property: 'font-size' }
1806
+ {},
1807
+ host$b,
1710
1808
  ],
1711
1809
  fontFamily: [
1712
- { ...label$8, property: 'font-family' },
1713
- { ...inputField$4, property: 'font-family' },
1714
- { ...helperText$7, property: 'font-family' },
1715
- { ...errorMessage$7, property: 'font-family' }
1810
+ label$8,
1811
+ inputField$4,
1812
+ helperText$7,
1813
+ errorMessage$7,
1716
1814
  ],
1717
1815
 
1718
1816
  hostWidth: { ...host$b, property: 'width' },
1817
+ hostMinWidth: { ...host$b, property: 'min-width' },
1719
1818
 
1720
1819
  inputBackgroundColor: { ...inputField$4, property: 'background-color' },
1721
1820
 
@@ -1729,22 +1828,16 @@ var textFieldMappings = {
1729
1828
 
1730
1829
  labelRequiredIndicator: { ...requiredIndicator$7, property: 'content' },
1731
1830
 
1732
- inputBorderColor: [
1733
- { ...inputField$4, property: 'border-color' },
1734
- { ...readOnlyInput, property: 'border-color' }
1735
- ],
1736
- inputBorderWidth: [
1737
- { ...inputField$4, property: 'border-width' },
1738
- { ...readOnlyInput, property: 'border-width' }
1739
- ],
1740
- inputBorderStyle: [
1741
- { ...inputField$4, property: 'border-style' },
1742
- { ...readOnlyInput, property: 'border-style' }
1743
- ],
1831
+ inputBorderColor: { ...inputField$4, property: 'border-color' },
1832
+ inputBorderWidth: { ...inputField$4, property: 'border-width' },
1833
+ inputBorderStyle: { ...inputField$4, property: 'border-style' },
1744
1834
  inputBorderRadius: { ...inputField$4, property: 'border-radius' },
1745
1835
 
1746
1836
  inputHeight: { ...inputField$4, property: 'height' },
1747
- inputPadding: { ...inputField$4, property: 'padding' },
1837
+ inputHorizontalPadding: [
1838
+ { ...input, property: 'padding-left' },
1839
+ { ...input, property: 'padding-right' }
1840
+ ],
1748
1841
 
1749
1842
  inputOutlineColor: { ...inputField$4, property: 'outline-color' },
1750
1843
  inputOutlineStyle: { ...inputField$4, property: 'outline-style' },
@@ -1756,91 +1849,6 @@ var textFieldMappings = {
1756
1849
  inputPlaceholderColor: { ...placeholder$2, property: 'color' }
1757
1850
  };
1758
1851
 
1759
- const resetInputOverrides = (name, cssVarList) => `
1760
- ${resetInputContainer(name)}
1761
- ${resetInputCursor(name)}
1762
- ${resetInputPlaceholder(name)}
1763
- ${resetInputField(name)}
1764
- ${resetInputAutoFill(name, cssVarList)}
1765
- ${resetInputFieldInvalidBackgroundColor(name)}
1766
-
1767
- ${name}::before {
1768
- height: unset;
1769
- }
1770
-
1771
- ${name} > input {
1772
- -webkit-mask-image: none;
1773
- min-height: 0;
1774
- }
1775
-
1776
- ${name}::part(input-field)::after {
1777
- opacity: 0 !important;
1778
- }
1779
- `;
1780
-
1781
- const resetInputContainer = (name) => `
1782
- ${name} {
1783
- margin: 0;
1784
- padding: 0;
1785
- width: 100%;
1786
- height: 100%;
1787
- box-sizing: border-box;
1788
- }
1789
- `;
1790
-
1791
- const resetInputField = (name) => `
1792
- ${name}::part(input-field) {
1793
- overflow: hidden;
1794
- padding: 0;
1795
- box-shadow: none;
1796
- }
1797
- `;
1798
-
1799
- const resetInputCursor = (name) => `
1800
- ${name} > label,
1801
- ${name}::part(label),
1802
- ${name}::part(required-indicator) {
1803
- cursor: pointer;
1804
- }
1805
- `;
1806
-
1807
- const resetInputPlaceholder = (name, ele = 'input') => `
1808
- ${name}[disabled] > ${ele}:placeholder-shown,
1809
- ${name}[readonly] > ${ele}:placeholder-shown {
1810
- opacity: 1;
1811
- }
1812
- `;
1813
-
1814
- const resetInputAutoFill = (name, cssVarList) => `
1815
- ${name} input:-webkit-autofill,
1816
- ${name} input:-webkit-autofill::first-line,
1817
- ${name} input:-webkit-autofill:hover,
1818
- ${name} input:-webkit-autofill:active,
1819
- ${name} input:-webkit-autofill:focus {
1820
- -webkit-text-fill-color: var(${cssVarList.inputValueTextColor});
1821
- box-shadow: 0 0 0 var(${cssVarList.inputHeight}) var(${cssVarList.inputBackgroundColor}) inset;
1822
- }
1823
- `;
1824
-
1825
- const resetInputFieldDefaultWidth = () => `
1826
- :host {
1827
- --vaadin-field-default-width: auto;
1828
- box-sizing: border-box;
1829
- }
1830
- `;
1831
-
1832
- const resetInputReadonlyStyle = (name) => `
1833
- ${name}::part(input-field)::after {
1834
- opacity: 0;
1835
- }
1836
- `;
1837
-
1838
- const resetInputFieldInvalidBackgroundColor = (name) => `
1839
- ${name}::part(input-field)::after {
1840
- background: none;
1841
- }
1842
- `;
1843
-
1844
1852
  const componentName$n = getComponentName('text-field');
1845
1853
 
1846
1854
  const observedAttrs = ['type'];
@@ -1881,10 +1889,9 @@ const TextFieldClass = compose(
1881
1889
  :host {
1882
1890
  display: inline-block;
1883
1891
  max-width: 100%;
1884
- min-width: 10em;
1885
1892
  padding: calc(var(${TextFieldClass.cssVarList.inputOutlineWidth}) + var(${TextFieldClass.cssVarList.inputOutlineOffset}));
1886
1893
  }
1887
- ${resetInputFieldDefaultWidth()}
1894
+ ${useHostExternalPadding(TextFieldClass.cssVarList)}
1888
1895
  ${resetInputOverrides('vaadin-text-field', TextFieldClass.cssVarList)}
1889
1896
  `,
1890
1897
  excludeAttrsSync: ['tabindex'],
@@ -1910,7 +1917,11 @@ const [theme$1, refs, vars$k] = createHelperVars({
1910
1917
  outlineColor: 'transparent',
1911
1918
  outlineOffset: '0px', // we need to keep the px unit even for 0 value, as this var is used for calc in different component classes
1912
1919
 
1913
- inputHeight: '2em',
1920
+ minWidth: '10em',
1921
+ toggleButtonSize: '1.5em',
1922
+ inputHeight: '3em',
1923
+ horizontalPadding: '0.5em',
1924
+ verticalPadding: '0.5em',
1914
1925
 
1915
1926
  backgroundColor: globalRefs$b.colors.surface.light,
1916
1927
 
@@ -1962,6 +1973,7 @@ const vars$j = TextFieldClass.cssVarList;
1962
1973
 
1963
1974
  const textField = ({
1964
1975
  [vars$j.hostWidth]: refs.width,
1976
+ [vars$j.hostMinWidth]: refs.minWidth,
1965
1977
  [vars$j.fontSize]: refs.fontSize,
1966
1978
  [vars$j.fontFamily]: refs.fontFamily,
1967
1979
  [vars$j.labelTextColor]: refs.labelTextColor,
@@ -1978,6 +1990,7 @@ const textField = ({
1978
1990
  [vars$j.inputOutlineOffset]: refs.outlineOffset,
1979
1991
  [vars$j.inputBackgroundColor]: refs.backgroundColor,
1980
1992
  [vars$j.inputHeight]: refs.inputHeight,
1993
+ [vars$j.inputHorizontalPadding]: refs.horizontalPadding
1981
1994
  });
1982
1995
 
1983
1996
  var textField$1 = /*#__PURE__*/Object.freeze({
@@ -2025,7 +2038,7 @@ const componentName$l = getComponentName('password');
2025
2038
  const {
2026
2039
  host: host$a,
2027
2040
  inputField: inputField$3,
2028
- inputElement,
2041
+ inputElement: inputElement$1,
2029
2042
  inputElementPlaceholder,
2030
2043
  revealButtonContainer,
2031
2044
  revealButtonIcon,
@@ -2050,9 +2063,10 @@ const PasswordClass = compose(
2050
2063
  createStyleMixin({
2051
2064
  mappings: {
2052
2065
  hostWidth: { ...host$a, property: 'width' },
2066
+ hostMinWidth: { ...host$a, property: 'min-width' },
2053
2067
  fontSize: [
2054
- { property: 'font-size' },
2055
- { ...host$a, property: 'font-size' }
2068
+ {},
2069
+ host$a,
2056
2070
  ],
2057
2071
  fontFamily: [
2058
2072
  label$7,
@@ -2061,6 +2075,10 @@ const PasswordClass = compose(
2061
2075
  helperText$6
2062
2076
  ],
2063
2077
  inputHeight: { ...inputField$3, property: 'height' },
2078
+ inputHorizontalPadding: [
2079
+ { ...inputElement$1, property: 'padding-left' },
2080
+ { ...inputElement$1, property: 'padding-right' }
2081
+ ],
2064
2082
  inputBackgroundColor: { ...inputField$3, property: 'background-color' },
2065
2083
 
2066
2084
  inputBorderStyle: { ...inputField$3, property: 'border-style' },
@@ -2080,12 +2098,17 @@ const PasswordClass = compose(
2080
2098
  labelRequiredIndicator: { ...requiredIndicator$6, property: 'content' },
2081
2099
 
2082
2100
  inputValueTextColor: [
2083
- { ...inputElement, property: 'color' },
2101
+ { ...inputElement$1, property: 'color' },
2084
2102
  { ...revealButtonIcon, property: 'color' }
2085
2103
  ],
2086
2104
  inputPlaceholderTextColor: { ...inputElementPlaceholder, property: 'color' },
2087
2105
 
2088
- revealButtonOffset: { ...revealButtonContainer, property: 'margin' }
2106
+ revealButtonOffset: [
2107
+ { ...revealButtonContainer, property: 'margin-right' },
2108
+ { ...revealButtonContainer, property: 'margin-left' }
2109
+ ],
2110
+ revealButtonSize: { ...revealButtonContainer, property: 'font-size' },
2111
+
2089
2112
  }
2090
2113
  }),
2091
2114
  draggableMixin,
@@ -2099,17 +2122,22 @@ const PasswordClass = compose(
2099
2122
  style: () => `
2100
2123
  :host {
2101
2124
  display: inline-block;
2102
- min-width: 10em;
2103
2125
  max-width: 100%;
2104
- box-sizing: border-box;
2105
- padding: calc(var(${PasswordClass.cssVarList.inputOutlineWidth}) + var(${PasswordClass.cssVarList.inputOutlineOffset}));
2126
+ min-width: 10em;
2106
2127
  }
2128
+ ${useHostExternalPadding(PasswordClass.cssVarList)}
2129
+ ${resetInputCursor('vaadin-password-field')}
2130
+
2107
2131
  vaadin-password-field {
2108
2132
  width: 100%;
2109
2133
  box-sizing: border-box;
2110
2134
  padding: 0;
2111
2135
  }
2136
+ vaadin-password-field > input {
2137
+ box-sizing: border-box;
2138
+ }
2112
2139
  vaadin-password-field::part(input-field) {
2140
+ box-sizing: border-box;
2113
2141
  padding: 0;
2114
2142
  }
2115
2143
  vaadin-password-field[focus-ring]::part(input-field) {
@@ -2132,8 +2160,6 @@ const PasswordClass = compose(
2132
2160
  cursor: pointer;
2133
2161
  }
2134
2162
 
2135
- ${resetInputCursor('vaadin-password-field')}
2136
-
2137
2163
  [readonly] vaadin-password-field-button {
2138
2164
  pointer-events: none;
2139
2165
  }
@@ -2155,6 +2181,7 @@ const password = {
2155
2181
  [vars$i.fontSize]: refs.fontSize,
2156
2182
  [vars$i.fontFamily]: refs.fontFamily,
2157
2183
  [vars$i.labelTextColor]: refs.labelTextColor,
2184
+ [vars$i.inputHorizontalPadding]: refs.horizontalPadding,
2158
2185
  [vars$i.inputHeight]: refs.inputHeight,
2159
2186
  [vars$i.inputBackgroundColor]: refs.backgroundColor,
2160
2187
  [vars$i.labelRequiredIndicator]: refs.requiredIndicator,
@@ -2168,7 +2195,8 @@ const password = {
2168
2195
  [vars$i.inputOutlineStyle]: refs.outlineStyle,
2169
2196
  [vars$i.inputOutlineColor]: refs.outlineColor,
2170
2197
  [vars$i.inputOutlineOffset]: refs.outlineOffset,
2171
- [vars$i.revealButtonOffset]: globalRefs$a.spacing.md
2198
+ [vars$i.revealButtonOffset]: globalRefs$a.spacing.md,
2199
+ [vars$i.revealButtonSize]: refs.toggleButtonSize
2172
2200
  };
2173
2201
 
2174
2202
  var password$1 = /*#__PURE__*/Object.freeze({
@@ -2194,9 +2222,9 @@ const NumberFieldClass = compose(
2194
2222
  :host {
2195
2223
  display: inline-block;
2196
2224
  max-width: 100%;
2197
- min-width: 10em;
2198
2225
  padding: calc(var(${NumberFieldClass.cssVarList.inputOutlineWidth}) + var(${NumberFieldClass.cssVarList.inputOutlineOffset}));
2199
2226
  }
2227
+ ${useHostExternalPadding(NumberFieldClass.cssVarList)}
2200
2228
  ${resetInputOverrides('vaadin-number-field', NumberFieldClass.cssVarList)}
2201
2229
  `,
2202
2230
  excludeAttrsSync: ['tabindex'],
@@ -2208,6 +2236,7 @@ const vars$h = NumberFieldClass.cssVarList;
2208
2236
 
2209
2237
  const numberField = {
2210
2238
  [vars$h.hostWidth]: refs.width,
2239
+ [vars$h.hostMinWidth]: refs.minWidth,
2211
2240
  [vars$h.fontSize]: refs.fontSize,
2212
2241
  [vars$h.fontFamily]: refs.fontFamily,
2213
2242
  [vars$h.labelTextColor]: refs.labelTextColor,
@@ -2223,7 +2252,8 @@ const numberField = {
2223
2252
  [vars$h.inputOutlineOffset]: refs.outlineOffset,
2224
2253
  [vars$h.inputBackgroundColor]: refs.backgroundColor,
2225
2254
  [vars$h.labelRequiredIndicator]: refs.requiredIndicator,
2226
- [vars$h.inputHeight]: refs.inputHeight,
2255
+ [vars$h.inputHorizontalPadding]: refs.horizontalPadding,
2256
+ [vars$h.inputHeight]: refs.inputHeight
2227
2257
  };
2228
2258
 
2229
2259
  var numberField$1 = /*#__PURE__*/Object.freeze({
@@ -2249,9 +2279,9 @@ const EmailFieldClass = compose(
2249
2279
  :host {
2250
2280
  display: inline-block;
2251
2281
  max-width: 100%;
2252
- min-width: 10em;
2253
2282
  padding: calc(var(${EmailFieldClass.cssVarList.inputOutlineWidth}) + var(${EmailFieldClass.cssVarList.inputOutlineOffset}))
2254
2283
  }
2284
+ ${useHostExternalPadding(EmailFieldClass.cssVarList)}
2255
2285
  ${resetInputOverrides('vaadin-email-field', EmailFieldClass.cssVarList)}
2256
2286
  `,
2257
2287
  excludeAttrsSync: ['tabindex'],
@@ -2263,6 +2293,7 @@ const vars$g = EmailFieldClass.cssVarList;
2263
2293
 
2264
2294
  const emailField = {
2265
2295
  [vars$g.hostWidth]: refs.width,
2296
+ [vars$g.hostMinWidth]: refs.minWidth,
2266
2297
  [vars$g.fontSize]: refs.fontSize,
2267
2298
  [vars$g.fontFamily]: refs.fontFamily,
2268
2299
  [vars$g.labelTextColor]: refs.labelTextColor,
@@ -2278,6 +2309,7 @@ const emailField = {
2278
2309
  [vars$g.inputOutlineColor]: refs.outlineColor,
2279
2310
  [vars$g.inputOutlineOffset]: refs.outlineOffset,
2280
2311
  [vars$g.inputBackgroundColor]: refs.backgroundColor,
2312
+ [vars$g.inputHorizontalPadding]: refs.horizontalPadding,
2281
2313
  [vars$g.inputHeight]: refs.inputHeight
2282
2314
  };
2283
2315
 
@@ -2313,15 +2345,16 @@ const TextAreaClass = compose(
2313
2345
  createStyleMixin({
2314
2346
  mappings: {
2315
2347
  hostWidth: { ...host$9, property: 'width' },
2348
+ hostMinWidth: { ...host$9, property: 'min-width' },
2316
2349
  fontSize: [
2317
- { ...host$9, property: 'font-size' },
2318
- { ...textArea$2, property: 'font-size' }
2350
+ host$9,
2351
+ textArea$2,
2319
2352
  ],
2320
2353
  fontFamily: [
2321
- { ...label$6, property: 'font-family' },
2322
- { ...inputField$2, property: 'font-family' },
2323
- { ...helperText$5, property: 'font-family' },
2324
- { ...errorMessage$5, property: 'font-family' }
2354
+ label$6,
2355
+ inputField$2,
2356
+ helperText$5,
2357
+ errorMessage$5,
2325
2358
  ],
2326
2359
  labelTextColor: [
2327
2360
  { ...label$6, property: 'color' },
@@ -2352,11 +2385,9 @@ const TextAreaClass = compose(
2352
2385
  style: () => `
2353
2386
  :host {
2354
2387
  display: inline-block;
2355
- min-width: 10em;
2356
2388
  max-width: 100%;
2357
- padding: calc(var(${TextAreaClass.cssVarList.inputOutlineWidth}) + var(${TextAreaClass.cssVarList.inputOutlineOffset}));
2358
2389
  }
2359
-
2390
+ ${useHostExternalPadding(TextAreaClass.cssVarList)}
2360
2391
  ${resetInputContainer('vaadin-text-area')}
2361
2392
  ${resetInputField('vaadin-text-area')}
2362
2393
  ${resetInputPlaceholder('vaadin-text-area', 'textarea')}
@@ -2372,6 +2403,7 @@ const vars$f = TextAreaClass.cssVarList;
2372
2403
 
2373
2404
  const textArea = {
2374
2405
  [vars$f.hostWidth]: refs.width,
2406
+ [vars$f.hostMinWidth]: refs.minWidth,
2375
2407
  [vars$f.fontSize]: '14px',
2376
2408
  [vars$f.fontFamily]: refs.fontFamily,
2377
2409
  [vars$f.labelTextColor]: refs.labelTextColor,
@@ -2547,16 +2579,16 @@ const CheckboxClass = compose(
2547
2579
  hostWidth: { ...host$8, property: 'width' },
2548
2580
 
2549
2581
  fontSize: [
2550
- { ...host$8, property: 'font-size' },
2551
- { ...checkboxElement, property: 'font-size' },
2552
- { ...label$5, property: 'font-size' },
2553
- { ...checkboxHiddenLabel$1, property: 'font-size' }
2582
+ host$8,
2583
+ checkboxElement,
2584
+ label$5,
2585
+ checkboxHiddenLabel$1,
2554
2586
  ],
2555
2587
  fontFamily: [
2556
- { ...label$5, property: 'font-family' },
2557
- { ...checkboxHiddenLabel$1, property: 'font-family' },
2558
- { ...helperText$4, property: 'font-family' },
2559
- { ...errorMessage$4, property: 'font-family' }
2588
+ label$5,
2589
+ checkboxHiddenLabel$1,
2590
+ helperText$4,
2591
+ errorMessage$4,
2560
2592
  ],
2561
2593
 
2562
2594
  labelTextColor: [
@@ -2600,10 +2632,8 @@ const CheckboxClass = compose(
2600
2632
  slots: [],
2601
2633
  wrappedEleName: 'vaadin-text-field',
2602
2634
  style: () => `
2603
- ${commonStyles}
2604
- vaadin-text-field {
2605
- padding: calc(var(${CheckboxClass.cssVarList.inputOutlineWidth}) + var(${CheckboxClass.cssVarList.inputOutlineOffset}));
2606
- }
2635
+ ${commonStyles}
2636
+ ${useHostExternalPadding(CheckboxClass.cssVarList)}
2607
2637
  `,
2608
2638
  excludeAttrsSync: ['tabindex'],
2609
2639
  componentName: componentName$g
@@ -2674,14 +2704,14 @@ const SwitchToggleClass = compose(
2674
2704
  mappings: {
2675
2705
  hostWidth: { ...host$7, property: 'width' },
2676
2706
  fontSize: [
2677
- { ...component, property: 'font-size' },
2678
- { ...label$4, property: 'font-size' },
2679
- { ...checkboxHiddenLabel, property: 'font-size' },
2707
+ component,
2708
+ label$4,
2709
+ checkboxHiddenLabel,
2680
2710
  ],
2681
2711
  fontFamily: [
2682
- { ...label$4, property: 'font-family' },
2683
- { ...helperText$3, property: 'font-family' },
2684
- { ...errorMessage$3, property: 'font-family' }
2712
+ label$4,
2713
+ helperText$3,
2714
+ errorMessage$3,
2685
2715
  ],
2686
2716
  trackBorderWidth: { ...track, property: 'border-width' },
2687
2717
  trackBorderStyle: { ...track, property: 'border-style' },
@@ -2740,9 +2770,7 @@ const SwitchToggleClass = compose(
2740
2770
  wrappedEleName: 'vaadin-text-field',
2741
2771
  style: () => `
2742
2772
  ${commonStyles}
2743
- :host {
2744
- padding: calc(var(${SwitchToggleClass.cssVarList.inputOutlineWidth}) + var(${SwitchToggleClass.cssVarList.inputOutlineOffset}));
2745
- }
2773
+ ${useHostExternalPadding(SwitchToggleClass.cssVarList)}
2746
2774
  vaadin-text-field::part(label) {
2747
2775
  left: calc(var(${SwitchToggleClass.cssVarList.trackWidth}) + var(${SwitchToggleClass.cssVarList.trackBorderWidth}) * 2);
2748
2776
  }
@@ -3077,7 +3105,7 @@ const TextClass = compose(
3077
3105
  createStyleMixin({
3078
3106
  mappings: {
3079
3107
  hostWidth: { selector: () => ':host', property: 'width' },
3080
- fontSize: { property: 'font-size' },
3108
+ fontSize: {},
3081
3109
  textColor: { property: 'color' },
3082
3110
  textLineHeight: { property: 'line-height' },
3083
3111
  textLetterSpacing: { property: 'letter-spacing' },
@@ -3198,6 +3226,10 @@ class RawLink extends createBaseClass({ componentName: componentName$b, baseSele
3198
3226
  }
3199
3227
  :host a {
3200
3228
  display: inline;
3229
+ text-decoration: none;
3230
+ }
3231
+ :host a:hover {
3232
+ text-decoration: underline;
3201
3233
  }
3202
3234
  </style>
3203
3235
  <div>
@@ -3241,10 +3273,7 @@ const LinkClass = compose(
3241
3273
  { ...text$1, property: TextClass.cssVarList.textColor }
3242
3274
  ],
3243
3275
  cursor: anchor,
3244
- textUnderlineWidth: { ...anchor, property: 'border-bottom-width' },
3245
- textUnderlineStyle: { ...anchor, property: 'border-bottom-style' },
3246
- textUnderlineColor: { ...anchor, property: 'border-bottom-color' }
3247
- },
3276
+ }
3248
3277
  }),
3249
3278
  draggableMixin,
3250
3279
  componentNameValidationMixin
@@ -3275,10 +3304,6 @@ const link = {
3275
3304
  [vars$9.hostWidth]: '100%'
3276
3305
  },
3277
3306
 
3278
- _hover: {
3279
- [vars$9.textUnderlineColor]: 'currentColor'
3280
- },
3281
-
3282
3307
  mode: {
3283
3308
  primary: {
3284
3309
  [vars$9.textColor]: globalRefs$4.colors.primary.main,
@@ -3538,7 +3563,11 @@ const PasscodeClass = compose(
3538
3563
  selector: TextFieldClass.componentName,
3539
3564
  property: textVars$1.inputValueTextColor
3540
3565
  },
3541
- digitPadding: { ...digitField, property: textVars$1.inputPadding },
3566
+ digitSize: [
3567
+ { ...digitField, property: 'height' },
3568
+ { ...digitField, property: 'width' }
3569
+ ],
3570
+ digitPadding: { ...digitField, property: textVars$1.inputHorizontalPadding },
3542
3571
  digitTextAlign: { ...digitField, property: textVars$1.inputTextAlign },
3543
3572
  digitCaretTextColor: { ...digitField, property: textVars$1.inputCaretTextColor },
3544
3573
  digitSpacing: { ...internalWrapper, property: 'gap' },
@@ -3642,6 +3671,7 @@ const passcode = {
3642
3671
  [vars$7.digitOutlineColor]: 'transparent',
3643
3672
  [vars$7.digitOutlineWidth]: refs.outlineWidth,
3644
3673
  [vars$7.focusedDigitFieldOutlineColor]: refs.outlineColor,
3674
+ [vars$7.digitSize]: refs.inputHeight,
3645
3675
 
3646
3676
  _hideCursor: {
3647
3677
  [vars$7.digitCaretTextColor]: 'transparent',
@@ -3917,6 +3947,7 @@ const ComboBoxMixin = (superclass) => class ComboBoxMixinClass extends superclas
3917
3947
  const {
3918
3948
  host: host$2,
3919
3949
  inputField: inputField$1,
3950
+ inputElement,
3920
3951
  placeholder,
3921
3952
  toggle,
3922
3953
  label: label$2,
@@ -3926,6 +3957,7 @@ const {
3926
3957
  } = {
3927
3958
  host: { selector: () => ':host' },
3928
3959
  inputField: { selector: '::part(input-field)' },
3960
+ inputElement: { selector: 'input' },
3929
3961
  placeholder: { selector: '> input:placeholder-shown' },
3930
3962
  toggle: { selector: '::part(toggle-button)' },
3931
3963
  label: { selector: '::part(label)' },
@@ -3945,8 +3977,8 @@ const ComboBoxClass = compose(
3945
3977
  hostWidth: { ...host$2, property: 'width' },
3946
3978
  // we apply font-size also on the host so we can set its width with em
3947
3979
  fontSize: [
3948
- { property: 'font-size' },
3949
- { ...host$2, property: 'font-size' }
3980
+ {},
3981
+ host$2,
3950
3982
  ],
3951
3983
  fontFamily: [
3952
3984
  label$2,
@@ -3970,10 +4002,19 @@ const ComboBoxClass = compose(
3970
4002
  inputPlaceholderTextColor: { ...placeholder, property: 'color' },
3971
4003
  inputDropdownButtonCursor: { ...toggle, property: 'cursor' },
3972
4004
  inputDropdownButtonColor: { ...toggle, property: 'color' },
4005
+ inputDropdownButtonSize: { ...toggle, property: 'font-size' },
4006
+ inputDropdownButtonOffset: [
4007
+ { ...toggle, property: 'margin-right' },
4008
+ { ...toggle, property: 'margin-left' },
4009
+ ],
3973
4010
  inputOutlineColor: { ...inputField$1, property: 'outline-color' },
3974
4011
  inputOutlineWidth: { ...inputField$1, property: 'outline-width' },
3975
4012
  inputOutlineStyle: { ...inputField$1, property: 'outline-style' },
3976
4013
  inputOutlineOffset: { ...inputField$1, property: 'outline-offset' },
4014
+ inputHorizontalPadding: [
4015
+ { ...inputElement, property: 'padding-left' },
4016
+ { ...inputElement, property: 'padding-right' }
4017
+ ],
3977
4018
 
3978
4019
  // we need to use the variables from the portal mixin
3979
4020
  // so we need to use an arrow function on the selector
@@ -4011,24 +4052,29 @@ const ComboBoxClass = compose(
4011
4052
  display: inline-flex;
4012
4053
  box-sizing: border-box;
4013
4054
  -webkit-mask-image: none;
4014
- padding: calc(var(${ComboBoxClass.cssVarList.inputOutlineWidth}) + var(${ComboBoxClass.cssVarList.inputOutlineOffset}))
4015
4055
  }
4056
+ ${useHostExternalPadding(ComboBoxClass.cssVarList)}
4057
+ ${resetInputReadonlyStyle('vaadin-combo-box')}
4058
+ ${resetInputPlaceholder('vaadin-combo-box')}
4059
+ ${resetInputCursor('vaadin-combo-box')}
4060
+
4016
4061
  vaadin-combo-box {
4017
4062
  padding: 0;
4018
4063
  width: 100%;
4019
4064
  }
4065
+ vaadin-combo-box::before {
4066
+ height: initial;
4067
+ }
4020
4068
  vaadin-combo-box [slot="input"] {
4021
4069
  -webkit-mask-image: none;
4022
4070
  min-height: 0;
4071
+ box-sizing: border-box;
4023
4072
  }
4024
4073
 
4025
4074
  vaadin-combo-box::part(input-field) {
4026
4075
  padding: 0;
4076
+ box-shadow: none;
4027
4077
  }
4028
-
4029
- ${resetInputReadonlyStyle('vaadin-combo-box')}
4030
- ${resetInputPlaceholder('vaadin-combo-box')}
4031
- ${resetInputCursor('vaadin-combo-box')}
4032
4078
  `,
4033
4079
  // Note: we exclude `size` to avoid overriding Vaadin's ComboBox property
4034
4080
  // with the same name. Including it will cause Vaadin to calculate NaN size,
@@ -4060,9 +4106,12 @@ const comboBox = {
4060
4106
  [vars$4.inputValueTextColor]: refs.valueTextColor,
4061
4107
  [vars$4.inputPlaceholderTextColor]: refs.placeholderTextColor,
4062
4108
  [vars$4.inputBackgroundColor]: refs.backgroundColor,
4109
+ [vars$4.inputHorizontalPadding]: refs.horizontalPadding,
4063
4110
  [vars$4.inputHeight]: refs.inputHeight,
4064
4111
  [vars$4.inputDropdownButtonColor]: globalRefs.colors.surface.contrast,
4065
4112
  [vars$4.inputDropdownButtonCursor]: 'pointer',
4113
+ [vars$4.inputDropdownButtonSize]: refs.toggleButtonSize,
4114
+ [vars$4.inputDropdownButtonOffset]: globalRefs.spacing.xs,
4066
4115
 
4067
4116
  _readonly: {
4068
4117
  [vars$4.inputDropdownButtonCursor]: 'default'
@@ -5426,8 +5475,8 @@ const PhoneFieldClass = compose(
5426
5475
  createStyleMixin({
5427
5476
  mappings: {
5428
5477
  fontSize: [
5429
- { ...host$1, property: 'font-size' },
5430
- { ...inputField, property: 'font-size' },
5478
+ host$1,
5479
+ inputField,
5431
5480
  {
5432
5481
  selector: TextFieldClass.componentName,
5433
5482
  property: TextFieldClass.cssVarList.fontSize
@@ -5466,8 +5515,6 @@ const PhoneFieldClass = compose(
5466
5515
  ],
5467
5516
  inputBorderRadius: { ...inputField, property: 'border-radius' },
5468
5517
 
5469
- inputHeight: { ...inputField, property: 'height' },
5470
-
5471
5518
  countryCodeInputWidth: { ...countryCodeInput, property: comboVars.hostWidth },
5472
5519
  countryCodeDropdownWidth: {
5473
5520
  ...countryCodeInput,
@@ -5512,8 +5559,11 @@ const PhoneFieldClass = compose(
5512
5559
  max-width: 100%;
5513
5560
  min-width: 15em;
5514
5561
  box-sizing: border-box;
5515
- padding: calc(var(${PhoneFieldClass.cssVarList.inputOutlineWidth}) + var(${PhoneFieldClass.cssVarList.inputOutlineOffset}))
5516
5562
  }
5563
+ ${useHostExternalPadding(PhoneFieldClass.cssVarList)}
5564
+ ${resetInputCursor('vaadin-text-field')}
5565
+ ${resetInputFieldInvalidBackgroundColor('vaadin-text-field')}
5566
+
5517
5567
  div {
5518
5568
  display: inline-flex;
5519
5569
  }
@@ -5552,7 +5602,7 @@ const PhoneFieldClass = compose(
5552
5602
  }
5553
5603
  descope-combo-box {
5554
5604
  flex-shrink: 0;
5555
- height: 100%;
5605
+ min-width: 5.75em;
5556
5606
  ${comboVars.inputOutlineWidth}: 0;
5557
5607
  ${comboVars.inputOutlineOffset}: 0;
5558
5608
  ${comboVars.inputBorderWidth}: 0;
@@ -5560,9 +5610,8 @@ const PhoneFieldClass = compose(
5560
5610
  }
5561
5611
  descope-text-field {
5562
5612
  flex-grow: 1;
5563
- min-height: 0;
5564
- height: 100%;
5565
5613
  ${textVars.inputOutlineWidth}: 0;
5614
+ ${comboVars.inputOutlineOffset}: 0;
5566
5615
  ${textVars.inputBorderWidth}: 0;
5567
5616
  ${textVars.inputBorderRadius}: 0;
5568
5617
  }
@@ -5572,11 +5621,6 @@ const PhoneFieldClass = compose(
5572
5621
  vaadin-text-field::part(input-field)::after {
5573
5622
  border: none;
5574
5623
  }
5575
-
5576
- ${resetInputFieldDefaultWidth()}
5577
- ${resetInputCursor('vaadin-text-field')}
5578
- ${resetInputFieldInvalidBackgroundColor('vaadin-text-field')}
5579
-
5580
5624
  `,
5581
5625
  excludeAttrsSync: ['tabindex'],
5582
5626
  componentName: componentName$2
@@ -5602,7 +5646,7 @@ const phoneField = {
5602
5646
  [vars$2.inputOutlineColor]: refs.outlineColor,
5603
5647
  [vars$2.inputOutlineOffset]: refs.outlineOffset,
5604
5648
  [vars$2.inputHeight]: refs.inputHeight,
5605
- [vars$2.phoneInputWidth]: '10em',
5649
+ [vars$2.phoneInputWidth]: refs.minWidth,
5606
5650
  [vars$2.countryCodeInputWidth]: '5em',
5607
5651
  [vars$2.countryCodeDropdownWidth]: '20em',
5608
5652
 
@@ -5682,6 +5726,7 @@ const NewPasswordClass = compose(
5682
5726
  mappings: {
5683
5727
  fontSize: [
5684
5728
  host,
5729
+ {},
5685
5730
  {
5686
5731
  selector: PasswordClass.componentName,
5687
5732
  property: PasswordClass.cssVarList.fontSize
@@ -5693,6 +5738,7 @@ const NewPasswordClass = compose(
5693
5738
  helperText
5694
5739
  ],
5695
5740
  hostWidth: { ...host, property: 'width' },
5741
+ hostMinWidth: { ...host, property: 'min-width' },
5696
5742
  inputsRequiredIndicator: { ...host, property: 'content' },
5697
5743
  spaceBetweenInputs: { ...internalInputsWrapper, property: 'gap' },
5698
5744
  }
@@ -5708,10 +5754,9 @@ const NewPasswordClass = compose(
5708
5754
  :host {
5709
5755
  display: inline-block;
5710
5756
  max-width: 100%;
5711
- min-width: 10em;
5712
5757
  box-sizing: border-box;
5713
5758
  }
5714
- ${resetInputFieldDefaultWidth()}
5759
+ ${useHostExternalPadding(PasswordClass.cssVarList)}
5715
5760
  vaadin-text-field {
5716
5761
  padding: 0;
5717
5762
  width: 100%;
@@ -5720,7 +5765,6 @@ const NewPasswordClass = compose(
5720
5765
  vaadin-text-field::part(input-field) {
5721
5766
  min-height: 0;
5722
5767
  background: transparent;
5723
- overflow: hidden;
5724
5768
  box-shadow: none;
5725
5769
  padding: 0;
5726
5770
  }
@@ -5739,7 +5783,7 @@ const NewPasswordClass = compose(
5739
5783
  width: 100%;
5740
5784
  height: 100%;
5741
5785
  display: flex;
5742
- flex-direction: column;
5786
+ flex-direction: column;
5743
5787
  }
5744
5788
  descope-password {
5745
5789
  display: block;
@@ -5758,6 +5802,7 @@ const vars$1 = NewPasswordClass.cssVarList;
5758
5802
 
5759
5803
  const newPassword = {
5760
5804
  [vars$1.hostWidth]: refs.width,
5805
+ [vars$1.hostMinWidth]: refs.minWidth,
5761
5806
  [vars$1.fontSize]: refs.fontSize,
5762
5807
  [vars$1.fontFamily]: refs.fontFamily,
5763
5808
  [vars$1.spaceBetweenInputs]: '1em',