@codetectonics/mantle 2.0.4 → 2.0.5

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codetectonics/mantle",
3
- "version": "2.0.4",
3
+ "version": "2.0.5",
4
4
  "dependencies": {
5
5
  "@angular/animations": "^20",
6
6
  "@angular/cdk": "^20",
@@ -0,0 +1,32 @@
1
+ @use './base/button-theme' as buttonTheme;
2
+ @use './base/chip-theme' as chipTheme;
3
+ @use './base/dashboard-page-theme' as dashboardPageTheme;
4
+ @use './base/dialog-theme' as dialogTheme;
5
+ @use './base/dynamic-layout-theme' as dynamicLayoutTheme;
6
+ @use './base/file-drop-theme' as fileDropTheme;
7
+ @use './base/form-theme' as formTheme;
8
+ @use './base/list-page-theme' as listPageTheme;
9
+ @use './base/markdown-theme' as markdownTheme;
10
+ @use './base/navbar-theme' as navbarTheme;
11
+ @use './base/page-theme' as pageTheme;
12
+ @use './base/rich-text-editor-theme' as richTextEditorTheme;
13
+ @use './base/section-title-theme' as sectionTitleTheme;
14
+ @use './base/snackbar-theme' as snackbarTheme;
15
+ @use './base/tabbed-page-theme' as tabbedPageTheme;
16
+ @use './base/table-theme' as tableTheme;
17
+ @use './base/text-theme' as textTheme;
18
+
19
+ @mixin theme($theme) {
20
+ @include dashboardPageTheme.theme($theme);
21
+ @include fileDropTheme.theme($theme);
22
+ @include formTheme.theme($theme);
23
+ @include listPageTheme.theme($theme);
24
+ @include navbarTheme.theme($theme);
25
+ @include pageTheme.theme($theme);
26
+ @include richTextEditorTheme.theme($theme);
27
+ @include sectionTitleTheme.theme($theme);
28
+ @include snackbarTheme.theme($theme);
29
+ @include tabbedPageTheme.theme($theme);
30
+ @include tableTheme.theme($theme);
31
+ @include textTheme.theme($theme);
32
+ }
@@ -0,0 +1,46 @@
1
+ .button-with-icon {
2
+ padding-left: 0 !important;
3
+ padding-right: 0 !important;
4
+
5
+ .mdc-button__label {
6
+ width: 100%;
7
+ padding-left: 40px !important;
8
+ padding-right: 40px !important;
9
+
10
+ .mat-icon {
11
+ position: absolute;
12
+ top: calc(50% - 12px);
13
+ bottom: calc(50% - 12px);
14
+ line-height: 24px;
15
+
16
+ &.left-icon {
17
+ left: 8px;
18
+ }
19
+
20
+ &.right-icon {
21
+ right: 8px;
22
+ }
23
+ }
24
+ }
25
+ }
26
+
27
+ .button-with-spinner {
28
+ padding-left: 0 !important;
29
+ padding-right: 0 !important;
30
+
31
+ .mdc-button__label {
32
+ width: 100%;
33
+ padding-left: 40px !important;
34
+ padding-right: 40px !important;
35
+
36
+ .mat-mdc-progress-spinner {
37
+ position: absolute;
38
+ top: calc(50% - 12px);
39
+ bottom: calc(50% - 12px);
40
+ right: 8px;
41
+ height: 16px;
42
+ width: 16px;
43
+ margin: 4px;
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,51 @@
1
+ .mat-mdc-chip {
2
+ min-height: 1rem !important;
3
+ height: auto !important;
4
+ padding-top: 4px !important;
5
+ padding-bottom: 4px !important;
6
+ margin-top: 1px !important;
7
+ margin-bottom: 1px !important;
8
+
9
+ .mat-mdc-chip-action-label {
10
+ font-size: 12px !important;
11
+ font-weight: 500;
12
+ line-height: 1rem !important;
13
+ }
14
+ }
15
+
16
+ .mat-mdc-chip.mat-mdc-standard-chip.mat-primary {
17
+ background-color: #195147;
18
+
19
+ .mat-mdc-chip-action-label {
20
+ color: #ffffff;
21
+ }
22
+ }
23
+
24
+ .mat-mdc-chip.mat-mdc-standard-chip.mat-accent {
25
+ background-color: #ffc107;
26
+
27
+ .mat-mdc-chip-action-label {
28
+ color: #000000;
29
+ }
30
+ }
31
+
32
+ .mat-mdc-chip.mat-mdc-standard-chip.success {
33
+ background-color: #5ecf14 !important;
34
+ }
35
+
36
+ .mat-mdc-chip.mat-mdc-standard-chip.accent-alt-1 {
37
+ background-color: #8380b6 !important;
38
+ }
39
+
40
+ .mat-mdc-chip.mat-mdc-standard-chip.success-alt-1 {
41
+ background-color: #43bccd !important;
42
+ }
43
+
44
+ .mat-mdc-chip.mat-mdc-standard-chip.success-alt-2 {
45
+ background-color: #e8998d !important;
46
+ }
47
+
48
+ input.mat-mdc-chip-input {
49
+ width: 100% !important;
50
+ flex: 1 1 1px !important;
51
+ }
@@ -0,0 +1,70 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin color($theme) {
5
+ .dashboard-page {
6
+ .mat-mdc-card-title {
7
+ .main-card-title {
8
+ color: mat.get-theme-color($theme, primary, 900);
9
+ }
10
+
11
+ .card-title-icon {
12
+ color: mat.get-theme-color($theme, primary, 200);
13
+ }
14
+ }
15
+ }
16
+ }
17
+
18
+ @mixin typography($theme) {
19
+ .dashboard-card-title {
20
+ font: mat.get-theme-typography($theme, headline-6, font);
21
+ letter-spacing: mat.get-theme-typography($theme, headline-6, letter-spacing);
22
+ font-size: 18px;
23
+ line-height: 20px;
24
+ font-weight: 400;
25
+ }
26
+ }
27
+
28
+ @mixin theme($theme) {
29
+ @include color($theme);
30
+ @include typography($theme);
31
+
32
+ .dashboard-page {
33
+ .mat-mdc-card-header {
34
+ padding-top: 0;
35
+
36
+ .mat-mdc-card-header-text {
37
+ padding-top: 5px;
38
+
39
+ .mat-mdc-icon-button {
40
+ padding: 0;
41
+ width: 40px;
42
+ height: 40px;
43
+
44
+ .mat-icon {
45
+ font-size: 24px;
46
+ line-height: 24px;
47
+ width: 24px;
48
+ height: 24px;
49
+ position: absolute;
50
+ top: calc(50% - 12px);
51
+ bottom: calc(50% - 12px);
52
+ left: calc(50% - 12px);
53
+ right: calc(50% - 12px);
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
59
+
60
+ .mat-mdc-menu-panel {
61
+ .mdc-text-field {
62
+ padding-left: 0;
63
+ padding-right: 0;
64
+ }
65
+
66
+ .search-button {
67
+ margin-top: 16px;
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,36 @@
1
+ .dialog-title-section {
2
+ margin-top: 24px !important;
3
+ margin-left: -24px !important;
4
+ margin-right: -12px !important;
5
+ }
6
+
7
+ .actions-section {
8
+ button {
9
+ text-transform: uppercase;
10
+ }
11
+ }
12
+
13
+ .confirmation-dialog {
14
+ .mat-mdc-dialog-container {
15
+ max-width: unset;
16
+
17
+ .mat-mdc-dialog-surface {
18
+ background-color: #EAA611;
19
+
20
+ .mat-mdc-dialog-content {
21
+ color: white;
22
+
23
+ .mdc-button__label{
24
+ color: white;
25
+ font-weight: 400;
26
+ }
27
+ }
28
+ }
29
+ }
30
+ }
31
+
32
+ .delete-confirmation-dialog {
33
+ .mat-mdc-dialog-container {
34
+ max-width: unset;
35
+ }
36
+ }
@@ -0,0 +1,138 @@
1
+ .dynamic-form, .dynamic-details {
2
+ &.plain {
3
+ .dynamic-details-section, .dynamic-form-section {
4
+ margin-bottom: 16px;
5
+ }
6
+
7
+ .markdown-wrapper {
8
+ padding: 40px 40px 8px 40px;
9
+ }
10
+ }
11
+
12
+ &.accordion {
13
+ .mat-expansion-panel {
14
+ .title-wrapper {
15
+ width: 100%;
16
+ padding-left: 16px;
17
+
18
+ h4 {
19
+ text-transform: uppercase;
20
+ line-height: 1rem;
21
+ margin-bottom: 0;
22
+ }
23
+
24
+ mat-divider {
25
+ display: none;
26
+ }
27
+ }
28
+
29
+ &.mat-expanded {
30
+ .title-wrapper {
31
+ mat-divider {
32
+ display: block;
33
+ margin-top: 12px;
34
+ }
35
+ }
36
+ }
37
+
38
+ &.mat-expansion-panel-spacing {
39
+ margin: 30px 0;
40
+ }
41
+ }
42
+
43
+ .mat-expansion-panel:first-child {
44
+ margin-top: 0;
45
+ }
46
+
47
+ .mat-expansion-panel:last-child {
48
+ margin-bottom: 0;
49
+ }
50
+
51
+ .markdown-wrapper {
52
+ padding: 0 20px 0 20px;
53
+ }
54
+ }
55
+
56
+ .dashboard-card {
57
+ .mat-mdc-card-header {
58
+ padding-top: 0;
59
+ padding-left: 0;
60
+ padding-right: 0;
61
+ }
62
+
63
+ .dashboard-card-content {
64
+ padding-left: 0;
65
+ padding-right: 0;
66
+ padding-bottom: 0;
67
+
68
+ .header-text {
69
+ margin-top: 0;
70
+ margin-bottom: 12px;
71
+ }
72
+ }
73
+
74
+ .mat-mdc-card {
75
+ box-shadow: none;
76
+ }
77
+ }
78
+ }
79
+
80
+ .grid-form-layout, .grid-details-layout {
81
+ .mat-grid-list {
82
+ .mat-grid-tile-content > * {
83
+ width: 100%;
84
+ }
85
+
86
+ &.multi-column {
87
+ .mat-grid-tile-content {
88
+ padding-left: 16px;
89
+ padding-right: 16px;
90
+ }
91
+ }
92
+ }
93
+ }
94
+
95
+ .grid-layout-editor-section {
96
+ .mat-grid-list {
97
+ .mat-grid-tile-content > * {
98
+ width: 100%;
99
+ }
100
+
101
+ &.multi-column {
102
+ .mat-grid-tile-content {
103
+ padding-left: 16px;
104
+ padding-right: 16px;
105
+ }
106
+ }
107
+ }
108
+ }
109
+
110
+ .table-layout-editor-section {
111
+ overflow-x: auto;
112
+ border: 1px solid lightgrey;
113
+ border-radius: 4px;
114
+ padding: 8px 16px;
115
+
116
+ .section-type-label {
117
+ padding-left: 8px;
118
+ margin-bottom: 0 !important;
119
+ }
120
+
121
+ .mat-grid-list {
122
+ .mat-grid-tile-content > * {
123
+ width: 100%;
124
+ }
125
+
126
+ .mat-grid-tile-content {
127
+ padding-left: 8px;
128
+ padding-right: 8px;
129
+ }
130
+ }
131
+ }
132
+
133
+ @media (min-width: 992px) {
134
+ .table-section-content, .roster-shift-list-content {
135
+ padding-left: 16px;
136
+ padding-right: 16px;
137
+ }
138
+ }
@@ -0,0 +1,47 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin color($theme) {
5
+ .file-dropzone {
6
+ &.fileover, &.uploading {
7
+ border: solid 2px mat.get-theme-color($theme, primary);
8
+ }
9
+
10
+ position: relative;
11
+
12
+ .uploading-indicator-overlay {
13
+ display: block;
14
+ background-color: #FFFFFF66;
15
+ position: absolute;
16
+ top: 0;
17
+ bottom: 0;
18
+ left: 0;
19
+ right: 0;
20
+ z-index: 100;
21
+ }
22
+
23
+ .uploading-indicator {
24
+ display: block;
25
+ background-color: mat.get-theme-color($theme, primary);
26
+ color: white;
27
+ position: absolute;
28
+ top: 0;
29
+ left: 0;
30
+ padding: 8px 16px;
31
+ }
32
+ }
33
+ }
34
+
35
+ @mixin typography($theme) {
36
+ .file-dropzone {
37
+ .uploading-indicator {
38
+ font: mat.get-theme-typography($theme, body-2, font);
39
+ letter-spacing: mat.get-theme-typography($theme, body-2, letter-spacing);
40
+ }
41
+ }
42
+ }
43
+
44
+ @mixin theme($theme) {
45
+ @include color($theme);
46
+ @include typography($theme);
47
+ }
@@ -0,0 +1,89 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin color($theme) {
5
+ .mat-mdc-form-field-invalid {
6
+ .mat-mdc-form-field-hint.error-message {
7
+ color: mat.get-theme-color($theme, warn);
8
+ }
9
+ }
10
+ }
11
+
12
+ @mixin typography($theme) {
13
+ .mat-mdc-form-field {
14
+ .mat-mdc-floating-label {
15
+ font: mat.get-theme-typography($theme, caption, font);
16
+ letter-spacing: mat.get-theme-typography($theme, caption, letter-spacing);
17
+
18
+ text-transform: uppercase;
19
+ }
20
+ }
21
+
22
+ .error-message {
23
+ font: mat.get-theme-typography($theme, caption, font);
24
+ letter-spacing: mat.get-theme-typography($theme, caption, letter-spacing);
25
+ }
26
+ }
27
+
28
+ @mixin theme($theme) {
29
+ @include color($theme);
30
+ @include typography($theme);
31
+
32
+ .mat-mdc-form-field {
33
+ background-color: transparent;
34
+ width: 100%;
35
+
36
+ .mat-mdc-form-field-icon-suffix {
37
+ height: 56px;
38
+ padding-right: 4px;
39
+
40
+ .mat-mdc-icon-button {
41
+ vertical-align: top;
42
+ height: 32px;
43
+ width: 32px;
44
+ margin-top: 20px;
45
+ padding: 0;
46
+
47
+ .mat-mdc-button-touch-target {
48
+ height: 100%;
49
+ width: 100%;
50
+ }
51
+
52
+ .mat-icon, svg {
53
+ width: 20px;
54
+ height: 20px;
55
+ line-height: 20px;
56
+ font-size: 20px;
57
+ text-align: center;
58
+ margin: 6px;
59
+ }
60
+
61
+ &.clear-button {
62
+ height: 24px;
63
+ width: 24px;
64
+ margin-top: 22px;
65
+
66
+ .mat-icon {
67
+ width: 14px;
68
+ height: 14px;
69
+ line-height: 14px;
70
+ font-size: 14px;
71
+ text-align: center;
72
+ margin: 5px;
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+
79
+ .mat-mdc-floating-label {
80
+ text-transform: uppercase;
81
+ max-width: 100%;
82
+ text-overflow: ellipsis;
83
+ overflow: hidden;
84
+ }
85
+
86
+ .mdc-text-field--filled {
87
+ background-color: transparent !important;
88
+ }
89
+ }
@@ -0,0 +1,32 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin color($theme) {
5
+ .list-page {
6
+ .mat-drawer {
7
+ background-color: mat.get-theme-color($theme, primary, 50);
8
+ }
9
+
10
+ .collapsible-column {
11
+ background-color: #f3f9fb;
12
+ }
13
+ }
14
+ }
15
+
16
+ @mixin typography($theme) {
17
+ .list-page {
18
+ .mat-drawer {
19
+ font: mat.get-theme-typography($theme, body-1, font);
20
+ letter-spacing: mat.get-theme-typography($theme, body-1, letter-spacing);
21
+ }
22
+ }
23
+ }
24
+
25
+ @mixin theme($theme) {
26
+ @include color($theme);
27
+ @include typography($theme);
28
+
29
+ .mat-mdc-form-field.mat-mdc-paginator-page-size-select {
30
+ width: 84px;
31
+ }
32
+ }
@@ -0,0 +1,18 @@
1
+ .markdown-wrapper {
2
+ .fraction {
3
+ display: inline-block;
4
+ position: relative;
5
+ vertical-align: middle;
6
+ letter-spacing: 0.001em;
7
+ text-align: center;
8
+ }
9
+
10
+ .fraction > span {
11
+ display: block;
12
+ padding: 0.1em;
13
+
14
+ &.denominator {
15
+ border-top: thin solid black;
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,103 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin color($theme) {
5
+ .active-role-button {
6
+ background-color: mat.get-theme-color($theme, accent);
7
+ }
8
+
9
+ .sidenav {
10
+ .mat-toolbar {
11
+ background-color: white;
12
+ color: mat.get-theme-color($theme, primary, 900);
13
+ }
14
+
15
+ .mat-tree-node {
16
+
17
+ .mat-mdc-button {
18
+ .mat-icon {
19
+ color: mat.get-theme-color($theme, primary, 400);
20
+ }
21
+
22
+ &.active {
23
+ background-color: mat.get-theme-color($theme, accent);
24
+ }
25
+ }
26
+
27
+ &.leaf-node {
28
+ .mat-divider {
29
+ border-color: mat.get-theme-color($theme, primary);
30
+ }
31
+
32
+ .mat-mdc-button {
33
+ &.active {
34
+ .mdc-button__label {
35
+ color: inherit;
36
+ }
37
+ }
38
+ }
39
+ }
40
+
41
+ }
42
+ }
43
+
44
+ .left-facing-menu {
45
+ button[mat-menu-item] {
46
+ &.mat-mdc-menu-item-submenu-trigger {
47
+ .mat-mdc-menu-submenu-icon {
48
+ border-color: transparent currentColor transparent transparent;
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+
55
+ @mixin typography($theme) {
56
+ .sidenav {
57
+ .mat-tree-node {
58
+ .mat-mdc-button {
59
+ justify-content: left;
60
+
61
+ .mat-icon {
62
+ font-size: 20px;
63
+ height: 20px;
64
+ width: 20px;
65
+ }
66
+
67
+ .node-label {
68
+ font: mat.get-theme-typography($theme, body-2, font);
69
+ letter-spacing: mat.get-theme-typography($theme, body-2, letter-spacing);
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+
76
+ @mixin theme($theme) {
77
+ @include color($theme);
78
+ @include typography($theme);
79
+
80
+ .mat-mdc-menu-panel {
81
+ min-height: 48px !important;
82
+ }
83
+
84
+ .navbar-logo {
85
+ height: 44px;
86
+ }
87
+
88
+ .left-facing-menu {
89
+ button[mat-menu-item] {
90
+ padding-left: 32px;
91
+ padding-right: 16px;
92
+
93
+ &.mat-mdc-menu-item-submenu-trigger {
94
+ .mat-mdc-menu-submenu-icon {
95
+ position: absolute;
96
+ left: 8px;
97
+ -webkit-transform: rotate(180deg);
98
+ transform: rotate(180deg);
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
@@ -0,0 +1,41 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin color($theme) {
5
+ .page {
6
+ background-color: mat.get-theme-color($theme, primary, 50);
7
+
8
+ .main-content {
9
+ background-color: white;
10
+ }
11
+ }
12
+ }
13
+
14
+ @mixin typography($theme) {}
15
+
16
+ @mixin theme($theme) {
17
+ @include color($theme);
18
+ @include typography($theme);
19
+ }
20
+
21
+ .page {
22
+ padding: 24px 32px;
23
+
24
+ .main-content {
25
+ padding: 24px 32px;
26
+ }
27
+
28
+ @media (max-width: 991px) {
29
+ .main-content {
30
+ padding: 24px 16px;
31
+ }
32
+ }
33
+ }
34
+
35
+ .page-header {
36
+ margin-bottom: 8px;
37
+ }
38
+
39
+ .page-footer {
40
+ margin-top: 16px;
41
+ }
@@ -0,0 +1,77 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin color($theme) {}
5
+
6
+ @mixin typography($theme) {
7
+ .quill-editor {
8
+ .ql-container {
9
+ font: mat.get-theme-typography($theme, body-1, font);
10
+ letter-spacing: mat.get-theme-typography($theme, body-1, letter-spacing);
11
+ }
12
+ }
13
+ }
14
+
15
+ @mixin theme($theme) {
16
+ @include color($theme);
17
+ @include typography($theme);
18
+
19
+ .rich-text-editor-wrapper, .rich-text-display-wrapper {
20
+ display: flex !important;
21
+ flex-direction: column;
22
+ box-sizing: border-box;
23
+ place-content: stretch flex-start;
24
+ align-items: stretch;
25
+ height: 100%;
26
+ width: 100%;
27
+
28
+ label {
29
+ flex: 0 0 auto;
30
+ box-sizing: border-box;
31
+ }
32
+
33
+ .quill-editor {
34
+ flex: 1 0 auto;
35
+ box-sizing: border-box;
36
+ height: 1px;
37
+
38
+ display: flex !important;
39
+ flex-direction: column;
40
+ place-content: stretch flex-start;
41
+ align-items: stretch;
42
+ width: 100%;
43
+
44
+ .ql-toolbar {
45
+ flex: 0 0 auto;
46
+ box-sizing: border-box;
47
+ }
48
+
49
+ .ql-container {
50
+ flex: 1 0 auto;
51
+ box-sizing: border-box;
52
+ height: 1px;
53
+ border: 1px solid #ccc !important;
54
+ }
55
+
56
+ .ql-table-better {
57
+ th, td {
58
+ vertical-align: top;
59
+ }
60
+
61
+ }
62
+ }
63
+
64
+ .ql-mention-list-container {
65
+ z-index: 1000 !important;
66
+ position: absolute !important;
67
+ overflow: visible !important;
68
+ }
69
+ }
70
+
71
+ .rich-text-display-wrapper {
72
+ .ql-toolbar {
73
+ display: none !important;
74
+ }
75
+ }
76
+
77
+ }
@@ -0,0 +1,31 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin color($theme) {
5
+ .section-title {
6
+ background-color: mat.get-theme-color($theme, primary);
7
+ color: white;
8
+ }
9
+ }
10
+
11
+ @mixin typography($theme) {
12
+ .section-title {
13
+ line-height: 1em;
14
+ text-transform: uppercase;
15
+ }
16
+ }
17
+
18
+ @mixin theme($theme) {
19
+ @include color($theme);
20
+ @include typography($theme);
21
+
22
+ .section-title {
23
+ box-sizing: border-box;
24
+ height: 48px;
25
+ padding-top: calc((48px - 1em) / 2);
26
+ padding-bottom: calc((48px - 1em) / 2);
27
+ padding-left: 20px;
28
+ padding-right: 20px;
29
+ margin-bottom: 0;
30
+ }
31
+ }
@@ -0,0 +1,66 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin color($theme) {
5
+ .info-announcement {
6
+ .mdc-snackbar__surface {
7
+ background-color: mat.get-theme-color($theme, primary);
8
+ }
9
+
10
+ .mat-mdc-snack-bar-label {
11
+ color: white !important;
12
+ font-weight: 500 !important;
13
+
14
+ .mat-icon {
15
+ color: white !important;
16
+ font-weight: 400 !important;
17
+ }
18
+ }
19
+ }
20
+
21
+ .success-announcement {
22
+ .mdc-snackbar__surface {
23
+ background-color: #96C137 !important;
24
+ }
25
+
26
+ .mat-mdc-snack-bar-label {
27
+ color: white !important;
28
+ font-weight: 500 !important;
29
+
30
+ .mat-icon {
31
+ color: white !important;
32
+ font-weight: 400 !important;
33
+ }
34
+ }
35
+ }
36
+
37
+ .warn-announcement {
38
+ .mdc-snackbar__surface {
39
+ background-color: mat.get-theme-color($theme, warn, 900);
40
+ }
41
+
42
+ .mat-mdc-snack-bar-label {
43
+ color: white !important;
44
+ font-weight: 500 !important;
45
+
46
+ .mat-icon {
47
+ color: white !important;
48
+ font-weight: 400 !important;
49
+ }
50
+ }
51
+ }
52
+ }
53
+
54
+ @mixin typography($theme) {
55
+ .info-announcement,
56
+ .success-announcement,
57
+ .warn-announcement {
58
+ font: mat.get-theme-typography($theme, body-2, font);
59
+ letter-spacing: mat.get-theme-typography($theme, body-2, letter-spacing);
60
+ }
61
+ }
62
+
63
+ @mixin theme($theme) {
64
+ @include color($theme);
65
+ @include typography($theme);
66
+ }
@@ -0,0 +1,48 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin color($theme) {
5
+ .tabbed-page {
6
+ background-color: mat.get-theme-color($theme, primary, 50);
7
+
8
+ .main-content {
9
+ background-color: white;
10
+ }
11
+ }
12
+ }
13
+
14
+ @mixin typography($theme) {
15
+ .tabbed-page {
16
+ .mat-mdc-tab-label {
17
+ font: mat.get-theme-typography($theme, button, font);
18
+ letter-spacing: mat.get-theme-typography($theme, button, letter-spacing);
19
+ }
20
+ }
21
+ }
22
+
23
+ @mixin theme($theme) {
24
+ @include color($theme);
25
+ @include typography($theme);
26
+ }
27
+
28
+ .tabbed-page {
29
+ padding: 0;
30
+
31
+ .tab-bar {
32
+ padding: 12px 32px 0 32px;
33
+ }
34
+
35
+ .tab-content {
36
+ padding: 12px 32px;
37
+
38
+ .main-content {
39
+ padding: 24px 32px;
40
+ }
41
+
42
+ @media (max-width: 991px) {
43
+ .main-content {
44
+ padding: 24px 16px 0 16px;
45
+ }
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,62 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin color($theme) {
5
+ table {
6
+ .mat-mdc-row.clickable-row:hover {
7
+ .mat-mdc-cell {
8
+ background-color: mat.get-theme-color($theme, accent, 50);
9
+ }
10
+ }
11
+
12
+ .mat-mdc-row.striped-row:nth-child(even) {
13
+ background-color: mat.get-theme-color($theme, primary, 50);
14
+ }
15
+ }
16
+ }
17
+
18
+ @mixin typography($theme) {
19
+ table {
20
+ th {
21
+ font: mat.get-theme-typography($theme, subtitle-2, font);
22
+ letter-spacing: mat.get-theme-typography($theme, subtitle-2, letter-spacing);
23
+ }
24
+
25
+ td {
26
+ font: mat.get-theme-typography($theme, body-2, font);
27
+ letter-spacing: mat.get-theme-typography($theme, body-2, letter-spacing);
28
+ }
29
+ }
30
+ }
31
+
32
+ @mixin theme($theme) {
33
+ @include color($theme);
34
+ @include typography($theme);
35
+ }
36
+
37
+ table {
38
+ .mat-mdc-row.clickable-row {
39
+ cursor: pointer;
40
+ }
41
+
42
+ th, td {
43
+ padding-left: 8px !important;
44
+ padding-right: 8px !important;
45
+
46
+ &:first-of-type {
47
+ padding-left: 24px !important;
48
+ }
49
+
50
+ &:last-of-type {
51
+ padding-right: 24px !important;
52
+ }
53
+ }
54
+ }
55
+
56
+ .horizontal-scroll-table {
57
+ overflow-x: auto;
58
+
59
+ th, td {
60
+ white-space: nowrap;
61
+ }
62
+ }
@@ -0,0 +1,117 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+
4
+ @mixin color($theme) {
5
+ .primary-text {
6
+ color: mat.get-theme-color($theme, primary) !important;
7
+ }
8
+
9
+ .accent-text {
10
+ color: mat.get-theme-color($theme, accent) !important;
11
+ }
12
+
13
+ .warn-text {
14
+ color: mat.get-theme-color($theme, warn) !important;
15
+ }
16
+ }
17
+
18
+ @mixin typography($theme) {
19
+ body, .body-1 {
20
+ font: mat.get-theme-typography($theme, body-1, font);
21
+ letter-spacing: mat.get-theme-typography($theme, body-1, letter-spacing);
22
+ }
23
+
24
+ .body-2 {
25
+ font: mat.get-theme-typography($theme, body-2, font);
26
+ letter-spacing: mat.get-theme-typography($theme, body-2, letter-spacing);
27
+ }
28
+
29
+ h1, .headline-1, .headline {
30
+ font: mat.get-theme-typography($theme, headline-1, font);
31
+ letter-spacing: mat.get-theme-typography($theme, headline-1, letter-spacing);
32
+
33
+ font-size: 24px;
34
+ line-height: 32px;
35
+ font-weight: 400;
36
+ margin: 0 0 16px 0;
37
+ }
38
+
39
+ h2, .headline-2, .title {
40
+ font: mat.get-theme-typography($theme, headline-2, font);
41
+ letter-spacing: mat.get-theme-typography($theme, headline-2, letter-spacing);
42
+
43
+ font-size: 20px;
44
+ line-height: 32px;
45
+ font-weight: 400;
46
+ margin: 0 0 16px 0;
47
+ }
48
+
49
+ h3, .headline-3 {
50
+ font: mat.get-theme-typography($theme, headline-3, font);
51
+ letter-spacing: mat.get-theme-typography($theme, headline-3, letter-spacing);
52
+
53
+ font-size: 16px;
54
+ line-height: 28px;
55
+ font-weight: 400;
56
+ margin: 0 0 16px 0;
57
+ }
58
+
59
+ h4, .headline-4 {
60
+ font: mat.get-theme-typography($theme, headline-4, font);
61
+ letter-spacing: mat.get-theme-typography($theme, headline-4, letter-spacing);
62
+
63
+ font-size: 15px;
64
+ line-height: 24px;
65
+ font-weight: 400;
66
+ margin: 0 0 16px 0;
67
+ }
68
+
69
+ h5, .headline-5 {
70
+ font: mat.get-theme-typography($theme, headline-5, font);
71
+ letter-spacing: mat.get-theme-typography($theme, headline-5, letter-spacing);
72
+
73
+ font-size: calc(14px * .83);
74
+ line-height: 20px;
75
+ font-weight: 400;
76
+ margin: 0 0 12px 0;
77
+ }
78
+
79
+ h6, .headline-6 {
80
+ font: mat.get-theme-typography($theme, headline-6, font);
81
+ letter-spacing: mat.get-theme-typography($theme, headline-6, letter-spacing);
82
+
83
+ font-size: calc(14px * .67);
84
+ line-height: 20px;
85
+ font-weight: 400;
86
+ margin: 0 0 12px 0;
87
+ }
88
+
89
+ .subtitle-1, .subtitle {
90
+ font: mat.get-theme-typography($theme, subtitle-1, font);
91
+ letter-spacing: mat.get-theme-typography($theme, subtitle-1, letter-spacing);
92
+ }
93
+
94
+ .subtitle-2 {
95
+ font: mat.get-theme-typography($theme, subtitle-2, font);
96
+ letter-spacing: mat.get-theme-typography($theme, subtitle-2, letter-spacing);
97
+ }
98
+
99
+ .caption, label {
100
+ font: mat.get-theme-typography($theme, caption, font);
101
+ letter-spacing: mat.get-theme-typography($theme, caption, letter-spacing);
102
+ }
103
+
104
+ button, .button {
105
+ font: mat.get-theme-typography($theme, button, font);
106
+ letter-spacing: mat.get-theme-typography($theme, button, letter-spacing);
107
+ }
108
+
109
+ b, strong {
110
+ font-weight: 500;
111
+ }
112
+ }
113
+
114
+ @mixin theme($theme) {
115
+ @include color($theme);
116
+ @include typography($theme);
117
+ }