@cute-widgets/base 20.0.3 → 20.0.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.
Files changed (72) hide show
  1. package/CHANGELOG.md +31 -4
  2. package/abstract/index.d.ts +13 -4
  3. package/button/index.d.ts +47 -24
  4. package/button-toggle/index.d.ts +8 -4
  5. package/card/index.d.ts +9 -6
  6. package/collapse/index.d.ts +49 -48
  7. package/core/directives/index.d.ts +1 -31
  8. package/core/index.d.ts +41 -28
  9. package/core/interfaces/index.d.ts +1 -1
  10. package/core/layout/index.d.ts +40 -27
  11. package/core/nav/index.d.ts +1 -2
  12. package/dialog/index.d.ts +81 -57
  13. package/expansion/index.d.ts +5 -18
  14. package/fesm2022/cute-widgets-base-abstract.mjs +13 -8
  15. package/fesm2022/cute-widgets-base-abstract.mjs.map +1 -1
  16. package/fesm2022/cute-widgets-base-button-toggle.mjs +36 -29
  17. package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -1
  18. package/fesm2022/cute-widgets-base-button.mjs +169 -104
  19. package/fesm2022/cute-widgets-base-button.mjs.map +1 -1
  20. package/fesm2022/cute-widgets-base-card.mjs +46 -29
  21. package/fesm2022/cute-widgets-base-card.mjs.map +1 -1
  22. package/fesm2022/cute-widgets-base-chips.mjs +6 -18
  23. package/fesm2022/cute-widgets-base-chips.mjs.map +1 -1
  24. package/fesm2022/cute-widgets-base-collapse.mjs +114 -126
  25. package/fesm2022/cute-widgets-base-collapse.mjs.map +1 -1
  26. package/fesm2022/cute-widgets-base-core-directives.mjs +4 -72
  27. package/fesm2022/cute-widgets-base-core-directives.mjs.map +1 -1
  28. package/fesm2022/cute-widgets-base-core-interfaces.mjs.map +1 -1
  29. package/fesm2022/cute-widgets-base-core-layout.mjs +76 -40
  30. package/fesm2022/cute-widgets-base-core-layout.mjs.map +1 -1
  31. package/fesm2022/cute-widgets-base-core-nav.mjs +1 -2
  32. package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -1
  33. package/fesm2022/cute-widgets-base-core-theming.mjs +1 -1
  34. package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -1
  35. package/fesm2022/cute-widgets-base-core.mjs +77 -41
  36. package/fesm2022/cute-widgets-base-core.mjs.map +1 -1
  37. package/fesm2022/cute-widgets-base-dialog.mjs +152 -117
  38. package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -1
  39. package/fesm2022/cute-widgets-base-expansion.mjs +19 -13
  40. package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -1
  41. package/fesm2022/cute-widgets-base-list.mjs +2 -2
  42. package/fesm2022/cute-widgets-base-list.mjs.map +1 -1
  43. package/fesm2022/cute-widgets-base-menu.mjs +5 -27
  44. package/fesm2022/cute-widgets-base-menu.mjs.map +1 -1
  45. package/fesm2022/cute-widgets-base-navbar.mjs +88 -42
  46. package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -1
  47. package/fesm2022/cute-widgets-base-paginator.mjs +13 -11
  48. package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -1
  49. package/fesm2022/cute-widgets-base-radio.mjs +1 -2
  50. package/fesm2022/cute-widgets-base-radio.mjs.map +1 -1
  51. package/fesm2022/cute-widgets-base-select.mjs +2 -2
  52. package/fesm2022/cute-widgets-base-select.mjs.map +1 -1
  53. package/fesm2022/cute-widgets-base-sidenav.mjs +31 -30
  54. package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -1
  55. package/fesm2022/cute-widgets-base-snack-bar.mjs +2 -2
  56. package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -1
  57. package/fesm2022/cute-widgets-base-sort.mjs +60 -257
  58. package/fesm2022/cute-widgets-base-sort.mjs.map +1 -1
  59. package/fesm2022/cute-widgets-base-table.mjs +6 -3
  60. package/fesm2022/cute-widgets-base-table.mjs.map +1 -1
  61. package/fesm2022/cute-widgets-base-tabs.mjs +86 -61
  62. package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -1
  63. package/fesm2022/cute-widgets-base.mjs +3 -1
  64. package/fesm2022/cute-widgets-base.mjs.map +1 -1
  65. package/navbar/index.d.ts +30 -9
  66. package/package.json +6 -5
  67. package/paginator/index.d.ts +6 -17
  68. package/radio/index.d.ts +0 -1
  69. package/sidenav/index.d.ts +1 -2
  70. package/sort/index.d.ts +22 -135
  71. package/table/index.d.ts +8 -8
  72. package/tabs/index.d.ts +35 -14
package/CHANGELOG.md CHANGED
@@ -1,12 +1,39 @@
1
- ## Version 20.0.3
1
+ ## Changes in version 20.0.5 (2026-02-15)
2
2
 
3
- * Cosmetic changes
3
+ ### Fixes
4
+ * Fixed incorrect display of disabled states in the `CuteButtonToggle` and `CuteButtonToggleGroup` components.
5
+ * Auto scrolling has been fixed for new dynamic `CuteTab` in the vertical header positions.
4
6
 
