@cute-widgets/base 20.0.4 → 21.0.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 (171) hide show
  1. package/CHANGELOG.md +18 -6
  2. package/fesm2022/cute-widgets-base-abstract.mjs +19 -29
  3. package/fesm2022/cute-widgets-base-abstract.mjs.map +1 -1
  4. package/fesm2022/cute-widgets-base-alert.mjs +10 -10
  5. package/fesm2022/cute-widgets-base-alert.mjs.map +1 -1
  6. package/fesm2022/cute-widgets-base-autocomplete.mjs +14 -14
  7. package/fesm2022/cute-widgets-base-autocomplete.mjs.map +1 -1
  8. package/fesm2022/cute-widgets-base-badge.mjs +46 -14
  9. package/fesm2022/cute-widgets-base-badge.mjs.map +1 -1
  10. package/fesm2022/cute-widgets-base-bottom-sheet.mjs +11 -11
  11. package/fesm2022/cute-widgets-base-bottom-sheet.mjs.map +1 -1
  12. package/fesm2022/cute-widgets-base-button-toggle.mjs +61 -37
  13. package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -1
  14. package/fesm2022/cute-widgets-base-button.mjs +176 -112
  15. package/fesm2022/cute-widgets-base-button.mjs.map +1 -1
  16. package/fesm2022/cute-widgets-base-card.mjs +40 -40
  17. package/fesm2022/cute-widgets-base-card.mjs.map +1 -1
  18. package/fesm2022/cute-widgets-base-checkbox.mjs +28 -28
  19. package/fesm2022/cute-widgets-base-checkbox.mjs.map +1 -1
  20. package/fesm2022/cute-widgets-base-chips.mjs +49 -61
  21. package/fesm2022/cute-widgets-base-chips.mjs.map +1 -1
  22. package/fesm2022/cute-widgets-base-collapse.mjs +120 -132
  23. package/fesm2022/cute-widgets-base-collapse.mjs.map +1 -1
  24. package/fesm2022/cute-widgets-base-core-datetime.mjs +11 -11
  25. package/fesm2022/cute-widgets-base-core-datetime.mjs.map +1 -1
  26. package/fesm2022/cute-widgets-base-core-directives.mjs +21 -21
  27. package/fesm2022/cute-widgets-base-core-directives.mjs.map +1 -1
  28. package/fesm2022/cute-widgets-base-core-error.mjs +6 -6
  29. package/fesm2022/cute-widgets-base-core-error.mjs.map +1 -1
  30. package/fesm2022/cute-widgets-base-core-layout.mjs +13 -1
  31. package/fesm2022/cute-widgets-base-core-layout.mjs.map +1 -1
  32. package/fesm2022/cute-widgets-base-core-line.mjs +7 -7
  33. package/fesm2022/cute-widgets-base-core-line.mjs.map +1 -1
  34. package/fesm2022/cute-widgets-base-core-nav.mjs +30 -28
  35. package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -1
  36. package/fesm2022/cute-widgets-base-core-observers.mjs +16 -16
  37. package/fesm2022/cute-widgets-base-core-observers.mjs.map +1 -1
  38. package/fesm2022/cute-widgets-base-core-option.mjs +10 -10
  39. package/fesm2022/cute-widgets-base-core-option.mjs.map +1 -1
  40. package/fesm2022/cute-widgets-base-core-pipes.mjs +6 -6
  41. package/fesm2022/cute-widgets-base-core-pipes.mjs.map +1 -1
  42. package/fesm2022/cute-widgets-base-core-ripple.mjs +3 -3
  43. package/fesm2022/cute-widgets-base-core-ripple.mjs.map +1 -1
  44. package/fesm2022/cute-widgets-base-core-theming.mjs +7 -7
  45. package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -1
  46. package/fesm2022/cute-widgets-base-core-utils.mjs +3 -3
  47. package/fesm2022/cute-widgets-base-core-utils.mjs.map +1 -1
  48. package/fesm2022/cute-widgets-base-core.mjs +50 -38
  49. package/fesm2022/cute-widgets-base-core.mjs.map +1 -1
  50. package/fesm2022/cute-widgets-base-datepicker.mjs +100 -99
  51. package/fesm2022/cute-widgets-base-datepicker.mjs.map +1 -1
  52. package/fesm2022/cute-widgets-base-dialog.mjs +170 -135
  53. package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -1
  54. package/fesm2022/cute-widgets-base-divider.mjs +7 -7
  55. package/fesm2022/cute-widgets-base-divider.mjs.map +1 -1
  56. package/fesm2022/cute-widgets-base-expansion.mjs +27 -27
  57. package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -1
  58. package/fesm2022/cute-widgets-base-form-field.mjs +28 -28
  59. package/fesm2022/cute-widgets-base-form-field.mjs.map +1 -1
  60. package/fesm2022/cute-widgets-base-grid-list.mjs +22 -22
  61. package/fesm2022/cute-widgets-base-grid-list.mjs.map +1 -1
  62. package/fesm2022/cute-widgets-base-icon.mjs +10 -10
  63. package/fesm2022/cute-widgets-base-icon.mjs.map +1 -1
  64. package/fesm2022/cute-widgets-base-input.mjs +7 -7
  65. package/fesm2022/cute-widgets-base-input.mjs.map +1 -1
  66. package/fesm2022/cute-widgets-base-layout-container.mjs +10 -10
  67. package/fesm2022/cute-widgets-base-layout-container.mjs.map +1 -1
  68. package/fesm2022/cute-widgets-base-layout-stack.mjs +13 -13
  69. package/fesm2022/cute-widgets-base-layout-stack.mjs.map +1 -1
  70. package/fesm2022/cute-widgets-base-layout.mjs +23 -23
  71. package/fesm2022/cute-widgets-base-layout.mjs.map +1 -1
  72. package/fesm2022/cute-widgets-base-list.mjs +56 -56
  73. package/fesm2022/cute-widgets-base-list.mjs.map +1 -1
  74. package/fesm2022/cute-widgets-base-menu.mjs +581 -388
  75. package/fesm2022/cute-widgets-base-menu.mjs.map +1 -1
  76. package/fesm2022/cute-widgets-base-navbar.mjs +101 -61
  77. package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -1
  78. package/fesm2022/cute-widgets-base-paginator.mjs +13 -13
  79. package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -1
  80. package/fesm2022/cute-widgets-base-progress.mjs +10 -10
  81. package/fesm2022/cute-widgets-base-progress.mjs.map +1 -1
  82. package/fesm2022/cute-widgets-base-radio.mjs +11 -11
  83. package/fesm2022/cute-widgets-base-radio.mjs.map +1 -1
  84. package/fesm2022/cute-widgets-base-select.mjs +11 -11
  85. package/fesm2022/cute-widgets-base-select.mjs.map +1 -1
  86. package/fesm2022/cute-widgets-base-sidenav.mjs +26 -26
  87. package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -1
  88. package/fesm2022/cute-widgets-base-slider.mjs +10 -10
  89. package/fesm2022/cute-widgets-base-slider.mjs.map +1 -1
  90. package/fesm2022/cute-widgets-base-snack-bar.mjs +28 -28
  91. package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -1
  92. package/fesm2022/cute-widgets-base-sort.mjs +13 -13
  93. package/fesm2022/cute-widgets-base-sort.mjs.map +1 -1
  94. package/fesm2022/cute-widgets-base-spinner.mjs +8 -8
  95. package/fesm2022/cute-widgets-base-spinner.mjs.map +1 -1
  96. package/fesm2022/cute-widgets-base-stepper.mjs +40 -40
  97. package/fesm2022/cute-widgets-base-stepper.mjs.map +1 -1
  98. package/fesm2022/cute-widgets-base-table.mjs +58 -66
  99. package/fesm2022/cute-widgets-base-table.mjs.map +1 -1
  100. package/fesm2022/cute-widgets-base-tabs.mjs +100 -75
  101. package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -1
  102. package/fesm2022/cute-widgets-base-timepicker.mjs +34 -63
  103. package/fesm2022/cute-widgets-base-timepicker.mjs.map +1 -1
  104. package/fesm2022/cute-widgets-base-toolbar.mjs +13 -13
  105. package/fesm2022/cute-widgets-base-toolbar.mjs.map +1 -1
  106. package/fesm2022/cute-widgets-base-tooltip.mjs +10 -10
  107. package/fesm2022/cute-widgets-base-tooltip.mjs.map +1 -1
  108. package/fesm2022/cute-widgets-base-tree.mjs +25 -25
  109. package/fesm2022/cute-widgets-base-tree.mjs.map +1 -1
  110. package/fesm2022/cute-widgets-base.mjs +4 -4
  111. package/package.json +121 -121
  112. package/{abstract/index.d.ts → types/cute-widgets-base-abstract.d.ts} +9 -3
  113. package/{autocomplete/index.d.ts → types/cute-widgets-base-autocomplete.d.ts} +2 -2
  114. package/{badge/index.d.ts → types/cute-widgets-base-badge.d.ts} +6 -5
  115. package/{bottom-sheet/index.d.ts → types/cute-widgets-base-bottom-sheet.d.ts} +1 -1
  116. package/{button-toggle/index.d.ts → types/cute-widgets-base-button-toggle.d.ts} +15 -5
  117. package/{button/index.d.ts → types/cute-widgets-base-button.d.ts} +44 -22
  118. package/{checkbox/index.d.ts → types/cute-widgets-base-checkbox.d.ts} +1 -1
  119. package/{chips/index.d.ts → types/cute-widgets-base-chips.d.ts} +1 -1
  120. package/types/cute-widgets-base-collapse.d.ts +98 -0
  121. package/{core/layout/index.d.ts → types/cute-widgets-base-core-layout.d.ts} +7 -1
  122. package/{core/nav/index.d.ts → types/cute-widgets-base-core-nav.d.ts} +2 -1
  123. package/{core/observers/index.d.ts → types/cute-widgets-base-core-observers.d.ts} +1 -1
  124. package/{core/option/index.d.ts → types/cute-widgets-base-core-option.d.ts} +1 -1
  125. package/{core/index.d.ts → types/cute-widgets-base-core.d.ts} +7 -1
  126. package/{datepicker/index.d.ts → types/cute-widgets-base-datepicker.d.ts} +2 -2
  127. package/{dialog/index.d.ts → types/cute-widgets-base-dialog.d.ts} +81 -57
  128. package/{expansion/index.d.ts → types/cute-widgets-base-expansion.d.ts} +4 -14
  129. package/{form-field/index.d.ts → types/cute-widgets-base-form-field.d.ts} +1 -1
  130. package/{icon/index.d.ts → types/cute-widgets-base-icon.d.ts} +1 -1
  131. package/{input/index.d.ts → types/cute-widgets-base-input.d.ts} +1 -1
  132. package/{menu/index.d.ts → types/cute-widgets-base-menu.d.ts} +202 -121
  133. package/{navbar/index.d.ts → types/cute-widgets-base-navbar.d.ts} +24 -9
  134. package/{paginator/index.d.ts → types/cute-widgets-base-paginator.d.ts} +2 -2
  135. package/{progress/index.d.ts → types/cute-widgets-base-progress.d.ts} +1 -1
  136. package/{radio/index.d.ts → types/cute-widgets-base-radio.d.ts} +2 -2
  137. package/{sidenav/index.d.ts → types/cute-widgets-base-sidenav.d.ts} +1 -1
  138. package/{snack-bar/index.d.ts → types/cute-widgets-base-snack-bar.d.ts} +1 -1
  139. package/{sort/index.d.ts → types/cute-widgets-base-sort.d.ts} +1 -1
  140. package/{table/index.d.ts → types/cute-widgets-base-table.d.ts} +1 -1
  141. package/{tabs/index.d.ts → types/cute-widgets-base-tabs.d.ts} +35 -14
  142. package/{tree/index.d.ts → types/cute-widgets-base-tree.d.ts} +2 -2
  143. package/collapse/index.d.ts +0 -97
  144. /package/{alert/index.d.ts → types/cute-widgets-base-alert.d.ts} +0 -0
  145. /package/{card/index.d.ts → types/cute-widgets-base-card.d.ts} +0 -0
  146. /package/{core/animation/index.d.ts → types/cute-widgets-base-core-animation.d.ts} +0 -0
  147. /package/{core/datetime/index.d.ts → types/cute-widgets-base-core-datetime.d.ts} +0 -0
  148. /package/{core/directives/index.d.ts → types/cute-widgets-base-core-directives.d.ts} +0 -0
  149. /package/{core/error/index.d.ts → types/cute-widgets-base-core-error.d.ts} +0 -0
  150. /package/{core/interfaces/index.d.ts → types/cute-widgets-base-core-interfaces.d.ts} +0 -0
  151. /package/{core/line/index.d.ts → types/cute-widgets-base-core-line.d.ts} +0 -0
  152. /package/{core/pipes/index.d.ts → types/cute-widgets-base-core-pipes.d.ts} +0 -0
  153. /package/{core/ripple/index.d.ts → types/cute-widgets-base-core-ripple.d.ts} +0 -0
  154. /package/{core/testing/index.d.ts → types/cute-widgets-base-core-testing.d.ts} +0 -0
  155. /package/{core/theming/index.d.ts → types/cute-widgets-base-core-theming.d.ts} +0 -0
  156. /package/{core/types/index.d.ts → types/cute-widgets-base-core-types.d.ts} +0 -0
  157. /package/{core/utils/index.d.ts → types/cute-widgets-base-core-utils.d.ts} +0 -0
  158. /package/{divider/index.d.ts → types/cute-widgets-base-divider.d.ts} +0 -0
  159. /package/{grid-list/index.d.ts → types/cute-widgets-base-grid-list.d.ts} +0 -0
  160. /package/{layout/container/index.d.ts → types/cute-widgets-base-layout-container.d.ts} +0 -0
  161. /package/{layout/stack/index.d.ts → types/cute-widgets-base-layout-stack.d.ts} +0 -0
  162. /package/{layout/index.d.ts → types/cute-widgets-base-layout.d.ts} +0 -0
  163. /package/{list/index.d.ts → types/cute-widgets-base-list.d.ts} +0 -0
  164. /package/{select/index.d.ts → types/cute-widgets-base-select.d.ts} +0 -0
  165. /package/{slider/index.d.ts → types/cute-widgets-base-slider.d.ts} +0 -0
  166. /package/{spinner/index.d.ts → types/cute-widgets-base-spinner.d.ts} +0 -0
  167. /package/{stepper/index.d.ts → types/cute-widgets-base-stepper.d.ts} +0 -0
  168. /package/{timepicker/index.d.ts → types/cute-widgets-base-timepicker.d.ts} +0 -0
  169. /package/{toolbar/index.d.ts → types/cute-widgets-base-toolbar.d.ts} +0 -0
  170. /package/{tooltip/index.d.ts → types/cute-widgets-base-tooltip.d.ts} +0 -0
  171. /package/{index.d.ts → types/cute-widgets-base.d.ts} +0 -0
