@elderbyte/ngx-starter 19.1.0-beta.7 → 19.1.0-beta.9

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/_index.scss +1 -1
  2. package/fesm2022/elderbyte-ngx-starter.mjs +50 -17
  3. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  4. package/lib/common/utils/public_api.d.ts +1 -0
  5. package/lib/components/layout/pane-header/pane-header.component.d.ts +7 -0
  6. package/lib/components/layout/public_api.d.ts +1 -0
  7. package/lib/components/select/single/elder-select/elder-select.component.d.ts +1 -1
  8. package/package.json +1 -1
  9. package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +1 -1
  10. package/src/lib/components/data-view/table/elder-table/elder-table.component.scss +5 -5
  11. package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +4 -4
  12. package/src/lib/components/shell/header/elder-app-header/elder-app-header.component.scss +1 -1
  13. package/src/lib/components/toasts/standard-toast/standard-toast.component.scss +1 -1
  14. package/theming/abstracts/_elder-design-tokens.scss +170 -0
  15. package/theming/{system/_elder-config.scss → abstracts/_elder-scss-variables.scss} +40 -0
  16. package/theming/{system/_elder-defaults.scss → abstracts/_elder-set-defaults-fn.scss} +8 -8
  17. package/theming/abstracts/_elder-starter-theme.scss +47 -0
  18. package/theming/abstracts/_elder-theme-main.scss +92 -0
  19. package/theming/{style-tweaks/_elder-common.scss → base/_elder-common-base.scss} +8 -11
  20. package/theming/{style-tweaks → base}/_elder-component-themes.scss +1 -1
  21. package/theming/{style-tweaks/_elder-style-fixes.scss → base/_elder-fixes-base.scss} +49 -19
  22. package/theming/{style-tweaks/_elder-form.scss → base/_elder-form-base.scss} +2 -2
  23. package/theming/{style-tweaks/_elder-color-variants.scss → base/_elder-m2-legacy-base.scss} +7 -1
  24. package/theming/components/_elder-chip-theme.scss +158 -0
  25. package/theming/{utility-classes/_elder-color-helpers.scss → utilities/_elder-color-utils.scss} +1 -8
  26. package/theming/{utility-classes/_elder-common-helpers.scss → utilities/_elder-common-utils.scss} +2 -5
  27. package/theming/{utility-classes/_elder-flex-layout.scss → utilities/_elder-flex-layout-utils.scss} +2 -2
  28. package/theming/{utility-classes/_elder-layout-system.scss → utilities/_elder-layout-utils.scss} +46 -21
  29. package/theming/{utility-classes/_elder-typography-helpers.scss → utilities/_elder-typography-utils.scss} +1 -1
  30. package/src/lib/components/chips/_elder-chip-theme.scss +0 -129
  31. package/theming/style-tweaks/_elder-reset.scss +0 -13
  32. package/theming/system/_elder-design-tokens.scss +0 -136
  33. package/theming/system/_elder-m3-theme.scss +0 -156
  34. package/theming/system/_elder-starter-theme.scss +0 -45
  35. /package/theming/{style-tweaks/_elder-style-tweak-mixins.scss → base/_elder-base-mixins.scss} +0 -0
@@ -11,3 +11,4 @@ export * from './query-list-binding';
11
11
  export * from './parse-util';
12
12
  export * from './focus-util';
13
13
  export * from './batcher';
