@elderbyte/ngx-starter 18.13.0-beta.1 → 18.13.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 (84) hide show
  1. package/_index.scss +6 -23
  2. package/esm2022/lib/common/exceptions/public_api.mjs +2 -0
  3. package/esm2022/lib/common/exceptions/unreachable-case-error.mjs +6 -0
  4. package/esm2022/lib/common/public_api.mjs +2 -1
  5. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +3 -3
  6. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
  7. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
  8. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
  9. package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox-controller.mjs +97 -0
  10. package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox.directive.mjs +50 -0
  11. package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox-controller.mjs +102 -0
  12. package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox.directive.mjs +50 -0
  13. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +9 -3
  14. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +5 -12
  15. package/esm2022/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.mjs +3 -3
  16. package/esm2022/lib/components/public_api.mjs +1 -2
  17. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +3 -3
  18. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +3 -3
  19. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +3 -3
  20. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
  21. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +5 -3
  22. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
  23. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +3 -3
  24. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
  25. package/fesm2022/elderbyte-ngx-starter.mjs +349 -189
  26. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  27. package/lib/common/exceptions/public_api.d.ts +1 -0
  28. package/lib/common/exceptions/unreachable-case-error.d.ts +4 -0
  29. package/lib/common/public_api.d.ts +1 -0
  30. package/lib/components/forms/directives/checkbox/elder-single-state-checkbox-controller.d.ts +46 -0
  31. package/lib/components/forms/directives/checkbox/elder-single-state-checkbox.directive.d.ts +34 -0
  32. package/lib/components/forms/directives/checkbox/elder-triple-state-checkbox-controller.d.ts +47 -0
  33. package/lib/components/forms/directives/{elder-triple-state-checkbox.directive.d.ts → checkbox/elder-triple-state-checkbox.directive.d.ts} +10 -23
  34. package/lib/components/forms/directives/elder-forms-directives.module.d.ts +9 -7
  35. package/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.d.ts +1 -2
  36. package/lib/components/public_api.d.ts +0 -1
  37. package/package.json +1 -1
  38. package/src/lib/components/badge/elder-badge/elder-badge.component.scss +1 -2
  39. package/src/lib/components/button-group/elder-button-group/elder-button-group.component.scss +7 -1
  40. package/src/lib/components/card-organizer/card-stack/elder-card-stack.component.scss +14 -3
  41. package/src/lib/components/cards/elder-card/elder-card.component.scss +8 -2
  42. package/src/lib/components/chips/_elder-chip-theme.scss +12 -101
  43. package/src/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.scss +6 -0
  44. package/src/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.scss +0 -11
  45. package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +22 -15
  46. package/src/lib/components/data-view/table/elder-table/elder-table.component.scss +21 -12
  47. package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +9 -2
  48. package/src/lib/components/expand-toggle-button/elder-expand-toggle-button.component.scss +8 -2
  49. package/src/lib/components/files/blob-viewer/elder-blob-viewer.component.scss +9 -4
  50. package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +10 -7
  51. package/src/lib/components/iframes/iframe-host/iframe-host.component.scss +4 -0
  52. package/src/lib/components/navigation/nav/_elder-nav-theme.scss +24 -12
  53. package/src/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.scss +4 -1
  54. package/src/lib/components/panels/card-panel/elder-card-panel.component.scss +12 -3
  55. package/src/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.scss +12 -4
  56. package/src/lib/components/panels/flat/_elder-panel-theme.scss +9 -26
  57. package/src/lib/components/select/_elder-select-base.scss +9 -1
  58. package/src/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.scss +4 -1
  59. package/src/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.scss +39 -10
  60. package/src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.scss +52 -19
  61. package/src/lib/components/select/single/elder-select/elder-select.component.scss +40 -24
  62. package/src/lib/components/time/_elder-time-input.theme.scss +3 -0
  63. package/src/lib/components/toasts/standard-toast/standard-toast.component.scss +2 -31
  64. package/theming/_elder-common.scss +399 -6
  65. package/theming/_elder-defaults.scss +7 -3
  66. package/theming/_elder-mdc-support.scss +142 -59
  67. package/theming/_elder-palettes.scss +148 -0
  68. package/theming/_elder-scrollbar-theme.scss +12 -2
  69. package/theming/_elder-style-fixes.scss +109 -42
  70. package/theming/_elder-theme.scss +51 -0
  71. package/theming/_elder-toast-theme.scss +46 -0
  72. package/theming/_elder-typography-utils.scss +11 -0
  73. package/theming/_mat-icon-button-size.scss +34 -0
  74. package/theming/_mixins.scss +0 -35
  75. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +0 -120
  76. package/esm2022/lib/components/loader-background/loader-background.component.mjs +0 -11
  77. package/lib/components/loader-background/loader-background.component.d.ts +0 -5
  78. package/src/lib/components/chips/_elder-chip-theme-old.scss +0 -122
  79. package/src/lib/components/loader-background/loader-background.component.scss +0 -60
  80. package/theming/_elder-badge-sizing.scss +0 -21
  81. package/theming/_elder-color-variants.scss +0 -26
  82. package/theming/_elder-form.scss +0 -308
  83. package/theming/_elder-layout-system.scss +0 -242
  84. package/theming/_elder-m3-theme.scss +0 -879
