ecabs-components 2.0.0-alpha.6 → 2.0.0-alpha.8

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 (54) hide show
  1. package/README.md +9 -0
  2. package/fesm2022/ecabs-components.mjs +329 -145
  3. package/fesm2022/ecabs-components.mjs.map +1 -1
  4. package/lib/base/consts/badge.consts.d.ts +4 -0
  5. package/lib/base/consts/icon.consts.d.ts +1 -0
  6. package/lib/base/consts/status-badge.consts.d.ts +3 -0
  7. package/lib/base/models/select.models.d.ts +1 -1
  8. package/lib/base/pipes/status-badge-variant.pipe.d.ts +8 -0
  9. package/lib/base/utils/icon.utils.d.ts +2 -0
  10. package/lib/ecabs-badge/ecabs-badge.component.d.ts +42 -0
  11. package/lib/ecabs-badge/ecabs-badge.module.d.ts +12 -0
  12. package/lib/ecabs-base-phone-input/ecabs-base-phone.component.d.ts +11 -7
  13. package/package.json +10 -10
  14. package/public-api.d.ts +7 -0
  15. package/src/assets/images/nothing-here.svg +22 -22
  16. package/src/assets/images/promotions.svg +3 -3
  17. package/src/assets/styles/material/_theme.scss +2 -2
  18. package/src/assets/styles/material/overrides/_autocomplete.scss +1 -1
  19. package/src/assets/styles/material/overrides/_badge.scss +13 -0
  20. package/src/assets/styles/material/overrides/_button.scss +1 -1
  21. package/src/assets/styles/material/overrides/_card.scss +1 -1
  22. package/src/assets/styles/material/overrides/_chip.scss +1 -2
  23. package/src/assets/styles/material/overrides/_datepicker.scss +0 -1
  24. package/src/assets/styles/material/overrides/_dialog.scss +1 -1
  25. package/src/assets/styles/material/overrides/_divider.scss +1 -1
  26. package/src/assets/styles/material/overrides/_form.scss +1 -2
  27. package/src/assets/styles/material/overrides/_icon.scss +1 -1
  28. package/src/assets/styles/material/overrides/_paginator.scss +0 -1
  29. package/src/assets/styles/material/overrides/_phone.scss +1 -3
  30. package/src/assets/styles/material/overrides/_progress.scss +0 -1
  31. package/src/assets/styles/material/overrides/_select.scss +1 -3
  32. package/src/assets/styles/material/overrides/_tab.scss +1 -1
  33. package/src/assets/styles/material/overrides/_table.scss +1 -2
  34. package/src/assets/styles/material/overrides/_toaster.scss +1 -1
  35. package/src/assets/styles/material/overrides/_toolbar.scss +3 -3
  36. package/src/assets/styles/material/overrides/_tooltip.scss +1 -1
  37. package/src/assets/styles/material/overrides/index.scss +23 -22
  38. package/src/assets/styles/scss/base/index.scss +2 -2
  39. package/src/assets/styles/scss/modules/_badge.scss +115 -0
  40. package/src/assets/styles/scss/modules/_datepicker.scss +0 -1
  41. package/src/assets/styles/scss/modules/_divider.scss +4 -4
  42. package/src/assets/styles/scss/modules/_img.scss +32 -32
  43. package/src/assets/styles/scss/modules/_map.scss +0 -1
  44. package/src/assets/styles/scss/modules/_percentage.scss +41 -41
  45. package/src/assets/styles/scss/modules/_statuses.scss +36 -36
  46. package/src/assets/styles/scss/modules/_toaster.scss +53 -53
  47. package/src/assets/styles/scss/modules/index.scss +24 -23
  48. package/src/assets/styles/scss/utilities/_colors.scss +6 -0
  49. package/src/assets/styles/scss/utilities/_fonts.scss +31 -31
  50. package/src/assets/styles/scss/utilities/_helpers.scss +14 -14
  51. package/src/assets/styles/scss/utilities/_mixins.scss +7 -0
  52. package/src/assets/styles/scss/utilities/index.scss +6 -6
  53. package/src/assets/styles/styles.scss +4 -4
  54. package/src/assets/styles/tailwind/index.scss +1 -1