5
- ## Version 20.0.2
7
+ ### Improvements
8
+ * Changing a page number in `CutePaginator` now works more smoothly.
9
+ * `CuteDialog` is now more compatible with Angular Material's dialog component.
10
+ * `CuteTabs` and `CuteCollapse` now work with native CSS animations.
11
+
12
+ ## Changes in version 20.0.4 (2026-01-30)
13
+
14
+ ### Fixes:
15
+ * The internal markup of `CuteCardBody` and `CuteCardSubtitle` has been changed.
16
+ * The type of `sort` parameter in `CuteTableDataSource#sortData` has been changed to `Sort` interface.
17
+
18
+ ### Improvements:
19
+ * Add `wrapLabel` input property to the `CuteButton` component. With default value of _false_.
20
+ * `CuteSort` implements the `Sort` interface now and uses native CSS animation.
21
+ * `CuteCardImage` can now be positioned by statically specifying the corresponding attribute: `[cute-card-top-image]`, `[cute-card-bottom-image]`, or `[cute-card-float-image]`.
22
+ * `CutePaginator` and `CuteSelect` are more responsive now.
23
+ * `CuteChips` have become more cute.
24
+ * The `bsBreakpoints` object has been completely redesigned.
25
+
26
+ ## Changes in version 20.0.3 (2026-01-12)
27
+
28
+ * Multiple cosmetic changes.
29
+
30
+ ## Changes in version 20.0.2 (2025-12-30)
6
31
 
7
32
  * `cute-select` now uses native CSS animation.
8
33
 
9
- ## Version 20.0.1
34
+ ## Changes in version 20.0.1 (2025-12-26)
35
+
36
+ * Small changes.
10
37
 
11
38
  ## Version 20.0.0
12
39
 
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ElementRef, InjectionToken, OnInit, AfterViewInit, AfterContentInit, OnChanges, OnDestroy, ChangeDetectorRef, Renderer2, SimpleChanges, Signal, EventEmitter } from '@angular/core';
2
+ import { ElementRef, InjectionToken, OnInit, AfterViewInit, AfterContentInit, OnChanges, OnDestroy, ChangeDetectorRef, Renderer2, DestroyRef, SimpleChanges, Signal, EventEmitter } from '@angular/core';
3
3
  import { BooleanInput } from '@angular/cdk/coercion';
4
4
  import { Observable, Subject } from 'rxjs';
5
5
  import { RichThemeColor, LayoutBreakpoint } from '@cute-widgets/base/core';
@@ -52,6 +52,7 @@ declare abstract class CuteBaseControl implements CuteWidget, OnInit, AfterViewI
52
52
  protected readonly _elementRef: ElementRef<HTMLElement>;
53
53
  protected readonly _changeDetectorRef: ChangeDetectorRef;
54
54
  protected readonly _renderer: Renderer2;
55
+ protected readonly _destroyRef: DestroyRef;
55
56
  /** Owner widget */
56
57
  readonly owner: CuteWidget | null;
57
58
  /**
@@ -190,6 +191,8 @@ declare abstract class CuteBaseControl implements CuteWidget, OnInit, AfterViewI
190
191
  disable(): void;
191
192
  /** Explicitly marks the view as changed so that it can be checked again. */
192
193
  markForCheck(): void;
194
+ /** Checks this view and its children. */
195
+ detectChanges(): void;
193
196
  /** Toggles the `disabled` state of the component */
194
197
  toggleDisabled(): void;
195
198
  ngOnInit(): void;
@@ -213,10 +216,16 @@ declare abstract class CuteBaseControl implements CuteWidget, OnInit, AfterViewI
213
216
  */
214
217
 
215
218
  interface Expandable {
219
+ /** Id of the `Expandable` component. */
220
+ id?: string;
221
+ /** Changes the expanded state of the `Expandable` component. */
222
+ expanded: boolean | Signal<boolean>;
223
+ /** Sets the expanded state of the `Expandable` component to _true_. */
216
224
  open(): void;
225
+ /** Sets the expanded state of the `Expandable` component to _false_. */
217
226
  close(): void;
227
+ /** Toggles the expanded state of the `Expandable` component. */
218
228
  toggle(): void;
219
- expanded: boolean | Signal<boolean>;
220
229
  }
221
230
 
222
231
  /**
@@ -307,13 +316,13 @@ declare abstract class CuteInputDropdownControl extends CuteInputControl impleme
307
316
 
308
317
  declare abstract class CuteLayoutControl extends CuteBaseControl {
309
318
  protected breakpointObserver: BreakpointObserver;
310
- private _subscription;
319
+ private _bpSubscription;
311
320
  /** Returns CSS-class list */
312
321
  protected get classList(): string;
313
322
  /** Clears floated content within a container */
314
323
  clearfix: boolean;
315
324
  /** Symbolic name of the screen minimum width which determines how the responsive layout behaves across device or viewport sizes. */
316
- breakpoint: LayoutBreakpoint | undefined;
325
+ breakpoint: LayoutBreakpoint | LayoutBreakpoint[] | undefined;
317
326
  /** Event that is raised when the width of viewport is changed and crosses the size of `breakpoint`'s value. */
318
327
  breakpointState: EventEmitter<BreakpointState>;
319
328
  ngOnChanges(changes: SimpleChanges): void;
package/button/index.d.ts CHANGED
@@ -1,24 +1,13 @@
1
+ import * as _cute_widgets_base_button from '@cute-widgets/base/button';
1
2
  import * as i0 from '@angular/core';
2
- import { DoCheck, NgZone, InjectionToken, QueryList } from '@angular/core';
3
+ import { DoCheck, NgZone, InjectionToken, QueryList, EventEmitter } from '@angular/core';
3
4
  import { CuteFocusableControl } from '@cute-widgets/base/abstract';
