@descope/web-components-ui 1.0.97 → 1.0.99

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. package/dist/index.esm.js +245 -162
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/umd/0.js +1 -0
  4. package/dist/umd/447.js +1 -1
  5. package/dist/umd/878.js +1 -1
  6. package/dist/umd/890.js +1 -0
  7. package/dist/umd/boolean-fields-descope-checkbox-index-js.js +1 -1
  8. package/dist/umd/boolean-fields-descope-switch-toggle-index-js.js +1 -1
  9. package/dist/umd/descope-button-index-js.js +1 -1
  10. package/dist/umd/descope-combo-box-index-js.js +1 -1
  11. package/dist/umd/descope-container-index-js.js +1 -1
  12. package/dist/umd/descope-date-picker-index-js.js +1 -1
  13. package/dist/umd/descope-divider-index-js.js +1 -1
  14. package/dist/umd/descope-email-field-index-js.js +1 -1
  15. package/dist/umd/descope-image-index-js.js +1 -1
  16. package/dist/umd/descope-link-index-js.js +1 -1
  17. package/dist/umd/descope-loader-linear-index-js.js +1 -1
  18. package/dist/umd/descope-loader-radial-index-js.js +1 -1
  19. package/dist/umd/descope-logo-index-js.js +1 -1
  20. package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js +1 -1
  21. package/dist/umd/descope-number-field-index-js.js +1 -1
  22. package/dist/umd/descope-passcode-index-js.js +1 -1
  23. package/dist/umd/descope-password-field-index-js.js +1 -1
  24. package/dist/umd/descope-phone-field-index-js.js +1 -1
  25. package/dist/umd/descope-text-area-index-js.js +1 -1
  26. package/dist/umd/descope-text-field-index-js.js +1 -1
  27. package/dist/umd/descope-text-index-js.js +1 -1
  28. package/dist/umd/index.js +1 -1
  29. package/package.json +1 -1
  30. package/src/baseClasses/createBaseInputClass.js +1 -2
  31. package/src/components/descope-email-field/EmailField.js +4 -2
  32. package/src/components/descope-link/Link.js +1 -2
  33. package/src/components/descope-loader-linear/LoaderLinear.js +1 -1
  34. package/src/components/descope-passcode/Passcode.js +12 -4
  35. package/src/components/descope-password-field/PasswordField.js +21 -5
  36. package/src/components/descope-password-field/passwordDraggableMixin.js +33 -0
  37. package/src/components/descope-text-area/TextArea.js +38 -20
  38. package/src/components/descope-text-field/TextField.js +4 -2
  39. package/src/components/descope-text-field/textFieldMappings.js +7 -3
  40. package/src/mixins/createStyleMixin/index.js +4 -7
  41. package/src/mixins/draggableMixin.js +6 -4
  42. package/src/mixins/index.js +0 -1
  43. package/src/mixins/inputValidationMixin.js +5 -1
  44. package/src/mixins/proxyInputMixin.js +1 -1
  45. package/src/theme/components/checkbox.js +1 -1
  46. package/src/theme/components/container.js +10 -1
  47. package/src/theme/components/passcode.js +3 -3
  48. package/src/theme/components/passwordField.js +11 -1
  49. package/src/theme/components/textArea.js +9 -9
  50. package/src/theme/components/textField.js +6 -7
  51. package/src/theme/globals.js +5 -3
  52. package/dist/umd/387.js +0 -1
  53. package/dist/umd/988.js +0 -1
  54. package/src/mixins/readOnlyMixin.js +0 -18
package/dist/index.esm.js CHANGED
@@ -308,6 +308,10 @@ const createStyleMixin =
308
308
  this.#styleAttributes = Object.keys(mappings).map((key) =>
309
309
  kebabCaseJoin(STYLE_OVERRIDE_ATTR_PREFIX, componentNameSuffix, key)
310
310
  );
311
+
312
+ this.#createMappingStyle();
313
+ this.#createComponentTheme();
314
+ this.#createOverridesStyle();
311
315
  }
312
316
 