14
+ export * from './signal-input';
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ElderPaneHeaderComponent {
3
+ class: string;
4
+ title: import("@angular/core").InputSignal<string>;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderPaneHeaderComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderPaneHeaderComponent, "elder-pane-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
7
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './pane/pane.component';
2
+ export * from './pane-header/pane-header.component';
2
3
  export * from './basic-pane-layout/basic-pane-layout.component';
@@ -144,6 +144,6 @@ export declare class ElderSelectComponent<TEntity = any, TId = any, TValue = TEn
144
144
  */
145
145
  protected writeToControl(value: TValue): void;
146
146
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderSelectComponent<any, any, any>, never>;
147
- static ɵcmp: i0.ɵɵComponentDeclaration<ElderSelectComponent<any, any, any>, "elder-select", never, { "nullDisplay": { "alias": "nullDisplay"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "allowNull": { "alias": "allowNull"; "required": false; }; "entity": { "alias": "entity"; "required": false; }; "entityId": { "alias": "entityId"; "required": false; }; }, { "entityIdChange": "entityIdChange"; "entityIdUpdated": "entityIdUpdated"; "entityChange": "entityChange"; "entityUpdated": "entityUpdated"; }, never, never, true, never>;
147
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderSelectComponent<any, any, any>, "elder-select", never, { "nullDisplay": { "alias": "nullDisplay"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "allowNull": { "alias": "allowNull"; "required": false; }; "entity": { "alias": "entity"; "required": false; }; "entityId": { "alias": "entityId"; "required": false; }; }, { "entityIdChange": "entityIdChange"; "entityIdUpdated": "entityIdUpdated"; "entityChange": "entityChange"; "entityUpdated": "entityUpdated"; "entity$": "entity"; }, never, never, true, never>;
148
148
  }
149
149
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elderbyte/ngx-starter",
3
- "version": "19.1.0-beta.7",
3
+ "version": "19.1.0-beta.9",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^18.0.0 || ^19.0.0",
6
6
  "@angular/common": "^18.0.0 || ^19.0.0",
@@ -21,7 +21,7 @@ $elder-tile-padding: 8px;
21
21
  }
22
22
 
23
23
  .elder-grid-footer {
24
- min-height: 44px;
24
+ min-height: var(--elder-data-element-footer-height);
25
25
  }
26
26
 
27
27
  .elder-grid-tile {
@@ -59,7 +59,7 @@
59
59
  }
60
60
 
61
61
  .elder-table-footer {
62
- height: 44px;
62
+ height: var(--elder-data-element-footer-height);
63
63
  }
64
64
 
65
65
  .elder-table-checkbox {
@@ -83,7 +83,7 @@
83
83
  }
84
84
 
85
85
  .elder-table-row:hover {
86
- background-color: var(--elder-color-highlight-dim);
86
+ background-color: var(--elder-color-highlight-variant);
87
87
  cursor: pointer;
88
88
  }
89
89
 
@@ -93,7 +93,7 @@
93
93
  outline-style: none;
94
94
  td {
95
95
  background-color: var(
96
- --elder-color-highlight
96
+ --elder-color-highlight-strong
97
97
  ); // OLD: background-color: mat.m2-get-color-from-palette($accent, default, 0.3);
98
98
  border-bottom: var(
99
99
  --md-sys-color-tertiary-fixed
@@ -102,11 +102,11 @@
102
102
  }
103
103
  .elder-table-row.elder-table-row-activated {
104
104
  //background-color: var(--md-sys-color-surface-dim);
105
- background-color: var(--elder-color-highlight);
105
+ background-color: var(--elder-color-highlight-strong);
106
106
  }
107
107
 
108
108
  .elder-table-row.elder-table-row-selected {
109
- background-color: var(--elder-color-highlight);
109
+ background-color: var(--elder-color-highlight-strong);
110
110
  }
111
111
 
112
112
  .elder-mat-table-flat {
@@ -18,14 +18,14 @@
18
18
  }
19
19
 
20
20
  .elder-drop-zone.is-dragover {
21
- border: 4px solid var(--md-sys-color-tertiary-fixed);
22
- background-color: var(--md-sys-color-tertiary);
21
+ border: 4px solid var(--md-sys-color-tertiary);
22
+ background-color: var(--md-sys-color-tertiary-container);
23
23
 
24
24
  .elder-drop-zone-icon {
25
- color: var(--md-sys-color-tertiary-fixed);
25
+ color: var(--md-sys-color-tertiary);
26
26
  }
27
27
 
28
28
  .elder-drop-zone-prompt {
29
- color: var(--md-sys-color-tertiary-fixed);
29
+ color: var(--md-sys-color-tertiary);
30
30
  }
31
31
  }
@@ -11,5 +11,5 @@
11
11
  }
12
12
 
13
13
  .elder-app-header-panel {
14
- background-color: #0b284f; // TODO: replace in m3
14
+ background-color: var(--md-sys-color-primary);
15
15
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  &.elder-toast-type-warn {
6
6
  --elder-toast-message-color-title: var(--elder-toast-message-color-title-warn);
7
- --mdc-filled-button-container-color: var(--md-sys-color-tertiary-container);
7
+ --mdc-filled-button-container-color: var(--md-sys-color-tertiary);
8
8
  }
9
9
 
10
10
  &.elder-toast-type-error {
@@ -0,0 +1,170 @@
1
+ @use 'sass:map';
2
+ @use './elder-scss-variables' as config;
3
+
4
+ @mixin elder-design-tokens() {
5
+ @include elder-badge-sizing();
6
+
7
+ & {
8
+ // bg color
9
+ --md-sys-color-background: var(--md-sys-color-surface-container-highest);
10
+ --mat-app-background-color: var(--md-sys-color-background);
11
+
12
+ // mat variables
13
+ --mat-sidenav-container-width: auto; // is set to around 300px by default in MAT 3 (MAT 2 was auto by default)
14
+ --mat-badge-small-size-text-size: 9px; // this is the mat2 setting, mat3 somehow sets this to 0, which hides the font, unclear why.
15
+ --mdc-dialog-container-shape: 16px; // make border-radius of dialog container smaller (default is 28px)
16
+ --mat-dialog-container-max-width: 80vw; // 80vw is mat 2 default, mat 3 default is very narrow: 560px;
17
+ --mat-toolbar-title-text-tracking: 0; // mat toolbar typography
18
+ --mat-toolbar-title-text-weight: 500; // mat toolbar typography
19
+ --mat-table-row-item-outline-color: var(--md-sys-color-outline-variant);
20
+ --mat-divider-color: var(--md-sys-color-outline-variant); // make divider color lighter
21
+ --mat-sidenav-container-elevation-shadow: var(--mat-app-elevation-shadow-level-16);
22
+ --mat-sidenav-container-background-color: var(--md-sys-color-surface-container);
23
+
24
+ // elder custom variables
25
+ --elder-border-radius-sm: 4px; // typical small border radius, inspired by mat 2
26
+ --elder-border-light: 1px solid var(--md-sys-color-outline-variant);
27
+ --elder-box-shadow-default: var(--mat-app-elevation-shadow-level-8);
28
+ --elder-scrollbar-width: 8px;
29
+ --elder-lightened-transparent-bg: rgba(255, 255, 255, 0.15);
30
+
31
+ // elder pane
32
+ --elder-pane-padding: #{map.get(config.$sizes, sm)};
33
+ --elder-pane-gap: #{map.get(config.$sizes, sm)};
34
+ --elder-pane-border-radius: var(
35
+ --mdc-outlined-card-container-shape,
36
+ var(--mat-app-corner-medium)
37
+ );
38
+ --elder-pane-bg-color: var(--md-sys-color-surface-container-lowest);
39
+
40
+ // card header
41
+ --elder-card-header-padding: 15px 15px 5px 15px;
42
+
43
+ // cards, table etc bg
44
+ --mdc-elevated-card-container-color: var(--md-sys-color-surface-container-lowest);
45
+ --mdc-outlined-card-container-color: var(--mdc-elevated-card-container-color);
46
+ //--mat-table-background-color: var(--md-sys-color-surface-container-lowest);
47
+ --mat-table-background-color: transparent;
48
+ --mat-paginator-container-background-color: var(--mat-table-background-color);
49
+ --elder-grid-background-color: var(--mat-table-background-color);
50
+ //--mat-table-header-container-height: 56px; // 56px is default
51
+
52
+ // elder toast messages
53
+ --elder-toast-message-color-title-default: var(--md-sys-color-inverse-on-surface);
54
+ --elder-toast-message-color-title-warn: var(--md-sys-color-inverse-on-surface);
55
+ --elder-toast-message-color-title-error: var(--md-sys-color-inverse-on-surface);
56
+
57
+ // main nav top left button color
58
+ --elder-toolbar-main-nav-button-color: var(--md-sys-color-on-primary);
59
+ --elder-toolbar-main-nav-button-container-bg-color: var(--md-sys-color-primary);
60
+
61
+ // custom colors
62
+ --elder-blue: #{map.get(config.$custom-colors, elder-blue)};
63
+ --elder-gold: #{map.get(config.$custom-colors, elder-gold)};
64
+ --elder-gold-dark: #{map.get(config.$custom-colors, elder-gold-dark)};
65
+ --elder-gold-semi-dark: #{map.get(config.$custom-colors, elder-gold-semi-dark)};
66
+ --elder-gold-light: #{map.get(config.$custom-colors, elder-gold-light)};
67
+
68
+ --elder-color-highlight-strong: hsl(214, 18%, 85%);
69
+ --elder-color-highlight-variant: hsl(214, 18%, 95%); // dim version lighter in light moode
70
+ --elder-color-highlight-strong: var(--elder-gold-light);
71
+ --elder-color-highlight-variant: #EBEBEB;
72
+
73
+ // chip colors
74
+ --elder-chip-color-state-none: #{map.get(config.$chip-colors, state-none)};
75
+ --elder-chip-color-state-open: #{map.get(config.$chip-colors, state-open)};
76
+ --elder-chip-color-state-in-progress: #{map.get(config.$chip-colors, state-in-progress)};
77
+ --elder-chip-color-state-completed: #{map.get(config.$chip-colors, state-completed)};
78
+ --elder-chip-color-state-warn: #{map.get(config.$chip-colors, state-warn)};
79
+ --elder-chip-color-state-error: #{map.get(config.$chip-colors, state-error)};
80
+ --elder-chip-color-state-other: #{map.get(config.$chip-colors, state-other)};
81
+
82
+ // chip colors dark
83
+ &.elder-dark-theme {
84
+ --elder-chip-color-state-none: #{map.get(config.$chip-colors-dark, state-none)};
85
+ --elder-chip-color-state-open: #{map.get(config.$chip-colors-dark, state-open)};
86
+ --elder-chip-color-state-in-progress: #{map.get(config.$chip-colors-dark, state-in-progress)};
87
+ --elder-chip-color-state-completed: #{map.get(config.$chip-colors-dark, state-completed)};
88
+ --elder-chip-color-state-warn: #{map.get(config.$chip-colors-dark, state-warn)};
89
+ --elder-chip-color-state-error: #{map.get(config.$chip-colors-dark, state-error)};
90
+ --elder-chip-color-state-other: #{map.get(config.$chip-colors-dark, state-other)};
91
+ }
92
+
93
+ // missing md3 color
94
+ --md-sys-color-on-primary-fixed-dim: var(--md-sys-color-on-surface);
95
+ --md-sys-color-on-tertiary-fixed-dim: var(--md-sys-color-on-primary-fixed-dim);
96
+
97
+ // dialog
98
+ --elder-dialog-panel-bg-color: var(--md-sys-color-surface-container-lowest);
99
+
100
+ // data footer
101
+ --elder-data-element-footer-height: 48px;
102
+
103
+ // xy
104
+ --elder-round-form-field-outline: none;
105
+ }
106
+
107
+ &.elder-dark-theme {
108
+ --elder-dialog-panel-bg-color: var(--md-sys-color-surface-container);
109
+ }
110
+
111
+ // light theme overwrites
112
+ &.elder-light-theme {
113
+ --md-sys-color-primary: var(--elder-blue);
114
+ --md-sys-color-tertiary: var(--elder-gold);
115
+ --md-sys-color-tertiary-container: var(--elder-gold-light);
116
+ --md-sys-color-on-tertiary: var(--md-sys-color-on-surface);
117
+ --md-sys-color-secondary-container: #d8e3fa; // hsl(221, 77%, 91%)
118
+ --md-sys-color-secondary-container: hsl(214, 44%, 84%);
119
+ --md-sys-color-secondary-fixed: hsl(214, 44%, 89%);
120
+ --md-sys-color-primary-container: hsl(214, 64%, 84%);
121
+ }
122
+
123
+ // dark theme overwrites
124
+ &.elder-dark-theme {
125
+ --elder-round-form-field-outline: solid 1px var(--md-sys-color-outline);
126
+ --mat-sidenav-scrim-color: rgba(255, 255, 255, 0.4);
127
+ --md-sys-color-primary-container: var(--elder-gold-semi-dark);
128
+ --md-sys-color-primary-fixed-dim: var(--elder-gold-dark);
129
+ --elder-color-highlight-variant: var(--elder-gold-dark);
130
+ --elder-color-highlight-strong: var(--elder-gold-semi-dark);
131
+ --md-sys-color-tertiary-fixed-dim: var(--md-sys-color-primary-fixed-dim);
132
+ --md-sys-color-on-primary-fixed-dim: var(--md-sys-color-on-surface);
133
+ --md-sys-color-tertiary-container: var(--md-sys-color-primary-container);
134
+ --md-sys-color-surface-container-highest: #191919;
135
+ --md-sys-color-surface-container-lowest: #262626;
136
+ --md-sys-color-error: #ff999f;
137
+ --md-sys-color-inverse-primary: var(--md-sys-color-primary-container);
138
+ --md-sys-color-surface-tint: var(--elder-gold-dark);
139
+ --elder-dark-gray: var(--md-sys-color-surface-container);
140
+ --mdc-chip-outline-color: rgba(255, 255, 255, 0.3);
141
+ --elder-dark-mode-color-primary: var(--md-sys-color-primary);
142
+ --elder-dark-mode-color-on-primary: var(--md-sys-color-on-primary);
143
+ --elder-dark-mode-color-surface: var(--md-sys-color-surface);
144
+ --elder-dark-mode-color-on-surface: var(--md-sys-color-on-surface);
145
+ }
146
+ }
147
+
148
+ @mixin elder-badge-sizing() {
149
+ & {
150
+ // Use legacy MAT 2 badge sizing
151
+ --mat-badge-container-size: unset;
152
+ --mat-badge-small-size-container-size: unset;
153
+ --mat-badge-large-size-container-size: unset;
154
+ --mat-badge-legacy-container-size: 22px;
155
+ --mat-badge-legacy-small-size-container-size: 16px;
156
+ --mat-badge-legacy-large-size-container-size: 28px;
157
+ --mat-badge-container-offset: -11px 0;
158
+ --mat-badge-small-size-container-offset: -8px 0;
159
+ --mat-badge-large-size-container-offset: -14px 0;
160
+ --mat-badge-container-overlap-offset: -11px;
161
+ --mat-badge-small-size-container-overlap-offset: -8px;
162
+ --mat-badge-large-size-container-overlap-offset: -14px;
163
+ --mat-badge-container-padding: 0;
164
+ --mat-badge-small-size-container-padding: 0;
165
+ --mat-badge-large-size-container-padding: 0;
166
+ --mat-badge-line-height: var(--mat-badge-legacy-container-size);
167
+ --mat-badge-small-size-line-height: var(--mat-badge-legacy-small-size-container-size);
168
+ --mat-badge-large-size-line-height: var(--mat-badge-legacy-large-size-container-size);
169
+ }
170
+ }
@@ -1,3 +1,5 @@
1
+ @use 'sass:map';
2
+
1
3
  $sizes: (
2
4
  xs: 4px,
3
5
  sm: 8px,
@@ -19,6 +21,44 @@ $media: (
19
21
  xl: 1280px,
20
22
  );
21
23
 
24
+ $custom-colors: (
25
+ elder-blue: #0b284f,
26
+ elder-gold: #b69f6a,
27
+ elder-gold-dark: #423d32,
28
+ elder-gold-semi-dark: #7f7054,
29
+ elder-gold-light: #f0e9d8,
30
+ );
31
+
32
+ $chip-colors: (
33
+ state-none: #cecfcf,
34
+ state-open: #e0e1e1,
35
+ state-in-progress: #bdd5e7,
36
+ state-completed: #b1ddce,
37
+ state-warn: #f4dab8,
38
+ state-error: #e6b6b6,
39
+ state-other: #cdc7e5,
40
+ );
41
+
42
+ // $chip-colors: (
43
+ // state-none: lighten(map.get($chip-colors, state-none), 2%),
44
+ // state-open: lighten(map.get($chip-colors, state-open), 2%),
45
+ // state-in-progress: lighten(map.get($chip-colors, state-in-progress), 2%),
46
+ // state-completed: lighten(map.get($chip-colors, state-completed), 2%),
47
+ // state-warn: lighten(map.get($chip-colors, state-warn), 2%),
48
+ // state-error: lighten(map.get($chip-colors, state-error), 2%),
49
+ // state-other: lighten(map.get($chip-colors, state-other), 2%),
50
+ // );
51
+
52
+ $chip-colors-dark: (
53
+ state-none: darken(map.get($chip-colors, state-none), 65%),
54
+ state-open: darken(map.get($chip-colors, state-open), 45%),
55
+ state-in-progress: darken(map.get($chip-colors, state-in-progress), 45%),
56
+ state-completed: darken(map.get($chip-colors, state-completed), 45%),
57
+ state-warn: darken(map.get($chip-colors, state-warn), 45%),
58
+ state-error: darken(map.get($chip-colors, state-error), 45%),
59
+ state-other: darken(map.get($chip-colors, state-other), 45%),
60
+ );
61
+
22
62
  $palettes: (
23
63
  primary: (
24
64
  0: #000000,
@@ -1,18 +1,18 @@
1
1
  @use 'sass:map';
2
2
  @use '@angular/material' as mat;
3
- @use './elder-config' as settings;
3
+ @use './elder-scss-variables' as config;
4
4
 
5
5
  /******************************
6
6
  Default values
7
7
  *******************************/
8
- $commonSizesXs: map.get(settings.$sizes, xs);
9
- $commonSizesSm: map.get(settings.$sizes, sm);
10
- $commonSizesMd: map.get(settings.$sizes, md);
11
- $commonSizesLg: map.get(settings.$sizes, lg);
12
- $commonSizesXl: map.get(settings.$sizes, xl);
13
- $commonSizesXxl: map.get(settings.$sizes, xxl);
8
+ $commonSizesXs: map.get(config.$sizes, xs);
9
+ $commonSizesSm: map.get(config.$sizes, sm);
10
+ $commonSizesMd: map.get(config.$sizes, md);
11
+ $commonSizesLg: map.get(config.$sizes, lg);
12
+ $commonSizesXl: map.get(config.$sizes, xl);
13
+ $commonSizesXxl: map.get(config.$sizes, xxl);
14
14
 
15
- $densityFormField: map.get(settings.$extra, form-field-density);
15
+ $densityFormField: map.get(config.$extra, form-field-density);
16
16
 
17
17
  /******************************
18
18
  Validates $theme and sets default value if null
@@ -0,0 +1,47 @@
1
+ @use '@angular/material' as mat;
2
+ @use 'sass:map';
3
+
4
+ @forward '../abstracts/elder-set-defaults-fn';
5
+ @use 'elder-design-tokens' as elder-design-tokens;
6
+ @use '../abstracts/elder-set-defaults-fn' as elder-set-defaults-fn;
7
+ @use '../base/elder-m2-legacy-base' as elder-m2-legacy-base;
8
+ @use '../base/elder-fixes-base' as elder-fixes;
9
+ @use '../base/elder-common-base' as elder-common;
10
+ @use '../base/elder-form-base' as elder-form;
11
+ @use '../base/elder-component-themes' as elder-component-themes;
12
+ @use '../utilities/elder-flex-layout-utils' as elder-flex-layout-utils;
13
+ @use '../utilities/elder-color-utils' as elder-color-utils;
14
+ @use '../utilities/elder-typography-utils' as elder-typography-utils;
15
+ @use '../utilities/elder-common-utils' as elder-common-utils;
16
+ @use '../utilities/elder-layout-utils' as elder-layout-utils;
17
+
18
+ // Create a theme.
19
+ @mixin starter-theme($theme) {
20
+ $theme: elder-set-defaults-fn.validate-and-set-defaults($theme);
21
+
22
+ // ATM we need to render this here, because first need to set defaults for form-field density
23
+ @include mat.form-field-density(
24
+ map.get($theme, elder, density, form-field)
25
+ ); // TODO: improve density setup
26
+
27
+ // design tokens
28
+ @include elder-design-tokens.elder-design-tokens();
29
+
30
+ // base styles
31
+ @include elder-fixes.elder-fixes-base($theme);
32
+ @include elder-common.elder-common-base($theme);
33
+ @include elder-form.elder-form-base($theme);
34
+ @include elder-m2-legacy-base.elder-m2-legacy-base($theme);
35
+
36
+ // utilitiy styles
37
+ @include elder-flex-layout-utils.elder-flex-layout-utils($theme);
38
+ @include elder-layout-utils.elder-layout-utils($theme);
39
+ @include elder-color-utils.elder-color-utils();
40
+ @include elder-typography-utils.elder-typography-utils();
41
+ @include elder-common-utils.elder-common-utils();
42
+
43
+ // component themes rendered in global css
44
+ @include elder-component-themes.theme(
45
+ $theme
46
+ ); // TODO: Move component themes directly into components
47
+ }
@@ -0,0 +1,92 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+ @use './elder-starter-theme' as starter-theme;
4
+ @use './elder-scss-variables' as config;
5
+
6
+ @mixin render-default-elder-theme($themes: 'default', $options: ()) {
7
+ @if $themes == 'default' {
8
+ $themes: create-themes(config.$palettes); // typically this will be used
9
+ } @else {
10
+ $themes: $themes;
11
+ }
12
+
13
+ // map options
14
+ $use-typography-hierarchy: not map.has-key($options, 'no-typography-hierarchy');
15
+
16
+ // create theme
17
+ $elder-light-theme: map.get($themes, light);
18
+ $elder-dark-theme: map.get($themes, dark);
19
+
20
+ // render theme
21
+ @include mat.all-component-typographies();
22
+ @include mat.elevation-classes();
23
+ @include mat.app-background();
24
+
25
+ @if $use-typography-hierarchy {
26
+ @include mat.typography-hierarchy($elder-light-theme, $back-compat: true);
27
+ }
28
+
29
+ .elder-light-theme,
30
+ .elder-dark-theme {
31
+ @include mat.all-component-themes($elder-light-theme);
32
+ @include mat.system-level-colors($elder-light-theme);
33
+ @include mat.system-level-typography($elder-light-theme);
34
+ @include mat.color-variants-backwards-compatibility($elder-light-theme);
35
+ }
36
+
37
+ .elder-dark-theme {
38
+ @include mat.all-component-colors($elder-dark-theme);
39
+ @include mat.system-level-colors($elder-dark-theme);
40
+ @include mat.color-variants-backwards-compatibility($elder-dark-theme);
41
+ }
42
+
43
+ .elder-light-theme,
44
+ .elder-dark-theme {
45
+ @include starter-theme.starter-theme($elder-light-theme);
46
+ }
47
+ }
48
+
49
+ @function create-themes($palettesArg) {
50
+ $_palettes: $palettesArg;
51
+
52
+ $_rest: (
53
+ secondary: map.get($_palettes, secondary),
54
+ neutral: map.get($_palettes, neutral),
55
+ neutral-variant: map.get($_palettes, neutral-variant),
56
+ error: map.get($_palettes, error),
57
+ );
58
+ $_primary: map.merge(map.get($_palettes, primary), $_rest);
59
+ $_tertiary: map.merge(map.get($_palettes, tertiary), $_rest);
60
+
61
+ $density: 0; // ATM important ot start with 0, since we are (miss-)using the tighter -4 density settings only for forms
62
+
63
+ $light-theme: _elder-define-theme(light, $_primary, $_tertiary, $density);
64
+ $dark-theme: _elder-define-theme(dark, $_primary, $_tertiary, $density);
65
+ $dark-theme-mono: _elder-define-theme(dark, $_tertiary, $_tertiary, $density);
66
+
67
+ @return (
68
+ light: $light-theme,
69
+ dark: $dark-theme-mono,
70
+ );
71
+ }
72
+
73
+ @function _elder-define-theme($theme-type, $primary, $tertiary, $density: 0) {
74
+ @return mat.define-theme(
75
+ (
76
+ color: (
77
+ theme-type: $theme-type,
78
+ primary: $primary,
79
+ tertiary: $tertiary,
80
+ use-system-variables: true,
81
+ system-variables-prefix: md-sys-color,
82
+ ),
83
+ typography: (
84
+ use-system-variables: true,
85
+ system-variables-prefix: md-sys-typescale,
86
+ ),
87
+ density: (
88
+ scale: $density,
89
+ ),
90
+ )
91
+ );
92
+ }
@@ -1,22 +1,19 @@
1
- @use './elder-style-tweak-mixins' as mixins;
1
+ @use './elder-base-mixins' as mixins;
2
2
  @use '@angular/material' as mat;
3
3
  @use 'sass:map';
4
4
 
5
- @mixin elder-common-styles($theme) {
6
- $common-sizes: map.get($theme, elder, common-sizes);
7
-
5
+ @mixin elder-common-base($theme) {
8
6
  /***************************************************************************
9
7
  * *
10
- * Common Sizes *
8
+ * CSS reset: box-sizing *
11
9
  * *
12
10
  **************************************************************************/
13
11
 
14
- $xs: map.get($common-sizes, xs);
15
- $sm: map.get($common-sizes, sm);
16
- $md: map.get($common-sizes, md);
17
- $lg: map.get($common-sizes, lg);
18
- $xl: map.get($common-sizes, xl);
19
- $xxl: map.get($common-sizes, xxl);
12
+ *,
13
+ *::before,
14
+ *::after {
15
+ box-sizing: border-box;
16
+ }
20
17
 
21
18
  /***************************************************************************
22
19
  * *
@@ -1,4 +1,4 @@
1
- @use '../../src/lib/components/chips/elder-chip-theme' as elder-chip;
1
+ @use '../components/elder-chip-theme' as elder-chip;
2
2
  @use '../../src/lib/components/data-view/table/elder-table/elder-table.component' as elder-table;
3
3
  @use '../../src/lib/components/navigation/nav/elder-nav-theme' as elder-nav;
4
4
  @use '../../src/lib/components/data-view/grid/elder-grid/elder-grid.component' as elder-grid;
@@ -1,8 +1,8 @@
1
1
  @use '@angular/material' as mat;
2
- @use './elder-style-tweak-mixins' as mixins;
2
+ @use './elder-base-mixins' as mixins;
3
3
  @use 'sass:map';
4
4
 
5
- @mixin elder-style-fixes($theme) {
5
+ @mixin elder-fixes-base($theme) {
6
6
  @include _ng-style-fixes;
7
7
  @include _mat-style-fixes($theme);
8
8
  @include _mat3-fixes($theme);
@@ -177,6 +177,12 @@
177
177
  }
178
178
  }
179
179
 
180
+ &.elder-light-theme {
181
+ .mat-toolbar.mat-primary .mat-mdc-input-element::placeholder {
182
+ color: var(--md-sys-color-inverse-on-surface) !important; // fix placeholder color
183
+ }
184
+ }
185
+
180
186
  &.elder-dark-theme {
181
187
  .mat-toolbar,
182
188
  .mat-toolbar.mat-primary,
@@ -298,18 +304,18 @@
298
304
  }
299
305
 
300
306
  // round input fields
301
- &.deactivated {
302
- elder-search-box .elder-search-box-field,
303
- .mat-toolbar .mat-mdc-form-field {
304
- background-color: var(--md-sys-color-surface-container-low);
305
- border-radius: 24px !important;
306
-
307
- // remove border from notch piece on input fields
308
- .mat-mdc-notch-piece {
309
- border-width: 0 !important;
310
- }
311
- }
312
- }
307
+ // &.deactivated {
308
+ // elder-search-box .elder-search-box-field,
309
+ // .mat-toolbar .mat-mdc-form-field {
310
+ // background-color: var(--md-sys-color-surface-container-low);
311
+ // border-radius: 24px !important;
312
+
313
+ // // remove border from notch piece on input fields
314
+ // .mat-mdc-notch-piece {
315
+ // border-width: 0 !important;
316
+ // }
317
+ // }
318
+ // }
313
319
 
314
320
  .mat-toolbar .mat-mdc-form-field {
315
321
  background-color: var(--elder-lightened-transparent-bg);
@@ -320,10 +326,6 @@
320
326
  --mdc-outlined-text-field-input-text-color: var(--md-sys-color-inverse-on-surface) !important;
321
327
  --mdc-outlined-text-field-caret-color: var(--md-sys-color-inverse-on-surface) !important;
322
328
  }
323
- // * {
324
- // color: var(--md-sys-color-inverse-on-surface);
325
- // border-color: var(--md-sys-color-inverse-on-surface);
326
- // }
327
329
  }
328
330
 
329
331
  .elder-pane {
@@ -377,6 +379,34 @@
377
379
 
378
380
  &.elder-light-theme,
379
381
  &.elder-dark-theme {
380
- --mdc-linear-progress-track-color: var(--elder-color-highlight-dim);
382
+ --mdc-linear-progress-track-color: var(--elder-color-highlight-variant);
381
383
  }
384
+
385
+ // disable icon button overflow
386
+ .mat-mdc-icon-button {
387
+ overflow: hidden;
388
+ }
389
+
382
390
  }
391
+
392
+ // @mixin chips-status-colors($theme) {
393
+ // $status-colors: (
394
+ // none: rgb(143, 143, 143),
395
+ // open: rgb(199, 199, 199),
396
+ // in-progress: rgb(33, 150, 243),
397
+ // completed: rgb(4, 170, 109),
398
+ // warn: rgb(255, 145, 0),
399
+ // error: rgb(255, 0, 0),
400
+ // other: rgb(121, 73, 252),
401
+ // level-low: rgb(4, 170, 109),
402
+ // level-medium: rgb(33, 150, 243),
403
+ // level-high: rgb(255, 145, 0),
404
+ // level-critical: rgb(255, 0, 0),
405
+ // );
406
+
407
+ // @each $status, $color in $status-colors {
408
+ // .mat-mdc-chip.elder-chip-#{$status} {
409
+ // background-color: map.get($palettes, $color);
410
+ // }
411
+ // }
412
+ // }
@@ -1,8 +1,8 @@
1
- @use './elder-style-tweak-mixins' as mixins;
1
+ @use './elder-base-mixins' as mixins;
2
2
  @use '@angular/material' as mat;
3
3
  @use 'sass:map';
4
4
 
5
- @mixin elder-form-styles($theme) {
5
+ @mixin elder-form-base($theme) {
6
6
  $common-sizes: map.get($theme, elder, common-sizes);
7
7
  $form-field-density: map.get($theme, elder, density, form-field);
8
8