@@ -4,11 +4,11 @@
4
4
  $primary: map-get($theme, primary);
5
5
  $accent: map-get($theme, accent);
6
6
  $warn: map-get($theme, warn);
7
- $background: map-get($theme, background-color);
7
+ $background: map-get($theme, background);
8
8
  $foreground: map-get($theme, foreground);
9
9
 
10
10
  .elder-table-row:hover {
11
- background-color: var(--md-sys-color-surface-container);
11
+ background-color: mat.m2-get-color-from-palette($background, hover);
12
12
  cursor: pointer;
13
13
  }
14
14
 
@@ -17,26 +17,27 @@
17
17
  box-shadow: none;
18
18
  outline-style: none;
19
19
  td {
20
- background-color: var(--md-sys-color-primary-container); // OLD: background-color: mat.m2-get-color-from-palette($accent, default, 0.3);
21
- border-bottom: var(
22
- --md-sys-color-tertiary-fixed
23
- ); // OLD: border-bottom: 1px solid mat.m2-get-color-from-palette($accent, default);
20
+ // border-top: 1px solid mat.get-color-from-palette($accent, default);
21
+ background-color: mat.m2-get-color-from-palette($accent, default, 0.3);
22
+ border-bottom: 1px solid mat.m2-get-color-from-palette($accent, default);
24
23
  }
25
24
  }
26
- .elder-table-row.elder-table-row-activated {
27
- //background-color: var(--md-sys-color-surface-dim);
28
- background-color: var(--md-sys-color-primary-container);
25
+
26
+ .elder-table-row-activated {
27
+ background-color: mat.m2-get-color-from-palette($accent, default, 0.2);
29
28
  }
30
29
 
31
- .elder-table-row.elder-table-row-selected {
32
- background-color: var(--md-sys-color-primary-container);
30
+ .elder-table-row-selected {
31
+ background-color: mat.m2-get-color-from-palette($primary, default, 0.1);
33
32
  }
34
33
 
35
34
  .elder-mat-table-flat {
36
- border: 1px solid var(--md-sys-color-outline-variant);
35
+ border: 1px solid mat.m2-get-color-from-palette($foreground, divider);
37
36
  }
38
37
 
39
38
  .elder-table {
39
+ // background-color: mat.get-color-from-palette($background, card);
40
+
40
41
  // Fix line height of paginator section
41
42
  .mat-mdc-paginator {
42
43
  .mat-mdc-form-field,
@@ -132,6 +133,14 @@
132
133
  }
133
134
  }
134
135
 
136
+ .elder-table-scroll {
137
+ /*
138
+ scroll-snap-type: y mandatory;
139
+ scroll-padding-top: 56px;
140
+ */
141
+ //height: 100%;
142
+ }
143
+
135
144
  .elder-mat-inner-table {
136
145
  width: 100%;
137
146
  }
@@ -1,4 +1,5 @@
1
1
  @use '@angular/material' as mat;
2
+ @import '../../../../../theming/elder-palettes';
2
3
 
3
4
  @mixin theme($theme) {
4
5
  .mat-mdc-form-field.mat-form-field-appearance-outline {
@@ -10,8 +11,14 @@
10
11
  white-space: pre;
11
12
  overflow-wrap: normal;
12
13
  overflow-x: scroll;
13
- background-color: var(--md-sys-color-secondary-container);
14
- color: var(--md-sys-color-on-secondary-container);
14
+
15
+ @if (map-get($theme, is-dark)) {
16
+ background-color: mat.m2-get-color-from-palette($elder-gold, 700);
17
+ color: $dark-primary-text;
18
+ } @else {
19
+ background-color: #575757;
20
+ color: #d0b795;
21
+ }
15
22
  }
16
23
  }
17
24
  }
@@ -1,8 +1,14 @@
1
1
  @use '@angular/material' as mat;
2
2
 
3
3
  @mixin theme($theme) {
4
+ $primary: map-get($theme, primary);
5
+ $accent: map-get($theme, accent);
6
+ $warn: map-get($theme, warn);
7
+ $background: map-get($theme, background);
8
+ $foreground: map-get($theme, foreground);
9
+
4
10
  .toggle-button:hover {
5
- background-color: var(--md-sys-color-ternary-fixed);
11
+ background-color: mat.m2-get-color-from-palette($accent, default, 0.1);
6
12
  cursor: pointer;
7
13
  }
8
14
  }
@@ -14,5 +20,5 @@
14
20
  min-height: 48px;
15
21
  border-radius: 4px;
16
22
  overflow: hidden;
17
- transition: background-color 0.5s;
23
+ transition: background 0.5s;
18
24
  }
