@descope/web-components-ui 1.0.39 → 1.0.41

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 (100) hide show
  1. package/dist/cjs/index.cjs.js +35 -18
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +1128 -481
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/101.js +148 -0
  6. package/dist/umd/208.js +2 -0
  7. package/dist/umd/208.js.LICENSE.txt +5 -0
  8. package/dist/umd/211.js +312 -0
  9. package/dist/umd/211.js.LICENSE.txt +5 -0
  10. package/dist/umd/233.js +573 -0
  11. package/dist/umd/{511.js.LICENSE.txt → 233.js.LICENSE.txt} +0 -6
  12. package/dist/umd/422.js +2 -0
  13. package/dist/umd/422.js.LICENSE.txt +5 -0
  14. package/dist/umd/437.js +19 -0
  15. package/dist/umd/437.js.LICENSE.txt +5 -0
  16. package/dist/umd/513.js +1 -0
  17. package/dist/umd/515.js +202 -0
  18. package/dist/umd/515.js.LICENSE.txt +11 -0
  19. package/dist/umd/54.js +4 -4
  20. package/dist/umd/56.js +48 -0
  21. package/dist/umd/56.js.LICENSE.txt +5 -0
  22. package/dist/umd/599.js +1 -1
  23. package/dist/umd/63.js +1 -0
  24. package/dist/umd/725.js +37 -0
  25. package/dist/umd/725.js.LICENSE.txt +11 -0
  26. package/dist/umd/729.js +1 -1
  27. package/dist/umd/767.js +2 -0
  28. package/dist/umd/{9.js.LICENSE.txt → 767.js.LICENSE.txt} +0 -6
  29. package/dist/umd/786.js +2 -0
  30. package/dist/umd/786.js.LICENSE.txt +17 -0
  31. package/dist/umd/789.js +1 -0
  32. package/dist/umd/806.js +109 -0
  33. package/dist/umd/806.js.LICENSE.txt +5 -0
  34. package/dist/umd/938.js +1 -0
  35. package/dist/umd/97.js +1 -1
  36. package/dist/umd/descope-button-index-js.js +1 -1
  37. package/dist/umd/descope-checkbox-index-js.js +1 -0
  38. package/dist/umd/descope-combo-index-js.js +1 -1
  39. package/dist/umd/descope-container-index-js.js +1 -1
  40. package/dist/umd/descope-email-field-index-js.js +1 -0
  41. package/dist/umd/descope-number-field-index-js.js +1 -0
  42. package/dist/umd/descope-password-field-index-js.js +1 -0
  43. package/dist/umd/descope-switch-toggle-index-js.js +1 -0
  44. package/dist/umd/descope-text-area-index-js.js +1 -0
  45. package/dist/umd/descope-text-field-index-js.js +1 -1
  46. package/dist/umd/index.js +1 -1
  47. package/package.json +9 -2
  48. package/src/components/descope-button/Button.js +90 -30
  49. package/src/components/descope-button/index.js +3 -3
  50. package/src/components/descope-checkbox/Checkbox.js +33 -0
  51. package/src/components/descope-checkbox/index.js +6 -0
  52. package/src/components/descope-combo/index.js +12 -12
  53. package/src/components/descope-container/Container.js +57 -51
  54. package/src/components/descope-container/index.js +1 -1
  55. package/src/components/descope-date-picker/index.js +13 -7
  56. package/src/components/descope-email-field/EmailField.js +72 -0
  57. package/src/components/descope-email-field/index.js +6 -0
  58. package/src/components/descope-number-field/NumberField.js +72 -0
  59. package/src/components/descope-number-field/index.js +6 -0
  60. package/src/components/descope-password-field/PasswordField.js +79 -0
  61. package/src/components/descope-password-field/index.js +6 -0
  62. package/src/components/descope-switch-toggle/SwitchToggle.js +81 -0
  63. package/src/components/descope-switch-toggle/index.js +6 -0
  64. package/src/components/descope-text-area/TextArea.js +66 -0
  65. package/src/components/descope-text-area/index.js +6 -0
  66. package/src/components/descope-text-field/TextField.js +98 -28
  67. package/src/components/descope-text-field/index.js +3 -3
  68. package/src/componentsHelpers/componentNameValidationMixin.js +21 -17
  69. package/src/componentsHelpers/createProxy/helpers.js +31 -27
  70. package/src/componentsHelpers/createProxy/index.js +27 -17
  71. package/src/componentsHelpers/createStyleMixin/helpers.js +65 -47
  72. package/src/componentsHelpers/createStyleMixin/index.js +64 -55
  73. package/src/componentsHelpers/draggableMixin.js +25 -26
  74. package/src/componentsHelpers/index.js +12 -9
  75. package/src/componentsHelpers/inputMixin.js +38 -37
  76. package/src/constants.js +1 -1
  77. package/src/dev/index.js +4 -3
  78. package/src/helpers.js +8 -6
  79. package/src/index.cjs.js +1 -1
  80. package/src/index.js +16 -8
  81. package/src/index.umd.js +11 -5
  82. package/src/theme/components/button.js +32 -21
  83. package/src/theme/components/checkbox.js +9 -0
  84. package/src/theme/components/container.js +32 -27
  85. package/src/theme/components/emailField.js +8 -0
  86. package/src/theme/components/index.js +19 -7
  87. package/src/theme/components/input.js +106 -0
  88. package/src/theme/components/numberField.js +8 -0
  89. package/src/theme/components/passwordField.js +11 -0
  90. package/src/theme/components/switchToggle.js +10 -0
  91. package/src/theme/components/textArea.js +44 -0
  92. package/src/theme/components/textField.js +69 -45
  93. package/src/theme/globals.js +27 -26
  94. package/src/theme/index.js +2 -2
  95. package/src/themeHelpers/index.js +45 -30
  96. package/src/themeHelpers/processColors.js +10 -7
  97. package/dist/umd/221.js +0 -37
  98. package/dist/umd/511.js +0 -573
  99. package/dist/umd/9.js +0 -312
  100. /package/dist/umd/{221.js.LICENSE.txt → 101.js.LICENSE.txt} +0 -0