@@ -0,0 +1,115 @@
1
+ @use "../utilities/fonts";
2
+ @use "../utilities/mixins";
3
+ @use "../utilities/variables";
4
+
5
+ .badge {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ gap: 0.25rem;
9
+
10
+ max-width: var(--badge-max-width, 100%);
11
+ border: 1px solid transparent;
12
+ border-radius: variables.$border-radius-base;
13
+ font-weight: fonts.$font-weight-medium;
14
+ line-height: 1;
15
+ white-space: nowrap;
16
+
17
+ @include mixins.e(icon) {
18
+ color: inherit;
19
+ flex: none;
20
+
21
+ width: var(--badge-icon-size);
22
+ height: var(--badge-icon-size);
23
+ font-size: var(--badge-icon-size);
24
+ line-height: var(--badge-icon-size);
25
+
26
+
27
+ @include mixins.m(slot) {
28
+ display: inline-flex;
29
+ align-items: center;
30
+ justify-content: center;
31
+
32
+ &:empty {
33
+ display: none;
34
+ }
35
+
36
+ > * {
37
+ width: var(--badge-icon-size);
38
+ height: var(--badge-icon-size);
39
+ font-size: var(--badge-icon-size);
40
+ line-height: var(--badge-icon-size);
41
+ color: inherit;
42
+ }
43
+ }
44
+ }
45
+
46
+ @include mixins.e(label) {
47
+ display: block;
48
+ min-width: 0;
49
+ overflow: hidden;
50
+ text-overflow: ellipsis;
51
+
52
+ line-height: calc(4 / 3);
53
+ }
54
+
55
+ /* #Sizes */
56
+ @include mixins.m(small) {
57
+ @include mixins.badge-size(1px, 6px, fonts.$font-size-xs, 12px);
58
+ }
59
+
60
+ @include mixins.m(medium) {
61
+ @include mixins.badge-size(3px, 8px, fonts.$font-size-xs, 12px);
62
+ }
63
+
64
+ @include mixins.m(large) {
65
+ @include mixins.badge-size(6px, 12px, fonts.$font-size-md, 16px);
66
+ }
67
+
68
+ /* #Variants */
69
+ @include mixins.m(default) {
70
+ background-color: var(--color-gray-100);
71
+ color: var(--color-gray-600);
72
+ }
73
+
74
+ @include mixins.m(success) {
75
+ background-color: var(--color-success--opacity);
76
+ color: var(--color-success);
77
+ }
78
+
79
+ @include mixins.m(warning) {
80
+ background-color: var(--color-warning-opacity);
81
+ color: var(--color-warning);
82
+ }
83
+
84
+ @include mixins.m(danger) {
85
+ background-color: var(--color-error-opacity);
86
+ color: var(--color-error);
87
+ }
88
+
89
+ @include mixins.m(info) {
90
+ background-color: rgba(var(--color-info-rgb), 0.06);
91
+ color: var(--color-info);
92
+ }
93
+
94
+ @include mixins.m(bordered) {
95
+ &.badge--default {
96
+ border-color: var(--color-default-border);
97
+ }
98
+
99
+ &.badge--success {
100
+ border-color: var(--color-success-border);
101
+ }
102
+
103
+ &.badge--warning {
104
+ border-color: var(--color-warning-border);
105
+ }
106
+
107
+ &.badge--danger {
108
+ border-color: var(--color-error-border);
109
+ }
110
+
111
+ &.badge--info {
112
+ border-color: var(--color-info-border);
113
+ }
114
+ }
115
+ }
@@ -1,4 +1,3 @@
1
- @use "../utilities/index";
2
1
  @use "../utilities/functions";
3
2
  @use "../utilities/mixins";
4
3
 
@@ -1,4 +1,4 @@
1
- .divider {
2
- border-top-color: var(--color-gray-100);
3
- color: var(--color-gray-100);
4
- }
1
+ .divider {
2
+ border-top-color: var(--color-gray-100);
3
+ color: var(--color-gray-100);
4
+ }
@@ -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
+ }
@@ -1,4 +1,3 @@
1
- @use "../../scss/utilities/index";
2
1
  @use "../utilities/fonts";
3
2
  @use "../utilities/functions";
4
3
  @use "../utilities/mixins";
