@xui/breadcrumb 2.0.0-alpha.1 → 2.0.0-alpha.12

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,29 +1,56 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, computed, Component, booleanAttribute, Directive, NgModule } from '@angular/core';
2
+ import { input, computed, Directive, ViewEncapsulation, ChangeDetectionStrategy, Component, booleanAttribute, contentChild, TemplateRef, numberAttribute, output } from '@angular/core';
3
+ import { xui } from '@xui/core';
3
4
  import { NgIcon, provideIcons } from '@ng-icons/core';
4
5
  import { matMoreHorizRound, matChevronRightRound } from '@ng-icons/material-icons/round';
5
- import { xui } from '@xui/core';
6
- import { XuiIconDirective } from '@xui/icon';
7
- import * as i1 from '@angular/router';
6
+ import { XuiIcon } from '@xui/icon';
7
+ import { NgTemplateOutlet } from '@angular/common';
8
8
  import { RouterLink } from '@angular/router';
9
+ import { XuiOverflowList, XuiOverflowListItem, XuiOverflowListOverflow } from '@xui/overflow-list';
9
10
 
10
- class XuiBreadcrumbEllipsisComponent {
11
- class = input('');
12
- computedClass = computed(() => xui('flex items-center justify-center', this.class()));
13
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbEllipsisComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.3", type: XuiBreadcrumbEllipsisComponent, isStandalone: true, selector: "xui-breadcrumb-ellipsis", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideIcons({ matMoreHorizRound })], ngImport: i0, template: `
11
+ class XuiBreadcrumb {
12
+ class = input('', /* @ts-ignore */
13
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
14
+ ariaLabel = input('breadcrumb', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
15
+ computedClass = computed(() => xui(this.class()), /* @ts-ignore */
16
+ ...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
17
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumb, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumb, isStandalone: true, selector: "[xuiBreadcrumb]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "navigation" }, properties: { "class": "computedClass()", "attr.aria-label": "ariaLabel()" } }, exportAs: ["xuiBreadcrumb"], ngImport: i0 });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumb, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ selector: '[xuiBreadcrumb]',
24
+ exportAs: 'xuiBreadcrumb',
25
+ host: {
26
+ role: 'navigation',
27
+ '[class]': 'computedClass()',
28
+ '[attr.aria-label]': 'ariaLabel()'
29
+ }
30
+ }]
31
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }] } });
32
+
33
+ class XuiBreadcrumbEllipsis {
34
+ class = input('', /* @ts-ignore */
35
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
36
+ computedClass = computed(() => xui('flex items-center justify-center', this.class()), /* @ts-ignore */
37
+ ...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
38
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbEllipsis, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumbEllipsis, isStandalone: true, selector: "xui-breadcrumb-ellipsis", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideIcons({ matMoreHorizRound })], ngImport: i0, template: `
15
40
  <span role="presentation" aria-hidden="true" [class]="computedClass()">
16
41
  <ng-icon xui size="sm" name="matMoreHorizRound" />
17
42
  <span class="sr-only">More</span>
18
43
  </span>
19
- `, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: XuiIconDirective, selector: "ng-icon[xui]", inputs: ["size"] }] });
44
+ `, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: XuiIcon, selector: "ng-icon[xui]", inputs: ["class", "size", "color", "label"], exportAs: ["xuiIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
20
45
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbEllipsisComponent, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbEllipsis, decorators: [{
22
47
  type: Component,
23
48
  args: [{
24
49
  selector: 'xui-breadcrumb-ellipsis',
25
- imports: [NgIcon, XuiIconDirective],
50
+ imports: [NgIcon, XuiIcon],
26
51
  providers: [provideIcons({ matMoreHorizRound })],
52
+ changeDetection: ChangeDetectionStrategy.OnPush,
53
+ encapsulation: ViewEncapsulation.None,
27
54
  template: `
28
55
  <span role="presentation" aria-hidden="true" [class]="computedClass()">
29
56
  <ng-icon xui size="sm" name="matMoreHorizRound" />
@@ -31,183 +58,431 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImpor
31
58
  </span>