4
5
  import { RelativeSize7, ThemeColor, toThemeColor } from '@cute-widgets/base/core';
5
6
  import { Ripple } from '@cute-widgets/base/core/ripple';
6
- import { RelativeSize5 } from '@cute-widgets/base/core/types';
7
7
  import { BooleanInput } from '@angular/cdk/coercion';
8
+ import { RelativeSize5 } from '@cute-widgets/base/core/types';
8
9
  import * as i1 from '@angular/common';
9
10
 
10
- /**
11
- * @license Apache-2.0
12
- *
13
- * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
14
- *
15
- * You may not use this file except in compliance with the License
16
- * that can be found at http://www.apache.org/licenses/LICENSE-2.0
17
- *
18
- * This code is a modification of the `@angular/material` original
19
- * code licensed under MIT-style License (https://angular.dev/license).
20
- */
21
-
22
11
  /** Button's appearance style */
23
12
  type CuteButtonStyle = "base-button" | "flat-button" | "outline-button" | "raised-button" | "pill-button" | "circle-button" | "close-button" | "icon-button" | "fab-button"
24
13
  /** Appearance styles for Angular Material compatibility */
@@ -29,6 +18,8 @@ interface CuteButtonConfig {
29
18
  disabledInteractive?: boolean;
30
19
  /** Default palette color to apply to buttons. */
31
20
  color?: ThemeColor;
21
+ /** Whether to enable text wrapping. */
22
+ wrapText?: boolean;
32
23
  }
33
24
  /** Injection token that can be used to provide the default options the button component. */
34
25
  declare const CUTE_BUTTON_CONFIG: InjectionToken<CuteButtonConfig>;
@@ -43,18 +34,19 @@ declare abstract class CuteButtonBase extends CuteFocusableControl implements Do
43
34
  private _destroyed$;
44
35
  protected readonly _ripple: Ripple;
45
36
  protected readonly _ngZone: NgZone;
37
+ protected readonly _group: _cute_widgets_base_button.CuteButtonGroup | null;
46
38
  protected readonly _isAnchor: boolean;
47
39
  private _icons;
48
- /** Button's appearance style in the following format: `{style}-button` */
40
+ /** Button's appearance style in the following format: `{style}-button`. */
49
41
  get inputButtonStyle(): CuteButtonStyle;
50
42
  set inputButtonStyle(value: CuteButtonStyle | undefined | "");
51
43
  private _inputButtonStyle;
52
44
  private _buttonStyle;
53
- /** Relative size of the Button */
45
+ /** Relative size of the Button. */
54
46
  magnitude: RelativeSize7 | undefined;
55
- /** Whether to disable text wrapping */
56
- nowrap: boolean;
57
- /** Whether to disable the ripple effect on button clicking */
47
+ /** Whether to enable text wrapping. */
48
+ wrapText: boolean;
49
+ /** Whether to disable the ripple effect on button clicking. */
58
50
  get disableRipple(): boolean;
59
51
  set disableRipple(value: boolean);
60
52
  /** `aria-disabled` value of the button. */
@@ -95,7 +87,7 @@ declare abstract class CuteButtonBase extends CuteFocusableControl implements Do
95
87
  protected generateId(): string;
96
88
  protected _getTabIndex(): number | undefined;
97
89
  private _setupAsAnchor;
98
- protected setDisabledState(newState: boolean): boolean;
90
+ protected setDisabledState(newState: BooleanInput): boolean;
99
91
  private _savedTabIndex;
100
92
  protected _getAriaDisabled(): boolean | null;
101
93
  protected _getDisabledAttribute(): true | null;
@@ -111,7 +103,8 @@ declare abstract class CuteButtonBase extends CuteFocusableControl implements Do
111
103
  private _onMouseEvent;
112
104
  private _launchRipple;
113
105
  static ɵfac: i0.ɵɵFactoryDeclaration<CuteButtonBase, never>;
