@coreui/angular 5.7.24 → 5.7.25

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, Directive, input, Renderer2, effect, TemplateRef, booleanAttribute, untracked, NgModule, computed, Injectable, Component, linkedSignal, output, signal, contentChildren, numberAttribute, MAX_ANIMATION_TIMEOUT, DestroyRef, DOCUMENT, PLATFORM_ID, RendererFactory2, afterNextRender, forwardRef, NgZone, ChangeDetectorRef, contentChild, afterEveryRender, viewChild, ViewContainerRef, model, afterRenderEffect, ChangeDetectionStrategy, Pipe, Input, HostBinding, ContentChildren, HostListener, Injector, runInInjectionContext, ViewEncapsulation } from '@angular/core';
2
+ import { inject, ElementRef, Directive, input, Renderer2, effect, TemplateRef, booleanAttribute, untracked, NgModule, computed, Injectable, Component, linkedSignal, output, signal, contentChildren, numberAttribute, MAX_ANIMATION_TIMEOUT, DestroyRef, DOCUMENT, PLATFORM_ID, RendererFactory2, afterNextRender, forwardRef, NgZone, ChangeDetectorRef, contentChild, afterEveryRender, viewChild, ViewContainerRef, model, afterRenderEffect, Pipe, Input, HostBinding, ChangeDetectionStrategy, ContentChildren, HostListener, Injector, runInInjectionContext, ViewEncapsulation } from '@angular/core';
3
3
  import { NgTemplateOutlet, isPlatformServer, isPlatformBrowser } from '@angular/common';
4
4
  import { takeUntilDestroyed, toSignal, toObservable } from '@angular/core/rxjs-interop';
5
5
  import { fromEvent, Subject, BehaviorSubject, merge, takeWhile, skipWhile } from 'rxjs';
@@ -11,7 +11,6 @@ import * as i1$1 from '@angular/cdk/a11y';
11
11
  import { FocusKeyManager, FocusMonitor, A11yModule } from '@angular/cdk/a11y';
12
12
  import { BreakpointObserver } from '@angular/cdk/layout';
13
13
  import { DomPortal, DomPortalOutlet } from '@angular/cdk/portal';
14
- import { trigger, state, style, transition, animate } from '@angular/animations';
15
14
  import { IconDirective } from '@coreui/icons-angular';
16
15
 
17
16
  var BreakpointInfix;
@@ -456,7 +455,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
456
455
  }]
457
456
  }] });
458
457
 
459
- let nextId$2 = 0;
458
+ let nextId$3 = 0;
460
459
  class AccordionItemComponent {
461
460
  #accordionService = inject(AccordionService);
462
461
  /**
@@ -477,7 +476,7 @@ class AccordionItemComponent {
477
476
  get visible() {
478
477
  return this.itemVisible();
479
478
  }
480
- contentId = `accordion-item-${nextId$2++}`;
479
+ contentId = `accordion-item-${nextId$3++}`;
481
480
  get itemContext() {
482
481
  return { $implicit: this.itemVisible() };
483
482
  }
@@ -4994,8 +4993,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
4994
4993
  }]
4995
4994
  }] });
4996
4995
 
4996
+ class NavGroupService {
4997
+ /**
4998
+ * Id of the open group at this level, `undefined` when none is open.
4999
+ */
5000
+ activeId = signal(undefined, /* @ts-ignore */
5001
+ ...(ngDevMode ? [{ debugName: "activeId" }] : /* istanbul ignore next */ []));
5002
+ /**
5003
+ * Opens the level owner within its own parent and cascades up to the root.
5004
+ * Replaced by the owning `c-nav-group`; stays a no-op for the root level.
5005
+ */
5006
+ openBranch = () => undefined;
5007
+ setActiveId(id) {
5008
+ this.activeId.set(id);
5009
+ }
5010
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5011
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupService });
5012
+ }
5013
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupService, decorators: [{
5014
+ type: Injectable
5015
+ }] });
5016
+
5017
+ const DISABLED_ATTR_ELEMENTS = new Set(['button', 'fieldset', 'input', 'optgroup', 'option', 'select', 'textarea']);
4997
5018
  class NavLinkDirective {
4998
5019
  static ngAcceptInputType_disabled;
5020
+ #hostElement = inject(ElementRef);
5021
+ #navGroupService = inject(NavGroupService, { optional: true });
5022
+ #classObserver;
5023
+ constructor() {
5024
+ afterNextRender({
5025
+ read: () => {
5026
+ this.#observeActiveClass();
5027
+ }
5028
+ });
5029
+ }
4999
5030
  /**
5000
5031
  * Sets .nav-link class to the host
5001
5032
  * @returns boolean
@@ -5027,15 +5058,23 @@ class NavLinkDirective {
5027
5058
  ariaDisabled = null;
5028
5059
  attrDisabled = null;
5029
5060
  attrTabindex = null;
5030
- styleCursor = null;
5031
5061
  #disabledEffect = effect(() => {
5032
5062
  const disabled = this.disabled();
5033
- this.ariaDisabled = disabled || null;
5034
- this.attrDisabled = disabled ? '' : null;
5035
- this.attrTabindex = disabled ? -1 : (this.tabindex() ?? null);
5036
- this.styleCursor = disabled ? null : 'pointer';
5063
+ const tabindex = this.tabindex();
5064
+ const disabledAttrElement = DISABLED_ATTR_ELEMENTS.has(this.#tagName);
5065
+ this.ariaDisabled = (disabled && !disabledAttrElement) || null;
5066
+ this.attrDisabled = disabled && disabledAttrElement ? '' : null;
5067
+ this.attrTabindex = disabled && !disabledAttrElement ? -1 : (Number.isNaN(tabindex) ? null : (tabindex ?? null));
5037
5068
  }, /* @ts-ignore */
5038
5069
  ...(ngDevMode ? [{ debugName: "#disabledEffect" }] : /* istanbul ignore next */ []));
