draft-components 0.51.0 → 0.52.2

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 (101) hide show
  1. package/components/{datetime-field → datetime-input}/date-component-input.d.ts +0 -0
  2. package/components/{datetime-field → datetime-input}/date-component-input.js +0 -0
  3. package/components/{datetime-field → datetime-input}/date-component-input.js.map +1 -1
  4. package/components/{datetime-field → datetime-input}/date-components.d.ts +0 -0
  5. package/components/{datetime-field → datetime-input}/date-components.js +0 -0
  6. package/components/{datetime-field → datetime-input}/date-components.js.map +1 -1
  7. package/components/{datetime-field/datetime-field.d.ts → datetime-input/datetime-input.d.ts} +4 -4
  8. package/components/{datetime-field/datetime-field.js → datetime-input/datetime-input.js} +10 -10
  9. package/components/{datetime-field/datetime-field.js.map → datetime-input/datetime-input.js.map} +1 -1
  10. package/components/{datetime-field → datetime-input}/index.d.ts +1 -1
  11. package/components/{datetime-field → datetime-input}/index.js +1 -1
  12. package/components/datetime-input/index.js.map +1 -0
  13. package/components/form-field/form-field.d.ts +17 -0
  14. package/components/{field-group/field-group.js → form-field/form-field.js} +8 -8
  15. package/components/form-field/form-field.js.map +1 -0
  16. package/components/form-field/index.d.ts +1 -0
  17. package/components/{text-field → form-field}/index.js +1 -1
  18. package/components/form-field/index.js.map +1 -0
  19. package/components/index.d.ts +6 -6
  20. package/components/index.js +6 -6
  21. package/components/index.js.map +1 -1
  22. package/components/number-input/index.d.ts +1 -0
  23. package/components/{number-field → number-input}/index.js +1 -1
  24. package/components/number-input/index.js.map +1 -0
  25. package/components/number-input/number-input.d.ts +12 -0
  26. package/components/{number-field/number-field.js → number-input/number-input.js} +11 -18
  27. package/components/number-input/number-input.js.map +1 -0
  28. package/components/password-input/index.d.ts +1 -0
  29. package/components/{password-field → password-input}/index.js +1 -1
  30. package/components/password-input/index.js.map +1 -0
  31. package/components/password-input/password-input.d.ts +8 -0
  32. package/components/{password-field/password-field.js → password-input/password-input.js} +6 -6
  33. package/components/password-input/password-input.js.map +1 -0
  34. package/components/search-input/index.d.ts +1 -0
  35. package/components/{search-field → search-input}/index.js +1 -1
  36. package/components/search-input/index.js.map +1 -0
  37. package/components/search-input/search-input.d.ts +5 -0
  38. package/components/search-input/search-input.js +18 -0
  39. package/components/search-input/search-input.js.map +1 -0
  40. package/components/select/select.js +4 -4
  41. package/components/text-input/index.d.ts +1 -0
  42. package/components/{field-group → text-input}/index.js +1 -1
  43. package/components/text-input/index.js.map +1 -0
  44. package/components/text-input/text-input.d.ts +12 -0
  45. package/components/{text-field/text-field.js → text-input/text-input.js} +33 -12
  46. package/components/text-input/text-input.js.map +1 -0
  47. package/components/textarea/textarea.js +4 -4
  48. package/css/draft-components.css +2 -2
  49. package/package.json +1 -1
  50. package/scss/.DS_Store +0 -0
  51. package/scss/components/_button.scss +31 -23
  52. package/scss/components/_checkbox.scss +26 -26
  53. package/scss/components/_datetime-input.scss +92 -0
  54. package/scss/components/_form-field.scss +16 -0
  55. package/scss/components/_index.scss +6 -6
  56. package/scss/components/_input.scss +73 -0
  57. package/scss/components/{_number-field.scss → _number-input.scss} +4 -4
  58. package/scss/components/{_password-field.scss → _password-input.scss} +2 -2
  59. package/scss/components/_radio-button.scss +37 -38
  60. package/scss/components/_select.scss +12 -12
  61. package/scss/components/_selection-control.scss +7 -4
  62. package/scss/components/_slider.scss +4 -4
  63. package/scss/components/_switch.scss +42 -42
  64. package/scss/components/_text-input.scss +52 -0
  65. package/scss/components/_textarea.scss +6 -5
  66. package/scss/themes/_default-theme.scss +27 -29
  67. package/scss/utils/_gap.scss +21 -0
  68. package/components/banner/banner.d.ts +0 -278
  69. package/components/banner/banner.js +0 -106
  70. package/components/banner/banner.js.map +0 -1
  71. package/components/banner/index.d.ts +0 -1
  72. package/components/banner/index.js +0 -27
  73. package/components/banner/index.js.map +0 -1
  74. package/components/datetime-field/index.js.map +0 -1
  75. package/components/field-group/field-group.d.ts +0 -17
  76. package/components/field-group/field-group.js.map +0 -1
  77. package/components/field-group/index.d.ts +0 -1
  78. package/components/field-group/index.js.map +0 -1
  79. package/components/number-field/index.d.ts +0 -1
  80. package/components/number-field/index.js.map +0 -1
  81. package/components/number-field/number-field.d.ts +0 -12
  82. package/components/number-field/number-field.js.map +0 -1
  83. package/components/password-field/index.d.ts +0 -1
  84. package/components/password-field/index.js.map +0 -1
  85. package/components/password-field/password-field.d.ts +0 -8
  86. package/components/password-field/password-field.js.map +0 -1
  87. package/components/search-field/index.d.ts +0 -1
  88. package/components/search-field/index.js.map +0 -1
  89. package/components/search-field/search-field.d.ts +0 -5
  90. package/components/search-field/search-field.js +0 -17
  91. package/components/search-field/search-field.js.map +0 -1
  92. package/components/text-field/index.d.ts +0 -1
  93. package/components/text-field/index.js.map +0 -1
  94. package/components/text-field/text-field.d.ts +0 -12
  95. package/components/text-field/text-field.js.map +0 -1
  96. package/scss/components/_banner.scss +0 -104
  97. package/scss/components/_datetime-field.scss +0 -92
  98. package/scss/components/_field-group.scss +0 -17
  99. package/scss/components/_field.scss +0 -73
  100. package/scss/components/_text-field.scss +0 -52
  101. package/scss/utils/_box-sizing.scss +0 -7