@@ -1,12 +1,15 @@
1
- import { DESCOPE_PREFIX } from "../constants";
2
- import { kebabCaseJoin } from "../helpers";
1
+ import { DESCOPE_PREFIX } from '../constants';
2
+ import { kebabCaseJoin } from '../helpers';
3
3
 
4
- export const getComponentName = (name) => kebabCaseJoin(DESCOPE_PREFIX, name)
4
+ export const getComponentName = (name) => kebabCaseJoin(DESCOPE_PREFIX, name);
5
5
 
6
- export const compose = (...fns) => (val) => fns.reduceRight((res, fn) => fn(res), val);
6
+ export const compose =
7
+ (...fns) =>
8
+ (val) =>
9
+ fns.reduceRight((res, fn) => fn(res), val);
7
10
 
8
- export { createStyleMixin } from './createStyleMixin'
9
- export { draggableMixin } from './draggableMixin'
10
- export { createProxy } from './createProxy'
11
- export { inputMixin } from './inputMixin'
12
- export { componentNameValidationMixin } from './componentNameValidationMixin'
11
+ export { createStyleMixin } from './createStyleMixin';
12
+ export { draggableMixin } from './draggableMixin';
13
+ export { createProxy } from './createProxy';
14
+ export { inputMixin } from './inputMixin';
15
+ export { componentNameValidationMixin } from './componentNameValidationMixin';
@@ -1,46 +1,47 @@
1
1
  export const inputMixin = (superclass) =>
