@dereekb/dbx-web 13.6.3 → 13.6.5

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.
@@ -17,6 +17,30 @@ $big-button-height: 46px; // 33% bigger
17
17
  }
18
18
  }
19
19
 
20
+ // Neutral hover/pressed/focus state layer instead of the primary-colored default.
21
+ // Apply to buttons with custom background colors where the primary tint looks wrong.
22
+ .dbx-button-neutral-interaction-color {
23
+ .mdc-button,
24
+ &.mdc-button {
25
+ $neutral: var(--mat-sys-on-surface, #000);
26
+
27
+ --mat-button-text-state-layer-color: #{$neutral};
28
+ --mat-button-text-pressed-state-layer-color: #{$neutral};
29
+ --mat-button-text-focus-state-layer-color: #{$neutral};
30
+ --mat-button-text-ripple-color: color-mix(in srgb, #{$neutral} 12%, transparent);
31
+ --mat-button-protected-state-layer-color: #{$neutral};
32
+ --mat-button-protected-pressed-state-layer-color: #{$neutral};
33
+ --mat-button-protected-focus-state-layer-color: #{$neutral};
34
+ --mat-button-protected-ripple-color: color-mix(in srgb, #{$neutral} 12%, transparent);
35
+ --mat-button-outlined-state-layer-color: #{$neutral};
36
+ --mat-button-outlined-pressed-state-layer-color: #{$neutral};
37
+ --mat-button-outlined-focus-state-layer-color: #{$neutral};
38
+ --mat-button-filled-state-layer-color: #{$neutral};
39
+ --mat-button-filled-pressed-state-layer-color: #{$neutral};
40
+ --mat-button-filled-focus-state-layer-color: #{$neutral};
41
+ }
42
+ }
43
+
20
44
  .dbx-button-wide {
21
45
  .dbx-button {
22
46
  min-width: 120px;
@@ -171,13 +195,14 @@ $big-button-height: 46px; // 33% bigger
171
195
 
172
196
  // icon buttons
173
197
  &.mat-mdc-icon-button.dbx-default {
174
- color: var(--mat-icon-button-icon-color, var(--mat-sys-primary));
198
+ --mat-icon-button-icon-color: var(--dbx-button-icon-color, currentColor);
199
+ color: var(--mat-icon-button-icon-color);
175
200
  }
176
201
 
177
202
  &.mat-mdc-icon-button:not(.dbx-default) {
178
203
  background: none;
179
204
 
180
- --mat-icon-button-icon-color: #{$color-value};
205
+ --mat-icon-button-icon-color: var(--dbx-button-icon-color, #{$color-value});
181
206
  --mat-icon-button-ripple-color: color-mix(in srgb, #{$color-value} 12%, transparent);
182
207
  --mat-icon-button-state-layer-color: #{$color-value};
183
208
  }
@@ -4,15 +4,23 @@ $bar-button-progress-bar-height-default: 5px;
4
4
  > button.dbx-progress-bar-button.mdc-button.mat-mdc-button {
5
5
  overflow: hidden; // clip progress bar to rounded corners
6
6
 
7
+ // normalize icon offset to match spinner button
8
+ --mat-button-text-icon-offset: 0px;
9
+ --mat-button-outlined-icon-offset: 0px;
10
+ --mat-button-protected-icon-offset: 0px;
11
+ --mat-button-filled-icon-offset: 0px;
12
+ --mat-button-tonal-icon-offset: 0px;
13
+
7
14
  &.working {
8
15
  cursor: not-allowed;
9
16
  }
10
17
  &.fullWidth {
11
18
  width: 100%;
12
19
  }
20
+
21
+ // ::ng-deep required for Material's internal .mdc-button__label element
13
22
  > ::ng-deep .mdc-button__label {
14
23
  position: unset; // required so the bar can expand fully
15
-
16
24
  display: flex;
17
25
  align-items: center;
18
26
 
@@ -23,15 +31,55 @@ $bar-button-progress-bar-height-default: 5px;
23
31
  --mat-progress-bar-track-height: var(--dbx-progress-bar-button-height, #{$bar-button-progress-bar-height-default});
24
32
  --mat-progress-bar-active-indicator-height: var(--dbx-progress-bar-button-height, #{$bar-button-progress-bar-height-default});
25
33
  }
34
+ }
35
+
36
+ // icon and text styles — outside ::ng-deep for proper view encapsulation
37
+ mat-icon.mat-button-icon {
38
+ padding-right: 5px;
39
+
40
+ font-size: 1.125rem;
41
+ height: 1.125rem;
42
+ width: 1.125rem;
43
+
44
+ margin-right: var(--mat-button-protected-icon-spacing, 8px);
45
+
46
+ &.is-mat-icon {
47
+ position: relative;
48
+ }
49
+
50
+ &.working {
51
+ opacity: 0;
52
+ transition: opacity 0.3s ease-in-out;
53
+ }
54
+
55
+ &.dbx-icon-no-text {
56
+ padding-right: 0;
57
+ margin-right: 0;
58
+ font-size: var(--mat-icon-button-icon-size, 24px);
59
+ height: var(--mat-icon-button-icon-size, 24px);
60
+ width: var(--mat-icon-button-icon-size, 24px);
61
+ }
62
+ }
63
+
64
+ span {
65
+ transition: opacity 0.3s ease-in-out;
26
66
 
27
- mat-icon {
28
- padding-right: 5px;
29
- &.is-mat-icon {
30
- font-size: 18px;
31
- position: relative;
32
- top: 3px;
33
- }
67
+ &.working {
68
+ opacity: 0;
34
69
  }
35
70
  }
71
+
72
+ // echo overlay icon — centered within the button
73
+ .echo-overlay-icon {
74
+ position: absolute;
75
+ inset: 0;
76
+ margin: 0;
77
+ width: 100%;
78
+ height: 100%;
79
+ display: flex;
80
+ align-items: center;
81
+ justify-content: center;
82
+ opacity: 1;
83
+ }
36
84
  }
37
85
  }
@@ -18,6 +18,8 @@
18
18
  &.mat-mdc-button.mat-mdc-icon-button {
19
19
  // icon button fixes
20
20
  min-width: unset;
21
+ width: var(--mat-icon-button-state-layer-size, 36px);
22
+ padding: 0;
21
23
  --mat-icon-button-icon-size: unset;
22
24
  --mat-text-button-with-icon-horizontal-padding: 0px;
23
25
  --mat-icon-button-state-layer-size: 36px;
@@ -55,12 +57,6 @@
55
57
  }
56
58
  }
57
59
 
58
- // mat-spinners marked with dbx-progress-spinner-custom should allow the stroke to be inherited.
59
- .dbx-progress-spinner-custom.mat-progress-spinner.mat-accent circle,
60
- .dbx-progress-spinner-custom.mat-mdc-progress-spinner.mat-accent circle {
61
- stroke: unset !important;
62
- }
63
-
64
60
  .button-text {
65
61
  opacity: 1;
66
62
  transition: opacity 0.3s ease-in-out;
@@ -89,5 +85,18 @@
89
85
  opacity: 0;
90
86
  }
91
87
  }
88
+
89
+ // echo overlay icon — mirrors the spinner: absolutely positioned, centered in the button
90
+ .echo-overlay-icon {
91
+ position: absolute;
92
+ inset: 0;
93
+ margin: 0;
94
+ width: 100%;
95
+ height: 100%;
96
+ display: flex;
97
+ align-items: center;
98
+ justify-content: center;
99
+ opacity: 1;
100
+ }
92
101
  }
93
102
  }
@@ -153,7 +153,7 @@ $list-item-padded-min-height: 42px;
153
153
  cursor: unset;
154
154
 
155
155
  &:hover {
156
- --mdc-list-list-item-hover-state-layer-opacity: 0;
156
+ --mat-list-list-item-hover-state-layer-opacity: 0;
157
157
  }
158
158
  }
159
159
 
@@ -101,6 +101,24 @@
101
101
  .dbx-fiflex {
102
102
  display: inline-flex !important;
103
103
  }
104
+
105
+ @each $color, $colorConfig in theming.$dbx-theme-colors-main {
106
+ @include define-dbx-color-class($color, map.get($colorConfig, 'color'), map.get($colorConfig, 'contrast'));
107
+ }
108
+
109
+ @each $color, $colorConfig in theming.$dbx-theme-extra-colors-main {
110
+ @include define-dbx-color-class($color, map.get($colorConfig, 'color'), map.get($colorConfig, 'contrast'));
111
+ }
112
+
113
+ @each $color, $colorConfig in theming.$dbx-theme-extra-colors-secondary {
114
+ @include define-dbx-color-class($color, map.get($colorConfig, 'color'), map.get($colorConfig, 'contrast'));
115
+ }
116
+
117
+ // tonal mode: use the vibrant theme color as text instead of the contrast color.
118
+ // Applied via CSS class (not [style.color]) to avoid conflicting with [ngStyle] on buttons.
119
+ .dbx-color-tonal {
120
+ color: var(#{theming.$dbx-bg-color-var});
121
+ }
104
122
  }
105
123
 
106
124
  @mixin define-dbx-color-class($name, $color, $contrast, $swap-bg: false) {
@@ -119,38 +137,20 @@
119
137
  background: color-mix(in srgb, #{theming.$dbx-bg-color} var(#{theming.$dbx-bg-tone-var}), transparent);
120
138
  color: #{theming.$dbx-color};
121
139
  }
122
-
123
- // add the css for the default background color
124
- @if ($name == 'default') {
125
- #{theming.$dbx-color-var}: #{$bg-text};
126
- #{theming.$dbx-bg-color-var}: #{$bg-color};
127
- background: #{theming.$dbx-bg-color};
128
- // color: #{theming.$dbx-color};
129
- }
130
140
  }
131
141
 
132
142
  @mixin color($theme-config) {
133
- @each $color, $colorConfig in theming.$dbx-theme-colors-main {
134
- @include define-dbx-color-class($color, map.get($colorConfig, 'color'), map.get($colorConfig, 'contrast'));
135
- }
136
-
137
- @each $color, $colorConfig in theming.$dbx-theme-extra-colors-main {
138
- @include define-dbx-color-class($color, map.get($colorConfig, 'color'), map.get($colorConfig, 'contrast'));
139
- }
140
-
141
- @each $color, $colorConfig in theming.$dbx-theme-extra-colors-secondary {
142
- @include define-dbx-color-class($color, map.get($colorConfig, 'color'), map.get($colorConfig, 'contrast'));
143
- }
144
-
145
- // tonal mode: use the vibrant theme color as text instead of the contrast color.
146
- // Applied via CSS class (not [style.color]) to avoid conflicting with [ngStyle] on buttons.
147
- .dbx-color-tonal {
148
- color: var(#{theming.$dbx-bg-color-var});
149
- }
143
+ // add the css for the default background color
144
+ $default-config: map.get(theming.$dbx-theme-extra-colors-secondary, 'default');
145
+ #{theming.$dbx-color-var}: #{map.get($default-config, 'contrast')};
146
+ #{theming.$dbx-bg-color-var}: #{map.get($default-config, 'color')};
147
+ background: #{theming.$dbx-bg-color};
150
148
 
151
149
  // material color overrides
152
- // --mdc-text-button-label-text-color: #{theming.$dbx-color-var};
150
+ // - button
151
+ --mat-icon-button-icon-color: #{theming.$dbx-color-var};
153
152
  --mat-button-text-label-text-color: #{theming.$dbx-color-var};
153
+ // - list item
154
154
  --mat-list-list-item-label-text-color: #{theming.$dbx-color-var};
155
155
  --mat-list-list-item-leading-icon-color: #{theming.$dbx-color-var};
156
156
  }
@@ -15,7 +15,7 @@ $dbx-detail-block-big-header-icon-size: 18px;
15
15
 
16
16
  $dbx-step-block-badge-size: 32px;
17
17
  $dbx-step-block-gap: 16px;
18
- $dbx-step-block-padding: 6px;
18
+ $dbx-step-block-padding: 16px;
19
19
  $dbx-step-block-badge-font-size: 14px;
20
20
  $dbx-step-block-badge-icon-size: 18px;
21
21
  $dbx-step-block-header-font-weight: 500;
@@ -121,26 +121,12 @@ $active-background-transparent-color: 0.93;
121
121
  mat-sidenav.mat-drawer {
122
122
  // darken the sidenav background slightly for better contrast with active items
123
123
  --dbx-sidenav-background: color-mix(in srgb, var(--dbx-bg-color-current) 75%, var(--mat-sys-shadow));
124
+ --mat-sidenav-container-text-color: var(--mat-sys-primary-container);
124
125
  background: var(--dbx-sidenav-background);
125
126
 
126
127
  .dbx-anchor-list.mat-mdc-nav-list {
127
128
  --dbx-sidenav-active-accent: color-mix(in srgb, var(--dbx-accent-color) 65%, var(--mat-sys-surface));
128
129
 
129
- --mdc-list-list-item-label-text-color: var(--mat-sys-on-primary-container);
130
- --mdc-list-list-item-supporting-text-color: var(--mat-sys-on-primary-container);
131
- --mdc-list-list-item-leading-icon-color: var(--mat-sys-on-primary-container);
132
-
133
- --mdc-list-list-item-disabled-label-text-color: var(--mat-sys-on-primary-container);
134
- --mdc-list-list-item-disabled-leading-icon-color: var(--mat-sys-on-primary-container);
135
- --mdc-list-list-item-disabled-trailing-icon-color: var(--mat-sys-on-primary-container);
136
-
137
- --mdc-list-list-item-hover-state-layer-color: var(--mat-sys-on-primary-container);
138
- --mdc-list-list-item-focus-state-layer-color: var(--mat-sys-on-primary-container);
139
-
140
- --mdc-list-list-item-hover-label-text-color: color-mix(in srgb, var(--mat-sys-on-primary-container) 80%, transparent);
141
- --mdc-list-list-item-hover-supporting-text-color: color-mix(in srgb, var(--mat-sys-on-primary-container) 80%, transparent);
142
- --mdc-list-list-item-hover-leading-icon-color: color-mix(in srgb, var(--mat-sys-on-primary-container) 80%, transparent);
143
-
144
130
  .dbx-anchor-active {
145
131
  .mat-mdc-list-item {
146
132
  .mat-mdc-list-item-icon {
@@ -161,7 +147,7 @@ $active-background-transparent-color: 0.93;
161
147
  border-left: var(--dbx-sidenav-active-child-item-border-left-width, #{$default-active-border-left-width}) solid var(--dbx-sidenav-active-accent);
162
148
 
163
149
  .mat-mdc-list-item-icon {
164
- --mdc-list-list-item-leading-icon-color: var(--dbx-sidenav-active-accent);
150
+ --mat-list-list-item-leading-icon-color: var(--dbx-sidenav-active-accent);
165
151
  }
166
152
  }
167
153
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-web",
3
- "version": "13.6.3",
3
+ "version": "13.6.5",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "21.2.3",
6
6
  "@angular/common": "21.2.3",
@@ -8,11 +8,11 @@
8
8
  "@angular/forms": "21.2.3",
9
9
  "@angular/material": "21.2.3",
10
10
  "@angular/platform-browser": "21.2.3",
11
- "@dereekb/browser": "13.6.3",
12
- "@dereekb/date": "13.6.3",
13
- "@dereekb/dbx-core": "13.6.3",
14
- "@dereekb/rxjs": "13.6.3",
15
- "@dereekb/util": "13.6.3",
11
+ "@dereekb/browser": "13.6.5",
12
+ "@dereekb/date": "13.6.5",
13
+ "@dereekb/dbx-core": "13.6.5",
14
+ "@dereekb/rxjs": "13.6.5",
15
+ "@dereekb/util": "13.6.5",
16
16
  "@ngbracket/ngx-layout": "^21.0.0",
17
17
  "@ngrx/component-store": "^21.0.0",
18
18
  "@ngrx/effects": "^21.0.0",
@@ -503,6 +503,37 @@ declare class DbxMapboxInjectionStoreInjectionBlockDirective {
503
503
  */
504
504
  declare function provideMapboxInjectionStoreIfParentIsUnavailable(): Provider;
505
505
 
506
+ declare class DbxMapboxConfig {
507
+ readonly defaultStyle?: MapOptions['style'];
508
+ readonly defaultZoom?: MapboxZoomLevel;
509
+ readonly defaultCenter?: LatLngPointInput;
510
+ readonly defaultStoreRefreshPeriod?: number;
511
+ /**
512
+ * Width to use for the mapbox layout drawer (mat-sidenav).
513
+ *
514
+ * Overrides the `--mat-sidenav-container-width` CSS token on the layout component.
515
+ * Defaults to 'auto' so the drawer width is determined by its content rather than
516
+ * the M3 default of 360px.
517
+ */
518
+ readonly drawerWidth?: string;
519
+ }
520
+ declare const DEFAULT_MAPBOX_STYLE: KnownMapboxStyle;
521
+ declare const DEFAULT_MAPBOX_CENTER: LatLngPointInput;
522
+ declare const DEFAULT_MAPBOX_ZOOM: MapboxZoomLevel;
523
+ declare const DEFAULT_MAPBOX_LAYOUT_DRAWER_WIDTH = "auto";
524
+ declare const DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD: Milliseconds;
525
+ declare class DbxMapboxService {
526
+ private readonly _config;
527
+ get defaultStyle(): string | MapboxGl.StyleSpecification;
528
+ get defaultZoom(): MapboxZoomLevel;
529
+ get defaultCenter(): LatLngPointInput;
530
+ get drawerWidth(): string;
531
+ get mapboxMapStoreTimerRefreshPeriod(): number;
532
+ initializationOptions(): Partial<MapOptions>;
533
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxMapboxService, never>;
534
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbxMapboxService>;
535
+ }
536
+
506
537
  type DbxMapboxLayoutSide = 'left' | 'right';
507
538
  type DbxMapboxLayoutMode = 'side' | 'push';
508
539
  /**
@@ -513,6 +544,7 @@ type DbxMapboxLayoutMode = 'side' | 'push';
513
544
  * Requires a TwoColumnsContextStore to be provided.
514
545
  */
515
546
  declare class DbxMapboxLayoutComponent implements OnInit, OnDestroy {
547
+ readonly dbxMapboxService: DbxMapboxService;
516
548
  readonly dbxMapboxMapStore: DbxMapboxMapStore;
517
549
  private readonly _viewResized;
518
550
  private readonly _refreshContentMargins;
@@ -564,27 +596,6 @@ declare class DbxMapboxLayoutVirtualResizeSyncComponent {
564
596
  static ɵdir: i0.ɵɵDirectiveDeclaration<DbxMapboxLayoutVirtualResizeSyncComponent, "[dbxMapboxLayoutVirtualResizeSync]", never, {}, {}, never, never, true, never>;
565
597
  }
566
598
 
567
- declare class DbxMapboxConfig {
568
- readonly defaultStyle?: MapOptions['style'];
569
- readonly defaultZoom?: MapboxZoomLevel;
570
- readonly defaultCenter?: LatLngPointInput;
571
- readonly defaultStoreRefreshPeriod?: number;
572
- }
573
- declare const DEFAULT_MAPBOX_STYLE: KnownMapboxStyle;
574
- declare const DEFAULT_MAPBOX_CENTER: LatLngPointInput;
575
- declare const DEFAULT_MAPBOX_ZOOM: MapboxZoomLevel;
576
- declare const DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD: Milliseconds;
577
- declare class DbxMapboxService {
578
- private readonly _config;
579
- get defaultStyle(): string | MapboxGl.StyleSpecification;
580
- get defaultZoom(): MapboxZoomLevel;
581
- get defaultCenter(): LatLngPointInput;
582
- get mapboxMapStoreTimerRefreshPeriod(): number;
583
- initializationOptions(): Partial<MapOptions>;
584
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxMapboxService, never>;
585
- static ɵprov: i0.ɵɵInjectableDeclaration<DbxMapboxService>;
586
- }
587
-
588
599
  /**
589
600
  * Directive that configures a MapComponent with content from DbxMapboxService. Connects a host MapService to a parent DbxMapboxMapStore if available.
590
601
  */
@@ -774,5 +785,5 @@ interface DbxMapboxEnvironmentOptions extends DbxMapboxConfig {
774
785
  */
775
786
  type DbxMapboxOptions = DbxMapboxEnvironmentOptions;
776
787
 
777
- export { DEFAULT_MAPBOX_CENTER, DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD, DEFAULT_MAPBOX_STYLE, DEFAULT_MAPBOX_ZOOM, DbxMapboxChangeService, DbxMapboxConfig, DbxMapboxInjectionComponent, DbxMapboxInjectionStore, DbxMapboxInjectionStoreInjectionBlockDirective, DbxMapboxInjectionStoreProviderBlock, DbxMapboxLayoutComponent, DbxMapboxLayoutDrawerComponent, DbxMapboxLayoutVirtualResizeSyncComponent, DbxMapboxMapDirective, DbxMapboxMapStore, DbxMapboxMapStoreInjectionBlockDirective, DbxMapboxMapStoreProviderBlock, DbxMapboxMarkerComponent, DbxMapboxMarkersComponent, DbxMapboxMenuComponent, DbxMapboxModule, DbxMapboxService, KNOWN_MAPBOX_STYLES, MAPBOX_MAX_ZOOM_LEVEL, MAPBOX_MIN_ZOOM_LEVEL, dbxMapboxColoredDotStyle, filterByMapboxViewportBound, mapboxViewportBoundFunction, mapboxZoomLevel, provideDbxMapbox, provideMapboxInjectionStoreIfParentIsUnavailable, provideMapboxStoreIfParentIsUnavailable, updateDbxMapboxMapInjectionStoreStateWithInjectionConfig, updateDbxMapboxMapInjectionStoreStateWithRemovedKey };
788
+ export { DEFAULT_MAPBOX_CENTER, DEFAULT_MAPBOX_LAYOUT_DRAWER_WIDTH, DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD, DEFAULT_MAPBOX_STYLE, DEFAULT_MAPBOX_ZOOM, DbxMapboxChangeService, DbxMapboxConfig, DbxMapboxInjectionComponent, DbxMapboxInjectionStore, DbxMapboxInjectionStoreInjectionBlockDirective, DbxMapboxInjectionStoreProviderBlock, DbxMapboxLayoutComponent, DbxMapboxLayoutDrawerComponent, DbxMapboxLayoutVirtualResizeSyncComponent, DbxMapboxMapDirective, DbxMapboxMapStore, DbxMapboxMapStoreInjectionBlockDirective, DbxMapboxMapStoreProviderBlock, DbxMapboxMarkerComponent, DbxMapboxMarkersComponent, DbxMapboxMenuComponent, DbxMapboxModule, DbxMapboxService, KNOWN_MAPBOX_STYLES, MAPBOX_MAX_ZOOM_LEVEL, MAPBOX_MIN_ZOOM_LEVEL, dbxMapboxColoredDotStyle, filterByMapboxViewportBound, mapboxViewportBoundFunction, mapboxZoomLevel, provideDbxMapbox, provideMapboxInjectionStoreIfParentIsUnavailable, provideMapboxStoreIfParentIsUnavailable, updateDbxMapboxMapInjectionStoreStateWithInjectionConfig, updateDbxMapboxMapInjectionStoreStateWithRemovedKey };
778
789
  export type { DbxMapboxClickEvent, DbxMapboxEnvironmentOptions, DbxMapboxInjectionConfig, DbxMapboxInjectionKey, DbxMapboxLayoutMode, DbxMapboxLayoutSide, DbxMapboxMapInjectionStoreState, DbxMapboxMarginCalculationSizing, DbxMapboxMarker, DbxMapboxMarkerDisplayConfig, DbxMapboxMarkerFactory, DbxMapboxMarkerPresentation, DbxMapboxMarkerSize, DbxMapboxOptions, DbxMapboxStoreBoundRefreshSettings, DbxMapboxStoreBoundRefreshType, DbxMapboxStoreState, FilterMapboxBoundConfig, FilterMapboxBoundReadItemValueFunction, KnownMapboxStyle, MapboxBearing, MapboxEaseTo, MapboxEaseToOptions, MapboxEaseToPositionOptions, MapboxEventData, MapboxFitBounds, MapboxFitBoundsOptions, MapboxFitPositions, MapboxFlyTo, MapboxFlyToOptions, MapboxFlyToPositionOptions, MapboxJumpTo, MapboxJumpToPositionOptions, MapboxMapLifecycleState, MapboxMapMoveState, MapboxMapRotateState, MapboxMapZoomState, MapboxPitch, MapboxResetNorth, MapboxResetNorthPitch, MapboxRotateTo, MapboxSetStyleOptions, MapboxSnapToNorth, MapboxStyleConfig, MapboxTileSize, MapboxViewportBoundFunction, MapboxViewportBoundFunctionConfig, MapboxViewportBoundFunctionInput, MapboxViewportBoundFunctionItem, MapboxViewportBoundFunctionItemValue, MapboxZoomLevel, MapboxZoomLevelRange, ProvideDbxMapboxConfig, StringMapboxListenerPair, TypedMapboxListenerPair };
@@ -1,5 +1,5 @@
1
1
  import * as _dereekb_dbx_core from '@dereekb/dbx-core';
2
- import { DbxActionWorkOrWorkProgress, DbxActionWorkProgress, DbxActionContextStoreSourceInstance, DbxActionContextSourceReference, DbxActionSuccessHandlerFunction, AbstractTransitionWatcherDirective, AbstractDbxButtonDirective, AuthUserIdentifier, DbxInjectionComponentConfig, SegueRef, ClickableAnchor, SegueRefOrSegueRefRouterLink, DbxButtonWorking, SimpleStorageAccessorFactory, StorageAccessor, DbxButtonDisplay, AbstractDbxAnchorDirective, ClickableIconAnchorLink, ClickableAnchorLink, DbxInjectionTemplateConfig, ClickableAnchorLinkTree, ExpandedClickableAnchorLinkTree, AbstractTransitionDirective, ClickableAnchorLinkSegueRef, AbstractIfDirective, AbstractDbxActionValueGetterDirective, FilterSourceDirective, ClickablePartialFilterPreset, AbstractDbxActionHandlerDirective, ClickableFilterPresetOrPartialPreset, ClickableFilterPreset, DbxButtonInterceptor, DbxButton } from '@dereekb/dbx-core';
2
+ import { DbxActionWorkOrWorkProgress, DbxActionWorkProgress, DbxActionContextStoreSourceInstance, DbxActionContextSourceReference, DbxActionSuccessHandlerFunction, AbstractTransitionWatcherDirective, AbstractDbxButtonDirective, AuthUserIdentifier, DbxInjectionComponentConfig, SegueRef, ClickableAnchor, SegueRefOrSegueRefRouterLink, DbxButtonWorking, DbxButtonEcho, SimpleStorageAccessorFactory, StorageAccessor, DbxButtonDisplay, AbstractDbxAnchorDirective, ClickableIconAnchorLink, ClickableAnchorLink, DbxInjectionTemplateConfig, ClickableAnchorLinkTree, ExpandedClickableAnchorLinkTree, AbstractTransitionDirective, ClickableAnchorLinkSegueRef, AbstractIfDirective, AbstractDbxActionValueGetterDirective, FilterSourceDirective, ClickablePartialFilterPreset, AbstractDbxActionHandlerDirective, ClickableFilterPresetOrPartialPreset, ClickableFilterPreset, DbxButtonInterceptor, DbxButton } from '@dereekb/dbx-core';
3
3
  import * as _angular_core from '@angular/core';
4
4
  import { Signal, ElementRef, AfterViewInit, InjectionToken, Type, OnInit, OnDestroy, ViewContainerRef, Provider, Injector, TrackByFunction, OutputEmitterRef, OutputRef, EnvironmentProviders, TemplateRef } from '@angular/core';
5
5
  import { ProgressBarMode } from '@angular/material/progress-bar';
@@ -769,6 +769,10 @@ declare class DbxActionModule {
769
769
  * Lightweight button that renders as either an icon-only Material icon button or a text button
770
770
  * with an icon prefix, depending on whether text is provided.
771
771
  *
772
+ * @deprecated Use `dbx-button` instead. For icon-only buttons use `<dbx-button icon="settings" iconOnly>`.
773
+ * For icon+text buttons use `<dbx-button icon="settings" text="Label">`. The `dbx-button` component
774
+ * supports all the same inputs plus working/loading states, colors, and button style variants.
775
+ *
772
776
  * @example
773
777
  * ```html
774
778
  * <dbx-icon-button icon="settings" (buttonClick)="openSettings()"></dbx-icon-button>
@@ -785,7 +789,7 @@ declare class DbxIconButtonComponent extends AbstractDbxButtonDirective {
785
789
  }
786
790
 
787
791
  /**
788
- * @deprecated import DbxIconButtonComponent directly instead.
792
+ * @deprecated Use `dbx-button` instead of `dbx-icon-button`. See {@link DbxIconButtonComponent} for migration guidance.
789
793
  */
790
794
  declare class DbxIconButtonModule {
791
795
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxIconButtonModule, never>;
@@ -4943,6 +4947,17 @@ interface DbxProgressButtonConfig {
4943
4947
  * Especially important for icon-only buttons that lack visible text.
4944
4948
  */
4945
4949
  readonly ariaLabel?: Maybe<string>;
4950
+ /**
4951
+ * Active button echo. When set, the button's text/icon fade out (preserving width)
4952
+ * and a centered echo icon overlay appears, mirroring the spinner working animation.
4953
+ */
4954
+ readonly buttonEcho?: Maybe<DbxButtonEcho>;
4955
+ /**
4956
+ * Whether the button has meaningful text or projected content to display alongside the icon.
4957
+ * When explicitly `false`, the button renders the icon without text-mode margins/padding,
4958
+ * centering the icon properly. When `true` or `undefined`, the button renders the text area normally.
4959
+ */
4960
+ readonly hasTextContent?: Maybe<boolean>;
4946
4961
  }
4947
4962
  /**
4948
4963
  * Configuration for the icon displayed inside a progress button.
@@ -5014,6 +5029,14 @@ declare abstract class AbstractProgressButtonDirective {
5014
5029
  readonly buttonTypeAttributeSignal: Signal<Maybe<string>>;
5015
5030
  readonly buttonDisabledSignal: Signal<Maybe<boolean>>;
5016
5031
  readonly showProgressSignal: Signal<boolean>;
5032
+ /**
5033
+ * Whether a button echo overlay is active (iconOnly echo mode).
5034
+ */
5035
+ readonly echoActiveSignal: Signal<boolean>;
5036
+ /**
5037
+ * Whether button content should be hidden via opacity (working spinner or echo overlay active).
5038
+ */
5039
+ readonly hideContentSignal: Signal<boolean>;
5017
5040
  /**
5018
5041
  * When true, the click handler will not call `stopImmediatePropagation()`,
5019
5042
  * allowing the click event to continue bubbling. Needed for components like
@@ -5063,7 +5086,7 @@ declare class DbxProgressSpinnerButtonComponent extends AbstractProgressButtonDi
5063
5086
  readonly showTextButtonIconSignal: _angular_core.Signal<false | Maybe<_dereekb_dbx_web.DbxProgressButtonIcon>>;
5064
5087
  readonly showIconSignal: _angular_core.Signal<boolean | _dereekb_util.MaybeNot>;
5065
5088
  readonly customSpinnerStyleSignal: _angular_core.Signal<{
5066
- stroke: string;
5089
+ '--mat-progress-spinner-active-indicator-color': string;
5067
5090
  } | undefined>;
5068
5091
  readonly customSpinnerStyleClassSignal: _angular_core.Signal<{
5069
5092
  'dbx-progress-spinner-custom': boolean;
@@ -5126,6 +5149,12 @@ declare function provideDbxProgressButtonGlobalConfig(config: DbxProgressButtonG
5126
5149
  * ```
5127
5150
  */
5128
5151
  declare class DbxButtonComponent extends AbstractDbxButtonDirective {
5152
+ /**
5153
+ * Whether the host element has projected content (checked at construction time,
5154
+ * before Angular moves the nodes for content projection).
5155
+ */
5156
+ private readonly _hasProjectedContent;
5157
+ constructor();
5129
5158
  readonly bar: _angular_core.InputSignalWithTransform<boolean, Maybe<boolean | "">>;
5130
5159
  readonly type: _angular_core.InputSignal<Maybe<DbxButtonType>>;
5131
5160
  readonly buttonStyle: _angular_core.InputSignal<Maybe<DbxButtonStyle>>;