@@ -1,13 +1,28 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, signal, ChangeDetectionStrategy, ViewEncapsulation, Component, InjectionToken, EventEmitter, computed, isDevMode, HostBinding, Output, Input, ContentChildren, Directive, booleanAttribute, NgModule } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ViewEncapsulation, Component, inject, signal, viewChild, InjectionToken, EventEmitter, computed, isDevMode, HostBinding, Output, Input, ContentChildren, Directive, booleanAttribute, NgModule } from '@angular/core';
3
3
  import { CuteLayoutControl } from '@cute-widgets/base/abstract';
4
4
  import { CuteContainer } from '@cute-widgets/base/layout';
5
- import * as i1 from '@cute-widgets/base/collapse';
6
- import { CuteCollapse, CuteCollapseTrigger } from '@cute-widgets/base/collapse';
7
5
  import { Subscription } from 'rxjs';
6
+ import { MediaMatcher } from '@angular/cdk/layout';
7
+ import { bsBreakpoints } from '@cute-widgets/base/core';
8
+ import * as i1 from '@cute-widgets/base/collapse';
9
+ import { CuteCollapseBase, CuteCollapseTrigger, CuteCollapseModule } from '@cute-widgets/base/collapse';
8
10
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
11
  import { CuteNav, CUTE_NAV } from '@cute-widgets/base/core/nav';
