Skip to content

Commit 8bbea34

Browse files
authored
Merge pull request #332 from connorabbas/develop
Feature: Menu components class property for Lucide icons
2 parents 251b07f + f2825ff commit 8bbea34

File tree

8 files changed

+24
-32
lines changed

8 files changed

+24
-32
lines changed

resources/js/components/primevue/menu/Breadcrumb.vue

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,12 @@ defineExpose({ el: childRef });
3636
>
3737
<i
3838
v-if="item.icon"
39-
:class="item.icon"
40-
class="p-breadcrumb-item-icon"
39+
:class="['p-breadcrumb-item-icon', item.icon]"
4140
/>
4241
<component
4342
:is="item.lucideIcon"
4443
v-else-if="item.lucideIcon"
45-
class="p-breadcrumb-item-icon"
44+
:class="['p-breadcrumb-item-icon', item.lucideIconClass]"
4645
/>
4746
<span class="p-breadcrumb-item-label">{{ item.label }}</span>
4847
</InertiaLink>
@@ -57,13 +56,12 @@ defineExpose({ el: childRef });
5756
>
5857
<i
5958
v-if="item.icon"
60-
:class="item.icon"
61-
class="p-breadcrumb-item-icon"
59+
:class="['p-breadcrumb-item-icon', item.icon]"
6260
/>
6361
<component
6462
:is="item.lucideIcon"
6563
v-else-if="item.lucideIcon"
66-
class="p-breadcrumb-item-icon"
64+
:class="['p-breadcrumb-item-icon', item.lucideIconClass]"
6765
/>
6866
<span class="p-breadcrumb-item-label">{{ item.label }}</span>
6967
</a>