@@ -1,41 +1,41 @@
1
- .percentage {
2
- &__over-87 {
3
- background-color: #25BD3D;
4
- border-color: #25BD3D;
5
- }
6
-
7
- &__over-75 {
8
- background-color: #87C337;
9
- border-color: #87C337;
10
- }
11
-
12
- &__over-62 {
13
- background-color: #BAC61C;
14
- border-color: #BAC61C;
15
- }
16
-
17
- &__over-50 {
18
- background-color: #ECC902;
19
- border-color: #ECC902;
20
- }
21
-
22
- &__over-37 {
23
- background-color: #EBA70D;
24
- border-color: #EBA70D;
25
- }
26
-
27
- &__over-25 {
28
- background-color: #E7831B;
29
- border-color: #E7831B;
30
- }
31
-
32
- &__over-12 {
33
- background-color: #E35E2A;
34
- border-color: #E35E2A;
35
- }
36
-
37
- &__default {
38
- background-color: #DF3838;
39
- border-color: #DF3838;
40
- }
41
- }
1
+ .percentage {
2
+ &__over-87 {
3
+ background-color: #25BD3D;
4
+ border-color: #25BD3D;
5
+ }
6
+
7
+ &__over-75 {
8
+ background-color: #87C337;
9
+ border-color: #87C337;
10
+ }
11
+
12
+ &__over-62 {
13
+ background-color: #BAC61C;
14
+ border-color: #BAC61C;
15
+ }
16
+
17
+ &__over-50 {
18
+ background-color: #ECC902;
19
+ border-color: #ECC902;
20
+ }
21
+
22
+ &__over-37 {
23
+ background-color: #EBA70D;
24
+ border-color: #EBA70D;
25
+ }
26
+
27
+ &__over-25 {
28
+ background-color: #E7831B;
29
+ border-color: #E7831B;
30
+ }
31
+
32
+ &__over-12 {
33
+ background-color: #E35E2A;
34
+ border-color: #E35E2A;
35
+ }
36
+
37
+ &__default {
38
+ background-color: #DF3838;
39
+ border-color: #DF3838;
40
+ }
41
+ }
@@ -1,36 +1,36 @@
1
- .pending {
2
- background-color: var(--color-gray-300);
3
- color: var(--color-gray-400);
4
- }
5
-
6
- .reserved {
7
- background-color: var(--color-warning-opacity);
8
- color: var(--color-warning);
9
- }
10
-
11
- .scheduled, .ended {
12
- background-color: var(--color-gray-50);
13
- color: var(--color-gray-500);
14
- }
15
-
16
- .dispatched, .cab_arrived_at_pickup, .trip_started, .dropped_off, .started,
17
- .cab_arrived_at_intermediary_waypoint, .trip_ongoing, .in_progress, .published {
18
- background-color: rgba(var(--color-info-rgb), .05);
19
- color: var(--color-info);
20
- }
21
-
22
- .cab_arrived_at_dropoff, .trip_ended, .completed, .accepted, .cashed_in, .done {
23
- background-color: var(--color-success--opacity);
24
- color: var(--color-success);
25
- }
26
-
27
- .cancelled, .rejected, .suspended, .sick, .no_show, .unable_to_complete, .unavailable, .failed {
28
- background-color: var(--color-error-opacity);
29
- color: var(--color-error);
30
- }
31
-
32
-
33
- .archived {
34
- background-color: var(--color-gray-100);
35
- color: var(--color-gray-600);
36
- }
1
+ .pending {
2
+ background-color: var(--color-gray-300);
3
+ color: var(--color-gray-400);
4
+ }
5
+
6
+ .reserved {
7
+ background-color: var(--color-warning-opacity);
8
+ color: var(--color-warning);
9
+ }
10
+
11
+ .scheduled, .ended {
12
+ background-color: var(--color-gray-50);
13
+ color: var(--color-gray-500);
14
+ }
15
+
16
+ .dispatched, .cab_arrived_at_pickup, .trip_started, .dropped_off, .started,
17
+ .cab_arrived_at_intermediary_waypoint, .trip_ongoing, .in_progress, .published {
18
+ background-color: rgba(var(--color-info-rgb), .05);
19
+ color: var(--color-info);
20
+ }
21
+
22
+ .cab_arrived_at_dropoff, .trip_ended, .completed, .accepted, .cashed_in, .done {
23
+ background-color: var(--color-success--opacity);
24
+ color: var(--color-success);
25
+ }
26
+
27
+ .cancelled, .rejected, .suspended, .sick, .no_show, .unable_to_complete, .unavailable, .failed {
28
+ background-color: var(--color-error-opacity);
29
+ color: var(--color-error);
30
+ }
31
+
32
+
33
+ .archived {
34
+ background-color: var(--color-gray-100);
35
+ color: var(--color-gray-600);
36
+ }
@@ -1,53 +1,53 @@
1
- .toaster__body {
2
- padding: 1.5rem 4rem 1.5rem 1.5rem;
3
- border-radius: 4px;
4
-
5
- &.success {
6
- background-color: var(--color-success--opacity);
7
- color: var(--color-success);
8
-
9
- .close-button {
10
- color: var(--color-success);
11
- }
12
- }
13
-
14
- &.error {
15
- background-color: var(--color-error-opacity);
16
- color: var(--color-error);
17
-
18
- .close-button {
19
- color: var(--color-error);
20
- }
21
- }
22
-
23
- &.warning {
24
- background-color: var(--color-warning-opacity);
25
- color: var(--color-warning);
26
-
27
- .close-button {
28
- color: var(--color-warning);
29
- }
30
- }
31
-
32
- &.info {
33
- background-color: rgba(var(--color-info-rgb), .05);
34
- color: var(--color-info);
35
-
36
- .close-button {
37
- color: var(--color-info);
38
- }
39
- }
40
-
41
- .close-button {
42
- position: absolute;
43
- right: 1.75rem;
44
- top: calc(50% - 1rem);
45
- font-family: 'Material Icons';
46
- font-weight: 200;
47
- font-size: 21px;
48
-
49
- &::before {
50
- content: 'close';
51
- }
52
- }
53
- }
1
+ .toaster__body {
2
+ padding: 1.5rem 4rem 1.5rem 1.5rem;
3
+ border-radius: 4px;
4
+
5
+ &.success {
6
+ background-color: var(--color-success--opacity);
7
+ color: var(--color-success);
8
+
9
+ .close-button {
10
+ color: var(--color-success);
11
+ }
12
+ }
13
+
14
+ &.error {
15
+ background-color: var(--color-error-opacity);
16
+ color: var(--color-error);
17
+
18
+ .close-button {
19
+ color: var(--color-error);
20
+ }
21
+ }
22
+
23
+ &.warning {
24
+ background-color: var(--color-warning-opacity);
25
+ color: var(--color-warning);
26
+
27
+ .close-button {
28
+ color: var(--color-warning);
29
+ }
30
+ }
31
+
32
+ &.info {
33
+ background-color: rgba(var(--color-info-rgb), .05);
34
+ color: var(--color-info);
35
+
36
+ .close-button {
37
+ color: var(--color-info);
38
+ }
39
+ }
40
+
41
+ .close-button {
42
+ position: absolute;
43
+ right: 1.75rem;
44
+ top: calc(50% - 1rem);
45
+ font-family: 'Material Icons';
46
+ font-weight: 200;
47
+ font-size: 21px;
48
+
49
+ &::before {
50
+ content: 'close';
51
+ }
52
+ }
53
+ }
@@ -1,23 +1,24 @@
1
- @use 'button';
2
- @use 'card';
3
- @use 'chip';
4
- @use 'datepicker';
5
- @use 'dialog';
6
- @use 'divider';
7
- @use 'drag-drop';
8
- @use 'form';
9
- @use 'icon';
10
- @use 'img';
11
- @use 'legend';
12
- @use 'list';
13
- @use 'map';
14
- @use 'phone';
15
- @use 'select';
16
- @use 'statuses';
17
- @use 'tab';
18
- @use 'table';
19
- @use 'timepicker';
20
- @use 'toaster';
21
- @use 'tooltip';
22
- @use 'percentage';
23
- @use 'autocomplete';
1
+ @forward 'badge';
2
+ @forward 'button';
3
+ @forward 'card';
4
+ @forward 'chip';
5
+ @forward 'datepicker';
6
+ @forward 'dialog';
7
+ @forward 'divider';
8
+ @forward 'drag-drop';
9
+ @forward 'form';
10
+ @forward 'icon';
11
+ @forward 'img';
12
+ @forward 'legend';
13
+ @forward 'list';
14
+ @forward 'map';
15
+ @forward 'phone';
16
+ @forward 'select';
17
+ @forward 'statuses';
18
+ @forward 'tab';
19
+ @forward 'table';
20
+ @forward 'timepicker';
21
+ @forward 'toaster';
22
+ @forward 'tooltip';
23
+ @forward 'percentage';
24
+ @forward 'autocomplete';
@@ -30,6 +30,7 @@
30
30
  /* #Accent */
