@elderbyte/ngx-starter 19.1.0-beta.0 → 19.1.0-beta.10

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 (43) hide show
  1. package/_index.scss +1 -1
  2. package/fesm2022/elderbyte-ngx-starter.mjs +213 -714
  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/data-view/base/elder-data-view-base.d.ts +14 -0
  6. package/lib/components/layout/basic-pane-layout/basic-pane-layout.component.d.ts +6 -0
  7. package/lib/components/layout/pane-header/pane-header.component.d.ts +7 -0
  8. package/lib/components/layout/public_api.d.ts +2 -1
  9. package/lib/components/public_api.d.ts +0 -1
  10. package/lib/components/select/single/elder-select/elder-select.component.d.ts +1 -1
  11. package/package.json +1 -1
  12. package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +2 -1
  13. package/src/lib/components/data-view/table/elder-table/elder-table.component.scss +6 -6
  14. package/src/lib/components/files/blob-viewer/elder-blob-viewer.component.scss +2 -2
  15. package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +4 -4
  16. package/src/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.scss +1 -1
  17. package/src/lib/components/shell/header/elder-app-header/elder-app-header.component.scss +1 -1
  18. package/src/lib/components/toasts/standard-toast/standard-toast.component.scss +1 -1
  19. package/theming/abstracts/_elder-design-tokens.scss +175 -0
  20. package/theming/{system/_elder-config.scss → abstracts/_elder-scss-variables.scss} +40 -0
  21. package/theming/{system/_elder-defaults.scss → abstracts/_elder-set-defaults-fn.scss} +8 -8
  22. package/theming/abstracts/_elder-starter-theme.scss +47 -0
  23. package/theming/abstracts/_elder-theme-main.scss +92 -0
  24. package/theming/{style-tweaks/_elder-common.scss → base/_elder-common-base.scss} +8 -11
  25. package/theming/{style-tweaks → base}/_elder-component-themes.scss +1 -1
  26. package/theming/{style-tweaks/_elder-style-fixes.scss → base/_elder-fixes-base.scss} +32 -20
  27. package/theming/{style-tweaks/_elder-form.scss → base/_elder-form-base.scss} +7 -4
  28. package/theming/{style-tweaks/_elder-color-variants.scss → base/_elder-m2-legacy-base.scss} +7 -1
  29. package/theming/components/_elder-chip-theme.scss +158 -0
  30. package/theming/{utility-classes/_elder-color-helpers.scss → utilities/_elder-color-utils.scss} +5 -8
  31. package/theming/utilities/_elder-common-utils.scss +17 -0
  32. package/theming/{utility-classes/_elder-flex-layout.scss → utilities/_elder-flex-layout-utils.scss} +108 -6
  33. package/theming/{utility-classes/_elder-layout-system.scss → utilities/_elder-layout-utils.scss} +46 -21
  34. package/theming/utilities/_elder-typography-utils.scss +61 -0
  35. package/lib/components/layout/pane-container/pane-container.component.d.ts +0 -11
  36. package/lib/components/m3-sidenav/m3-sidenav.component.d.ts +0 -5
  37. package/lib/components/style-debugger/style-debugger.component.d.ts +0 -40
  38. package/src/lib/components/chips/_elder-chip-theme.scss +0 -129
  39. package/theming/style-tweaks/_elder-reset.scss +0 -13
  40. package/theming/system/_elder-design-tokens.scss +0 -90
  41. package/theming/system/_elder-m3-theme.scss +0 -156
  42. package/theming/system/_elder-starter-theme.scss +0 -41
  43. /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';
@@ -37,10 +37,12 @@ export declare abstract class ElderDataViewBaseComponent implements IElderDataVi
37
37
  */
38
38
  private _dense;
39
39
  /**
40
+ * @deprecated This property is no longer relevant, since we always render the elements as embedded.
40
41
  * The appearance of the surrounding card container.
41
42
  */
42
43
  private _appearance;
43
44
  /**
45
+ * @deprecated This property is no longer relevant, since we always render the elements as embedded.
44
46
  * If true, this table is in embedded mode.
45
47
  * No borders / floating visible so that the table can be embedded into another container
46
48
  */
@@ -101,9 +103,21 @@ export declare abstract class ElderDataViewBaseComponent implements IElderDataVi
101
103
  * @deprecated Switch to appearance="raised"
102
104
  */
103
105
  set float(value: BooleanInput);
