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,17 +1,20 @@
1
+ @use "../utilities/fonts";
2
+ @use "../utilities/mixins";
3
+
1
4
  .heading {
2
- @include m(xs) {
3
- @include fontSize($font-heading-xs);
5
+ @include mixins.m(xs) {
6
+ @include mixins.fontSize(fonts.$font-heading-xs);
4
7
  }
5
8
 
6
- @include m(sm) {
7
- @include fontSize($font-heading-sm);
9
+ @include mixins.m(sm) {
10
+ @include mixins.fontSize(fonts.$font-heading-sm);
8
11
  }
9
12
 
10
- @include m(base) {
11
- @include fontSize($font-heading-base);
13
+ @include mixins.m(base) {
14
+ @include mixins.fontSize(fonts.$font-heading-base);
12
15
  }
13
16
 
14
- @include m(lg) {
15
- @include fontSize($font-heading-lg);
17
+ @include mixins.m(lg) {
18
+ @include mixins.fontSize(fonts.$font-heading-lg);
16
19
  }
17
20
  }
@@ -1,12 +1,17 @@
1
+ @use "../utilities/fonts";
2
+ @use "../utilities/functions";
3
+ @use "../utilities/mixins";
4
+ @use "../utilities/variables";
5
+
1
6
  * {
2
7
  box-sizing: border-box;
3
8
  }
4
9
 
5
10
  html {
6
- font-family: $font-family-fallback;
11
+ font-family: fonts.$font-family-fallback;
7
12
 
8
13
  &.wf-active {
9
- font-family: $font-family-primary;
14
+ font-family: fonts.$font-family-primary;
10
15
  }
11
16
  }
12
17
 
@@ -33,7 +38,12 @@ ul, ol {
33
38
  }
34
39
 
35
40
  ::-webkit-scrollbar {
36
- width: 8px;
41
+ width: functions.calc-rem(8px);
42
+ }
43
+
44
+ ::-webkit-scrollbar-track,
45
+ ::-webkit-scrollbar-thumb {
46
+ border-radius: variables.$border-radius-base;
37
47
  }
38
48
 
39
49
  ::-webkit-scrollbar-track {
@@ -54,31 +64,21 @@ ul, ol {
54
64
  }
55
65
 
56
66
  input::placeholder {
67
+ @include mixins.fontSize(fonts.$font-size-md);
57
68
  overflow: visible;
58
69
  }
59
70
 
60
- h1 {
61
- @include fontSize($font-heading-lg);
62
- }
63
-
64
- h2 {
65
- @include fontSize($font-heading-base);
66
- }
67
-
68
- h3 {
69
- @include fontSize($font-heading-md);
70
- }
71
-
72
- h4 {
73
- @include fontSize($font-heading-sm);
74
- }
75
-
76
- h5 {
77
- @include fontSize($font-heading-xs);
78
- }
79
-
80
71
  .mat-body p,
81
72
  .mat-body-1 p,
82
73
  .mat-typography p {
83
74
  margin: inherit;
84
75
  }
76
+
77
+ fieldset:disabled {
78
+ opacity: 0.5;
79
+ cursor: not-allowed;
80
+
81
+ * {
82
+ pointer-events: none;
83
+ }
84
+ }
@@ -1,2 +1,2 @@
1
- @import "normalize";
2
- @import "heading";
1
+ @forward "normalize";
2
+ @forward "heading";
@@ -1,14 +1,28 @@
1
+ @use "../utilities/helpers";
2
+ @use "../utilities/functions";
3
+ @use "../utilities/mixins";
4
+ @use "../utilities/variables";
5
+
1
6
  .autocomplete-ui {
2
- box-shadow: $box-shadow-default;
3
- border-radius: $border-radius-base;
4
- display: flex;
5
- flex-direction: column;
7
+ position: relative;
6
8
 
7
- @include m(item) {
8
- @include fontSize(16px);
9
+ @include mixins.e(container) {
9
10
  width: 100%;
10
- padding: calc-rem(16);
11
+ background-color: var(--color-white);
12
+ box-shadow: variables.$box-shadow-default;
13
+ border-radius: functions.calc-rem(variables.$border-radius-large);
14
+ z-index: 1000;
15
+ }
16
+
17
+ @include mixins.m(item) {
18
+ @include mixins.fontSize(14px);
19
+
20
+ position: relative;
21
+ background-color: var(--color-white);
22
+ width: 100%;
23
+ padding: functions.calc-rem(12px);
11
24
  color: var(--color-black);
25
+ cursor: pointer;
12
26
 
13
27
  &::after {
14
28
  @extend %pseudos;
@@ -17,7 +31,7 @@
17
31
  left: 0;
18
32
  right: 0;
19
33
  height: 1px;
20
- background-color: var(--color-gray-100);
34
+ background-color: var(--color-gray-50);
21
35
  }
22
36
 
23
37
  &:last-of-type {
@@ -25,5 +39,9 @@
25
39
  background-color: transparent;
26
40
  }
27
41
  }
42
+
43
+ &.active {
44
+ background-color: var(--color-brand-light2)
45
+ }
28
46
  }
29
47
  }
@@ -0,0 +1,132 @@
1
+ @use "../utilities/fonts";
2
+ @use "../utilities/mixins";
3
+ @use "../utilities/variables";
4
+
5
+ .badge {
6
+ --badge-gap: 0.25rem;
7
+
8
+ display: inline-flex;
9
+ align-items: center;
10
+ gap: var(--badge-gap);
11
+
12
+ max-width: var(--badge-max-width, 100%);
13
+ border: 1px solid var(--badge-border-color, transparent);
14
+ border-radius: variables.$border-radius-base;
15
+ font-weight: fonts.$font-weight-medium;
16
+ line-height: 1;
17
+ white-space: nowrap;
18
+
19
+ @include mixins.e(icon) {
20
+ color: inherit;
21
+ flex: none;
22
+
23
+ width: var(--badge-icon-size);
24
+ height: var(--badge-icon-size);
25
+ font-size: var(--badge-icon-size);
26
+ line-height: var(--badge-icon-size);
27
+
28
+ @include mixins.m(slot) {
29
+ display: inline-flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+
33
+ &:empty {
34
+ display: none;
35
+ }
36
+
37
+ > * {
38
+ width: var(--badge-icon-size);
39
+ height: var(--badge-icon-size);
40
+ font-size: var(--badge-icon-size);
41
+ line-height: var(--badge-icon-size);
42
+ color: inherit;
43
+ }
44
+ }
45
+ }
46
+
47
+ @include mixins.e(label) {
48
+ display: block;
49
+ min-width: 0;
50
+ overflow: hidden;
51
+ text-overflow: ellipsis;
52
+
53
+ line-height: calc(4 / 3);
54
+ }
55
+
56
+ /* #Sizes */
57
+ @include mixins.m(small) {
58
+ @include mixins.badge-size(1px, 6px, fonts.$font-size-xs, 12px);
59
+ }
60
+
61
+ @include mixins.m(medium) {
62
+ @include mixins.badge-size(3px, 8px, fonts.$font-size-xs, 12px);
63
+ }
64
+
65
+ @include mixins.m(large) {
66
+ @include mixins.badge-size(6px, 12px, fonts.$font-size-md, 16px);
67
+ }
68
+
69
+ /* #Variants */
70
+ @include mixins.m(default) {
71
+ background-color: var(--color-gray-100);
72
+ color: var(--color-gray-600);
73
+ }
74
+
75
+ @include mixins.m(success) {
76
+ background-color: var(--color-success--opacity);
77
+ color: var(--color-success);
78
+ }
79
+
80
+ @include mixins.m(warning) {
81
+ background-color: var(--color-warning-opacity);
82
+ color: var(--color-warning);
83
+ }
84
+
85
+ @include mixins.m(danger) {
86
+ background-color: var(--color-error-opacity);
87
+ color: var(--color-error);
88
+ }
89
+
90
+ @include mixins.m(info) {
91
+ background-color: rgba(var(--color-info-rgb), 0.06);
92
+ color: var(--color-info);
93
+ }
94
+
95
+ @include mixins.m(bordered) {
96
+ &.badge--default {
97
+ --badge-border-color: var(--color-default-border);
98
+ }
99
+
100
+ &.badge--success {
101
+ --badge-border-color: var(--color-success-border);
102
+ }
103
+
104
+ &.badge--warning {
105
+ --badge-border-color: var(--color-warning-border);
106
+ }
107
+
108
+ &.badge--danger {
109
+ --badge-border-color: var(--color-error-border);
110
+ }
111
+
112
+ &.badge--info {
113
+ --badge-border-color: var(--color-info-border);
114
+ }
115
+ }
116
+
117
+ /* #Interactive */
118
+ // A badge that can be clicked: a status label that opens a menu
119
+ @include mixins.m(interactive) {
120
+ cursor: pointer;
121
+
122
+ // Inset, so the ring is drawn inside the badge's own border box. An outset
123
+ // ring needs 4px of clear space on every side and gets shaved by any
124
+ // ancestor that clips, which in a table cell is routine: the badge sits
125
+ // flush against the cell's padding edge. Negative offset makes it immune to
126
+ // that everywhere instead of per container.
127
+ &:focus-visible {
128
+ outline: 2px solid var(--color-info);
129
+ outline-offset: -2px;
130
+ }
131
+ }
132
+ }
@@ -1,13 +1,20 @@
1
+ @use "../utilities/helpers";
2
+ @use "../utilities/fonts";
3
+ @use "../utilities/functions";
4
+ @use "../utilities/mixins";
5
+ @use "../utilities/variables";
6
+
1
7
  .btn {
2
- @include fontSize($font-size-base);
8
+ @include mixins.fontSize(fonts.$font-size-base);
3
9
 
10
+ position: relative;
4
11
  border: 0;
5
- min-width: calc-rem(111px);
6
- min-height: calc-rem(42px);
12
+ min-width: functions.calc-rem(111px);
13
+ min-height: functions.calc-rem(42px);
7
14
  width: max-content;
8
- padding: calc-rem(8px 24px);
9
- font-weight: $font-weight-regular;
10
- line-height: $base-line-height;
15
+ padding: functions.calc-rem(8px 24px);
16
+ font-weight: fonts.$font-weight-semibold;
17
+ line-height: fonts.$base-line-height;
11
18
 
12
19
  &:after {
13
20
  @extend %pseudos;
@@ -17,11 +24,53 @@
17
24
  right: 0;
18
25
  bottom: 0;
19
26
  left: 0;
20
- border-radius: $border-radius-base;
27
+ border-radius: variables.$border-radius-large;
28
+ }
29
+
30
+ &:hover {
31
+ transition: filter variables.$trans-duration-style;
32
+ }
33
+
34
+ // #Basic
35
+ @include mixins.m(basic) {
36
+ background-color: transparent;
37
+ color: var(--color-gray-500);
38
+
39
+ &:hover {
40
+ background-color: transparent;
41
+ color: color-mix(in srgb, var(--color-gray-500), black 30%);
42
+ }
43
+
44
+ @include mixins.m(outline) {
45
+ background-color: transparent;
46
+ border-color: var(--color-gray-500);
47
+ color: var(--color-gray-500);
48
+
49
+ &:after {
50
+ border-color: var(--color-gray-500);
51
+ }
52
+
53
+ &:hover {
54
+ background-color: var(--color-gray-50);
55
+ color: color-mix(in srgb, var(--color-gray-500), black 30%);
56
+ }
57
+ }
58
+
59
+ @include mixins.m(link) {
60
+ @extend .btn--basic--outline;
61
+
62
+ &:after {
63
+ border-color: transparent;
64
+ }
65
+
66
+ &:hover {
67
+ background-color: transparent;
68
+ }
69
+ }
21
70
  }
22
71
 
23
72
  // #Primary
24
- @include e(primary) {
73
+ @include mixins.m(primary) {
25
74
  background-color: var(--color-brand-dark);
26
75
  color: var(--color-white);
27
76
 
@@ -29,7 +78,7 @@
29
78
  background-color: rgba(var(--color-brand-dark-rgb), .88);
30
79
  }
31
80
 
32
- @include m(outline) {
81
+ @include mixins.m(outline) {
33
82
  background-color: transparent;
34
83
  border-color: var(--color-brand-dark);
35
84
  color: var(--color-brand-dark);
@@ -39,25 +88,25 @@
39
88
  }
40
89
 
41
90
  &:hover {
42
- background-color: var(--color-gray-200);
91
+ background-color: var(--color-gray-50);
43
92
  }
44
93
  }
45
94
 
46
- @include m(link) {
47
- @extend .btn__primary--outline;
95
+ @include mixins.m(link) {
96
+ @extend .btn--primary--outline;
48
97
 
49
98
  &:after {
50
99
  border-color: transparent;
51
100
  }
52
101
 
53
102
  &:hover {
54
- background-color: var(--color-gray-200);
103
+ background-color: var(--color-gray-50);
55
104
  }
56
105
  }
57
106
  }
58
107
 
59
108
  /* #Secondary */
60
- @include e(secondary) {
109
+ @include mixins.m(secondary) {
61
110
  background-color: var(--color-brand-light);
62
111
  color: var(--color-white);
63
112
 
@@ -65,7 +114,7 @@
65
114
  background-color: rgba(var(--color-brand-light-rgb), .88);
66
115
  }
67
116
 
68
- @include m(outline) {
117
+ @include mixins.m(outline) {
69
118
  background-color: transparent;
70
119
  border-color: var(--color-brand-light);
71
120
  color: var(--color-brand-light);
@@ -75,12 +124,12 @@
75
124
  }
76
125
 
77
126
  &:hover {
78
- background-color: var(--color-gray-200);
127
+ background-color: var(--color-gray-50);
79
128
  }
80
129
  }
81
130
 
82
- @include m(link) {
83
- @extend .btn__secondary--outline;
131
+ @include mixins.m(link) {
132
+ @extend .btn--secondary--outline;
84
133
 
85
134
  &:after {
86
135
  border-color: transparent;
@@ -89,7 +138,7 @@
89
138
  }
90
139
 
91
140
  /* #Warn */
92
- @include e(warn) {
141
+ @include mixins.m(warn) {
93
142
  background-color: var(--color-error);
94
143
  color: var(--color-white);
95
144
 
@@ -97,7 +146,7 @@
97
146
  background-color: rgba(var(--color-error-rgb), .88);
98
147
  }
99
148
 
100
- @include m(outline) {
149
+ @include mixins.m(outline) {
101
150
  background-color: transparent;
102
151
  border-color: var(--color-error);
103
152
  color: var(--color-error);
@@ -107,12 +156,12 @@
107
156
  }
108
157
 
109
158
  &:hover {
110
- background-color: var(--color-gray-200);
159
+ background-color: var(--color-gray-50);
111
160
  }
112
161
  }
113
162
 
114
- @include m(link) {
115
- @extend .btn__warn--outline;
163
+ @include mixins.m(link) {
164
+ @extend .btn--warn--outline;
116
165
 
117
166
  &:after {
118
167
  border-color: transparent;
@@ -121,15 +170,15 @@
121
170
  }
122
171
 
123
172
  /* #Success */
124
- @include e(success) {
125
- background-color: var(--color-success);
126
- color: var(--color-white);
173
+ @include mixins.m(success) {
174
+ background-color: var(--color-success--opacity);
175
+ color: var(--color-success);
127
176
 
128
177
  &:hover {
129
178
  background-color: rgba(var(--color-success-rgb), .88);
130
179
  }
131
180
 
132
- @include m(outline) {
181
+ @include mixins.m(outline) {
133
182
  background-color: transparent;
134
183
  border-color: var(--color-success);
135
184
  color: var(--color-success);
@@ -139,12 +188,12 @@
139
188
  }
140
189
 
141
190
  &:hover {
142
- background-color: var(--color-gray-200);
191
+ background-color: var(--color-gray-50);
143
192
  }
144
193
  }
145
194
 
146
- @include m(link) {
147
- @extend .btn__warn--outline;
195
+ @include mixins.m(link) {
196
+ @extend .btn--warn--outline;
148
197
 
149
198
  &:after {
150
199
  border-color: transparent;
@@ -153,29 +202,28 @@
153
202
  }
154
203
 
155
204
  /* #Group */
156
- @include e(group) {
205
+ @include mixins.e(group) {
157
206
  display: flex;
158
207
  width: 100%;
159
208
  align-items: center;
160
209
  column-gap: 1rem;
210
+ margin-top: 1.2rem;
161
211
 
162
- @include media-q(small) {
212
+ @include mixins.media-q(small) {
163
213
  display: flex;
164
214
  flex-direction: column;
165
215
  gap: 1.2rem;
166
216
  }
167
217
 
168
- margin-top: 1.2rem;
169
-
170
218
  // Button group
171
- @include m(item) {
172
- @include media-q(small) {
219
+ @include mixins.m(item) {
220
+ min-width: functions.calc-rem(100);
221
+
222
+ @include mixins.media-q(small) {
173
223
  width: 100%;
174
224
  margin-right: 0;
175
225
  }
176
226
 
177
- min-width: calc-rem(100);
178
-
179
227
  &:last-of-type {
180
228
  margin-right: 0;
181
229
  }
@@ -183,14 +231,14 @@
183
231
  }
184
232
 
185
233
  /* #Disabled */
186
- @include e(disabled) {
234
+ @include mixins.e(disabled) {
187
235
  background-color: var(--color-gray-300);
188
236
  color: var(--color-gray-400);
189
237
  cursor: not-allowed;
190
238
  pointer-events: none;
191
239
  user-select: none;
192
240
 
193
- @include m(outline) {
241
+ @include mixins.m(outline) {
194
242
  @extend .btn__disabled;
195
243
 
196
244
  background-color: transparent;
@@ -201,22 +249,39 @@
201
249
  }
202
250
  }
203
251
 
252
+ /* prevent hover state from persisting when disabled */
253
+ &:disabled:hover,
254
+ &.loading:hover {
255
+ background-color: var(--color-gray-300);
256
+ color: var(--color-gray-400);
257
+ box-shadow: none;
258
+ }
259
+
204
260
  /* #Icon */
205
- @include e(with-icon) {
206
- @include m(wrapper) {
261
+ @include mixins.e(with-icon) {
262
+ @include mixins.m(wrapper) {
207
263
  display: flex;
208
264
  align-items: center;
209
265
  justify-content: center;
210
-
211
- i, .mat-icon {
212
- display: inline-block;
213
- margin-right: .6rem;
214
- }
266
+ gap: .6rem;
215
267
  }
216
268
  }
217
269
 
218
270
  /* #Large */
219
- @include m(lg) {
220
- padding: calc-rem(16 24);
271
+ @include mixins.m(lg) {
272
+ padding: functions.calc-rem(16px 24px);
273
+ }
274
+
275
+ /* #Sizes */
276
+ @include mixins.m(small) {
277
+ @include mixins.btn-size(32px, 90px, 12px, 12px, 18px);
278
+ }
279
+
280
+ @include mixins.m(medium) {
281
+ @include mixins.btn-size(40px, 120px, 16px, 14px, 21px);
282
+ }
283
+
284
+ @include mixins.m(large) {
285
+ @include mixins.btn-size(48px, 140px, 20px, 16px, 24px);
221
286
  }
222
287
  }
@@ -1,23 +1,67 @@
1
+ @use "../utilities/fonts";
2
+ @use "../utilities/functions";
3
+ @use "../utilities/mixins";
4
+ @use "../utilities/variables";
5
+
1
6
  .card {
2
- box-shadow: $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);
11
+
12
+ @include mixins.m(inset) {
13
+ @extend .card;
14
+
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
+ }
3
21
 
4
- @include m(subtitle) {
5
- @include fontSize($font-size-sm);
22
+ @include mixins.m(compact) {
23
+ padding: functions.calc-rem(16px);
24
+ }
25
+
26
+ @include mixins.e(header) {
27
+ padding: functions.calc-rem(0 0 12px 0);
28
+ }
6
29
 
30
+ @include mixins.e(header-action) {
31
+ display: flex;
32
+ flex-shrink: 0;
33
+ align-items: center;
34
+ justify-content: center;
35
+ width: functions.calc-rem(48px);
36
+ height: functions.calc-rem(48px);
37
+ margin: functions.calc-rem(-12px -12px -12px 0);
38
+ margin-left: auto;
7
39
  color: var(--color-gray-500);
8
40
  }
9
41
 
10
- @include m(title) {
11
- @include fontSize($font-heading-xs);
42
+ @include mixins.e(title) {
43
+ @include mixins.fontSize(fonts.$font-size-base);
12
44
 
45
+ line-height: 1.5;
46
+ padding-bottom: functions.calc-rem(4px);
13
47
  margin: 0;
14
- padding-top: 2rem;
15
- padding-left: 1.5rem;
16
48
  color: var(--color-brand-dark);
17
- font-weight: $font-weight-semibold;
49
+ font-weight: fonts.$font-weight-semibold;
50
+
51
+
52
+ @include mixins.m(divider) {
53
+ margin-top: 0;
54
+ }
55
+ }
56
+
57
+ @include mixins.e(subtitle) {
58
+ @include mixins.fontSize(fonts.$font-size-sm);
59
+
60
+ color: var(--color-gray-500);
61
+ line-height: 1.5;
18
62
  }
19
63
 
20
- @include e(content) {
21
- padding: calc-rem(32 24);
64
+ @include mixins.e(content) {
65
+ padding: functions.calc-rem(20px 0 0 0);
22
66
  }
23
67
  }