@imaginario27/air-ui-ds 1.0.23 → 1.1.1
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.
- package/components/accordions/AccordionItem.vue +1 -1
- package/components/alerts/Alert.vue +19 -22
- package/components/badges/Badge.vue +32 -25
- package/components/badges/IconBadge.vue +15 -15
- package/components/badges/IconTextBadge.vue +2 -2
- package/components/breadcrumbs/Breadcrumbs.vue +92 -27
- package/components/buttons/ActionButton.vue +40 -74
- package/components/buttons/ActionIconButton.vue +23 -51
- package/components/buttons/AlertButton.vue +8 -13
- package/components/buttons/AlertIconButton.vue +6 -7
- package/components/buttons/CopyButton.vue +4 -4
- package/components/buttons/options/OptionButton.vue +2 -2
- package/components/buttons/toggle/ToggleButton.vue +8 -10
- package/components/cards/specific/ContactDetailsCard.vue +4 -8
- package/components/cards/specific/FeatureCard.vue +2 -2
- package/components/cards/specific/HelpTopicCard.vue +4 -4
- package/components/cards/specific/subscription/SubscriptionPlanCard.vue +6 -6
- package/components/cards/specific/subscription/UniqueSubscriptionPlanCard.vue +1 -1
- package/components/collapsibles/Collapsible.vue +1 -1
- package/components/content/ContentItem.vue +2 -2
- package/components/content/ContentItemImage.vue +12 -14
- package/components/dropdowns/DropdownMenuItem.vue +10 -10
- package/components/dropdowns/DropdownSelect.vue +5 -16
- package/components/dropdowns/DropdownSelectItem.vue +13 -23
- package/components/empty-states/EmptyState.vue +21 -27
- package/components/features/Feature.vue +11 -48
- package/components/forms/fields/ButtonField.vue +2 -9
- package/components/forms/fields/CheckboxField.vue +9 -8
- package/components/forms/fields/DataField.vue +1 -1
- package/components/forms/fields/FileUploadField.vue +6 -6
- package/components/forms/fields/InputField.vue +17 -28
- package/components/forms/fields/RepeaterField.vue +2 -2
- package/components/forms/fields/SearchField.vue +7 -10
- package/components/forms/fields/SliderField.vue +16 -19
- package/components/forms/fields/SwitchField.vue +12 -34
- package/components/forms/fields/TextareaField.vue +7 -5
- package/components/forms/fields/radio/RadioButtonField.vue +6 -7
- package/components/icons/ContainedIcon.vue +14 -24
- package/components/icons/Icon.vue +13 -22
- package/components/layouts/ErrorDisplay.vue +3 -3
- package/components/layouts/headers/CompactHeader.vue +4 -4
- package/components/layouts/headers/ContentPageHeader.vue +1 -1
- package/components/lists/List.vue +1 -1
- package/components/lists/ListItem.vue +11 -14
- package/components/loaders/LoadingScreen.vue +3 -3
- package/components/modals/DangerModalDialog.vue +4 -4
- package/components/modals/InfoModalDialog.vue +3 -3
- package/components/modals/ModalDialog.vue +1 -1
- package/components/modals/SuccessModalDialog.vue +2 -2
- package/components/navigation/links/NavLink.vue +10 -10
- package/components/navigation/nav-sidebar/BottomUserNavBar.vue +3 -3
- package/components/navigation/nav-sidebar/NavSidebar.vue +9 -9
- package/components/navigation/nav-sidebar/NavSidebarMenuItem.vue +7 -9
- package/components/navigation/nav-sidebar/NavSidebarMenuSectionTitle.vue +4 -5
- package/components/pagination/ButtonPagination.vue +6 -10
- package/components/pagination/SimplePagination.vue +2 -2
- package/components/password/SecurePasswordCondition.vue +5 -6
- package/components/rating/InteractiveRating.vue +6 -6
- package/components/rating/Rating.vue +6 -6
- package/components/rating/RatingItem.vue +12 -13
- package/components/steppers/CircleStepper.vue +11 -13
- package/components/steppers/Step.vue +2 -2
- package/components/steppers/StepIndicator.vue +29 -28
- package/components/steppers/TabStepper.vue +1 -1
- package/components/steppers/vertical-stepper/VerticalStep.vue +2 -2
- package/components/steppers/vertical-stepper/VerticalStepper.vue +1 -1
- package/components/tabs/Tab.vue +4 -9
- package/models/enums/dropdowns.ts +1 -0
- package/models/types/buttons.ts +1 -1
- package/models/types/selects.ts +1 -2
- package/nuxt.config.ts +1 -1
- package/package.json +1 -2
- package/components/navigation/nav-menu/NavFooterMenu.vue +0 -90
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
|
|
2
|
+
<div
|
|
3
3
|
:class="[
|
|
4
4
|
'flex',
|
|
5
5
|
'items-center',
|
|
@@ -12,10 +12,9 @@
|
|
|
12
12
|
]"
|
|
13
13
|
>
|
|
14
14
|
<Icon
|
|
15
|
-
:icon
|
|
16
|
-
:type
|
|
15
|
+
:name="icon"
|
|
17
16
|
:mode
|
|
18
|
-
:iconClass
|
|
17
|
+
:iconClass="[iconSizeClass, iconColorClass]"
|
|
19
18
|
/>
|
|
20
19
|
</div>
|
|
21
20
|
</template>
|
|
@@ -23,19 +22,14 @@
|
|
|
23
22
|
// Props
|
|
24
23
|
const props = defineProps({
|
|
25
24
|
icon: {
|
|
26
|
-
type: String as PropType<
|
|
27
|
-
default: '
|
|
25
|
+
type: String as PropType<string>,
|
|
26
|
+
default: 'mdi:help',
|
|
28
27
|
},
|
|
29
28
|
styleType: {
|
|
30
29
|
type: String as PropType<IconContainerStyleType>,
|
|
31
30
|
default: IconContainerStyleType.FLAT,
|
|
32
31
|
validator: (value: IconContainerStyleType) => Object.values(IconContainerStyleType).includes(value),
|
|
33
32
|
},
|
|
34
|
-
type: {
|
|
35
|
-
type: String as PropType<IconType>,
|
|
36
|
-
default: IconType.NATIVE,
|
|
37
|
-
validator: (value: IconType) => Object.values(IconType).includes(value),
|
|
38
|
-
},
|
|
39
33
|
mode: {
|
|
40
34
|
type: String as PropType<IconMode>,
|
|
41
35
|
default: IconMode.CSS,
|
|
@@ -100,19 +94,19 @@ const iconContainerClass = computed(() => {
|
|
|
100
94
|
})
|
|
101
95
|
|
|
102
96
|
const iconColorClass = computed(() => {
|
|
103
|
-
if (props.styleType === IconContainerStyleType.FILLED) return 'text-icon-neutral-on-filled-bg'
|
|
97
|
+
if (props.styleType === IconContainerStyleType.FILLED) return '!text-icon-neutral-on-filled-bg'
|
|
104
98
|
|
|
105
99
|
const iconVariants = {
|
|
106
|
-
[ColorAccent.NEUTRAL]: 'text-icon-neutral-subtle-on-subtler-bg',
|
|
107
|
-
[ColorAccent.SUCCESS]: 'text-icon-success',
|
|
108
|
-
[ColorAccent.WARNING]: 'text-icon-warning-on-bg',
|
|
109
|
-
[ColorAccent.DANGER]: 'text-icon-danger',
|
|
110
|
-
[ColorAccent.INFO]: 'text-icon-info',
|
|
111
|
-
[ColorAccent.PRIMARY_BRAND]: 'text-icon-primary-brand-default',
|
|
112
|
-
[ColorAccent.SECONDARY_BRAND]: 'text-icon-secondary-brand-default',
|
|
100
|
+
[ColorAccent.NEUTRAL]: '!text-icon-neutral-subtle-on-subtler-bg',
|
|
101
|
+
[ColorAccent.SUCCESS]: '!text-icon-success',
|
|
102
|
+
[ColorAccent.WARNING]: '!text-icon-warning-on-bg',
|
|
103
|
+
[ColorAccent.DANGER]: '!text-icon-danger',
|
|
104
|
+
[ColorAccent.INFO]: '!text-icon-info',
|
|
105
|
+
[ColorAccent.PRIMARY_BRAND]: '!text-icon-primary-brand-default',
|
|
106
|
+
[ColorAccent.SECONDARY_BRAND]: '!text-icon-secondary-brand-default',
|
|
113
107
|
}
|
|
114
|
-
return iconVariants[props.color as ColorAccent] || 'text-icon-neutral-subtle-on-subtler-bg'
|
|
115
108
|
|
|
109
|
+
return iconVariants[props.color as ColorAccent] || '!text-icon-neutral-subtle-on-subtler-bg'
|
|
116
110
|
})
|
|
117
111
|
|
|
118
112
|
const iconContainerSizeClass = computed(() => {
|
|
@@ -136,8 +130,4 @@ const iconSizeClass = computed(() => {
|
|
|
136
130
|
|
|
137
131
|
return sizeVariants[props.size as IconContainerSize] || 'w-[24px] h-[24px] min-w-[24px] min-h-[24px]'
|
|
138
132
|
})
|
|
139
|
-
|
|
140
|
-
const iconClass = computed(() => {
|
|
141
|
-
return [iconSizeClass.value, iconColorClass.value].join(' ')
|
|
142
|
-
})
|
|
143
133
|
</script>
|
|
@@ -1,37 +1,21 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<MdiIcon
|
|
3
|
-
v-if="type === IconType.NATIVE"
|
|
4
|
-
:icon
|
|
5
|
-
preserveAspectRatio="xMidYMid meet"
|
|
6
|
-
:class="[
|
|
7
|
-
iconSizeClass,
|
|
8
|
-
iconColorClass,
|
|
9
|
-
iconClass,
|
|
10
|
-
]"
|
|
11
|
-
/>
|
|
12
2
|
<NuxtIcon
|
|
13
|
-
|
|
14
|
-
:name="icon"
|
|
3
|
+
:name
|
|
15
4
|
:mode
|
|
16
5
|
:customize="svgCustomize"
|
|
17
6
|
:class="[
|
|
18
7
|
iconSizeClass,
|
|
19
8
|
iconColorClass,
|
|
20
|
-
|
|
9
|
+
...normalizedIconClass,
|
|
21
10
|
]"
|
|
22
11
|
/>
|
|
23
12
|
</template>
|
|
24
13
|
<script setup lang="ts">
|
|
25
14
|
// Props
|
|
26
15
|
const props = defineProps({
|
|
27
|
-
|
|
28
|
-
type: String as PropType<
|
|
29
|
-
default: '
|
|
30
|
-
},
|
|
31
|
-
type: {
|
|
32
|
-
type: String as PropType<IconType>,
|
|
33
|
-
default: IconType.NATIVE,
|
|
34
|
-
validator: (value: IconType) => Object.values(IconType).includes(value),
|
|
16
|
+
name: {
|
|
17
|
+
type: String as PropType<string>,
|
|
18
|
+
default: 'mdi:help',
|
|
35
19
|
},
|
|
36
20
|
mode: {
|
|
37
21
|
type: String as PropType<IconMode>,
|
|
@@ -49,7 +33,14 @@ const props = defineProps({
|
|
|
49
33
|
validator: (value: ColorAccent) => Object.values(ColorAccent).includes(value),
|
|
50
34
|
},
|
|
51
35
|
svgCustomize: Function as PropType<CollectionCustomizeCallback>,
|
|
52
|
-
iconClass: String as PropType<string>,
|
|
36
|
+
iconClass: [String, Array] as PropType<string | string[]>,
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
// Computed function
|
|
40
|
+
const normalizedIconClass = computed(() => {
|
|
41
|
+
return Array.isArray(props.iconClass)
|
|
42
|
+
? props.iconClass
|
|
43
|
+
: props.iconClass?.split(' ').filter(Boolean) || []
|
|
53
44
|
})
|
|
54
45
|
|
|
55
46
|
// Computed classes
|
|
@@ -122,8 +122,8 @@ const props = defineProps({
|
|
|
122
122
|
default: true,
|
|
123
123
|
},
|
|
124
124
|
icon: {
|
|
125
|
-
type: String as PropType<
|
|
126
|
-
default: '
|
|
125
|
+
type: String as PropType<string>,
|
|
126
|
+
default: 'mdi:alert-circle-outline',
|
|
127
127
|
},
|
|
128
128
|
backToHomeText: {
|
|
129
129
|
type: String as PropType<string>,
|
|
@@ -131,7 +131,7 @@ const props = defineProps({
|
|
|
131
131
|
},
|
|
132
132
|
backToHomeIcon: {
|
|
133
133
|
type: String as PropType<string>,
|
|
134
|
-
default: '
|
|
134
|
+
default: 'mdi:home-outline',
|
|
135
135
|
},
|
|
136
136
|
homeRoute: {
|
|
137
137
|
type: String as PropType<string>,
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"
|
|
36
36
|
>
|
|
37
37
|
<ActionIconButton
|
|
38
|
-
:icon="isMobileSidebarOpen ? '
|
|
38
|
+
:icon="isMobileSidebarOpen ? 'mdi:menu-open' : 'mdi:menu-close'"
|
|
39
39
|
class="lg:hidden shadow-sm"
|
|
40
40
|
@click="toggleMobileSidebar"
|
|
41
41
|
/>
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"
|
|
51
51
|
>
|
|
52
52
|
<ActionIconButton
|
|
53
|
-
:icon="isMobileSidebarOpen ? '
|
|
53
|
+
:icon="isMobileSidebarOpen ? 'mdi:menu-open' : 'mdi:menu-close'"
|
|
54
54
|
class="lg:hidden shadow-sm"
|
|
55
55
|
@click="toggleMobileSidebar"
|
|
56
56
|
/>
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
>
|
|
115
115
|
<template #activator="{ onClick }">
|
|
116
116
|
<ActionIconButton
|
|
117
|
-
icon="
|
|
117
|
+
icon="mdi:menu"
|
|
118
118
|
class="lg:hidden shadow-sm"
|
|
119
119
|
@click="onClick"
|
|
120
120
|
/>
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
"
|
|
141
141
|
>
|
|
142
142
|
<ActionIconButton
|
|
143
|
-
:icon="isMobileSidebarOpen ? '
|
|
143
|
+
:icon="isMobileSidebarOpen ? 'mdi:menu-open' : 'mdi:menu-close'"
|
|
144
144
|
class="lg:hidden shadow-sm"
|
|
145
145
|
@click="toggleMobileSidebar"
|
|
146
146
|
/>
|
|
@@ -48,7 +48,7 @@ const props = defineProps({
|
|
|
48
48
|
type: Number as PropType<number>,
|
|
49
49
|
default: 1,
|
|
50
50
|
},
|
|
51
|
-
listItemIcon: String as PropType<
|
|
51
|
+
listItemIcon: String as PropType<string>,
|
|
52
52
|
listItemIconClass: {
|
|
53
53
|
type: String as PropType<string>,
|
|
54
54
|
default: 'text-icon-secondary-brand-default'
|
|
@@ -5,14 +5,11 @@
|
|
|
5
5
|
spaced && 'py-4'
|
|
6
6
|
]"
|
|
7
7
|
>
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
:size="iconSize"
|
|
14
|
-
/>
|
|
15
|
-
</span>
|
|
8
|
+
<Icon
|
|
9
|
+
v-if="icon"
|
|
10
|
+
:name="icon"
|
|
11
|
+
:class="[iconClass, iconSizeClass]"
|
|
12
|
+
/>
|
|
16
13
|
<span :class="[contentSizeClass, 'w-full']">
|
|
17
14
|
<slot />
|
|
18
15
|
</span>
|
|
@@ -21,7 +18,7 @@
|
|
|
21
18
|
<script setup lang="ts">
|
|
22
19
|
// Props
|
|
23
20
|
const props = defineProps({
|
|
24
|
-
icon: String as PropType<
|
|
21
|
+
icon: String as PropType<string>,
|
|
25
22
|
iconClass: {
|
|
26
23
|
type: String as PropType<string>,
|
|
27
24
|
default: 'text-icon-secondary-brand-default'
|
|
@@ -38,13 +35,13 @@ const props = defineProps({
|
|
|
38
35
|
})
|
|
39
36
|
|
|
40
37
|
// Computed
|
|
41
|
-
const
|
|
38
|
+
const iconSizeClass = computed(() => {
|
|
42
39
|
const sizeVariant = {
|
|
43
|
-
[ListItemSize.XS]: '
|
|
44
|
-
[ListItemSize.SM]: '
|
|
45
|
-
[ListItemSize.MD]: '
|
|
40
|
+
[ListItemSize.XS]: 'w-[16px] h-[16px] min-w-[16px] min-h-[16px]',
|
|
41
|
+
[ListItemSize.SM]: 'w-[20px] h-[20px] min-w-[20px] min-h-[20px]',
|
|
42
|
+
[ListItemSize.MD]: 'w-[24px] h-[24px] min-w-[24px] min-h-[24px]',
|
|
46
43
|
}
|
|
47
|
-
return sizeVariant[props.size as ListItemSize] || '
|
|
44
|
+
return sizeVariant[props.size as ListItemSize] || 'w-[20px] h-[20px] min-w-[20px] min-h-[20px]'
|
|
48
45
|
})
|
|
49
46
|
|
|
50
47
|
const contentSizeClass = computed(() => {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
<ContainedIcon
|
|
36
36
|
v-if="!$slots['graphic']"
|
|
37
37
|
:color="ColorAccent.DANGER"
|
|
38
|
-
icon="
|
|
38
|
+
icon="mdi:alert-circle-outline"
|
|
39
39
|
:size="iconContainerSize"
|
|
40
40
|
/>
|
|
41
41
|
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
:text="retryButtonText"
|
|
96
96
|
:size="buttonSize"
|
|
97
97
|
:iconPosition="IconPosition.LEFT"
|
|
98
|
-
icon="
|
|
98
|
+
icon="mdi:refresh"
|
|
99
99
|
class="self-center"
|
|
100
100
|
:disabled="isRetryButtonDisabled"
|
|
101
101
|
isMobileFullWidth
|
|
@@ -151,7 +151,7 @@ const props = defineProps({
|
|
|
151
151
|
},
|
|
152
152
|
goBackIcon: {
|
|
153
153
|
type: String as PropType<string>,
|
|
154
|
-
default: "
|
|
154
|
+
default: "mdi:keyboard-backspace",
|
|
155
155
|
},
|
|
156
156
|
hasRetryButton: {
|
|
157
157
|
type: Boolean as PropType<boolean>,
|
|
@@ -78,8 +78,8 @@ defineProps({
|
|
|
78
78
|
default: false,
|
|
79
79
|
},
|
|
80
80
|
icon: {
|
|
81
|
-
type: String as PropType<
|
|
82
|
-
default: '
|
|
81
|
+
type: String as PropType<string>,
|
|
82
|
+
default: 'mdi:alert-outline',
|
|
83
83
|
},
|
|
84
84
|
title: {
|
|
85
85
|
type: String as PropType<string>,
|
|
@@ -95,8 +95,8 @@ defineProps({
|
|
|
95
95
|
default: 'Delete',
|
|
96
96
|
},
|
|
97
97
|
buttonActionIcon: {
|
|
98
|
-
type: String as PropType<
|
|
99
|
-
default: '
|
|
98
|
+
type: String as PropType<string>,
|
|
99
|
+
default: 'mdi:delete-forever-outline',
|
|
100
100
|
},
|
|
101
101
|
isLoading: {
|
|
102
102
|
type: Boolean as PropType<boolean>,
|
|
@@ -78,8 +78,8 @@ defineProps({
|
|
|
78
78
|
default: false,
|
|
79
79
|
},
|
|
80
80
|
icon: {
|
|
81
|
-
type: String as PropType<
|
|
82
|
-
default: '
|
|
81
|
+
type: String as PropType<string>,
|
|
82
|
+
default: 'mdi:information-outline',
|
|
83
83
|
},
|
|
84
84
|
title: {
|
|
85
85
|
type: String as PropType<string>,
|
|
@@ -91,7 +91,7 @@ defineProps({
|
|
|
91
91
|
default: 'Close',
|
|
92
92
|
},
|
|
93
93
|
buttonActionText: String as PropType<string>,
|
|
94
|
-
buttonActionIcon: String as PropType<
|
|
94
|
+
buttonActionIcon: String as PropType<string>,
|
|
95
95
|
isLoading: {
|
|
96
96
|
type: Boolean as PropType<boolean>,
|
|
97
97
|
default: false,
|
|
@@ -14,21 +14,21 @@
|
|
|
14
14
|
gapClass,
|
|
15
15
|
]">
|
|
16
16
|
<!-- Left icon -->
|
|
17
|
-
<
|
|
17
|
+
<Icon
|
|
18
18
|
v-if="iconPosition === IconPosition.LEFT"
|
|
19
|
-
:
|
|
20
|
-
:
|
|
21
|
-
preserveAspectRatio="xMidYMid meet"
|
|
19
|
+
:name="icon"
|
|
20
|
+
:iconClass="iconSizeClass"
|
|
22
21
|
/>
|
|
22
|
+
|
|
23
23
|
<span :class="[ textSizeClass, textClass ]">
|
|
24
24
|
{{ text }}
|
|
25
25
|
</span>
|
|
26
|
+
|
|
26
27
|
<!-- Right icon -->
|
|
27
|
-
<
|
|
28
|
+
<Icon
|
|
28
29
|
v-if="iconPosition === IconPosition.RIGHT"
|
|
29
|
-
:
|
|
30
|
-
:
|
|
31
|
-
preserveAspectRatio="xMidYMid meet"
|
|
30
|
+
:name="icon"
|
|
31
|
+
:iconClass="iconSizeClass"
|
|
32
32
|
/>
|
|
33
33
|
</div>
|
|
34
34
|
</NuxtLink>
|
|
@@ -47,8 +47,8 @@ const props = defineProps({
|
|
|
47
47
|
validator: (value: NavLinkSize) => Object.values(NavLinkSize).includes(value),
|
|
48
48
|
},
|
|
49
49
|
icon: {
|
|
50
|
-
type: String as PropType<
|
|
51
|
-
default: "
|
|
50
|
+
type: String as PropType<string>,
|
|
51
|
+
default: "mdi:arrow-right-thin"
|
|
52
52
|
},
|
|
53
53
|
iconPosition: {
|
|
54
54
|
type: String as PropType<IconPosition>,
|
|
@@ -63,16 +63,16 @@ defineProps({
|
|
|
63
63
|
default: () => [
|
|
64
64
|
{
|
|
65
65
|
text: 'Account settings',
|
|
66
|
-
icon: '
|
|
66
|
+
icon: 'mdi:account-cog-outline',
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
text: 'Support',
|
|
70
|
-
icon: '
|
|
70
|
+
icon: 'mdi:lifebuoy',
|
|
71
71
|
to: '/',
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
74
|
text: 'Logout',
|
|
75
|
-
icon: '
|
|
75
|
+
icon: 'mdi:logout',
|
|
76
76
|
actionType: DropdownActionType.ACTION,
|
|
77
77
|
type: DropdownItemType.DANGER_ICON,
|
|
78
78
|
callback: () => {},
|
|
@@ -191,30 +191,30 @@ const props = defineProps({
|
|
|
191
191
|
{
|
|
192
192
|
isSectionTitle: true,
|
|
193
193
|
text: 'Section title',
|
|
194
|
-
icon: '
|
|
194
|
+
icon: 'mdi:bullseye',
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
text: 'Item 1',
|
|
198
|
-
icon: '
|
|
198
|
+
icon: 'mdi:help',
|
|
199
199
|
to: '/',
|
|
200
200
|
},
|
|
201
201
|
{
|
|
202
202
|
text: 'Item 2',
|
|
203
|
-
icon: '
|
|
203
|
+
icon: 'mdi:help',
|
|
204
204
|
to: '/',
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
text: 'Item 3',
|
|
208
|
-
icon: '
|
|
208
|
+
icon: 'mdi:help',
|
|
209
209
|
children: [
|
|
210
210
|
{
|
|
211
211
|
text: 'Subitem 1',
|
|
212
|
-
icon: '
|
|
212
|
+
icon: 'mdi:help',
|
|
213
213
|
to: '/',
|
|
214
214
|
},
|
|
215
215
|
{
|
|
216
216
|
text: 'Subitem 2',
|
|
217
|
-
icon: '
|
|
217
|
+
icon: 'mdi:help',
|
|
218
218
|
to: '/',
|
|
219
219
|
},
|
|
220
220
|
],
|
|
@@ -264,11 +264,11 @@ const props = defineProps({
|
|
|
264
264
|
},
|
|
265
265
|
collapsedStateIcon: {
|
|
266
266
|
type: String as PropType<string>,
|
|
267
|
-
default: '
|
|
267
|
+
default: 'mdi:menu-close',
|
|
268
268
|
},
|
|
269
269
|
expandedStateIcon: {
|
|
270
270
|
type: String as PropType<string>,
|
|
271
|
-
default: '
|
|
271
|
+
default: 'mdi:menu-open',
|
|
272
272
|
},
|
|
273
273
|
showMobileSidebarClose: {
|
|
274
274
|
type: Boolean as PropType<boolean>,
|
|
@@ -276,7 +276,7 @@ const props = defineProps({
|
|
|
276
276
|
},
|
|
277
277
|
mobileSidebarCloseIcon: {
|
|
278
278
|
type: String as PropType<string>,
|
|
279
|
-
default: '
|
|
279
|
+
default: 'mdi:close-circle',
|
|
280
280
|
},
|
|
281
281
|
isFixed: {
|
|
282
282
|
type: Boolean as PropType<boolean>,
|
|
@@ -22,11 +22,10 @@
|
|
|
22
22
|
gapClass,
|
|
23
23
|
]"
|
|
24
24
|
>
|
|
25
|
-
<
|
|
25
|
+
<Icon
|
|
26
26
|
v-if="icon"
|
|
27
|
-
:icon
|
|
28
|
-
|
|
29
|
-
:class="['text-icon-neutral-subtler', iconSizeClass]"
|
|
27
|
+
:name="icon"
|
|
28
|
+
:iconClass="['!text-icon-neutral-subtler', iconSizeClass]"
|
|
30
29
|
/>
|
|
31
30
|
|
|
32
31
|
<span
|
|
@@ -37,11 +36,10 @@
|
|
|
37
36
|
</span>
|
|
38
37
|
</div>
|
|
39
38
|
|
|
40
|
-
<
|
|
39
|
+
<Icon
|
|
41
40
|
v-if="showDropdownArrow && !isCollapsed"
|
|
42
|
-
:
|
|
43
|
-
|
|
44
|
-
:class="['text-icon-default', iconSizeClass]"
|
|
41
|
+
:name="isOpen ? 'mdi:chevron-up' : 'mdi:chevron-down'"
|
|
42
|
+
:class="iconSizeClass"
|
|
45
43
|
/>
|
|
46
44
|
</NuxtLink>
|
|
47
45
|
</template>
|
|
@@ -52,7 +50,7 @@ const props = defineProps({
|
|
|
52
50
|
type: String as PropType<string>,
|
|
53
51
|
default: 'Item text'
|
|
54
52
|
},
|
|
55
|
-
icon: String as PropType<
|
|
53
|
+
icon: String as PropType<string>,
|
|
56
54
|
to: {
|
|
57
55
|
type: String as PropType<string>,
|
|
58
56
|
default: null
|
|
@@ -12,11 +12,10 @@
|
|
|
12
12
|
spacingClass,
|
|
13
13
|
]"
|
|
14
14
|
>
|
|
15
|
-
<
|
|
15
|
+
<Icon
|
|
16
16
|
v-if="icon"
|
|
17
|
-
:icon
|
|
18
|
-
|
|
19
|
-
:class="['text-icon-neutral-subtle', iconSizeClass]"
|
|
17
|
+
:name="icon"
|
|
18
|
+
:iconClass="['!text-icon-neutral-subtle', iconSizeClass]"
|
|
20
19
|
/>
|
|
21
20
|
|
|
22
21
|
<span>
|
|
@@ -32,7 +31,7 @@ const props = defineProps({
|
|
|
32
31
|
type: String as PropType<string>,
|
|
33
32
|
default: 'Item text'
|
|
34
33
|
},
|
|
35
|
-
icon: String as PropType<
|
|
34
|
+
icon: String as PropType<string>,
|
|
36
35
|
styleType: {
|
|
37
36
|
type: String as PropType<SidebarNavMenuItemStyleType>,
|
|
38
37
|
default: SidebarNavMenuItemStyleType.COMPACT,
|
|
@@ -62,11 +62,9 @@
|
|
|
62
62
|
:disabled="modelValue === 1"
|
|
63
63
|
@click="goToPreviousPage"
|
|
64
64
|
>
|
|
65
|
-
<
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
preserveAspectRatio="xMidYMid meet"
|
|
69
|
-
class="text-icon-neutral-subtle"
|
|
65
|
+
<Icon
|
|
66
|
+
name="mdi:chevron-left"
|
|
67
|
+
iconClass="text-icon-neutral-subtle"
|
|
70
68
|
/>
|
|
71
69
|
</PaginationButton>
|
|
72
70
|
|
|
@@ -122,11 +120,9 @@
|
|
|
122
120
|
:disabled="modelValue === totalPages"
|
|
123
121
|
@click="goToNextPage"
|
|
124
122
|
>
|
|
125
|
-
<
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
preserveAspectRatio="xMidYMid meet"
|
|
129
|
-
class="text-icon-neutral-subtle"
|
|
123
|
+
<Icon
|
|
124
|
+
name="mdi:chevron-right"
|
|
125
|
+
iconClass="text-icon-neutral-subtle"
|
|
130
126
|
/>
|
|
131
127
|
</PaginationButton>
|
|
132
128
|
</nav>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<nav class="flex items-center justify-center gap-2">
|
|
3
3
|
<ActionIconButton
|
|
4
|
-
icon="
|
|
4
|
+
icon="mdi:chevron-left"
|
|
5
5
|
:styleType="ButtonStyleType.NEUTRAL_TRANSPARENT"
|
|
6
6
|
:disabled="modelValue === 1"
|
|
7
7
|
:class="[
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
{{ computedResultsText }}
|
|
15
15
|
</p>
|
|
16
16
|
<ActionIconButton
|
|
17
|
-
icon="
|
|
17
|
+
icon="mdi:chevron-right"
|
|
18
18
|
:styleType="ButtonStyleType.NEUTRAL_TRANSPARENT"
|
|
19
19
|
:disabled="modelValue === totalPages"
|
|
20
20
|
:class="[
|
|
@@ -8,13 +8,12 @@
|
|
|
8
8
|
'gap-2',
|
|
9
9
|
]"
|
|
10
10
|
>
|
|
11
|
-
<
|
|
12
|
-
:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
isValid ? 'text-icon-success-subtle' : 'text-text-neutral-subtle',
|
|
16
|
-
'w-[16px] h-[16px] min-w-[16px] min-h-[16px]',
|
|
11
|
+
<Icon
|
|
12
|
+
:name="isValid ? 'mdi:check' : 'mdi:close'"
|
|
13
|
+
:iconClass="[
|
|
14
|
+
isValid ? '!text-icon-success-subtle' : '!text-text-neutral-subtle',
|
|
17
15
|
]"
|
|
16
|
+
:size="IconSize.SM"
|
|
18
17
|
/>
|
|
19
18
|
<span
|
|
20
19
|
:class="[
|
|
@@ -33,16 +33,16 @@ const props = defineProps({
|
|
|
33
33
|
validator: (value: RatingItemColor) => Object.values(RatingItemColor).includes(value),
|
|
34
34
|
},
|
|
35
35
|
emptyIndicatorIcon: {
|
|
36
|
-
type: String as PropType<
|
|
37
|
-
default: '
|
|
36
|
+
type: String as PropType<string>,
|
|
37
|
+
default: 'mdi:star-outline'
|
|
38
38
|
},
|
|
39
39
|
halfIndicatorIcon: {
|
|
40
|
-
type: String as PropType<
|
|
41
|
-
default: '
|
|
40
|
+
type: String as PropType<string>,
|
|
41
|
+
default: 'mdi:star-half-full'
|
|
42
42
|
},
|
|
43
43
|
fullIndicatorIcon: {
|
|
44
|
-
type: String as PropType<
|
|
45
|
-
default: '
|
|
44
|
+
type: String as PropType<string>,
|
|
45
|
+
default: 'mdi:star'
|
|
46
46
|
},
|
|
47
47
|
hoverPreview: {
|
|
48
48
|
type: Boolean,
|
|
@@ -28,16 +28,16 @@ const props = defineProps({
|
|
|
28
28
|
validator: (value: RatingItemColor) => Object.values(RatingItemColor).includes(value),
|
|
29
29
|
},
|
|
30
30
|
emptyIndicatorIcon: {
|
|
31
|
-
type: String as PropType<
|
|
32
|
-
default: '
|
|
31
|
+
type: String as PropType<string>,
|
|
32
|
+
default: 'mdi:star-outline'
|
|
33
33
|
},
|
|
34
34
|
halfIndicatorIcon: {
|
|
35
|
-
type: String as PropType<
|
|
36
|
-
default: '
|
|
35
|
+
type: String as PropType<string>,
|
|
36
|
+
default: 'mdi:star-half-full'
|
|
37
37
|
},
|
|
38
38
|
fullIndicatorIcon: {
|
|
39
|
-
type: String as PropType<
|
|
40
|
-
default: '
|
|
39
|
+
type: String as PropType<string>,
|
|
40
|
+
default: 'mdi:star'
|
|
41
41
|
}
|
|
42
42
|
})
|
|
43
43
|
|