ecabs-components 2.0.0-alpha.5 → 2.0.0-alpha.7

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 (104) hide show
  1. package/README.md +136 -85
  2. package/fesm2022/ecabs-components.mjs +3074 -1095
  3. package/fesm2022/ecabs-components.mjs.map +1 -1
  4. package/lib/base/consts/buttons.consts.d.ts +2 -0
  5. package/lib/base/consts/input.consts.d.ts +1 -0
  6. package/lib/base/directives/date-mask.directive.d.ts +6 -7
  7. package/lib/base/directives/digits-only.directive.d.ts +13 -2
  8. package/lib/base/directives/time-mask.directive.d.ts +2 -3
  9. package/lib/base/directives/time-range.directive.d.ts +1 -2
  10. package/lib/base/models/element.models.d.ts +0 -5
  11. package/lib/base/models/phone.models.d.ts +8 -1
  12. package/lib/base/models/select.models.d.ts +6 -2
  13. package/lib/base/models/sidebar.models.d.ts +10 -5
  14. package/lib/base/models/waypoint.models.d.ts +30 -0
  15. package/lib/base/pipes/phone-number-country-code.pipe.d.ts +8 -0
  16. package/lib/base/pipes/separator-append.pipe.d.ts +7 -0
  17. package/lib/base/utils/object-utils.d.ts +1 -0
  18. package/lib/base/utils/phone-number.utils.d.ts +7 -0
  19. package/lib/base/utils/select.utils.d.ts +2 -0
  20. package/lib/base/utils/time-mask.util.d.ts +3 -0
  21. package/lib/ecabs-button-toggle/ecabs-button-toggle.component.d.ts +25 -0
  22. package/lib/ecabs-button-toggle/ecabs-button-toggle.module.d.ts +9 -0
  23. package/lib/ecabs-buttons-v2/ecabs-buttons-v2.component.d.ts +23 -0
  24. package/lib/ecabs-buttons-v2/ecabs-buttons-v2.module.d.ts +11 -0
  25. package/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.component.d.ts +30 -0
  26. package/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.module.d.ts +12 -0
  27. package/lib/ecabs-chip-autocomplete/ecabs-chip-autocomplete.component.d.ts +56 -0
  28. package/lib/ecabs-chip-group/ecabs-chip-group.component.d.ts +24 -0
  29. package/lib/ecabs-chip-group/ecabs-chip-group.module.d.ts +12 -0
  30. package/lib/ecabs-date-range-picker-v2/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header-v2.component.d.ts +9 -0
  31. package/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.component.d.ts +69 -0
  32. package/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.module.d.ts +21 -0
  33. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +4 -2
  34. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.d.ts +1 -0
  35. package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.d.ts +2 -1
  36. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +1 -3
  37. package/lib/ecabs-input/ecabs-input.component.d.ts +12 -4
  38. package/lib/ecabs-input-range/ecabs-input-range.component.d.ts +44 -0
  39. package/lib/ecabs-input-range/ecabs-input-range.module.d.ts +13 -0
  40. package/lib/ecabs-phone/ecabs-phone.module.d.ts +5 -4
  41. package/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.component.d.ts +64 -0
  42. package/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.module.d.ts +13 -0
  43. package/lib/ecabs-segment/ecabs-segment.component.d.ts +8 -0
  44. package/lib/ecabs-select/ecabs-select.component.d.ts +7 -13
  45. package/lib/ecabs-select/ecabs-select.module.d.ts +5 -4
  46. package/lib/ecabs-select-icon/ecabs-select-icon.component.d.ts +8 -0
  47. package/lib/ecabs-select-icon/ecabs-select-icon.module.d.ts +9 -0
  48. package/lib/ecabs-select-v2/ecabs-select-v2.component.d.ts +25 -25
  49. package/lib/ecabs-select-v2/ecabs-select-v2.module.d.ts +2 -1
  50. package/lib/ecabs-table/ecabs-table.component.d.ts +4 -1
  51. package/lib/ecabs-time-range-input-v2/config.model.d.ts +5 -0
  52. package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.component.d.ts +52 -0
  53. package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.module.d.ts +11 -0
  54. package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.service.d.ts +12 -0
  55. package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +0 -5
  56. package/package.json +15 -14
  57. package/public-api.d.ts +25 -0
  58. package/src/assets/styles/material/_theme.scss +7 -2
  59. package/src/assets/styles/material/overrides/_autocomplete.scss +28 -3
  60. package/src/assets/styles/material/overrides/_button.scss +103 -20
  61. package/src/assets/styles/material/overrides/_card.scss +44 -5
  62. package/src/assets/styles/material/overrides/_chip.scss +125 -11
  63. package/src/assets/styles/material/overrides/_datepicker.scss +24 -2
  64. package/src/assets/styles/material/overrides/_dialog.scss +3 -3
  65. package/src/assets/styles/material/overrides/_divider.scss +5 -4
  66. package/src/assets/styles/material/overrides/_expansion.scss +3 -2
  67. package/src/assets/styles/material/overrides/_form.scss +20 -10
  68. package/src/assets/styles/material/overrides/_icon.scss +7 -3
  69. package/src/assets/styles/material/overrides/_menu.scss +4 -0
  70. package/src/assets/styles/material/overrides/_paginator.scss +13 -11
  71. package/src/assets/styles/material/overrides/_phone.scss +19 -16
  72. package/src/assets/styles/material/overrides/_select.scss +64 -42
  73. package/src/assets/styles/material/overrides/_tab.scss +27 -4
  74. package/src/assets/styles/material/overrides/_table.scss +3 -2
  75. package/src/assets/styles/material/overrides/_toaster.scss +7 -8
  76. package/src/assets/styles/material/overrides/_toggle.scss +11 -2
  77. package/src/assets/styles/material/overrides/_tooltip.scss +3 -4
  78. package/src/assets/styles/scss/base/_heading.scss +1 -1
  79. package/src/assets/styles/scss/base/_normalize.scss +12 -22
  80. package/src/assets/styles/scss/modules/_autocomplete.scss +25 -11
  81. package/src/assets/styles/scss/modules/_button.scss +80 -27
  82. package/src/assets/styles/scss/modules/_card.scss +34 -11
  83. package/src/assets/styles/scss/modules/_chip.scss +25 -13
  84. package/src/assets/styles/scss/modules/_dialog.scss +1 -1
  85. package/src/assets/styles/scss/modules/_divider.scss +2 -1
  86. package/src/assets/styles/scss/modules/_form.scss +174 -26
  87. package/src/assets/styles/scss/modules/_icon.scss +2 -1
  88. package/src/assets/styles/scss/modules/_legend.scss +5 -4
  89. package/src/assets/styles/scss/modules/_list.scss +2 -2
  90. package/src/assets/styles/scss/modules/_map.scss +7 -5
  91. package/src/assets/styles/scss/modules/_phone.scss +10 -13
  92. package/src/assets/styles/scss/modules/_select.scss +6 -5
  93. package/src/assets/styles/scss/modules/_statuses.scss +22 -17
  94. package/src/assets/styles/scss/modules/_table.scss +5 -4
  95. package/src/assets/styles/scss/modules/_timepicker.scss +3 -3
  96. package/src/assets/styles/scss/modules/_tooltip.scss +1 -1
  97. package/src/assets/styles/scss/modules/drag-drop.scss +2 -2
  98. package/src/assets/styles/scss/utilities/_colors.scss +20 -16
  99. package/src/assets/styles/scss/utilities/_fonts.scss +6 -1
  100. package/src/assets/styles/scss/utilities/_mixins.scss +37 -4
  101. package/src/assets/styles/scss/utilities/_variables.scss +14 -0
  102. package/src/assets/styles/styles.scss +4 -26
  103. package/src/assets/styles/tailwind/index.scss +2 -2
  104. package/lib/base/consts/date-mask.consts.d.ts +0 -7