resources/js/components/primevue/menu/ContextMenu.vue

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,12 @@ defineExpose({
3636
>
3737
<i
3838
v-if="item.icon"
39-
:class="item.icon"
40-
class="p-contextmenu-item-icon"
39+
:class="['p-contextmenu-item-icon', item.icon]"
4140
/>
4241
<component
4342
:is="item.lucideIcon"
4443
v-else-if="item.lucideIcon"
45-
class="p-contextmenu-item-icon"
44+
:class="['p-contextmenu-item-icon', item.lucideIconClass]"
4645
/>
4746
<span class="p-contextmenu-item-label">{{ item.label }}</span>
4847
</InertiaLink>
@@ -57,13 +56,12 @@ defineExpose({
5756
>
5857
<i
5958
v-if="item.icon"
60-
:class="item.icon"
61-
class="p-contextmenu-item-icon"
59+
:class="['p-contextmenu-item-icon', item.icon]"
6260
/>
6361
<component
6462
:is="item.lucideIcon"
6563
v-else-if="item.lucideIcon"
66-
class="p-contextmenu-item-icon"
64+
:class="['p-contextmenu-item-icon', item.lucideIconClass]"
6765
/>
6866
<span class="p-contextmenu-item-label">{{ item.label }}</span>
6967
<ChevronRight

resources/js/components/primevue/menu/Menu.vue

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,12 @@ defineExpose({
4545
>
4646
<i
4747
v-if="item.icon"
48-
:class="item.icon"
49-
class="p-menu-item-icon"
48+
:class="['p-menu-item-icon', item.icon]"
5049
/>
5150
<component
5251
:is="item.lucideIcon"
5352
v-else-if="item.lucideIcon"
54-
class="p-menu-item-icon"
53+
:class="['p-menu-item-icon', item.lucideIconClass]"
5554
/>
5655
<span class="p-menu-item-label">{{ item.label }}</span>
5756
</InertiaLink>
@@ -66,13 +65,12 @@ defineExpose({
6665
>
6766
<i
6867
v-if="item.icon"
69-
:class="item.icon"
70-
class="p-menu-item-icon"
68+
:class="['p-menu-item-icon', item.icon]"
7169
/>
7270
<component
7371
:is="item.lucideIcon"
7472
v-else-if="item.lucideIcon"
75-
class="p-menu-item-icon"
73+
:class="['p-menu-item-icon', item.lucideIconClass]"
7674
/>
7775
<span class="p-menu-item-label">{{ item.label }}</span>
7876
</a>

resources/js/components/primevue/menu/Menubar.vue

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,12 @@ defineExpose({ el: childRef });
4646
>
4747
<i
4848
v-if="item.icon"
49-
:class="item.icon"
50-
class="p-menubar-item-icon"
49+
:class="['p-menubar-item-icon', item.icon]"
5150
/>
5251
<component
5352
:is="item.lucideIcon"
5453
v-else-if="item.lucideIcon"
55-
class="p-menubar-item-icon"
54+
:class="['p-menubar-item-icon', item.lucideIconClass]"
5655
/>
5756
<span class="p-menubar-item-label">{{ item.label }}</span>
5857
</InertiaLink>
@@ -67,13 +66,12 @@ defineExpose({ el: childRef });
6766
>
6867
<i
6968
v-if="item.icon"
70-
:class="item.icon"
71-
class="p-menubar-item-icon"
69+
:class="['p-menubar-item-icon', item.icon]"
7270
/>
7371
<component
7472
:is="item.lucideIcon"
7573
v-else-if="item.lucideIcon"
76-
class="p-menubar-item-icon"
74+
:class="['p-menubar-item-icon', item.lucideIconClass]"
7775
/>
7876
<span class="p-menubar-item-label">{{ item.label }}</span>
7977
<template v-if="hasSubmenu">

resources/js/components/primevue/menu/PanelMenu.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ defineExpose({ el: childRef });
5151
<component
5252
:is="item.lucideIcon"
5353
v-else-if="item.lucideIcon"
54-
:class="[root ? 'p-panelmenu-header-icon' : 'p-panelmenu-item-icon']"
54+
:class="[root ? 'p-panelmenu-header-icon' : 'p-panelmenu-item-icon', item.lucideIconClass]"
5555
/>
5656
<span>{{ item.label }}</span>
5757
</InertiaLink>
@@ -74,7 +74,7 @@ defineExpose({ el: childRef });
7474
<component
7575
:is="item.lucideIcon"
7676
v-else-if="item.lucideIcon"
77-
:class="[root ? 'p-panelmenu-header-icon' : 'p-panelmenu-item-icon']"
77+
:class="[root ? 'p-panelmenu-header-icon' : 'p-panelmenu-item-icon', item.lucideIconClass]"
7878
/>
7979
<span>{{ item.label }}</span>
8080
<template v-if="hasSubmenu">

resources/js/components/primevue/menu/TabMenu.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ defineExpose({
6262
<component
6363
:is="item.lucideIcon"
6464
v-else-if="item.lucideIcon"
65+
:class="item.lucideIconClass"
6566
/>
6667
<span>{{ item.label }}</span>
6768
</Tab>

resources/js/components/primevue/menu/TieredMenu.vue

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,12 @@ defineExpose({
4545
>
4646
<i
4747
v-if="item.icon"
48-
:class="item.icon"
49-
class="p-tieredmenu-item-icon"
48+
:class="['p-tieredmenu-item-icon', item.icon]"
5049
/>
5150
<component
5251
:is="item.lucideIcon"
5352
v-else-if="item.lucideIcon"
54-
class="p-tieredmenu-item-icon"
53+
:class="['p-tieredmenu-item-icon', item.lucideIconClass]"
5554
/>
5655
<span class="p-tieredmenu-item-label">{{ item.label }}</span>
5756
</InertiaLink>
@@ -66,13 +65,12 @@ defineExpose({
6665
>
6766
<i
6867
v-if="item.icon"
69-
:class="item.icon"
70-
class="p-tieredmenu-item-icon"
68+
:class="['p-tieredmenu-item-icon', item.icon]"
7169
/>
7270
<component
7371
:is="item.lucideIcon"
7472
v-else-if="item.lucideIcon"
75-
class="p-tieredmenu-item-icon"
73+
:class="['p-tieredmenu-item-icon', item.lucideIconClass]"
7674
/>
7775
<span class="p-tieredmenu-item-label">{{ item.label }}</span>
7876
<ChevronRight

resources/js/types/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export type PrimeVueDataFilters = {
2121
export interface MenuItem extends PrimeVueMenuItem {
2222
route?: string;
2323
lucideIcon?: LucideIcon;
24+
lucideIconClass?: string;
2425
active?: boolean;
2526
}
2627

0 commit comments

Comments
 (0)