2
- class InputMixinClass extends superclass {
2
+ class InputMixinClass extends superclass {
3
3
  static get formAssociated() {
4
4
  return true;
5
5
  }
6
-
7
- #internals
8
6
 
9
- constructor() {
10
- super();
7
+ #internals;
11
8
 
12
- this.#internals = this.attachInternals();
9
+ constructor() {
10
+ super();
13
11
 
14
- // this is needed in order to make sure the form input validation is working
15
- if (!this.hasAttribute('tabindex')) {
16
- this.setAttribute('tabindex', 0);
17
- }
18
- }
19
-
20
- formAssociatedCallback() {
21
- this.setValidity?.();
22
- }
23
-
24
- connectedCallback() {
25
- super.connectedCallback?.();
26
-
27
- // vaadin does not expose all those validation attributes so we need to take it from the input
28
- // https://github.com/vaadin/web-components/issues/1177
29
- const input = this.proxyElement.querySelector('input')
30
- if (!input) throw Error('no input was found')
31
-
32
- this.checkValidity = () => input.checkValidity()
33
- this.reportValidity = () => input.reportValidity()
34
- this.validity = input.validity
35
-
36
- this.setValidity = () => {
37
- this.#internals.setValidity(input.validity, input.validationMessage);
38
- }
12
+ this.#internals = this.attachInternals();
13
+ }
39
14
 
40
- input.oninput = () => {
41
- this.value = input.value
42
- this.setValidity()
43
- }
15
+ formAssociatedCallback() {
16
+ this.setValidity?.();
17
+ }
44
18
 
45
- }
46
- }
19
+ connectedCallback() {
20
+ super.connectedCallback?.();
21
+
22
+ // this is needed in order to make sure the form input validation is working
23
+ if (!this.hasAttribute('tabindex')) {
24
+ this.setAttribute('tabindex', 0);
25
+ }
26
+
27
+ // vaadin does not expose all those validation attributes so we need to take it from the input
28
+ // https://github.com/vaadin/web-components/issues/1177
29
+ const input =
30
+ this.proxyElement.querySelector('input') ||
31
+ this.proxyElement.querySelector('textarea');
32
+ if (!input) throw Error('no input was found');
33
+
34
+ this.checkValidity = () => input.checkValidity();
35
+ this.reportValidity = () => input.reportValidity();
36
+ this.validity = input.validity;
37
+
38
+ this.setValidity = () => {
39
+ this.#internals.setValidity(input.validity, input.validationMessage);
40
+ };
41
+
42
+ input.oninput = () => {
43
+ this.value = input.value;
44
+ this.setValidity();
45
+ };
46
+ }
47
+ };
package/src/constants.js CHANGED
@@ -1 +1 @@
1
- export const DESCOPE_PREFIX = 'descope'
1
+ export const DESCOPE_PREFIX = 'descope';
package/src/dev/index.js CHANGED
@@ -1,6 +1,7 @@
1
- import theme from '../theme'
2
- import { themeToStyle } from "../themeHelpers";
1
+ import theme from '../theme';
2
+ import { themeToStyle } from '../themeHelpers';
3
3
 
4
4
  // this file is used for exposing stuff to the dev env only
5
5
 
6
- export const getDefaultThemeStyles = (themeName) => themeToStyle(theme, themeName)
6
+ export const getDefaultThemeStyles = (themeName) =>
7
+ themeToStyle(theme, themeName);
package/src/helpers.js CHANGED
@@ -1,8 +1,10 @@
1
- export const kebabCase = str => str
2
- .replace(/([a-z])([A-Z])/g, "$1-$2")
3
- .replace(/[\s_.]+/g, '-')
4
- .toLowerCase();
1
+ export const kebabCase = (str) =>
2
+ str
3
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
4
+ .replace(/[\s_.]+/g, '-')
5
+ .toLowerCase();
5
6
 
6
- export const kebabCaseJoin = (...args) => kebabCase(args.join('-'))
7
+ export const kebabCaseJoin = (...args) => kebabCase(args.join('-'));
7
8
 