@@ -3,8 +3,8 @@
3
3
  }
4
4
 
5
5
  .document-viewer {
6
- background-color: var(--md-sys-color-surface-dim);
7
- color: var(--md-sys-color-on-surface);
6
+ background-color: #dedede;
7
+ color: #1f1e1e;
8
8
  }
9
9
 
10
10
  .video {
@@ -32,14 +32,19 @@
32
32
  .document-content {
33
33
  font-family: Courier, monospace;
34
34
  font-size: 14px;
35
- background-color: var(--md-sys-color-inverse-surface);
36
- color: var(--md-sys-color-inverse-on-surface);
35
+ background-color: #575757;
36
+ color: #cccccc;
37
37
  outline: none;
38
38
  resize: none;
39
39
  width: 100%;
40
40
  height: 100%;
41
41
  box-sizing: border-box;
42
+ -moz-box-sizing: border-box;
43
+ -webkit-box-sizing: border-box;
44
+
45
+ -webkit-border-radius: 12px;
42
46
  border-radius: 0px;
47
+ -webkit-box-shadow: 0px 2px 14px #000;
43
48
  box-shadow: 0px 2px 14px #000;
44
49
  border-top: 1px solid #fff;
45
50
  border-bottom: 1px solid #fff;
@@ -4,6 +4,10 @@
4
4
  $colorStateNone: rgb(0, 0, 0);
5
5
 
6
6
  @mixin theme($config-or-theme) {
7
+ $primary: map-get($config-or-theme, primary);
8
+ $accent: map-get($config-or-theme, accent);
9
+ $warn: map-get($config-or-theme, warn);
10
+
7
11
  .elder-drop-zone {
8
12
  border: 4px dashed rgba($colorStateNone, 0.4);
9
13
  -webkit-border-radius: 8px;
@@ -12,28 +16,27 @@ $colorStateNone: rgb(0, 0, 0);
12
16
  cursor: pointer;
13
17
 
14
18
  .elder-drop-zone-icon {
15
- color: var(--md-sys-color-primary);
16
- //color: mat.m2-get-color-from-palette($primary, default, 0.75);
19
+ color: mat.m2-get-color-from-palette($primary, default, 0.75);
17
20
  font-size: 28px;
18
21
  width: 28px;
19
22
  height: 28px;
20
23
  }
21
24
 
22
25
  .elder-drop-zone-prompt {
23
- color: var(--md-sys-color-primary);
26
+ color: mat.m2-get-color-from-palette($primary, default, 0.75);
24
27
  }
25
28
  }
26
29
 
27
30
  .elder-drop-zone.is-dragover {
28
- border: 4px solid var(--md-sys-color-tertiary-fixed);
29
- background-color: var(--md-sys-color-tertiary);
31
+ border: 4px solid mat.m2-get-color-from-palette($accent, default, 0.4);
32
+ background-color: mat.m2-get-color-from-palette($accent, default, 0.25);
30
33
 
31
34
  .elder-drop-zone-icon {
32
- color: var(--md-sys-color-tertiary-fixed);
35
+ color: mat.m2-get-color-from-palette($accent, default, 0.75);
33
36
  }
34
37
 
35
38
  .elder-drop-zone-prompt {
36
- color: var(--md-sys-color-tertiary-fixed);
39
+ color: mat.m2-get-color-from-palette($accent, default, 0.75);
37
40
  }
38
41
  }
39
42
  }
@@ -1,5 +1,9 @@
1
1
  @use '@angular/material' as mat;
2
2
 
3
+ @mixin theme($theme) {
4
+ $primary: map-get($theme, primary);
5
+ }
6
+
3
7
  .iframe {
4
8
  margin: 0;
5
9
  border: 0;
@@ -6,34 +6,46 @@
6
6
  }
7
7
 
8
8
  @mixin _group-theme($theme) {
9
+ $primary: map-get($theme, primary);
10
+ $accent: map-get($theme, accent);
11
+ $warn: map-get($theme, warn);
12
+ $background: map-get($theme, background);
13
+ $foreground: map-get($theme, foreground);
14
+
9
15
  .nav-group-button:hover {
10
- background-color: var(--md-sys-color-surface-container-high);
11
- transition: background-color 0.5s;
16
+ background-color: mat.m2-get-color-from-palette($primary, default, 0.1);
17
+ transition: background 0.5s;
12
18
  }
13
19
 
14
20
  .nav-group-button:not(.nav-group-button-open) {
15
21
  .mat-icon {
16
- color: var(--md-sys-color-on-surface);
22
+ color: mat.m2-get-color-from-palette($foreground, secondary-text);
17
23
  }
18
24
  }
19
25
 
20
26
  .nav-group-button-active {
21
- background-color: var(--md-sys-color-primary-fixed);
27
+ background-color: mat.m2-get-color-from-palette($primary, default, 0.15);
22
28
  }
23
29
 
24
30
  .nav-group-button-open {
25
31
  padding-left: 11px !important; // -5 to counter border-left
26
32
  .mat-icon {
27
- color: var(--md-sys-color-primary);
33
+ color: mat.m2-get-color-from-palette($primary);
28
34
  }
29
35
  }
30
36
  }
31
37
 
32
38
  @mixin _link-theme($theme) {
39
+ $primary: map-get($theme, primary);
40
+ $accent: map-get($theme, accent);
41
+ $warn: map-get($theme, warn);
42
+ $background: map-get($theme, background);
43
+ $foreground: map-get($theme, foreground);
44
+
33
45
  .nav-link.nav-link-clickable {
34
46
  cursor: pointer;
35
47
  &:hover {
36
- background-color: var(--md-sys-color-surface-container-high);
48
+ background-color: mat.m2-get-color-from-palette($primary, default, 0.1);
37
49
  }
38
50
  }
39
51
 
@@ -42,21 +54,21 @@
42
54
  }
43
55
 
44
56
  .nav-link:hover {
45
- background-color: var(--md-sys-color-primary-fixed);
57
+ background-color: mat.m2-get-color-from-palette($primary, default, 0.05);
46
58
  }
47
59
 
48
60
  .nav-link.nav-link-active {
49
- background-color: var(--md-sys-color-primary-fixed);
50
- color: var(--md-sys-color-on-primary-fixed);
61
+ background-color: mat.m2-get-color-from-palette($primary, default, 0.15);
62
+ color: mat.m2-get-color-from-palette($primary);
51
63
  .mat-icon {
52
- color: var(--md-sys-color-primary);
64
+ color: mat.m2-get-color-from-palette($primary);
53
65
  }
54
66
  }
55
67
 
56
68
  .nav-link.nav-link-inactive {
57
- color: var(--md-sys-color-on-surface);
69
+ color: mat.m2-get-color-from-palette($foreground, text);
58
70
  .mat-icon {
59
- color: var(--md-sys-color-on-surface);
71
+ color: mat.m2-get-color-from-palette($foreground, secondary-text);
60
72
  }
61
73
  }
62
74
  }
@@ -3,5 +3,8 @@
3
3
  height: 250px;
4
4
  border-radius: 4px;
5
5
  overflow: hidden;
6
- box-shadow: var(--mat-app-elevation-shadow-level-8);
6
+ box-shadow:
7
+ 0 5px 5px -3px rgba(0, 0, 0, 0.2),
8
+ 0 8px 10px 1px rgba(0, 0, 0, 0.14),
9
+ 0 3px 14px 2px rgba(0, 0, 0, 0.12);
7
10
  }
