@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.
Files changed (73) hide show
  1. package/components/accordions/AccordionItem.vue +1 -1
  2. package/components/alerts/Alert.vue +19 -22
  3. package/components/badges/Badge.vue +32 -25
  4. package/components/badges/IconBadge.vue +15 -15
  5. package/components/badges/IconTextBadge.vue +2 -2
  6. package/components/breadcrumbs/Breadcrumbs.vue +92 -27
  7. package/components/buttons/ActionButton.vue +40 -74
  8. package/components/buttons/ActionIconButton.vue +23 -51
  9. package/components/buttons/AlertButton.vue +8 -13
  10. package/components/buttons/AlertIconButton.vue +6 -7
  11. package/components/buttons/CopyButton.vue +4 -4
  12. package/components/buttons/options/OptionButton.vue +2 -2
  13. package/components/buttons/toggle/ToggleButton.vue +8 -10
  14. package/components/cards/specific/ContactDetailsCard.vue +4 -8
  15. package/components/cards/specific/FeatureCard.vue +2 -2
  16. package/components/cards/specific/HelpTopicCard.vue +4 -4
  17. package/components/cards/specific/subscription/SubscriptionPlanCard.vue +6 -6
  18. package/components/cards/specific/subscription/UniqueSubscriptionPlanCard.vue +1 -1
  19. package/components/collapsibles/Collapsible.vue +1 -1
  20. package/components/content/ContentItem.vue +2 -2
  21. package/components/content/ContentItemImage.vue +12 -14
  22. package/components/dropdowns/DropdownMenuItem.vue +10 -10
  23. package/components/dropdowns/DropdownSelect.vue +5 -16
  24. package/components/dropdowns/DropdownSelectItem.vue +13 -23
  25. package/components/empty-states/EmptyState.vue +21 -27
  26. package/components/features/Feature.vue +11 -48
  27. package/components/forms/fields/ButtonField.vue +2 -9
  28. package/components/forms/fields/CheckboxField.vue +9 -8
  29. package/components/forms/fields/DataField.vue +1 -1
  30. package/components/forms/fields/FileUploadField.vue +6 -6
  31. package/components/forms/fields/InputField.vue +17 -28
  32. package/components/forms/fields/RepeaterField.vue +2 -2
  33. package/components/forms/fields/SearchField.vue +7 -10
  34. package/components/forms/fields/SliderField.vue +16 -19
  35. package/components/forms/fields/SwitchField.vue +12 -34
  36. package/components/forms/fields/TextareaField.vue +7 -5
  37. package/components/forms/fields/radio/RadioButtonField.vue +6 -7
  38. package/components/icons/ContainedIcon.vue +14 -24
  39. package/components/icons/Icon.vue +13 -22
  40. package/components/layouts/ErrorDisplay.vue +3 -3
  41. package/components/layouts/headers/CompactHeader.vue +4 -4
  42. package/components/layouts/headers/ContentPageHeader.vue +1 -1
  43. package/components/lists/List.vue +1 -1
  44. package/components/lists/ListItem.vue +11 -14
  45. package/components/loaders/LoadingScreen.vue +3 -3
  46. package/components/modals/DangerModalDialog.vue +4 -4
  47. package/components/modals/InfoModalDialog.vue +3 -3
  48. package/components/modals/ModalDialog.vue +1 -1
  49. package/components/modals/SuccessModalDialog.vue +2 -2
  50. package/components/navigation/links/NavLink.vue +10 -10
  51. package/components/navigation/nav-sidebar/BottomUserNavBar.vue +3 -3
  52. package/components/navigation/nav-sidebar/NavSidebar.vue +9 -9
  53. package/components/navigation/nav-sidebar/NavSidebarMenuItem.vue +7 -9
  54. package/components/navigation/nav-sidebar/NavSidebarMenuSectionTitle.vue +4 -5
  55. package/components/pagination/ButtonPagination.vue +6 -10
  56. package/components/pagination/SimplePagination.vue +2 -2
  57. package/components/password/SecurePasswordCondition.vue +5 -6
  58. package/components/rating/InteractiveRating.vue +6 -6
  59. package/components/rating/Rating.vue +6 -6
  60. package/components/rating/RatingItem.vue +12 -13
  61. package/components/steppers/CircleStepper.vue +11 -13
  62. package/components/steppers/Step.vue +2 -2
  63. package/components/steppers/StepIndicator.vue +29 -28
  64. package/components/steppers/TabStepper.vue +1 -1
  65. package/components/steppers/vertical-stepper/VerticalStep.vue +2 -2
  66. package/components/steppers/vertical-stepper/VerticalStepper.vue +1 -1
  67. package/components/tabs/Tab.vue +4 -9
  68. package/models/enums/dropdowns.ts +1 -0
  69. package/models/types/buttons.ts +1 -1
  70. package/models/types/selects.ts +1 -2
  71. package/nuxt.config.ts +1 -1
  72. package/package.json +1 -2
  73. package/components/navigation/nav-menu/NavFooterMenu.vue +0 -90
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div
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<any>,
27
- default: 'mdiHelp',
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
- v-else-if="type === IconType.COLLECTION"
14
- :name="icon"
3
+ :name
15
4
  :mode