32
59
  `
33
60
  }]
34
- }] });
61
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
35
62
 
36
- class XuiBreadcrumbItemDirective {
37
- class = input('');
38
- active = input(false, { transform: booleanAttribute });
39
- computedClass = computed(() => xui('inline-flex items-center gap-1.5', this.active() && '[&>*]:font-semibold', this.class()));
40
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
41
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.3", type: XuiBreadcrumbItemDirective, isStandalone: true, selector: "[xuiBreadcrumbItem]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()" } }, ngImport: i0 });
63
+ class XuiBreadcrumbItem {
64
+ class = input('', /* @ts-ignore */
65
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
66
+ active = input(false, { ...(ngDevMode ? { debugName: "active" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
67
+ computedClass = computed(() => xui('inline-flex items-center gap-1.5', this.active() && '[&>*]:font-semibold', this.class()), /* @ts-ignore */
68
+ ...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
69
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
70
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumbItem, isStandalone: true, selector: "[xuiBreadcrumbItem]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()" } }, exportAs: ["xuiBreadcrumbItem"], ngImport: i0 });
42
71
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbItemDirective, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbItem, decorators: [{
44
73
  type: Directive,
45
74
  args: [{
46
75
  selector: '[xuiBreadcrumbItem]',
76
+ exportAs: 'xuiBreadcrumbItem',
47
77
  host: {
48
78
  '[class]': 'computedClass()'
49
79
  }
50
80
  }]
51
- }] });
81
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }] } });
52
82
 
53
- class XuiBreadcrumbLinkDirective {
54
- class = input('');
55
- link = input();
56
- computedClass = computed(() => xui('transition-colors hover:text-foreground', this.class()));
57
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
58
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.3", type: XuiBreadcrumbLinkDirective, isStandalone: true, selector: "[xuiBreadcrumbLink]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()" } }, hostDirectives: [{ directive: i1.RouterLink, inputs: ["target", "target", "queryParams", "queryParams", "fragment", "fragment", "queryParamsHandling", "queryParamsHandling", "state", "state", "info", "info", "relativeTo", "relativeTo", "preserveFragment", "preserveFragment", "skipLocationChange", "skipLocationChange", "replaceUrl", "replaceUrl", "routerLink", "link"] }], ngImport: i0 });
83
+ /**
84
+ * A navigable crumb.
85
+ *
86
+ * ```html
87
+ * <a xuiBreadcrumbLink href="/projects">Projects</a>
88
+ * <a xuiBreadcrumbLink [routerLink]="['/projects']">Projects</a>
89
+ * ```
90
+ *
91
+ * This is styling and disabled semantics only — it deliberately does not
92
+ * compose `RouterLink`. Doing so made every breadcrumb fail to render without a
93
+ * `Router` in the injector, routed or not, because host directives are
94
+ * instantiated unconditionally. Applying `routerLink` alongside it costs the
95
+ * consumer nothing and keeps `@angular/router` optional.
96
+ */
97
+ class XuiBreadcrumbLink {
98
+ /** The user-defined classes. Merged last so they win over the base classes. */
99
+ class = input('', /* @ts-ignore */
100
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
101
+ /** Renders the crumb as unreachable without dropping it from the trail. */
102
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
103
+ computedClass = computed(() => xui('hover:text-foreground rounded-sm transition-colors', this.disabled() && 'text-foreground-muted pointer-events-none opacity-60 hover:text-inherit', this.class()), /* @ts-ignore */
104
+ ...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
105
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbLink, deps: [], target: i0.ɵɵFactoryTarget.Directive });
106
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumbLink, isStandalone: true, selector: "[xuiBreadcrumbLink]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()", "attr.aria-disabled": "disabled() || null", "attr.tabindex": "disabled() ? -1 : null" } }, exportAs: ["xuiBreadcrumbLink"], ngImport: i0 });
59
107
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbLinkDirective, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbLink, decorators: [{
61
109
  type: Directive,
62
110
  args: [{
63
111
  selector: '[xuiBreadcrumbLink]',
64
- hostDirectives: [
65
- {
66
- directive: RouterLink,
67
- inputs: [
68
- 'target',
69
- 'queryParams',
70
- 'fragment',
71
- 'queryParamsHandling',
72
- 'state',
73
- 'info',
74
- 'relativeTo',
75
- 'preserveFragment',
76
- 'skipLocationChange',
77
- 'replaceUrl',
78
- 'routerLink: link'
79
- ]
80
- }
81
- ],
112
+ exportAs: 'xuiBreadcrumbLink',
82
113
  host: {
83
- '[class]': 'computedClass()'
114
+ '[class]': 'computedClass()',
115
+ '[attr.aria-disabled]': 'disabled() || null',
116
+ '[attr.tabindex]': 'disabled() ? -1 : null'
84
117
  }
85
118
  }]
86
- }] });
119
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
87
120
 
88
- class XuiBreadcrumbListDirective {
89
- class = input('');
90
- computedClass = computed(() => xui('flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', this.class()));
91
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
92
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.3", type: XuiBreadcrumbListDirective, isStandalone: true, selector: "[xuiBreadcrumbList]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()" } }, ngImport: i0 });
121
+ class XuiBreadcrumbList {
122
+ class = input('', /* @ts-ignore */
123
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
124
+ computedClass = computed(() => xui('flex flex-wrap items-center gap-1.5 break-words text-sm text-foreground-subtle sm:gap-2.5', this.class()), /* @ts-ignore */
125
+ ...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
126
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbList, deps: [], target: i0.ɵɵFactoryTarget.Directive });
127
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumbList, isStandalone: true, selector: "[xuiBreadcrumbList]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()" } }, exportAs: ["xuiBreadcrumbList"], ngImport: i0 });
93
128
  }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbListDirective, decorators: [{
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbList, decorators: [{
95
130
  type: Directive,
96
131
  args: [{
97
132
  selector: '[xuiBreadcrumbList]',
133
+ exportAs: 'xuiBreadcrumbList',
98
134
  host: {
99
135
  '[class]': 'computedClass()'
100
136
  }
101
137
  }]
102
- }] });
138
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
103
139
 
104
- class XuiBreadcrumbPageDirective {
105
- class = input('');
106
- computedClass = computed(() => xui('font-normal text-foreground', this.class()));
107
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbPageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
108
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.3", type: XuiBreadcrumbPageDirective, isStandalone: true, selector: "[xuiBreadcrumbPage]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "link" }, properties: { "class": "computedClass()" } }, ngImport: i0 });
140
+ class XuiBreadcrumbPage {
141
+ class = input('', /* @ts-ignore */
142
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
143
+ computedClass = computed(() => xui('font-normal text-foreground', this.class()), /* @ts-ignore */
144
+ ...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
145
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbPage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
146
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumbPage, isStandalone: true, selector: "[xuiBreadcrumbPage]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "link", "aria-disabled": "true", "aria-current": "page" }, properties: { "class": "computedClass()" } }, exportAs: ["xuiBreadcrumbPage"], ngImport: i0 });
109
147
  }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbPageDirective, decorators: [{
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbPage, decorators: [{
111
149
  type: Directive,
112
150
  args: [{
113
151
  selector: '[xuiBreadcrumbPage]',
152
+ exportAs: 'xuiBreadcrumbPage',
114
153
  host: {
115
154
  role: 'link',
155
+ 'aria-disabled': 'true',
156
+ 'aria-current': 'page',
116
157
  '[class]': 'computedClass()'
117
- // TODO
118
- // '[attr.aria-disabled]': 'disabled',
119
- // '[attr.aria-current]': 'page',
120
158
  }
121
159
  }]
122
- }] });
160
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
123
161
 
124
- class XuiBreadcrumbSeparatorComponent {
125
- class = input('');
126
- computedClass = computed(() => xui('flex items-center justify-center [&>ng-icon]:w-3.5 [&>ng-icon]:h-3.5 [&>ng-icon]:flex', this.class()));
127
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
128
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.3", type: XuiBreadcrumbSeparatorComponent, isStandalone: true, selector: "[xuiBreadcrumbSeparator]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "class": "computedClass()", "attr.aria-hidden": "true" } }, providers: [provideIcons({ matChevronRightRound })], ngImport: i0, template: `
162
+ class XuiBreadcrumbSeparator {
163
+ class = input('', /* @ts-ignore */
164
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
165
+ computedClass = computed(() => xui('flex items-center justify-center [&>ng-icon]:text-[14px] [&>ng-icon]:flex!', this.class()), /* @ts-ignore */
166
+ ...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
167
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
168
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumbSeparator, isStandalone: true, selector: "[xuiBreadcrumbSeparator]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation", "aria-hidden": "true" }, properties: { "class": "computedClass()" } }, providers: [provideIcons({ matChevronRightRound })], ngImport: i0, template: `
129
169
  <ng-content>
130
- <ng-icon size="sm" xui name="matChevronRightRound" />
170
+ <ng-icon name="matChevronRightRound" />
131
171
  </ng-content>
132
- `, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: XuiIconDirective, selector: "ng-icon[xui]", inputs: ["size"] }] });
172
+ `, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
133
173
  }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbSeparatorComponent, decorators: [{
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbSeparator, decorators: [{
135
175
  type: Component,
136
176
  args: [{
137
177
  // eslint-disable-next-line @angular-eslint/component-selector
138
178
  selector: '[xuiBreadcrumbSeparator]',
139
- imports: [NgIcon, XuiIconDirective],
179
+ imports: [NgIcon],
140
180
  providers: [provideIcons({ matChevronRightRound })],
181
+ changeDetection: ChangeDetectionStrategy.OnPush,
182
+ encapsulation: ViewEncapsulation.None,
141
183
  host: {
142
184
  role: 'presentation',
143
- '[class]': 'computedClass()',
144
- '[attr.aria-hidden]': 'true'
185
+ 'aria-hidden': 'true',
186
+ '[class]': 'computedClass()'
145
187
  },
146
188
  template: `