@@ -1,12 +1,21 @@
1
1
  @use '@angular/material' as mat;
2
2
 
3
3
  @mixin theme($theme) {
4
+ $primary: map-get($theme, primary);
5
+ $accent: map-get($theme, accent);
6
+ $warn: map-get($theme, warn);
7
+ $background: map-get($theme, background);
8
+ $foreground: map-get($theme, foreground);
9
+
4
10
  .elder-card-panel {
5
- color: var(--md-sys-color-on-surface);
6
- background-color: var(--md-sys-color-surface);
11
+ color: mat.m2-get-color-from-palette($foreground, text);
12
+ background-color: mat.m2-get-color-from-palette($background, 'card');
7
13
 
8
14
  padding: 10px;
9
15
  border-radius: 4px;
10
- box-shadow: var(--mat-app-elevation-shadow-level-8);
16
+ box-shadow:
17
+ 0 5px 5px -3px rgba(0, 0, 0, 0.2),
18
+ 0 8px 10px 1px rgba(0, 0, 0, 0.14),
19
+ 0 3px 14px 2px rgba(0, 0, 0, 0.12);
11
20
  }
12
21
  }
@@ -1,13 +1,21 @@
1
1
  @use '@angular/material' as mat;
2
2
 
3
3
  @mixin theme($theme) {
4
+ $primary: map-get($theme, primary);
5
+ $accent: map-get($theme, accent);
6
+ $warn: map-get($theme, warn);
7
+ $background: map-get($theme, background);
8
+ $foreground: map-get($theme, foreground);
9
+
4
10
  .elder-dialog-panel {
5
- // Use CSS variables for Material 3
6
- background-color: var(--md-sys-color-surface);
7
- color: var(--md-sys-color-on-surface);
11
+ color: mat.m2-get-color-from-palette($foreground, text);
12
+ background-color: mat.m2-get-color-from-palette($background, dialog);
8
13
 
9
14
  padding: 10px;
10
15
  border-radius: 4px;
11
- box-shadow: var(--mat-app-elevation-shadow-level-8);
16
+ box-shadow:
17
+ 0 5px 5px -3px rgba(0, 0, 0, 0.2),
18
+ 0 8px 10px 1px rgba(0, 0, 0, 0.14),
19
+ 0 3px 14px 2px rgba(0, 0, 0, 0.12);
12
20
  }
13
21
  }