114
- static ɵdir: i0.ɵɵDirectiveDeclaration<CuteButtonBase, never, never, { "inputButtonStyle": { "alias": "cuteButton"; "required": false; }; "magnitude": { "alias": "magnitude"; "required": false; }; "nowrap": { "alias": "nowrap"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "ariaDisabled": { "alias": "aria-disabled"; "required": false; }; "withAriaExpandedIndicator": { "alias": "withAriaExpandedIndicator"; "required": false; }; "disabledInteractive": { "alias": "disabledInteractive"; "required": false; }; "visuallyHiddenLabel": { "alias": "visuallyHiddenLabel"; "required": false; }; }, {}, ["_icons"], never, true, never>;
106
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteButtonBase, never, never, { "inputButtonStyle": { "alias": "cuteButton"; "required": false; }; "magnitude": { "alias": "magnitude"; "required": false; }; "wrapText": { "alias": "wrapText"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "ariaDisabled": { "alias": "aria-disabled"; "required": false; }; "withAriaExpandedIndicator": { "alias": "withAriaExpandedIndicator"; "required": false; }; "disabledInteractive": { "alias": "disabledInteractive"; "required": false; }; "visuallyHiddenLabel": { "alias": "visuallyHiddenLabel"; "required": false; }; }, {}, ["_icons"], never, true, never>;
107
+ static ngAcceptInputType_wrapText: unknown;
115
108
  static ngAcceptInputType_ariaDisabled: unknown;
116
109
  static ngAcceptInputType_withAriaExpandedIndicator: unknown;
117
110
  static ngAcceptInputType_disabledInteractive: unknown;
@@ -133,10 +126,17 @@ declare class CuteButton extends CuteButtonBase {
133
126
  * that can be found at http://www.apache.org/licenses/LICENSE-2.0
134
127
  */
135
128
 
129
+ /**
130
+ * Injection token that can be used to reference instances of `CuteButtonGroup`.
131
+ * It serves as an alternative token to the actual `CuteButtonGroup` class which
132
+ * could cause unnecessary retention of the class and its component metadata.
133
+ */
134
+ declare const CUTE_BUTTON_GROUP: InjectionToken<CuteButtonGroup>;
136
135
  /**
137
136
  * Group a series of buttons together on a single line or stack them in a vertical column.
138
137
  */
139
138
  declare class CuteButtonGroup extends CuteFocusableControl {
139
+ #private;
140
140
  /** Whether to place the nested buttons in the vertical direction. */
141
141
  vertical: boolean;
142
142
  /** The relative size of the buttons group. */
@@ -149,18 +149,41 @@ declare class CuteButtonGroup extends CuteFocusableControl {
149
149
  protected get buttonSmallBinding(): boolean;
150
150
  /** Child buttons. */
151
151
  _buttons: QueryList<CuteButtonBase> | undefined;
152
+ /** Raised when the disabled state of a component group changes. */
153
+ disabledChange: EventEmitter<boolean>;
152
154
  constructor();
153
155
  protected generateId(): string;
154
156
  protected setDisabledState(newState: BooleanInput, emitEvent?: boolean): boolean;
155
157
  ngAfterContentInit(): void;
158
+ ngOnDestroy(): void;
159
+ /** Marks all the child button toggles to be checked. */
160
+ protected _markButtonsForCheck(): void;
156
161
  static ɵfac: i0.ɵɵFactoryDeclaration<CuteButtonGroup, never>;
157
- static ɵdir: i0.ɵɵDirectiveDeclaration<CuteButtonGroup, "cute-button-group", ["cuteButtonGroup"], { "vertical": { "alias": "vertical"; "required": false; }; "magnitude": { "alias": "magnitude"; "required": false; }; "buttonStyle": { "alias": "buttonStyle"; "required": false; }; }, {}, ["_buttons"], never, true, never>;
162
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteButtonGroup, "cute-button-group", ["cuteButtonGroup"], { "vertical": { "alias": "vertical"; "required": false; }; "magnitude": { "alias": "magnitude"; "required": false; }; "buttonStyle": { "alias": "buttonStyle"; "required": false; }; }, { "disabledChange": "disabledChange"; }, ["_buttons"], never, true, never>;
158
163
  static ngAcceptInputType_vertical: unknown;
159
164
  }
160
165
 
166
+ /**
167
+ * @license Apache-2.0
168
+ *
169
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
170
+ *
171
+ * You may not use this file except in compliance with the License
172
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
173
+ */
174
+
175
+ /**
176
+ * Injection token that can be used to reference instances of `CuteButtonToolbar`.
177
+ * It serves as an alternative token to the actual `CuteButtonToolbar` class which
178
+ * could cause unnecessary retention of the class and its component metadata.
179
+ */
180
+ declare const CUTE_BUTTON_TOOLBAR: InjectionToken<CuteButtonToolbar>;
181
+ /**
182
+ * Combines sets of button groups into button toolbars for more complex components.
183
+ */
161
184
  declare class CuteButtonToolbar extends CuteFocusableControl {
162
185
  private _gap;
163
- /** The gutter between buttons */
186
+ /** The gutter between button groups. */
164
187
  get gap(): number;
165
188
  set gap(value: number);
166
189
  magnitude: RelativeSize5 | undefined;
@@ -178,5 +201,5 @@ declare class CuteButtonModule {
178
201
  static ɵinj: i0.ɵɵInjectorDeclaration<CuteButtonModule>;
179
202
  }
180
203
 
181
- export { CUTE_BUTTON_BASE, CUTE_BUTTON_CONFIG, CuteButton, CuteButtonBase, CuteButtonGroup, CuteButtonModule, CuteButtonToolbar };
204
+ export { CUTE_BUTTON_BASE, CUTE_BUTTON_CONFIG, CUTE_BUTTON_GROUP, CUTE_BUTTON_TOOLBAR, CuteButton, CuteButtonBase, CuteButtonGroup, CuteButtonModule, CuteButtonToolbar };
182
205
  export type { CuteButtonConfig, CuteButtonStyle };
@@ -3,6 +3,7 @@ import { OnInit, AfterContentInit, QueryList, EventEmitter, InjectionToken, OnDe
3
3
  import { CuteButtonGroup, CuteButtonStyle, CuteButtonBase } from '@cute-widgets/base/button';
4
4
  import { ControlValueAccessor } from '@angular/forms';
5
5
  import { Direction } from '@angular/cdk/bidi';
6
+ import { BooleanInput } from '@angular/cdk/coercion';
6
7
  import { toThemeColor } from '@cute-widgets/base/core';
7
8
  import * as i1 from '@angular/common';
8
9
 
@@ -89,6 +90,12 @@ declare class CuteButtonToggleGroup extends CuteButtonGroup implements ControlVa
89
90
  ngAfterContentInit(): void;
90
91
  /** Initializes the tabindex attribute using the radio pattern. */
91
92
  private _initializeTabIndex;
93
+ /**
94
+ * Implemented as part of ControlValueAccessor.
95
+ *
96
+ * @inheritDoc
97
+ */
98
+ setDisabledState(newState: BooleanInput, emitEvent?: boolean): boolean;
92
99
  /**
93
100
  * Sets the model value. Implemented as part of ControlValueAccessor.
94
101
  * @param value Value to be set to the model.
@@ -96,7 +103,6 @@ declare class CuteButtonToggleGroup extends CuteButtonGroup implements ControlVa
96
103
  writeValue(value: any): void;
97
104
  registerOnChange(fn: (value: any) => void): void;
98
105
  registerOnTouched(fn: any): void;
99
- setDisabledState(isDisabled: boolean): boolean;
100
106
  /** Handle keydown event calling to single-select button toggle. */
101
107
  protected _keydown(event: KeyboardEvent): void;
102
108
  /** Dispatch change event with current selection and group value. */
@@ -123,8 +129,6 @@ declare class CuteButtonToggleGroup extends CuteButtonGroup implements ControlVa
123
129
  private _selectValue;
124
130
  /** Syncs up the group's value with the model and emits the change event. */
125
131
  private _updateModelValue;
126
- /** Marks all the child button toggles to be checked. */
127
- private _markButtonsForCheck;
128
132
  static ɵfac: i0.ɵɵFactoryDeclaration<CuteButtonToggleGroup, never>;
129
133
  static ɵdir: i0.ɵɵDirectiveDeclaration<CuteButtonToggleGroup, "cute-button-toggle-group", ["cuteButtonToggleGroup"], { "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "disabledInteractive": { "alias": "disabledInteractive"; "required": false; }; "hideSingleSelectionIndicator": { "alias": "hideSingleSelectionIndicator"; "required": false; }; "hideMultipleSelectionIndicator": { "alias": "hideMultipleSelectionIndicator"; "required": false; }; }, { "valueChange": "valueChange"; "change": "change"; }, ["_buttonToggles"], never, true, never>;
130
134
  static ngAcceptInputType_multiple: unknown;
@@ -180,7 +184,7 @@ declare class CuteButtonToggle extends CuteButtonBase implements OnInit, OnDestr
180
184
  private _animationDisabled;
181
185
  protected _multiple: boolean;
182
186
  /** The parent button toggle group (exclusive selection). Optional. */
183
- protected readonly buttonToggleGroup: CuteButtonToggleGroup;
187
+ protected readonly buttonToggleGroup: CuteButtonToggleGroup | null;
184
188
  /** Unique ID for the underlying `button` element. */
185
189
  get buttonId(): string;
186
190
  get inputButtonStyle(): Extract<CuteButtonStyle, "outlined" | "outline-button">;
package/card/index.d.ts CHANGED
@@ -36,13 +36,13 @@ declare class CuteCard extends CuteLayoutControl {
36
36
  set backgroundImage(value: string | undefined);
37
37
  private _backgroundImage;
38
38
  /** `CuteCardHeader` element if it was defined in the `CuteCard` template. */
39
- readonly _header: CuteCardHeader | undefined;
39
+ readonly _header: i0.Signal<CuteCardHeader | undefined>;
40
40
  /** `CuteCardFooter` element if it was defined in the `CuteCard` template. */
41
- readonly _footer: CuteCardFooter | undefined;
41
+ readonly _footer: i0.Signal<CuteCardFooter | undefined>;
42
42
  constructor();
43
43
  protected generateId(): string;
44
44
  static ɵfac: i0.ɵɵFactoryDeclaration<CuteCard, never>;
45
- static ɵcmp: i0.ɵɵComponentDeclaration<CuteCard, "cute-card", ["cuteCard"], { "backgroundImage": { "alias": "backgroundImage"; "required": false; }; }, {}, ["_header", "_footer"], ["cute-card-header", "img[position=top], [role=img][position=top]", "*", "img[position=bottom], [role=img][position=bottom]", "cute-card-footer"], true, never>;
45
+ static ɵcmp: i0.ɵɵComponentDeclaration<CuteCard, "cute-card", ["cuteCard"], { "backgroundImage": { "alias": "backgroundImage"; "required": false; }; }, {}, ["_header", "_footer"], ["cute-card-header", "[cute-card-top-image]", "*", "[cute-card-bottom-image]", "cute-card-footer"], true, never>;
46
46
  }
47
47
 
48
48
  /**
@@ -59,6 +59,7 @@ declare class CuteCardAvatar {
59
59
  static ɵdir: i0.ɵɵDirectiveDeclaration<CuteCardAvatar, "[cute-card-avatar], [cuteCardAvatar]", never, {}, {}, never, never, true, never>;
60
60
  }
61
61
 
62
+ type CuteCardImagePosition = "top" | "bottom" | "fluid";
62
63
  /**
63
64
  * Primary image content for a card, intended for use within `<cute-card>`. Can be applied to
64
65
  * any media element, such as `<img>` or `<picture>`.
@@ -71,13 +72,14 @@ declare class CuteCardAvatar {
71
72
  declare class CuteCardImage {
72
73
  protected card: CuteCard;
73
74
  /** Image position in the card layout */
74
- position: "top" | "bottom" | "fluid";
75
- /** Image height in pixels */
75
+ protected readonly _position: CuteCardImagePosition;
76
+ /** The intrinsic height of the image, in pixels. */
76
77
  get height(): number | undefined;
77
78
  set height(value: number | string | undefined);
78
79
  private _height;
80
+ constructor();
79
81
  static ɵfac: i0.ɵɵFactoryDeclaration<CuteCardImage, never>;
80
- static ɵdir: i0.ɵɵDirectiveDeclaration<CuteCardImage, "[cute-card-image], [cuteCardImage]", never, { "position": { "alias": "position"; "required": false; }; "height": { "alias": "height"; "required": false; }; }, {}, never, never, true, never>;
82
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteCardImage, "[cute-card-image], [cute-card-top-image], [cute-card-bottom-image], [cute-card-fluid-image]", never, { "height": { "alias": "height"; "required": false; }; }, {}, never, never, true, never>;
81
83
  }
82
84
 
83
85
  /**
@@ -161,3 +163,4 @@ declare class CuteCardModule {
161
163
  }
162
164
 
163
165
  export { CuteCard, CuteCardActions, CuteCardAvatar, CuteCardBody, CuteCardFooter, CuteCardGroup, CuteCardHeader, CuteCardImage, CuteCardModule, CuteCardOverlay, CuteCardSubtitle, CuteCardTitle };
166
+ export type { CuteCardImagePosition };
@@ -1,9 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnDestroy, EventEmitter } from '@angular/core';
3
- import { CuteBaseControl, Expandable } from '@cute-widgets/base/abstract';
4
- import { Subject } from 'rxjs';
5
- import { AnimationEvent, AnimationTriggerMetadata } from '@angular/animations';
6
- import * as i1 from '@angular/common';
2
+ import { AfterContentInit, NgZone, EventEmitter } from '@angular/core';
3
+ import * as i1 from '@angular/cdk/accordion';
4
+ import { CdkAccordionItem } from '@angular/cdk/accordion';
5
+ import { BooleanInput } from '@angular/cdk/coercion';
6
+ import { CuteLayoutControl, Expandable } from '@cute-widgets/base/abstract';
7
+ import * as i1$1 from '@angular/common';
7
8
 
8
9
  /**
9
10
  * @license Apache-2.0
@@ -16,19 +17,20 @@ import * as i1 from '@angular/common';
16
17
 
17
18
  /** Animation states */
18
19
  type CuteCollapseState = 'expanded' | 'collapsed';
19
- /**
20
- * This collapse component is used to show and hide content.
21
- * Buttons or anchors are used as triggers that are mapped to specific elements you toggle.
22
- */
23
- declare class CuteCollapse extends CuteBaseControl implements Expandable, OnDestroy {
24
- /** Sets the element's current state to _collapsed_ or _expanded_ value. */
25
- get collapsed(): boolean;
26
- set collapsed(value: boolean);
27
- private _collapsed;
20
+ declare abstract class CuteCollapseBase extends CuteLayoutControl implements Expandable, AfterContentInit {
21
+ protected _ngZone: NgZone;
22
+ protected _accordionItem: CdkAccordionItem;
23
+ protected _animationsDisabled: boolean;
24
+ private _cleanupTransitionHandlers;
25
+ /** Whether the `CuteCollapse` is expanded. */
26
+ get expanded(): boolean;
27
+ set expanded(value: boolean);
28
28
  /** Expanding/Collapsing directionality, _horizontal_ or _vertical_. Default is _vertical_. */
29
29
  horizontal: boolean;
30
30
  /** Whether the animation while collapsing/expanding should be disabled */
31
- disableAnimation: boolean;
31
+ get disableAnimation(): boolean;
32
+ set disableAnimation(value: boolean);
33
+ private _disableAnimation;
32
34
  /** Event emitting before expand element */
33
35
  readonly beforeExpand: EventEmitter<void>;
34
36
  /** Event emitting before collapse element */
@@ -37,61 +39,60 @@ declare class CuteCollapse extends CuteBaseControl implements Expandable, OnDest
37
39
  readonly afterExpand: EventEmitter<void>;
38
40
  /** Event emitting after collapse element */
39
41
  readonly afterCollapse: EventEmitter<void>;
40
- /** Weather the current state is _collapsed_ or _expanded_. Part of `Expandable` interface. */
41
- get expanded(): boolean;
42
- /** Stream of body animation events. */
43
- protected readonly _bodyAnimation$: Subject<AnimationEvent>;
44
42
  constructor();
45
- protected onAnimationEvent(event: AnimationEvent): void;
43
+ protected setDisabledState(newState: BooleanInput, emitEvent?: boolean): boolean;
46
44
  protected generateId(): string;
47
45
  /** Gets the expanded state string. */
48
46
  getState(): CuteCollapseState;
49
- /** Part of `Expandable` interface */
47
+ /**
48
+ * @inheritDoc
49
+ * Part of `Expandable` interface.
50
+ */
50
51
  toggle(): void;
51
- /** Part of `Expandable` interface */
52
+ /**
53
+ * @inheritDoc
54
+ * Part of `Expandable` interface.
55
+ */
52
56
  open(): void;
53
- /** Part of `Expandable` interface */
57
+ /**
58
+ * @inheritDoc
59
+ * Part of `Expandable` interface.
60
+ */
54
61
  close(): void;
62
+ private _transitionStartListener;
63
+ private _transitionEndListener;
64
+ protected _setupAnimationEvents(): void;
65
+ ngAfterContentInit(): void;
55
66
  ngOnDestroy(): void;
56
- static ɵfac: i0.ɵɵFactoryDeclaration<CuteCollapse, never>;
57
- static ɵcmp: i0.ɵɵComponentDeclaration<CuteCollapse, "cute-collapse", ["cuteCollapse"], { "collapsed": { "alias": "collapsed"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "disableAnimation": { "alias": "disableAnimation"; "required": false; }; }, { "beforeExpand": "beforeExpand"; "beforeCollapse": "beforeCollapse"; "afterExpand": "afterExpand"; "afterCollapse": "afterCollapse"; }, never, ["*"], true, never>;
58
- static ngAcceptInputType_collapsed: unknown;
67
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteCollapseBase, never>;
68
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteCollapseBase, never, never, { "expanded": { "alias": "expanded"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "disableAnimation": { "alias": "disableAnimation"; "required": false; }; }, { "beforeExpand": "beforeExpand"; "beforeCollapse": "beforeCollapse"; "afterExpand": "afterExpand"; "afterCollapse": "afterCollapse"; }, never, never, true, [{ directive: typeof i1.CdkAccordionItem; inputs: {}; outputs: { "expandedChange": "expandedChange"; }; }]>;
69
+ static ngAcceptInputType_expanded: unknown;
59
70
  static ngAcceptInputType_horizontal: unknown;
60
71
  static ngAcceptInputType_disableAnimation: unknown;
61
72
  }
73
+ /**
74
+ * This collapse component is used to show and hide content.
75
+ * Buttons or anchors are used as triggers that are mapped to specific elements you toggle.
76
+ */
77
+ declare class CuteCollapse extends CuteCollapseBase {
78
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteCollapse, never>;
79
+ static ɵcmp: i0.ɵɵComponentDeclaration<CuteCollapse, "cute-collapse", ["cuteCollapse"], {}, {}, never, ["*"], true, never>;
80
+ }
62
81
 
63
82
  declare class CuteCollapseTrigger {
64
83
  /** Reference to the `cute-collapse` component to toggle its visibility */
65
- get collapseControl(): CuteCollapse | null;
66
- set collapseControl(collapse: CuteCollapse | null);
84
+ get collapseControl(): Expandable | null;
85
+ set collapseControl(collapse: Expandable | null);
67
86
  private _collapseControl;
68
87
  static ɵfac: i0.ɵɵFactoryDeclaration<CuteCollapseTrigger, never>;
69
88
  static ɵdir: i0.ɵɵDirectiveDeclaration<CuteCollapseTrigger, "[cuteCollapseTriggerFor]", ["cuteCollapseTrigger"], { "collapseControl": { "alias": "cuteCollapseTriggerFor"; "required": false; }; }, {}, never, never, true, never>;
70
89
  }
71
90
 
72
- /**
73
- * @license Apache-2.0
74
- *
75
- * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
76
- *
77
- * You may not use this file except in compliance with the License
78
- * that can be found at http://www.apache.org/licenses/LICENSE-2.0
79
- */
80
-
81
- /** Time and timing curve for **collapse** animations. */
82
- declare const CUTE_COLLAPSE_ANIMATION_TIMING = "225ms cubic-bezier(0.4,0.0,0.2,1)";
83
- /**
84
- * Animations used by the CuteWidgets` collapse element.
85
- */
86
- declare const cuteCollapseAnimations: {
87
- readonly bodyExpansion: AnimationTriggerMetadata;
88
- };
89
-
90
91
  declare class CuteCollapseModule {
91
92
  static ɵfac: i0.ɵɵFactoryDeclaration<CuteCollapseModule, never>;
92
- static ɵmod: i0.ɵɵNgModuleDeclaration<CuteCollapseModule, never, [typeof i1.CommonModule, typeof CuteCollapse, typeof CuteCollapseTrigger], [typeof CuteCollapse, typeof CuteCollapseTrigger]>;
93
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CuteCollapseModule, never, [typeof i1$1.CommonModule, typeof CuteCollapse, typeof CuteCollapseTrigger], [typeof CuteCollapse, typeof CuteCollapseTrigger]>;
93
94
  static ɵinj: i0.ɵɵInjectorDeclaration<CuteCollapseModule>;
94
95
  }
95
96
 
96
- export { CUTE_COLLAPSE_ANIMATION_TIMING, CuteCollapse, CuteCollapseModule, CuteCollapseTrigger, cuteCollapseAnimations };
97
+ export { CuteCollapse, CuteCollapseBase, CuteCollapseModule, CuteCollapseTrigger };
97
98
  export type { CuteCollapseState };
@@ -1,6 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, OnChanges, SimpleChanges, OnInit } from '@angular/core';
3
- import { LayoutBreakpoint } from '@cute-widgets/base/core/types';
4
3
 
5
4
  /**
6
5
  * Allows users to disable the context menu that appears when they right-click
@@ -90,35 +89,6 @@ declare class CuteTimeAgo implements OnChanges {
90
89
  static ɵdir: i0.ɵɵDirectiveDeclaration<CuteTimeAgo, "[cuteTimeAgo]", never, { "cuteTimeAgo": { "alias": "cuteTimeAgo"; "required": false; }; }, {}, never, never, true, never>;
91
90
  }
92
91
 
93
- /**
94
- * @license Apache-2.0
95
- *
96
- * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
97
- *
98
- * You may not use this file except in compliance with the License
99
- * that can be found at http://www.apache.org/licenses/LICENSE-2.0
100
- */
101
-
102
- /**
103
- * ```HTML
104
- * <div cuteResponsive="md, lg">
105
- * This content is visible on medium and large screens.
106
- * </div>
107
- * ```
108
- */
109
- declare class CuteResponsive implements OnInit {
110
- private templateRef;
111
- private viewContainer;
112
- /** Comma-separated screen size breakpoints (e.g., 'md, lg') or an array of it. */
113
- breakPoints?: string | LayoutBreakpoint[];
114
- constructor();
115
- ngOnInit(): void;
116
- private detectScreenSize;
117
- private getScreenWidth;
118
- static ɵfac: i0.ɵɵFactoryDeclaration<CuteResponsive, never>;
119
- static ɵdir: i0.ɵɵDirectiveDeclaration<CuteResponsive, "[cuteResponsive]", never, { "breakPoints": { "alias": "cuteResponsive"; "required": false; }; }, {}, never, never, true, never>;
120
- }
121
-
122
92
  /**
123
93
  * @license Apache-2.0
124
94
  *
@@ -165,4 +135,4 @@ declare class CuteFocusInitial {
165
135
  static ɵdir: i0.ɵɵDirectiveDeclaration<CuteFocusInitial, "[cuteFocusInitial]", never, {}, {}, never, never, true, never>;
166
136
  }
167
137
 
168
- export { CuteClickOutside, CuteCopyToClipboard, CuteDisableContextMenu, CuteFocusInitial, CuteIconLink, CuteResponsive, CuteSvgSymbol, CuteTimeAgo };
138
+ export { CuteClickOutside, CuteCopyToClipboard, CuteDisableContextMenu, CuteFocusInitial, CuteIconLink, CuteSvgSymbol, CuteTimeAgo };
package/core/index.d.ts CHANGED
@@ -54,21 +54,28 @@ declare function _animationsDisabled(): boolean;
54
54
  * that can be found at http://www.apache.org/licenses/LICENSE-2.0
55
55
  */
56
56
  /**
57
- * Bootstrap media-queries, or `breakpoints`.
58
- * PascalCase is being used as Breakpoints is used like an enum.
57
+ * Bootstrap media queries, or `breakpoints`.
59
58
  */
60
59
  declare const bsBreakpoints: {
61
- SmallAndDown: string;
62
- MediumAndDown: string;
63
- LargeAndDown: string;
64
- XLargeAndDown: string;
65
- XXLargeAndDown: string;
66
- XSmall: string;
67
- Small: string;
68
- Medium: string;
69
- Large: string;
70
- XLarge: string;
71
- XXLarge: string;
60
+ query: {
61
+ SmallAndDown: string;
62
+ MediumAndDown: string;
63
+ LargeAndDown: string;
64
+ XLargeAndDown: string;
65
+ XXLargeAndDown: string;
66
+ XSmall: string;
67
+ Small: string;
68
+ Medium: string;
69
+ Large: string;
70
+ XLarge: string;
71
+ XXLarge: string;
72
+ readonly xs: string;
73
+ readonly sm: string;
74
+ readonly md: string;
75
+ readonly lg: string;
76
+ readonly xl: string;
77
+ readonly xxl: string;
78
+ };
72
79
  readonly grid: {
73
80
  xs: number;
74
81
  sm: number;
@@ -77,24 +84,30 @@ declare const bsBreakpoints: {
77
84
  xl: number;
78
85
  xxl: number;
79
86
  };
80
- readonly xs: string;
81
- readonly sm: string;
82
- readonly md: string;
83
- readonly lg: string;
84
- readonly xl: string;
85
- readonly xxl: string;
86
- /**
87
- * Gets the object's property name of the media-query by its value
88
- * @param query The media-query text
89
- * @returns The property name of the media-query or _undefined_ if it was not found
90
- */
91
- getQueryName(query: string): string | undefined;
92
87
  /**
93
88
  * Gets the breakpoint label by Bootstrap's breakpoint abbreviation
94
- * @param code Bootstrap's breakpoint abbreviation
95
- * @returns More descriptive text of the abbreviation
89
+ * @param code Bootstrap's breakpoint abbreviation.
90
+ * @returns More descriptive text of the abbreviation.
96
91
  */
97
92
  getLabel(code: string): string;
93
+ /**
94
+ * Returns the media query string for the specified breakpoint symbol.
95
+ * @param code Bootstrap's breakpoint abbreviation.
96
+ * @returns Media query string or _undefined_ if the code has an unknown value.
97
+ */
98
+ getMediaQuery(code: string): string | undefined;
99
+ /**
100
+ * Returns the media query string array for the specified breakpoint one or more symbols.
101
+ * @param codes Bootstrap's breakpoint abbreviation list.
102
+ * @returns Media query string array for each specified code of breakpoint.
103
+ */
104
+ getMediaQueries(codes: string | string[]): string[];
105
+ /**
106
+ * Gets the name of the media-query by its value.
107
+ * @param query The media-query text.
108
+ * @returns The name of the media-query or _undefined_ if it was not found.
109
+ */
110
+ getQueryName(query: string): string | undefined;
98
111
  };
99
112
 
100
113
  /**
@@ -229,7 +242,7 @@ interface TreeNode<D = unknown> {
229
242
  data?: D;
230
243
  /** Router link. */
231
244
  routerLink?: string | string[];
232
- /** Identifies the picture displayed to the left of the item label. */
245
+ /** Identifies the image displayed next to the item label. */
233
246
  icon?: string;
234
247
  /** Icon color. */
235
248
  iconColor?: string;
@@ -39,7 +39,7 @@ interface TreeNode<D = unknown> {
39
39
  data?: D;
40
40
  /** Router link. */
41
41
  routerLink?: string | string[];
42
- /** Identifies the picture displayed to the left of the item label. */
42
+ /** Identifies the image displayed next to the item label. */
43
43
  icon?: string;
44
44
  /** Icon color. */
45
45
  iconColor?: string;