106
+ /**
107
+ * @deprecated , since we always render the elements as embedded.
108
+ */
104
109
  set appearance(value: MatCardAppearance);
110
+ /**
111
+ * @deprecated , since we always render the elements as embedded.
112
+ */
105
113
  get appearance(): MatCardAppearance;
114
+ /**
115
+ * @deprecated , since we always render the elements as embedded.
116
+ */
106
117
  set embedded(value: boolean | '');
118
+ /**
119
+ * @deprecated , since we always render the elements as embedded.
120
+ */
107
121
  get embedded(): boolean | '';
108
122
  /***************************************************************************
109
123
  * *
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ElderBasicPaneLayoutComponent {
3
+ class: string;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderBasicPaneLayoutComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderBasicPaneLayoutComponent, "elder-basic-pane-layout", never, {}, {}, never, ["*"], true, never>;
6
+ }
@@ -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-container/pane-container.component';
2
+ export * from './pane-header/pane-header.component';
3
+ export * from './basic-pane-layout/basic-pane-layout.component';
@@ -40,5 +40,4 @@ export * from './auditing/elder-audit.module';
40
40
  export * from './tabs/elder-tab.module';
41
41
  export * from './badge/elder-badge.module';
42
42
  export * from './page/public_api';
43
- export { ElderStyleDebuggerComponent } from './style-debugger/style-debugger.component';
44
43
  export * from './layout/public_api';
@@ -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.0",
3
+ "version": "19.1.0-beta.10",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^18.0.0 || ^19.0.0",
6
6
  "@angular/common": "^18.0.0 || ^19.0.0",
@@ -5,6 +5,7 @@ $elder-tile-padding: 8px;
5
5
  @mixin theme($theme) {
6
6
  .elder-grid-container {
7
7
  border-radius: var(--elder-border-radius-sm);
8
+ background-color: var(--elder-grid-background-color);
8
9
  }
9
10
 
10
11
  mat-card:has(> .elder-grid-container) {
@@ -20,7 +21,7 @@ $elder-tile-padding: 8px;
20
21
  }
21
22
 
22
23
  .elder-grid-footer {
23
- min-height: 44px;
24
+ min-height: var(--elder-data-element-footer-height);
24
25
  }
25
26
 
26
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(--md-sys-color-surface-container);
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
- --md-sys-color-primary-container
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(--md-sys-color-primary-container);
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(--md-sys-color-primary-container);
109
+ background-color: var(--elder-color-highlight-strong);
110
110
  }
111
111
 
112
112
  .elder-mat-table-flat {
@@ -148,7 +148,7 @@
148
148
  }
149
149
 
150
150
  &:last-of-type {
151
- padding-right: $pad;
151
+ padding-right: $pad; // TODO: This can lead to overflows in some cases, is there a better solution?
152
152
 
153
153
  &[mat-sort-header]:not([arrowposition='before']) {
154
154
  padding-right: $pad;
@@ -40,6 +40,6 @@
40
40
  height: 100%;
41
41
  border-radius: 0px;
42
42
  box-shadow: 0px 2px 14px #000;
43
- border-top: 1px solid #fff;
44
- border-bottom: 1px solid #fff;
43
+ border: none;
44
+ padding: 8px;
45
45
  }
@@ -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
  }
@@ -1,5 +1,5 @@
1
1
  .elder-dialog-panel {
2
- background-color: var(--md-sys-color-surface-container-lowest);
2
+ background-color: var(--elder-dialog-panel-bg-color);
3
3
  color: var(--md-sys-color-on-surface);
4
4
 
5
5
  padding: 10px;
@@ -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,175 @@
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
+ // import fix for overflow of mat-icons, default is 40px in m3, in m2 it was 48px
25
+ --mdc-icon-button-state-layer-size: 48px;
26
+
27
+ // elder custom variables
28
+ --elder-border-radius-sm: 4px; // typical small border radius, inspired by mat 2
29
+ --elder-border-light: 1px solid var(--md-sys-color-outline-variant);
30
+ --elder-box-shadow-default: var(--mat-app-elevation-shadow-level-8);
31
+ --elder-scrollbar-width: 8px;
32
+ --elder-lightened-transparent-bg: rgba(255, 255, 255, 0.15);
33
+
34
+ // elder pane
35
+ --elder-pane-padding: #{map.get(config.$sizes, sm)};
36
+ --elder-pane-gap: #{map.get(config.$sizes, sm)};
37
+ --elder-pane-border-radius: var(
38
+ --mdc-outlined-card-container-shape,
39
+ var(--mat-app-corner-medium)
40
+ );
41
+ --elder-pane-bg-color: var(--md-sys-color-surface-container-lowest);
42
+
43
+ // card header
44
+ --elder-card-header-padding: 15px 15px 5px 15px;
45
+
46
+ // cards, table etc bg
47
+ --mdc-elevated-card-container-color: var(--md-sys-color-surface-container-lowest);
48
+ --mdc-outlined-card-container-color: var(--mdc-elevated-card-container-color);
49
+ //--mat-table-background-color: var(--md-sys-color-surface-container-lowest);
50
+ --mat-table-background-color: transparent;
51
+ --mat-paginator-container-background-color: var(--mat-table-background-color);
52
+ --elder-grid-background-color: var(--mat-table-background-color);
53
+ //--mat-table-header-container-height: 56px; // 56px is default
54
+
55
+ // elder toast messages
56
+ --elder-toast-message-color-title-default: var(--md-sys-color-inverse-on-surface);
57
+ --elder-toast-message-color-title-warn: var(--md-sys-color-inverse-on-surface);
58
+ --elder-toast-message-color-title-error: var(--md-sys-color-inverse-on-surface);
59
+
60
+ // main nav top left button color
61
+ --elder-toolbar-main-nav-button-color: var(--md-sys-color-on-primary);
62
+ --elder-toolbar-main-nav-button-container-bg-color: var(--md-sys-color-primary);
63
+
64
+ // custom colors
65
+ --elder-blue: #{map.get(config.$custom-colors, elder-blue)};
66
+ --elder-gold: #{map.get(config.$custom-colors, elder-gold)};
67
+ --elder-gold-dark: #{map.get(config.$custom-colors, elder-gold-dark)};
68
+ --elder-gold-semi-dark: #{map.get(config.$custom-colors, elder-gold-semi-dark)};
69
+ --elder-gold-light: #{map.get(config.$custom-colors, elder-gold-light)};
70
+
71
+ --elder-color-highlight-strong: hsl(214, 18%, 85%);
72
+ --elder-color-highlight-variant: hsl(214, 18%, 95%); // dim version lighter in light moode
73
+ --elder-color-highlight-strong: var(--elder-gold-light);
74
+ --elder-color-highlight-variant: #EBEBEB;
75
+
76
+ // chip colors
77
+ --elder-chip-color-state-none: #{map.get(config.$chip-colors, state-none)};
78
+ --elder-chip-color-state-open: #{map.get(config.$chip-colors, state-open)};
79
+ --elder-chip-color-state-in-progress: #{map.get(config.$chip-colors, state-in-progress)};
80
+ --elder-chip-color-state-completed: #{map.get(config.$chip-colors, state-completed)};
81
+ --elder-chip-color-state-warn: #{map.get(config.$chip-colors, state-warn)};
82
+ --elder-chip-color-state-error: #{map.get(config.$chip-colors, state-error)};
83
+ --elder-chip-color-state-other: #{map.get(config.$chip-colors, state-other)};
84
+
85
+ // chip colors dark
86
+ &.elder-dark-theme {
87
+ --elder-chip-color-state-none: #{map.get(config.$chip-colors-dark, state-none)};
88
+ --elder-chip-color-state-open: #{map.get(config.$chip-colors-dark, state-open)};
89
+ --elder-chip-color-state-in-progress: #{map.get(config.$chip-colors-dark, state-in-progress)};
90
+ --elder-chip-color-state-completed: #{map.get(config.$chip-colors-dark, state-completed)};
91
+ --elder-chip-color-state-warn: #{map.get(config.$chip-colors-dark, state-warn)};
92
+ --elder-chip-color-state-error: #{map.get(config.$chip-colors-dark, state-error)};
93
+ --elder-chip-color-state-other: #{map.get(config.$chip-colors-dark, state-other)};
94
+ }
95
+
96
+ // missing md3 color
97
+ --md-sys-color-on-primary-fixed-dim: var(--md-sys-color-on-surface);
98
+ --md-sys-color-on-tertiary-fixed-dim: var(--md-sys-color-on-primary-fixed-dim);
99
+
100
+ // dialog
101
+ --elder-dialog-panel-bg-color: var(--md-sys-color-surface-container-lowest);
102
+
103
+ // data footer
104
+ --elder-data-element-footer-height: 48px;
105
+
106
+ // xy
107
+ --elder-round-form-field-outline: none;
108
+ }
109
+
110
+ &.elder-dark-theme {
111
+ --elder-dialog-panel-bg-color: var(--md-sys-color-surface-container);
112
+ }
113
+
114
+ // light theme overwrites
115
+ &.elder-light-theme {
116
+ --md-sys-color-primary: var(--elder-blue);
117
+ --md-sys-color-tertiary: var(--elder-gold);
118
+ --md-sys-color-tertiary-container: var(--elder-gold-light);
119
+ --md-sys-color-on-tertiary: var(--md-sys-color-on-surface);
120
+ --md-sys-color-secondary-container: #d8e3fa; // hsl(221, 77%, 91%)
121
+ --md-sys-color-secondary-container: hsl(214, 44%, 84%);
122
+ --md-sys-color-secondary-fixed: hsl(214, 44%, 89%);
123
+ // --md-sys-color-primary-container: hsl(214, 64%, 84%);
124
+ --md-sys-color-primary-container: #A6C7ED;
125
+ --md-sys-color-primary-fixed-dim: #95A6C7;
126
+ }
127
+
128
+ // dark theme overwrites
129
+ &.elder-dark-theme {
130
+ --elder-round-form-field-outline: solid 1px var(--md-sys-color-outline);
131
+ --mat-sidenav-scrim-color: rgba(255, 255, 255, 0.4);
132
+ --md-sys-color-primary-container: var(--elder-gold-semi-dark);
133
+ --md-sys-color-primary-fixed-dim: var(--elder-gold-dark);
134
+ --elder-color-highlight-variant: var(--elder-gold-dark);
135
+ --elder-color-highlight-strong: var(--elder-gold-semi-dark);
136
+ --md-sys-color-tertiary-fixed-dim: var(--md-sys-color-primary-fixed-dim);
137
+ --md-sys-color-on-primary-fixed-dim: var(--md-sys-color-on-surface);
138
+ --md-sys-color-tertiary-container: var(--md-sys-color-primary-container);
139
+ --md-sys-color-surface-container-highest: #191919;
140
+ --md-sys-color-surface-container-lowest: #262626;
141
+ --md-sys-color-error: #ff999f;
142
+ --md-sys-color-inverse-primary: var(--md-sys-color-primary-container);
143
+ --md-sys-color-surface-tint: var(--elder-gold-dark);
144
+ --elder-dark-gray: var(--md-sys-color-surface-container);
145
+ --mdc-chip-outline-color: rgba(255, 255, 255, 0.3);
146
+ --elder-dark-mode-color-primary: var(--md-sys-color-primary);
147
+ --elder-dark-mode-color-on-primary: var(--md-sys-color-on-primary);
148
+ --elder-dark-mode-color-surface: var(--md-sys-color-surface);
149
+ --elder-dark-mode-color-on-surface: var(--md-sys-color-on-surface);
150
+ }
151
+ }
152
+
153
+ @mixin elder-badge-sizing() {
154
+ & {
155
+ // Use legacy MAT 2 badge sizing
156
+ --mat-badge-container-size: unset;
157
+ --mat-badge-small-size-container-size: unset;
158
+ --mat-badge-large-size-container-size: unset;
159
+ --mat-badge-legacy-container-size: 22px;
160
+ --mat-badge-legacy-small-size-container-size: 16px;
161
+ --mat-badge-legacy-large-size-container-size: 28px;
162
+ --mat-badge-container-offset: -11px 0;
163
+ --mat-badge-small-size-container-offset: -8px 0;
164
+ --mat-badge-large-size-container-offset: -14px 0;
165
+ --mat-badge-container-overlap-offset: -11px;
166
+ --mat-badge-small-size-container-overlap-offset: -8px;
167
+ --mat-badge-large-size-container-overlap-offset: -14px;
168
+ --mat-badge-container-padding: 0;
169
+ --mat-badge-small-size-container-padding: 0;
170
+ --mat-badge-large-size-container-padding: 0;
171
+ --mat-badge-line-height: var(--mat-badge-legacy-container-size);
172
+ --mat-badge-small-size-line-height: var(--mat-badge-legacy-small-size-container-size);
173
+ --mat-badge-large-size-line-height: var(--mat-badge-legacy-large-size-container-size);
174
+ }
175
+ }
@@ -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;