10
- import { CommonModule } from '@angular/common';
12
+
13
+ class CuteNavbarCollapse extends CuteCollapseBase {
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarCollapse, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: CuteNavbarCollapse, isStandalone: true, selector: "cute-navbar-collapse", host: { properties: { "class": "\"cute-navbar-collapse-\"+(horizontal ? \"horizontal\" : \"vertical\")+\" \"+getState()", "class.cute-navbar-collapse-animations-enabled": "!disableAnimation", "id": "id || null" }, classAttribute: "cute-navbar-collapse" }, exportAs: ["cuteNavbarCollapse"], usesInheritance: true, ngImport: i0, template: "<div class=\"cute-navbar-collapse-content\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".cute-navbar-collapse{display:grid;width:100%;overflow:hidden}.cute-navbar-collapse .cute-navbar-collapse-content{min-height:0;overflow:hidden;transition:display .1s;transition-timing-function:ease-in-out;transition-behavior:allow-discrete;display:none}.cute-navbar-collapse.expanded .cute-navbar-collapse-content{display:block}.cute-navbar-collapse.collapsed .cute-navbar-collapse-content{display:none}.cute-navbar-collapse.cute-navbar-collapse-vertical{grid-template-rows:0fr}.cute-navbar-collapse.cute-navbar-collapse-vertical.expanded{grid-template-rows:1fr}.cute-navbar-collapse.cute-navbar-collapse-vertical.collapsed{grid-template-rows:0fr}.cute-navbar-collapse.cute-navbar-collapse-vertical.cute-navbar-collapse-animations-enabled{transition:grid-template-rows .2s}.cute-navbar-collapse.cute-navbar-collapse-horizontal{grid-template-columns:0fr}.cute-navbar-collapse.cute-navbar-collapse-horizontal.expanded{grid-template-columns:1fr}.cute-navbar-collapse.cute-navbar-collapse-horizontal.collapsed{grid-template-columns:0fr}.cute-navbar-collapse.cute-navbar-collapse-horizontal.cute-navbar-collapse-animations-enabled{transition:grid-template-columns .2s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarCollapse, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'cute-navbar-collapse', exportAs: 'cuteNavbarCollapse', host: {
20
+ 'class': 'cute-navbar-collapse',
21
+ '[class]': '"cute-navbar-collapse-"+(horizontal ? "horizontal" : "vertical")+" "+getState()',
22
+ '[class.cute-navbar-collapse-animations-enabled]': '!disableAnimation',
23
+ '[id]': 'id || null',
24
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cute-navbar-collapse-content\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".cute-navbar-collapse{display:grid;width:100%;overflow:hidden}.cute-navbar-collapse .cute-navbar-collapse-content{min-height:0;overflow:hidden;transition:display .1s;transition-timing-function:ease-in-out;transition-behavior:allow-discrete;display:none}.cute-navbar-collapse.expanded .cute-navbar-collapse-content{display:block}.cute-navbar-collapse.collapsed .cute-navbar-collapse-content{display:none}.cute-navbar-collapse.cute-navbar-collapse-vertical{grid-template-rows:0fr}.cute-navbar-collapse.cute-navbar-collapse-vertical.expanded{grid-template-rows:1fr}.cute-navbar-collapse.cute-navbar-collapse-vertical.collapsed{grid-template-rows:0fr}.cute-navbar-collapse.cute-navbar-collapse-vertical.cute-navbar-collapse-animations-enabled{transition:grid-template-rows .2s}.cute-navbar-collapse.cute-navbar-collapse-horizontal{grid-template-columns:0fr}.cute-navbar-collapse.cute-navbar-collapse-horizontal.expanded{grid-template-columns:1fr}.cute-navbar-collapse.cute-navbar-collapse-horizontal.collapsed{grid-template-columns:0fr}.cute-navbar-collapse.cute-navbar-collapse-horizontal.cute-navbar-collapse-animations-enabled{transition:grid-template-columns .2s}\n"] }]
25
+ }] });
11
26
 
12
27
  /**
13
28
  * @license Apache-2.0
@@ -17,64 +32,87 @@ import { CommonModule } from '@angular/common';
17
32
  * You may not use this file except in compliance with the License
18
33
  * that can be found at http://www.apache.org/licenses/LICENSE-2.0
19
34
  */
35
+ let uniqueId = 0;
20
36
  /**
21
37
  * Collapsible navbar content.
22
38
  */
