ecabs-components 2.0.0-alpha.0 → 2.0.0-alpha.10

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 (161) hide show
  1. package/README.md +186 -43
  2. package/fesm2022/ecabs-components.mjs +4989 -1256
  3. package/fesm2022/ecabs-components.mjs.map +1 -1
  4. package/lib/base/adapters/date.adapter.d.ts +12 -0
  5. package/lib/base/consts/badge.consts.d.ts +5 -0
  6. package/lib/base/consts/buttons.consts.d.ts +2 -0
  7. package/lib/base/consts/country-codes.d.ts +7 -0
  8. package/lib/base/consts/icon.consts.d.ts +1 -0
  9. package/lib/base/consts/input.consts.d.ts +1 -0
  10. package/lib/base/consts/status-badge.consts.d.ts +3 -0
  11. package/lib/base/consts/waypoint.consts.d.ts +8 -0
  12. package/lib/base/directives/action-menu-trigger.directive.d.ts +8 -0
  13. package/lib/base/directives/badge.directive.d.ts +26 -0
  14. package/lib/base/directives/badge.directive.module.d.ts +8 -0
  15. package/lib/base/directives/date-mask.directive.d.ts +6 -7
  16. package/lib/base/directives/digits-only.directive.d.ts +14 -2
  17. package/lib/base/directives/time-mask.directive.d.ts +2 -3
  18. package/lib/base/directives/time-range.directive.d.ts +1 -2
  19. package/lib/base/directives/tooltip-if-truncated.directive.module.d.ts +2 -1
  20. package/lib/base/models/action-menu.models.d.ts +13 -0
  21. package/lib/base/models/ecabs-date-picker-translations.models.d.ts +1 -0
  22. package/lib/base/models/element.models.d.ts +0 -5
  23. package/lib/base/models/phone.models.d.ts +17 -0
  24. package/lib/base/models/select.models.d.ts +6 -2
  25. package/lib/base/models/sidebar.models.d.ts +10 -4
  26. package/lib/base/models/timepicker.models.d.ts +1 -0
  27. package/lib/base/models/waypoint.models.d.ts +30 -0
  28. package/lib/base/pipes/phone-number-country-code.pipe.d.ts +8 -0
  29. package/lib/base/pipes/search.pipe.d.ts +8 -0
  30. package/lib/base/pipes/separator-append.pipe.d.ts +7 -0
  31. package/lib/base/pipes/status-badge-variant.pipe.d.ts +8 -0
  32. package/lib/base/services/ecabs-components.service.d.ts +4 -1
  33. package/lib/base/utils/icon.utils.d.ts +2 -0
  34. package/lib/base/utils/object-utils.d.ts +1 -1
  35. package/lib/base/utils/phone-number.utils.d.ts +7 -0
  36. package/lib/base/utils/select.utils.d.ts +2 -0
  37. package/lib/base/utils/time-mask.util.d.ts +3 -0
  38. package/lib/base/validators/date-range.validator.d.ts +14 -0
  39. package/lib/base/validators/phone-number.validator.d.ts +4 -0
  40. package/lib/ecabs-action-menu/ecabs-action-menu.component.d.ts +26 -0
  41. package/lib/ecabs-action-menu/ecabs-action-menu.module.d.ts +13 -0
  42. package/lib/ecabs-badge/ecabs-badge.component.d.ts +41 -0
  43. package/lib/ecabs-badge/ecabs-badge.module.d.ts +13 -0
  44. package/lib/ecabs-base-phone-input/ecabs-base-phone.component.d.ts +94 -0
  45. package/lib/ecabs-base-phone-input/ecabs-base-phone.module.d.ts +17 -0
  46. package/lib/ecabs-button-toggle/ecabs-button-toggle.component.d.ts +25 -0
  47. package/lib/ecabs-button-toggle/ecabs-button-toggle.module.d.ts +9 -0
  48. package/lib/ecabs-buttons/ecabs-buttons.component.d.ts +2 -0
  49. package/lib/ecabs-buttons-v2/ecabs-buttons-v2.component.d.ts +23 -0
  50. package/lib/ecabs-buttons-v2/ecabs-buttons-v2.module.d.ts +11 -0
  51. package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.d.ts +6 -2
  52. package/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.component.d.ts +30 -0
  53. package/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.module.d.ts +12 -0
  54. package/lib/ecabs-chip-autocomplete/ecabs-chip-autocomplete.component.d.ts +56 -0
  55. package/lib/ecabs-chip-group/ecabs-chip-group.component.d.ts +24 -0
  56. package/lib/ecabs-chip-group/ecabs-chip-group.module.d.ts +12 -0
  57. package/lib/ecabs-date-picker/ecabs-date-picker.component.d.ts +3 -0
  58. package/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.component.d.ts +3 -1
  59. package/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.d.ts +3 -0
  60. package/lib/ecabs-date-range-picker-v2/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header-v2.component.d.ts +9 -0
  61. package/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.component.d.ts +69 -0
  62. package/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.module.d.ts +21 -0
  63. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +13 -5
  64. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.d.ts +2 -1
  65. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.d.ts +6 -1
  66. package/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.component.d.ts +33 -0
  67. package/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.module.d.ts +12 -0
  68. package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.d.ts +2 -1
  69. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +3 -2
  70. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.d.ts +3 -3
  71. package/lib/ecabs-input/ecabs-input.component.d.ts +13 -4
  72. package/lib/ecabs-input-range/ecabs-input-range.component.d.ts +44 -0
  73. package/lib/ecabs-input-range/ecabs-input-range.module.d.ts +13 -0
  74. package/lib/ecabs-phone/ecabs-phone.component.d.ts +8 -8
  75. package/lib/ecabs-phone/ecabs-phone.module.d.ts +5 -4
  76. package/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.component.d.ts +4 -1
  77. package/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.component.d.ts +64 -0
  78. package/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.module.d.ts +13 -0
  79. package/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.d.ts +3 -1
  80. package/lib/ecabs-segment/ecabs-segment.component.d.ts +10 -0
  81. package/lib/ecabs-select/ecabs-select.component.d.ts +5 -12
  82. package/lib/ecabs-select/ecabs-select.module.d.ts +5 -4
  83. package/lib/ecabs-select-icon/ecabs-select-icon.component.d.ts +8 -0
  84. package/lib/ecabs-select-icon/ecabs-select-icon.module.d.ts +9 -0
  85. package/lib/ecabs-select-v2/ecabs-select-v2.component.d.ts +26 -24
  86. package/lib/ecabs-select-v2/ecabs-select-v2.module.d.ts +2 -1
  87. package/lib/ecabs-table/ecabs-table.component.d.ts +4 -1
  88. package/lib/ecabs-textarea/ecabs-textarea.component.d.ts +2 -1
  89. package/lib/ecabs-time-range-input-v2/config.model.d.ts +5 -0
  90. package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.component.d.ts +52 -0
  91. package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.module.d.ts +11 -0
  92. package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.service.d.ts +12 -0
  93. package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +6 -11
  94. package/package.json +18 -17
  95. package/public-api.d.ts +44 -0
  96. package/src/assets/images/nothing-here.svg +22 -22
  97. package/src/assets/images/promotions.svg +3 -3
  98. package/src/assets/styles/material/_theme.scss +17 -12
  99. package/src/assets/styles/material/overrides/_autocomplete.scss +27 -0
  100. package/src/assets/styles/material/overrides/_badge.scss +122 -0
  101. package/src/assets/styles/material/overrides/_button.scss +95 -10
  102. package/src/assets/styles/material/overrides/_card.scss +64 -2
  103. package/src/assets/styles/material/overrides/_chip.scss +122 -2
  104. package/src/assets/styles/material/overrides/_datepicker.scss +32 -12
  105. package/src/assets/styles/material/overrides/_dialog.scss +4 -2
  106. package/src/assets/styles/material/overrides/_divider.scss +5 -2
  107. package/src/assets/styles/material/overrides/_expansion.scss +55 -7
  108. package/src/assets/styles/material/overrides/_form.scss +14 -2
  109. package/src/assets/styles/material/overrides/_icon.scss +6 -0
  110. package/src/assets/styles/material/overrides/_menu.scss +56 -1
  111. package/src/assets/styles/material/overrides/_paginator.scss +47 -12
  112. package/src/assets/styles/material/overrides/_phone.scss +27 -19
  113. package/src/assets/styles/material/overrides/_progress.scss +0 -1
  114. package/src/assets/styles/material/overrides/_select.scss +73 -51
  115. package/src/assets/styles/material/overrides/_sidebar.scss +3 -1
  116. package/src/assets/styles/material/overrides/_tab.scss +27 -1
  117. package/src/assets/styles/material/overrides/_table.scss +8 -1
  118. package/src/assets/styles/material/overrides/_toaster.scss +1 -0
  119. package/src/assets/styles/material/overrides/_toggle.scss +33 -0
  120. package/src/assets/styles/material/overrides/_toolbar.scss +3 -3
  121. package/src/assets/styles/material/overrides/_tooltip.scss +1 -0
  122. package/src/assets/styles/material/overrides/index.scss +23 -22
  123. package/src/assets/styles/scss/base/_heading.scss +11 -8
  124. package/src/assets/styles/scss/base/_normalize.scss +23 -23
  125. package/src/assets/styles/scss/base/index.scss +2 -2
  126. package/src/assets/styles/scss/modules/_autocomplete.scss +26 -8
  127. package/src/assets/styles/scss/modules/_badge.scss +132 -0
  128. package/src/assets/styles/scss/modules/_button.scss +114 -49
  129. package/src/assets/styles/scss/modules/_card.scss +54 -10
  130. package/src/assets/styles/scss/modules/_chip.scss +36 -20
  131. package/src/assets/styles/scss/modules/_datepicker.scss +6 -4
  132. package/src/assets/styles/scss/modules/_dialog.scss +10 -6
  133. package/src/assets/styles/scss/modules/_divider.scss +4 -3
  134. package/src/assets/styles/scss/modules/_form.scss +209 -56
  135. package/src/assets/styles/scss/modules/_icon.scss +6 -2
  136. package/src/assets/styles/scss/modules/_img.scss +32 -32
  137. package/src/assets/styles/scss/modules/_legend.scss +21 -15
  138. package/src/assets/styles/scss/modules/_list.scss +9 -6
  139. package/src/assets/styles/scss/modules/_map.scss +93 -8
  140. package/src/assets/styles/scss/modules/_menu.scss +52 -0
  141. package/src/assets/styles/scss/modules/_percentage.scss +41 -41
  142. package/src/assets/styles/scss/modules/_phone.scss +17 -20
  143. package/src/assets/styles/scss/modules/_select.scss +9 -5
  144. package/src/assets/styles/scss/modules/_statuses.scss +36 -31
  145. package/src/assets/styles/scss/modules/_tab.scss +3 -1
  146. package/src/assets/styles/scss/modules/_table.scss +31 -20
  147. package/src/assets/styles/scss/modules/_timepicker.scss +11 -7
  148. package/src/assets/styles/scss/modules/_toaster.scss +53 -53
  149. package/src/assets/styles/scss/modules/_tooltip.scss +7 -3
  150. package/src/assets/styles/scss/modules/drag-drop.scss +13 -9
  151. package/src/assets/styles/scss/modules/index.scss +25 -23
  152. package/src/assets/styles/scss/utilities/_colors.scss +62 -52
  153. package/src/assets/styles/scss/utilities/_fonts.scss +31 -26
  154. package/src/assets/styles/scss/utilities/_functions.scss +4 -3
  155. package/src/assets/styles/scss/utilities/_helpers.scss +14 -14
  156. package/src/assets/styles/scss/utilities/_mixins.scss +50 -6
  157. package/src/assets/styles/scss/utilities/_variables.scss +14 -0
  158. package/src/assets/styles/scss/utilities/index.scss +6 -6
  159. package/src/assets/styles/styles.scss +5 -5
  160. package/src/assets/styles/tailwind/index.scss +2 -1
  161. package/lib/base/consts/date-mask.consts.d.ts +0 -7