31
31
  --color-error: #bb032a;
32
32
  --color-error-opacity: #FFF0EE;
33
+ --color-error-border: #FFCDC6;
33
34
  --color-error-rgb: 223, 56, 56;
34
35
 
35
36
  --color-notification: #f4d04f;
@@ -38,14 +39,19 @@
38
39
  --color-info: #325fda;
39
40
  --color-info-rgb: 50, 95, 218;
40
41
  --color-info-messages: #e3e9f3;
42
+ --color-info-border: #D1D8F7;
41
43
 
42
44
  --color-warning: #845201;
43
45
  --color-warning-opacity: #FDF2DC;
46
+ --color-warning-border: #FBE5B6;
44
47
 
45
48
  --color-success: #166C3B;
46
49
  --color-success--opacity: #EAF6ED;
50
+ --color-success-border: #CEEAD5;
47
51
  --color-success-rgb: 7, 81, 69;
48
52
 
53
+ --color-default-border: #D5E1ED;
54
+
49
55
  --color-allocation-started: #E8F8E5;
50
56
  --color-allocation-scheduled: #FDF0E4;
51
57
  --color-allocation-ended: #FBE4E4;
@@ -1,31 +1,31 @@
1
- // #Family
2
- $font-family-primary: 'Segment', 'sans-serif';
3
- $font-family-fallback: 'Lato', sans-serif;
4
-
5
- // #Weights
6
- $font-weight-thin: 300;
7
- $font-weight-regular: 400;
8
- $font-weight-medium: 500;
9
- $font-weight-semibold: 600;
10
- $font-weight-bold: 700;
11
- $font-weight-extra-bold: 800;
12
-
13
- // #Sizes
14
- $font-size-xs: 12px;
15
- $font-size-sm: 13px;
16
- $font-size-md: 14px;
17
- $font-size-base: 16px;
18
- $font-size-lg: 18px;
19
-
20
- $font-heading-xs: 22px;
21
- $font-heading-sm: 28px;
22
- $font-heading-md: 32px;
23
- $font-heading-base: 34px;
24
- $font-heading-lg: 36px;
25
-
26
- // Height
27
- $base-line-height: 1.5;
28
-
29
- :root {
30
- --mat-option-label-text-size: #{$font-size-sm};
31
- }
1
+ // #Family
2
+ $font-family-primary: 'Segment', 'sans-serif';
3
+ $font-family-fallback: 'Lato', sans-serif;
4
+
5
+ // #Weights
6
+ $font-weight-thin: 300;
7
+ $font-weight-regular: 400;
8
+ $font-weight-medium: 500;
9
+ $font-weight-semibold: 600;
10
+ $font-weight-bold: 700;
11
+ $font-weight-extra-bold: 800;
12
+
13
+ // #Sizes
14
+ $font-size-xs: 12px;
15
+ $font-size-sm: 13px;
16
+ $font-size-md: 14px;
17
+ $font-size-base: 16px;
18
+ $font-size-lg: 18px;
19
+
20
+ $font-heading-xs: 22px;
21
+ $font-heading-sm: 28px;
22
+ $font-heading-md: 32px;
23
+ $font-heading-base: 34px;
24
+ $font-heading-lg: 36px;
25
+
26
+ // Height
27
+ $base-line-height: 1.5;
28
+
29
+ :root {
30
+ --mat-option-label-text-size: #{$font-size-sm};
31
+ }
@@ -1,14 +1,14 @@
1
- // For Pseudo Elements
2
- %pseudos {
3
- position: absolute;
4
- content: '';
5
- }
6
-
7
- %required {
8
- @extend %pseudos;
9
-
10
- content: '*' !important;
11
- margin-left: 0.2rem;
12
- margin-top: 2px;
13
- color: var(--color-error);
14
- }
1
+ // For Pseudo Elements
2
+ %pseudos {
3
+ position: absolute;
4
+ content: '';
5
+ }
6
+
7
+ %required {
8
+ @extend %pseudos;
9
+
10
+ content: '*' !important;
11
+ margin-left: 0.2rem;
12
+ margin-top: 2px;
13
+ color: var(--color-error);
14
+ }
@@ -84,6 +84,13 @@
84
84
  text-align: center;