@@ -1,6 +1,7 @@
1
- @use "../utilities/mixins";
1
+ @use "../utilities/helpers";
2
2
  @use "../utilities/fonts";
3
3
  @use "../utilities/functions";
4
+ @use "../utilities/mixins";
4
5
  @use "../utilities/variables";
5
6
 
6
7
  .btn {
@@ -11,22 +12,64 @@
11
12
  min-height: functions.calc-rem(42px);
12
13
  width: max-content;
13
14
  padding: functions.calc-rem(8px 24px);
14
- font-weight: fonts.$font-weight-regular;
15
+ font-weight: fonts.$font-weight-semibold;
15
16
  line-height: fonts.$base-line-height;
16
17
 
17
18
  &:after {
18
- @extend %pseudos !optional;
19
+ @extend %pseudos;
19
20
 
20
21
  border: 1px solid transparent;
21
22
  top: 0;
22
23
  right: 0;
23
24
  bottom: 0;
24
25
  left: 0;
25
- border-radius: variables.$border-radius-base;
26
+ border-radius: variables.$border-radius-large;
27
+ }
28
+
29
+ &:hover {
30
+ transition: filter variables.$trans-duration-style;
31
+ }
32
+
33
+ // #Basic
34
+ @include mixins.m(basic) {
35
+ background-color: transparent;
36
+ color: var(--color-gray-500);
37
+
38
+ &:hover {
39
+ background-color: transparent;
40
+ color: color-mix(in srgb, var(--color-gray-500), black 30%);
41
+ }
42
+
43
+ @include mixins.m(outline) {
44
+ background-color: transparent;
45
+ border-color: var(--color-gray-500);
46
+ color: var(--color-gray-500);
47
+
48
+ &:after {
49
+ border-color: var(--color-gray-500);
50
+ }
51
+
52
+ &:hover {
53
+ background-color: var(--color-gray-50);
54
+ color: color-mix(in srgb, var(--color-gray-500), black 30%);
55
+ }
56
+ }
57
+
58
+ @include mixins.m(link) {
59
+ @extend .btn--basic--outline;
60
+
61
+ &:after {
62
+ border-color: transparent;
63
+ }
64
+
65
+ &:hover {
66
+ background-color: transparent;
67
+ }
68
+ }
26
69
  }
27
70
 
28
71
  // #Primary
29
- @include mixins.e(primary) {
72
+ @include mixins.m(primary) {
30
73
  background-color: var(--color-brand-dark);
31
74
  color: var(--color-white);
32
75
 
@@ -44,25 +87,25 @@
44
87
  }
45
88
 
46
89
  &:hover {
47
- background-color: var(--color-gray-200);
90
+ background-color: var(--color-gray-50);
48
91
  }
49
92
  }
50
93
 
51
94
  @include mixins.m(link) {
52
- @extend .btn__primary--outline;
95
+ @extend .btn--primary--outline;
53
96
 
54
97
  &:after {
55
98
  border-color: transparent;
56
99
  }
57
100
 
58
101
  &:hover {
59
- background-color: var(--color-gray-200);
102
+ background-color: var(--color-gray-50);
60
103
  }
61
104
  }
62
105
  }
