@elderbyte/ngx-starter 19.0.2 → 19.1.0-beta.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 (69) hide show
  1. package/_index.scss +2 -70
  2. package/fesm2022/elderbyte-ngx-starter.mjs +786 -197
  3. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  4. package/lib/components/layout/pane/pane.component.d.ts +6 -0
  5. package/lib/components/layout/pane-container/pane-container.component.d.ts +11 -0
  6. package/lib/components/layout/public_api.d.ts +2 -0
  7. package/lib/components/m3-sidenav/m3-sidenav.component.d.ts +5 -0
  8. package/lib/components/public_api.d.ts +2 -0
  9. package/lib/components/style-debugger/style-debugger.component.d.ts +40 -0
  10. package/package.json +1 -1
  11. package/src/lib/components/badge/elder-badge/elder-badge.component.scss +2 -2
  12. package/src/lib/components/button-group/elder-button-group/elder-button-group.component.scss +18 -28
  13. package/src/lib/components/card-organizer/card-stack/elder-card-stack.component.scss +9 -36
  14. package/src/lib/components/cards/elder-card/elder-card.component.scss +0 -20
  15. package/src/lib/components/chips/_elder-chip-theme.scss +63 -56
  16. package/src/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.scss +1 -7
  17. package/src/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.scss +11 -0
  18. package/src/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.scss +2 -1
  19. package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +16 -26
  20. package/src/lib/components/data-view/table/elder-table/elder-table.component.scss +100 -92
  21. package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +0 -24
  22. package/src/lib/components/expand-toggle-button/elder-expand-toggle-button.component.scss +7 -17
  23. package/src/lib/components/files/blob-viewer/elder-blob-viewer.component.scss +4 -10
  24. package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +23 -34
  25. package/src/lib/components/forms/search/search-box/elder-search-box.component.scss +0 -5
  26. package/src/lib/components/graph/elder-progress-bar/elder-progress-bar.component.scss +0 -1
  27. package/src/lib/components/iframes/iframe-host/iframe-host.component.scss +0 -6
  28. package/src/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.scss +2 -0
  29. package/src/lib/components/navigation/nav/_elder-nav-theme.scss +16 -24
  30. package/src/lib/components/navigation/nav/nav-group/elder-nav-group.component.scss +1 -1
  31. package/src/lib/components/navigation/nav/nav-link/elder-nav-link.component.scss +4 -6
  32. package/src/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.scss +2 -5
  33. package/src/lib/components/panels/card-panel/elder-card-panel.component.scss +6 -19
  34. package/src/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.scss +6 -19
  35. package/src/lib/components/select/_elder-select-base.scss +1 -10
  36. package/src/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.scss +4 -22
  37. package/src/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.scss +10 -40
  38. package/src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.scss +18 -53
  39. package/src/lib/components/select/single/elder-select/elder-select.component.scss +24 -41
  40. package/src/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.scss +2 -8
  41. package/src/lib/components/shell/header/elder-app-header/elder-app-header.component.scss +11 -2
  42. package/src/lib/components/shell/shell/elder-shell.component.scss +8 -0
  43. package/src/lib/components/toasts/standard-toast/standard-toast.component.scss +22 -2
  44. package/theming/style-tweaks/_elder-color-variants.scss +31 -0
  45. package/theming/style-tweaks/_elder-common.scss +179 -0
  46. package/theming/style-tweaks/_elder-component-themes.scss +22 -0
  47. package/theming/style-tweaks/_elder-form.scss +368 -0
  48. package/theming/style-tweaks/_elder-reset.scss +13 -0
  49. package/theming/style-tweaks/_elder-style-fixes.scss +377 -0
  50. package/theming/{_mixins.scss → style-tweaks/_elder-style-tweak-mixins.scss} +35 -1
  51. package/theming/system/_elder-config.scss +141 -0
  52. package/theming/{_elder-defaults.scss → system/_elder-defaults.scss} +9 -14
  53. package/theming/system/_elder-design-tokens.scss +90 -0
  54. package/theming/system/_elder-m3-theme.scss +156 -0
  55. package/theming/system/_elder-starter-theme.scss +41 -0
  56. package/theming/utility-classes/_elder-color-helpers.scss +78 -0
  57. package/theming/{_elder-flex-layout.scss → utility-classes/_elder-flex-layout.scss} +19 -25
  58. package/theming/utility-classes/_elder-layout-system.scss +498 -0
  59. package/src/lib/components/panels/flat/_elder-panel-theme.scss +0 -72
  60. package/src/lib/components/time/_elder-time-input.theme.scss +0 -35
  61. package/theming/_elder-common.scss +0 -573
  62. package/theming/_elder-mdc-support.scss +0 -235
  63. package/theming/_elder-palettes.scss +0 -148
  64. package/theming/_elder-scrollbar-theme.scss +0 -67
  65. package/theming/_elder-style-fixes.scss +0 -216
  66. package/theming/_elder-theme.scss +0 -51
  67. package/theming/_elder-toast-theme.scss +0 -46
  68. package/theming/_elder-typography-utils.scss +0 -23
  69. package/theming/_mat-icon-button-size.scss +0 -34