313
317
  get componentTheme() {
@@ -378,15 +382,8 @@ const createStyleMixin =
378
382
  init() {
379
383
  super.init?.();
380
384
  if (this.shadowRoot.isConnected) {
381
-
382
385
  this.#addClassName(superclass.componentName);
383
386
 
384
- // TODO: we should do everything we can on the constructor
385
- // when dragging & dropping these styles are created over & over
386
- this.#createMappingStyle();
387
- this.#createComponentTheme();
388
- this.#createOverridesStyle();
389
-
390
387
  // this is instead attributeChangedCallback because we cannot use static methods in this case
391
388
  observeAttributes(this, this.#updateOverridesStyle.bind(this), {});
392
389
  }
@@ -423,22 +420,24 @@ const draggableMixin = (superclass) =>
423
420
  }
424
421
  }
425
422
 
426
- get #isDraggable() {
423
+ get isDraggable() {
427
424
  return this.hasAttribute('draggable') && this.getAttribute('draggable') !== 'false'
428
425
  }
429
426
 
430
427
  init() {
431
-
432
428
  // because we are delegating the focus from the outer component,
433
429
  // the D&D is not working well in the page editor
434
430
  // in order to solve it we are making the inner component focusable on mouse down
435
431
  // and removing it on complete
436
432
  this.addEventListener('mousedown', (e) => {
437
- if (this.#isDraggable) {
433
+ if (this.isDraggable) {
434
+ const prevTabIndex = this.baseElement.getAttribute('tabindex');
438
435
  this.baseElement.setAttribute('tabindex', '-1');
439
436
 
440
437
  const onComplete = () => {
441
- this.baseElement.removeAttribute('tabindex');
438
+ prevTabIndex ?
439
+ this.baseElement.setAttribute('tabindex', prevTabIndex) :
440
+ this.baseElement.removeAttribute('tabindex');
442
441
 
443
442
  e.target.removeEventListener('mouseup', onComplete);
444
443
  e.target.removeEventListener('dragend', onComplete);
@@ -701,7 +700,7 @@ const inputValidationMixin = (superclass) => class InputValidationMixinClass ext
701
700
  }
702
701
 
703
702
  #setValidity() {
704
- const validity = this.getValidity();
703
+ const validity = this.isReadOnly ? {} : this.getValidity();
705
704
  this.#internals.setValidity(validity, this.getErrorMessage(validity), this.validationTarget);
706
705
  }
707
706
 
@@ -742,6 +741,10 @@ const inputValidationMixin = (superclass) => class InputValidationMixinClass ext
742
741
  return this.hasAttribute('required') && this.getAttribute('required') !== 'false'
743
742
  }
744
743
 
744
+ get isReadOnly() {
745
+ return this.hasAttribute('readonly') && this.getAttribute('readonly') !== 'false'
746
+ }
747
+
745
748
  get pattern() {
746
749
  return this.getAttribute('pattern')
747
750
  }
@@ -879,7 +882,7 @@ const proxyInputMixin = (superclass) =>
879
882
  this.#dispatchChange();
880
883
  });
881
884
 
882
- this.addEventListener('blur', () => {
885
+ this.#inputElement.addEventListener('blur', () => {
883
886
  if (!this.checkValidity()) {
884
887
  this.setAttribute('invalid', 'true');
885
888
  this.#handleErrorMessage();
@@ -989,25 +992,6 @@ const changeMixin = (superclass) => class ChangeMixinClass extends superclass {
989
992
  }
990
993
  };
991
994
 
992
- const readOnlyMixin = (superclass) => class ReadOnlyMixinClass extends superclass {
993
- get isReadOnly() {
994
- return this.hasAttribute('readonly') && this.getAttribute('readonly') !== 'false'
995
- }
996
-
997
- init() {
998
- ['focus', 'blur'].forEach(event => {
999
- this.addEventListener(event, (e) => {
1000
- if (this.isReadOnly) {
1001
- e.stopImmediatePropagation();
1002
- e.preventDefault();
1003
- }
1004
- }, true);
1005
- });
1006
-
1007
- super.init?.();
1008
- }
1009
- };
1010
-
1011
995
  const inputEventsDispatchingMixin = (superclass) => class InputEventsDispatchingMixinClass extends superclass {
1012
996
  init() {
1013
997
  this.#blockNativeEvents();
@@ -1110,7 +1094,7 @@ const iconStyles = `
1110
1094
 
1111
1095
  const editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;
1112
1096
 
1113
- const { host: host$9, label: label$6 } = {
1097
+ const { host: host$a, label: label$7 } = {
1114
1098
  host: { selector: () => ':host' },
1115
1099
  label: { selector: '::part(label)' },
1116
1100
  };
@@ -1119,7 +1103,7 @@ const Button = compose(
1119
1103
  createStyleMixin({
1120
1104
  mappings: {
1121
1105
  color: {},
1122
- textDecoration: label$6,
1106
+ textDecoration: label$7,
1123
1107
  fontSize: {},
1124
1108
  cursor: {},
1125
1109
  backgroundColor: {},
@@ -1127,8 +1111,8 @@ const Button = compose(
1127
1111
  borderColor: {},
1128
1112
  borderStyle: {},
1129
1113
  borderWidth: {},
1130
- width: host$9,
1131
- gap: label$6,
1114
+ width: host$a,
1115
+ gap: label$7,
1132
1116
  verticalPadding: [
1133
1117
  { property: 'padding-top' },
1134
1118
  { property: 'padding-bottom' },
@@ -1190,7 +1174,6 @@ customElements.define(componentName$o, Button);
1190
1174
  const createBaseInputClass = (...args) => compose(
1191
1175
  inputValidationMixin,
1192
1176
  changeMixin,
1193
- readOnlyMixin,
1194
1177
  normalizeBooleanAttributesMixin,
1195
1178
  inputEventsDispatchingMixin
1196
1179
  )(createBaseClass(...args));
@@ -1356,13 +1339,13 @@ descope-boolean-field-internal {
1356
1339
  const componentName$m = getComponentName('checkbox');
1357
1340
 
1358
1341
  const {
1359
- host: host$8,
1342
+ host: host$9,
1360
1343
  component: component$1,
1361
1344
  checkboxElement,
1362
1345
  checkboxSurface,
1363
1346
  checkboxHiddenLabel: checkboxHiddenLabel$1,
1364
- label: label$5,
1365
- requiredIndicator: requiredIndicator$4
1347
+ label: label$6,
1348
+ requiredIndicator: requiredIndicator$5
1366
1349
  } = {
1367
1350
  host: { selector: () => ':host' },
1368
1351
  label: { selector: '::part(label)' },
@@ -1376,7 +1359,7 @@ const {
1376
1359
  const Checkbox = compose(
1377
1360
  createStyleMixin({
1378
1361
  mappings: {
1379
- width: host$8,
1362
+ width: host$9,
1380
1363
  cursor: component$1,
1381
1364
 
1382
1365
  // Checkbox
@@ -1384,7 +1367,7 @@ const Checkbox = compose(
1384
1367
  checkboxRadius: { ...checkboxElement, property: 'border-radius' },
1385
1368
  checkboxWidth: [
1386
1369
  { ...checkboxElement, property: 'width' },
1387
- { ...label$5, property: 'margin-left' }
1370
+ { ...label$6, property: 'margin-left' }
1388
1371
  ],
1389
1372
  checkboxHeight: { ...checkboxElement, property: 'height' },
1390
1373
 
@@ -1399,24 +1382,24 @@ const Checkbox = compose(
1399
1382
 
1400
1383
  // Label
1401
1384
  labelFontSize: [
1402
- { ...label$5, property: 'font-size' },
1385
+ { ...label$6, property: 'font-size' },
1403
1386
  { ...checkboxHiddenLabel$1, property: 'font-size' }
1404
1387
  ],
1405
1388
  labelLineHeight: [
1406
- { ...label$5, property: 'line-height' },
1389
+ { ...label$6, property: 'line-height' },
1407
1390
  { ...checkboxHiddenLabel$1, property: 'line-height' }
1408
1391
  ],
1409
1392
  labelFontWeight: [
1410
- { ...label$5, property: 'font-weight' },
1393
+ { ...label$6, property: 'font-weight' },
1411
1394
  { ...checkboxHiddenLabel$1, property: 'font-weight' }
1412
1395
  ],
1413
1396
  labelMargin: [
1414
- { ...label$5, property: 'left' },
1397
+ { ...label$6, property: 'left' },
1415
1398
  { ...checkboxHiddenLabel$1, property: 'padding-left' }
1416
1399
  ],
1417
1400
  labelTextColor: [
1418
- { ...label$5, property: 'color' },
1419
- { ...requiredIndicator$4, property: 'color' },
1401
+ { ...label$6, property: 'color' },
1402
+ { ...requiredIndicator$5, property: 'color' },
1420
1403
  ],
1421
1404
  },
1422
1405
  }),
@@ -1448,13 +1431,13 @@ customElements.define(componentName$m, Checkbox);
1448
1431
  const componentName$l = getComponentName('switch-toggle');
1449
1432
 
1450
1433
  const {
1451
- host: host$7,
1434
+ host: host$8,
1452
1435
  component,
1453
1436
  checkboxElement: track,
1454
1437
  checkboxSurface: knob,
1455
1438
  checkboxHiddenLabel,
1456
- label: label$4,
1457
- requiredIndicator: requiredIndicator$3,
1439
+ label: label$5,
1440
+ requiredIndicator: requiredIndicator$4,
1458
1441
  } = {
1459
1442
  host: { selector: () => ':host' },
1460
1443
  label: { selector: '::part(label)' },
@@ -1468,9 +1451,9 @@ const {
1468
1451
  const SwitchToggle = compose(
1469
1452
  createStyleMixin({
1470
1453
  mappings: {
1471
- width: host$7,
1454
+ width: host$8,
1472
1455
  cursor: [component, checkboxHiddenLabel, track],
1473
- fontSize: [component, label$4, checkboxHiddenLabel],
1456
+ fontSize: [component, label$5, checkboxHiddenLabel],
1474
1457
 
1475
1458
  // Track
1476
1459
  trackBorderWidth: { ...track, property: 'border-width' },
@@ -1507,20 +1490,20 @@ const SwitchToggle = compose(
1507
1490
 
1508
1491
  // Label
1509
1492
  labelMargin: [
1510
- { ...label$4, property: 'padding-left' },
1493
+ { ...label$5, property: 'padding-left' },
1511
1494
  { ...checkboxHiddenLabel, property: 'padding-left' }
1512
1495
  ],
1513
1496
  labelLineHeight: [
1514
- { ...label$4, property: 'line-height' },
1497
+ { ...label$5, property: 'line-height' },
1515
1498
  { ...checkboxHiddenLabel, property: 'line-height' }
1516
1499
  ],
1517
1500
  labelFontWeight: [
1518
- { ...label$4, property: 'font-weight' },
1501
+ { ...label$5, property: 'font-weight' },
1519
1502
  { ...checkboxHiddenLabel, property: 'font-weight' }
1520
1503
  ],
1521
1504
  labelTextColor: [
1522
- { ...label$4, property: 'color' },
1523
- { ...requiredIndicator$3, property: 'color' },
1505
+ { ...label$5, property: 'color' },
1506
+ { ...requiredIndicator$4, property: 'color' },
1524
1507
  ],
1525
1508
  },
1526
1509
  }),
@@ -1575,7 +1558,7 @@ class RawLoaderLinear extends createBaseClass({ componentName: componentName$k,
1575
1558
  }
1576
1559
  :host {
1577
1560
  position: relative;
1578
- display: inline-block
1561
+ display: flex;
1579
1562
  }
1580
1563
  div::after {
1581
1564
  content: '';
@@ -1593,19 +1576,19 @@ class RawLoaderLinear extends createBaseClass({ componentName: componentName$k,
1593
1576
  }
1594
1577
  }
1595
1578
 
1596
- const selectors$4 = {
1579
+ const selectors$3 = {
1597
1580
  root: {},
1598
1581
  after: { selector: '::after' },
1599
1582
  host: { selector: () => ':host' }
1600
1583
  };
1601
1584
 
1602
- const { root: root$1, after: after$1, host: host$6 } = selectors$4;
1585
+ const { root: root$1, after: after$1, host: host$7 } = selectors$3;
1603
1586
 
1604
1587
  const LoaderLinear = compose(
1605
1588
  createStyleMixin({
1606
1589
  mappings: {
1607
1590
  display: root$1,
1608
- width: host$6,
1591
+ width: host$7,
1609
1592
  height: [root$1, after$1],
1610
1593
  borderRadius: [root$1, after$1],
1611
1594
  surfaceColor: [{ property: 'background-color' }],
@@ -1800,7 +1783,7 @@ class RawDivider extends createBaseClass({ componentName: componentName$g, baseS
1800
1783
  }
1801
1784
  }
1802
1785
 
1803
- const selectors$3 = {
1786
+ const selectors$2 = {
1804
1787
  root: { selector: '' },
1805
1788
  before: { selector: '::before' },
1806
1789
  after: { selector: '::after' },
@@ -1808,7 +1791,7 @@ const selectors$3 = {
1808
1791
  host: { selector: () => ':host' },
1809
1792
  };
1810
1793
 
1811
- const { root, before, after, text: text$2, host: host$5 } = selectors$3;
1794
+ const { root, before, after, text: text$2, host: host$6 } = selectors$2;
1812
1795
 
1813
1796
  const Divider = compose(
1814
1797
  createStyleMixin({
@@ -1819,8 +1802,8 @@ const Divider = compose(
1819
1802
  alignSelf: root,
1820
1803
  flexDirection: root,
1821
1804
  textPadding: { ...text$2, property: 'padding' },
1822
- width: host$5,
1823
- padding: host$5,
1805
+ width: host$6,
1806
+ padding: host$6,
1824
1807
  backgroundColor: [before, after],
1825
1808
  opacity: [before, after],
1826
1809
  textWidth: { ...text$2, property: 'width' },
@@ -1880,7 +1863,7 @@ customElements.define(componentName$f, Text);
1880
1863
 
1881
1864
  customElements.define(componentName$g, Divider);
1882
1865
 
1883
- const selectors$2 = {
1866
+ const selectors$1 = {
1884
1867
  label: '::part(label)',
1885
1868
  inputWrapper: '::part(input-field)',
1886
1869
  readOnlyInput: '[readonly]::part(input-field)::after',
@@ -1890,37 +1873,41 @@ const selectors$2 = {
1890
1873
  };
1891
1874
 
1892
1875
  var textFieldMappings = {
1893
- backgroundColor: { selector: selectors$2.inputWrapper },
1894
- color: { selector: selectors$2.inputWrapper },
1895
- width: { selector: selectors$2.host },
1876
+ backgroundColor: { selector: selectors$1.inputWrapper },
1877
+ color: { selector: selectors$1.inputWrapper },
1878
+ width: { selector: selectors$1.host },
1896
1879
  borderColor: [
1897
- { selector: selectors$2.inputWrapper },
1898
- { selector: selectors$2.readOnlyInput }
1880
+ { selector: selectors$1.inputWrapper },
1881
+ { selector: selectors$1.readOnlyInput }
1899
1882
  ],
1900
1883
  borderWidth: [
1901
- { selector: selectors$2.inputWrapper },
1902
- { selector: selectors$2.readOnlyInput }
1884
+ { selector: selectors$1.inputWrapper },
1885
+ { selector: selectors$1.readOnlyInput }
1903
1886
  ],
1904
1887
  borderStyle: [
1905
- { selector: selectors$2.inputWrapper },
1906
- { selector: selectors$2.readOnlyInput }
1888
+ { selector: selectors$1.inputWrapper },
1889
+ { selector: selectors$1.readOnlyInput }
1907
1890
  ],
1908
- borderRadius: { selector: selectors$2.inputWrapper },
1909
- boxShadow: { selector: selectors$2.inputWrapper },
1891
+ borderRadius: { selector: selectors$1.inputWrapper },
1892
+ boxShadow: { selector: selectors$1.inputWrapper },
1910
1893
 
1911
1894
  // we apply font-size also on the host so we can set its width with em
1912
- fontSize: [{}, { selector: selectors$2.host }],
1913
-
1914
- height: { selector: selectors$2.inputWrapper },
1915
- padding: { selector: selectors$2.inputWrapper },
1916
- margin: { selector: selectors$2.inputWrapper },
1917
- caretColor: { selector: selectors$2.input },
1918
- outlineColor: { selector: selectors$2.inputWrapper },
1919
- outlineStyle: { selector: selectors$2.inputWrapper },
1920
- outlineWidth: { selector: selectors$2.inputWrapper },
1921
- outlineOffset: { selector: selectors$2.inputWrapper },
1922
- textAlign: {selector: selectors$2.input},
1923
- placeholderColor: { selector: selectors$2.placeholder, property: 'color' }
1895
+ fontSize: [{}, { selector: selectors$1.host }],
1896
+
1897
+ height: { selector: selectors$1.inputWrapper },
1898
+ padding: { selector: selectors$1.inputWrapper },
1899
+ margin: { selector: selectors$1.inputWrapper },
1900
+ caretColor: { selector: selectors$1.input },
1901
+ outlineColor: { selector: selectors$1.inputWrapper },
1902
+ outlineStyle: { selector: selectors$1.inputWrapper },
1903
+ outlineWidth: [
1904
+ { selector: selectors$1.inputWrapper },
1905
+ // we need to make sure there is enough space for the outline
1906
+ { property: 'padding' }
1907
+ ],
1908
+ outlineOffset: { selector: selectors$1.inputWrapper },
1909
+ textAlign: { selector: selectors$1.input },
1910
+ placeholderColor: { selector: selectors$1.placeholder, property: 'color' }
1924
1911
  };
1925
1912
 
1926
1913
  const componentName$e = getComponentName('email-field');
@@ -1952,8 +1939,11 @@ overrides$4 = `
1952
1939
  }
1953
1940
  vaadin-email-field {
1954
1941
  margin: 0;
1955
- padding: 0;
1956
1942
  width: 100%;
1943
+ box-sizing: border-box;
1944
+ }
1945
+ vaadin-email-field::before {
1946
+ height: 0;
1957
1947
  }
1958
1948
  vaadin-email-field::part(input-field) {
1959
1949
  overflow: hidden;
@@ -1978,7 +1968,6 @@ overrides$4 = `
1978
1968
  cursor: text;
1979
1969
  }
1980
1970
  vaadin-email-field[required]::part(required-indicator)::after {
1981
- font-size: "12px";
1982
1971
  content: "*";
1983
1972
  color: var(${EmailField.cssVarList.color});
1984
1973
  }
@@ -1993,7 +1982,6 @@ const componentName$d = getComponentName('link');
1993
1982
  class RawLink extends createBaseClass({ componentName: componentName$d, baseSelector: ':host a' }) {
1994
1983
  constructor() {
1995
1984
  super();
1996
- document.createElement('template');
1997
1985
 
1998
1986
  this.attachShadow({ mode: 'open' }).innerHTML = `
1999
1987
  <style>
@@ -2026,19 +2014,19 @@ class RawLink extends createBaseClass({ componentName: componentName$d, baseSele
2026
2014
  }
2027
2015
  }
2028
2016
 
2029
- const selectors$1 = {
2030
- host: { selector: () => 'host' },
2017
+ const selectors = {
2018
+ host: { selector: () => ':host' },
2031
2019
  anchor: {},
2032
2020
  wrapper: {selector: () => ':host > div'},
2033
2021
  text: { selector: () => Text.componentName }
2034
2022
  };
2035
2023
 
2036
- const { anchor, text: text$1, host: host$4, wrapper } = selectors$1;
2024
+ const { anchor, text: text$1, host: host$5, wrapper } = selectors;
2037
2025
 
2038
2026
  const Link = compose(
2039
2027
  createStyleMixin({
2040
2028
  mappings: {
2041
- width: host$4,
2029
+ width: host$5,
2042
2030
  textAlign: wrapper,
2043
2031
  color: [anchor, { ...text$1, property: Text.cssVarList.color }],
2044
2032
  cursor: anchor,
@@ -2419,6 +2407,7 @@ overrides$2 = `
2419
2407
  padding: 0;
2420
2408
  width: 100%;
2421
2409
  height: 100%;
2410
+ box-sizing: border-box;
2422
2411
  }
2423
2412
 
2424
2413
  vaadin-text-field::part(input-field) {
@@ -2454,10 +2443,11 @@ overrides$2 = `
2454
2443
  content: "*";
2455
2444
  color: var(${TextField.cssVarList.color});
2456
2445
  }
2457
- vaadin-text-field[readonly]::part(input-field)::after {
2458
- border: 0 solid;
2446
+ vaadin-text-field::part(input-field)::after {
2447
+ opacity: 0 !important;
2459
2448
  }
2460
2449
 
2450
+
2461
2451
  vaadin-text-field::before {
2462
2452
  height: unset;
2463
2453
  }
@@ -2499,8 +2489,8 @@ const customMixin$2 = (superclass) =>
2499
2489
  const { borderStyle, borderWidth, ...restTextFieldMappings } =
2500
2490
  textFieldMappings;
2501
2491
 
2502
- const { digitField, label: label$3, requiredIndicator: requiredIndicator$2, internalWrapper, focusedValidDigitField } = {
2503
- focusedValidDigitField: { selector: () => `${TextField.componentName}[focused="true"]:not([invalid="true"])` },
2492
+ const { digitField, label: label$4, requiredIndicator: requiredIndicator$3, internalWrapper, focusedDigitField } = {
2493
+ focusedDigitField: { selector: () => `${TextField.componentName}[focused="true"]` },
2504
2494
  digitField: { selector: () => TextField.componentName },
2505
2495
  label: { selector: '> label' },
2506
2496
  requiredIndicator: { selector: '[required]::part(required-indicator)::after' },
@@ -2521,13 +2511,16 @@ const Passcode = compose(
2521
2511
  // ideally, this would be part of the text field
2522
2512
  { ...internalWrapper, property: 'padding' }
2523
2513
  ],
2524
- color: [restTextFieldMappings.color, label$3, requiredIndicator$2],
2514
+ color: [restTextFieldMappings.color, label$4, requiredIndicator$3],
2525
2515
  padding: { ...digitField, property: textVars$1.padding },
2526
2516
  margin: { ...digitField, property: textVars$1.margin },
2527
2517
  textAlign: { ...digitField, property: textVars$1.textAlign },
2528
2518
  caretColor: { ...digitField, property: textVars$1.caretColor },
2529
2519
  digitsGap: { ...internalWrapper, property: 'gap' },
2530
- focusedValidDigitFieldBorderColor: { ...focusedValidDigitField, property: textVars$1.borderColor }
2520
+ focusedDigitFieldBorderColor: [
2521
+ { ...focusedDigitField, property: textVars$1.borderColor },
2522
+ { ...focusedDigitField, property: textVars$1.outlineColor }
2523
+ ]
2531
2524
  },
2532
2525
  }),
2533
2526
  draggableMixin,
@@ -2543,6 +2536,12 @@ const Passcode = compose(
2543
2536
  --vaadin-field-default-width: auto;
2544
2537
  display: inline-block;
2545
2538
  }
2539
+ :host::after {
2540
+ background-color: transparent;
2541
+ }
2542
+ :host::part(input-field)::after {
2543
+ background-color: transparent;
2544
+ }
2546
2545
 
2547
2546
  descope-passcode-internal {
2548
2547
  -webkit-mask-image: none;
@@ -2589,7 +2588,6 @@ const Passcode = compose(
2589
2588
  }
2590
2589
 
2591
2590
  vaadin-text-field[required]::part(required-indicator)::after {
2592
- font-size: "12px";
2593
2591
  content: "*";
2594
2592
  }
2595
2593
  vaadin-text-field[readonly]::part(input-field)::after {
@@ -2607,17 +2605,49 @@ customElements.define(componentName$a, PasscodeInternal);
2607
2605
 
2608
2606
  customElements.define(componentName$8, Passcode);
2609
2607
 
2608
+ const passwordDraggableMixin = (superclass) => class PasswordDraggableMixinClass extends superclass {
2609
+ get isReadOnly() {
2610
+ return this.hasAttribute('readonly') && this.getAttribute('readonly') !== 'false'
2611
+ }
2612
+
2613
+ init() {
2614
+ // there is an issue in Chrome that input field with type password cannot be D&D
2615
+ // so in case the input is draggable & readonly, we are changing the input type to "text" before dragging
2616
+ // and return the original type when done
2617
+ this.addEventListener('mousedown', (e) => {
2618
+ if (this.isDraggable & this.isReadOnly) {
2619
+ const inputEle = this.baseElement.querySelector('input');
2620
+
2621
+ const prevType = inputEle.getAttribute('type');
2622
+ inputEle.setAttribute('type', 'text');
2623
+
2624
+ const onComplete = () => {
2625
+ inputEle.setAttribute('type', prevType);
2626
+
2627
+ e.target.removeEventListener('mouseup', onComplete);
2628
+ e.target.removeEventListener('dragend', onComplete);
2629
+ };
2630
+
2631
+ e.target.addEventListener('mouseup', onComplete, { once: true });
2632
+ e.target.addEventListener('dragend', onComplete, { once: true });
2633
+ }
2634
+ });
2635
+
2636
+ super.init?.();
2637
+ }
2638
+ };
2639
+
2610
2640
  const componentName$7 = getComponentName('password-field');
2611
2641
 
2612
2642
  const {
2613
- host: host$3,
2643
+ host: host$4,
2614
2644
  inputWrapper: inputWrapper$1,
2615
2645
  inputElement,
2616
2646
  inputElementPlaceholder,
2617
2647
  revealButton,
2618
2648
  revealButtonIcon,
2619
- label: label$2,
2620
- requiredIndicator: requiredIndicator$1
2649
+ label: label$3,
2650
+ requiredIndicator: requiredIndicator$2
2621
2651
  } = {
2622
2652
  host: () => ':host',
2623
2653
  inputWrapper: { selector: '::part(input-field)' },
@@ -2632,56 +2662,71 @@ const {
2632
2662
  const PasswordField = compose(
2633
2663
  createStyleMixin({
2634
2664
  mappings: {
2665
+ width: { selector: host$4 },
2635
2666
  wrapperBorderStyle: { ...inputWrapper$1, property: 'border-style' },
2636
2667
  wrapperBorderWidth: { ...inputWrapper$1, property: 'border-width' },
2637
2668
  wrapperBorderColor: { ...inputWrapper$1, property: 'border-color' },
2638
2669
  wrapperBorderRadius: { ...inputWrapper$1, property: 'border-radius' },
2639
2670
  labelTextColor: [
2640
- { ...label$2, property: 'color' },
2641
- { ...requiredIndicator$1, property: 'color' }
2671
+ { ...label$3, property: 'color' },
2672
+ { ...requiredIndicator$2, property: 'color' }
2642
2673
  ],
2643
2674
  inputTextColor: [
2644
2675
  { ...inputElement, property: 'color' },
2645
2676
  { ...revealButtonIcon, property: 'color' }
2646
2677
  ],
2647
2678
  placeholderTextColor: { ...inputElementPlaceholder, property: 'color' },
2648
- fontSize: [{}, host$3],
2679
+ fontSize: [{}, host$4],
2649
2680
  height: inputWrapper$1,
2650
2681
  padding: inputWrapper$1,
2651
2682
  pointerCursor: [
2652
2683
  { ...revealButton, property: 'cursor' },
2653
- { ...label$2, property: 'cursor' },
2654
- { ...requiredIndicator$1, property: 'cursor' }
2684
+ { ...label$3, property: 'cursor' },
2685
+ { ...requiredIndicator$2, property: 'cursor' }
2686
+ ],
2687
+ outlineColor: { ...inputWrapper$1 },
2688
+ outlineStyle: { ...inputWrapper$1 },
2689
+ outlineWidth: [
2690
+ { ...inputWrapper$1 },
2691
+ // we need to make sure there is enough space for the outline
2692
+ { property: 'padding' }
2655
2693
  ],
2694
+ backgroundColor: inputWrapper$1
2656
2695
  }
2657
2696
  }),
2658
2697
  draggableMixin,
2659
2698
  proxyInputMixin,
2660
- componentNameValidationMixin
2699
+ componentNameValidationMixin,
2700
+ passwordDraggableMixin
2661
2701
  )(
2662
2702
  createProxy({
2663
2703
  slots: ['suffix'],
2664
2704
  wrappedEleName: 'vaadin-password-field',
2665
2705
  style: `
2666
2706
  :host {
2667
- display: inline-block;
2707
+ display: inline-flex;
2668
2708
  }
2669
2709
  vaadin-password-field {
2670
2710
  width: 100%;
2671
- padding: 0;
2672
2711
  }
2673
2712
  vaadin-password-field > input {
2674
2713
  min-height: 0;
2675
2714
  }
2676
- vaadin-password-field::part(input-field) {
2677
- background: transparent;
2715
+
2716
+ vaadin-password-field[readonly] > input:placeholder-shown {
2717
+ opacity: 1;
2678
2718
  }
2719
+
2679
2720
  vaadin-password-field::part(input-field)::after {
2680
2721
  opacity: 0;
2681
2722
  }
2682
2723
  vaadin-password-field::before {
2683
2724
  height: initial;
2684
2725
  }
2726
+
2727
+ vaadin-password-field[required]::part(required-indicator)::after {
2728
+ content: "*";
2729
+ }
2685
2730
  `,
2686
2731
  excludeAttrsSync: ['tabindex'],
2687
2732
  componentName: componentName$7
@@ -2692,11 +2737,20 @@ customElements.define(componentName$7, PasswordField);
2692
2737
 
2693
2738
  const componentName$6 = getComponentName('text-area');
2694
2739
 
2695
- const selectors = {
2696
- label: '::part(label)',
2697
- input: '::part(input-field)',
2698
- required: '::part(required-indicator)::after',
2699
- host: () => ':host'
2740
+ const {
2741
+ host: host$3,
2742
+ placeholder: placeholder$1,
2743
+ input: input$1,
2744
+ textArea: textArea$1,
2745
+ label: label$2,
2746
+ requiredIndicator: requiredIndicator$1
2747
+ } = {
2748
+ host: { selector: () => ':host' },
2749
+ textArea: { selector: '> textarea' },
2750
+ label: { selector: '::part(label)' },
2751
+ input: { selector: '::part(input-field)' },
2752
+ placeholder: { selector: 'textarea:placeholder-shown' },
2753
+ requiredIndicator: { selector: '::part(required-indicator)::after' },
2700
2754
  };
2701
2755
 
2702
2756
  let overrides$1 = ``;
@@ -2704,19 +2758,24 @@ let overrides$1 = ``;
2704
2758
  const TextArea = compose(
2705
2759
  createStyleMixin({
2706
2760
  mappings: {
2707
- resize: { selector: '> textarea' },
2708
- color: { selector: selectors.label },
2761
+ resize: textArea$1,
2762
+ color: textArea$1,
2709
2763
  cursor: {},
2710
- width: { selector: selectors.host },
2711
- backgroundColor: { selector: selectors.input },
2712
- borderWidth: { selector: selectors.input },
2713
- borderStyle: { selector: selectors.input },
2714
- borderColor: { selector: selectors.input },
2715
- borderRadius: { selector: selectors.input },
2716
- outlineWidth: { selector: selectors.input },
2717
- outlineStyle: { selector: selectors.input },
2718
- outlineColor: { selector: selectors.input },
2719
- outlineOffset: { selector: selectors.input }
2764
+ labelColor: [
2765
+ { ...label$2, property: 'color' },
2766
+ { ...requiredIndicator$1, property: 'color' }
2767
+ ],
2768
+ placeholderColor: { ...placeholder$1, property: 'color' },
2769
+ width: host$3,
2770
+ backgroundColor: input$1,
2771
+ borderWidth: input$1,
2772
+ borderStyle: input$1,
2773
+ borderColor: input$1,
2774
+ borderRadius: input$1,
2775
+ outlineWidth: input$1,
2776
+ outlineStyle: input$1,
2777
+ outlineColor: input$1,
2778
+ outlineOffset: [input$1, { property: 'padding' }],
2720
2779
  }
2721
2780
  }),
2722
2781
  draggableMixin,
@@ -2740,6 +2799,7 @@ overrides$1 = `
2740
2799
  vaadin-text-area {
2741
2800
  margin: 0;
2742
2801
  width: 100%;
2802
+ box-sizing: border-box;
2743
2803
  }
2744
2804
  vaadin-text-area > label,
2745
2805
  vaadin-text-area::part(input-field) {
@@ -2748,10 +2808,13 @@ overrides$1 = `
2748
2808
  vaadin-text-area[focused]::part(input-field) {
2749
2809
  cursor: text;
2750
2810
  }
2751
- vaadin-text-area::part(required-indicator)::after {
2752
- font-size: "12px";
2811
+ vaadin-text-area[required]::part(required-indicator)::after {
2753
2812
  content: "*";
2754
- }
2813
+ }
2814
+ vaadin-text-area[disabled] > textarea:placeholder-shown,
2815
+ vaadin-text-area[readonly] > textarea:placeholder-shown {
2816
+ opacity: 1;
2817
+ }
2755
2818
  `;
2756
2819
 
2757
2820
  customElements.define(componentName$6, TextArea);
@@ -5125,12 +5188,12 @@ const typography = {
5125
5188
  },
5126
5189
  body1: {
5127
5190
  font: fontsRef.font1.family,
5128
- weight: '300',
5191
+ weight: '400',
5129
5192
  size: '16px'
5130
5193
  },
5131
5194
  body2: {
5132
5195
  font: fontsRef.font1.family,
5133
- weight: '200',
5196
+ weight: '400',
5134
5197
  size: '14px'
5135
5198
  }
5136
5199
  };
@@ -5156,7 +5219,9 @@ const radius = {
5156
5219
  sm: '10px',
5157
5220
  md: '15px',
5158
5221
  lg: '20px',
5159
- xl: '25px'
5222
+ xl: '25px',
5223
+ '2xl': '30px',
5224
+ '3xl': '35px'
5160
5225
  };
5161
5226
 
5162
5227
  const shadow = {
@@ -5274,31 +5339,32 @@ const globalRefs$e = getThemeRefs(globals);
5274
5339
  const vars$f = TextField.cssVarList;
5275
5340
 
5276
5341
  const textField = (vars) => ({
5342
+ [vars.padding]: '0 1em',
5343
+
5344
+ [vars.outlineWidth]: '2px',
5345
+ [vars.outlineStyle]: 'solid',
5346
+ [vars.outlineColor]: 'transparent',
5347
+
5277
5348
  size: {
5278
5349
  xs: {
5279
5350
  [vars.height]: '14px',
5280
5351
  [vars.fontSize]: '8px',
5281
- [vars.padding]: `0 ${globalRefs$e.spacing.xs}`
5282
5352
  },
5283
5353
  sm: {
5284
5354
  [vars.height]: '20px',
5285
5355
  [vars.fontSize]: '10px',
5286
- [vars.padding]: `0 ${globalRefs$e.spacing.sm}`
5287
5356
  },
5288
5357
  md: {
5289
5358
  [vars.height]: '30px',
5290
5359
  [vars.fontSize]: '14px',
5291
- [vars.padding]: `0 ${globalRefs$e.spacing.md}`
5292
5360
  },
5293
5361
  lg: {
5294
5362
  [vars.height]: '40px',
5295
5363
  [vars.fontSize]: '20px',
5296
- [vars.padding]: `0 ${globalRefs$e.spacing.lg}`
5297
5364
  },
5298
5365
  xl: {
5299
5366
  [vars.height]: '50px',
5300
5367
  [vars.fontSize]: '25px',
5301
- [vars.padding]: `0 ${globalRefs$e.spacing.xl}`
5302
5368
  }
5303
5369
  },
5304
5370
 
@@ -5323,8 +5389,6 @@ const textField = (vars) => ({
5323
5389
  },
5324
5390
 
5325
5391
  _focused: {
5326
- [vars.outlineWidth]: '2px',
5327
- [vars.outlineStyle]: 'solid',
5328
5392
  [vars.outlineColor]: globalRefs$e.colors.surface.main
5329
5393
  },
5330
5394
 
@@ -5351,6 +5415,11 @@ const passwordField = {
5351
5415
  [vars$e.wrapperBorderWidth]: '1px',
5352
5416
  [vars$e.wrapperBorderColor]: 'transparent',
5353
5417
  [vars$e.wrapperBorderRadius]: globalRefs$d.radius.sm,
5418
+ [vars$e.backgroundColor]: globalRefs$d.colors.surface.light,
5419
+
5420
+ [vars$e.outlineWidth]: '2px',
5421
+ [vars$e.outlineStyle]: 'solid',
5422
+ [vars$e.outlineColor]: 'transparent',
5354
5423
 
5355
5424
  [vars$e.labelTextColor]: globalRefs$d.colors.surface.contrast,
5356
5425
  [vars$e.inputTextColor]: globalRefs$d.colors.surface.contrast,
@@ -5392,11 +5461,16 @@ const passwordField = {
5392
5461
  [vars$e.width]: '100%'
5393
5462
  },
5394
5463
 
5464
+ _focused: {
5465
+ [vars$e.outlineColor]: globalRefs$d.colors.surface.main
5466
+ },
5467
+
5395
5468
  _invalid: {
5396
5469
  [vars$e.labelTextColor]: globalRefs$d.colors.error.main,
5397
5470
  [vars$e.inputTextColor]: globalRefs$d.colors.error.main,
5398
5471
  [vars$e.placeholderTextColor]: globalRefs$d.colors.error.light,
5399
- [vars$e.wrapperBorderColor]: globalRefs$d.colors.error.main
5472
+ [vars$e.wrapperBorderColor]: globalRefs$d.colors.error.main,
5473
+ [vars$e.outlineColor]: globalRefs$d.colors.error.main,
5400
5474
  },
5401
5475
  };
5402
5476
 
@@ -5412,36 +5486,36 @@ const globalRefs$c = getThemeRefs(globals);
5412
5486
  const vars$d = TextArea.cssVarList;
5413
5487
 
5414
5488
  const textArea = {
5415
- [vars$d.color]: globalRefs$c.colors.primary.main,
5489
+ [vars$d.labelColor]: globalRefs$c.colors.surface.contrast,
5490
+ [vars$d.placeholderColor]: globalRefs$c.colors.surface.main,
5491
+ [vars$d.color]: globalRefs$c.colors.surface.contrast,
5492
+
5416
5493
  [vars$d.backgroundColor]: globalRefs$c.colors.surface.light,
5417
5494
  [vars$d.resize]: 'vertical',
5418
5495
 
5419
5496
  [vars$d.borderRadius]: globalRefs$c.radius.sm,
5420
5497
  [vars$d.borderWidth]: '1px',
5421
5498
  [vars$d.borderStyle]: 'solid',
5422
- [vars$d.borderColor]: 'transparent',
5499
+ [vars$d.borderColor]: globalRefs$c.colors.surface.main,
5423
5500
  [vars$d.outlineWidth]: '2px',
5424
5501
  [vars$d.outlineStyle]: 'solid',
5425
5502
  [vars$d.outlineColor]: 'transparent',
5503
+ [vars$d.outlineOffset]: '0px',
5426
5504
 
5427
-
5428
- _bordered: {
5429
- [vars$d.borderColor]: globalRefs$c.colors.surface.main
5505
+ _fullWidth: {
5506
+ [vars$d.width]: '100%'
5430
5507
  },
5431
5508
 
5432
5509
  _focused: {
5433
5510
  [vars$d.outlineColor]: globalRefs$c.colors.surface.main
5434
5511
  },
5435
5512
 
5436
- _fullWidth: {
5437
- [vars$d.width]: '100%'
5438
- },
5439
-
5440
5513
  _disabled: {
5441
5514
  [vars$d.cursor]: 'not-allowed'
5442
5515
  },
5443
5516
 
5444
5517
  _invalid: {
5518
+ [vars$d.labelColor]: globalRefs$c.colors.error.main,
5445
5519
  [vars$d.outlineColor]: globalRefs$c.colors.error.main
5446
5520
  }
5447
5521
  };
@@ -5461,7 +5535,7 @@ const checkbox = {
5461
5535
  [vars$c.checkboxHeight]: 'calc(1em - 2px)',
5462
5536
  [vars$c.labelMargin]: 'calc(1em + 5px)',
5463
5537
 
5464
- [vars$c.checkboxRadius]: globalRefs$b.radius.sm,
5538
+ [vars$c.checkboxRadius]: globalRefs$b.radius.xs,
5465
5539
 
5466
5540
  size: {
5467
5541
  xs: {
@@ -5676,7 +5750,7 @@ const container = {
5676
5750
  [vars$a.boxShadow]: `${globalRefs$9.shadow.wide.xl} ${helperRefs$1.shadowColor}, ${globalRefs$9.shadow.narrow.xl} ${helperRefs$1.shadowColor}`
5677
5751
  },
5678
5752
  '2xl': {
5679
- [helperVars.shadowColor]: '#00000050',
5753
+ [helperVars.shadowColor]: '#00000050', // mimic daisyUI shadow settings
5680
5754
  [vars$a.boxShadow]: `${globalRefs$9.shadow.wide['2xl']} ${helperRefs$1.shadowColor}`
5681
5755
  },
5682
5756
  },
@@ -5691,6 +5765,15 @@ const container = {
5691
5765
  lg: {
5692
5766
  [vars$a.borderRadius]: globalRefs$9.radius.lg
5693
5767
  },
5768
+ xl: {
5769
+ [vars$a.borderRadius]: globalRefs$9.radius.xl
5770
+ },
5771
+ '2xl': {
5772
+ [vars$a.borderRadius]: globalRefs$9.radius['2xl']
5773
+ },
5774
+ '3xl': {
5775
+ [vars$a.borderRadius]: globalRefs$9.radius['3xl']
5776
+ },
5694
5777
  }
5695
5778
  };
5696
5779
 
@@ -5869,12 +5952,12 @@ const globalRefs$5 = getThemeRefs(globals);
5869
5952
  const passcode = {
5870
5953
  [vars$5.backgroundColor]: globalRefs$5.colors.surface.light,
5871
5954
  [vars$5.outlineWidth]: '2px',
5872
- [vars$5.outlineColor]: globalRefs$5.colors.primary.main,
5955
+ [vars$5.outlineColor]: 'transparent',
5873
5956
  [vars$5.padding]: '0',
5874
5957
  [vars$5.textAlign]: 'center',
5875
5958
  [vars$5.borderColor]: 'transparent',
5876
5959
  [vars$5.digitsGap]: '4px',
5877
- [vars$5.focusedValidDigitFieldBorderColor]: globalRefs$5.colors.primary.main,
5960
+ [vars$5.focusedDigitFieldBorderColor]: globalRefs$5.colors.primary.main,
5878
5961
 
5879
5962
  _hideCursor: {
5880
5963
  [vars$5.caretColor]: 'transparent',
@@ -5895,7 +5978,7 @@ const passcode = {
5895
5978
  _invalid: {
5896
5979
  [vars$5.borderColor]: globalRefs$5.colors.error.main,
5897
5980
  [vars$5.color]: globalRefs$5.colors.error.main,
5898
- [vars$5.outlineColor]: globalRefs$5.colors.error.light,
5981
+ [vars$5.focusedDigitFieldBorderColor]: globalRefs$5.colors.error.light,
5899
5982
  },
5900
5983
  };
5901
5984