ecabs-components 2.0.0-alpha.1 → 2.0.0-alpha.11

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 (163) hide show
  1. package/README.md +187 -46
  2. package/fesm2022/ecabs-components.mjs +4991 -1255
  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/breakpoints.consts.d.ts +1 -0
  7. package/lib/base/consts/buttons.consts.d.ts +2 -0
  8. package/lib/base/consts/country-codes.d.ts +7 -0
  9. package/lib/base/consts/icon.consts.d.ts +1 -0
  10. package/lib/base/consts/input.consts.d.ts +1 -0
  11. package/lib/base/consts/status-badge.consts.d.ts +3 -0
  12. package/lib/base/consts/waypoint.consts.d.ts +8 -0
  13. package/lib/base/directives/action-menu-trigger.directive.d.ts +8 -0
  14. package/lib/base/directives/badge.directive.d.ts +26 -0
  15. package/lib/base/directives/badge.directive.module.d.ts +8 -0
  16. package/lib/base/directives/date-mask.directive.d.ts +6 -7
  17. package/lib/base/directives/digits-only.directive.d.ts +14 -2
  18. package/lib/base/directives/time-mask.directive.d.ts +2 -3
  19. package/lib/base/directives/time-range.directive.d.ts +1 -2
  20. package/lib/base/directives/tooltip-if-truncated.directive.module.d.ts +2 -1
  21. package/lib/base/models/action-menu.models.d.ts +13 -0
  22. package/lib/base/models/ecabs-date-picker-translations.models.d.ts +1 -0
  23. package/lib/base/models/element.models.d.ts +0 -5
  24. package/lib/base/models/phone.models.d.ts +17 -0
  25. package/lib/base/models/select.models.d.ts +6 -2
  26. package/lib/base/models/sidebar.models.d.ts +10 -4
  27. package/lib/base/models/timepicker.models.d.ts +1 -0
  28. package/lib/base/models/waypoint.models.d.ts +30 -0
  29. package/lib/base/pipes/phone-number-country-code.pipe.d.ts +8 -0
  30. package/lib/base/pipes/search.pipe.d.ts +8 -0
  31. package/lib/base/pipes/separator-append.pipe.d.ts +7 -0
  32. package/lib/base/pipes/status-badge-variant.pipe.d.ts +8 -0
  33. package/lib/base/services/ecabs-components.service.d.ts +4 -1
  34. package/lib/base/utils/icon.utils.d.ts +2 -0
  35. package/lib/base/utils/object-utils.d.ts +1 -1
  36. package/lib/base/utils/phone-number.utils.d.ts +7 -0
  37. package/lib/base/utils/select.utils.d.ts +2 -0
  38. package/lib/base/utils/time-mask.util.d.ts +3 -0
  39. package/lib/base/validators/date-range.validator.d.ts +14 -0
  40. package/lib/base/validators/phone-number.validator.d.ts +4 -0
  41. package/lib/ecabs-action-menu/ecabs-action-menu.component.d.ts +26 -0
  42. package/lib/ecabs-action-menu/ecabs-action-menu.module.d.ts +13 -0
  43. package/lib/ecabs-badge/ecabs-badge.component.d.ts +41 -0
  44. package/lib/ecabs-badge/ecabs-badge.module.d.ts +13 -0
  45. package/lib/ecabs-base-phone-input/ecabs-base-phone.component.d.ts +94 -0
  46. package/lib/ecabs-base-phone-input/ecabs-base-phone.module.d.ts +17 -0
  47. package/lib/ecabs-button-toggle/ecabs-button-toggle.component.d.ts +25 -0
  48. package/lib/ecabs-button-toggle/ecabs-button-toggle.module.d.ts +9 -0
  49. package/lib/ecabs-buttons/ecabs-buttons.component.d.ts +2 -0
  50. package/lib/ecabs-buttons-v2/ecabs-buttons-v2.component.d.ts +23 -0
  51. package/lib/ecabs-buttons-v2/ecabs-buttons-v2.module.d.ts +11 -0
  52. package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.d.ts +6 -2
  53. package/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.component.d.ts +30 -0
  54. package/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.module.d.ts +12 -0
  55. package/lib/ecabs-chip-autocomplete/ecabs-chip-autocomplete.component.d.ts +56 -0
  56. package/lib/ecabs-chip-group/ecabs-chip-group.component.d.ts +24 -0
  57. package/lib/ecabs-chip-group/ecabs-chip-group.module.d.ts +12 -0
  58. package/lib/ecabs-date-picker/ecabs-date-picker.component.d.ts +3 -0
  59. package/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.component.d.ts +3 -1
  60. package/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.d.ts +3 -0
  61. package/lib/ecabs-date-range-picker-v2/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header-v2.component.d.ts +9 -0
  62. package/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.component.d.ts +69 -0
  63. package/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.module.d.ts +21 -0
  64. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +13 -5
  65. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.d.ts +2 -1
  66. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.d.ts +6 -1
  67. package/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.component.d.ts +33 -0
  68. package/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.module.d.ts +12 -0
  69. package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.d.ts +2 -1
  70. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +3 -2
  71. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.d.ts +3 -3
  72. package/lib/ecabs-input/ecabs-input.component.d.ts +13 -4
  73. package/lib/ecabs-input-range/ecabs-input-range.component.d.ts +44 -0
  74. package/lib/ecabs-input-range/ecabs-input-range.module.d.ts +13 -0
  75. package/lib/ecabs-phone/ecabs-phone.component.d.ts +8 -8
  76. package/lib/ecabs-phone/ecabs-phone.module.d.ts +5 -4
  77. package/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.component.d.ts +4 -1
  78. package/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.component.d.ts +64 -0
  79. package/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.module.d.ts +13 -0
  80. package/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.d.ts +3 -1
  81. package/lib/ecabs-segment/ecabs-segment.component.d.ts +10 -0
  82. package/lib/ecabs-select/ecabs-select.component.d.ts +5 -12
  83. package/lib/ecabs-select/ecabs-select.module.d.ts +5 -4
  84. package/lib/ecabs-select-icon/ecabs-select-icon.component.d.ts +8 -0
  85. package/lib/ecabs-select-icon/ecabs-select-icon.module.d.ts +9 -0
  86. package/lib/ecabs-select-v2/ecabs-select-v2.component.d.ts +26 -24
  87. package/lib/ecabs-select-v2/ecabs-select-v2.module.d.ts +2 -1
  88. package/lib/ecabs-table/ecabs-table.component.d.ts +4 -1
  89. package/lib/ecabs-textarea/ecabs-textarea.component.d.ts +2 -1
  90. package/lib/ecabs-time-range-input-v2/config.model.d.ts +5 -0
  91. package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.component.d.ts +52 -0
  92. package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.module.d.ts +11 -0
  93. package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.service.d.ts +12 -0
  94. package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +6 -11
  95. package/package.json +21 -16
  96. package/public-api.d.ts +45 -0
  97. package/src/assets/images/nothing-here.svg +22 -22
  98. package/src/assets/images/promotions.svg +3 -3
  99. package/src/assets/styles/material/_theme.scss +17 -12
  100. package/src/assets/styles/material/overrides/_autocomplete.scss +27 -0
  101. package/src/assets/styles/material/overrides/_badge.scss +122 -0
  102. package/src/assets/styles/material/overrides/_button.scss +95 -10
  103. package/src/assets/styles/material/overrides/_card.scss +64 -2
  104. package/src/assets/styles/material/overrides/_chip.scss +122 -2
  105. package/src/assets/styles/material/overrides/_datepicker.scss +32 -12
  106. package/src/assets/styles/material/overrides/_dialog.scss +4 -2
  107. package/src/assets/styles/material/overrides/_divider.scss +5 -2
  108. package/src/assets/styles/material/overrides/_expansion.scss +55 -7
  109. package/src/assets/styles/material/overrides/_form.scss +14 -2
  110. package/src/assets/styles/material/overrides/_icon.scss +6 -0
  111. package/src/assets/styles/material/overrides/_menu.scss +56 -1
  112. package/src/assets/styles/material/overrides/_paginator.scss +47 -12
  113. package/src/assets/styles/material/overrides/_phone.scss +27 -29
  114. package/src/assets/styles/material/overrides/_progress.scss +0 -1
  115. package/src/assets/styles/material/overrides/_select.scss +73 -51
  116. package/src/assets/styles/material/overrides/_sidebar.scss +3 -1
  117. package/src/assets/styles/material/overrides/_tab.scss +27 -1
  118. package/src/assets/styles/material/overrides/_table.scss +8 -1
  119. package/src/assets/styles/material/overrides/_toaster.scss +1 -0
  120. package/src/assets/styles/material/overrides/_toggle.scss +34 -1
  121. package/src/assets/styles/material/overrides/_toolbar.scss +3 -3
  122. package/src/assets/styles/material/overrides/_tooltip.scss +1 -0
  123. package/src/assets/styles/material/overrides/index.scss +23 -22
  124. package/src/assets/styles/scss/base/_heading.scss +11 -8
  125. package/src/assets/styles/scss/base/_normalize.scss +23 -23
  126. package/src/assets/styles/scss/base/index.scss +2 -2
  127. package/src/assets/styles/scss/modules/_autocomplete.scss +26 -8
  128. package/src/assets/styles/scss/modules/_badge.scss +132 -0
  129. package/src/assets/styles/scss/modules/_button.scss +114 -49
  130. package/src/assets/styles/scss/modules/_card.scss +54 -10
  131. package/src/assets/styles/scss/modules/_chip.scss +36 -20
  132. package/src/assets/styles/scss/modules/_datepicker.scss +6 -4
  133. package/src/assets/styles/scss/modules/_dialog.scss +10 -6
  134. package/src/assets/styles/scss/modules/_divider.scss +4 -3
  135. package/src/assets/styles/scss/modules/_form.scss +209 -56
  136. package/src/assets/styles/scss/modules/_icon.scss +6 -2
  137. package/src/assets/styles/scss/modules/_img.scss +32 -32
  138. package/src/assets/styles/scss/modules/_legend.scss +21 -15
  139. package/src/assets/styles/scss/modules/_list.scss +9 -6
  140. package/src/assets/styles/scss/modules/_map.scss +93 -8
  141. package/src/assets/styles/scss/modules/_menu.scss +52 -0
  142. package/src/assets/styles/scss/modules/_percentage.scss +41 -41
  143. package/src/assets/styles/scss/modules/_phone.scss +16 -22
  144. package/src/assets/styles/scss/modules/_select.scss +9 -5
  145. package/src/assets/styles/scss/modules/_statuses.scss +36 -31
  146. package/src/assets/styles/scss/modules/_tab.scss +3 -1
  147. package/src/assets/styles/scss/modules/_table.scss +31 -20
  148. package/src/assets/styles/scss/modules/_timepicker.scss +11 -7
  149. package/src/assets/styles/scss/modules/_toaster.scss +53 -53
  150. package/src/assets/styles/scss/modules/_tooltip.scss +7 -3
  151. package/src/assets/styles/scss/modules/drag-drop.scss +13 -9
  152. package/src/assets/styles/scss/modules/index.scss +25 -23
  153. package/src/assets/styles/scss/utilities/_breakpoints.scss +43 -0
  154. package/src/assets/styles/scss/utilities/_colors.scss +62 -52
  155. package/src/assets/styles/scss/utilities/_fonts.scss +31 -26
  156. package/src/assets/styles/scss/utilities/_functions.scss +4 -3
  157. package/src/assets/styles/scss/utilities/_helpers.scss +14 -14
  158. package/src/assets/styles/scss/utilities/_mixins.scss +38 -23
  159. package/src/assets/styles/scss/utilities/_variables.scss +14 -9
  160. package/src/assets/styles/scss/utilities/index.scss +6 -6
  161. package/src/assets/styles/styles.scss +5 -5
  162. package/src/assets/styles/tailwind/index.scss +2 -1
  163. 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
+ }