5070
+ #activeEffect = effect(() => {
5071
+ if (this.active()) {
5072
+ untracked(() => {
5073
+ this.#navGroupService?.openBranch();
5074
+ });
5075
+ }
5076
+ }, /* @ts-ignore */
5077
+ ...(ngDevMode ? [{ debugName: "#activeEffect" }] : /* istanbul ignore next */ []));
5039
5078
  hostClasses = computed(() => {
5040
5079
  return {
5041
5080
  'nav-link': this.cNavLink(),
@@ -5044,8 +5083,32 @@ class NavLinkDirective {
5044
5083
  };
5045
5084
  }, /* @ts-ignore */
5046
5085
  ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
5086
+ get #tagName() {
5087
+ return this.#hostElement.nativeElement.tagName.toLowerCase();
5088
+ }
5089
+ ngOnDestroy() {
5090
+ this.#classObserver?.disconnect();
5091
+ }
5092
+ #observeActiveClass() {
5093
+ const host = this.#hostElement.nativeElement;
5094
+ if (!this.#navGroupService) {
5095
+ return;
5096
+ }
5097
+ let wasActive = host.classList.contains('active');
5098
+ if (wasActive) {
5099
+ this.#navGroupService.openBranch();
5100
+ }
5101
+ this.#classObserver = new MutationObserver(() => {
5102
+ const active = host.classList.contains('active');
5103
+ if (active && !wasActive) {
5104
+ this.#navGroupService?.openBranch();
5105
+ }
5106
+ wasActive = active;
5107
+ });
5108
+ this.#classObserver.observe(host, { attributes: true, attributeFilter: ['class'] });
5109
+ }
5047
5110
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
5048
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: NavLinkDirective, isStandalone: true, selector: "[cNavLink]", inputs: { cNavLink: { classPropertyName: "cNavLink", publicName: "cNavLink", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.aria-current": "ariaCurrent()", "attr.aria-disabled": "ariaDisabled", "attr.disabled": "attrDisabled", "attr.tabindex": "attrTabindex", "style.cursor": "styleCursor" } }, ngImport: i0 });
5111
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: NavLinkDirective, isStandalone: true, selector: "[cNavLink]", inputs: { cNavLink: { classPropertyName: "cNavLink", publicName: "cNavLink", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.aria-current": "ariaCurrent()", "attr.aria-disabled": "ariaDisabled", "attr.disabled": "attrDisabled", "attr.tabindex": "attrTabindex" } }, ngImport: i0 });
5049
5112
  }
5050
5113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavLinkDirective, decorators: [{
5051
5114
  type: Directive,
@@ -5056,19 +5119,182 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
5056
5119
  '[attr.aria-current]': 'ariaCurrent()',
5057
5120
  '[attr.aria-disabled]': 'ariaDisabled',
5058
5121
  '[attr.disabled]': 'attrDisabled',
5059
- '[attr.tabindex]': 'attrTabindex',
5060
- '[style.cursor]': 'styleCursor'
5122
+ '[attr.tabindex]': 'attrTabindex'
5061
5123
  }
5062
5124
  }]
5063
- }], propDecorators: { cNavLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "cNavLink", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], tabindex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabindex", required: false }] }] } });
5125
+ }], ctorParameters: () => [], propDecorators: { cNavLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "cNavLink", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], tabindex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabindex", required: false }] }] } });
5126
+
5127
+ class NavGroupItemsComponent {
5128
+ static ngAcceptInputType_compact;
5129
+ /**
5130
+ * Make nav group items more compact by cutting all `padding` in half.
5131
+ * @returns boolean
5132
+ * @default false
5133
+ */
5134
+ compact = input(false, { ...(ngDevMode ? { debugName: "compact" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
5135
+ hostClasses = computed(() => {
5136
+ return {
5137
+ 'nav-group-items': true,
5138
+ compact: this.compact()
5139
+ };
5140
+ }, /* @ts-ignore */
5141
+ ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
5142
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5143
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: NavGroupItemsComponent, isStandalone: true, selector: "c-nav-group-items", inputs: { compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block}\n"] });
5144
+ }
5145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupItemsComponent, decorators: [{
5146
+ type: Component,
5147
+ args: [{ selector: 'c-nav-group-items', template: '<ng-content />', host: { '[class]': 'hostClasses()' }, styles: [":host{display:block}\n"] }]
5148
+ }], propDecorators: { compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }] } });
5149
+
5150
+ let nextId$2 = 0;
5151
+ class NavGroupComponent {
5152
+ static ngAcceptInputType_compact;
5153
+ static ngAcceptInputType_visible;
5154
+ #navGroupService = inject(NavGroupService);
5155
+ #parentNavGroupService = inject(NavGroupService, { optional: true, skipSelf: true });
5156
+ #id = `nav-group-${nextId$2++}`;
5157
+ constructor() {
5158
+ this.#navGroupService.openBranch = () => {
5159
+ this.openBranch();
5160
+ };
5161
+ }
5162
+ /**
5163
+ * Make nav group items more compact by cutting all `padding` in half.
5164
+ * @returns boolean
5165
+ * @default false
5166
+ */
5167
+ compact = input(false, { ...(ngDevMode ? { debugName: "compact" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
5168
+ /**
5169
+ * Set group toggler label.
5170
+ * @returns string
5171
+ */
5172
+ toggler = input(/* @ts-ignore */
5173
+ ...(ngDevMode ? [undefined, { debugName: "toggler" }] : /* istanbul ignore next */ []));
5174
+ /**
5175
+ * Template for the group toggler content, receives the visible state as `$implicit`.
5176
+ * @returns TemplateRef
5177
+ */
5178
+ togglerTemplate = input(/* @ts-ignore */
5179
+ ...(ngDevMode ? [undefined, { debugName: "togglerTemplate" }] : /* istanbul ignore next */ []));
5180
+ /**
5181
+ * Show nav group items. Sets the initial state, and follows every later change.
5182
+ * @returns boolean
5183
+ */
5184
+ visible = input(undefined, { ...(ngDevMode ? { debugName: "visible" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
5185
+ /**
5186
+ * Event emitted on visibility change.
5187
+ * @returns boolean
5188
+ */
5189
+ visibleChange = output();
5190
+ #uncontrolledVisible = signal(false, /* @ts-ignore */
5191
+ ...(ngDevMode ? [{ debugName: "#uncontrolledVisible" }] : /* istanbul ignore next */ []));
5192
+ display = signal(null, /* @ts-ignore */
5193
+ ...(ngDevMode ? [{ debugName: "display" }] : /* istanbul ignore next */ []));
5194
+ visibleState = computed(() => {
5195
+ const parent = this.#parentNavGroupService;
5196
+ return parent ? parent.activeId() === this.#id : this.#uncontrolledVisible();
5197
+ }, /* @ts-ignore */
5198
+ ...(ngDevMode ? [{ debugName: "visibleState" }] : /* istanbul ignore next */ []));
5199
+ hostClasses = computed(() => {
5200
+ return {
5201
+ 'nav-group': true,
5202
+ show: this.visibleState()
5203
+ };
5204
+ }, /* @ts-ignore */
5205
+ ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
5206
+ #visibleEffect = effect(() => {
5207
+ const visible = this.visible();
5208
+ if (visible === undefined) {
5209
+ return;
5210
+ }
5211
+ untracked(() => {
5212
+ this.#setVisible(visible);
5213
+ });
5214
+ }, /* @ts-ignore */
5215
+ ...(ngDevMode ? [{ debugName: "#visibleEffect" }] : /* istanbul ignore next */ []));
5216
+ toggleGroup(event) {
5217
+ event.preventDefault();
5218
+ const next = !this.visibleState();
5219
+ this.#setVisible(next);
5220
+ this.visibleChange.emit(next);
5221
+ }
5222
+ openBranch() {
5223
+ const parent = this.#parentNavGroupService;
5224
+ if (!parent) {
5225
+ this.#uncontrolledVisible.set(true);
5226
+ return;
5227
+ }
5228
+ parent.setActiveId(this.#id);
5229
+ parent.openBranch();
5230
+ }
5231
+ onCollapseChange(state) {
5232
+ this.display.set(state === 'collapsed' || state === 'open' ? null : 'block');
5233
+ }
5234
+ #setVisible(visible) {
5235
+ const parent = this.#parentNavGroupService;
5236
+ if (!parent) {
5237
+ this.#uncontrolledVisible.set(visible);
5238
+ return;
5239
+ }
5240
+ if (visible) {
5241
+ parent.setActiveId(this.#id);
5242
+ return;
5243
+ }
5244
+ if (parent.activeId() === this.#id) {
5245
+ parent.setActiveId(undefined);
5246
+ }
5247
+ }
5248
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5249
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: NavGroupComponent, isStandalone: true, selector: "c-nav-group", inputs: { compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, toggler: { classPropertyName: "toggler", publicName: "toggler", isSignal: true, isRequired: false, transformFunction: null }, togglerTemplate: { classPropertyName: "togglerTemplate", publicName: "togglerTemplate", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [NavGroupService], ngImport: i0, template: "@if (toggler() || togglerTemplate()) {\n <a\n (click)=\"toggleGroup($event)\"\n [attr.aria-expanded]=\"visibleState()\"\n class=\"nav-link nav-group-toggle\"\n href\n >\n @if (togglerTemplate(); as template) {\n <ng-container\n *ngTemplateOutlet=\"template; context: { $implicit: visibleState(), visible: visibleState() }\"\n />\n } @else {\n {{ toggler() }}\n }\n </a>\n}\n<c-nav-group-items\n (collapseChange)=\"onCollapseChange($event)\"\n [compact]=\"compact()\"\n [style.display]=\"display()\"\n [visible]=\"visibleState()\"\n cCollapse\n>\n <ng-content />\n</c-nav-group-items>\n", styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"], dependencies: [{ kind: "directive", type: CollapseDirective, selector: "[cCollapse]", inputs: ["animate", "horizontal", "visible", "navbar"], outputs: ["visibleChange", "collapseChange"], exportAs: ["cCollapse"] }, { kind: "component", type: NavGroupItemsComponent, selector: "c-nav-group-items", inputs: ["compact"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
5250
+ }
5251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupComponent, decorators: [{
5252
+ type: Component,
5253
+ args: [{ selector: 'c-nav-group', imports: [CollapseDirective, NavGroupItemsComponent, NgTemplateOutlet], providers: [NavGroupService], host: { '[class]': 'hostClasses()' }, template: "@if (toggler() || togglerTemplate()) {\n <a\n (click)=\"toggleGroup($event)\"\n [attr.aria-expanded]=\"visibleState()\"\n class=\"nav-link nav-group-toggle\"\n href\n >\n @if (togglerTemplate(); as template) {\n <ng-container\n *ngTemplateOutlet=\"template; context: { $implicit: visibleState(), visible: visibleState() }\"\n />\n } @else {\n {{ toggler() }}\n }\n </a>\n}\n<c-nav-group-items\n (collapseChange)=\"onCollapseChange($event)\"\n [compact]=\"compact()\"\n [style.display]=\"display()\"\n [visible]=\"visibleState()\"\n cCollapse\n>\n <ng-content />\n</c-nav-group-items>\n", styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"] }]
5254
+ }], ctorParameters: () => [], propDecorators: { compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], toggler: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggler", required: false }] }], togglerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "togglerTemplate", required: false }] }], visible: [{ type: i0.Input, args: [{ isSignal: true, alias: "visible", required: false }] }], visibleChange: [{ type: i0.Output, args: ["visibleChange"] }] } });
5064
5255
 
5065
5256
  class NavItemComponent {
5257
+ static ngAcceptInputType_active;
5258
+ static ngAcceptInputType_disabled;
5259
+ static ngAcceptInputType_tabindex;
5260
+ /**
5261
+ * Toggle the active state for the nav link rendered for `href`.
5262
+ * @returns boolean
5263
+ * @default undefined
5264
+ */
5265
+ active = input(undefined, { ...(ngDevMode ? { debugName: "active" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
5266
+ /**
5267
+ * Set disabled attr for the nav link rendered for `href`.
5268
+ * @returns boolean
5269
+ * @default false
5270
+ */
5271
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
5272
+ /**
5273
+ * The href attribute of the nav link. Set it to render the nav link, otherwise the item projects its content as is.
5274
+ * @returns string
5275
+ */
5276
+ href = input(/* @ts-ignore */
5277
+ ...(ngDevMode ? [undefined, { debugName: "href" }] : /* istanbul ignore next */ []));
5278
+ /**
5279
+ * The tabindex attribute of the nav link rendered for `href`.
5280
+ * @returns number | undefined
5281
+ */
5282
+ tabindex = input(undefined, { ...(ngDevMode ? { debugName: "tabindex" } : /* istanbul ignore next */ {}), transform: numberAttribute });
5066
5283
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5067
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: NavItemComponent, isStandalone: true, selector: "c-nav-item", host: { classAttribute: "nav-item" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"] });
5284
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: NavItemComponent, isStandalone: true, selector: "c-nav-item", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "nav-item" }, ngImport: i0, template: "@if (href()) {\n <a\n [active]=\"active()\"\n [attr.href]=\"href()\"\n [disabled]=\"disabled()\"\n [tabindex]=\"tabindex()\"\n cNavLink\n >\n <ng-container *ngTemplateOutlet=\"content\" />\n </a>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n", styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"], dependencies: [{ kind: "directive", type: NavLinkDirective, selector: "[cNavLink]", inputs: ["cNavLink", "active", "disabled", "tabindex"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
5068
5285
  }
5069
5286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavItemComponent, decorators: [{
5070
5287
  type: Component,
5071
- args: [{ selector: 'c-nav-item', template: '<ng-content />', host: { class: 'nav-item' }, styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"] }]
5288
+ args: [{ selector: 'c-nav-item', imports: [NavLinkDirective, NgTemplateOutlet], host: { class: 'nav-item' }, template: "@if (href()) {\n <a\n [active]=\"active()\"\n [attr.href]=\"href()\"\n [disabled]=\"disabled()\"\n [tabindex]=\"tabindex()\"\n cNavLink\n >\n <ng-container *ngTemplateOutlet=\"content\" />\n </a>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n", styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"] }]
5289
+ }], propDecorators: { active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], tabindex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabindex", required: false }] }] } });
5290
+
5291
+ class NavTitleComponent {
5292
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5293
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: NavTitleComponent, isStandalone: true, selector: "c-nav-title", host: { classAttribute: "nav-title" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"] });
5294
+ }
5295
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavTitleComponent, decorators: [{
5296
+ type: Component,
5297
+ args: [{ selector: 'c-nav-title', template: '<ng-content />', host: { class: 'nav-title' }, styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"] }]
5072
5298
  }] });
5073
5299
 
5074
5300
  class NavComponent {
@@ -5078,6 +5304,13 @@ class NavComponent {
5078
5304
  */
5079
5305
  layout = input(/* @ts-ignore */
5080
5306
  ...(ngDevMode ? [undefined, { debugName: "layout" }] : /* istanbul ignore next */ []));
5307
+ /**
5308
+ * Default role for nav.
5309
+ * @returns string
5310
+ * @default 'navigation'
5311
+ */
5312
+ role = input('navigation', /* @ts-ignore */
5313
+ ...(ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []));
5081
5314
  /**
5082
5315
  * Set the nav variant to tabs or pills.
5083
5316
  * @default undefined
@@ -5090,25 +5323,32 @@ class NavComponent {
5090
5323
  return {
5091
5324
  nav: true,
5092
5325
  [`nav-${layout}`]: !!layout,
5326
+ 'nav-enclosed': variant === 'enclosed' || variant === 'enclosed-pills',
5093
5327
  [`nav-${variant}`]: !!variant
5094
5328
  };
5095
5329
  }, /* @ts-ignore */
5096
5330
  ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
5097
5331
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5098
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: NavComponent, isStandalone: true, selector: "c-nav", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" }, classAttribute: "nav" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host .nav-link:focus{outline:0}:host.nav-underline-border{column-gap:0}\n"] });
5332
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: NavComponent, isStandalone: true, selector: "c-nav", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "role()" }, classAttribute: "nav" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host .nav-link:focus{outline:0}:host.nav-underline-border{column-gap:0}\n"] });
5099
5333
  }
5100
5334
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavComponent, decorators: [{
5101
5335
  type: Component,
5102
- args: [{ selector: 'c-nav', template: '<ng-content />', host: { class: 'nav', '[class]': 'hostClasses()' }, styles: [":host .nav-link:focus{outline:0}:host.nav-underline-border{column-gap:0}\n"] }]
5103
- }], propDecorators: { layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
5336
+ args: [{ selector: 'c-nav', template: '<ng-content />', host: { class: 'nav', '[class]': 'hostClasses()', '[attr.role]': 'role()' }, styles: [":host .nav-link:focus{outline:0}:host.nav-underline-border{column-gap:0}\n"] }]
5337
+ }], propDecorators: { layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
5104
5338
 
5105
5339
  class NavModule {
5106
5340
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5107
5341
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.4", ngImport: i0, type: NavModule, imports: [NavComponent,
5342
+ NavGroupComponent,
5343
+ NavGroupItemsComponent,
5108
5344
  NavItemComponent,
5109
- NavLinkDirective], exports: [NavComponent,
5345
+ NavLinkDirective,
5346
+ NavTitleComponent], exports: [NavComponent,
5347
+ NavGroupComponent,
5348
+ NavGroupItemsComponent,
5110
5349
  NavItemComponent,
5111
- NavLinkDirective] });
5350
+ NavLinkDirective,
5351
+ NavTitleComponent] });
5112
5352
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavModule });
5113
5353
  }
5114
5354
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavModule, decorators: [{
@@ -5116,13 +5356,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
5116
5356
  args: [{
5117
5357
  imports: [
5118
5358
  NavComponent,
5359
+ NavGroupComponent,
5360
+ NavGroupItemsComponent,
5119
5361
  NavItemComponent,
5120
- NavLinkDirective
5362
+ NavLinkDirective,
5363
+ NavTitleComponent
5121
5364
  ],
5122
5365
  exports: [
5123
5366
  NavComponent,
5367
+ NavGroupComponent,
5368
+ NavGroupItemsComponent,
5124
5369
  NavItemComponent,
5125
- NavLinkDirective
5370
+ NavLinkDirective,
5371
+ NavTitleComponent
5126
5372
  ]
5127
5373
  }]
5128
5374
  }] });
@@ -7672,7 +7918,7 @@ class SidebarComponent {
7672
7918
  }
7673
7919
  }
7674
7920
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7675
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SidebarComponent, isStandalone: true, selector: "c-sidebar", inputs: { colorScheme: { classPropertyName: "colorScheme", publicName: "colorScheme", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, narrowInput: { classPropertyName: "narrowInput", publicName: "narrow", isSignal: true, isRequired: false, transformFunction: null }, overlaid: { classPropertyName: "overlaid", publicName: "overlaid", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, unfoldableInput: { classPropertyName: "unfoldableInput", publicName: "unfoldable", isSignal: true, isRequired: false, transformFunction: null }, visibleInput: { classPropertyName: "visibleInput", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class": "hostClasses()", "attr.inert": "!this.sidebarState.visible || null" }, classAttribute: "sidebar" }, exportAs: ["cSidebar"], usesOnChanges: true, ngImport: i0, template: '<ng-content />', isInline: true, changeDetection: i0.ChangeDetectionStrategy.Eager });
7921
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SidebarComponent, isStandalone: true, selector: "c-sidebar", inputs: { colorScheme: { classPropertyName: "colorScheme", publicName: "colorScheme", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, narrowInput: { classPropertyName: "narrowInput", publicName: "narrow", isSignal: true, isRequired: false, transformFunction: null }, overlaid: { classPropertyName: "overlaid", publicName: "overlaid", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, unfoldableInput: { classPropertyName: "unfoldableInput", publicName: "unfoldable", isSignal: true, isRequired: false, transformFunction: null }, visibleInput: { classPropertyName: "visibleInput", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class": "hostClasses()", "attr.inert": "!this.sidebarState.visible || null" }, classAttribute: "sidebar" }, exportAs: ["cSidebar"], usesOnChanges: true, ngImport: i0, template: '<ng-content />', isInline: true });
7676
7922
  }
7677
7923
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarComponent, decorators: [{
7678
7924
  type: Component,
@@ -7680,7 +7926,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
7680
7926
  selector: 'c-sidebar',
7681
7927
  exportAs: 'cSidebar',
7682
7928
  template: '<ng-content />',
7683
- changeDetection: ChangeDetectionStrategy.Eager,
7684
7929
  host: {
7685
7930
  class: 'sidebar',
7686
7931
  '[class]': 'hostClasses()',
@@ -8022,11 +8267,11 @@ class SidebarNavLinkComponent {
8022
8267
  this.linkClick?.emit();
8023
8268
  }
8024
8269
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarNavLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8025
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: SidebarNavLinkComponent, isStandalone: true, selector: "c-sidebar-nav-link", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { linkClick: "linkClick" }, providers: [SidebarNavHelper], ngImport: i0, template: "@let linkItem = item() ?? {};\n\n@switch (linkType) {\n @case ('disabled') {\n <a [cHtmlAttr]=\"linkItem.attributes ?? {}\" [class]=\"linkItem | cSidebarNavLink\">\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: linkItem }\" />\n <c-sidebar-nav-link-content [item]=\"linkItem\" />\n @if (linkItem.badge) {\n <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n }\n </a>\n }\n @case ('external') {\n <a\n (click)=\"linkClicked()\"\n [cHtmlAttr]=\"linkItem.attributes ?? {}\"\n [href]=\"href\"\n [class]=\"linkItem | cSidebarNavLink\"\n >\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: linkItem }\" />\n <c-sidebar-nav-link-content [item]=\"linkItem\" />\n @if (linkItem.badge) {\n <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n }\n </a>\n }\n @default {\n <a\n (click)=\"linkClicked()\"\n [cHtmlAttr]=\"linkItem.attributes ?? {}\"\n [fragment]=\"$safeNavigationMigration(linkItem.linkProps?.fragment)\"\n [class]=\"linkItem | cSidebarNavLink\"\n [preserveFragment]=\"linkItem.linkProps?.preserveFragment ?? false\"\n [queryParamsHandling]=\"$safeNavigationMigration(linkItem.linkProps?.queryParamsHandling)\"\n [queryParams]=\"linkItem.linkProps?.queryParams ?? null\"\n [replaceUrl]=\"linkItem.linkProps?.replaceUrl ?? false\"\n [routerLinkActiveOptions]=\"linkItem.linkProps?.routerLinkActiveOptions ?? { exact: false }\"\n [routerLink]=\"linkItem.url\"\n [skipLocationChange]=\"linkItem.linkProps?.skipLocationChange ?? false\"\n [state]=\"linkItem.linkProps?.state ?? {}\"\n [target]=\"$safeNavigationMigration(linkItem.attributes?.['target'])\"\n routerLinkActive=\"active\"\n >\n <!-- [class.active]=\"linkActive\"-->\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: linkItem }\" />\n <c-sidebar-nav-link-content [item]=\"linkItem\" />\n @if (linkItem.badge) {\n <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n }\n </a>\n }\n}\n<ng-template #iconTemplate let-item>\n <!-- <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n @if (item?.icon) {\n <span class=\"nav-icon\">\n <span [class]=\"item.icon ?? ''\"></span>\n </span>\n }\n @if (item?.iconComponent) {\n <svg\n [cIcon]=\"$safeNavigationMigration(item.iconComponent?.content)\"\n [customClasses]=\"item | cSidebarNavIcon\"\n [name]=\"$safeNavigationMigration(item.iconComponent?.name)\"\n ></svg>\n }\n @if (!item?.icon && !item?.iconComponent) {\n <span [class]=\"item | cSidebarNavIcon\"></span>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "directive", type: IconDirective, selector: "svg[cIcon]", inputs: ["cIcon", "customClasses", "size", "title", "height", "width", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }, { kind: "component", type: SidebarNavLinkContentComponent, selector: "c-sidebar-nav-link-content", inputs: ["item"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SidebarNavLinkPipe, name: "cSidebarNavLink" }, { kind: "pipe", type: SidebarNavBadgePipe, name: "cSidebarNavBadge" }, { kind: "pipe", type: SidebarNavIconPipe, name: "cSidebarNavIcon" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
8270
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: SidebarNavLinkComponent, isStandalone: true, selector: "c-sidebar-nav-link", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { linkClick: "linkClick" }, providers: [SidebarNavHelper], ngImport: i0, template: "@let linkItem = item() ?? {};\n\n@switch (linkType) {\n @case ('disabled') {\n <a [cHtmlAttr]=\"linkItem.attributes ?? {}\" [class]=\"linkItem | cSidebarNavLink\">\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: linkItem }\" />\n <c-sidebar-nav-link-content [item]=\"linkItem\" />\n @if (linkItem.badge) {\n <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n }\n </a>\n }\n @case ('external') {\n <a\n (click)=\"linkClicked()\"\n [cHtmlAttr]=\"linkItem.attributes ?? {}\"\n [href]=\"href\"\n [class]=\"linkItem | cSidebarNavLink\"\n >\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: linkItem }\" />\n <c-sidebar-nav-link-content [item]=\"linkItem\" />\n @if (linkItem.badge) {\n <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n }\n </a>\n }\n @default {\n <a\n (click)=\"linkClicked()\"\n [cHtmlAttr]=\"linkItem.attributes ?? {}\"\n [fragment]=\"$safeNavigationMigration(linkItem.linkProps?.fragment)\"\n [class]=\"linkItem | cSidebarNavLink\"\n [preserveFragment]=\"linkItem.linkProps?.preserveFragment ?? false\"\n [queryParamsHandling]=\"$safeNavigationMigration(linkItem.linkProps?.queryParamsHandling)\"\n [queryParams]=\"linkItem.linkProps?.queryParams ?? null\"\n [replaceUrl]=\"linkItem.linkProps?.replaceUrl ?? false\"\n [routerLinkActiveOptions]=\"linkItem.linkProps?.routerLinkActiveOptions ?? { exact: false }\"\n [routerLink]=\"linkItem.url\"\n [skipLocationChange]=\"linkItem.linkProps?.skipLocationChange ?? false\"\n [state]=\"linkItem.linkProps?.state ?? {}\"\n [target]=\"$safeNavigationMigration(linkItem.attributes?.['target'])\"\n routerLinkActive=\"active\"\n >\n <!-- [class.active]=\"linkActive\"-->\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: linkItem }\" />\n <c-sidebar-nav-link-content [item]=\"linkItem\" />\n @if (linkItem.badge) {\n <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n }\n </a>\n }\n}\n<ng-template #iconTemplate let-item>\n <!-- <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n @if (item?.icon) {\n <span class=\"nav-icon\">\n <span [class]=\"item.icon ?? ''\"></span>\n </span>\n }\n @if (item?.iconComponent) {\n <svg\n [cIcon]=\"$safeNavigationMigration(item.iconComponent?.content)\"\n [customClasses]=\"item | cSidebarNavIcon\"\n [name]=\"$safeNavigationMigration(item.iconComponent?.name)\"\n ></svg>\n }\n @if (!item?.icon && !item?.iconComponent) {\n <span [class]=\"item | cSidebarNavIcon\"></span>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "directive", type: IconDirective, selector: "svg[cIcon]", inputs: ["cIcon", "customClasses", "size", "title", "height", "width", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }, { kind: "component", type: SidebarNavLinkContentComponent, selector: "c-sidebar-nav-link-content", inputs: ["item"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SidebarNavLinkPipe, name: "cSidebarNavLink" }, { kind: "pipe", type: SidebarNavBadgePipe, name: "cSidebarNavBadge" }, { kind: "pipe", type: SidebarNavIconPipe, name: "cSidebarNavIcon" }] });
8026
8271
  }
8027
8272
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarNavLinkComponent, decorators: [{
8028
8273
  type: Component,
8029
- args: [{ selector: 'c-sidebar-nav-link', providers: [SidebarNavHelper], changeDetection: ChangeDetectionStrategy.Eager, imports: [
8274
+ args: [{ selector: 'c-sidebar-nav-link', providers: [SidebarNavHelper], imports: [
8030
8275
  RouterModule,
8031
8276
  HtmlAttributesDirective,
8032
8277
  IconDirective,
@@ -8199,7 +8444,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
8199
8444
 
8200
8445
  class SidebarNavGroupComponent {
8201
8446
  #router = inject(Router);
8202
- #renderer = inject(Renderer2);
8203
8447
  #hostElement = inject(ElementRef);
8204
8448
  #sidebarNavGroupService = inject(SidebarNavGroupService);
8205
8449
  helper = inject(SidebarNavHelper);
@@ -8239,7 +8483,6 @@ class SidebarNavGroupComponent {
8239
8483
  };
8240
8484
  }, /* @ts-ignore */
8241
8485
  ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
8242
- sidebarNav = viewChild.required(forwardRef(() => SidebarNavComponent), { ...(ngDevMode ? { debugName: "sidebarNav" } : /* istanbul ignore next */ {}), read: ElementRef });
8243
8486
  navigationEndObservable;
8244
8487
  navSubscription;
8245
8488
  navGroupSubscription;
@@ -8247,7 +8490,7 @@ class SidebarNavGroupComponent {
8247
8490
  ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
8248
8491
  navItems = signal([], /* @ts-ignore */
8249
8492
  ...(ngDevMode ? [{ debugName: "navItems" }] : /* istanbul ignore next */ []));
8250
- display = signal({ display: 'block' }, /* @ts-ignore */
8493
+ display = signal(null, /* @ts-ignore */
8251
8494
  ...(ngDevMode ? [{ debugName: "display" }] : /* istanbul ignore next */ []));
8252
8495
  ngOnInit() {
8253
8496
  this.navItems.set([...(this.item()?.children ?? [])]);
@@ -8282,6 +8525,10 @@ class SidebarNavGroupComponent {
8282
8525
  });
8283
8526
  }
8284
8527
  openGroup(open) {
8528
+ if (this.open() !== undefined && this.open() !== open) {
8529
+ // the group drops `show` in the same pass, hiding the nav before cCollapse can measure it
8530
+ this.display.set('block');
8531
+ }
8285
8532
  this.open.set(open);
8286
8533
  }
8287
8534
  toggleGroup($event) {
@@ -8294,64 +8541,26 @@ class SidebarNavGroupComponent {
8294
8541
  ngOnDestroy() {
8295
8542
  this.navSubscription?.unsubscribe();
8296
8543
  }
8297
- onAnimationStart($event) {
8298
- this.display.set({ display: 'block' });
8299
- setTimeout(() => {
8300
- const host = this.sidebarNav()?.nativeElement;
8301
- if ($event.toState === 'open' && host) {
8302
- this.#renderer.setStyle(host, 'height', `${host['scrollHeight']}px`);
8303
- }
8304
- });
8305
- }
8306
- onAnimationDone($event) {
8307
- setTimeout(() => {
8308
- const host = this.sidebarNav()?.nativeElement;
8309
- if ($event.toState === 'open' && host) {
8310
- this.#renderer.setStyle(host, 'height', 'auto');
8311
- }
8312
- if ($event.toState === 'closed') {
8313
- setTimeout(() => {
8314
- this.display.set(null);
8315
- });
8316
- }
8317
- });
8544
+ onCollapseChange(state) {
8545
+ this.display.set(state === 'collapsed' || state === 'open' ? null : 'block');
8318
8546
  }
8319
8547
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarNavGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8320
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: SidebarNavGroupComponent, isStandalone: true, selector: "c-sidebar-nav-group", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, dropdownMode: { classPropertyName: "dropdownMode", publicName: "dropdownMode", isSignal: true, isRequired: false, transformFunction: null }, show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, providers: [SidebarNavHelper], viewQueries: [{ propertyName: "sidebarNav", first: true, predicate: i0.forwardRef(() => SidebarNavComponent), descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@let grpItem = item();\n<a\n (click)=\"toggleGroup($event)\"\n [cHtmlAttr]=\"$safeNavigationMigration(grpItem?.attributes)\"\n class=\"nav-link nav-group-toggle\"\n href\n>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: grpItem }\" />\n <ng-container>{{ grpItem?.name }}</ng-container>\n @if (grpItem?.badge) {\n <span [class]=\"grpItem | cSidebarNavBadge\">{{ grpItem?.badge?.text }}</span>\n }\n</a>\n<c-sidebar-nav\n (@openClose.done)=\"onAnimationDone($event)\"\n (@openClose.start)=\"onAnimationStart($event)\"\n [@openClose]=\"open() ? 'open' : 'closed'\"\n [compact]=\"compact()\"\n [dropdownMode]=\"dropdownMode()\"\n [groupItems]=\"true\"\n [navItems]=\"navItems()\"\n [style]=\"display()\"\n/>\n\n<ng-template #iconTemplate let-item>\n <!-- <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n @if (item?.icon) {\n <span class=\"nav-icon\">\n <span [class]=\"item.icon ?? ''\"></span>\n </span>\n }\n @if (item?.iconComponent) {\n <svg\n [cIcon]=\"$safeNavigationMigration(item.iconComponent?.content)\"\n [customClasses]=\"item | cSidebarNavIcon\"\n [name]=\"$safeNavigationMigration(item.iconComponent?.name)\"\n />\n }\n @if (!item?.icon && !item?.iconComponent) {\n <span [class]=\"item | cSidebarNavIcon\"></span>\n }\n</ng-template>\n", styles: [".nav-group-toggle{cursor:pointer}.nav-group-items{display:block}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => HtmlAttributesDirective), selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "directive", type: i0.forwardRef(() => IconDirective), selector: "svg[cIcon]", inputs: ["cIcon", "customClasses", "size", "title", "height", "width", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavComponent), selector: "c-sidebar-nav", inputs: ["navItems", "dropdownMode", "groupItems", "compact", "role"] }, { kind: "pipe", type: i0.forwardRef(() => SidebarNavIconPipe), name: "cSidebarNavIcon" }, { kind: "pipe", type: i0.forwardRef(() => SidebarNavBadgePipe), name: "cSidebarNavBadge" }], animations: [
8321
- trigger('openClose', [
8322
- state('open', style({
8323
- height: '*'
8324
- })),
8325
- state('closed', style({
8326
- height: '0px'
8327
- })),
8328
- transition('open <=> closed', [animate('.15s ease')])
8329
- ])
8330
- ], changeDetection: i0.ChangeDetectionStrategy.Eager });
8548
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: SidebarNavGroupComponent, isStandalone: true, selector: "c-sidebar-nav-group", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, dropdownMode: { classPropertyName: "dropdownMode", publicName: "dropdownMode", isSignal: true, isRequired: false, transformFunction: null }, show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, providers: [SidebarNavHelper], ngImport: i0, template: "@let grpItem = item();\n<a\n (click)=\"toggleGroup($event)\"\n [cHtmlAttr]=\"$safeNavigationMigration(grpItem?.attributes)\"\n class=\"nav-link nav-group-toggle\"\n href\n>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: grpItem }\" />\n <ng-container>{{ grpItem?.name }}</ng-container>\n @if (grpItem?.badge) {\n <span [class]=\"grpItem | cSidebarNavBadge\">{{ grpItem?.badge?.text }}</span>\n }\n</a>\n<c-sidebar-nav\n (collapseChange)=\"onCollapseChange($event)\"\n [compact]=\"compact()\"\n [dropdownMode]=\"dropdownMode()\"\n [groupItems]=\"true\"\n [navItems]=\"navItems()\"\n [style.display]=\"display()\"\n [visible]=\"!!open()\"\n cCollapse\n/>\n\n<ng-template #iconTemplate let-item>\n <!-- <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n @if (item?.icon) {\n <span class=\"nav-icon\">\n <span [class]=\"item.icon ?? ''\"></span>\n </span>\n }\n @if (item?.iconComponent) {\n <svg\n [cIcon]=\"$safeNavigationMigration(item.iconComponent?.content)\"\n [customClasses]=\"item | cSidebarNavIcon\"\n [name]=\"$safeNavigationMigration(item.iconComponent?.name)\"\n />\n }\n @if (!item?.icon && !item?.iconComponent) {\n <span [class]=\"item | cSidebarNavIcon\"></span>\n }\n</ng-template>\n", styles: [".nav-group-items{display:block}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => CollapseDirective), selector: "[cCollapse]", inputs: ["animate", "horizontal", "visible", "navbar"], outputs: ["visibleChange", "collapseChange"], exportAs: ["cCollapse"] }, { kind: "directive", type: i0.forwardRef(() => HtmlAttributesDirective), selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "directive", type: i0.forwardRef(() => IconDirective), selector: "svg[cIcon]", inputs: ["cIcon", "customClasses", "size", "title", "height", "width", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavComponent), selector: "c-sidebar-nav", inputs: ["navItems", "dropdownMode", "groupItems", "compact", "role"] }, { kind: "pipe", type: i0.forwardRef(() => SidebarNavIconPipe), name: "cSidebarNavIcon" }, { kind: "pipe", type: i0.forwardRef(() => SidebarNavBadgePipe), name: "cSidebarNavBadge" }] });
8331
8549
  }
8332
8550
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarNavGroupComponent, decorators: [{
8333
8551
  type: Component,
8334
8552
  args: [{ selector: 'c-sidebar-nav-group', providers: [SidebarNavHelper], imports: [
8553
+ CollapseDirective,
8335
8554
  HtmlAttributesDirective,
8336
8555
  IconDirective,
8337
8556
  NgTemplateOutlet,
8338
8557
  SidebarNavIconPipe,
8339
8558
  SidebarNavBadgePipe,
8340
8559
  forwardRef(() => SidebarNavComponent)
8341
- ], animations: [
8342
- trigger('openClose', [
8343
- state('open', style({
8344
- height: '*'
8345
- })),
8346
- state('closed', style({
8347
- height: '0px'
8348
- })),
8349
- transition('open <=> closed', [animate('.15s ease')])
8350
- ])
8351
- ], changeDetection: ChangeDetectionStrategy.Eager, host: {
8560
+ ], host: {
8352
8561
  '[class]': 'hostClasses()'
8353
- }, template: "@let grpItem = item();\n<a\n (click)=\"toggleGroup($event)\"\n [cHtmlAttr]=\"$safeNavigationMigration(grpItem?.attributes)\"\n class=\"nav-link nav-group-toggle\"\n href\n>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: grpItem }\" />\n <ng-container>{{ grpItem?.name }}</ng-container>\n @if (grpItem?.badge) {\n <span [class]=\"grpItem | cSidebarNavBadge\">{{ grpItem?.badge?.text }}</span>\n }\n</a>\n<c-sidebar-nav\n (@openClose.done)=\"onAnimationDone($event)\"\n (@openClose.start)=\"onAnimationStart($event)\"\n [@openClose]=\"open() ? 'open' : 'closed'\"\n [compact]=\"compact()\"\n [dropdownMode]=\"dropdownMode()\"\n [groupItems]=\"true\"\n [navItems]=\"navItems()\"\n [style]=\"display()\"\n/>\n\n<ng-template #iconTemplate let-item>\n <!-- <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n @if (item?.icon) {\n <span class=\"nav-icon\">\n <span [class]=\"item.icon ?? ''\"></span>\n </span>\n }\n @if (item?.iconComponent) {\n <svg\n [cIcon]=\"$safeNavigationMigration(item.iconComponent?.content)\"\n [customClasses]=\"item | cSidebarNavIcon\"\n [name]=\"$safeNavigationMigration(item.iconComponent?.name)\"\n />\n }\n @if (!item?.icon && !item?.iconComponent) {\n <span [class]=\"item | cSidebarNavIcon\"></span>\n }\n</ng-template>\n", styles: [".nav-group-toggle{cursor:pointer}.nav-group-items{display:block}\n"] }]
8354
- }], ctorParameters: () => [], propDecorators: { item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: false }] }], dropdownMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownMode", required: false }] }], show: [{ type: i0.Input, args: [{ isSignal: true, alias: "show", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], sidebarNav: [{ type: i0.ViewChild, args: [forwardRef(() => SidebarNavComponent), { ...{ read: ElementRef }, isSignal: true }] }] } });
8562
+ }, template: "@let grpItem = item();\n<a\n (click)=\"toggleGroup($event)\"\n [cHtmlAttr]=\"$safeNavigationMigration(grpItem?.attributes)\"\n class=\"nav-link nav-group-toggle\"\n href\n>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: grpItem }\" />\n <ng-container>{{ grpItem?.name }}</ng-container>\n @if (grpItem?.badge) {\n <span [class]=\"grpItem | cSidebarNavBadge\">{{ grpItem?.badge?.text }}</span>\n }\n</a>\n<c-sidebar-nav\n (collapseChange)=\"onCollapseChange($event)\"\n [compact]=\"compact()\"\n [dropdownMode]=\"dropdownMode()\"\n [groupItems]=\"true\"\n [navItems]=\"navItems()\"\n [style.display]=\"display()\"\n [visible]=\"!!open()\"\n cCollapse\n/>\n\n<ng-template #iconTemplate let-item>\n <!-- <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n @if (item?.icon) {\n <span class=\"nav-icon\">\n <span [class]=\"item.icon ?? ''\"></span>\n </span>\n }\n @if (item?.iconComponent) {\n <svg\n [cIcon]=\"$safeNavigationMigration(item.iconComponent?.content)\"\n [customClasses]=\"item | cSidebarNavIcon\"\n [name]=\"$safeNavigationMigration(item.iconComponent?.name)\"\n />\n }\n @if (!item?.icon && !item?.iconComponent) {\n <span [class]=\"item | cSidebarNavIcon\"></span>\n }\n</ng-template>\n", styles: [".nav-group-items{display:block}\n"] }]
8563
+ }], ctorParameters: () => [], propDecorators: { item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: false }] }], dropdownMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownMode", required: false }] }], show: [{ type: i0.Input, args: [{ isSignal: true, alias: "show", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }] } });
8355
8564
  class SidebarNavComponent {
8356
8565
  sidebar = inject(SidebarComponent, { optional: true });
8357
8566
  helper = inject(SidebarNavHelper);
@@ -8417,7 +8626,7 @@ class SidebarNavComponent {
8417
8626
  }
8418
8627
  }
8419
8628
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8420
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: SidebarNavComponent, isStandalone: true, selector: "c-sidebar-nav", inputs: { navItems: { classPropertyName: "navItems", publicName: "navItems", isSignal: true, isRequired: false, transformFunction: null }, dropdownMode: { classPropertyName: "dropdownMode", publicName: "dropdownMode", isSignal: true, isRequired: false, transformFunction: null }, groupItems: { classPropertyName: "groupItems", publicName: "groupItems", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "role()" } }, providers: [SidebarNavGroupService], usesOnChanges: true, ngImport: i0, template: "@for (nItem of navItemsArray(); track nItem) {\n @switch (helper.itemType(nItem)) {\n @case ('group') {\n <c-sidebar-nav-group\n [dropdownMode]=\"dropdownMode()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n [compact]=\"compact()\"\n />\n }\n @case ('divider') {\n <c-sidebar-nav-divider\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('title') {\n <c-sidebar-nav-title\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('label') {\n <c-sidebar-nav-label\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('empty') {\n <ng-container />\n }\n @default {\n <c-sidebar-nav-link\n (linkClick)=\"hideMobile()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n }\n}\n<ng-content />\n", dependencies: [{ kind: "directive", type: i0.forwardRef(() => HtmlAttributesDirective), selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavLinkComponent), selector: "c-sidebar-nav-link", inputs: ["item"], outputs: ["linkClick"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavLabelComponent), selector: "c-sidebar-nav-label", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavTitleComponent), selector: "c-sidebar-nav-title", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavDividerComponent), selector: "c-sidebar-nav-divider", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavGroupComponent), selector: "c-sidebar-nav-group", inputs: ["item", "dropdownMode", "show", "compact"] }, { kind: "ngmodule", type: i0.forwardRef(() => RouterModule) }, { kind: "pipe", type: i0.forwardRef(() => SidebarNavItemClassPipe), name: "cSidebarNavItemClass" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
8629
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: SidebarNavComponent, isStandalone: true, selector: "c-sidebar-nav", inputs: { navItems: { classPropertyName: "navItems", publicName: "navItems", isSignal: true, isRequired: false, transformFunction: null }, dropdownMode: { classPropertyName: "dropdownMode", publicName: "dropdownMode", isSignal: true, isRequired: false, transformFunction: null }, groupItems: { classPropertyName: "groupItems", publicName: "groupItems", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "role()" } }, providers: [NavGroupService, SidebarNavGroupService], usesOnChanges: true, ngImport: i0, template: "@for (nItem of navItemsArray(); track nItem) {\n @switch (helper.itemType(nItem)) {\n @case ('group') {\n <c-sidebar-nav-group\n [dropdownMode]=\"dropdownMode()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n [compact]=\"compact()\"\n />\n }\n @case ('divider') {\n <c-sidebar-nav-divider\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('title') {\n <c-sidebar-nav-title\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('label') {\n <c-sidebar-nav-label\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('empty') {\n <ng-container />\n }\n @default {\n <c-sidebar-nav-link\n (linkClick)=\"hideMobile()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n }\n}\n<ng-content />\n", styles: [":host .nav-item{display:block}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => HtmlAttributesDirective), selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavLinkComponent), selector: "c-sidebar-nav-link", inputs: ["item"], outputs: ["linkClick"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavLabelComponent), selector: "c-sidebar-nav-label", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavTitleComponent), selector: "c-sidebar-nav-title", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavDividerComponent), selector: "c-sidebar-nav-divider", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavGroupComponent), selector: "c-sidebar-nav-group", inputs: ["item", "dropdownMode", "show", "compact"] }, { kind: "ngmodule", type: i0.forwardRef(() => RouterModule) }, { kind: "pipe", type: i0.forwardRef(() => SidebarNavItemClassPipe), name: "cSidebarNavItemClass" }] });
8421
8630
  }
8422
8631
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarNavComponent, decorators: [{
8423
8632
  type: Component,
@@ -8433,7 +8642,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
8433
8642
  ], host: {
8434
8643
  '[class]': 'hostClasses()',
8435
8644
  '[attr.role]': 'role()'
8436
- }, changeDetection: ChangeDetectionStrategy.Eager, providers: [SidebarNavGroupService], template: "@for (nItem of navItemsArray(); track nItem) {\n @switch (helper.itemType(nItem)) {\n @case ('group') {\n <c-sidebar-nav-group\n [dropdownMode]=\"dropdownMode()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n [compact]=\"compact()\"\n />\n }\n @case ('divider') {\n <c-sidebar-nav-divider\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('title') {\n <c-sidebar-nav-title\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('label') {\n <c-sidebar-nav-label\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('empty') {\n <ng-container />\n }\n @default {\n <c-sidebar-nav-link\n (linkClick)=\"hideMobile()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n }\n}\n<ng-content />\n" }]
8645
+ }, providers: [NavGroupService, SidebarNavGroupService], template: "@for (nItem of navItemsArray(); track nItem) {\n @switch (helper.itemType(nItem)) {\n @case ('group') {\n <c-sidebar-nav-group\n [dropdownMode]=\"dropdownMode()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n [compact]=\"compact()\"\n />\n }\n @case ('divider') {\n <c-sidebar-nav-divider\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('title') {\n <c-sidebar-nav-title\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('label') {\n <c-sidebar-nav-label\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('empty') {\n <ng-container />\n }\n @default {\n <c-sidebar-nav-link\n (linkClick)=\"hideMobile()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n }\n}\n<ng-content />\n", styles: [":host .nav-item{display:block}\n"] }]
8437
8646
  }], propDecorators: { navItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "navItems", required: false }] }], dropdownMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownMode", required: false }] }], groupItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupItems", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }] } });