@@ -0,0 +1,368 @@
1
+ @use './elder-style-tweak-mixins' as mixins;
2
+ @use '@angular/material' as mat;
3
+ @use 'sass:map';
4
+
5
+ @mixin elder-form-styles($theme) {
6
+ $common-sizes: map.get($theme, elder, common-sizes);
7
+ $form-field-density: map.get($theme, elder, density, form-field);
8
+
9
+ $xs: map.get($common-sizes, xs);
10
+ $sm: map.get($common-sizes, sm);
11
+ $md: map.get($common-sizes, md);
12
+ $lg: map.get($common-sizes, lg);
13
+ $xl: map.get($common-sizes, xl);
14
+ $xxl: map.get($common-sizes, xxl);
15
+
16
+ /******************************
17
+ elder-form-field-host fix
18
+ *******************************/
19
+ .elder-form-field-host {
20
+ // This class should be applied to "controls" which themselves contain a mat-form-field.
21
+ display: inline-flex;
22
+ flex-direction: column;
23
+ min-width: 0;
24
+ }
25
+
26
+ /******************************
27
+ mdc form field fixes
28
+ *******************************/
29
+ .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-floating-label {
30
+ display: block !important;
31
+ }
32
+
33
+ .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper {
34
+ padding-left: 0 !important;
35
+ }
36
+
37
+ .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper {
38
+ padding-right: 0 !important;
39
+ }
40
+
41
+ .mat-mdc-form-field:not(.mat-mdc-form-field.elder-dense) {
42
+ $density: map.get($theme, elder, density, form-field);
43
+
44
+ /******************************
45
+ Fix big paddings for dense form fields
46
+ *******************************/
47
+
48
+ .mat-mdc-text-field-wrapper {
49
+ padding-left: calc-side-paddings($density);
50
+ padding-right: calc-side-paddings($density);
51
+ }
52
+
53
+ /******************************
54
+ Fix icon size and placement in mat label
55
+ *******************************/
56
+
57
+ @include mixins.form-field-icons($density);
58
+
59
+ /******************************
60
+ Fix text and hover placement of small filled form fields
61
+ *******************************/
62
+
63
+ $mat-mdc-form-field-label-transform: 0.75;
64
+ $mat-mdc-form-field-label-offset-x: -16px;
65
+ $form-field-density: map.get($theme, elder, density, form-field);
66
+
67
+ @if $form-field-density < -1 {
68
+ .mdc-text-field--filled {
69
+ .mdc-floating-label--float-above {
70
+ transform: var(
71
+ $mat-mdc-form-field-label-transform,
72
+ translateY(-50%)
73
+ translateX(calc(1 * (44px + var($mat-mdc-form-field-label-offset-x, 0px))))
74
+ ) !important;
75
+ }
76
+
77
+ .mat-mdc-form-field-infix {
78
+ padding-top: calc-padding-top-form-field-inflix($form-field-density) !important;
79
+ padding-bottom: 2px !important;
80
+ min-height: 40px; // (24 + 2*16) = 56px by default
81
+ }
82
+ }
83
+ }
84
+
85
+ /******************************
86
+ Material Form Field Label stealing clicks
87
+ *******************************/
88
+
89
+ .mat-mdc-floating-label.mdc-floating-label {
90
+ pointer-events: none !important;
91
+
92
+ mat-label {
93
+ pointer-events: none !important;
94
+ }
95
+ }
96
+
97
+ .mdc-notched-outline__notch {
98
+ pointer-events: none !important;
99
+
100
+ .mdc-floating-label {
101
+ pointer-events: none !important;
102
+
103
+ mat-label {
104
+ pointer-events: none !important;
105
+ }
106
+ }
107
+ }
108
+
109
+ .mat-mdc-form-field-error-wrapper {
110
+ display: flex;
111
+ padding-right: 0;
112
+ }
113
+ }
114
+
115
+ // A legacy styled form field with class 'elder-form-field-label' will get these styles
116
+ .mat-form-field-appearance-legacy.elder-form-field-label {
117
+ /*TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version.*/
118
+ .mat-form-field-underline {
119
+ display: none;
120
+ }
121
+ }
122
+
123
+ /******************************************************************
124
+ Icon button size
125
+ ******************************************************************/
126
+
127
+ $control-button-size: var(--mdc-typography-body1-line-height, 24px);
128
+ $control-icon-size: 20px;
129
+ .elder-mdc-input-fix {
130
+ max-height: $control-button-size;
131
+ }
132
+ .mat-mdc-icon-button.elder-control-icon-button {
133
+ @include mixins.matIconButtonSize($control-button-size, $control-icon-size); // 0.6
134
+ }
135
+ .mat-datepicker-toggle.elder-control-icon-button {
136
+ max-height: $control-button-size;
137
+ max-width: $control-button-size;
138
+ .mat-mdc-icon-button {
139
+ @include mixins.matIconButtonSize($control-button-size, $control-icon-size); // 0.6
140
+ }
141
+ }
142
+
143
+ /***************************************************************************
144
+ Form field dense styling
145
+ **************************************************************************/
146
+
147
+ .mat-mdc-form-field.elder-dense {
148
+ .mat-mdc-text-field-wrapper {
149
+ // padding left / right 16 by default
150
+ padding-left: $sm !important;
151
+ padding-right: $sm !important;
152
+ }
153
+
154
+ .mat-mdc-form-field-flex {
155
+ padding: 0;
156
+ }
157
+
158
+ .mdc-text-field--outlined {
159
+ .mat-mdc-form-field-infix {
160
+ padding-top: $sm !important; // 16px by default
161
+ padding-bottom: $sm !important; // 16px by default
162
+ min-height: 40px; // (24 + 2*16) = 56px by default
163
+ }
164
+ }
165
+
166
+ .mdc-text-field--filled {
167
+ .mdc-floating-label--float-above {
168
+ transform: translateY(-100%) scale(0.75);
169
+ }
170
+ .mat-mdc-form-field-infix {
171
+ padding-top: 14px !important; // 16px by default
172
+ padding-bottom: 2px;
173
+ min-height: 40px; // (24 + 2*16) = 56px by default
174
+ }
175
+ }
176
+
177
+ @include mixins.form-field-icons($form-field-density);
178
+ }
179
+
180
+ .mat-mdc-form-field.elder-no-hint {
181
+ /*TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version.*/
182
+ .mat-form-field-wrapper {
183
+ padding-bottom: 0;
184
+ }
185
+ /*TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version.*/
186
+ .mat-form-field-underline {
187
+ bottom: 0;
188
+ }
189
+ }
190
+
191
+ /***************************************************************************
192
+ Possibly for elder excpetion detail
193
+ **************************************************************************/
194
+ .mat-mdc-form-field.mat-form-field-appearance-outline {
195
+ .mat-mdc-form-field-textarea-control {
196
+ &.stacktrace {
197
+ font-size: 11px;
198
+ font-family: monospace;
199
+ line-height: normal;
200
+ white-space: pre;
201
+ overflow-wrap: normal;
202
+ overflow-x: scroll;
203
+ background-color: var(--md-sys-color-inverse-surface);
204
+ color: var(--md-sys-color-inverse-on-surface);
205
+ }
206
+ }
207
+ }
208
+
209
+ /***************************************************************************
210
+ Form field time
211
+ **************************************************************************/
212
+ .mat-mdc-form-field-type-day-time-range .mat-mdc-form-field-infix {
213
+ width: 224px;
214
+ }
215
+
216
+ .mat-mdc-form-field-type-date-time-range .mat-mdc-form-field-infix {
217
+ width: 320px;
218
+ }
219
+
220
+ .mat-mdc-form-field-type-single-day .mat-mdc-form-field-infix {
221
+ width: 180px;
222
+ }
223
+
224
+ .mat-mdc-form-field-type-date-range .mat-mdc-form-field-infix {
225
+ width: 224px;
226
+ }
227
+
228
+ .mdc-text-field__input .mat-date-range-input-separator {
229
+ color: inherit;
230
+ }
231
+
232
+ /******************************
233
+ Material Form Controls
234
+ *******************************/
235
+
236
+ .elder-form-control {
237
+ width: 180px;
238
+ overflow: hidden; // This allows flex items to shrink (min/max is not defaulting auto)
239
+ }
240
+
241
+ .elder-flex-control {
242
+ flex: 1 1 180px;
243
+ overflow: hidden;
244
+ }
245
+
246
+ /******************************
247
+ Material Form Field
248
+ *******************************/
249
+
250
+ .elder-form-field-gap {
251
+ width: 12px;
252
+ }
253
+
254
+ // two fields plus 12px gap add up to elder-std-form-field width
255
+ .elder-form-field-small {
256
+ width: 84px;
257
+ }
258
+
259
+ // three fields plus 12px gap add up to elder-std-form-field width
260
+ .elder-form-field-tiny {
261
+ width: 52px;
262
+ }
263
+
264
+ .elder-std-form-field {
265
+ width: 180px;
266
+ overflow: hidden; // This allows flex items to shrink (min/max is not defaulting auto)
267
+ }
268
+
269
+ .elder-form-field-large {
270
+ width: 244px;
271
+ overflow: hidden;
272
+ }
273
+
274
+ .elder-form-field-xl {
275
+ width: 276px;
276
+ overflow: hidden;
277
+ }
278
+
279
+ .elder-form-field-xxl {
280
+ width: 372px;
281
+ overflow: hidden;
282
+ }
283
+
284
+ /**
285
+ * mat-form-field style shorthands
286
+ */
287
+ mat-form-field {
288
+ // three fields plus 12px gap add up to elder-std-form-field width
289
+ .tiny {
290
+ width: 52px; // (180-(2*12)) / 3
291
+ }
292
+
293
+ // two fields plus 12px gap add up to elder-std-form-field width
294
+ .small {
295
+ width: 84px; // (180-(1*12)) / 2
296
+ }
297
+
298
+ .standard {
299
+ width: 180px;
300
+ overflow: hidden; // This allows flex items to shrink (min/max is not defaulting auto)
301
+ }
302
+
303
+ // one and a half plus 12px gap 180 + 52 + 12
304
+ .large {
305
+ width: 244px;
306
+ overflow: hidden;
307
+ }
308
+
309
+ // one and a half plus 12px gap 180 + 84 + 12
310
+ .xl {
311
+ width: 276px;
312
+ overflow: hidden;
313
+ }
314
+
315
+ // two standard fields plus 12px gap (180 + 180 + 12)
316
+ .xxl {
317
+ width: 372px;
318
+ overflow: hidden;
319
+ }
320
+ }
321
+
322
+ /***************************************************************************
323
+ Rounded m3 style input fields
324
+ **************************************************************************/
325
+ .elder-round-form-field {
326
+ border: none;
327
+ border-radius: 24px;
328
+ background-color: var(--md-sys-color-surface-container-low);
329
+
330
+ .mdc-notched-outline .mat-mdc-notch-piece {
331
+ border: none !important;
332
+ }
333
+ &:hover {
334
+ outline: solid 1px var(--md-sys-color-primary-container);
335
+ }
336
+ &.mat-focused {
337
+ outline: solid 1px var(--md-sys-color-primary);
338
+ }
339
+ }
340
+ }
341
+
342
+ @function calc-side-paddings($density) {
343
+ $paddingDensityNeg4: 8px;
344
+ $paddingDensityNeg3: 10px;
345
+ $paddingDensityNeg2: 12px;
346
+ $paddingDensityNeg1: 14px;
347
+ $paddingDensity0: 16px;
348
+
349
+ @if $density == -4 {
350
+ @return $paddingDensityNeg4;
351
+ } @else if $density == -3 {
352
+ @return $paddingDensityNeg3;
353
+ } @else if $density == -2 {
354
+ @return $paddingDensityNeg2;
355
+ } @else if $density == -1 {
356
+ @return $paddingDensityNeg1;
357
+ } @else if $density == 0 {
358
+ @return $paddingDensity0;
359
+ }
360
+ }
361
+
362
+ @function calc-padding-top-form-field-inflix($density) {
363
+ @if $density > -3 {
364
+ @return 20px;
365
+ } @else {
366
+ @return 14px;
367
+ }
368
+ }
@@ -0,0 +1,13 @@
1
+ /***************************************************************************
2
+ * *
3
+ * CSS reset *
4
+ * *
5
+ **************************************************************************/
6
+
7
+ @mixin elder-reset() {
8
+ *,
9
+ *::before,
10
+ *::after {
11
+ box-sizing: border-box;
12
+ }
13
+ }