147
189
  <ng-content>
148
- <ng-icon size="sm" xui name="matChevronRightRound" />
190
+ <ng-icon name="matChevronRightRound" />
149
191
  </ng-content>
150
192
  `
151
193
  }]
152
- }] });
194
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
153
195
 
154
- class XuiBreadcrumbDirective {
155
- class = input('');
156
- ariaLabel = input('breadcrumb', { alias: 'aria-label' });
157
- computedClass = computed(() => xui('', this.class()));
158
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
159
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.3", type: XuiBreadcrumbDirective, isStandalone: true, selector: "[xuiBreadcrumb]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "navigation" }, properties: { "class": "computedClass()", "attr.aria-label": "ariaLabel()" } }, ngImport: i0 });
196
+ /** Replaces the default rendering of every crumb. */
197
+ class XuiBreadcrumbsItem {
198
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbsItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
199
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: XuiBreadcrumbsItem, isStandalone: true, selector: "ng-template[xuiBreadcrumbsItem]", exportAs: ["xuiBreadcrumbsItem"], ngImport: i0 });
160
200
  }
161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbDirective, decorators: [{
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbsItem, decorators: [{
162
202
  type: Directive,
203
+ args: [{ selector: 'ng-template[xuiBreadcrumbsItem]', exportAs: 'xuiBreadcrumbsItem' }]
204
+ }] });
205
+ /** Replaces the default rendering of the current crumb only. */
206
+ class XuiBreadcrumbsCurrent {
207
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbsCurrent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
208
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: XuiBreadcrumbsCurrent, isStandalone: true, selector: "ng-template[xuiBreadcrumbsCurrent]", exportAs: ["xuiBreadcrumbsCurrent"], ngImport: i0 });
209
+ }
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbsCurrent, decorators: [{
211
+ type: Directive,
212
+ args: [{ selector: 'ng-template[xuiBreadcrumbsCurrent]', exportAs: 'xuiBreadcrumbsCurrent' }]
213
+ }] });
214
+ /** Replaces the ellipsis shown in place of the collapsed crumbs. */
215
+ class XuiBreadcrumbsOverflow {
216
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbsOverflow, deps: [], target: i0.ɵɵFactoryTarget.Directive });
217
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: XuiBreadcrumbsOverflow, isStandalone: true, selector: "ng-template[xuiBreadcrumbsOverflow]", exportAs: ["xuiBreadcrumbsOverflow"], ngImport: i0 });
218
+ }
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbsOverflow, decorators: [{
220
+ type: Directive,
221
+ args: [{ selector: 'ng-template[xuiBreadcrumbsOverflow]', exportAs: 'xuiBreadcrumbsOverflow' }]
222
+ }] });
223
+ /**
224
+ * A breadcrumb trail built from an array, collapsing to fit its container.
225
+ *
226
+ * ```html
227
+ * <xui-breadcrumbs [items]="crumbs()" (itemClick)="open($event)" />
228
+ * ```
229
+ *
230
+ * This is the assembled form of the breadcrumb parts, wired to
231
+ * `xui-overflow-list` so crumbs that do not fit fold into an ellipsis. Compose
232
+ * the parts directly when the markup has to differ; reach for this when the
233
+ * trail is data.
234
+ *
235
+ * The collapsed crumbs are handed to the overflow template, so a menu can be
236
+ * hung off the ellipsis. Without one they are not lost — the template receives
237
+ * them and `(overflow)` reports them.
238
+ *
239
+ * An `icon` names an `@ng-icons` icon that the application registers; this
240
+ * package cannot know the set in advance.
241
+ */
242
+ class XuiBreadcrumbs {
243
+ itemTemplate = contentChild(XuiBreadcrumbsItem, { ...(ngDevMode ? { debugName: "itemTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
244
+ currentTemplate = contentChild(XuiBreadcrumbsCurrent, { ...(ngDevMode ? { debugName: "currentTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
245
+ overflowTemplate = contentChild(XuiBreadcrumbsOverflow, { ...(ngDevMode ? { debugName: "overflowTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
246
+ /** The user-defined classes. Merged last so they win over the base classes. */
247
+ class = input('', /* @ts-ignore */
248
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
249
+ items = input.required(/* @ts-ignore */
250
+ ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
251
+ /** Which end collapses. A trail collapses from the start, keeping where you are. */
252
+ collapseFrom = input('start', /* @ts-ignore */
253
+ ...(ngDevMode ? [{ debugName: "collapseFrom" }] : /* istanbul ignore next */ []));
254
+ /** Never collapse below this many crumbs, however narrow the container gets. */
255
+ minVisibleItems = input(0, { ...(ngDevMode ? { debugName: "minVisibleItems" } : /* istanbul ignore next */ {}), transform: numberAttribute });
256
+ /** Emits the collapsed crumbs whenever the set changes. */
257
+ overflow = output();
258
+ /** Emits when a navigable crumb is activated. A crumb with neither `href` nor `link` is not. */
259
+ itemClick = output();
260
+ computedClass = computed(() => xui('block min-w-0', this.class()), /* @ts-ignore */
261
+ ...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
262
+ /** The last crumb is where you are, unless an item says otherwise. */
263
+ isCurrent(index) {
264
+ return this.items()[index]?.current ?? index === this.items().length - 1;
265
+ }
266
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbs, deps: [], target: i0.ɵɵFactoryTarget.Component });
267
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: XuiBreadcrumbs, isStandalone: true, selector: "xui-breadcrumbs", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, collapseFrom: { classPropertyName: "collapseFrom", publicName: "collapseFrom", isSignal: true, isRequired: false, transformFunction: null }, minVisibleItems: { classPropertyName: "minVisibleItems", publicName: "minVisibleItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { overflow: "overflow", itemClick: "itemClick" }, host: { properties: { "class": "computedClass()" } }, queries: [{ propertyName: "itemTemplate", first: true, predicate: XuiBreadcrumbsItem, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "currentTemplate", first: true, predicate: XuiBreadcrumbsCurrent, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "overflowTemplate", first: true, predicate: XuiBreadcrumbsOverflow, descendants: true, read: TemplateRef, isSignal: true }], hostDirectives: [{ directive: XuiBreadcrumb, inputs: ["aria-label", "aria-label"] }], ngImport: i0, template: `
268
+ <xui-overflow-list
269
+ role="list"
270
+ itemRole="listitem"
271
+ class="text-foreground-muted gap-1.5 text-sm"
272
+ [items]="items()"
273
+ [collapseFrom]="collapseFrom()"
274
+ [minVisibleItems]="minVisibleItems()"
275
+ (overflowChange)="overflow.emit($event)"
276
+ >
277
+ <ng-template xuiOverflowListItem let-item let-index="index">
278
+ <span xuiBreadcrumbItem class="whitespace-nowrap">
279
+ @if (index > 0) {
280
+ <span xuiBreadcrumbSeparator></span>
281
+ }
282
+ <ng-container
283
+ *ngTemplateOutlet="
284
+ isCurrent(index)
285
+ ? (currentTemplate() ?? itemTemplate() ?? defaultCurrent)
286
+ : (itemTemplate() ?? defaultCrumb);
287
+ context: { $implicit: item, index: index, current: isCurrent(index) }
288
+ "
289
+ />
290
+ </span>
291
+ </ng-template>
292
+
293
+ <ng-template xuiOverflowListOverflow let-hidden let-count="count">
294
+ <span xuiBreadcrumbItem class="whitespace-nowrap">
295
+ @if (collapseFrom() === 'end') {
296
+ <span xuiBreadcrumbSeparator></span>
297
+ }
298
+ <ng-container
299
+ *ngTemplateOutlet="overflowTemplate() ?? defaultOverflow; context: { $implicit: hidden, count: count }"
300
+ />
301
+ </span>
302
+ </ng-template>
303
+ </xui-overflow-list>
304
+
305
+ <ng-template #defaultOverflow>
306
+ <xui-breadcrumb-ellipsis />
307
+ </ng-template>
308
+
309
+ <ng-template #defaultCurrent let-item>
310
+ <span xuiBreadcrumbPage class="inline-flex items-center gap-1.5">
311
+ <ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
312
+ </span>
313
+ </ng-template>
314
+
315
+ <ng-template #defaultCrumb let-item>
316
+ @if (item.link) {
317
+ <a
318
+ xuiBreadcrumbLink
319
+ class="inline-flex items-center gap-1.5"
320
+ [routerLink]="item.link"
321
+ [attr.target]="item.target"
322
+ [disabled]="item.disabled"
323
+ (click)="itemClick.emit(item)"
324
+ >
325
+ <ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
326
+ </a>
327
+ } @else if (item.href) {
328
+ <a
329
+ xuiBreadcrumbLink
330
+ class="inline-flex items-center gap-1.5"
331
+ [href]="item.href"
332
+ [attr.target]="item.target"
333
+ [disabled]="item.disabled"
334
+ (click)="itemClick.emit(item)"
335
+ >
336
+ <ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
337
+ </a>
338
+ } @else {
339
+ <span xuiBreadcrumbLink class="inline-flex items-center gap-1.5" [disabled]="item.disabled">
340
+ <ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
341
+ </span>
342
+ }
343
+ </ng-template>
344
+
345
+ <ng-template #crumbBody let-item>
346
+ @if (item.icon) {
347
+ <ng-icon xui size="sm" class="shrink-0" [name]="item.icon" />
348
+ }
349
+ @if (item.text) {
350
+ <span class="truncate">{{ item.text }}</span>
351
+ }
352
+ </ng-template>
353
+ `, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "component", type: XuiBreadcrumbEllipsis, selector: "xui-breadcrumb-ellipsis", inputs: ["class"] }, { kind: "directive", type: XuiBreadcrumbItem, selector: "[xuiBreadcrumbItem]", inputs: ["class", "active"], exportAs: ["xuiBreadcrumbItem"] }, { kind: "directive", type: XuiBreadcrumbLink, selector: "[xuiBreadcrumbLink]", inputs: ["class", "disabled"], exportAs: ["xuiBreadcrumbLink"] }, { kind: "directive", type: XuiBreadcrumbPage, selector: "[xuiBreadcrumbPage]", inputs: ["class"], exportAs: ["xuiBreadcrumbPage"] }, { kind: "component", type: XuiBreadcrumbSeparator, selector: "[xuiBreadcrumbSeparator]", inputs: ["class"] }, { kind: "directive", type: XuiIcon, selector: "ng-icon[xui]", inputs: ["class", "size", "color", "label"], exportAs: ["xuiIcon"] }, { kind: "component", type: XuiOverflowList, selector: "xui-overflow-list", inputs: ["class", "items", "collapseFrom", "minVisibleItems", "alwaysRenderOverflow", "itemRole"], outputs: ["overflowChange"] }, { kind: "directive", type: XuiOverflowListItem, selector: "ng-template[xuiOverflowListItem]", exportAs: ["xuiOverflowListItem"] }, { kind: "directive", type: XuiOverflowListOverflow, selector: "ng-template[xuiOverflowListOverflow]", exportAs: ["xuiOverflowListOverflow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
354
+ }
355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbs, decorators: [{
356
+ type: Component,
163
357
  args: [{
164
- selector: '[xuiBreadcrumb]',
358
+ selector: 'xui-breadcrumbs',
359
+ imports: [
360
+ NgIcon,
361
+ NgTemplateOutlet,
362
+ RouterLink,
363
+ XuiBreadcrumbEllipsis,
364
+ XuiBreadcrumbItem,
365
+ XuiBreadcrumbLink,
366
+ XuiBreadcrumbPage,
367
+ XuiBreadcrumbSeparator,
368
+ XuiIcon,
369
+ XuiOverflowList,
370
+ XuiOverflowListItem,
371
+ XuiOverflowListOverflow
372
+ ],
373
+ hostDirectives: [{ directive: XuiBreadcrumb, inputs: ['aria-label'] }],
374
+ changeDetection: ChangeDetectionStrategy.OnPush,
375
+ encapsulation: ViewEncapsulation.None,
376
+ template: `
377
+ <xui-overflow-list
378
+ role="list"
379
+ itemRole="listitem"
380
+ class="text-foreground-muted gap-1.5 text-sm"
381
+ [items]="items()"
382
+ [collapseFrom]="collapseFrom()"
383
+ [minVisibleItems]="minVisibleItems()"
384
+ (overflowChange)="overflow.emit($event)"
385
+ >
386
+ <ng-template xuiOverflowListItem let-item let-index="index">
387
+ <span xuiBreadcrumbItem class="whitespace-nowrap">
388
+ @if (index > 0) {
389
+ <span xuiBreadcrumbSeparator></span>
390
+ }
391
+ <ng-container
392
+ *ngTemplateOutlet="
393
+ isCurrent(index)
394
+ ? (currentTemplate() ?? itemTemplate() ?? defaultCurrent)
395
+ : (itemTemplate() ?? defaultCrumb);
396
+ context: { $implicit: item, index: index, current: isCurrent(index) }
397
+ "
398
+ />
399
+ </span>
400
+ </ng-template>
401
+
402
+ <ng-template xuiOverflowListOverflow let-hidden let-count="count">
403
+ <span xuiBreadcrumbItem class="whitespace-nowrap">
404
+ @if (collapseFrom() === 'end') {
405
+ <span xuiBreadcrumbSeparator></span>
406
+ }
407
+ <ng-container
408
+ *ngTemplateOutlet="overflowTemplate() ?? defaultOverflow; context: { $implicit: hidden, count: count }"
409
+ />
410
+ </span>
411
+ </ng-template>
412
+ </xui-overflow-list>
413
+
414
+ <ng-template #defaultOverflow>
415
+ <xui-breadcrumb-ellipsis />
416
+ </ng-template>
417
+
418
+ <ng-template #defaultCurrent let-item>
419
+ <span xuiBreadcrumbPage class="inline-flex items-center gap-1.5">
420
+ <ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
421
+ </span>
422
+ </ng-template>
423
+
424
+ <ng-template #defaultCrumb let-item>
425
+ @if (item.link) {
426
+ <a
427
+ xuiBreadcrumbLink
428
+ class="inline-flex items-center gap-1.5"
429
+ [routerLink]="item.link"
430
+ [attr.target]="item.target"
431
+ [disabled]="item.disabled"
432
+ (click)="itemClick.emit(item)"
433
+ >
434
+ <ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
435
+ </a>
436
+ } @else if (item.href) {
437
+ <a
438
+ xuiBreadcrumbLink
439
+ class="inline-flex items-center gap-1.5"
440
+ [href]="item.href"
441
+ [attr.target]="item.target"
442
+ [disabled]="item.disabled"
443
+ (click)="itemClick.emit(item)"
444
+ >
445
+ <ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
446
+ </a>
447
+ } @else {
448
+ <span xuiBreadcrumbLink class="inline-flex items-center gap-1.5" [disabled]="item.disabled">
449
+ <ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
450
+ </span>
451
+ }
452
+ </ng-template>
453
+
454
+ <ng-template #crumbBody let-item>
455
+ @if (item.icon) {
456
+ <ng-icon xui size="sm" class="shrink-0" [name]="item.icon" />
457
+ }
458
+ @if (item.text) {
459
+ <span class="truncate">{{ item.text }}</span>
460
+ }
461
+ </ng-template>
462
+ `,
165
463
  host: {
166
- role: 'navigation',
167
- '[class]': 'computedClass()',
168
- '[attr.aria-label]': 'ariaLabel()'
464
+ '[class]': 'computedClass()'
169
465
  }
170
466
  }]
171
- }] });
467
+ }], propDecorators: { itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => XuiBreadcrumbsItem), { ...{ read: TemplateRef }, isSignal: true }] }], currentTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => XuiBreadcrumbsCurrent), { ...{ read: TemplateRef }, isSignal: true }] }], overflowTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => XuiBreadcrumbsOverflow), { ...{ read: TemplateRef }, isSignal: true }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], collapseFrom: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseFrom", required: false }] }], minVisibleItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "minVisibleItems", required: false }] }], overflow: [{ type: i0.Output, args: ["overflow"] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }] } });
172
468
 
173
469
  const XuiBreadcrumbImports = [
174
- XuiBreadcrumbDirective,
175
- XuiBreadcrumbEllipsisComponent,
176
- XuiBreadcrumbItemDirective,
177
- XuiBreadcrumbLinkDirective,
178
- XuiBreadcrumbListDirective,
179
- XuiBreadcrumbPageDirective,
180
- XuiBreadcrumbSeparatorComponent
470
+ XuiBreadcrumb,
471
+ XuiBreadcrumbEllipsis,
472
+ XuiBreadcrumbItem,
473
+ XuiBreadcrumbLink,
474
+ XuiBreadcrumbList,
475
+ XuiBreadcrumbPage,
476
+ XuiBreadcrumbSeparator,
477
+ XuiBreadcrumbs,
478
+ XuiBreadcrumbsCurrent,
479
+ XuiBreadcrumbsItem,
480
+ XuiBreadcrumbsOverflow
181
481
  ];
182
- class XuiBreadcrumbModule {
183
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
184
- /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbModule, imports: [XuiBreadcrumbDirective,
185
- XuiBreadcrumbEllipsisComponent,
186
- XuiBreadcrumbItemDirective,
187
- XuiBreadcrumbLinkDirective,
188
- XuiBreadcrumbListDirective,
189
- XuiBreadcrumbPageDirective,
190
- XuiBreadcrumbSeparatorComponent], exports: [XuiBreadcrumbDirective,
191
- XuiBreadcrumbEllipsisComponent,
192
- XuiBreadcrumbItemDirective,
193
- XuiBreadcrumbLinkDirective,
194
- XuiBreadcrumbListDirective,
195
- XuiBreadcrumbPageDirective,
196
- XuiBreadcrumbSeparatorComponent] });
197
- /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbModule, imports: [XuiBreadcrumbEllipsisComponent,
198
- XuiBreadcrumbSeparatorComponent] });
199
- }
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbModule, decorators: [{
201
- type: NgModule,
202
- args: [{
203
- imports: [...XuiBreadcrumbImports],
204
- exports: [...XuiBreadcrumbImports]
205
- }]
206
- }] });
207
482
 
208
483
  /**
209
484
  * Generated bundle index. Do not edit.
210
485
  */
211
486
 
212
- export { XuiBreadcrumbDirective, XuiBreadcrumbEllipsisComponent, XuiBreadcrumbImports, XuiBreadcrumbItemDirective, XuiBreadcrumbLinkDirective, XuiBreadcrumbListDirective, XuiBreadcrumbModule, XuiBreadcrumbPageDirective, XuiBreadcrumbSeparatorComponent };
487
+ export { XuiBreadcrumb, XuiBreadcrumbEllipsis, XuiBreadcrumbImports, XuiBreadcrumbItem, XuiBreadcrumbLink, XuiBreadcrumbList, XuiBreadcrumbPage, XuiBreadcrumbSeparator, XuiBreadcrumbs, XuiBreadcrumbsCurrent, XuiBreadcrumbsItem, XuiBreadcrumbsOverflow };
213
488
  //# sourceMappingURL=xui-breadcrumb.mjs.map