11import { Component } from '@angular/core' ;
2- import { UiBreadcrumb , UiBreadcrumbItem , UiBreadcrumbLink , UiBreadcrumbPage , UiBreadcrumbSeparator , UiBreadcrumbList , UiBreadcrumbEllipsis } from 'ui' ;
2+ import { UiBreadcrumb , UiBreadcrumbItem , UiBreadcrumbLink , UiBreadcrumbPage , UiBreadcrumbSeparator , UiBreadcrumbList , UiBreadcrumbEllipsis , UiDropdownMenu , UiDropdownMenuTrigger , UiDropdownMenuItem } from 'ui' ;
33import { IVariant , IComponentMeta } from '@components/component-preview/component-preview' ;
44import { NgIcon , provideIcons } from '@ng-icons/core' ;
55import { lucideChevronRight , lucideHouse , lucideFileText , lucideSettings , lucideEllipsis } from '@ng-icons/lucide' ;
@@ -85,9 +85,16 @@ export class BreadcrumbWithIconsExample {}
8585 <ng-icon name="lucideChevronRight" size="16" />
8686 </li>
8787 <li uiBreadcrumbItem>
88- <span uiBreadcrumbEllipsis>
88+ <span uiBreadcrumbEllipsis [uiDropdownMenuTrigger]="menu" >
8989 <ng-icon name="lucideEllipsis" size="16" />
9090 </span>
91+ <ng-template #menu>
92+ <div uiDropdownMenu class="w-56">
93+ <button uiDropdownMenuItem>Documentation </button>
94+ <button uiDropdownMenuItem>API</button>
95+ <button uiDropdownMenuItem>Examples</button>
96+ </div>
97+ </ng-template>
9198 </li>
9299 <li uiBreadcrumbSeparator>
93100 <ng-icon name="lucideChevronRight" size="16" />
@@ -104,97 +111,166 @@ export class BreadcrumbWithIconsExample {}
104111 </ol>
105112 </nav>
106113 ` ,
107- imports : [ UiBreadcrumb , UiBreadcrumbList , UiBreadcrumbItem , UiBreadcrumbLink , UiBreadcrumbPage , UiBreadcrumbSeparator , UiBreadcrumbEllipsis , NgIcon ] ,
114+ imports : [ UiBreadcrumb , UiBreadcrumbList , UiBreadcrumbItem , UiBreadcrumbLink , UiBreadcrumbPage , UiBreadcrumbSeparator , UiBreadcrumbEllipsis , NgIcon , UiDropdownMenu , UiDropdownMenuTrigger , UiDropdownMenuItem ] ,
108115 providers : [ provideIcons ( { lucideChevronRight, lucideEllipsis } ) ]
109116} )
110117export class BreadcrumbCollapsedExample { }
111118
112119export const breadcrumbVariants : IVariant [ ] = [
113120 {
114121 title : 'Default' ,
115- component : BreadcrumbDefaultExample ,
116- code : `<nav uiBreadcrumb>
117- <ol uiBreadcrumbList>
118- <li uiBreadcrumbItem>
119- <a uiBreadcrumbLink href="#">Home</a>
120- </li>
121- <li uiBreadcrumbSeparator>
122- <ng-icon name="lucideChevronRight" size="16" />
123- </li>
124- <li uiBreadcrumbItem>
125- <a uiBreadcrumbLink href="#">Components</a>
126- </li>
127- <li uiBreadcrumbSeparator>
128- <ng-icon name="lucideChevronRight" size="16" />
129- </li>
130- <li uiBreadcrumbItem>
131- <span uiBreadcrumbPage>Breadcrumb</span>
132- </li>
133- </ol>
134- </nav>`
122+ description : 'A basic breadcrumb navigation showing the current page hierarchy.' ,
123+ code : `import {
124+ UiBreadcrumb,
125+ UiBreadcrumbList,
126+ UiBreadcrumbItem,
127+ UiBreadcrumbLink,
128+ UiBreadcrumbPage,
129+ UiBreadcrumbSeparator
130+ } from '@workspace/ui/directives/breadcrumb';
131+ import { NgIcon, provideIcons } from '@ng-icons/core';
132+ import { lucideChevronRight } from '@ng-icons/lucide';
133+
134+ @Component({
135+ selector: 'breadcrumb-default-example',
136+ template: \`
137+ <nav uiBreadcrumb>
138+ <ol uiBreadcrumbList>
139+ <li uiBreadcrumbItem>
140+ <a uiBreadcrumbLink href="#">Home</a>
141+ </li>
142+ <li uiBreadcrumbSeparator>
143+ <ng-icon name="lucideChevronRight" size="16" />
144+ </li>
145+ <li uiBreadcrumbItem>
146+ <a uiBreadcrumbLink href="#">Components</a>
147+ </li>
148+ <li uiBreadcrumbSeparator>
149+ <ng-icon name="lucideChevronRight" size="16" />
150+ </li>
151+ <li uiBreadcrumbItem>
152+ <span uiBreadcrumbPage>Breadcrumb</span>
153+ </li>
154+ </ol>
155+ </nav>
156+ \`,
157+ imports: [UiBreadcrumb, UiBreadcrumbList, UiBreadcrumbItem, UiBreadcrumbLink, UiBreadcrumbPage, UiBreadcrumbSeparator, NgIcon],
158+ providers: [provideIcons({ lucideChevronRight })]
159+ })
160+ export class BreadcrumbDefaultExample {}` ,
161+ component : BreadcrumbDefaultExample
135162 } ,
136163 {
137164 title : 'With Icons' ,
138- component : BreadcrumbWithIconsExample ,
139- code : `<nav uiBreadcrumb>
140- <ol uiBreadcrumbList>
141- <li uiBreadcrumbItem>
142- <a uiBreadcrumbLink href="#" class="flex items-center gap-1">
143- <ng-icon name="lucideHouse" size="16" />
144- Home
145- </a>
146- </li>
147- <li uiBreadcrumbSeparator>
148- <ng-icon name="lucideChevronRight" size="16" />
149- </li>
150- <li uiBreadcrumbItem>
151- <a uiBreadcrumbLink href="#" class="flex items-center gap-1">
152- <ng-icon name="lucideFileText" size="16" />
153- Documents
154- </a>
155- </li>
156- <li uiBreadcrumbSeparator>
157- <ng-icon name="lucideChevronRight" size="16" />
158- </li>
159- <li uiBreadcrumbItem>
160- <span uiBreadcrumbPage class="flex items-center gap-1">
161- <ng-icon name="lucideSettings" size="16" />
162- Settings
163- </span>
164- </li>
165- </ol>
166- </nav>`
165+ description : 'Breadcrumb navigation with icons for each navigation level.' ,
166+ code : `import {
167+ UiBreadcrumb,
168+ UiBreadcrumbList,
169+ UiBreadcrumbItem,
170+ UiBreadcrumbLink,
171+ UiBreadcrumbPage,
172+ UiBreadcrumbSeparator
173+ } from '@workspace/ui/directives/breadcrumb';
174+ import { NgIcon, provideIcons } from '@ng-icons/core';
175+ import { lucideChevronRight, lucideHouse, lucideFileText, lucideSettings } from '@ng-icons/lucide';
176+
177+ @Component({
178+ selector: 'breadcrumb-with-icons-example',
179+ template: \`
180+ <nav uiBreadcrumb>
181+ <ol uiBreadcrumbList>
182+ <li uiBreadcrumbItem>
183+ <a uiBreadcrumbLink href="#" class="flex items-center gap-1">
184+ <ng-icon name="lucideHouse" size="16" />
185+ Home
186+ </a>
187+ </li>
188+ <li uiBreadcrumbSeparator>
189+ <ng-icon name="lucideChevronRight" size="16" />
190+ </li>
191+ <li uiBreadcrumbItem>
192+ <a uiBreadcrumbLink href="#" class="flex items-center gap-1">
193+ <ng-icon name="lucideFileText" size="16" />
194+ Documents
195+ </a>
196+ </li>
197+ <li uiBreadcrumbSeparator>
198+ <ng-icon name="lucideChevronRight" size="16" />
199+ </li>
200+ <li uiBreadcrumbItem>
201+ <span uiBreadcrumbPage class="flex items-center gap-1">
202+ <ng-icon name="lucideSettings" size="16" />
203+ Settings
204+ </span>
205+ </li>
206+ </ol>
207+ </nav>
208+ \`,
209+ imports: [UiBreadcrumb, UiBreadcrumbList, UiBreadcrumbItem, UiBreadcrumbLink, UiBreadcrumbPage, UiBreadcrumbSeparator, NgIcon],
210+ providers: [provideIcons({ lucideChevronRight, lucideHouse, lucideFileText, lucideSettings })]
211+ })
212+ export class BreadcrumbWithIconsExample {}` ,
213+ component : BreadcrumbWithIconsExample
167214 } ,
168215 {
169216 title : 'Collapsed' ,
170- component : BreadcrumbCollapsedExample ,
171- code : `<nav uiBreadcrumb>
172- <ol uiBreadcrumbList>
173- <li uiBreadcrumbItem>
174- <a uiBreadcrumbLink href="#">Home</a>
175- </li>
176- <li uiBreadcrumbSeparator>
177- <ng-icon name="lucideChevronRight" size="16" />
178- </li>
179- <li uiBreadcrumbItem>
180- <span uiBreadcrumbEllipsis>
181- <ng-icon name="lucideEllipsis" size="16" />
182- </span>
183- </li>
184- <li uiBreadcrumbSeparator>
185- <ng-icon name="lucideChevronRight" size="16" />
186- </li>
187- <li uiBreadcrumbItem>
188- <a uiBreadcrumbLink href="#">Components</a>
189- </li>
190- <li uiBreadcrumbSeparator>
191- <ng-icon name="lucideChevronRight" size="16" />
192- </li>
193- <li uiBreadcrumbItem>
194- <span uiBreadcrumbPage>Breadcrumb</span>
195- </li>
196- </ol>
197- </nav>`
217+ description : 'Breadcrumb with collapsed items shown in a dropdown menu for better space management.' ,
218+ code : `import {
219+ UiBreadcrumb,
220+ UiBreadcrumbList,
221+ UiBreadcrumbItem,
222+ UiBreadcrumbLink,
223+ UiBreadcrumbPage,
224+ UiBreadcrumbSeparator,
225+ UiBreadcrumbEllipsis
226+ } from '@workspace/ui/directives/breadcrumb';
227+ import { UiDropdownMenu, UiDropdownMenuTrigger, UiDropdownMenuItem } from '@workspace/ui/directives/dropdown-menu';
228+ import { NgIcon, provideIcons } from '@ng-icons/core';
229+ import { lucideChevronRight, lucideEllipsis } from '@ng-icons/lucide';
230+
231+ @Component({
232+ selector: 'breadcrumb-collapsed-example',
233+ template: \`
234+ <nav uiBreadcrumb>
235+ <ol uiBreadcrumbList>
236+ <li uiBreadcrumbItem>
237+ <a uiBreadcrumbLink href="#">Home</a>
238+ </li>
239+ <li uiBreadcrumbSeparator>
240+ <ng-icon name="lucideChevronRight" size="16" />
241+ </li>
242+ <li uiBreadcrumbItem>
243+ <span uiBreadcrumbEllipsis [uiDropdownMenuTrigger]="menu">
244+ <ng-icon name="lucideEllipsis" size="16" />
245+ </span>
246+ <ng-template #menu>
247+ <div uiDropdownMenu class="w-56">
248+ <button uiDropdownMenuItem>Documentation</button>
249+ <button uiDropdownMenuItem>API</button>
250+ <button uiDropdownMenuItem>Examples</button>
251+ </div>
252+ </ng-template>
253+ </li>
254+ <li uiBreadcrumbSeparator>
255+ <ng-icon name="lucideChevronRight" size="16" />
256+ </li>
257+ <li uiBreadcrumbItem>
258+ <a uiBreadcrumbLink href="#">Components</a>
259+ </li>
260+ <li uiBreadcrumbSeparator>
261+ <ng-icon name="lucideChevronRight" size="16" />
262+ </li>
263+ <li uiBreadcrumbItem>
264+ <span uiBreadcrumbPage>Breadcrumb</span>
265+ </li>
266+ </ol>
267+ </nav>
268+ \`,
269+ imports: [UiBreadcrumb, UiBreadcrumbList, UiBreadcrumbItem, UiBreadcrumbLink, UiBreadcrumbPage, UiBreadcrumbSeparator, UiBreadcrumbEllipsis, NgIcon, UiDropdownMenu, UiDropdownMenuTrigger, UiDropdownMenuItem],
270+ providers: [provideIcons({ lucideChevronRight, lucideEllipsis })]
271+ })
272+ export class BreadcrumbCollapsedExample {}` ,
273+ component : BreadcrumbCollapsedExample
198274 }
199275] ;
200276
@@ -203,7 +279,8 @@ export const breadcrumbMeta: IComponentMeta = {
203279 description : 'A navigation component that shows the current page location within a hierarchy.' ,
204280 installation : {
205281 package : 'breadcrumb' ,
206- import : `import { UiBreadcrumb, UiBreadcrumbList, UiBreadcrumbItem, UiBreadcrumbLink, UiBreadcrumbPage, UiBreadcrumbSeparator, UiBreadcrumbEllipsis } from '@workspace/ui';` ,
282+ import : `import { UiBreadcrumb, UiBreadcrumbList, UiBreadcrumbItem, UiBreadcrumbLink, UiBreadcrumbPage, UiBreadcrumbSeparator, UiBreadcrumbEllipsis } from '@workspace/ui/directives/breadcrumb';
283+ import { UiDropdownMenu, UiDropdownMenuTrigger, UiDropdownMenuItem } from '@workspace/ui/directives/dropdown-menu';` ,
207284 usage : `<nav uiBreadcrumb>
208285 <ol uiBreadcrumbList>
209286 <li uiBreadcrumbItem>
0 commit comments