8
- export const getCssVarName = (...args) => `--${kebabCaseJoin(...args.filter(arg => !!arg))}`
9
+ export const getCssVarName = (...args) =>
10
+ `--${kebabCaseJoin(...args.filter((arg) => !!arg))}`;
package/src/index.cjs.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // CJS is used by screen-renderer-service, we cannot load vaadin there,
2
2
  // so we are exporting only the css generation stuff
3
- export * from './themeHelpers'
3
+ export * from './themeHelpers';
package/src/index.js CHANGED
@@ -1,9 +1,17 @@
1
- import "./components/descope-button";
2
- import "./components/descope-combo";
3
- import "./components/descope-text-field";
4
- import "./components/descope-date-picker";
5
- import "./components/descope-container";
1
+ import './components/descope-button';
2
+ import './components/descope-combo';
3
+ import './components/descope-text-field';
4
+ import './components/descope-number-field';
5
+ import './components/descope-email-field';
6
+ import './components/descope-password-field';
7
+ import './components/descope-text-area';
8
+ import './components/descope-date-picker';
9
+ import './components/descope-container';
6
10
 
7
- export { globalsThemeToStyle, componentsThemeToStyle, themeToStyle } from './themeHelpers'
8
- export { genColor } from './themeHelpers/processColors'
9
- export { default as defaultTheme } from './theme'
11
+ export {
12
+ globalsThemeToStyle,
13
+ componentsThemeToStyle,
14
+ themeToStyle
15
+ } from './themeHelpers';
16
+ export { genColor } from './themeHelpers/processColors';
17
+ export { default as defaultTheme } from './theme';
package/src/index.umd.js CHANGED
@@ -1,10 +1,16 @@
1
- const components = import.meta.webpackContext('./components', { recursive: true, regExp: /index.js$/, mode: 'lazy', chunkName: '[request]', prefetch: true });
1
+ const components = import.meta.webpackContext('./components', {
2
+ recursive: true,
3
+ regExp: /index.js$/,
4
+ mode: 'lazy',
5
+ chunkName: '[request]',
6
+ prefetch: true
7
+ });
2
8
 
3
9
  // all components must be in a folder with the component name, and have an index.js file
4
10
  // e.g. ./descope-button/index.js
5
11
  module.exports = components.keys().reduce((acc, key) => {
6
- const componentName = key.replace(/.*?([^\/]+)\/index\.js$/, '$1')
7
- acc[componentName] = () => components(key)
12
+ const componentName = key.replace(/.*?([^\/]+)\/index\.js$/, '$1');
13
+ acc[componentName] = () => components(key);
8
14
 
9
- return acc;
10
- }, {})
15
+ return acc;
16
+ }, {});
@@ -1,29 +1,22 @@
1
- import globals from "../globals";
2
- import { getThemeRefs, createHelperVars } from "../../themeHelpers";
3
- import Button, { componentName } from "../../components/descope-button/Button";
1
+ import globals from '../globals';
2
+ import { getThemeRefs, createHelperVars } from '../../themeHelpers';
3
+ import Button, { componentName } from '../../components/descope-button/Button';
4
4
 
5
5
  const globalRefs = getThemeRefs(globals);
6
- const vars = Button.cssVarList
6
+ const vars = Button.cssVarList;
7
7
 
8
8
  const mode = {
9
- primary: {
10
- main: globalRefs.colors.primary.main,
11
- dark: 'darkblue',
12
- light: 'lightblue',
13
- contrast: 'white'
14
- },
9
+ primary: globalRefs.colors.primary,
15
10
  secondary: globalRefs.colors.secondary,
16
11
  success: globalRefs.colors.success,
17
12
  error: globalRefs.colors.error,
18
- surface: globalRefs.colors.surface,
19
- }
13
+ surface: globalRefs.colors.surface
14
+ };
20
15
 
21
- const [helperTheme, helperRefs] = createHelperVars({ mode }, componentName)
16
+ const [helperTheme, helperRefs] = createHelperVars({ mode }, componentName);
22
17
 