8438
8647
 
8439
8648
  class SidebarModule {
@@ -9293,8 +9502,8 @@ class TabsListComponent {
9293
9502
  layout = input(/* @ts-ignore */
9294
9503
  ...(ngDevMode ? [undefined, { debugName: "layout" }] : /* istanbul ignore next */ []));
9295
9504
  /**
9296
- * Set the variant to tabs, pills or underline.
9297
- * @returns 'pills' | 'tabs' | 'underline' | 'underline-border' | undefined
9505
+ * Set the variant to tabs, pills, underline or enclosed.
9506
+ * @returns 'enclosed' | 'enclosed-pills' | 'pills' | 'tabs' | 'underline' | 'underline-border' | undefined
9298
9507
  * @default undefined
9299
9508
  */
9300
9509
  variant = input(/* @ts-ignore */
@@ -9311,6 +9520,7 @@ class TabsListComponent {
9311
9520
  return {
9312
9521
  nav: true,
9313
9522
  [`nav-${layout}`]: layout,
9523
+ 'nav-enclosed': variant === 'enclosed' || variant === 'enclosed-pills',
9314
9524
  [`nav-${variant}`]: variant
9315
9525
  };
9316
9526
  }, /* @ts-ignore */
@@ -10719,5 +10929,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
10719
10929
  * Generated bundle index. Do not edit.
10720
10930
  */
10721
10931
 
10722
- export { AccordionButtonDirective, AccordionComponent, AccordionItemComponent, AccordionModule, AlertComponent, AlertHeadingDirective, AlertLinkDirective, AlertModule, AlignDirective, AvatarComponent, AvatarModule, BackdropService, BadgeComponent, BadgeModule, BgColorDirective, BorderDirective, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, BreadcrumbRouterComponent, BreadcrumbRouterService, BreakpointInfix, ButtonCloseDirective, ButtonDirective, ButtonGroupComponent, ButtonGroupModule, ButtonModule, ButtonToolbarComponent, CalloutComponent, CalloutModule, CardBodyComponent, CardComponent, CardFooterComponent, CardGroupComponent, CardHeaderActionsComponent, CardHeaderComponent, CardImgDirective, CardImgOverlayComponent, CardLinkDirective, CardModule, CardSubtitleDirective, CardTextDirective, CardTitleDirective, CarouselCaptionComponent, CarouselComponent, CarouselConfig, CarouselControlComponent, CarouselIndicatorsComponent, CarouselInnerComponent, CarouselItemComponent, CarouselModule, ClassToggleService, ColComponent, ColDirective, CollapseDirective, CollapseModule, ColorModeService, ContainerComponent, DropdownCloseDirective, DropdownComponent, DropdownDividerDirective, DropdownHeaderDirective, DropdownItemDirective, DropdownItemPlainDirective, DropdownMenuDirective, DropdownModule, DropdownService, DropdownToggleDirective, ElementRefDirective, FooterComponent, FooterModule, FormCheckComponent, FormCheckInputDirective, FormCheckLabelDirective, FormControlDirective, FormDirective, FormFeedbackComponent, FormFloatingDirective, FormLabelDirective, FormModule, FormSelectDirective, FormTextDirective, GridModule, GutterDirective, HeaderBrandComponent, HeaderComponent, HeaderDividerComponent, HeaderModule, HeaderNavComponent, HeaderTextComponent, HeaderTogglerDirective, HtmlAttributesDirective, ImgDirective, ImgModule, InMemoryStorageService, InputGroupComponent, InputGroupTextDirective, IntersectionService, ListGroupDirective, ListGroupItemDirective, ListGroupModule, ListenersService, LocalStorageService, ModalBodyComponent, ModalComponent, ModalContentComponent, ModalDialogComponent, ModalFooterComponent, ModalHeaderComponent, ModalModule, ModalService, ModalTitleDirective, ModalToggleDirective, NavComponent, NavItemComponent, NavLinkDirective, NavModule, NavbarBrandDirective, NavbarComponent, NavbarModule, NavbarNavComponent, NavbarTextComponent, NavbarTogglerDirective, OffcanvasBodyComponent, OffcanvasComponent, OffcanvasHeaderComponent, OffcanvasModule, OffcanvasService, OffcanvasTitleDirective, OffcanvasToggleDirective, PageItemComponent, PageItemDirective, PageLinkDirective, PaginationComponent, PaginationModule, PlaceholderAnimationDirective, PlaceholderDirective, PlaceholderModule, PopoverComponent, PopoverDirective, PopoverModule, ProgressBarComponent, ProgressBarDirective, ProgressComponent, ProgressModule, ProgressStackedComponent, RoundedDirective, RowComponent, RowDirective, RtlService, SearchButtonComponent, SearchButtonModule, ShadowOnScrollDirective, SharedModule, SidebarBrandComponent, SidebarComponent, SidebarFooterComponent, SidebarHeaderComponent, SidebarModule, SidebarNavComponent, SidebarNavHelper, SidebarService, SidebarToggleDirective, SidebarTogglerDirective, SpinnerComponent, SpinnerModule, TabContentComponent, TabContentRefDirective, TabDirective, TabPaneComponent, TabPanelComponent, TabService, TableActiveDirective, TableColorDirective, TableDirective, TableModule, Tabs2Module, TabsComponent, TabsContentComponent, TabsListComponent, TabsModule, TabsService, TemplateIdDirective, TextBgColorDirective, TextColorDirective, ThemeDirective, ToastBodyComponent, ToastCloseDirective, ToastComponent, ToastContentComponent, ToastHeaderComponent, ToastModule, ToasterComponent, ToasterHostDirective, ToasterPlacement, ToasterService, TooltipComponent, TooltipDirective, TooltipModule, UIDService, UtilitiesModule, WidgetModule, WidgetStatAComponent, WidgetStatBComponent, WidgetStatCComponent, WidgetStatDComponent, WidgetStatEComponent, WidgetStatFComponent };
10932
+ export { AccordionButtonDirective, AccordionComponent, AccordionItemComponent, AccordionModule, AlertComponent, AlertHeadingDirective, AlertLinkDirective, AlertModule, AlignDirective, AvatarComponent, AvatarModule, BackdropService, BadgeComponent, BadgeModule, BgColorDirective, BorderDirective, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, BreadcrumbRouterComponent, BreadcrumbRouterService, BreakpointInfix, ButtonCloseDirective, ButtonDirective, ButtonGroupComponent, ButtonGroupModule, ButtonModule, ButtonToolbarComponent, CalloutComponent, CalloutModule, CardBodyComponent, CardComponent, CardFooterComponent, CardGroupComponent, CardHeaderActionsComponent, CardHeaderComponent, CardImgDirective, CardImgOverlayComponent, CardLinkDirective, CardModule, CardSubtitleDirective, CardTextDirective, CardTitleDirective, CarouselCaptionComponent, CarouselComponent, CarouselConfig, CarouselControlComponent, CarouselIndicatorsComponent, CarouselInnerComponent, CarouselItemComponent, CarouselModule, ClassToggleService, ColComponent, ColDirective, CollapseDirective, CollapseModule, ColorModeService, ContainerComponent, DropdownCloseDirective, DropdownComponent, DropdownDividerDirective, DropdownHeaderDirective, DropdownItemDirective, DropdownItemPlainDirective, DropdownMenuDirective, DropdownModule, DropdownService, DropdownToggleDirective, ElementRefDirective, FooterComponent, FooterModule, FormCheckComponent, FormCheckInputDirective, FormCheckLabelDirective, FormControlDirective, FormDirective, FormFeedbackComponent, FormFloatingDirective, FormLabelDirective, FormModule, FormSelectDirective, FormTextDirective, GridModule, GutterDirective, HeaderBrandComponent, HeaderComponent, HeaderDividerComponent, HeaderModule, HeaderNavComponent, HeaderTextComponent, HeaderTogglerDirective, HtmlAttributesDirective, ImgDirective, ImgModule, InMemoryStorageService, InputGroupComponent, InputGroupTextDirective, IntersectionService, ListGroupDirective, ListGroupItemDirective, ListGroupModule, ListenersService, LocalStorageService, ModalBodyComponent, ModalComponent, ModalContentComponent, ModalDialogComponent, ModalFooterComponent, ModalHeaderComponent, ModalModule, ModalService, ModalTitleDirective, ModalToggleDirective, NavComponent, NavGroupComponent, NavGroupItemsComponent, NavGroupService, NavItemComponent, NavLinkDirective, NavModule, NavTitleComponent, NavbarBrandDirective, NavbarComponent, NavbarModule, NavbarNavComponent, NavbarTextComponent, NavbarTogglerDirective, OffcanvasBodyComponent, OffcanvasComponent, OffcanvasHeaderComponent, OffcanvasModule, OffcanvasService, OffcanvasTitleDirective, OffcanvasToggleDirective, PageItemComponent, PageItemDirective, PageLinkDirective, PaginationComponent, PaginationModule, PlaceholderAnimationDirective, PlaceholderDirective, PlaceholderModule, PopoverComponent, PopoverDirective, PopoverModule, ProgressBarComponent, ProgressBarDirective, ProgressComponent, ProgressModule, ProgressStackedComponent, RoundedDirective, RowComponent, RowDirective, RtlService, SearchButtonComponent, SearchButtonModule, ShadowOnScrollDirective, SharedModule, SidebarBrandComponent, SidebarComponent, SidebarFooterComponent, SidebarHeaderComponent, SidebarModule, SidebarNavComponent, SidebarNavHelper, SidebarService, SidebarToggleDirective, SidebarTogglerDirective, SpinnerComponent, SpinnerModule, TabContentComponent, TabContentRefDirective, TabDirective, TabPaneComponent, TabPanelComponent, TabService, TableActiveDirective, TableColorDirective, TableDirective, TableModule, Tabs2Module, TabsComponent, TabsContentComponent, TabsListComponent, TabsModule, TabsService, TemplateIdDirective, TextBgColorDirective, TextColorDirective, ThemeDirective, ToastBodyComponent, ToastCloseDirective, ToastComponent, ToastContentComponent, ToastHeaderComponent, ToastModule, ToasterComponent, ToasterHostDirective, ToasterPlacement, ToasterService, TooltipComponent, TooltipDirective, TooltipModule, UIDService, UtilitiesModule, WidgetModule, WidgetStatAComponent, WidgetStatBComponent, WidgetStatCComponent, WidgetStatDComponent, WidgetStatEComponent, WidgetStatFComponent };
10723
10933
  //# sourceMappingURL=coreui-angular.mjs.map