@@ -1,13 +1,8 @@
1
1
  @use '@angular/material' as mat;
2
2
 
3
- @mixin _elder-panel-color($palette, $theme) {
4
- @if (mat.get-theme-version($theme) == 1) {
5
- background: var(--md-sys-color-primary-container);
6
- color: var(--md-sys-color-on-primary-container);
7
- } @else {
8
- $background: mat.m2-get-color-from-palette($palette, app-bar);
9
- $foreground: mat.m2-get-color-from-palette($palette, text);
10
- }
3
+ @mixin _elder-panel-color($palette) {
4
+ background: mat.m2-get-color-from-palette($palette);
5
+ color: mat.m2-get-color-from-palette($palette, default-contrast);
11
6
  }
12
7
 
13
8
  @mixin _elder-panel-form-field-overrides {
@@ -39,29 +34,23 @@
39
34
  $foreground: map-get($theme, foreground);
40
35
 
41
36
  .mat-panel {
42
- @if (mat.get-theme-version($theme) == 1) {
43
- background: var(--md-sys-color-primary-container);
44
- color: var(--md-sys-color-on-primary-container);
45
- } @else {
46
- background: mat.m2-get-color-from-palette($background, app-bar);
47
- color: mat.m2-get-color-from-palette($foreground, text);
48
- }
37
+ background: mat.m2-get-color-from-palette($background, app-bar);
38
+ color: mat.m2-get-color-from-palette($foreground, text);
49
39
  transition: background 0.5s;
50
40
 
51
41
  &.mat-primary {
52
- @include _elder-panel-color($primary, $theme);
42
+ @include _elder-panel-color($primary);
53
43
  }
54
44
 
55
45
  &.mat-accent {
56
- @include _elder-panel-color($accent, $theme);
46
+ @include _elder-panel-color($accent);
57
47
  }
58
48
 
59
49
  &.mat-warn {
60
- @include _elder-panel-color($warn, $theme);
50
+ @include _elder-panel-color($warn);
61
51
  }
62
52
 
63
53
  @include _elder-panel-form-field-overrides;
64
- @include elder-panel-typography($theme);
65
54
  }
66
55
  }
67
56
 
@@ -73,13 +62,7 @@
73
62
  .mat-panel h4,
74
63
  .mat-panel h5,
75
64
  .mat-panel h6 {
76
- // @include mat.m2-typography-level($config, title);
77
- // margin: 0;
78
-
79
- // Set typography styles for different heading levels
80
- font-family: var(--mdc-typography-font-family); // Use the MDC font family variable
81
-
82
- //@include mat.typography($config, headline-2); // try, debug disabled
65
+ @include mat.m2-typography-level($config, title);
83
66
  margin: 0;
84
67
  }
85
68
  }