23
18
  const button = {
24
19
  ...helperTheme,
25
- [vars.borderRadius]: globalRefs.radius.lg,
26
- [vars.cursor]: 'pointer',
27
20
 
28
21
  size: {
29
22
  xs: {
@@ -50,37 +43,55 @@ const button = {
50
43
  [vars.height]: '50px',
51
44
  [vars.fontSize]: '25px',
52
45
  [vars.padding]: `0 ${globalRefs.spacing.xl}`
53
- },
46
+ }
54
47
  },
55
48
 
49
+ [vars.borderRadius]: globalRefs.radius.lg,
50
+ [vars.cursor]: 'pointer',
51
+ [vars.borderWidth]: '2px',
52
+ [vars.borderStyle]: 'solid',
53
+ [vars.borderColor]: 'transparent',
54
+
56
55
  _fullWidth: {
57
56
  [vars.width]: '100%'
58
57
  },
58
+ _loading: {
59
+ [vars.cursor]: 'wait'
60
+ },
59
61
 
60
62
  variant: {
61
63
  contained: {
62
64
  [vars.color]: helperRefs.contrast,
63
65
  [vars.backgroundColor]: helperRefs.main,
64
66
  _hover: {
65
- [vars.backgroundColor]: helperRefs.dark,
67
+ [vars.backgroundColor]: helperRefs.dark
66
68
  },
69
+ _loading: {
70
+ [vars.backgroundColor]: helperRefs.main
71
+ }
67
72
  },
68
73
  outline: {
69
74
  [vars.color]: helperRefs.main,
70
75
  [vars.borderColor]: helperRefs.main,
71
- [vars.borderWidth]: '2px',
72
- [vars.borderStyle]: 'solid',
73
76
  _hover: {
74
77
  [vars.color]: helperRefs.dark,
75
78
  [vars.borderColor]: helperRefs.dark,
76
79
  _error: {
77
- [vars.color]: 'red',
80
+ [vars.color]: helperRefs.error
78
81
  }
79
82
  }
80
83
  },
81
84
  link: {
82
85
  [vars.color]: helperRefs.main,
83
- },
86
+ [vars.padding]: 0,
87
+ [vars.margin]: 0,
88
+ [vars.lineHeight]: helperRefs.height,
89
+ [vars.borderRadius]: 0,
90
+ _hover: {
91
+ [vars.color]: helperRefs.main,
92
+ [vars.textDecoration]: 'underline'
93
+ }
94
+ }
84
95
  }
85
96
  };
86
97
 
@@ -0,0 +1,9 @@
1
+ import Checkbox from '../../components/descope-checkbox/Checkbox';
2
+
3
+ const vars = Checkbox.cssVarList;
4
+
5
+ const checkbox = {
6
+ [vars.cursor]: 'pointer'
7
+ };
8
+
9
+ export default checkbox;
@@ -1,38 +1,41 @@
1
- import globals from "../globals";
2
- import { getThemeRefs, createHelperVars } from "../../themeHelpers";
3
- import Container from "../../components/descope-container/Container";
1
+ import globals from '../globals';
2
+ import { getThemeRefs, createHelperVars } from '../../themeHelpers';
3
+ import Container from '../../components/descope-container/Container';
4
4
 
5
5
  const globalRefs = getThemeRefs(globals);
6
6
 
7
- const vars = Container.cssVarList
7
+ const vars = Container.cssVarList;
8
8
 
9
9
  const verticalAlignment = {
10
10
  start: { verticalAlignment: 'start' },
11
11
  center: { verticalAlignment: 'center' },
12
- end: { verticalAlignment: 'end' },
13
- }
12
+ end: { verticalAlignment: 'end' }
13
+ };
14
14
 
15
15
  const horizontalAlignment = {
16
16
  start: { horizontalAlignment: 'start' },
17
17
  center: { horizontalAlignment: 'center' },
18
- end: { horizontalAlignment: 'end' },
19
- }
18
+ end: { horizontalAlignment: 'end' }
19
+ };
20
20
 