63
106
 
64
107
  /* #Secondary */
65
- @include mixins.e(secondary) {
108
+ @include mixins.m(secondary) {
66
109
  background-color: var(--color-brand-light);
67
110
  color: var(--color-white);
68
111
 
@@ -80,12 +123,12 @@
80
123
  }
81
124
 
82
125
  &:hover {
83
- background-color: var(--color-gray-200);
126
+ background-color: var(--color-gray-50);
84
127
  }
85
128
  }
86
129
 
87
130
  @include mixins.m(link) {
88
- @extend .btn__secondary--outline;
131
+ @extend .btn--secondary--outline;
89
132
 
90
133
  &:after {
91
134
  border-color: transparent;
@@ -94,7 +137,7 @@
94
137
  }
95
138
 
96
139
  /* #Warn */
97
- @include mixins.e(warn) {
140
+ @include mixins.m(warn) {
98
141
  background-color: var(--color-error);
99
142
  color: var(--color-white);
100
143
 
@@ -112,12 +155,12 @@
112
155
  }
113
156
 
114
157
  &:hover {
115
- background-color: var(--color-gray-200);
158
+ background-color: var(--color-gray-50);
116
159
  }
117
160
  }
118
161
 
119
162
  @include mixins.m(link) {
120
- @extend .btn__warn--outline;
163
+ @extend .btn--warn--outline;
121
164
 
122
165
  &:after {
123
166
  border-color: transparent;
@@ -126,9 +169,9 @@
126
169
  }
127
170
 
128
171
  /* #Success */
129
- @include mixins.e(success) {
130
- background-color: var(--color-success);
131
- color: var(--color-white);
172
+ @include mixins.m(success) {
173
+ background-color: var(--color-success--opacity);
174
+ color: var(--color-success);
132
175
 
133
176
  &:hover {
134
177
  background-color: rgba(var(--color-success-rgb), .88);
@@ -144,12 +187,12 @@
144
187
  }
145
188
 
146
189
  &:hover {
147
- background-color: var(--color-gray-200);
190
+ background-color: var(--color-gray-50);
148
191
  }
149
192
  }
150
193
 
151
194
  @include mixins.m(link) {
152
- @extend .btn__warn--outline;
195
+ @extend .btn--warn--outline;
153
196
 
154
197
  &:after {
155
198
  border-color: transparent;
@@ -169,15 +212,16 @@
169
212
  display: flex;
170
213
  flex-direction: column;
171
214
  gap: 1.2rem;
172
- }
215
+ }
173
216
 
174
217
  // Button group
175
218
  @include mixins.m(item) {
176
219
  min-width: functions.calc-rem(100);
220
+
177
221
  @include mixins.media-q(small) {
178
222
  width: 100%;
179
223
  margin-right: 0;
180
- }
224
+ }
181
225
 
182
226
  &:last-of-type {
183
227
  margin-right: 0;
@@ -218,16 +262,25 @@
218
262
  display: flex;
219
263
  align-items: center;
220
264
  justify-content: center;
221
-
222
- i, .mat-icon {
223
- display: inline-block;
224
- margin-right: .6rem;
225
- }
265
+ gap: .6rem;
226
266
  }
227
267
  }
228
268
 
229
269
  /* #Large */
230
270
  @include mixins.m(lg) {
231
- padding: functions.calc-rem(16 24);
271
+ padding: functions.calc-rem(16px 24px);
272
+ }
273
+
274
+ /* #Sizes */
275
+ @include mixins.m(small) {
276
+ @include mixins.btn-size(32px, 90px, 12px, 12px, 18px);
277
+ }
278
+
279
+ @include mixins.m(medium) {
280
+ @include mixins.btn-size(40px, 120px, 16px, 14px, 21px);
281
+ }
282
+
283
+ @include mixins.m(large) {
284
+ @include mixins.btn-size(48px, 140px, 20px, 16px, 24px);
232
285
  }
233
286
  }
@@ -1,28 +1,51 @@
1
- @use "../utilities/variables";
2
- @use "../utilities/mixins";
3
1
  @use "../utilities/fonts";
4
2
  @use "../utilities/functions";
3
+ @use "../utilities/mixins";
4
+ @use "../utilities/variables";
5
5
 
6
6
  .card {
7
- box-shadow: variables.$box-shadow-default;
7
+ border-radius: variables.$border-radius-xl;
8
+ border: 1px solid var(--color-gray-200);
9
+ box-shadow: variables.$box-shadow-medium;
10
+ padding: functions.calc-rem(24px 32px);
8
11
 
9
- @include mixins.m(subtitle) {
10
- @include mixins.fontSize(fonts.$font-size-sm);
12
+ @include mixins.m(inset) {
13
+ @extend .card;
11
14
 
12
- color: var(--color-gray-500);
15
+ border-radius: variables.$border-radius-xl;
16
+ border-color: var(--color-gray-100);
17
+ box-shadow: none;
18
+ background-color: var(--color-gray-50);
19
+ padding: functions.calc-rem(16px);
20
+ }
21
+
22
+ @include mixins.e(header) {
23
+ padding: functions.calc-rem(0 0 12px 0);
13
24
  }
14
25
 
15
- @include mixins.m(title) {
16
- @include mixins.fontSize(fonts.$font-heading-xs);
26
+ @include mixins.e(title) {
27
+ @include mixins.fontSize(fonts.$font-size-base);
17
28
 
29
+ line-height: 1.5;
30
+ padding-bottom: functions.calc-rem(4px);
18
31
  margin: 0;
19
- padding-top: 2rem;
20
- padding-left: 1.5rem;
21
32
  color: var(--color-brand-dark);
22
33
  font-weight: fonts.$font-weight-semibold;
34
+
35
+
36
+ @include mixins.m(divider) {
37
+ margin-top: 0;
38
+ }
39
+ }
40
+
41
+ @include mixins.e(subtitle) {
42
+ @include mixins.fontSize(fonts.$font-size-sm);
43
+
44
+ color: var(--color-gray-500);
45
+ line-height: 1.5;
23
46
  }
24
47
 
25
48
  @include mixins.e(content) {
26
- padding: functions.calc-rem(32 24);
49
+ padding: functions.calc-rem(20px 0 0 0);
27
50
  }
28
51
  }
@@ -1,7 +1,7 @@
1
- @use "../utilities/mixins";
2
1
  @use "../utilities/fonts";
3
- @use "../utilities/variables";
4
2
  @use "../utilities/functions";
3
+ @use "../utilities/mixins";
4
+ @use "../utilities/variables";
5
5
 
6
6
  .chip {
7
7
  @include mixins.fontSize(fonts.$font-size-base);
@@ -9,49 +9,61 @@
9
9
  border-radius: variables.$border-radius-base;
10
10
  display: flex;
11
11
  width: fit-content;
12
- padding: functions.calc-rem(6px 8px);
12
+ min-width: functions.calc-rem(56px);
13
+ padding: functions.calc-rem(8px 12px);
13
14
  align-items: center;
14
15
  justify-content: center;
15
- background-color: var(--color-gray-200) !important;
16
+ background-color: var(--color-gray-50);
16
17
  color: var(--color-gray-500);
17
18
  font-weight: fonts.$font-weight-regular;
19
+ cursor: pointer;
20
+
21
+ &:hover {
22
+ border-color: var(--color-gray-300);
23
+ }
24
+
25
+ @include mixins.e(standard) {
26
+ width: 7.2rem;
27
+ max-width: 7.2rem;
28
+ }
18
29
 
19
30
  // #Info
20
31
  @include mixins.m(info) {
21
- background-color: rgba(var(--color-info-rgb), .06) !important;
32
+ background-color: rgba(var(--color-info-rgb), .06);
22
33
  color: var(--color-info);
23
34
  }
24
35
 
25
36
  // #Warn
26
37
  @include mixins.m(warn) {
27
- background-color: rgba(var(--color-warn-rgb), .06) !important;
28
- color: var(--color-warn);
38
+ background-color: var(--color-warning-opacity);
39
+ color: var(--color-warning);
29
40
  }
30
41
 
31
42
  // #Danger
32
43
  @include mixins.m(danger) {
33
- background-color: rgba(var(--color-error-rgb), .06) !important;
44
+ background-color: rgba(var(--color-error-rgb), .06);
34
45
  color: var(--color-error);
35
46
  }
36
47
 
37
48
  // #Success
38
49
  @include mixins.m(success) {
39
- background-color: rgba(var(--color-success-rgb), .06) !important;
50
+ background-color: var(--color-success--opacity);
40
51
  color: var(--color-success);
41
52
  }
42
53
 
43
54
  // #Selected
44
55
  @include mixins.m(selected) {
45
56
  background-color: var(--color-brand-light) !important;
57
+
46
58
  &, * {
47
- color: var(--color-white);
59
+ color: var(--color-white) !important;
48
60
  border-color: var(--color-brand-light);
49
- }
61
+ }
50
62
  }
51
63
 
52
64
  @include mixins.m(not-selected) {
53
- border: 1px solid var(--color-gray-300);
65
+ border: 1px solid var(--color-gray-300) !important;
54
66
  background-color: var(--color-white) !important;
55
- color: var(--color-black);
67
+ color: var(--color-black) !important;
56
68
  }
57
69
  }
@@ -1,5 +1,5 @@
1
- @use "../utilities/mixins";
2
1
  @use "../utilities/fonts";
2
+ @use "../utilities/mixins";
3
3
  @use "../utilities/variables";
4
4
 
5
5
  .dialog {
@@ -1,3 +1,4 @@
1
1
  .divider {
2
- border-top-color: var(--color-gray-300);
2
+ border-top-color: var(--color-gray-100);
3
+ color: var(--color-gray-100);
3
4
  }
@@ -1,6 +1,7 @@
1
- @use "../utilities/mixins";
1
+ @use "../utilities/helpers";
2
2
  @use "../utilities/fonts";
3
3
  @use "../utilities/functions";
4
+ @use "../utilities/mixins";
4
5
  @use "../utilities/variables";
5
6
 
6
7
  $form-input-icon-size: 18px;
@@ -31,7 +32,7 @@ form {
31
32
 
32
33
  // #Label Note
33
34
  @include mixins.e(label-note) {
34
- @include mixins.fontSize(fonts.$font-size-sm);
35
+ @include mixins.fontSize(fonts.$font-size-md);
35
36
 
36
37
  display: inline-block;
37
38
  margin-bottom: 0.25rem;
@@ -44,9 +45,9 @@ form {
44
45
  @include mixins.fontSize(fonts.$font-size-base);
45
46
  display: block;
46
47
  width: 100%;
47
- padding: functions.calc-rem(8) functions.calc-rem(16);
48
- border-radius: variables.$border-radius-base;
49
- border: 1px solid var(--color-gray-500);
48
+ padding: functions.calc-rem(8px 16px);
49
+ border-radius: variables.$border-radius-medium;
50
+ border: 1px solid var(--color-gray-300);
50
51
  color: var(--color-black);
51
52
  line-height: fonts.$base-line-height;
52
53
 
@@ -54,19 +55,94 @@ form {
54
55
  border-color: var(--color-brand-dark);
55
56
  }
56
57
 
58
+ &:focus-visible {
59
+ outline: none;
60
+ }
61
+
57
62
  @include mixins.m(wrapper) {
58
63
  // wrapper
59
64
  display: flex;
60
65
  position: relative;
61
66
  line-height: 1;
67
+
68
+ @include mixins.m(fluid) {
69
+ width: fit-content;
70
+ max-width: 100%;
71
+ margin-left: auto; // pin the right edge, grow leftward
72
+ align-items: stretch;
73
+ overflow: hidden;
74
+ border: 1px solid var(--color-gray-300);
75
+ border-radius: variables.$border-radius-medium;
76
+ background-color: var(--color-white, #fff);
77
+
78
+ &:focus-within {
79
+ border-color: var(--color-brand-dark);
80
+ }
81
+
82
+ .form-field__input {
83
+ width: auto;
84
+ min-width: 0;
85
+ flex: 0 0 auto;
86
+ box-sizing: border-box;
87
+ border: 0;
88
+ border-radius: 0;
89
+ padding-right: 0;
90
+ text-align: right;
91
+ background-color: transparent;
92
+
93
+ &:focus {
94
+ border-color: transparent;
95
+ }
96
+ }
97
+
98
+ .form-field__input--suffix {
99
+ position: static !important;
100
+ top: auto;
101
+ right: auto;
102
+ flex: 0 0 auto;
103
+ display: inline-flex;
104
+ align-items: center;
105
+ transform: none;
106
+ margin-left: functions.calc-rem(4px); // gap between the value and the symbol
107
+ padding-right: functions.calc-rem(16px);
108
+ white-space: nowrap;
109
+ pointer-events: none;
110
+
111
+ &,
112
+ i,
113
+ .mat-icon {
114
+ @include mixins.fontSize(fonts.$font-size-base);
115
+
116
+ width: auto;
117
+ height: auto;
118
+ }
119
+ }
120
+ }
121
+ }
122
+
123
+ @include mixins.m(sizer) {
124
+ @include mixins.fontSize(fonts.$font-size-base);
125
+
126
+ position: absolute;
127
+ top: 0;
128
+ left: 0;
129
+ height: 0;
130
+ padding: 0 0 0 functions.calc-rem(16px);
131
+ border: 0;
132
+ box-sizing: border-box;
133
+ overflow: hidden;
134
+ visibility: hidden;
135
+ pointer-events: none;
136
+ white-space: pre;
137
+ line-height: fonts.$base-line-height;
62
138
  }
63
139
 
64
140
  @include mixins.m(suffix) {
65
141
  // suffix
66
142
  position: absolute !important;
67
143
  top: 50%;
68
- right: functions.calc-rem(16);
69
- color: var(--color-gray-500);
144
+ right: functions.calc-rem(16px);
145
+ color: var(--color-gray-300);
70
146
  transform: translateY(-50%);
71
147
 
72
148
  &,
@@ -83,13 +159,14 @@ form {
83
159
  @extend .form-field__input--suffix;
84
160
 
85
161
  right: unset;
86
- left: functions.calc-rem(16);
162
+ left: functions.calc-rem(16px);
87
163
  }
88
164
 
89
165
  @include mixins.m(disabled) {
90
166
  // disabled
91
167
  background-color: var(--color-gray-100);
92
- border-color: transparent;
168
+ opacity: .5;
169
+ pointer-events: none;
93
170
  }
94
171
 
95
172
  @include mixins.m(invalid) {
@@ -104,9 +181,9 @@ form {
104
181
  @include mixins.fontSize(fonts.$font-size-base);
105
182
  display: block;
106
183
  width: 100%;
107
- padding: functions.calc-rem(16);
108
- border-radius: variables.$border-radius-base;
109
- border: 1px solid var(--color-gray-500);
184
+ padding: functions.calc-rem(16px);
185
+ border-radius: variables.$border-radius-medium;
186
+ border: 1px solid var(--color-gray-300);
110
187
  color: var(--color-black);
111
188
  line-height: fonts.$base-line-height;
112
189
 
@@ -125,8 +202,8 @@ form {
125
202
  // suffix
126
203
  position: absolute !important;
127
204
  top: 50%;
128
- right: functions.calc-rem(16);
129
- color: var(--color-gray-500);
205
+ right: functions.calc-rem(16px);
206
+ color: var(--color-gray-100);
130
207
  transform: translateY(-50%);
131
208
 
132
209
  &,
@@ -143,13 +220,82 @@ form {
143
220
  @extend .form-field__input--suffix;
144
221
 
145
222
  right: unset;
146
- left: functions.calc-rem(16);
223
+ left: functions.calc-rem(16px);
224
+ }
225
+
226
+ @include mixins.m(disabled) {
227
+ // disabled
228
+ background-color: var(--color-gray-100);
229
+ opacity: .5;
230
+ pointer-events: none;
231
+ }
232
+ }
233
+
234
+ // #Range
235
+ @include mixins.e(range) {
236
+ @include mixins.fontSize(fonts.$font-size-base);
237
+ display: block;
238
+ width: 100%;
239
+ padding: functions.calc-rem(8px 16px);
240
+ color: var(--color-black);
241
+ line-height: fonts.$base-line-height;
242
+ border: none;
243
+
244
+ &:focus-visible {
245
+ outline: none;
246
+ }
247
+
248
+ @include mixins.m(wrapper) {
249
+ // wrapper
250
+ display: grid;
251
+ grid-template-columns: 1fr auto 1fr;
252
+ border-radius: functions.calc-rem(variables.$border-radius-large);
253
+ border: 1px solid var(--color-gray-300);
254
+ align-items: center;
255
+ line-height: 1;
256
+ background-color: var(--color-white);
257
+
258
+ &:focus-within {
259
+ border-color: var(--color-brand-dark);
260
+ }
261
+ }
262
+
263
+ @include mixins.m(suffix) {
264
+ // suffix
265
+ position: absolute !important;
266
+ top: 50%;
267
+ right: functions.calc-rem(16px);
268
+ color: var(--color-gray-100);
269
+ transform: translateY(-50%);
270
+
271
+ &,
272
+ i,
273
+ .mat-icon {
274
+ @include mixins.fontSize($form-input-icon-size);
275
+ width: functions.calc-rem($form-input-icon-size);
276
+ height: functions.calc-rem($form-input-icon-size);
277
+ }
278
+ }
279
+
280
+ @include mixins.m(prefix) {
281
+ // prefix
282
+ @extend .form-field__range--suffix;
283
+
284
+ right: unset;
285
+ left: functions.calc-rem(16px);
147
286
  }
148
287
 
149
288
  @include mixins.m(disabled) {
150
289
  // disabled
151
290
  background-color: var(--color-gray-100);
152
- border-color: transparent;
291
+ opacity: .5;
292
+ pointer-events: none;
293
+ }
294
+
295
+ @include mixins.m(invalid) {
296
+ // invalid
297
+ border-color: var(--color-error) !important;
298
+ color: var(--color-error) !important;
153
299
  }
154
300
  }
155
301
 
@@ -157,26 +303,34 @@ form {
157
303
  @include mixins.m(invalid) {
158
304
  &,
159
305
  .form-field__input,
160
- .form-field__textarea {
306
+ .form-field__textarea,
307
+ .form-field__range {
161
308
  color: var(--color-error);
162
309
  border-color: var(--color-error);
163
310
  }
311
+
312
+ &,
313
+ .form-field__range--wrapper {
314
+ border-color: var(--color-error);
315
+ }
164
316
  }
165
317
 
166
318
  // #Required
167
319
  @include mixins.m(required) {
168
320
  .form-field__label {
169
321
  &:after {
170
- @extend %required !optional;
322
+ @extend %required;
171
323
  }
172
324
  }
173
325
  }
174
326
 
175
327
  // #Validation
176
328
  @include mixins.e(validation) {
177
- padding-top: 0.5rem;
178
329
  @include mixins.fontSize(fonts.$font-size-xs);
330
+
331
+ padding-top: 0.5rem;
179
332
  color: var(--color-error);
333
+
180
334
  @include mixins.m(item) {
181
335
  padding-bottom: 0.6rem;
182
336
 
@@ -189,18 +343,12 @@ form {
189
343
  // #Subscript
190
344
  @include mixins.e(subscript) {
191
345
  @include mixins.m(wrapper) {
192
- @extend %pseudos !optional;
346
+ @extend %pseudos;
193
347
 
194
348
  margin-top: 1.2rem;
195
349
  }
196
350
  }
197
351
 
198
- &.disabled input,
199
- &.disabled textarea {
200
- background-color: var(--color-white-opacity-05);
201
- border-color: var(--color-gray-300);
202
- }
203
-
204
352
  .spinner {
205
353
  position: absolute;
206
354
  right: 0.25rem;
@@ -1,3 +1,4 @@
1
+ @use "../utilities/helpers";
1
2
  @use "../utilities/mixins";
2
3
  @use "../utilities/variables";
3
4
 
@@ -12,7 +13,7 @@
12
13
  @extend .icon;
13
14
 
14
15
  &:after {
15
- @extend %pseudos !optional;
16
+ @extend %pseudos;
16
17
 
17
18
  border: 1px solid var(--color-gray-400);
18
19
  border-radius: variables.$border-radius-base;