i-tech-shared-components 1.0.0

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 (35) hide show
  1. package/.npmignore +2 -0
  2. package/README.md +24 -0
  3. package/esm2022/i-tech-shared-components.mjs +5 -0
  4. package/esm2022/lib/components/button/button.component.mjs +66 -0
  5. package/esm2022/lib/components/icon-button/icon-button.component.mjs +49 -0
  6. package/esm2022/lib/components/text/text-input.component.mjs +75 -0
  7. package/esm2022/lib/directives/input-mask.directive.mjs +92 -0
  8. package/esm2022/lib/interfaces/app-input.interface.mjs +2 -0
  9. package/esm2022/lib/interfaces/button-types.constants.mjs +9 -0
  10. package/esm2022/lib/pipes/generate-error-messages.pipe.mjs +31 -0
  11. package/esm2022/lib/services/input.service.mjs +29 -0
  12. package/esm2022/public-api.mjs +11 -0
  13. package/fesm2022/i-tech-shared-components.mjs +335 -0
  14. package/fesm2022/i-tech-shared-components.mjs.map +1 -0
  15. package/index.d.ts +5 -0
  16. package/lib/components/button/button.component.d.ts +21 -0
  17. package/lib/components/icon-button/icon-button.component.d.ts +14 -0
  18. package/lib/components/text/text-input.component.d.ts +21 -0
  19. package/lib/directives/input-mask.directive.d.ts +21 -0
  20. package/lib/interfaces/app-input.interface.d.ts +31 -0
  21. package/lib/interfaces/button-types.constants.d.ts +7 -0
  22. package/lib/pipes/generate-error-messages.pipe.d.ts +10 -0
  23. package/lib/services/input.service.d.ts +7 -0
  24. package/package.json +32 -0
  25. package/public-api.d.ts +7 -0
  26. package/theme/_buttons.scss +63 -0
  27. package/theme/_color_themes.scss +136 -0
  28. package/theme/_date_picker.scss +77 -0
  29. package/theme/_form_fields.scss +106 -0
  30. package/theme/_icon-button.scss +123 -0
  31. package/theme/_label.scss +119 -0
  32. package/theme/_mat-selects.scss +248 -0
  33. package/theme/_menu.scss +9 -0
  34. package/theme/_text_input.scss +28 -0
  35. package/theme.scss +36 -0
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "i-tech-shared-components",
3
+ "version": "1.0.0",
4
+ "peerDependencies": {
5
+ "@angular/cdk": "^18.2.14",
6
+ "@angular/material": "^18.2.14",
7
+ "@angular/animations": "^18.0.0",
8
+ "@ngx-translate/core": "^15.0.0",
9
+ "@ngx-translate/http-loader": "^8.0.0",
10
+ "ngx-mask": "^16.0.0"
11
+ },
12
+ "dependencies": {
13
+ "tslib": "^2.3.0"
14
+ },
15
+ "sideEffects": false,
16
+ "files": [
17
+ "**/*"
18
+ ],
19
+ "module": "fesm2022/i-tech-shared-components.mjs",
20
+ "typings": "index.d.ts",
21
+ "exports": {
22
+ "./package.json": {
23
+ "default": "./package.json"
24
+ },
25
+ ".": {
26
+ "types": "./index.d.ts",
27
+ "esm2022": "./esm2022/i-tech-shared-components.mjs",
28
+ "esm": "./esm2022/i-tech-shared-components.mjs",
29
+ "default": "./fesm2022/i-tech-shared-components.mjs"
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,7 @@
1
+ export * from './lib/pipes/generate-error-messages.pipe';
2
+ export * from './lib/services/input.service';
3
+ export * from './lib/interfaces/app-input.interface';
4
+ export * from './lib/directives/input-mask.directive';
5
+ export * from './lib/components/icon-button/icon-button.component';
6
+ export * from './lib/components/text/text-input.component';
7
+ export * from './lib/components/button/button.component';
@@ -0,0 +1,63 @@
1
+
2
+ @use '@angular/material' as mat;
3
+ @import "./color_themes.scss";
4
+
5
+ body {
6
+ $borderRadius: 5px;
7
+ $fontSize: 13px;
8
+ $letterSpacing: 0.5px;
9
+ // BUTTONS
10
+ --mdc-filled-button-container-shape: #{$borderRadius} !important;
11
+ --mdc-outlined-button-container-shape: #{$borderRadius} !important;
12
+ --mdc-text-button-container-shape: #{$borderRadius} !important;
13
+ // Font Size
14
+ --mdc-filled-button-label-text-size: #{$fontSize} !important;
15
+ --mdc-outlined-button-label-text-size: #{$fontSize} !important;
16
+ --mdc-text-button-label-text-size: #{$fontSize} !important;
17
+ // Letter Spacing
18
+ --mdc-filled-button-label-text-tracking: #{$letterSpacing} !important;
19
+ --mdc-outlined-button-label-text-tracking: #{$letterSpacing} !important;
20
+ --mdc-text-button-label-text-tracking: #{$letterSpacing} !important;
21
+ // Unset Outline default border color
22
+ --mdc-outlined-button-outline-color: 0 !important;
23
+
24
+ .mdc-button:not(.mat-autocomplete-select-button) {
25
+ height: 40px;
26
+ }
27
+
28
+ .mdc-button {
29
+ .spinner-overlay {
30
+ position: absolute;
31
+ left: -20px;
32
+ top: 50%;
33
+ transform: translateY(-50%);
34
+ display: flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ }
38
+
39
+ svg path {
40
+ fill: var(--mdc-text-button-label-text-color);
41
+ }
42
+
43
+ .spinner-overlay mat-spinner {
44
+ width: 20px;
45
+ height: 20px;
46
+ }
47
+ }
48
+
49
+ .relative {
50
+ position: relative;
51
+ }
52
+
53
+ .activated {
54
+ background-color: mat.get-theme-color($m3-light-theme, primary, 95) !important;
55
+ }
56
+
57
+ // DEFINE TERTIARY BUTTON
58
+ .mdc-button.tertiary {
59
+ @include mat.button-color($m3-light-theme, $color-variant: tertiary);
60
+ --mdc-text-button-label-text-color: mat.get-theme-color($m3-light-theme, 'tertiary', 30) !important;
61
+ }
62
+ // END OF DEFINE TERTIARY BUTTON
63
+ }
@@ -0,0 +1,136 @@
1
+ @use '@angular/material' as mat;
2
+ @use 'sass:map';
3
+
4
+ $_light-palette: (
5
+ primary: (
6
+ 0: #000000,
7
+ 10: #003A0C,
8
+ 20: #005B13,
9
+ 25: #006B1E,
10
+ 30: #007A28,
11
+ 35: #00822E,
12
+ 40: #008B33,
13
+ 50: #009D3F,
14
+ 60: #00AC48,
15
+ 70: #42B963,
16
+ 80: #69C57F,
17
+ 90: #96D5A3,
18
+ 95: #C0E5C7,
19
+ 98: #E3F6E7,
20
+ 99: #EFFAF1,
21
+ 100: #FFFFFF,
22
+ ),
23
+ secondary: (
24
+ 0: #1A1A1A,
25
+ 10: #0C2B61,
26
+ 20: #183778,
27
+ 25: #1F4085,
28
+ 30: #2C4D91,
29
+ 35: #335497,
30
+ 40: #3A5B9E,
31
+ 50: #4364A6,
32
+ 60: #5777B7,
33
+ 70: #718ECB,
34
+ 80: #97B0E3,
35
+ 90: #C1D2F5,
36
+ 95: #DDE7FC,
37
+ 98: #E1EBFC,
38
+ 99: #EEF4FE,
39
+ 100: #FFFFFF,
40
+ ),
41
+ neutral: (
42
+ 0: #1A1A1A,
43
+ 10: #34363B,
44
+ 20: #454950,
45
+ 25: #4D525B,
46
+ 30: #555B65,
47
+ 35: #5C646F,
48
+ 40: #636C79,
49
+ 50: #747E8E,
50
+ 60: #828C9B,
51
+ 70: #A9AFB9,
52
+ 80: #C2C5CD,
53
+ 90: #DBDDE1,
54
+ 95: #F2F2F5,
55
+ 98: #F8F8FA,
56
+ 99: #FAFAFC,
57
+ 100: #ffffff,
58
+ ),
59
+ neutral-variant: (
60
+ 0: #000000,
61
+ 10: #131e13,
62
+ 20: #283327,
63
+ 25: #323e32,
64
+ 30: #3e4a3d,
65
+ 35: #495648,
66
+ 40: #556254,
67
+ 50: #6e7b6c,
68
+ 60: #879485,
69
+ 70: #a1af9e,
70
+ 80: #bdcab9,
71
+ 90: #d9e6d4,
72
+ 95: #e7f5e2,
73
+ 98: #F2FCED,
74
+ 99: #f6fff1,
75
+ 100: #ffffff,
76
+ ),
77
+ tertiary: (
78
+ 0: #000000,
79
+ 10: #1D2025,
80
+ 20: #30353D,
81
+ 25: #393F49,
82
+ 30: #424954,
83
+ 35: #4A535F,
84
+ 40: #525C6A,
85
+ 50: #647081,
86
+ 60: #747F90,
87
+ 70: #9FA6B1,
88
+ 80: #BBBFC7,
89
+ 90: #D7D9DE,
90
+ 95: #F0F0F4,
91
+ 98: #F5F5F8,
92
+ 99: #F9F9FC,
93
+ 100: #FFFFFF,
94
+ ),
95
+ error: (
96
+ 0: #39041A,
97
+ 10: #670923,
98
+ 20: #950E2B,
99
+ 25: #A5102E,
100
+ 30: #B41231,
101
+ 35: #BB1635,
102
+ 40: #C11A39,
103
+ 50: #D2344C,
104
+ 60: #DE4558,
105
+ 70: #E77383,
106
+ 80: #F5A0AA,
107
+ 90: #FACBD5,
108
+ 95: #FBE9EE,
109
+ 98: #FCF1F4,
110
+ 99: #FDF4F7,
111
+ 100: #FFFFFF,
112
+ ),
113
+ );
114
+ $_main: (
115
+ secondary: map.get($_light-palette, secondary),
116
+ neutral: map.get($_light-palette, neutral),
117
+ neutral-variant: map.get($_light-palette, neutral-variant),
118
+ error: map.get($_light-palette, error),
119
+ );
120
+ $_primary: map.merge(map.get($_light-palette, primary), $_main);
121
+ $_tertiary: map.merge(map.get($_light-palette, tertiary), $_main);
122
+
123
+ $m3-light-theme: mat.define-theme((
124
+ color: (
125
+ theme-type: light,
126
+ primary: $_primary,
127
+ tertiary: $_tertiary,
128
+ ),
129
+ typography: (
130
+ plain-family: 'Noto Sans',
131
+ brand-family: 'Noto Sans'
132
+ ),
133
+ density: (
134
+ scale: -4,
135
+ ),
136
+ ));
@@ -0,0 +1,77 @@
1
+ @use '@angular/material' as mat;
2
+ @import "./color_themes.scss";
3
+
4
+ body {
5
+ --mat-datepicker-calendar-container-background-color: #{mat.get-theme-color($m3-light-theme, primary, 100)} !important;
6
+ --mat-datepicker-calendar-period-button-text-color: #{mat.get-theme-color($m3-light-theme, primary, 35)} !important;
7
+ --mat-datepicker-calendar-date-hover-state-background-color: #{mat.get-theme-color($m3-light-theme, primary, 99)} !important;
8
+ --mat-datepicker-calendar-date-today-background-color: #{mat.get-theme-color($m3-light-theme, primary, 99)} !important;
9
+ --mat-datepicker-range-input-separator-color: #{mat.get-theme-color($m3-light-theme, neutral, 50)} !important;
10
+ --mat-datepicker-calendar-body-label-text-size: 16px;
11
+ --mat-datepicker-calendar-body-label-text-weight: 400;
12
+ --mat-datepicker-calendar-period-button-text-size: 16px;
13
+ --mat-datepicker-calendar-period-button-text-weight: 400;
14
+ --mat-datepicker-calendar-header-text-color: #1D1B20 !important;
15
+ --mat-datepicker-calendar-header-text-size: 16px !important;
16
+ --mat-datepicker-calendar-header-text-weight: 700 !important;
17
+
18
+ .mat-calendar-body-cell-content {
19
+ font-size: 16px;
20
+ }
21
+
22
+ .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
23
+ background-color: var(--mat-datepicker-calendar-date-hover-state-background-color);
24
+ }
25
+
26
+ .mat-date-range-input {
27
+ .mat-mdc-form-field-flex {
28
+ height: 40px;
29
+ }
30
+
31
+ .mat-date-range-input-inner::placeholder {
32
+ color: #{mat.get-theme-color($m3-light-theme, neutral, 50)};
33
+ }
34
+
35
+ .mat-mdc-input-element::placeholder {
36
+ font-weight: 500;
37
+ overflow: hidden;
38
+ color: var(--Text, #424954);
39
+ text-overflow: ellipsis;
40
+ font-size: 13px;
41
+ font-style: normal;
42
+ line-height: 24px;
43
+ letter-spacing: 0.5px;
44
+ }
45
+ width: 100%;
46
+ }
47
+
48
+ .opened_calendar {
49
+ --mdc-outlined-text-field-outline-width: 3px !important;
50
+ --mdc-outlined-text-field-outline-color: #0060DF !important;
51
+ --mdc-outlined-text-field-error-outline-color: #0060DF !important;
52
+ }
53
+
54
+ .mat-datepicker-content {
55
+ background-color: var(--white-color) !important;
56
+ --mat-datepicker-calendar-navigation-button-icon-color: #{mat.get-theme-color($m3-light-theme, primary, 80)};
57
+ --mat-datepicker-calendar-period-button-icon-color: #{mat.get-theme-color($m3-light-theme, primary, 80)};
58
+ box-shadow: 0 2px 6px 2px rgba(48, 70, 102, 0.10);
59
+ border: 1px solid var(--Outline, #D7D9DE);
60
+
61
+ .mat-calendar-body-selected {
62
+ background-color: var(--mat-datepicker-calendar-date-selected-state-background-color) !important;
63
+ color: var(--mat-datepicker-calendar-date-selected-state-text-color) !important;
64
+ }
65
+
66
+ .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
67
+ border: 1px solid var(--mat-datepicker-calendar-date-today-outline-color) !important;
68
+ }
69
+
70
+ .mat-calendar-body-cell-content {
71
+ border: unset !important;
72
+ font-size: 13px !important;
73
+ font-weight: 400 !important;
74
+ }
75
+ }
76
+ }
77
+
@@ -0,0 +1,106 @@
1
+ @use '@angular/material' as mat;
2
+ @import "./color_themes.scss";
3
+
4
+ body {
5
+ .mat-mdc-form-field {
6
+ width: 100%;
7
+ --mdc-outlined-text-field-input-text-placeholder-color: #{mat.get-theme-color($m3-light-theme, tertiary, 50)};
8
+ // Custom outline color intentionally outside of color palette
9
+ --mdc-outlined-text-field-focus-outline-color: #0060DF;
10
+ --mdc-outlined-text-field-outline-color: #{mat.get-theme-color($m3-light-theme, tertiary, 90)};
11
+ --mdc-outlined-text-field-hover-outline-color: #{mat.get-theme-color($m3-light-theme, tertiary, 70)};
12
+ // Set/focused values should be a slightly darker tertiary30
13
+ --mat-select-focused-arrow-color: #{mat.get-theme-color($m3-light-theme, tertiary, 30)};
14
+ --mat-select-enabled-trigger-text-color: #{mat.get-theme-color($m3-light-theme, tertiary, 30)};
15
+ --mdc-filled-text-field-caret-color: #{mat.get-theme-color($m3-light-theme, tertiary, 30)};
16
+ --mdc-filled-text-field-focus-active-indicator-color: #{mat.get-theme-color($m3-light-theme, tertiary, 30)};
17
+ --mdc-filled-text-field-focus-label-text-color: #{mat.get-theme-color($m3-light-theme, tertiary, 30)};
18
+ --mdc-outlined-text-field-caret-color: #{mat.get-theme-color($m3-light-theme, tertiary, 30)};
19
+ --mdc-outlined-text-field-focus-label-text-color: #{mat.get-theme-color($m3-light-theme, tertiary, 30)};
20
+ --mat-form-field-focus-select-arrow-color: #{mat.get-theme-color($m3-light-theme, tertiary, 30)};
21
+ --mdc-outlined-text-field-input-text-color: #{mat.get-theme-color($m3-light-theme, tertiary, 30)};
22
+ --mdc-outlined-text-field-focus-outline-width: 3px !important;
23
+ --mat-form-field-subscript-text-weight: 500;
24
+ --mat-form-field-container-text-size: 13px;
25
+ --mat-form-field-container-text-weight: 500;
26
+ }
27
+
28
+ mat-hint {
29
+ color: #{mat.get-theme-color($m3-light-theme, tertiary, 50)};
30
+ font-size: 11px;
31
+ font-weight: 500;
32
+ letter-spacing: 0.022px;
33
+ }
34
+
35
+ mat-label:not(.meu_item_label) {
36
+ color: #{mat.get-theme-color($m3-light-theme, tertiary, 50)};
37
+ position: relative;
38
+ bottom: 5px;
39
+ padding-left: 16px;
40
+ font-size: 11px;
41
+ font-weight: 500;
42
+ }
43
+
44
+ .mat-mdc-menu-item {
45
+ --mat-menu-item-label-text-size: 13px !important;
46
+ --mat-menu-item-label-text-weight: 500 !important;
47
+ --mat-menu-item-label-text-line-height: 20px !important;
48
+ --mat-menu-item-label-text-tracking: 0.2px !important;
49
+ --mat-menu-item-label-text-color: #424954 !important;
50
+ .meu_item_label {
51
+ text-align: left;
52
+ text-underline-position: from-font;
53
+ text-decoration-skip-ink: none;
54
+ }
55
+ }
56
+
57
+ .required-input {
58
+ color: #{mat.get-theme-color($m3-light-theme, error, 40)};
59
+ position: relative;
60
+ bottom: 5px;
61
+ font-size: 11px;
62
+ font-weight: 500;
63
+ }
64
+
65
+ .mat-form-field-invalid {
66
+ --mdc-outlined-text-field-outline-width: 3px !important;
67
+ // See if we can remove this after updating date-picker scss
68
+ --mdc-outlined-text-field-error-outline-color: #{mat.get-theme-color($m3-light-theme,error,40)} !important;
69
+ }
70
+
71
+ .default-form-icon-color {
72
+ color: #{mat.get-theme-color($m3-light-theme, tertiary, 50)} !important;
73
+ .mat-mdc-icon-button.tonal mat-icon {
74
+ color: #{mat.get-theme-color($m3-light-theme, tertiary, 50)} !important;
75
+ & svg path {
76
+ fill: #{mat.get-theme-color($m3-light-theme, tertiary, 50)} !important;
77
+ }
78
+ }
79
+ }
80
+
81
+ mat-form-field input::placeholder {
82
+ font-size: 13px;
83
+ font-style: normal;
84
+ font-weight: 500;
85
+ line-height: 20px;
86
+ letter-spacing: 0.2px;
87
+ }
88
+
89
+ .mat-mdc-input-element {
90
+ overflow: hidden;
91
+ color: var(--Text, #424954);
92
+ text-overflow: ellipsis;
93
+ font-size: 13px;
94
+ font-style: normal;
95
+ font-weight: 500;
96
+ line-height: 24px;
97
+ letter-spacing: 0.5px;
98
+ }
99
+
100
+ .mat-mdc-form-field-icon-suffix {
101
+ display: flex;
102
+ }
103
+ .mat-mdc-form-field-icon-prefix>.mat-icon {
104
+ padding: 0 8px !important;
105
+ }
106
+ }
@@ -0,0 +1,123 @@
1
+ @use '@angular/material' as mat;
2
+ @import "./color_themes.scss";
3
+
4
+ body {
5
+ $buttonSize: 40;
6
+ $buttonSizeSmall: 24;
7
+
8
+ app-icon-button {
9
+ display: inline-block;
10
+ height: #{$buttonSize}px;
11
+ }
12
+
13
+ app-icon-button:has(.small) {
14
+ height: #{$buttonSizeSmall}px;
15
+ }
16
+
17
+ // ICON BUTTON SIZING
18
+ .mat-mdc-icon-button,.mat-mdc-fab-base {
19
+ width: #{$buttonSize}px;
20
+ height: #{$buttonSize}px;
21
+ --mdc-icon-button-state-layer-size: #{$buttonSize}px !important;
22
+ padding: calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);
23
+ font-size: unset !important;
24
+
25
+ .mat-mdc-button-touch-target {
26
+ width: #{$buttonSize - 10 }px;
27
+ height: #{$buttonSize - 10 }px;
28
+ }
29
+
30
+ mat-icon {
31
+ svg {
32
+ vertical-align: super;
33
+ }
34
+ }
35
+
36
+ }
37
+
38
+ .mat-mdc-icon-button.small {
39
+ $iconSize: 21px;
40
+ $buttonSize: 24;
41
+ width: #{$buttonSizeSmall}px;
42
+ height: #{$buttonSizeSmall}px;
43
+ --mdc-icon-button-state-layer-size: #{$buttonSizeSmall}px !important;
44
+ --mdc-icon-button-icon-size: #{$iconSize} !important;
45
+
46
+ mat-icon {
47
+ font-size: $iconSize;
48
+ width: $iconSize;
49
+ height: $iconSize;
50
+ }
51
+
52
+ .mat-mdc-button-touch-target {
53
+ width: #{$buttonSizeSmall}px;
54
+ height: #{$buttonSizeSmall}px;
55
+ }
56
+
57
+ }
58
+
59
+ .mat-mdc-fab-base.small {
60
+ $iconSize: 21px;
61
+ $buttonSize: 24;
62
+ width: #{$buttonSize}px;
63
+ height: #{$buttonSize}px;
64
+ --mdc-icon-button-state-layer-size: #{$buttonSize}px !important;
65
+ --mdc-icon-button-icon-size: #{$iconSize} !important;
66
+
67
+ mat-icon {
68
+ font-size: $iconSize;
69
+ width: $iconSize;
70
+ height: $iconSize;
71
+ }
72
+
73
+ .mat-mdc-button-touch-target {
74
+ width: #{$buttonSize}px;
75
+ height: #{$buttonSize}px;
76
+ }
77
+ }
78
+
79
+ // END OF ICON BUTTON SIZING
80
+
81
+ // BUTTON ICON TYPES
82
+
83
+ .mat-mdc-icon-button.tonal {
84
+ --mat-icon-button-state-layer-color: #{mat.get-theme-color($m3-light-theme, tertiary, 60)};
85
+
86
+ mat-icon {
87
+ color: mat.get-theme-color($m3-light-theme, tertiary, 30);
88
+ & svg path {
89
+ fill: mat.get-theme-color($m3-light-theme, tertiary, 30);
90
+ }
91
+ }
92
+ }
93
+
94
+ .mat-mdc-icon-button.standard {
95
+ --mat-icon-button-state-layer-color: #{mat.get-theme-color($m3-light-theme, primary, 60)};
96
+
97
+ mat-icon {
98
+ color: mat.get-theme-color($m3-light-theme, primary, 50);
99
+ & svg path {
100
+ fill: mat.get-theme-color($m3-light-theme, primary, 50);
101
+ }
102
+ }
103
+ }
104
+
105
+ // FILLED
106
+ .mat-mdc-fab-base.filled {
107
+ --mdc-fab-container-shape: 50% !important;
108
+ --mdc-fab-container-elevation-shadow: none !important;
109
+ --mdc-fab-hover-container-elevation-shadow: none !important;
110
+ --mdc-fab-pressed-container-elevation-shadow: none !important;
111
+ --mdc-fab-focus-container-elevation-shadow: none !important;
112
+ --mdc-fab-container-color: #{mat.get-theme-color($m3-light-theme, primary, 50)};
113
+ --mat-fab-state-layer-color: #{mat.get-theme-color($m3-light-theme, primary, 50)};
114
+ mat-icon {
115
+ color: white;
116
+ & svg path {
117
+ fill: white;
118
+ }
119
+ }
120
+ }
121
+ // END OF BUTTON ICON TYPES
122
+
123
+ }
@@ -0,0 +1,119 @@
1
+ @use "sass:map";
2
+ @use '@angular/material' as mat;
3
+ @import "./color_themes.scss";
4
+
5
+ body {
6
+ $types: (
7
+ purple: (
8
+ main: #DBD4F3,
9
+ hover: #E5E0F6,
10
+ border: #6F5BBF,
11
+ text: #140063
12
+ ),
13
+ teal: (
14
+ main: #D2F3F2,
15
+ hover: #DFF6F6,
16
+ border: #00CAC3,
17
+ text: #006B67
18
+ ),
19
+ olive: (
20
+ main: #EFF2D4,
21
+ hover: #F3F6E0,
22
+ border: #CDD968,
23
+ text: #606C00
24
+ ),
25
+ orange: (
26
+ main: #FFE4DB,
27
+ hover: #FFECE5,
28
+ border: #FC8156,
29
+ text: #A42B00
30
+ ),
31
+ blue: (
32
+ main: #D1E9FF,
33
+ hover: #DEEFFF,
34
+ border: #42A5FF,
35
+ text: #003E77
36
+ ),
37
+ cyan: (
38
+ main: #DBF8FF,
39
+ hover: #E5FAFF,
40
+ border: #42D8FF,
41
+ text: #006681
42
+ ),
43
+ raspberry: (
44
+ main: #EBD6DB,
45
+ hover: #F1E1E5,
46
+ border: #711A2E,
47
+ text: #4B0011
48
+ ),
49
+ yellow: (
50
+ main: #FFFCCB,
51
+ hover: #FFFDDA,
52
+ border: #FFF000,
53
+ text: #847700
54
+ ),
55
+ wine: (
56
+ main: #EDD3E5,
57
+ hover: #F2DFEC,
58
+ border: #9D4280,
59
+ text: #680047
60
+ ),
61
+ green: (
62
+ main: #CFF1DD,
63
+ hover: #DCF5E7,
64
+ border: #2EB265,
65
+ text: #005D27
66
+ ),
67
+ primary: (
68
+ main: #C0E5C7,
69
+ hover: #EFFAF1,
70
+ border: #42B963,
71
+ text: #003A0C
72
+ ),
73
+ red: (
74
+ main: #FFE5E5,
75
+ hover: #FFD9D9,
76
+ border: #FF4D4D,
77
+ text: #8B0000
78
+ ),
79
+ );
80
+
81
+ --mdc-chip-container-shape-radius: 8px !important;
82
+ --mdc-chip-label-text-line-height: 16px !important;
83
+ --mdc-chip-label-text-size: 11px !important;
84
+ --mdc-chip-label-text-weight: 700 !important;
85
+ --mdc-chip-label-text-tracking: 0.3 !important;
86
+ --mdc-chip-outline-width: 0 !important;
87
+ --mdc-chip-container-height: 32px !important;
88
+
89
+ @each $type, $value in $types {
90
+ .label_#{$type} {
91
+ --mdc-chip-elevated-container-color: #{map.get($value, "main")};
92
+ --mdc-chip-outline-color: #{map.get($value, "border")};
93
+ --mdc-chip-label-text-color: #{map.get($value, "text")};
94
+
95
+ mat-icon {
96
+ width: 18px;
97
+ height: 18px;
98
+ font-size: 18px;
99
+ }
100
+ }
101
+ }
102
+
103
+ .mat-mdc-chip.small {
104
+ // TODO need to review
105
+ --mdc-chip-container-height: 28px !important;
106
+ }
107
+
108
+ .trailing-icon {
109
+ .mat-mdc-standard-chip .mdc-evolution-chip__action--primary {
110
+ // Chips with trailing icon have -4 right padding per Figma
111
+ padding-right: 8px;
112
+ }
113
+ }
114
+
115
+ .mat-mdc-chip.bordered {
116
+ --mdc-chip-outline-width: 2.5px !important;
117
+ }
118
+
119
+ }