21
- const [helperTheme, helperVars, helperRefs] =
22
- createHelperVars({ verticalAlignment, horizontalAlignment }, 'container')
21
+ const [helperTheme, helperRefs, helperVars] = createHelperVars(
22
+ { verticalAlignment, horizontalAlignment },
23
+ 'container'
24
+ );
23
25
 
24
26
  const container = {
25
27
  ...helperTheme,
26
28
  [vars.display]: 'flex',
29
+ [vars.backgroundColor]: globalRefs.colors.surface.main,
27
30
  verticalPadding: {
28
31
  sm: { [vars.verticalPadding]: '5px' },
29
32
  md: { [vars.verticalPadding]: '10px' },
30
- lg: { [vars.verticalPadding]: '20px' },
33
+ lg: { [vars.verticalPadding]: '20px' }
31
34
  },
32
35
  horizontalPadding: {
33
36
  sm: { [vars.horizontalPadding]: '5px' },
34
37
  md: { [vars.horizontalPadding]: '10px' },
35
- lg: { [vars.horizontalPadding]: '20px' },
38
+ lg: { [vars.horizontalPadding]: '20px' }
36
39
  },
37
40
  direction: {
38
41
  row: {
@@ -40,7 +43,7 @@ const container = {
40
43
  [vars.alignItems]: helperRefs.verticalAlignment,
41
44
  [vars.justifyContent]: helperRefs.horizontalAlignment,
42
45
  horizontalAlignment: {
43
- spaceBetween: { [helperVars.horizontalAlignment]: 'space-between' },
46
+ spaceBetween: { [helperVars.horizontalAlignment]: 'space-between' }
44
47
  }
45
48
  },
46
49
 
@@ -49,9 +52,11 @@ const container = {
49
52
  [vars.alignItems]: helperRefs.horizontalAlignment,
50
53
  [vars.justifyContent]: helperRefs.verticalAlignment,
51
54
  verticalAlignment: {
52
- spaceBetween: { [helperVars.verticalAlignment]: 'space-between' }
55
+ spaceBetween: {
56
+ [helperVars.verticalAlignment]: 'space-between'
57
+ }
53
58
  }
54
- },
59
+ }
55
60
  },
56
61
 
57
62
  spaceBetween: {
@@ -67,27 +72,27 @@ const container = {
67
72
  },
68
73
 
69
74
  shadow: {
70
- sm: {
71
- [vars.boxShadow]: `${globalRefs.shadow.size.sm} ${globalRefs.shadow.color}`
72
- },
73
- md: {
74
- [vars.boxShadow]: `${globalRefs.shadow.size.md} ${globalRefs.shadow.color}`
75
- },
76
- lg: {
77
- [vars.boxShadow]: `${globalRefs.shadow.size.lg} ${globalRefs.shadow.color}`
75
+ sm: {
76
+ [vars.boxShadow]: `${globalRefs.shadow.size.sm} ${globalRefs.shadow.color}`
77
+ },
78
+ md: {
79
+ [vars.boxShadow]: `${globalRefs.shadow.size.md} ${globalRefs.shadow.color}`
78
80
  },
81
+ lg: {
82
+ [vars.boxShadow]: `${globalRefs.shadow.size.lg} ${globalRefs.shadow.color}`
83
+ }
79
84
  },
80
85
 
81
86
  borderRadius: {
82
- sm: {
87
+ sm: {
83
88
  [vars.borderRadius]: globalRefs.radius.sm
84
89
  },
85
- md: {
90
+ md: {
86
91
  [vars.borderRadius]: globalRefs.radius.md
87
92
  },
88
- lg: {
93
+ lg: {
89
94
  [vars.borderRadius]: globalRefs.radius.lg
90
- },
95
+ }
91
96
  }
92
97
  };
93
98
 
@@ -0,0 +1,8 @@
1
+ import EmailField from '../../components/descope-email-field/EmailField';
2
+ import { textField } from './textField';
3
+
4
+ const emailField = {
5
+ ...textField(EmailField.cssVarList)
6
+ };
7
+
8
+ export default emailField;
@@ -1,9 +1,21 @@
1
- import button from './button';
2
- import textField from './textField';
3
- import container from './container';
1
+ import button from './button';
2
+ import textField from './textField';
3
+ import passwordField from './passwordField';
4
+ import numberField from './numberField';
5
+ import emailField from './emailField';
6
+ import textArea from './textArea';
7
+ import checkbox from './checkbox';
8
+ import switchToggle from './switchToggle';
9
+ import container from './container';
4
10
 
5
11
  export default {
6
- button,
7
- textField,
8
- container
9
- }
12
+ button,
13
+ textField,
14
+ passwordField,
15
+ numberField,
16
+ emailField,
17
+ textArea,
18
+ checkbox,
19
+ switchToggle,
20
+ container
21
+ };
@@ -0,0 +1,106 @@
1
+ import {
2
+ getComponentName,
3
+ createStyleMixin,
4
+ draggableMixin,
5
+ createProxy,
6
+ inputMixin,
7
+ compose,
8
+ componentNameValidationMixin
9
+ } from '../../componentsHelpers';
10
+ import { matchHostStyle } from '../../componentsHelpers/createStyleMixin/helpers';
11
+
12
+ export const componentName = getComponentName('text-field');
13
+
14
+ const selectors = {
15
+ label: '::part(label)',
16
+ input: '::part(input-field)',
17
+ readOnlyInput: '[readonly]::part(input-field)::after',
18
+ placeholder: '> input:placeholder-shown'
19
+ };
20
+
21
+ let overrides = ``;
22
+
23
+ export const textFieldMappings = {
24
+ color: { selector: selectors.input },
25
+ backgroundColor: { selector: selectors.input },
26
+ width: [matchHostStyle()],
27
+ color: { selector: selectors.input },
28
+ borderColor: [
29
+ { selector: selectors.input },
30
+ { selector: selectors.readOnlyInput }
31
+ ],
32
+ borderWidth: [
33
+ { selector: selectors.input },
34
+ { selector: selectors.readOnlyInput }
35
+ ],
36
+ borderStyle: [
37
+ { selector: selectors.input },
38
+ { selector: selectors.readOnlyInput }
39
+ ],
40
+ borderRadius: { selector: selectors.input },
41
+ boxShadow: { selector: selectors.input },
42
+ fontSize: {},
43
+ height: { selector: selectors.input },
44
+ padding: { selector: selectors.input },
45
+ outline: { selector: selectors.input },
46
+ outlineOffset: { selector: selectors.input },
47
+
48
+ placeholderColor: { selector: selectors.placeholder, property: 'color' }
49
+ // borderWidthReadOnly: [borderWidth('[readonly]::part(input-field)::after')]
50
+ };
51
+
52
+ const TextField = compose(
53
+ createStyleMixin({
54
+ mappings: textFieldMappings
55
+ }),
56
+ draggableMixin,
57
+ inputMixin,
58
+ componentNameValidationMixin
59
+ )(
60
+ createProxy({
61
+ slots: ['prefix', 'suffix'],
62
+ wrappedEleName: 'vaadin-text-field',
63
+ style: () => overrides,
64
+ excludeAttrsSync: ['tabindex'],
65
+ componentName
66
+ })
67
+ );
68
+
69
+ overrides = `
70
+ vaadin-text-field {
71
+ margin: 0;
72
+ padding: 0;
73
+ }
74
+ vaadin-text-field::part(input-field) {
75
+ overflow: hidden;
76
+ }
77
+ vaadin-text-field[readonly] > input:placeholder-shown {
78
+ opacity: 1;
79
+ }
80
+ vaadin-text-field input:-webkit-autofill,
81
+ vaadin-text-field input:-webkit-autofill::first-line,
82
+ vaadin-text-field input:-webkit-autofill:hover,
83
+ vaadin-text-field input:-webkit-autofill:active,
84
+ vaadin-text-field input:-webkit-autofill:focus {
85
+ -webkit-text-fill-color: var(${TextField.cssVarList.color});
86
+ box-shadow: 0 0 0 var(${TextField.cssVarList.height}) var(${TextField.cssVarList.backgroundColor}) inset;
87
+ }
88
+ vaadin-text-field > label,
89
+ vaadin-text-field::part(input-field) {
90
+ cursor: pointer;
91
+ color: var(${TextField.cssVarList.color});
92
+ }
93
+ vaadin-text-field::part(input-field):focus {
94
+ cursor: text;
95
+ }
96
+ vaadin-text-field[required]::part(required-indicator)::after {
97
+ font-size: "12px";
98
+ content: "*";
99
+ color: var(${TextField.cssVarList.color});
100
+ }
101
+ vaadin-text-field[readonly]::part(input-field)::after {
102
+ border: 0 solid;
103
+ }
104
+ `;
105
+
106
+ export default TextField;
@@ -0,0 +1,8 @@
1
+ import NumberField from '../../components/descope-number-field/NumberField';
2
+ import { textField } from './textField';
3
+
4
+ const numberField = {
5
+ ...textField(NumberField.cssVarList)
6
+ };
7
+
8
+ export default numberField;
@@ -0,0 +1,11 @@
1
+ import PasswordField from '../../components/descope-password-field/PasswordField';
2
+ import { textField } from './textField';
3
+
4
+ const vars = PasswordField.cssVarList;
5
+
6
+ const passwordField = {
7
+ ...textField(vars),
8
+ [vars.revealCursor]: 'pointer'
9
+ };
10
+
11
+ export default passwordField;
@@ -0,0 +1,10 @@
1
+ import SwitchToggle from '../../components/descope-switch-toggle/SwitchToggle';
2
+
3
+ const vars = SwitchToggle.cssVarList;
4
+
5
+ const swtichToggle = {
6
+ [vars.width]: '70px',
7
+ [vars.cursor]: [{}, { selector: '> label' }]
8
+ };
9
+
10
+ export default swtichToggle;
@@ -0,0 +1,44 @@
1
+ import globals from '../globals';
2
+ import { getThemeRefs } from '../../themeHelpers';
3
+ import TextArea from '../../components/descope-text-area/TextArea';
4
+
5
+ const globalRefs = getThemeRefs(globals);
6
+ const vars = TextArea.cssVarList;
7
+
8
+ const textArea = {
9
+ [vars.color]: globalRefs.colors.primary.main,
10
+ [vars.backgroundColor]: globalRefs.colors.surface.light,
11
+ [vars.resize]: 'vertical',
12
+
13
+ [vars.borderRadius]: globalRefs.radius.sm,
14
+ [vars.borderWidth]: '1px',
15
+ [vars.borderStyle]: 'solid',
16
+ [vars.borderColor]: 'transparent',
17
+
18
+ _borderOffset: {
19
+ [vars.outlineOffset]: '2px'
20
+ },
21
+
22
+ _bordered: {
23
+ [vars.borderColor]: globalRefs.colors.surface.main
24
+ },
25
+
26
+ _focused: {
27
+ [vars.focusInputCursor]: 'text',
28
+ [vars.outline]: `2px solid ${globalRefs.colors.surface.main}`
29
+ },
30
+
31
+ _fullWidth: {
32
+ [vars.width]: '100%'
33
+ },
34
+
35
+ _disabled: {
36
+ [vars.cursor]: 'not-allowed'
37
+ },
38
+
39
+ _invalid: {
40
+ [vars.outline]: `2px solid ${globalRefs.colors.error.main}`
41
+ }
42
+ };
43
+
44
+ export default textArea;