16
5
  :customize="svgCustomize"
17
6
  :class="[
18
7
  iconSizeClass,
19
8
  iconColorClass,
20
- iconClass,
9
+ ...normalizedIconClass,
21
10
  ]"
22
11
  />
23
12
  </template>
24
13
  <script setup lang="ts">
25
14
  // Props
26
15
  const props = defineProps({
27
- icon: {
28
- type: String as PropType<any>,
29
- default: 'mdiHelp',
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<any>,
126
- default: 'mdiAlertCircleOutline',
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: 'mdiHomeOutline',
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 ? 'mdiMenuOpen' : 'mdiMenuClose'"
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 ? 'mdiMenuOpen' : 'mdiMenuClose'"
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="mdiMenu"
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 ? 'mdiMenuOpen' : 'mdiMenuClose'"
143
+ :icon="isMobileSidebarOpen ? 'mdi:menu-open' : 'mdi:menu-close'"
144
144
  class="lg:hidden shadow-sm"
145
145
  @click="toggleMobileSidebar"
146
146
  />
@@ -16,7 +16,7 @@
16
16
  :text="goBackText"
17
17
  :iconPosition="IconPosition.LEFT"
18
18
  :to="goBackLink"
19
- icon="mdiKeyboardBackspace"
19
+ icon="mdi:keyboard-backspace"
20
20
  class="mb-2"
21
21
  />
22
22
 
@@ -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<any>,
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
- <span v-if="icon">
9
- <MdiIcon
10
- :class="iconClass"
11
- :icon="icon"
12
- preserveAspectRatio="xMidYMid meet"
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<any>,
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 iconSize = computed(() => {
38
+ const iconSizeClass = computed(() => {
42
39
  const sizeVariant = {
43
- [ListItemSize.XS]: '16',
44
- [ListItemSize.SM]: '20',
45
- [ListItemSize.MD]: '24',
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] || '20'
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="mdiAlertCircleOutline"
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="mdiRefresh"
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: "mdiKeyboardBackspace",
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<any>,
82
- default: 'mdiAlertOutline',
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<any>,
99
- default: 'mdiDeleteForeverOutline',
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<any>,
82
- default: 'mdiInformationOutline',
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<any>,
94
+ buttonActionIcon: String as PropType<string>,
95
95
  isLoading: {
96
96
  type: Boolean as PropType<boolean>,
97
97
  default: false,
@@ -22,7 +22,7 @@
22
22
  v-if="hasCornerCloseButton"
23
23
  :styleType="ButtonStyleType.NEUTRAL_TRANSPARENT"
24
24
  :size="ButtonSize.MD"
25
- icon="mdiClose"
25
+ icon="mdi:close"
26
26
  class="absolute top-4 right-4 z-10"
27
27
  @click="closeModal"
28
28
  />
@@ -42,8 +42,8 @@ defineProps({
42
42
  default: false,
43
43
  },
44
44
  icon: {
45
- type: String as PropType<any>,
46
- default: 'mdiCheckBold',
45
+ type: String as PropType<string>,
46
+ default: 'mdi:check-bold',
47
47
  },
48
48
  title: {
49
49
  type: String as PropType<string>,
@@ -14,21 +14,21 @@
14
14
  gapClass,
15
15
  ]">
16
16
  <!-- Left icon -->
17
- <MdiIcon
17
+ <Icon
18
18
  v-if="iconPosition === IconPosition.LEFT"
19
- :icon="icon"
20
- :size="iconSizeClass"
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
- <MdiIcon
28
+ <Icon
28
29
  v-if="iconPosition === IconPosition.RIGHT"
29
- :icon="icon"
30
- :size="iconSizeClass"
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<any>,
51
- default: "mdiArrowRightThin"
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: 'mdiAccountCogOutline',
66
+ icon: 'mdi:account-cog-outline',
67
67
  },
68
68
  {
69
69
  text: 'Support',
70
- icon: 'mdiLifebuoy',
70
+ icon: 'mdi:lifebuoy',
71
71
  to: '/',
72
72
  },
73
73
  {
74
74
  text: 'Logout',
75
- icon: 'mdiLogout',
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: 'mdiBullseye',
194
+ icon: 'mdi:bullseye',
195
195
  },
196
196
  {
197
197
  text: 'Item 1',
198
- icon: 'mdiHelp',
198
+ icon: 'mdi:help',
199
199
  to: '/',
200
200
  },
201
201
  {
202
202
  text: 'Item 2',
203
- icon: 'mdiHelp',
203
+ icon: 'mdi:help',
204
204
  to: '/',
205
205
  },
206
206
  {
207
207
  text: 'Item 3',
208
- icon: 'mdiHelp',
208
+ icon: 'mdi:help',
209
209
  children: [
210
210
  {
211
211
  text: 'Subitem 1',
212
- icon: 'mdiHelp',
212
+ icon: 'mdi:help',
213
213
  to: '/',
214
214
  },
215
215
  {
216
216
  text: 'Subitem 2',
217
- icon: 'mdiHelp',
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: 'mdiMenuClose',
267
+ default: 'mdi:menu-close',
268
268
  },
269
269
  expandedStateIcon: {
270
270
  type: String as PropType<string>,
271
- default: 'mdiMenuOpen',
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: 'mdiClose',
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
- <MdiIcon
25
+ <Icon
26
26
  v-if="icon"
27
- :icon
28
- preserveAspectRatio="xMidYMid meet"
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
- <MdiIcon
39
+ <Icon
41
40
  v-if="showDropdownArrow && !isCollapsed"
42
- :icon="isOpen ? 'mdiChevronUp' : 'mdiChevronDown'"
43
- preserveAspectRatio="xMidYMid meet"
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<any>,
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
- <MdiIcon
15
+ <Icon
16
16
  v-if="icon"
17
- :icon
18
- preserveAspectRatio="xMidYMid meet"
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<any>,
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
- <MdiIcon
66
- icon="mdiChevronLeft"
67
- size="20px"
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
- <MdiIcon
126
- icon="mdiChevronRight"
127
- size="20px"
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="mdiChevronLeft"
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="mdiChevronRight"
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
- <MdiIcon
12
- :icon="isValid ? 'mdiCheck' : 'mdiClose'"
13
- preserveAspectRatio="xMidYMid meet"
14
- :class="[
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<any>,
37
- default: 'mdiStarOutline'
36
+ type: String as PropType<string>,
37
+ default: 'mdi:star-outline'
38
38
  },
39
39
  halfIndicatorIcon: {
40
- type: String as PropType<any>,
41
- default: 'mdiStarHalfFull'
40
+ type: String as PropType<string>,
41
+ default: 'mdi:star-half-full'
42
42
  },
43
43
  fullIndicatorIcon: {
44
- type: String as PropType<any>,
45
- default: 'mdiStar'
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<any>,
32
- default: 'mdiStarOutline'
31
+ type: String as PropType<string>,
32
+ default: 'mdi:star-outline'
33
33
  },
34
34
  halfIndicatorIcon: {
35
- type: String as PropType<any>,
36
- default: 'mdiStarHalfFull'
35
+ type: String as PropType<string>,
36
+ default: 'mdi:star-half-full'
37
37
  },
38
38
  fullIndicatorIcon: {
39
- type: String as PropType<any>,
40
- default: 'mdiStar'
39
+ type: String as PropType<string>,
40
+ default: 'mdi:star'
41
41
  }
42
42
  })
43
43