@@ -1,9 +1,14 @@
1
1
  @use 'sass:map';
2
2
  @use '@angular/material' as mat;
3
3
  @use '../../../../theming/elder-typography-utils' as elder-typography;
4
+ @use '../../../../theming/mat-icon-button-size' as icon-button-size;
4
5
 
5
6
  @mixin typography($typography-config) {
6
- $line-height-em: var(--md-sys-typescale-body-medium-line-height);
7
+ $config: $typography-config; // TODO $typography-config
8
+ // The unit-less line-height from the font config.
9
+ $line-height: mat.m2-line-height($config, body-1);
10
+ $font-size: mat.m2-font-size($config, body-1);
11
+ $line-height-em: elder-typography.coerce-unitless-to-em($line-height);
7
12
 
8
13
  $icon-size: 16px;
9
14
  $arrow-icon-size: 24px;
@@ -27,3 +32,6 @@
27
32
  font-size: $icon-size !important;
28
33
  }
29
34
  }
35
+
36
+ @mixin color($color-config) {
37
+ }
@@ -80,7 +80,10 @@
80
80
  .cdk-drag-preview {
81
81
  box-sizing: border-box;
82
82
  // border-radius: 4px;
83
- box-shadow: var(--mat-app-elevation-shadow-level-8);
83
+ box-shadow:
84
+ 0 5px 5px -3px rgba(0, 0, 0, 0.2),
85
+ 0 8px 10px 1px rgba(0, 0, 0, 0.14),
86
+ 0 3px 14px 2px rgba(0, 0, 0, 0.12);
84
87
  }
85
88
 