85
85
  }
86
86
 
87
+ @mixin badge-size($padding-y, $padding-x, $font-size, $icon-size) {
88
+ --badge-icon-size: #{$icon-size};
89
+ padding: $padding-y $padding-x;
90
+
91
+ @include fontSize($font-size);
92
+ }
93
+
87
94
  // Step for the button-toggle size scale, applied to Material's toggle internals.
88
95
  @mixin toggle-size($height, $min-width, $font-size, $padding-x) {
89
96
  .mat-button-toggle {
@@ -1,6 +1,6 @@
1
- @use "variables";
2
- @use "functions";
3
- @use "colors";
4
- @use "fonts";
5
- @use "helpers";
6
- @use "mixins";
1
+ @forward "variables";
2
+ @forward "functions";
3
+ @forward "colors";
4
+ @forward "fonts";
5
+ @forward "helpers";
6
+ @forward "mixins";
@@ -1,5 +1,5 @@
1
1
  @use "material/theme";
2
- @use "scss/modules/index";
3
- @use "scss/utilities/index" as index2;
4
- @use "scss/base/index" as index3;
5
- @use "tailwind/index" as index4;
2
+ @use "scss/modules/index" as modules;
3
+ @use "scss/utilities/index" as utilities;
4
+ @use "scss/base/index" as base;
5
+ @use "tailwind/index" as tailwind;