@lukfel/ng-scaffold 22.1.13 → 22.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lukfel/ng-scaffold",
3
- "version": "22.1.13",
3
+ "version": "22.2.1",
4
4
  "description": "This Angular library provides a basic UI scaffold and services for modern web and mobile apps",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -2,4 +2,5 @@
2
2
  * Check for root style file and add the necessary styles on top
3
3
  */
4
4
  import { Rule } from '@angular-devkit/schematics';
5
- export declare function addStyles(): Rule;
5
+ import type { Schema } from './schema';
6
+ export declare function addStyles(options?: Schema): Rule;
@@ -4,9 +4,58 @@
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.addStyles = addStyles;
7
- function addStyles() {
7
+ const M3_SNIPPET = `
8
+ @use "@lukfel/ng-scaffold/styles" as lf;
9
+ @use '@angular/material' as mat;
10
+
11
+ // Define themes (use Material palettes or create your own)
12
+ // 'theme-type' takes 'light', 'dark' or 'color-scheme' (follows the OS setting)
13
+ $base-theme: (
14
+ primary: mat.$rose-palette,
15
+ tertiary: mat.$blue-palette,
16
+ theme-type: light,
17
+ font-family: 'Roboto'
18
+ );
19
+
20
+ $theme2: (
21
+ primary: mat.$rose-palette,
22
+ tertiary: mat.$blue-palette,
23
+ theme-type: dark
24
+ );
25
+
26
+ // Include themes (use ThemeService to switch between themes)
27
+ @include lf.scaffold-theme-m3($base-theme);
28
+ @include lf.scaffold-colors-m3($theme2, 'theme2');
29
+
30
+ `;
31
+ const M2_SNIPPET = `
32
+ @use "@lukfel/ng-scaffold/styles" as lf;
33
+ @use '@angular/material' as mat;
34
+
35
+ // Define themes (use Material palettes or create your own)
36
+ $base-theme: (
37
+ primary: mat.m2-define-palette(mat.$m2-pink-palette),
38
+ accent: mat.m2-define-palette(mat.$m2-blue-palette),
39
+ warn: mat.m2-define-palette(mat.$m2-red-palette),
40
+ dark: false,
41
+ font-family: 'Roboto'
42
+ );
43
+
44
+ $theme2: (
45
+ primary: mat.m2-define-palette(mat.$m2-pink-palette),
46
+ accent: mat.m2-define-palette(mat.$m2-blue-palette),
47
+ dark: true
48
+ );
49
+
50
+ // Include themes (use ThemeService to switch between themes)
51
+ @include lf.scaffold-theme-m2($base-theme);
52
+ @include lf.scaffold-colors-m2($theme2, 'theme2');
53
+
54
+ `;
55
+ function addStyles(options = {}) {
8
56
  return (tree, context) => {
9
- context.logger.info('[Styles] Searching for root styles ...');
57
+ const useM2 = options.materialVersion === 'm2';
58
+ context.logger.info(`[Styles] Searching for root styles (Material ${useM2 ? '2' : '3'}) ...`);
10
59
  const possiblePaths = ['src/styles.scss', 'src/styles.sass', 'src/styles.css'];
11
60
  const path = possiblePaths.find((p) => tree.exists(p));
12
61
  if (!path) {
@@ -18,32 +67,8 @@ function addStyles() {
18
67
  context.logger.info('[Styles] Styles already added. Skip.');
19
68
  return tree;
20
69
  }
21
- const SNIPPET = `
22
- @use "@lukfel/ng-scaffold/styles" as lf;
23
- @use '@angular/material' as mat;
24
-
25
- // Define themes (use Material palettes or create your own)
26
- $base-theme: (
27
- primary: mat.m2-define-palette(mat.$m2-pink-palette),
28
- accent: mat.m2-define-palette(mat.$m2-blue-palette),
29
- warn: mat.m2-define-palette(mat.$m2-red-palette),
30
- dark: false,
31
- font-family: 'Roboto'
32
- );
33
-
34
- $theme2: (
35
- primary: mat.m2-define-palette(mat.$m2-pink-palette),
36
- accent: mat.m2-define-palette(mat.$m2-blue-palette),
37
- dark: true
38
- );
39
-
40
- // Include themes (use ThemeService to switch between themes)
41
- @include lf.scaffold-theme($base-theme);
42
- @include lf.scaffold-colors($theme2, 'theme2');
43
-
44
- `;
45
70
  const recorder = tree.beginUpdate(path);
46
- recorder.insertLeft(0, SNIPPET);
71
+ recorder.insertLeft(0, useM2 ? M2_SNIPPET : M3_SNIPPET);
47
72
  tree.commitUpdate(recorder);
48
73
  context.logger.info('[Styles] Successfully added.');
49
74
  return tree;
@@ -1 +1 @@
1
- {"version":3,"file":"add-styles.js","sourceRoot":"","sources":["../../../../projects/ng-scaffold/schematics/ng-add/add-styles.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAIH,8BAiDC;AAjDD,SAAgB,SAAS;IACvB,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAE9D,MAAM,aAAa,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAE/E,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC5F,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBnB,CAAC;QAEE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"add-styles.js","sourceRoot":"","sources":["../../../../projects/ng-scaffold/schematics/ng-add/add-styles.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAuDH,8BA0BC;AA5ED,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBlB,CAAC;AAEF,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBlB,CAAC;AAEF,SAAgB,SAAS,CAAC,UAAkB,EAAE;IAC5C,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,KAAK,IAAI,CAAC;QAE/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gDAAgD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;QAE9F,MAAM,aAAa,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAE/E,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC5F,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { Rule } from '@angular-devkit/schematics';
2
- export declare function ngAdd(): Rule;
2
+ import type { Schema } from './schema';
3
+ export declare function ngAdd(options?: Schema): Rule;
@@ -6,7 +6,7 @@ const add_config_1 = require("./add-config");
6
6
  const add_component_1 = require("./add-component");
7
7
  const add_styles_1 = require("./add-styles");
8
8
  const add_template_1 = require("./add-template");
9
- function ngAdd() {
10
- return (0, schematics_1.chain)([(0, add_component_1.addComponent)(), (0, add_config_1.addConfig)(), (0, add_template_1.addTemplate)(), (0, add_styles_1.addStyles)()]);
9
+ function ngAdd(options = {}) {
10
+ return (0, schematics_1.chain)([(0, add_component_1.addComponent)(), (0, add_config_1.addConfig)(), (0, add_template_1.addTemplate)(), (0, add_styles_1.addStyles)(options)]);
11
11
  }
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/ng-scaffold/schematics/ng-add/index.ts"],"names":[],"mappings":";;AAMA,sBAEC;AARD,2DAAyD;AACzD,6CAAyC;AACzC,mDAA+C;AAC/C,6CAAyC;AACzC,iDAA6C;AAE7C,SAAgB,KAAK;IACnB,OAAO,IAAA,kBAAK,EAAC,CAAC,IAAA,4BAAY,GAAE,EAAE,IAAA,sBAAS,GAAE,EAAE,IAAA,0BAAW,GAAE,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/ng-scaffold/schematics/ng-add/index.ts"],"names":[],"mappings":";;AAOA,sBAEC;AATD,2DAAyD;AACzD,6CAAyC;AACzC,mDAA+C;AAC/C,6CAAyC;AACzC,iDAA6C;AAG7C,SAAgB,KAAK,CAAC,UAAkB,EAAE;IACxC,OAAO,IAAA,kBAAK,EAAC,CAAC,IAAA,4BAAY,GAAE,EAAE,IAAA,sBAAS,GAAE,EAAE,IAAA,0BAAW,GAAE,EAAE,IAAA,sBAAS,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type MaterialVersion = 'm3' | 'm2';
2
+ export interface Schema {
3
+ /** Which Angular Material theming API to set up in the global styles. */
4
+ materialVersion?: MaterialVersion;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../projects/ng-scaffold/schematics/ng-add/schema.ts"],"names":[],"mappings":""}
@@ -1,7 +1,22 @@
1
- {
2
- "$schema": "http://json-schema.org/schema",
3
- "$id": "NgAddSchema",
4
- "title": "Ng Add Options",
5
- "type": "object",
6
- "properties": {}
7
- }
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "NgAddSchema",
4
+ "title": "Ng Add Options",
5
+ "type": "object",
6
+ "properties": {
7
+ "materialVersion": {
8
+ "type": "string",
9
+ "description": "Which Angular Material theming API to set up in the global styles.",
10
+ "enum": ["m3", "m2"],
11
+ "default": "m3",
12
+ "x-prompt": {
13
+ "message": "Which Angular Material theming API should be used?",
14
+ "type": "list",
15
+ "items": [
16
+ { "value": "m3", "label": "Material 3 (recommended)" },
17
+ { "value": "m2", "label": "Material 2 (legacy)" }
18
+ ]
19
+ }
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -19,7 +19,7 @@ $lf-default-theme: (
19
19
  // Material requires to split up the mat.all-component-themes and mat.all-component-colors
20
20
  // since mat.all-component-themes should also be imported once, but mat.all-component-colors
21
21
  // can be imported multiple times
22
- @mixin scaffold-theme($theme: $lf-default-theme) {
22
+ @mixin scaffold-theme-m2($theme: $lf-default-theme) {
23
23
  $theme: map-merge($lf-default-theme, $theme);
24
24
 
25
25
  @if(map-get($theme, 'dark') == false) {
@@ -53,7 +53,7 @@ $lf-default-theme: (
53
53
  }
54
54
 
55
55
  // Set M2 colors
56
- @mixin scaffold-colors($theme: $lf-default-theme, $class) {
56
+ @mixin scaffold-colors-m2($theme: $lf-default-theme, $class) {
57
57
  $theme: map-merge($lf-default-theme, $theme);
58
58
 
59
59
  .#{$class} {
@@ -115,6 +115,16 @@ $lf-default-theme: (
115
115
  }
116
116
  }
117
117
 
118
+ // Legacy aliases for apps written before the -m2 suffix existed.
119
+ // These always mean M2; never repoint them at M3.
120
+ @mixin scaffold-theme($theme: $lf-default-theme) {
121
+ @include scaffold-theme-m2($theme);
122
+ }
123
+
124
+ @mixin scaffold-colors($theme: $lf-default-theme, $class) {
125
+ @include scaffold-colors-m2($theme, $class);
126
+ }
127
+
118
128
  // ============================================================================
119
129
  // Material 3 (M3) Theming
120
130
  // ============================================================================
@@ -203,6 +213,7 @@ $lf-default-theme-m3: (
203
213
  }
204
214
 
205
215
  @include shape-variables-m3();
216
+ @include elevation-compat-m3();
206
217
  @include toolbar-color-compat();
207
218
  @include container-color-compat($m2);
208
219
  @include color-variables-m3('body', $m2);
@@ -289,6 +300,21 @@ $lf-default-theme-m3: (
289
300
  }
290
301
  }
291
302
 
303
+ // Elevation backwards compatibility
304
+ // M3 sets no --mat-app-* tokens and Angular emits the elevation fallbacks
305
+ // malformed ("--mat-sys-shadow" with no var()), so .mat-elevation-z* would
306
+ // resolve to an invalid box-shadow. M2's dp scale lines up with M3's six
307
+ // levels at 0, 1, 3, 6, 8 and 12.
308
+ @mixin elevation-compat-m3() {
309
+ :root {
310
+ @each $level, $elevations in (0: (0), 1: (1, 2), 2: (3, 4, 5), 3: (6, 7), 4: (8, 9, 10, 11), 5: (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)) {
311
+ @each $z in $elevations {
312
+ --mat-app-elevation-shadow-level-#{$z}: var(--mat-sys-level#{$level});
313
+ }
314
+ }
315
+ }
316
+ }
317
+
292
318
  // Container colour backwards compatibility
293
319
  // M3 renders FABs and selected chips on a *container* tone, where M2 used the main
294
320
  // hue. Container and foreground are restored as a pair: the container alone would
@@ -1,75 +1,76 @@
1
- :root {
2
- --transition: 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
3
- --border-radius: var(--mat-sys-corner-medium, 4px);
4
-
5
- --loading-overlay-z-index: 1001;
6
-
7
- --header-z-index: 100;
8
- --header-height: 64px;
9
- --header-logo-title-wrapper-max-width: 480px;
10
- --header-logo-size: 40px;
11
- --header-title-font-size: 20px;
12
- --header-subtitle-font-size: 12px;
13
- --header-input-max-width: 480px;
14
- --header-input-border-radius: 28px;
15
- --header-menu-button-max-width: 144px;
16
- --header-menu-img-size: 48px;
17
-
18
- --navbar-z-index: 99;
19
- --navbar-height: 72px;
20
- --navbar-height-mobile: 56px;
21
- --navbar-width: 72px;
22
- --navbar-padding: 4px;
23
- --navbar-item-border-radius: 16px;
24
- --navbar-item-label-font-size: 12px;
25
-
26
- --content-padding: 24px;
27
- --content-padding-mobile: 16px;
28
-
29
- --drawer-width: 208px;
30
- --drawer-z-index: 97;
31
- --drawer-z-index-mobile: 100;
32
-
33
- --footer-height: 100px;
34
- --footer-logo-size: 96px;
35
- --footer-font-size: 12px;
36
-
37
- --content-title-card-z-index: 98;
38
- --content-title-card-height: 80px;
39
- --content-title-card-label-font-size: 24px;
40
- --content-title-card-label-font-size-mobile: 18px;
41
-
42
- --floating-button-z-index: 100;
43
- --floating-button-right: 24px;
44
- --floating-button-bottom: 24px;
45
- --floating-button-min-width: 56px;
46
- --floating-button-label-max-width: 256px;
47
- --floating-button-label-font-size: 16px;
48
-
49
- --bottom-bar-z-index: 98;
50
- --bottom-bar-height: 56px;
51
- --bottom-bar-font-size: 16px;
52
-
53
- --placeholder-icon-size: 96px;
54
- --placeholder-title-font-size: 20px;
55
- --placeholder-message-font-size: 16px;
56
-
57
- --list-item-height: 72px;
58
- --list-item-border-radius: var(--border-radius);
59
- --list-item-sort-icon-size: 16px;
60
- --list-item-avatar-size: 48px;
61
- --list-item-title-width: 200px;
62
- --list-item-title-wrapper-width: 80px;
63
- --list-item-checkbox-width: 40px;
64
-
65
- --notification-max-width: 50vw;
66
- --notification-min-width: 384px;
67
- --notification-min-height: 48px;
68
- --notification-fixed-margin: 24px;
69
- --notification-static-margin: 0 0 16px 0;
70
- --notification-padding: 16px 16px;
71
- --notification-padding-minimal: 8px 16px;
72
- --notification-font-size: 14px;
73
-
74
- --color-gray: rgba(128, 128, 128, 0.8);
75
- }
1
+ :root {
2
+ --transition: 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
3
+ --border-radius: var(--mat-sys-corner-medium, 4px);
4
+
5
+ --loading-overlay-z-index: 1001;
6
+
7
+ --header-z-index: 100;
8
+ --header-height: 64px;
9
+ --header-logo-title-wrapper-max-width: 480px;
10
+ --header-logo-size: 40px;
11
+ --header-title-font-size: 20px;
12
+ --header-subtitle-font-size: 12px;
13
+ --header-input-max-width: 480px;
14
+ --header-input-border-radius: 28px;
15
+ --header-menu-button-max-width: 144px;
16
+ --header-menu-img-size: 48px;
17
+
18
+ --navbar-z-index: 99;
19
+ --navbar-height: 72px;
20
+ --navbar-height-mobile: 56px;
21
+ --navbar-width: 72px;
22
+ --navbar-padding: 4px;
23
+ --navbar-item-border-radius: 16px;
24
+ --navbar-item-label-font-size: 12px;
25
+
26
+ --content-padding: 24px;
27
+ --content-padding-mobile: 16px;
28
+
29
+ --drawer-width: 208px;
30
+ --drawer-z-index: 97;
31
+ --drawer-z-index-mobile: 100;
32
+
33
+ --footer-height: 100px;
34
+ --footer-logo-size: 96px;
35
+ --footer-font-size: 12px;
36
+
37
+ --content-title-card-z-index: 98;
38
+ --content-title-card-height: 80px;
39
+ --content-title-card-label-font-size: 24px;
40
+ --content-title-card-label-font-size-mobile: 18px;
41
+
42
+ --floating-button-z-index: 100;
43
+ --floating-button-right: 24px;
44
+ --floating-button-bottom: 24px;
45
+ --floating-button-snackbar-offset: 56px; // Snackbar surface plus its container margin
46
+ --floating-button-min-width: 56px;
47
+ --floating-button-label-max-width: 256px;
48
+ --floating-button-label-font-size: 16px;
49
+
50
+ --bottom-bar-z-index: 98;
51
+ --bottom-bar-height: 56px;
52
+ --bottom-bar-font-size: 16px;
53
+
54
+ --placeholder-icon-size: 96px;
55
+ --placeholder-title-font-size: 20px;
56
+ --placeholder-message-font-size: 16px;
57
+
58
+ --list-item-height: 72px;
59
+ --list-item-border-radius: var(--border-radius);
60
+ --list-item-sort-icon-size: 16px;
61
+ --list-item-avatar-size: 48px;
62
+ --list-item-title-width: 200px;
63
+ --list-item-title-wrapper-width: 80px;
64
+ --list-item-checkbox-width: 40px;
65
+
66
+ --notification-max-width: 50vw;
67
+ --notification-min-width: 384px;
68
+ --notification-min-height: 48px;
69
+ --notification-fixed-margin: 24px;
70
+ --notification-static-margin: 0 0 16px 0;
71
+ --notification-padding: 16px 16px;
72
+ --notification-padding-minimal: 8px 16px;
73
+ --notification-font-size: 14px;
74
+
75
+ --color-gray: rgba(128, 128, 128, 0.8);
76
+ }
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, EnvironmentProviders, ElementRef, TemplateRef, Type, Signal } from '@angular/core';
2
+ import { InjectionToken, EnvironmentProviders, Signal, ElementRef, TemplateRef, Type } from '@angular/core';
3
3
  import { ComponentType, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
4
4
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
5
5
  import { MatCheckboxChange } from '@angular/material/checkbox';
@@ -251,33 +251,35 @@ declare class ScaffoldComponent {
251
251
  libraryConfig: ScaffoldLibraryConfig | null;
252
252
  private scaffoldService;
253
253
  private breakpointService;
254
+ private snackbarService;
254
255
  private routerService;
255
256
  private overlayService;
256
257
  private route;
257
258
  private document;
258
259
  private logger;
259
260
  private destroyRef;
260
- readonly scrollContainer: _angular_core.Signal<ElementRef<any> | undefined>;
261
- readonly content: _angular_core.Signal<ElementRef<any> | undefined>;
261
+ readonly scrollContainer: Signal<ElementRef<any> | undefined>;
262
+ readonly content: Signal<ElementRef<any> | undefined>;
262
263
  readonly headerButtonClickEvent: _angular_core.OutputEmitterRef<string>;
263
264
  readonly headerInputSubmitEvent: _angular_core.OutputEmitterRef<string>;
264
265
  readonly headerInputChangeEvent: _angular_core.OutputEmitterRef<string>;
265
266
  readonly navbarButtonClickEvent: _angular_core.OutputEmitterRef<string>;
266
267
  readonly floatingButtonClickEvent: _angular_core.OutputEmitterRef<string>;
267
268
  readonly bottomBarButtonClickEvent: _angular_core.OutputEmitterRef<string>;
268
- scaffoldConfig: _angular_core.Signal<ScaffoldConfig | null>;
269
- headerConfig: _angular_core.Signal<HeaderConfig | null>;
270
- navbarConfig: _angular_core.Signal<NavbarConfig | null>;
271
- drawerConfig: _angular_core.Signal<DrawerConfig | null>;
272
- drawerPortal: _angular_core.Signal<ComponentPortal<unknown> | TemplatePortal<unknown> | null | undefined>;
273
- footerConfig: _angular_core.Signal<FooterConfig | null>;
274
- contentTitleCardConfig: _angular_core.Signal<ContentTitleCardConfig | null>;
275
- floatingButtonConfig: _angular_core.Signal<FloatingButtonConfig | null>;
276
- bottomBarConfig: _angular_core.Signal<BottomBarConfig | null>;
277
- routeHistory: _angular_core.Signal<string[] | undefined>;
278
- currentRoute: _angular_core.Signal<string | undefined>;
279
- routeLoading: _angular_core.Signal<boolean | undefined>;
280
- isMobile: _angular_core.Signal<boolean | undefined>;
269
+ scaffoldConfig: Signal<ScaffoldConfig | null>;
270
+ headerConfig: Signal<HeaderConfig | null>;
271
+ navbarConfig: Signal<NavbarConfig | null>;
272
+ drawerConfig: Signal<DrawerConfig | null>;
273
+ drawerPortal: Signal<ComponentPortal<unknown> | TemplatePortal<unknown> | null | undefined>;
274
+ footerConfig: Signal<FooterConfig | null>;
275
+ contentTitleCardConfig: Signal<ContentTitleCardConfig | null>;
276
+ floatingButtonConfig: Signal<FloatingButtonConfig | null>;
277
+ bottomBarConfig: Signal<BottomBarConfig | null>;
278
+ bottomSnackbarOpen: Signal<boolean>;
279
+ routeHistory: Signal<string[] | undefined>;
280
+ currentRoute: Signal<string | undefined>;
281
+ routeLoading: Signal<boolean | undefined>;
282
+ isMobile: Signal<boolean | undefined>;
281
283
  scrollTopPosition: _angular_core.WritableSignal<number>;
282
284
  initialized: _angular_core.WritableSignal<boolean>;
283
285
  private fragmentAnimationFrameId;
@@ -668,8 +670,11 @@ declare class SnackbarService {
668
670
  private readonly SNACKBAR_POSITION_VERTICAL;
669
671
  private readonly actionConfig;
670
672
  private readonly defaultConfig;
673
+ private readonly bottomOpenCount;
674
+ readonly bottomSnackbarOpen: Signal<boolean>;
671
675
  openSnackbar(message: string, closeLabel?: string, config?: MatSnackBarConfig): void;
672
676
  openSnackbarWithAction(message: string, action: string, config?: MatSnackBarConfig): Promise<void>;
677
+ private track;
673
678
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SnackbarService, never>;
674
679
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<SnackbarService>;
675
680
  }