@@ -1,53 +1,69 @@
1
+ @use "../utilities/fonts";
2
+ @use "../utilities/functions";
3
+ @use "../utilities/mixins";
4
+ @use "../utilities/variables";
5
+
1
6
  .chip {
2
- @include fontSize($font-size-base);
7
+ @include mixins.fontSize(fonts.$font-size-base);
3
8
 
4
- border-radius: $border-radius-base;
9
+ border-radius: variables.$border-radius-base;
5
10
  display: flex;
6
11
  width: fit-content;
7
- padding: calc-rem(6px 8px);
12
+ min-width: functions.calc-rem(56px);
13
+ padding: functions.calc-rem(8px 12px);
8
14
  align-items: center;
9
15
  justify-content: center;
10
- background-color: var(--color-gray-200);
16
+ background-color: var(--color-gray-50);
11
17
  color: var(--color-gray-500);
12
- font-weight: $font-weight-regular;
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
+ }
13
29
 
14
30
  // #Info
15
- @include m(info) {
31
+ @include mixins.m(info) {
16
32
  background-color: rgba(var(--color-info-rgb), .06);
17
33
  color: var(--color-info);
18
34
  }
19
35
 
20
36
  // #Warn
21
- @include m(warn) {
22
- background-color: rgba(var(--color-warn-rgb), .06);
23
- color: var(--color-warn);
37
+ @include mixins.m(warn) {
38
+ background-color: var(--color-warning-opacity);
39
+ color: var(--color-warning);
24
40
  }
25
41
 
26
42
  // #Danger
27
- @include m(danger) {
43
+ @include mixins.m(danger) {
28
44
  background-color: rgba(var(--color-error-rgb), .06);
29
45
  color: var(--color-error);
30
46
  }
31
47
 
32
48
  // #Success
33
- @include m(success) {
34
- background-color: rgba(var(--color-success-rgb), .06);
49
+ @include mixins.m(success) {
50
+ background-color: var(--color-success--opacity);
35
51
  color: var(--color-success);
36
52
  }
37
53
 
38
54
  // #Selected
39
- @include m(selected) {
55
+ @include mixins.m(selected) {
56
+ background-color: var(--color-brand-light) !important;
57
+
40
58
  &, * {
41
- color: var(--color-white);
59
+ color: var(--color-white) !important;
42
60
  border-color: var(--color-brand-light);
43
61
  }
44
-
45
- background-color: var(--color-brand-light);
46
62
  }
47
63
 
48
- @include m(not-selected) {
49
- border: 1px solid var(--color-gray-300);
50
- background-color: var(--color-white);
51
- color: var(--color-black);
64
+ @include mixins.m(not-selected) {
65
+ border: 1px solid var(--color-gray-300) !important;
66
+ background-color: var(--color-white) !important;
67
+ color: var(--color-black) !important;
52
68
  }
53
69
  }
@@ -1,7 +1,9 @@
1
- @import "../utilities/index";
1
+ @use "../utilities/functions";
2
+ @use "../utilities/mixins";
3
+
2
4
 
3
5
  .datepicker-ui {
4
- @include e(toggle) {
6
+ @include mixins.e(toggle) {
5
7
  position: absolute !important;
6
8
  right: 0;
7
9
  line-height: 1.25;
@@ -27,7 +29,7 @@ ecabs-date-picker {
27
29
  flex: 1;
28
30
  padding-left: 10px;
29
31
  vertical-align: top;
30
- max-width: calc-rem(160);
32
+ max-width: functions.calc-rem(160);
31
33
 
32
34
  ecabs-timepicker .timeInputWrapper {
33
35
  display: block;
@@ -89,7 +91,7 @@ ecabs-date-picker {
89
91
  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjQuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA0OCA0OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDggNDg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojNkI2RDczO30KPC9zdHlsZT4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTksNDRjLTAuOCwwLTEuNS0wLjMtMi4xLTAuOUM2LjMsNDIuNSw2LDQxLjgsNiw0MVYxMGMwLTAuOCwwLjMtMS41LDAuOS0yLjFTOC4yLDcsOSw3aDMuMlY0aDMuMnYzaDE3VjRoMy4ydjMKCUgzOWMwLjgsMCwxLjUsMC4zLDIuMSwwLjlDNDEuNyw4LjUsNDIsOS4yLDQyLDEwdjMxYzAsMC44LTAuMywxLjUtMC45LDIuMUM0MC41LDQzLjcsMzkuOCw0NCwzOSw0NEg5eiBNOSw0MWgzMGwwLDBsMCwwVjE5LjVIOVY0MQoJTDksNDFMOSw0MXogTTksMTYuNWgzMFYxMGwwLDBsMCwwSDlsMCwwbDAsMFYxNi41eiBNOSwxNi41VjEwbDAsMGwwLDBsMCwwbDAsMFYxNi41eiIvPgo8L3N2Zz4K);
90
92
  background-position: center center;
91
93
  background-repeat: no-repeat;
92
- background-size: calc-rem(22);
94
+ background-size: functions.calc-rem(22);
93
95
 
94
96
  &.disabled {
95
97
  cursor: not-allowed;
@@ -1,15 +1,19 @@
1
+ @use "../utilities/fonts";
2
+ @use "../utilities/mixins";
3
+ @use "../utilities/variables";
4
+
1
5
  .dialog {
2
- @include e(title) {
3
- @include fontSize($font-heading-xs);
6
+ @include mixins.e(title) {
7
+ @include mixins.fontSize(fonts.$font-heading-xs);
4
8
 
5
- font-weight: $font-weight-semibold;
9
+ font-weight: fonts.$font-weight-semibold;
6
10
  color: var(--color-brand-dark);
7
- line-height: $base-line-height;
11
+ line-height: fonts.$base-line-height;
8
12
  }
9
13
 
10
- @include m(maps) {
14
+ @include mixins.m(maps) {
11
15
  padding: 1px;
12
- border-radius: $border-radius-base * 2;
16
+ border-radius: variables.$border-radius-base * 2;
13
17
  background: #9cc0f9;
14
18
  }
15
19
  }
@@ -1,3 +1,4 @@
1
- .divider {
2
- border-top-color: var(--color-gray-300);
3
- }
1
+ .divider {
2
+ border-top-color: var(--color-gray-100);
3
+ color: var(--color-gray-100);
4
+ }
@@ -1,3 +1,9 @@
1
+ @use "../utilities/helpers";
2
+ @use "../utilities/fonts";
3
+ @use "../utilities/functions";
4
+ @use "../utilities/mixins";
5
+ @use "../utilities/variables";
6
+
1
7
  $form-input-icon-size: 18px;
2
8
 
3
9
  .form,
@@ -6,8 +12,8 @@ form {
6
12
  margin-bottom: 1rem;
7
13
  position: relative;
8
14
  // #Label
9
- @include e(label) {
10
- @include fontSize($font-size-xs);
15
+ @include mixins.e(label) {
16
+ @include mixins.fontSize(fonts.$font-size-xs);
11
17
 
12
18
  display: inline-block;
13
19
  margin-bottom: 0.25rem;
@@ -16,17 +22,17 @@ form {
16
22
 
17
23
 
18
24
  .icon {
19
- @include fontSize($font-size-base);
25
+ @include mixins.fontSize(fonts.$font-size-base);
20
26
 
21
27
  display: inline;
22
28
  vertical-align: middle;
23
- margin-left: calc-rem(6px);
29
+ margin-left: functions.calc-rem(6px);
24
30
  }
25
31
  }
26
32
 
27
33
  // #Label Note
28
- @include e(label-note) {
29
- @include fontSize($font-size-sm);
34
+ @include mixins.e(label-note) {
35
+ @include mixins.fontSize(fonts.$font-size-md);
30
36
 
31
37
  display: inline-block;
32
38
  margin-bottom: 0.25rem;
@@ -35,59 +41,135 @@ form {
35
41
  }
36
42
 
37
43
  // #Input
38
- @include e(input) {
39
- @include fontSize($font-size-base);
44
+ @include mixins.e(input) {
45
+ @include mixins.fontSize(fonts.$font-size-base);
40
46
  display: block;
41
47
  width: 100%;
42
- padding: calc-rem(8) calc-rem(16);
43
- border-radius: $border-radius-base;
44
- 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);
45
51
  color: var(--color-black);
46
- line-height: $base-line-height;
52
+ line-height: fonts.$base-line-height;
47
53
 
48
54
  &:focus {
49
55
  border-color: var(--color-brand-dark);
50
56
  }
51
57
 
52
- @include m(wrapper) {
58
+ &:focus-visible {
59
+ outline: none;
60
+ }
61
+
62
+ @include mixins.m(wrapper) {
53
63
  // wrapper
54
64
  display: flex;
55
65
  position: relative;
56
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;
57
138
  }
58
139
 
59
- @include m(suffix) {
140
+ @include mixins.m(suffix) {
60
141
  // suffix
61
142
  position: absolute !important;
62
143
  top: 50%;
63
- right: calc-rem(16);
64
- color: var(--color-gray-500);
144
+ right: functions.calc-rem(16px);
145
+ color: var(--color-gray-300);
65
146
  transform: translateY(-50%);
66
147
 
67
148
  &,
68
149
  i,
69
150
  .mat-icon {
70
- @include fontSize($form-input-icon-size);
71
- width: calc-rem($form-input-icon-size);
72
- height: calc-rem($form-input-icon-size);
151
+ @include mixins.fontSize($form-input-icon-size);
152
+ width: functions.calc-rem($form-input-icon-size);
153
+ height: functions.calc-rem($form-input-icon-size);
73
154
  }
74
155
  }
75
156
 
76
- @include m(prefix) {
157
+ @include mixins.m(prefix) {
77
158
  // prefix
78
159
  @extend .form-field__input--suffix;
79
160
 
80
161
  right: unset;
81
- left: calc-rem(16);
162
+ left: functions.calc-rem(16px);
82
163
  }
83
164
 
84
- @include m(disabled) {
165
+ @include mixins.m(disabled) {
85
166
  // disabled
86
167
  background-color: var(--color-gray-100);
87
- border-color: transparent;
168
+ opacity: .5;
169
+ pointer-events: none;
88
170
  }
89
171
 
90
- @include m(invalid) {
172
+ @include mixins.m(invalid) {
91
173
  // invalid
92
174
  border-color: var(--color-error);
93
175
  color: var(--color-error);
@@ -95,71 +177,146 @@ form {
95
177
  }
96
178
 
97
179
  // #Textarea
98
- @include e(textarea) {
99
- @include fontSize($font-size-base);
180
+ @include mixins.e(textarea) {
181
+ @include mixins.fontSize(fonts.$font-size-base);
100
182
  display: block;
101
183
  width: 100%;
102
- padding: calc-rem(16);
103
- border-radius: $border-radius-base;
104
- 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);
105
187
  color: var(--color-black);
106
- line-height: $base-line-height;
188
+ line-height: fonts.$base-line-height;
107
189
 
108
190
  &:focus {
109
191
  border-color: var(--color-brand-dark);
110
192
  }
111
193
 
112
- @include m(wrapper) {
194
+ @include mixins.m(wrapper) {
113
195
  // wrapper
114
196
  display: flex;
115
197
  position: relative;
116
198
  line-height: 1;
117
199
  }
118
200
 
119
- @include m(suffix) {
201
+ @include mixins.m(suffix) {
120
202
  // suffix
121
203
  position: absolute !important;
122
204
  top: 50%;
123
- right: calc-rem(16);
124
- color: var(--color-gray-500);
205
+ right: functions.calc-rem(16px);
206
+ color: var(--color-gray-100);
125
207
  transform: translateY(-50%);
126
208
 
127
209
  &,
128
210
  i,
129
211
  .mat-icon {
130
- @include fontSize($form-input-icon-size);
131
- width: calc-rem($form-input-icon-size);
132
- height: calc-rem($form-input-icon-size);
212
+ @include mixins.fontSize($form-input-icon-size);
213
+ width: functions.calc-rem($form-input-icon-size);
214
+ height: functions.calc-rem($form-input-icon-size);
133
215
  }
134
216
  }
135
217
 
136
- @include m(prefix) {
218
+ @include mixins.m(prefix) {
137
219
  // prefix
138
220
  @extend .form-field__input--suffix;
139
221
 
140
222
  right: unset;
141
- left: calc-rem(16);
223
+ left: functions.calc-rem(16px);
142
224
  }
143
225
 
144
- @include m(disabled) {
226
+ @include mixins.m(disabled) {
145
227
  // disabled
146
228
  background-color: var(--color-gray-100);
147
- border-color: transparent;
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);
286
+ }
287
+
288
+ @include mixins.m(disabled) {
289
+ // disabled
290
+ background-color: var(--color-gray-100);
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;
148
299
  }
149
300
  }
150
301
 
151
302
  // #Invalid
152
- @include m(invalid) {
303
+ @include mixins.m(invalid) {
153
304
  &,
154
305
  .form-field__input,
155
- .form-field__textarea {
306
+ .form-field__textarea,
307
+ .form-field__range {
156
308
  color: var(--color-error);
157
309
  border-color: var(--color-error);
158
310
  }
311
+
312
+ &,
313
+ .form-field__range--wrapper {
314
+ border-color: var(--color-error);
315
+ }
159
316
  }
160
317
 
161
318
  // #Required
162
- @include m(required) {
319
+ @include mixins.m(required) {
163
320
  .form-field__label {
164
321
  &:after {
165
322
  @extend %required;
@@ -168,11 +325,13 @@ form {
168
325
  }
169
326
 
170
327
  // #Validation
171
- @include e(validation) {
328
+ @include mixins.e(validation) {
329
+ @include mixins.fontSize(fonts.$font-size-xs);
330
+
172
331
  padding-top: 0.5rem;
173
- @include fontSize($font-size-xs);
174
332
  color: var(--color-error);
175
- @include m(item) {
333
+
334
+ @include mixins.m(item) {
176
335
  padding-bottom: 0.6rem;
177
336
 
178
337
  &:last-of-type {
@@ -182,20 +341,14 @@ form {
182
341
  }
183
342
 
184
343
  // #Subscript
185
- @include e(subscript) {
186
- @include m(wrapper) {
344
+ @include mixins.e(subscript) {
345
+ @include mixins.m(wrapper) {
187
346
  @extend %pseudos;
188
347
 
189
348
  margin-top: 1.2rem;
190
349
  }
191
350
  }
192
351
 
193
- &.disabled input,
194
- &.disabled textarea {
195
- background-color: var(--color-white-opacity-05);
196
- border-color: var(--color-gray-300);
197
- }
198
-
199
352
  .spinner {
200
353
  position: absolute;
201
354
  right: 0.25rem;
@@ -205,7 +358,7 @@ form {
205
358
  .hint {
206
359
  font-size: 10px;
207
360
  text-align: right;
208
- margin-right: calc-rem(17px);
361
+ margin-right: functions.calc-rem(17px);
209
362
  transform: translateY(-1rem);
210
363
  margin-bottom: -1rem;
211
364
  }
@@ -1,3 +1,7 @@
1
+ @use "../utilities/helpers";
2
+ @use "../utilities/mixins";
3
+ @use "../utilities/variables";
4
+
1
5
  .icon {
2
6
  color: var(--color-gray-500);
3
7
 
@@ -5,14 +9,14 @@
5
9
  color: var(--color-brand-light);
6
10
  }
7
11
 
8
- @include e(bordered) {
12
+ @include mixins.e(bordered) {
9
13
  @extend .icon;
10
14
 
11
15
  &:after {
12
16
  @extend %pseudos;
13
17
 
14
18
  border: 1px solid var(--color-gray-400);
15
- border-radius: $border-radius-base;
19
+ border-radius: variables.$border-radius-base;
16
20
  width: calc(100% + 0.8rem);
17
21
  height: calc(100% + 0.8rem);
18
22
  top: -0.4rem;
@@ -1,32 +1,32 @@
1
- .aspect-ratio {
2
- position: relative;
3
- display: inline-block;
4
- background-color: inherit;
5
- line-height: 1;
6
- overflow: hidden;
7
-
8
- // ***************************
9
- // #Content
10
- // ***************************/
11
- &__content { //** Fallback
12
- position: absolute;
13
- top: 50%;
14
- right: 0;
15
- bottom: 0;
16
- left: 50%;
17
- max-width: 100%;
18
- width: 100%;
19
- transform: translate(-50%, -50%);
20
-
21
- @supports (object-fit: cover) {
22
- &--cover { // cover
23
- position: static;
24
- width: 100%;
25
- height: 100%;
26
- padding: 0;
27
- object-fit: cover;
28
- transform: none;
29
- }
30
- }
31
- }
32
- }
1
+ .aspect-ratio {
2
+ position: relative;
3
+ display: inline-block;
4
+ background-color: inherit;
5
+ line-height: 1;
6
+ overflow: hidden;
7
+
8
+ // ***************************
9
+ // #Content
10
+ // ***************************/
11
+ &__content { //** Fallback
12
+ position: absolute;
13
+ top: 50%;
14
+ right: 0;
15
+ bottom: 0;
16
+ left: 50%;
17
+ max-width: 100%;
18
+ width: 100%;
19
+ transform: translate(-50%, -50%);
20
+
21
+ @supports (object-fit: cover) {
22
+ &--cover { // cover
23
+ position: static;
24
+ width: 100%;
25
+ height: 100%;
26
+ padding: 0;
27
+ object-fit: cover;
28
+ transform: none;
29
+ }
30
+ }
31
+ }
32
+ }