@@ -0,0 +1,92 @@
1
+ .dc-datetime-input {
2
+ display: inline-block;
3
+ border: none;
4
+ }
5
+
6
+ .dc-datetime-input__body,
7
+ .dc-datetime-input__group {
8
+ display: inline-flex;
9
+ align-items: center;
10
+ width: auto;
11
+ }
12
+
13
+ .dc-datetime-input__body {
14
+ width: auto;
15
+ padding: $gap-1x calc(var(--dc-input-gap) - #{px-to-rem(2px)});
16
+ }
17
+
18
+ .dc-datetime-input__group {
19
+ height: 100%;
20
+ }
21
+
22
+ .dc-datetime-input__group + .dc-datetime-input__group {
23
+ margin-left: $gap-3x;
24
+ }
25
+
26
+ .dc-datetime-input__separator {
27
+ display: inline-block;
28
+ padding: 0 px-to-rem(2px);
29
+ opacity: $opacity-50;
30
+ }
31
+
32
+ .dc-date-component-input {
33
+ position: relative;
34
+ display: inline-flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ height: 100%;
38
+ padding: 0;
39
+ }
40
+
41
+ .dc-date-component-input > * {
42
+ padding: 0 px-to-rem(2px);
43
+ font-variant-numeric: tabular-nums;
44
+ }
45
+
46
+ .dc-date-component-input > [aria-hidden='true'] {
47
+ pointer-events: none;
48
+ user-select: none;
49
+ opacity: 0;
50
+ }
51
+
52
+ .dc-date-component-input > input {
53
+ position: absolute;
54
+ top: 0;
55
+ left: 0;
56
+ box-sizing: border-box;
57
+ width: 100%;
58
+ height: 100%;
59
+ margin: 0;
60
+ border: none;
61
+ border-radius: $border-radius-2xs;
62
+ background: none;
63
+ appearance: none;
64
+ -moz-appearance: textfield;
65
+ }
66
+
67
+ .dc-date-component-input > input::-webkit-outer-spin-button,
68
+ .dc-date-component-input > input::-webkit-inner-spin-button {
69
+ margin: 0;
70
+ appearance: none;
71
+ }
72
+
73
+ .dc-date-component-input > input::placeholder {
74
+ color: inherit;
75
+ opacity: $opacity-40;
76
+ }
77
+
78
+ .dc-date-component-input > input:focus {
79
+ color: $white;
80
+ outline: none;
81
+ caret-color: transparent;
82
+ background: var(--dc-input-accent-color);
83
+ }
84
+
85
+ .dc-date-component-input > input::selection,
86
+ .dc-date-component-input > input:focus::selection {
87
+ background: transparent;
88
+ }
89
+
90
+ .dc-date-component-input > input:focus::placeholder {
91
+ opacity: $opacity-80;
92
+ }
@@ -0,0 +1,16 @@
1
+ .dc-form-field {
2
+ }
3
+
4
+ .dc-form-field__label {
5
+ display: inline-block;
6
+ margin-bottom: $gap-1x;
7
+ }
8
+
9
+ .dc-form-field__input {
10
+ }
11
+
12
+ .dc-form-field__hint,
13
+ .dc-form-field__error {
14
+ width: 100%;
15
+ margin-top: $gap-1x;
16
+ }
@@ -5,11 +5,11 @@
5
5
  @import 'button';
6
6
  @import 'actions-group';
7
7
  @import 'buttons-group';
8
- @import 'field';
9
- @import 'text-field';
10
- @import 'number-field';
11
- @import 'password-field';
12
- @import 'datetime-field';
8
+ @import 'input';
9
+ @import 'text-input';
10
+ @import 'number-input';
11
+ @import 'password-input';
12
+ @import 'datetime-input';
13
13
  @import 'slider';
14
14
  @import 'textarea';
15
15
  @import 'select';
@@ -32,7 +32,7 @@
32
32
  @import 'scope-buttons';
33
33
  @import 'label';
34
34
  @import 'inline-message';
35
- @import 'field-group';
35
+ @import 'form-field';
36
36
  @import 'dialog';
37
37
  @import 'popover';
38
38
  @import 'tooltip';
@@ -0,0 +1,73 @@
1
+ .dc-input {
2
+ position: relative;
3
+ box-sizing: border-box;
4
+ width: var(--dc-input-width);
5
+ height: var(--dc-input-height);
6
+ min-width: 0;
7
+ max-width: 100%;
8
+ margin: 0;
9
+ padding: 0;
10
+ transition: $transition-quick;
11
+ transition-property: color, border-color, background-color, box-shadow;
12
+ color: var(--dc-input-text-color);
13
+ border: var(--dc-input-border);
14
+ border-radius: var(--dc-input-border-radius);
15
+ background: var(--dc-input-bg);
16
+ font-family: var(--dc-font-base);
17
+ font-size: var(--dc-input-font-size);
18
+ font-weight: $font-weight-normal;
19
+ line-height: 1;
20
+ appearance: none;
21
+
22
+ &::placeholder {
23
+ opacity: $opacity-40;
24
+ color: inherit;
25
+ }
26
+ }
27
+
28
+ .dc-input:focus,
29
+ .dc-input_focused {
30
+ --dc-input-focus-color: var(--dc-input-accent-color);
31
+
32
+ outline: none;
33
+ border-color: var(--dc-input-focus-color);
34
+ box-shadow: 0 0 0 1px var(--dc-input-focus-color);
35
+ }
36
+
37
+ .dc-input_invalid {
38
+ border-color: var(--dc-input-error-color);
39
+ }
40
+
41
+ .dc-input_invalid:focus,
42
+ .dc-input_invalid.dc-input_focused {
43
+ --dc-input-focus-color: var(--dc-input-error-color);
44
+ }
45
+
46
+ .dc-input:disabled,
47
+ .dc-input[disabled],
48
+ .dc-input_disabled {
49
+ pointer-events: none;
50
+ color: var(--dc-input-disabled-text-color);
51
+ -webkit-text-fill-color: var(--dc-input-disabled-text-color);
52
+ border-color: var(--dc-input-disabled-border-color);
53
+ background-color: var(--dc-input-disabled-bg);
54
+ box-shadow: none;
55
+ }
56
+
57
+ .dc-input_size_sm {
58
+ --dc-input-width: #{px-to-rem(224px)};
59
+ --dc-input-height: var(--dc-control-sm-h);
60
+ --dc-input-border-radius: #{$border-radius-xs};
61
+ --dc-input-font-size: #{px-to-rem(13px)};
62
+ }
63
+
64
+ .dc-input_size_lg {
65
+ --dc-input-width: #{px-to-rem(320px)};
66
+ --dc-input-height: var(--dc-control-lg-h);
67
+ --dc-input-border-radius: #{$border-radius-sm};
68
+ --dc-input-font-size: #{px-to-rem(15px)};
69
+ }
70
+
71
+ .dc-input_full_width {
72
+ width: 100% !important;
73
+ }
@@ -1,17 +1,17 @@
1
- .dc-number-field {
1
+ .dc-number-input {
2
2
  display: inline-flex;
3
3
  align-items: center;
4
4
  }
5
5
 
6
- .dc-number-field_full-width {
6
+ .dc-number-input_full-width {
7
7
  width: 100%;
8
8
  }
9
9
 
10
- .dc-number-field > * + * {
10
+ .dc-number-input > * + * {
11
11
  margin-left: $gap-1x;
12
12
  }
13
13
 
14
- .dc-number-field__input {
14
+ .dc-number-input__text-input {
15
15
  flex: auto;
16
16
  width: px-to-rem(160px);
17
17
  }
@@ -1,8 +1,8 @@
1
- .dc-password-field > *:last-child {
1
+ .dc-password-input > *:last-child {
2
2
  padding-right: 0.125rem;
3
3
  }
4
4
 
5
- .dc-password-field .dc-icon-button {
5
+ .dc-password-input__button {
6
6
  max-height: 100%;
7
7
  color: inherit;
8
8
  border-radius: inherit;
@@ -1,5 +1,5 @@
1
1
  .dc-radio-btn {
2
- --dc-selection-control-size: var(--dc-radio-button-size);
2
+ --dc-selection-control-size: var(--dc-radio-btn-size);
3
3
 
4
4
  position: relative;
5
5
  }
@@ -13,46 +13,45 @@
13
13
  align-items: center;
14
14
  justify-content: center;
15
15
  box-sizing: border-box;
16
- width: var(--dc-radio-button-size);
17
- height: var(--dc-radio-button-size);
16
+ width: var(--dc-radio-btn-size);
17
+ height: var(--dc-radio-btn-size);
18
18
  cursor: pointer;
19
- color: var(--dc-field-accent-text-color);
19
+ color: var(--dc-input-accent-secondary-color);
20
20
  border-radius: 50%;
21
- border: 0.0625rem solid var(--dc-field-border-color);
22
- background: var(--dc-field-bg-color);
23
-
24
- .dc-radio-btn__input:checked + & {
25
- position: relative;
26
- color: var(--dc-field-accent-text-color);
27
- border-color: var(--dc-field-accent-color);
28
- background: var(--dc-field-accent-color);
29
-
30
- &::after {
31
- position: absolute;
32
- top: 50%;
33
- left: 50%;
34
- display: inline-flex;
35
- width: calc(var(--dc-radio-button-size) / 2.61802);
36
- height: calc(var(--dc-radio-button-size) / 2.61802);
37
- content: '';
38
- transform: translate(-50%, -50%);
39
- border-radius: 50%;
40
- background: currentColor;
41
- box-shadow: $shadow-xs;
42
- }
43
- }
21
+ border: var(--dc-input-border);
22
+ background: var(--dc-input-bg);
23
+ }
44
24
 
45
- .dc-radio-btn__input:focus + & {
46
- box-shadow: 0 0 0 3px var(--dc-focus-ring-color);
47
- }
25
+ .dc-radio-btn__input:checked + .dc-radio-btn__radio {
26
+ position: relative;
27
+ color: var(--dc-input-accent-secondary-color);
28
+ border-color: var(--dc-input-accent-color);
29
+ background: var(--dc-input-accent-color);
30
+ }
31
+ .dc-radio-btn__input:checked + .dc-radio-btn__radio::after {
32
+ --size: calc(var(--dc-radio-btn-size) / 2.618);
33
+ position: absolute;
34
+ top: 50%;
35
+ left: 50%;
36
+ display: inline-flex;
37
+ width: var(--size);
38
+ height: var(--size);
39
+ content: '';
40
+ transform: translate(-50%, -50%);
41
+ border-radius: 50%;
42
+ background: currentColor;
43
+ box-shadow: $shadow-xs;
44
+ }
48
45
 
49
- .dc-radio-btn__input:disabled + & {
50
- cursor: default;
51
- border-color: var(--dc-field-disabled-border-color);
52
- background: var(--dc-field-disabled-bg-color);
46
+ .dc-radio-btn__input:focus + .dc-radio-btn__radio {
47
+ box-shadow: 0 0 0 3px var(--dc-focus-ring-color);
48
+ }
53
49
 
54
- &::after {
55
- color: var(--dc-field-disabled-text-color);
56
- }
57
- }
50
+ .dc-radio-btn__input:disabled + .dc-radio-btn__radio {
51
+ cursor: default;
52
+ border-color: var(--dc-input-disabled-border-color);
53
+ background: var(--dc-input-disabled-bg);
54
+ }
55
+ .dc-radio-btn__input:disabled + .dc-radio-btn__radio::after {
56
+ color: var(--dc-input-disabled-text-color);
58
57
  }
@@ -1,4 +1,4 @@
1
- @function get-arrow-icon($color) {
1
+ @function select-arrow-icon($color) {
2
2
  @return inline-svg(
3
3
  '<svg width="12" height="16" viewBox="0 0 12 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3 11L6 14L9 11" stroke="#{$color}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M9 5L6 2L3 5" stroke="#{$color}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>'
4
4
  );
@@ -6,27 +6,27 @@
6
6
 
7
7
  .dc-select {
8
8
  width: auto;
9
- padding-right: calc(1.25em + var(--dc-field-pad));
10
- padding-left: var(--dc-field-pad);
9
+ padding-right: calc(1.25em + var(--dc-input-gap));
10
+ padding-left: var(--dc-input-gap);
11
11
  cursor: pointer;
12
- background-image: get-arrow-icon($gray-600);
12
+ background-image: select-arrow-icon($gray-600);
13
13
  background-repeat: no-repeat;
14
14
  background-size: 0.85em auto;
15
- background-position: calc(100% - var(--dc-field-pad)) center;
15
+ background-position: calc(100% - var(--dc-input-gap)) center;
16
16
  box-shadow: $shadow-xs;
17
17
  line-height: $leading-default;
18
+ }
18
19
 
19
- &:disabled {
20
- background-image: get-arrow-icon($gray-400);
21
- }
20
+ .dc-select:disabled {
21
+ background-image: select-arrow-icon($gray-400);
22
22
  }
23
23
 
24
24
  .dc-select[multiple] {
25
25
  height: initial;
26
26
  padding: $gap-2x 0;
27
- background: var(--dc-field-bg-color);
27
+ background: var(--dc-input-bg);
28
+ }
28
29
 
29
- option {
30
- padding: $gap-1x $gap-3x;
31
- }
30
+ .dc-select option {
31
+ padding: $gap-1x $gap-3x;
32
32
  }
@@ -1,4 +1,5 @@
1
1
  .dc-selection-control {
2
+ --dc-selection-control-size: #{px-to-rem(18px)};
2
3
  --dc-selection-control-gap: #{$gap-3x};
3
4
 
4
5
  display: inline-flex;
@@ -19,15 +20,17 @@
19
20
  margin-left: var(--dc-selection-control-gap);
20
21
  user-select: none;
21
22
  color: var(--dc-primary-text-color);
22
- font-size: $font-size-base;
23
+ font-size: $font-size-sm;
24
+ font-weight: $font-weight-medium;
23
25
  line-height: $leading-default;
24
26
  @include text-truncate;
25
27
  }
26
28
 
27
29
  .dc-selection-control__description {
28
30
  margin-top: $gap-1x;
29
- margin-left: var(--dc-selection-control-size, 0);
30
- padding-left: var(--dc-selection-control-gap);
31
+ margin-left: calc(
32
+ var(--dc-selection-control-size) + var(--dc-selection-control-gap)
33
+ );
31
34
  color: var(--dc-secondary-text-color);
32
35
  font-size: $font-size-sm;
33
36
  line-height: $leading-tight;
@@ -35,5 +38,5 @@
35
38
 
36
39
  .dc-selection-control_disabled .dc-selection-control__label,
37
40
  .dc-selection-control_disabled .dc-selection-control__description {
38
- color: var(--dc-field-disabled-text-color);
41
+ color: var(--dc-input-disabled-text-color);
39
42
  }
@@ -11,7 +11,7 @@ $thumb-shadow: 0 0 0 1px rgba($black, $opacity-10), $shadow-sm, $shadow-md;
11
11
  height: $thumb-height;
12
12
  border-radius: 50%;
13
13
  border-color: transparent;
14
- background: var(--dc-slider-thumb-gb-color);
14
+ background: var(--dc-slider-thumb-bg);
15
15
  box-shadow: $thumb-shadow;
16
16
  appearance: none;
17
17
  }
@@ -49,7 +49,7 @@ $thumb-shadow: 0 0 0 1px rgba($black, $opacity-10), $shadow-sm, $shadow-md;
49
49
  .dc-slider__tick_marks > * {
50
50
  flex: 0 0 3px;
51
51
  height: 6px;
52
- background: var(--dc-slider-track-gb-color);
52
+ background: var(--dc-slider-track-bg);
53
53
  }
54
54
 
55
55
  .dc-slider::before,
@@ -63,12 +63,12 @@ $thumb-shadow: 0 0 0 1px rgba($black, $opacity-10), $shadow-sm, $shadow-md;
63
63
  .dc-slider::before {
64
64
  content: '';
65
65
  width: 100%;
66
- background: var(--dc-slider-track-gb-color);
66
+ background: var(--dc-slider-track-bg);
67
67
  }
68
68
 
69
69
  .dc-slider__fill-track {
70
70
  width: 0;
71
- background: var(--dc-slider-fill-track-gb-color);
71
+ background: var(--dc-slider-fill-track-bg);
72
72
  }
73
73
 
74
74
  .dc-slider__input {
@@ -1,5 +1,5 @@
1
1
  .dc-switch {
2
- --dc-selection-control-size: 2rem;
2
+ --dc-selection-control-size: var(--dc-switch-width);
3
3
 
4
4
  position: relative;
5
5
  }
@@ -12,48 +12,48 @@
12
12
  position: relative;
13
13
  display: inline-flex;
14
14
  box-sizing: border-box;
15
- width: var(--dc-switch-w);
16
- height: var(--dc-switch-h);
15
+ width: var(--dc-switch-width);
16
+ height: var(--dc-switch-height);
17
17
  transition: $transition-quick;
18
18
  transition-property: border-color, background-color;
19
19
  cursor: pointer;
20
- border-radius: calc(var(--dc-switch-h) / 2);
21
- background: var(--dc-switch-bg-color);
22
-
23
- &::after {
24
- $offset: calc((var(--dc-switch-h) - var(--dc-switch-check-size)) / 2);
25
-
26
- position: absolute;
27
- top: $offset;
28
- left: $offset;
29
- display: inline-flex;
30
- align-items: center;
31
- justify-content: center;
32
- box-sizing: border-box;
33
- width: var(--dc-switch-check-size);
34
- height: var(--dc-switch-check-size);
35
- content: '';
36
- transition: inherit;
37
- transition-property: transform, border-color;
38
- background: var(--dc-switch-check-color);
39
- box-shadow: $shadow-sm, $shadow-md;
40
- border-radius: 50%;
41
- }
42
-
43
- .dc-switch__input:checked + & {
44
- background: var(--dc-switch-accent-color);
45
-
46
- &::after {
47
- transform: translateX(#{calc(var(--dc-switch-w) - var(--dc-switch-h))});
48
- }
49
- }
50
-
51
- .dc-switch__input:focus + & {
52
- box-shadow: 0 0 0 3px var(--dc-focus-ring-color);
53
- }
54
-
55
- .dc-switch__input:disabled + & {
56
- cursor: default;
57
- opacity: var(--dc-disabled-state-opacity);
58
- }
20
+ border-radius: calc(var(--dc-switch-height) / 2);
21
+ background: var(--dc-switch-bg);
22
+ }
23
+
24
+ .dc-switch__check::after {
25
+ --offset: calc((var(--dc-switch-height) - var(--dc-switch-check-size)) / 2);
26
+
27
+ position: absolute;
28
+ top: var(--offset);
29
+ left: var(--offset);
30
+ display: inline-flex;
31
+ align-items: center;
32
+ justify-content: center;
33
+ box-sizing: border-box;
34
+ width: var(--dc-switch-check-size);
35
+ height: var(--dc-switch-check-size);
36
+ content: '';
37
+ transition: inherit;
38
+ transition-property: transform, border-color;
39
+ background: var(--dc-input-accent-secondary-color);
40
+ box-shadow: $shadow-sm, $shadow-md;
41
+ border-radius: 50%;
42
+ }
43
+
44
+ .dc-switch__input:checked + .dc-switch__check {
45
+ background: var(--dc-input-accent-color);
46
+ }
47
+ .dc-switch__input:checked + .dc-switch__check::after {
48
+ // noinspection CssInvalidFunction
49
+ transform: translateX(calc(var(--dc-switch-width) - var(--dc-switch-height)));
50
+ }
51
+
52
+ .dc-switch__input:focus + .dc-switch__check {
53
+ box-shadow: 0 0 0 3px var(--dc-focus-ring-color);
54
+ }
55
+
56
+ .dc-switch__input:disabled + .dc-switch__check {
57
+ cursor: default;
58
+ opacity: var(--dc-disabled-state-opacity);
59
59
  }
@@ -0,0 +1,52 @@
1
+ .dc-text-input {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ }
5
+
6
+ .dc-text-input__native-input {
7
+ flex: auto;
8
+ box-sizing: border-box;
9
+ width: 100%;
10
+ height: inherit;
11
+ min-width: 0;
12
+ padding: 0 calc(var(--dc-input-gap) * 0.75);
13
+ color: inherit;
14
+ border: none;
15
+ background: none;
16
+ font: inherit;
17
+ line-height: var(--dc-input-height);
18
+ }
19
+
20
+ .dc-text-input__native-input::placeholder {
21
+ color: inherit;
22
+ opacity: $opacity-40;
23
+ }
24
+
25
+ .dc-text-input__native-input:focus {
26
+ outline: none;
27
+ }
28
+
29
+ .dc-text-input__native-input:disabled {
30
+ color: inherit;
31
+ -webkit-text-fill-color: inherit;
32
+ }
33
+
34
+ .dc-text-input__add-on {
35
+ display: inline-flex;
36
+ flex: none;
37
+ padding: 0;
38
+ color: var(--dc-input-add-on-color);
39
+ border-radius: inherit;
40
+ }
41
+
42
+ .dc-input_disabled .dc-text-input__add-on {
43
+ color: var(--dc-input-disabled-add-on-color);
44
+ }
45
+
46
+ .dc-text-input > *:first-child {
47
+ padding-left: var(--dc-input-gap);
48
+ }
49
+
50
+ .dc-text-input > *:last-child {
51
+ padding-right: var(--dc-input-gap);
52
+ }
@@ -1,8 +1,9 @@
1
1
  .dc-textarea {
2
- width: calc(var(--dc-field-w) * 1.75);
3
- // min-height = lines-count * leading-in-rem * (top-padding + bottom-padding)
4
- min-height: calc(5 * var(--dc-textarea-lh) * 1rem + var(--dc-field-pad) * 2);
5
- padding: var(--dc-field-pad);
2
+ width: calc(var(--dc-input-width) * 1.75);
3
+ min-height: calc(
4
+ 5 * var(--dc-textarea-leading) * 1rem + var(--dc-input-gap) * 2
5
+ );
6
+ padding: var(--dc-input-gap);
6
7
  resize: vertical;
7
- line-height: var(--dc-textarea-lh);
8
+ line-height: var(--dc-textarea-leading);
8
9
  }