23
- class CuteNavbarContent extends CuteCollapse {
39
+ class CuteNavbarContent extends CuteLayoutControl {
24
40
  constructor() {
25
41
  super();
26
- this._subscription = new Subscription();
42
+ this._selfSubscriptions = new Subscription();
27
43
  this._navbar = inject(CUTE_NAVBAR);
44
+ this.mediaMatcher = inject(MediaMatcher);
28
45
  this._breakpointMatches = signal(false, ...(ngDevMode ? [{ debugName: "_breakpointMatches" }] : []));
29
- this._subscription.add(this._navbar.breakpointState.subscribe(state => {
46
+ this._collapse = viewChild.required(CuteNavbarCollapse);
47
+ this._navbarMediaQueries = bsBreakpoints.getMediaQueries(this._navbar.breakpoint ?? []);
48
+ this._selfSubscriptions.add(this._navbar.breakpointState.subscribe(state => {
30
49
  this._breakpointMatches.set(state.matches);
31
50
  if (!state.matches) {
32
- this.close(); // if content was in the 'expanded' state when the screen width changed
51
+ this._collapse().close(); // if content was in the 'expanded' state when the screen width changed
33
52
  this._navbar.expansionChange.emit(false);
34
53
  }
35
54
  }));
36
- this._subscription.add(this.afterExpand.subscribe(() => {
55
+ }
56
+ get expanded() {
57
+ return this._collapse().expanded;
58
+ }
59
+ get mediaMatches() {
60
+ if (this._navbarMediaQueries.length) {
61
+ return this.mediaMatcher.matchMedia(this._navbarMediaQueries[0]).matches;
62
+ }
63
+ return false;
64
+ }
65
+ generateId() {
66
+ return `cute-navbar-content-${uniqueId++}`;
67
+ }
68
+ open() {
69
+ this._collapse().open();
70
+ }
71
+ close() {
72
+ this._collapse().close();
73
+ }
74
+ toggle() {
75
+ this._collapse().toggle();
76
+ }
77
+ ngOnInit() {
78
+ super.ngOnInit();
79
+ this._selfSubscriptions.add(this._collapse().afterExpand.subscribe(() => {
37
80
  if (this._breakpointMatches()) {
38
81
  this._navbar.expansionChange.emit(true);
39
82
  }
40
83
  }));
41
- this._subscription.add(this.afterCollapse.subscribe(() => this._navbar.expansionChange.emit(false)));
84
+ this._selfSubscriptions.add(this._collapse().afterCollapse.subscribe(() => {
85
+ this._navbar.expansionChange.emit(false);
86
+ }));
42
87
  }
43
- getState() {
44
- if (this._breakpointMatches()) {
45
- return super.getState();
46
- }
47
- // Parent class, CuteCollapse, uses this state to trigger the expanding process.
48
- // But we use it for the sake of `visibility` property only.
49
- // TODO: Change to a simpler and clearer algorithm.
50
- return 'expanded';
88
+ ngAfterViewChecked() {
89
+ this._breakpointMatches.set(this.mediaMatches);
51
90
  }
52
91
  ngOnDestroy() {
53
92
  super.ngOnDestroy();
54
- this._subscription.unsubscribe();
93
+ this._selfSubscriptions.unsubscribe();
55
94
  }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CuteNavbarContent, isStandalone: true, selector: "cute-navbar-content", host: { properties: { "class.show": "expanded" }, classAttribute: "navbar-collapse collapse" }, exportAs: ["cuteNavbarContent"], usesInheritance: true, ngImport: i0, template: `
58
- <ng-content></ng-content>
59
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: CuteNavbarContent, isStandalone: true, selector: "cute-navbar-content", host: { properties: { "class.breakpoint-matches": "_breakpointMatches()" }, classAttribute: "cute-navbar-content navbar-collapse" }, viewQueries: [{ propertyName: "_collapse", first: true, predicate: CuteNavbarCollapse, descendants: true, isSignal: true }], exportAs: ["cuteNavbarContent"], usesInheritance: true, ngImport: i0, template: `
97
+ <cute-navbar-collapse>
98
+ <ng-content></ng-content>
99
+ </cute-navbar-collapse>
100
+ `, isInline: true, styles: [".cute-navbar-content:not(.breakpoint-matches) cute-navbar-collapse{display:block}.cute-navbar-content:not(.breakpoint-matches) cute-navbar-collapse .cute-navbar-collapse-content{display:flex;align-items:center;padding:.25rem 0}\n"], dependencies: [{ kind: "component", type: CuteNavbarCollapse, selector: "cute-navbar-collapse", exportAs: ["cuteNavbarCollapse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
60
101
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarContent, decorators: [{
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarContent, decorators: [{
62
103
  type: Component,
63
- args: [{
64
- selector: 'cute-navbar-content',
65
- template: `
66
- <ng-content></ng-content>
67
- `,
68
- exportAs: 'cuteNavbarContent',
69
- host: {
70
- 'class': 'navbar-collapse collapse',
71
- '[class.show]': 'expanded',
72
- },
73
- encapsulation: ViewEncapsulation.None,
74
- changeDetection: ChangeDetectionStrategy.OnPush,
75
- standalone: true,
76
- }]
77
- }], ctorParameters: () => [] });
104
+ args: [{ selector: 'cute-navbar-content', template: `
105
+ <cute-navbar-collapse>
106
+ <ng-content></ng-content>
107
+ </cute-navbar-collapse>
108
+ `, exportAs: 'cuteNavbarContent', host: {
109
+ 'class': 'cute-navbar-content navbar-collapse',
110
+ //'[class.collapsed]': '!expanded',
111
+ '[class.breakpoint-matches]': '_breakpointMatches()',
112
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
113
+ CuteNavbarCollapse,
114
+ ], styles: [".cute-navbar-content:not(.breakpoint-matches) cute-navbar-collapse{display:block}.cute-navbar-content:not(.breakpoint-matches) cute-navbar-collapse .cute-navbar-collapse-content{display:flex;align-items:center;padding:.25rem 0}\n"] }]
115
+ }], ctorParameters: () => [], propDecorators: { _collapse: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CuteNavbarCollapse), { isSignal: true }] }] } });
78
116
 
79
117
  /**
80
118
  * @license Apache-2.0
@@ -115,12 +153,14 @@ class CuteNavbar extends CuteLayoutControl {
115
153
  }
116
154
  constructor() {
117
155
  super();
156
+ this._expanded = signal(false, ...(ngDevMode ? [{ debugName: "_expanded" }] : []));
118
157
  /** Event emitted when the navbar's content expansion status changed. */
119
158
  this.expansionChange = new EventEmitter();
120
159
  this.contentExpanded = computed(() => this._expanded(), ...(ngDevMode ? [{ debugName: "contentExpanded" }] : []));
121
- this._expanded = signal(false, ...(ngDevMode ? [{ debugName: "_expanded" }] : []));
122
160
  this.role = "navigation";
123
- this.expansionChange.pipe(takeUntilDestroyed()).subscribe(state => this._expanded.set(state));
161
+ this.expansionChange.pipe(takeUntilDestroyed()).subscribe(state => {
162
+ this._expanded.set(state);
163
+ });
124
164
  }
125
165
  generateId() {
126
166
  return `cute-navbar-${++nextId}`;
@@ -132,14 +172,14 @@ class CuteNavbar extends CuteLayoutControl {
132
172
  throw new Error("More than one 'cute-navbar-content' elements are found in the 'cute-navbar' component.");
133
173
  }
134
174
  }
135
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
136
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CuteNavbar, isStandalone: true, selector: "cute-navbar", inputs: { position: "position" }, outputs: { expansionChange: "expansionChange" }, host: { properties: { "class.shadow": "contentExpanded()", "attr.role": "role || null", "class": "this.classBinding" }, classAttribute: "cute-navbar navbar" }, providers: [{ provide: CUTE_NAVBAR, useExisting: CuteNavbar }], queries: [{ propertyName: "navContent", predicate: CuteNavbarContent, descendants: true }], exportAs: ["cuteNavbar"], usesInheritance: true, ngImport: i0, template: `
175
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
176
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: CuteNavbar, isStandalone: true, selector: "cute-navbar", inputs: { position: "position" }, outputs: { expansionChange: "expansionChange" }, host: { properties: { "class.shadow": "contentExpanded()", "attr.role": "role || null", "class": "this.classBinding" }, classAttribute: "cute-navbar navbar" }, providers: [{ provide: CUTE_NAVBAR, useExisting: CuteNavbar }], queries: [{ propertyName: "navContent", predicate: CuteNavbarContent, descendants: true }], exportAs: ["cuteNavbar"], usesInheritance: true, ngImport: i0, template: `
137
177
  <cute-container fluid>
138
178
  <ng-content></ng-content>
139
179
  </cute-container>
140
180
  `, isInline: true, styles: [".cute-navbar{z-index:1000}\n"], dependencies: [{ kind: "component", type: CuteContainer, selector: "cute-container", inputs: ["fluid"], exportAs: ["cuteContainer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
141
181
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbar, decorators: [{
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbar, decorators: [{
143
183
  type: Component,
144
184
  args: [{ selector: 'cute-navbar', template: `
145
185
  <cute-container fluid>
@@ -174,10 +214,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
174
214
  * Subcomponent for company, product, or project name
175
215
  */
176
216
  class CuteNavbarBrand {
177
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarBrand, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
178
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteNavbarBrand, isStandalone: true, selector: "[cuteNavbarBrand], [cute-navbar-brand]", host: { classAttribute: "cute-navbar-brand navbar-brand" }, exportAs: ["cuteNavbarBrand"], ngImport: i0 }); }
217
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarBrand, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
218
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteNavbarBrand, isStandalone: true, selector: "[cuteNavbarBrand], [cute-navbar-brand]", host: { classAttribute: "cute-navbar-brand navbar-brand" }, exportAs: ["cuteNavbarBrand"], ngImport: i0 }); }
179
219
  }
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarBrand, decorators: [{
220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarBrand, decorators: [{
181
221
  type: Directive,
182
222
  args: [{
183
223
  selector: '[cuteNavbarBrand], [cute-navbar-brand]',
@@ -219,10 +259,10 @@ class CuteNavbarNav extends CuteNav {
219
259
  */
220
260
  this.scrollable = false;
221
261
  }
222
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarNav, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
223
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.15", type: CuteNavbarNav, isStandalone: true, selector: "[cuteNavbarNav], [cute-navbar-nav]", inputs: { scrollable: ["scrollable", "scrollable", booleanAttribute], scrollHeight: "scrollHeight" }, host: { properties: { "class.navbar-nav-scroll": "scrollable", "style.--bs-scroll-height": "scrollHeight" }, classAttribute: "cute-navbar-nav navbar-nav align-items-start" }, providers: [{ provide: CUTE_NAV, useExisting: CuteNavbarNav }], exportAs: ["cuteNavbarNav"], usesInheritance: true, ngImport: i0 }); }
262
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarNav, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
263
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.2.0", type: CuteNavbarNav, isStandalone: true, selector: "[cuteNavbarNav], [cute-navbar-nav]", inputs: { scrollable: ["scrollable", "scrollable", booleanAttribute], scrollHeight: "scrollHeight" }, host: { properties: { "class.navbar-nav-scroll": "scrollable", "style.--bs-scroll-height": "scrollHeight" }, classAttribute: "cute-navbar-nav navbar-nav align-items-start" }, providers: [{ provide: CUTE_NAV, useExisting: CuteNavbarNav }], exportAs: ["cuteNavbarNav"], usesInheritance: true, ngImport: i0 }); }
224
264
  }
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarNav, decorators: [{
265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarNav, decorators: [{
226
266
  type: Directive,
227
267
  args: [{
228
268
  selector: '[cuteNavbarNav], [cute-navbar-nav]',
@@ -254,10 +294,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
254
294
  * This directive adjusts vertical alignment and horizontal spacing for strings of text.
255
295
  */
256
296
  class CuteNavbarText {
257
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarText, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
258
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteNavbarText, isStandalone: true, selector: "cute-navbar-text, [cuteNavbarText], [cute-navbar-text]", host: { classAttribute: "navbar-text" }, exportAs: ["cuteNavbarText"], ngImport: i0 }); }
297
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarText, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
298
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteNavbarText, isStandalone: true, selector: "cute-navbar-text, [cuteNavbarText], [cute-navbar-text]", host: { classAttribute: "navbar-text" }, exportAs: ["cuteNavbarText"], ngImport: i0 }); }
259
299
  }
260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarText, decorators: [{
300
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarText, decorators: [{
261
301
  type: Directive,
262
302
  args: [{
263
303
  selector: 'cute-navbar-text, [cuteNavbarText], [cute-navbar-text]',
@@ -284,10 +324,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
284
324
  * A trigger element for expand/collapse the `cute-navbar-content`.
285
325
  */
286
326
  class CuteNavbarToggler {
287
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarToggler, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
288
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteNavbarToggler, isStandalone: true, selector: "[cuteNavbarToggler], [cute-navbar-toggler]", host: { attributes: { "type": "button" }, classAttribute: "navbar-toggler border-secondary-subtle" }, exportAs: ["cuteNavbarToggler"], hostDirectives: [{ directive: i1.CuteCollapseTrigger, inputs: ["cuteCollapseTriggerFor", "cuteNavbarTogglerFor"] }], ngImport: i0 }); }
327
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarToggler, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
328
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteNavbarToggler, isStandalone: true, selector: "[cuteNavbarToggler], [cute-navbar-toggler]", host: { attributes: { "type": "button" }, classAttribute: "navbar-toggler border-secondary-subtle" }, exportAs: ["cuteNavbarToggler"], hostDirectives: [{ directive: i1.CuteCollapseTrigger, inputs: ["cuteCollapseTriggerFor", "cuteNavbarTogglerFor"] }], ngImport: i0 }); }
289
329
  }
290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarToggler, decorators: [{
330
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarToggler, decorators: [{
291
331
  type: Directive,
292
332
  args: [{
293
333
  selector: '[cuteNavbarToggler], [cute-navbar-toggler]',
@@ -316,8 +356,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
316
356
  * that can be found at http://www.apache.org/licenses/LICENSE-2.0
317
357
  */
318
358
  class CuteNavbarModule {
319
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
320
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarModule, imports: [CommonModule,
359
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
360
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarModule, imports: [CuteCollapseModule,
321
361
  CuteNavbar,
322
362
  CuteNavbarBrand,
323
363
  CuteNavbarContent,
@@ -329,15 +369,15 @@ class CuteNavbarModule {
329
369
  CuteNavbarNav,
330
370
  CuteNavbarText,
331
371
  CuteNavbarToggler] }); }
332
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarModule, imports: [CommonModule,
372
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarModule, imports: [CuteCollapseModule,
333
373
  CuteNavbar] }); }
334
374
  }
335
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNavbarModule, decorators: [{
375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarModule, decorators: [{
336
376
  type: NgModule,
337
377
  args: [{
338
378
  declarations: [],
339
379
  imports: [
340
- CommonModule,
380
+ CuteCollapseModule,
341
381
  CuteNavbar,
342
382
  CuteNavbarBrand,
343
383
  CuteNavbarContent,
@@ -1 +1 @@
1
- {"version":3,"file":"cute-widgets-base-navbar.mjs","sources":["../../../../projects/cute-widgets/base/navbar/src/navbar-content.component.ts","../../../../projects/cute-widgets/base/navbar/src/navbar.component.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-brand.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-nav.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-text.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-toggler.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar.module.ts","../../../../projects/cute-widgets/base/navbar/cute-widgets-base-navbar.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation} from \"@angular/core\";\r\nimport {CuteCollapse, CuteCollapseState} from \"@cute-widgets/base/collapse\";\r\nimport {CUTE_NAVBAR} from './navbar.component';\r\nimport {Subscription} from 'rxjs';\r\n\r\n/**\r\n * Collapsible navbar content.\r\n */\r\n@Component({\r\n selector: 'cute-navbar-content',\r\n template: `\r\n <ng-content></ng-content>\r\n `,\r\n exportAs: 'cuteNavbarContent',\r\n host: {\r\n 'class': 'navbar-collapse collapse',\r\n '[class.show]': 'expanded',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n})\r\nexport class CuteNavbarContent extends CuteCollapse {\r\n private _subscription: Subscription = new Subscription();\r\n protected _navbar = inject(CUTE_NAVBAR);\r\n protected _breakpointMatches = signal<boolean>(false);\r\n\r\n constructor() {\r\n super();\r\n\r\n this._subscription.add(\r\n this._navbar.breakpointState.subscribe(state => {\r\n this._breakpointMatches.set(state.matches);\r\n if (!state.matches) {\r\n this.close(); // if content was in the 'expanded' state when the screen width changed\r\n this._navbar.expansionChange.emit(false);\r\n }\r\n })\r\n );\r\n this._subscription.add(\r\n this.afterExpand.subscribe(() => {\r\n if (this._breakpointMatches()) {\r\n this._navbar.expansionChange.emit(true);\r\n }\r\n })\r\n );\r\n this._subscription.add(\r\n this.afterCollapse.subscribe(() => this._navbar.expansionChange.emit(false))\r\n );\r\n }\r\n\r\n override getState(): CuteCollapseState {\r\n if (this._breakpointMatches()) {\r\n return super.getState();\r\n }\r\n // Parent class, CuteCollapse, uses this state to trigger the expanding process.\r\n // But we use it for the sake of `visibility` property only.\r\n // TODO: Change to a simpler and clearer algorithm.\r\n return 'expanded';\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._subscription.unsubscribe();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component, computed, ContentChildren, EventEmitter,\r\n HostBinding,\r\n InjectionToken,\r\n Input, isDevMode, Output, QueryList, signal, ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport {CuteLayoutControl} from \"@cute-widgets/base/abstract\";\r\nimport {CuteContainer} from \"@cute-widgets/base/layout\";\r\nimport {CuteNavbarContent} from './navbar-content.component';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\n\r\n/** Navbar's vertical non-static position. */\r\nexport type NavbarPosition=\"fixed-top\"|\"fixed-bottom\"|\"sticky-top\"|\"sticky-bottom\";\r\n\r\nexport const CUTE_NAVBAR = new InjectionToken<CuteNavbar>(\"CUTE_NAVBAR\");\r\n\r\nlet nextId = 0;\r\n\r\n/**\r\n * Powerful and responsive navigation header in which responsive behavior depends on `CuteCollapse` component.\r\n * Includes support for branding, navigation, and more.\r\n */\r\n@Component({\r\n selector: 'cute-navbar',\r\n template: `\r\n <cute-container fluid>\r\n <ng-content></ng-content>\r\n </cute-container>\r\n `,\r\n styles: [`\r\n .cute-navbar {\r\n z-index: 1000; /* CWT: 'cdk-overlay-container' has a rule {z-index: 1000} */\r\n }\r\n `],\r\n exportAs: 'cuteNavbar',\r\n host: {\r\n 'class': 'cute-navbar navbar',\r\n '[class.shadow]': 'contentExpanded()',\r\n '[attr.role]': 'role || null',\r\n },\r\n providers: [{ provide: CUTE_NAVBAR, useExisting: CuteNavbar }],\r\n imports: [ CuteContainer ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CuteNavbar extends CuteLayoutControl {\r\n @ContentChildren(CuteNavbarContent, {descendants: true}) navContent: QueryList<CuteNavbarContent> | undefined;\r\n\r\n /** Placement `navbar` in non-static position, if the `position` differs from the default. */\r\n @Input() position: NavbarPosition | undefined;\r\n\r\n /** Event emitted when the navbar's content expansion status changed. */\r\n @Output() expansionChange = new EventEmitter<boolean>();\r\n\r\n readonly contentExpanded = computed(() => this._expanded());\r\n private _expanded = signal<boolean>(false);\r\n\r\n @HostBinding(\"class\")\r\n get classBinding(): string {\r\n let classList = \"\";\r\n\r\n if (this.breakpoint) {\r\n classList += \"navbar-expand-\"+this.breakpoint;\r\n }\r\n switch (this.position) {\r\n case \"fixed-top\":\r\n case \"fixed-bottom\":\r\n classList += \" \"+this.position;\r\n break;\r\n case \"sticky-top\":\r\n case \"sticky-bottom\":\r\n if (this.breakpoint) {\r\n classList += \" \"+this.position.replace(\"-\", \"-\"+this.breakpoint+\"-\");\r\n } else {\r\n classList += \" \"+this.position;\r\n }\r\n break;\r\n }\r\n return classList;\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.role = \"navigation\";\r\n this.expansionChange.pipe(takeUntilDestroyed()).subscribe(state => this._expanded.set(state));\r\n }\r\n\r\n protected generateId(): string {\r\n return `cute-navbar-${++nextId}`;\r\n }\r\n\r\n override ngAfterContentInit() {\r\n super.ngAfterContentInit();\r\n\r\n const count = this.navContent?.length || 0;\r\n if (count > 1 && isDevMode()) {\r\n throw new Error(\"More than one 'cute-navbar-content' elements are found in the 'cute-navbar' component.\");\r\n }\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Subcomponent for company, product, or project name\r\n */\r\n@Directive({\r\n selector: '[cuteNavbarBrand], [cute-navbar-brand]',\r\n exportAs: 'cuteNavbarBrand',\r\n host: {\r\n 'class': 'cute-navbar-brand navbar-brand'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteNavbarBrand {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {booleanAttribute, Directive, Input} from \"@angular/core\";\r\nimport {CuteNav, CUTE_NAV} from \"@cute-widgets/base/core/nav\";\r\n\r\n/**\r\n * A full-height and lightweight navigation container for including other navigation components.\r\n */\r\n@Directive({\r\n selector: '[cuteNavbarNav], [cute-navbar-nav]',\r\n exportAs: 'cuteNavbarNav',\r\n host: {\r\n 'class': 'cute-navbar-nav navbar-nav align-items-start',\r\n '[class.navbar-nav-scroll]': 'scrollable',\r\n '[style.--bs-scroll-height]': 'scrollHeight',\r\n },\r\n standalone: true,\r\n providers: [{provide: CUTE_NAV, useExisting: CuteNavbarNav}],\r\n})\r\nexport class CuteNavbarNav extends CuteNav {\r\n\r\n /**\r\n * Enable/disable vertical scrolling within the toggleable contents of a collapsed `navbar`.\r\n * By default, scrolling kicks in at 75vh (or 75% of the viewport height).\r\n */\r\n @Input({transform: booleanAttribute}) scrollable: boolean = false;\r\n\r\n /** The minimum height of the expanded content that triggers the scrolling mode when `scrollable` property is enabled. Default is **75vh**. */\r\n @Input()\r\n get scrollHeight(): string | undefined {return this._scrollHeight;}\r\n set scrollHeight(value: string | number | undefined) {\r\n if (value !== this._scrollHeight) {\r\n if (typeof value===\"number\") {\r\n value = `${value}px`;\r\n }\r\n this._scrollHeight = value;\r\n }\r\n }\r\n private _scrollHeight: string | undefined;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * This directive adjusts vertical alignment and horizontal spacing for strings of text.\r\n */\r\n@Directive({\r\n selector: 'cute-navbar-text, [cuteNavbarText], [cute-navbar-text]',\r\n exportAs: 'cuteNavbarText',\r\n host: {\r\n 'class': 'navbar-text'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteNavbarText {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\nimport {CuteCollapseTrigger} from \"@cute-widgets/base/collapse\";\r\n\r\n/**\r\n * A trigger element for expand/collapse the `cute-navbar-content`.\r\n */\r\n@Directive({\r\n selector: '[cuteNavbarToggler], [cute-navbar-toggler]',\r\n exportAs: 'cuteNavbarToggler',\r\n host: {\r\n 'class': 'navbar-toggler border-secondary-subtle',\r\n 'type': 'button',\r\n },\r\n hostDirectives: [\r\n {\r\n directive: CuteCollapseTrigger,\r\n inputs: ['cuteCollapseTriggerFor:cuteNavbarTogglerFor'],\r\n outputs: [],\r\n }\r\n ],\r\n standalone: true,\r\n})\r\nexport class CuteNavbarToggler {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {CuteNavbar} from \"./navbar.component\";\r\nimport {CuteNavbarBrand} from \"./navbar-brand.directive\";\r\nimport {CuteNavbarContent} from \"./navbar-content.component\";\r\nimport {CuteNavbarToggler} from \"./navbar-toggler.directive\";\r\nimport {CuteNavbarNav} from \"./navbar-nav.directive\";\r\nimport {CuteNavbarText} from \"./navbar-text.directive\";\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n CuteNavbar,\r\n CuteNavbarBrand,\r\n CuteNavbarContent,\r\n CuteNavbarNav,\r\n CuteNavbarText,\r\n CuteNavbarToggler,\r\n ],\r\n exports: [\r\n CuteNavbar,\r\n CuteNavbarBrand,\r\n CuteNavbarContent,\r\n CuteNavbarNav,\r\n CuteNavbarText,\r\n CuteNavbarToggler,\r\n ],\r\n providers: [],\r\n})\r\nexport class CuteNavbarModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cute-widgets-base-navbar.mjs","sources":["../../../../projects/cute-widgets/base/navbar/src/navbar-collapse.component.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-collapse.component.html","../../../../projects/cute-widgets/base/navbar/src/navbar-content.component.ts","../../../../projects/cute-widgets/base/navbar/src/navbar.component.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-brand.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-nav.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-text.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-toggler.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar.module.ts","../../../../projects/cute-widgets/base/navbar/cute-widgets-base-navbar.ts"],"sourcesContent":["import {CuteCollapseBase} from '@cute-widgets/base/collapse';\r\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cute-navbar-collapse',\r\n templateUrl: './navbar-collapse.component.html',\r\n styleUrl: './navbar-collapse.component.scss',\r\n exportAs: 'cuteNavbarCollapse',\r\n host: {\r\n 'class': 'cute-navbar-collapse',\r\n '[class]': '\"cute-navbar-collapse-\"+(horizontal ? \"horizontal\" : \"vertical\")+\" \"+getState()',\r\n '[class.cute-navbar-collapse-animations-enabled]': '!disableAnimation',\r\n '[id]': 'id || null',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CuteNavbarCollapse extends CuteCollapseBase {}\r\n","<div class=\"cute-navbar-collapse-content\">\r\n <ng-content></ng-content>\r\n</div>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n AfterViewChecked,\r\n ChangeDetectionStrategy,\r\n Component,\r\n inject,\r\n signal, viewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CUTE_NAVBAR} from './navbar.component';\r\nimport {Subscription} from 'rxjs';\r\nimport {CuteLayoutControl, Expandable} from '@cute-widgets/base/abstract';\r\nimport {MediaMatcher} from '@angular/cdk/layout';\r\nimport {bsBreakpoints} from '@cute-widgets/base/core';\r\nimport {CuteNavbarCollapse} from './navbar-collapse.component';\r\n\r\nlet uniqueId: number = 0;\r\n\r\n/**\r\n * Collapsible navbar content.\r\n */\r\n@Component({\r\n selector: 'cute-navbar-content',\r\n template: `\r\n <cute-navbar-collapse>\r\n <ng-content></ng-content>\r\n </cute-navbar-collapse>\r\n `,\r\n styleUrl: './navbar-content.component.scss',\r\n exportAs: 'cuteNavbarContent',\r\n host: {\r\n 'class': 'cute-navbar-content navbar-collapse',\r\n //'[class.collapsed]': '!expanded',\r\n '[class.breakpoint-matches]': '_breakpointMatches()',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CuteNavbarCollapse,\r\n ]\r\n})\r\nexport class CuteNavbarContent extends CuteLayoutControl implements Expandable, AfterViewChecked {\r\n private _selfSubscriptions: Subscription = new Subscription();\r\n protected _navbar = inject(CUTE_NAVBAR);\r\n protected mediaMatcher = inject(MediaMatcher);\r\n protected _breakpointMatches = signal<boolean>(false);\r\n protected _collapse = viewChild.required(CuteNavbarCollapse);\r\n\r\n private readonly _navbarMediaQueries: string[];\r\n\r\n constructor() {\r\n super();\r\n\r\n this._navbarMediaQueries = bsBreakpoints.getMediaQueries(this._navbar.breakpoint ?? []);\r\n\r\n this._selfSubscriptions.add(\r\n this._navbar.breakpointState.subscribe(state => {\r\n this._breakpointMatches.set(state.matches);\r\n if (!state.matches) {\r\n this._collapse().close(); // if content was in the 'expanded' state when the screen width changed\r\n this._navbar.expansionChange.emit(false);\r\n }\r\n })\r\n );\r\n\r\n }\r\n\r\n get expanded(): boolean {\r\n return this._collapse().expanded;\r\n }\r\n\r\n private get mediaMatches(): boolean {\r\n if (this._navbarMediaQueries.length) {\r\n return this.mediaMatcher.matchMedia(this._navbarMediaQueries[0]).matches;\r\n }\r\n return false;\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-navbar-content-${uniqueId++}`;\r\n }\r\n\r\n open() {\r\n this._collapse().open();\r\n }\r\n\r\n close() {\r\n this._collapse().close();\r\n }\r\n\r\n toggle() {\r\n this._collapse().toggle();\r\n }\r\n\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this._selfSubscriptions.add(\r\n this._collapse().afterExpand.subscribe(() => {\r\n if (this._breakpointMatches()) {\r\n this._navbar.expansionChange.emit(true);\r\n }\r\n })\r\n );\r\n this._selfSubscriptions.add(\r\n this._collapse().afterCollapse.subscribe(() => {\r\n this._navbar.expansionChange.emit(false);\r\n })\r\n );\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this._breakpointMatches.set(this.mediaMatches);\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._selfSubscriptions.unsubscribe();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component, computed, ContentChildren, EventEmitter,\r\n HostBinding,\r\n InjectionToken,\r\n Input, isDevMode, Output, QueryList, signal, ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport {CuteLayoutControl} from \"@cute-widgets/base/abstract\";\r\nimport {CuteContainer} from \"@cute-widgets/base/layout\";\r\nimport {CuteNavbarContent} from './navbar-content.component';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\n\r\n/** Navbar's vertical non-static position. */\r\nexport type NavbarPosition=\"fixed-top\"|\"fixed-bottom\"|\"sticky-top\"|\"sticky-bottom\";\r\n\r\nexport const CUTE_NAVBAR = new InjectionToken<CuteNavbar>(\"CUTE_NAVBAR\");\r\n\r\nlet nextId = 0;\r\n\r\n/**\r\n * Powerful and responsive navigation header in which responsive behavior depends on `CuteCollapse` component.\r\n * Includes support for branding, navigation, and more.\r\n */\r\n@Component({\r\n selector: 'cute-navbar',\r\n template: `\r\n <cute-container fluid>\r\n <ng-content></ng-content>\r\n </cute-container>\r\n `,\r\n styles: [`\r\n .cute-navbar {\r\n z-index: 1000; /* CWT: 'cdk-overlay-container' has a rule {z-index: 1000} */\r\n }\r\n `],\r\n exportAs: 'cuteNavbar',\r\n host: {\r\n 'class': 'cute-navbar navbar',\r\n '[class.shadow]': 'contentExpanded()',\r\n '[attr.role]': 'role || null',\r\n },\r\n providers: [{ provide: CUTE_NAVBAR, useExisting: CuteNavbar }],\r\n imports: [ CuteContainer ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CuteNavbar extends CuteLayoutControl {\r\n private _expanded = signal<boolean>(false);\r\n\r\n @ContentChildren(CuteNavbarContent, {descendants: true}) navContent: QueryList<CuteNavbarContent> | undefined;\r\n\r\n /** Placement `navbar` in non-static position, if the `position` differs from the default. */\r\n @Input() position: NavbarPosition | undefined;\r\n\r\n /** Event emitted when the navbar's content expansion status changed. */\r\n @Output() expansionChange = new EventEmitter<boolean>();\r\n\r\n readonly contentExpanded = computed(() => this._expanded());\r\n\r\n @HostBinding(\"class\")\r\n get classBinding(): string {\r\n let classList = \"\";\r\n\r\n if (this.breakpoint) {\r\n classList += \"navbar-expand-\"+this.breakpoint;\r\n }\r\n switch (this.position) {\r\n case \"fixed-top\":\r\n case \"fixed-bottom\":\r\n classList += \" \"+this.position;\r\n break;\r\n case \"sticky-top\":\r\n case \"sticky-bottom\":\r\n if (this.breakpoint) {\r\n classList += \" \"+this.position.replace(\"-\", \"-\"+this.breakpoint+\"-\");\r\n } else {\r\n classList += \" \"+this.position;\r\n }\r\n break;\r\n }\r\n return classList;\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.role = \"navigation\";\r\n\r\n this.expansionChange.pipe(takeUntilDestroyed()).subscribe(state => {\r\n this._expanded.set(state);\r\n });\r\n }\r\n\r\n protected generateId(): string {\r\n return `cute-navbar-${++nextId}`;\r\n }\r\n\r\n override ngAfterContentInit() {\r\n super.ngAfterContentInit();\r\n\r\n const count = this.navContent?.length || 0;\r\n if (count > 1 && isDevMode()) {\r\n throw new Error(\"More than one 'cute-navbar-content' elements are found in the 'cute-navbar' component.\");\r\n }\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Subcomponent for company, product, or project name\r\n */\r\n@Directive({\r\n selector: '[cuteNavbarBrand], [cute-navbar-brand]',\r\n exportAs: 'cuteNavbarBrand',\r\n host: {\r\n 'class': 'cute-navbar-brand navbar-brand'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteNavbarBrand {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {booleanAttribute, Directive, Input} from \"@angular/core\";\r\nimport {CuteNav, CUTE_NAV} from \"@cute-widgets/base/core/nav\";\r\n\r\n/**\r\n * A full-height and lightweight navigation container for including other navigation components.\r\n */\r\n@Directive({\r\n selector: '[cuteNavbarNav], [cute-navbar-nav]',\r\n exportAs: 'cuteNavbarNav',\r\n host: {\r\n 'class': 'cute-navbar-nav navbar-nav align-items-start',\r\n '[class.navbar-nav-scroll]': 'scrollable',\r\n '[style.--bs-scroll-height]': 'scrollHeight',\r\n },\r\n standalone: true,\r\n providers: [{provide: CUTE_NAV, useExisting: CuteNavbarNav}],\r\n})\r\nexport class CuteNavbarNav extends CuteNav {\r\n\r\n /**\r\n * Enable/disable vertical scrolling within the toggleable contents of a collapsed `navbar`.\r\n * By default, scrolling kicks in at 75vh (or 75% of the viewport height).\r\n */\r\n @Input({transform: booleanAttribute}) scrollable: boolean = false;\r\n\r\n /** The minimum height of the expanded content that triggers the scrolling mode when `scrollable` property is enabled. Default is **75vh**. */\r\n @Input()\r\n get scrollHeight(): string | undefined {return this._scrollHeight;}\r\n set scrollHeight(value: string | number | undefined) {\r\n if (value !== this._scrollHeight) {\r\n if (typeof value===\"number\") {\r\n value = `${value}px`;\r\n }\r\n this._scrollHeight = value;\r\n }\r\n }\r\n private _scrollHeight: string | undefined;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * This directive adjusts vertical alignment and horizontal spacing for strings of text.\r\n */\r\n@Directive({\r\n selector: 'cute-navbar-text, [cuteNavbarText], [cute-navbar-text]',\r\n exportAs: 'cuteNavbarText',\r\n host: {\r\n 'class': 'navbar-text'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteNavbarText {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\nimport {CuteCollapseTrigger} from \"@cute-widgets/base/collapse\";\r\n\r\n/**\r\n * A trigger element for expand/collapse the `cute-navbar-content`.\r\n */\r\n@Directive({\r\n selector: '[cuteNavbarToggler], [cute-navbar-toggler]',\r\n exportAs: 'cuteNavbarToggler',\r\n host: {\r\n 'class': 'navbar-toggler border-secondary-subtle',\r\n 'type': 'button',\r\n },\r\n hostDirectives: [\r\n {\r\n directive: CuteCollapseTrigger,\r\n inputs: ['cuteCollapseTriggerFor:cuteNavbarTogglerFor'],\r\n outputs: [],\r\n }\r\n ],\r\n standalone: true,\r\n})\r\nexport class CuteNavbarToggler {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport { NgModule } from '@angular/core';\r\nimport {CuteNavbar} from \"./navbar.component\";\r\nimport {CuteNavbarBrand} from \"./navbar-brand.directive\";\r\nimport {CuteNavbarContent} from \"./navbar-content.component\";\r\nimport {CuteNavbarToggler} from \"./navbar-toggler.directive\";\r\nimport {CuteNavbarNav} from \"./navbar-nav.directive\";\r\nimport {CuteNavbarText} from \"./navbar-text.directive\";\r\nimport {CuteCollapseModule} from '@cute-widgets/base/collapse';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CuteCollapseModule,\r\n CuteNavbar,\r\n CuteNavbarBrand,\r\n CuteNavbarContent,\r\n CuteNavbarNav,\r\n CuteNavbarText,\r\n CuteNavbarToggler,\r\n ],\r\n exports: [\r\n CuteNavbar,\r\n CuteNavbarBrand,\r\n CuteNavbarContent,\r\n CuteNavbarNav,\r\n CuteNavbarText,\r\n CuteNavbarToggler,\r\n ],\r\n providers: [],\r\n})\r\nexport class CuteNavbarModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}