86
89
  .cdk-drag-placeholder {
@@ -4,13 +4,19 @@
4
4
  @use '../../elder-select-base' as elder-select-base;
5
5
 
6
6
  @mixin typography($typography-config) {
7
+ $config: $typography-config; // TODO $typography-config
8
+ // The unit-less line-height from the font config.
9
+ $line-height: mat.m2-line-height($config, body-1);
10
+ $font-size: mat.m2-font-size($config, body-1);
11
+ $line-height-em: elder-typography.coerce-unitless-to-em($line-height);
12
+
7
13
  @include elder-select-base.typography($typography-config);
8
14
 
9
15
  .elder-multi-select {
10
- font-family: var(--md-sys-typescale-body-medium-font);
16
+ font-family: mat.m2-font-family($config);
11
17
 
12
18
  .elder-select-input {
13
- height: var(--md-sys-typescale-body-medium-line-height);
19
+ height: $line-height-em;
14
20
  }
15
21
 
16
22
  .elder-prefix-icon {
@@ -34,16 +40,39 @@
34
40
  }
35
41
 
36
42
  @mixin theme($config-or-theme) {
37
- @include typography($config-or-theme);
43
+ $color: mat.m2-get-color-config($config-or-theme);
44
+ $typography: elder-typography.get-typography-config($config-or-theme);
45
+
46
+ // If no actual typography configuration has been specified, create a default one.
47
+ @if not $typography {
48
+ $typography: mat.m2-define-typography-config();
49
+ }
38
50
 
39
- .elder-chip-text {
40
- overflow: hidden;
41
- text-overflow: ellipsis;
42
- white-space: nowrap;
51
+ @if $color != null {
52
+ @include elder-select-base.color($color);
53
+ @include _chip_color($config-or-theme);
43
54
  }
44
55
 
45
- .elder-trailing-icon {
46
- color: var(--mdc-chip-with-trailing-icon-trailing-icon-color);
47
- opacity: 0.54;
56
+ @if $typography != null {
57
+ @include typography($typography);
48
58
  }
49
59
  }
60
+
61
+ @mixin _chip_color($theme) {
62
+ $primary: map-get($theme, primary);
63
+ $accent: map-get($theme, accent);
64
+ $warn: map-get($theme, warn);
65
+ $background: map-get($theme, background);
66
+ $foreground: map-get($theme, foreground);
67
+ }
68
+
69
+ .elder-chip-text {
70
+ overflow: hidden;
71
+ text-overflow: ellipsis;
72
+ white-space: nowrap;
73
+ }
74
+
75
+ .elder-trailing-icon {
76
+ color: var(--mdc-chip-with-trailing-icon-trailing-icon-color);
77
+ opacity: 0.54;
78
+ }
@@ -4,13 +4,19 @@
4
4
  @use '../../elder-select-base' as elder-select-base;
5
5
 
6
6
  @mixin typography($typography-config) {
7
+ $config: $typography-config; // TODO $typography-config
8
+ // The unit-less line-height from the font config.
9
+ $line-height: mat.m2-line-height($config, body-1);
10
+ $font-size: mat.m2-font-size($config, body-1);
11
+ $line-height-em: elder-typography.coerce-unitless-to-em($line-height);
12
+
7
13
  @include elder-select-base.typography($typography-config);
8
14
 
9
15
  .elder-multi-select {
10
- font-family: var(--md-sys-typescale-body-medium-font);
16
+ font-family: mat.m2-font-family($config);
11
17
 
12
18
  .elder-select-input {
13
- height: var(--md-sys-typescale-body-medium-line-height);
19
+ height: $line-height-em;
14
20
  }
15
21
 
16
22
  .elder-prefix-icon {
@@ -34,29 +40,56 @@
34
40
  }
35
41
 
36
42
  @mixin theme($config-or-theme) {
37
- @include typography($config-or-theme);
43
+ $color: mat.m2-get-color-config($config-or-theme);
44
+ $typography: elder-typography.get-typography-config($config-or-theme);
38
45
 
39
- .elder-chip-text {
40
- overflow: hidden;
41
- text-overflow: ellipsis;
42
- white-space: nowrap;
46
+ // If no actual typography configuration has been specified, create a default one.
47
+ @if not $typography {
48
+ $typography: mat.m2-define-typography-config();
43
49
  }
44
50
 
45
- .elder-trailing-icon {
46
- color: var(--mdc-chip-with-trailing-icon-trailing-icon-color);
47
- opacity: 0.54;
51
+ @if $color != null {
52
+ @include elder-select-base.color($color);
53
+ @include _chip_color($config-or-theme);
48
54
  }
49
55
 
50
- .cdk-drag-preview {
51
- box-sizing: border-box;
52
- box-shadow: var(--mat-app-elevation-shadow-level-8);
56
+ @if $typography != null {
57
+ @include typography($typography);
53
58
  }
59
+ }
54
60
 
55
- .cdk-drag-placeholder {
56
- opacity: 0;
57
- }
61
+ @mixin _chip_color($theme) {
62
+ $primary: map-get($theme, primary);
63
+ $accent: map-get($theme, accent);
64
+ $warn: map-get($theme, warn);
65
+ $background: map-get($theme, background);
66
+ $foreground: map-get($theme, foreground);
67
+ }
58
68
 
59
- .cdk-drag-animating {
60
- transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
61
- }
69
+ .elder-chip-text {
70
+ overflow: hidden;
71
+ text-overflow: ellipsis;
72
+ white-space: nowrap;
73
+ }
74
+
75
+ .elder-trailing-icon {
76
+ color: var(--mdc-chip-with-trailing-icon-trailing-icon-color);
77
+ opacity: 0.54;
78
+ }
79
+
80
+ .cdk-drag-preview {
81
+ box-sizing: border-box;
82
+ // border-radius: 4px;
83
+ box-shadow:
84
+ 0 5px 5px -3px rgba(0, 0, 0, 0.2),
85
+ 0 8px 10px 1px rgba(0, 0, 0, 0.14),
86
+ 0 3px 14px 2px rgba(0, 0, 0, 0.12);
87
+ }
88
+
89
+ .cdk-drag-placeholder {
90
+ opacity: 0;
91
+ }
92
+
93
+ .cdk-drag-animating {
94
+ transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
62
95
  }