adata-ui 2.1.40-beta.18 → 2.1.40-beta.19

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 (211) hide show
  1. package/.playground/app.vue +102 -0
  2. package/assets/styles/index.scss +67 -5
  3. package/components/elements/a-select-row/ASelectRowV2.vue +214 -0
  4. package/components/elements/a-select-row/index.vue +3 -5
  5. package/components/elements/accordion/AAccordion.vue +5 -3
  6. package/components/elements/accordion/AAccordionGroup/AAccordionGroup.vue +3 -3
  7. package/components/elements/alert/AAlert.vue +34 -47
  8. package/components/elements/bg-block/ABgBlock.vue +1 -1
  9. package/components/elements/button/AButton.vue +3 -3
  10. package/components/elements/button/AButtonV2.vue +133 -0
  11. package/components/elements/button-login/index.vue +6 -10
  12. package/components/elements/chip-wrapper/AChipWrapper.vue +1 -1
  13. package/components/elements/chips/AChips.vue +2 -2
  14. package/components/elements/companies/AOurClients.vue +3 -1
  15. package/components/elements/curve-block-v2/ACurveBlockV2.vue +85 -0
  16. package/components/elements/digit-badge/ADigitBadge.vue +24 -22
  17. package/components/elements/feature-description/AFeatureDescription.vue +1 -1
  18. package/components/elements/leave-note/ALeaveNote.vue +39 -18
  19. package/components/elements/pagination/APagination.vue +7 -7
  20. package/components/elements/segmented/ASegmentedV2.vue +151 -0
  21. package/components/elements/select/ASelect.vue +4 -4
  22. package/components/elements/select/ASelectMobile.vue +2 -2
  23. package/components/elements/select/ASelectV2.vue +588 -0
  24. package/components/elements/select/ui/select-button.vue +1 -1
  25. package/components/elements/show-more/AShowMoreV2.vue +26 -0
  26. package/components/elements/slider/ASlider.vue +174 -0
  27. package/components/elements/slider/ASliderItem.vue +31 -0
  28. package/components/elements/slider/types.ts +21 -0
  29. package/components/elements/star-rating/AStarRating.vue +12 -4
  30. package/components/elements/status-badge/AStatusBadge.vue +91 -44
  31. package/components/elements/step-slider/AStepSliderColCard.vue +232 -0
  32. package/components/elements/step-slider/AStepSliderColNumber.vue +178 -0
  33. package/components/elements/table/ATable.vue +1 -1
  34. package/components/elements/table/table.config.ts +2 -2
  35. package/components/elements/tree-select/ATreeSelect.vue +97 -113
  36. package/components/elements/tree-select/TreeService.ts +142 -207
  37. package/components/elements/tree-select/components/ATreeSelectNode.vue +104 -0
  38. package/components/elements/tree-select/types.ts +40 -11
  39. package/components/elements/tree-select/utils.ts +30 -0
  40. package/components/elements/tree-select-modal/ATreeSelectModal.vue +217 -0
  41. package/components/features/color-mode/AColorMode.client.vue +74 -32
  42. package/components/features/dropdown/ADropdownV2.vue +140 -0
  43. package/components/features/lang-switcher/lang-switcher.vue +125 -40
  44. package/components/features/payment/banner/BasicPlusLimitBanner.vue +3 -3
  45. package/components/features/payment/banner/PaymentBanner.vue +3 -3
  46. package/components/features/payment/banner/UpSellBanner.vue +3 -3
  47. package/components/features/payment/process/PaymentKaspiQrSidePanel.vue +45 -27
  48. package/components/features/payment/process/PaymentKaspiRedirectSidePanel.vue +34 -23
  49. package/components/features/payment/process/PaymentMethodSidePanel.vue +66 -49
  50. package/components/features/payment/process/PaymentProcess.vue +6 -6
  51. package/components/features/payment/process/PaymentTopUpSidePanel.vue +49 -63
  52. package/components/features/pk-mobile-services/APkMobileServices.vue +6 -28
  53. package/components/features//321/201hange-version/AChangeVersion.vue +2 -2
  54. package/components/forms/checkbox/ACheckbox.vue +1 -1
  55. package/components/forms/checkbox/ACheckboxV2.vue +229 -0
  56. package/components/forms/feedback-form/FeedbackForm.vue +8 -8
  57. package/components/forms/feedback-form/FeedbackFormV2.vue +182 -0
  58. package/components/forms/input/AInputV2.vue +542 -0
  59. package/components/forms/input/date/AInputDate.vue +2 -2
  60. package/components/forms/input/password/AInputPassword.vue +8 -2
  61. package/components/forms/input/standard/AInputStandard.vue +3 -3
  62. package/components/forms/input/textarea/ATextarea.vue +2 -2
  63. package/components/forms/input/textarea/ATextareaV2.vue +248 -0
  64. package/components/forms/toggle/AToggle.vue +2 -3
  65. package/components/forms/toggle/AToggleV2.vue +71 -0
  66. package/components/modals/AnotherDeviceModal.vue +22 -18
  67. package/components/modals/ApplicationAcceptedModal.vue +12 -15
  68. package/components/modals/ConnectingTariffModal.vue +13 -20
  69. package/components/modals/ContactsMobileModel.vue +1 -1
  70. package/components/modals/ContentNavigationModal.vue +77 -333
  71. package/components/modals/Insufficient-funds-modal.vue +18 -33
  72. package/components/modals/LimitReachedModal.vue +17 -14
  73. package/components/modals/NoAccessModal.vue +9 -11
  74. package/components/modals/PaymentMethodModal.vue +1 -1
  75. package/components/modals/ReportBugConfirmModal.vue +12 -10
  76. package/components/modals/ReportBugModal.vue +46 -38
  77. package/components/modals/Resend.vue +9 -10
  78. package/components/modals/SubmitApplicationModal.vue +27 -24
  79. package/components/modals/id/IdBanner.vue +3 -3
  80. package/components/modals/id/IdConfirmAccountOtpModal.vue +4 -9
  81. package/components/modals/id/IdLoginModal.vue +3 -8
  82. package/components/modals/id/IdModals.vue +23 -10
  83. package/components/modals/id/IdRecoveryModal.vue +1 -1
  84. package/components/modals/id/IdTwoFactorModal.vue +3 -8
  85. package/components/navigation/bottom-navigation/ABottomNavigation.vue +1 -1
  86. package/components/navigation/breadcrumbs/ABreadcrumbs.vue +106 -45
  87. package/components/navigation/breadcrumbs/types.ts +3 -0
  88. package/components/navigation/footer/AFooter.vue +39 -40
  89. package/components/navigation/footer/ui/a-footer-accordion.vue +9 -9
  90. package/components/navigation/header/AHeader.vue +68 -51
  91. package/components/navigation/header/AlmatyContacts.vue +78 -78
  92. package/components/navigation/header/CardGallery.vue +9 -7
  93. package/components/navigation/header/ContactMenu.vue +26 -92
  94. package/components/navigation/header/HeaderLink.vue +181 -213
  95. package/components/navigation/header/HeaderUsage.vue +139 -0
  96. package/components/navigation/header/ListItem.vue +2 -2
  97. package/components/navigation/header/NavCard.vue +1 -1
  98. package/components/navigation/header/NavList.vue +33 -92
  99. package/components/navigation/header/NotificationsMenu.vue +2 -3
  100. package/components/navigation/header/ProductMenu.vue +81 -127
  101. package/components/navigation/header/ProfileMenu.vue +122 -151
  102. package/components/navigation/header/SystemNotification.vue +108 -0
  103. package/components/navigation/mobile-navigation/AMobileNavigation.vue +23 -15
  104. package/components/navigation/pill-tabs/APillTabs.vue +2 -2
  105. package/components/navigation/pill-tabs/APillTabsV2.vue +226 -0
  106. package/components/overlays/drawer/ADrawerV2.vue +335 -0
  107. package/components/overlays/modal/AModal.vue +4 -4
  108. package/components/overlays/modal/AModalV2.vue +397 -0
  109. package/components/overlays/side-panel/ASidePanel.vue +10 -7
  110. package/components/overlays/sideover/ASlideover.vue +6 -6
  111. package/components/overlays/tooltip/ATooltip.vue +1 -1
  112. package/components/overlays/tooltip/ATooltipV2.vue +223 -0
  113. package/components/overlays/tooltip/types.ts +26 -0
  114. package/components/overlays/tooltip/useTooltipTrigger.ts +101 -0
  115. package/components/transitions/ATransitionHeight.vue +1 -1
  116. package/composables/useAccessTokenCookie.ts +25 -0
  117. package/composables/useActiveNavigation.ts +84 -0
  118. package/composables/useChipOverflow.ts +92 -0
  119. package/composables/useHeaderNavigationLinks.ts +140 -98
  120. package/icons/archive.vue +16 -0
  121. package/icons/arrow/arrow-left-right.vue +8 -0
  122. package/icons/arrow/arrow-right.vue +14 -0
  123. package/icons/arrow/arrows-in.vue +11 -0
  124. package/icons/arrow/arrows-out.vue +11 -0
  125. package/icons/arrow/arrows-resize-in.vue +38 -0
  126. package/icons/arrow/arrows-resize-out.vue +17 -0
  127. package/icons/bill.vue +3 -0
  128. package/icons/bot.vue +52 -0
  129. package/icons/briefcase.vue +14 -0
  130. package/icons/building.vue +9 -0
  131. package/icons/car-side.vue +16 -0
  132. package/icons/cart.vue +15 -0
  133. package/icons/chart-no-axes-column.vue +3 -0
  134. package/icons/clock-time.vue +24 -0
  135. package/icons/cloud/cloud-upload.vue +3 -0
  136. package/icons/code.vue +9 -0
  137. package/icons/compare-outlined.vue +8 -0
  138. package/icons/dots-horizontal.vue +31 -0
  139. package/icons/download-line.vue +13 -0
  140. package/icons/download-rounded.vue +15 -0
  141. package/icons/egov.vue +41 -0
  142. package/icons/elicense.vue +38 -0
  143. package/icons/favourite-bookmark-outline.vue +17 -0
  144. package/icons/file/file-check-corner.vue +3 -0
  145. package/icons/file/file-spreadsheet.vue +3 -0
  146. package/icons/file-pen.vue +31 -0
  147. package/icons/file-stack.vue +31 -0
  148. package/icons/file-types/excel.vue +131 -0
  149. package/icons/file-types/html.vue +13 -0
  150. package/icons/file-types/jpeg.vue +16 -0
  151. package/icons/file-types/pdf.vue +11 -0
  152. package/icons/file-types/png.vue +11 -0
  153. package/icons/file-types/rar.vue +11 -0
  154. package/icons/file-types/word.vue +50 -0
  155. package/icons/file-types/zip.vue +11 -0
  156. package/icons/gauge.vue +17 -0
  157. package/icons/git-compare.vue +38 -0
  158. package/icons/git-fork.vue +3 -0
  159. package/icons/graduation-cap.vue +31 -0
  160. package/icons/graph-loading.vue +34 -0
  161. package/icons/headset.vue +6 -0
  162. package/icons/help-question-circle.vue +26 -0
  163. package/icons/in-row-type.vue +46 -0
  164. package/icons/in-table-type.vue +29 -0
  165. package/icons/landmark.vue +3 -0
  166. package/icons/layers.vue +3 -0
  167. package/icons/letter/letter-a.vue +6 -0
  168. package/icons/letter/letter-b.vue +6 -0
  169. package/icons/letter/letter-c.vue +6 -0
  170. package/icons/letter/letter-d.vue +6 -0
  171. package/icons/letter/letter-e.vue +6 -0
  172. package/icons/link-url.vue +3 -0
  173. package/icons/list-tree.vue +3 -0
  174. package/icons/mail-question-mark.vue +8 -0
  175. package/icons/message/message-square.vue +3 -0
  176. package/icons/message-dotted.vue +30 -0
  177. package/icons/network.vue +3 -0
  178. package/icons/newspaper.vue +3 -0
  179. package/icons/notification-error.vue +17 -0
  180. package/icons/person.vue +22 -0
  181. package/icons/phone-call.vue +6 -0
  182. package/icons/phone-reversed.vue +3 -0
  183. package/icons/route.vue +7 -0
  184. package/icons/scan-search.vue +3 -0
  185. package/icons/settings.vue +26 -0
  186. package/icons/shield-alert.vue +31 -0
  187. package/icons/shield-verified.vue +14 -0
  188. package/icons/socials/facebook-color.vue +16 -0
  189. package/icons/socials/globe-color.vue +16 -0
  190. package/icons/socials/instagram-color.vue +46 -0
  191. package/icons/socials/linkedin-color.vue +14 -0
  192. package/icons/socials/telegram-color.vue +16 -0
  193. package/icons/socials/tiktok-color.vue +14 -0
  194. package/icons/socials/vk-color.vue +16 -0
  195. package/icons/socials/youtube-color.vue +16 -0
  196. package/icons/sparkles.vue +3 -0
  197. package/icons/sun.vue +13 -3
  198. package/icons/users-round.vue +3 -0
  199. package/icons/view-eye-open.vue +13 -0
  200. package/icons/workflow.vue +3 -0
  201. package/icons/zap.vue +3 -0
  202. package/lang/en.ts +49 -5
  203. package/lang/kk.ts +50 -6
  204. package/lang/ru.ts +51 -7
  205. package/package.json +1 -1
  206. package/plugins/toast.client.ts +38 -55
  207. package/shared/constans/pages.ts +8 -2
  208. package/tailwind.config.ts +147 -116
  209. package/utils/twMerge.ts +34 -0
  210. package/components/elements/tree-select/components/tree-select-nodes.vue +0 -91
  211. package/components/navigation/header/TopHeader.vue +0 -196
@@ -1,16 +1,64 @@
1
+ <script setup lang="ts">
2
+ import { useContacts } from '#adata-ui/composables/projectState'
3
+ import Clock from '#adata-ui/icons/clock.vue'
4
+ import ExpandWindow from '#adata-ui/icons/expand-window.vue'
5
+ import Location from '#adata-ui/icons/location.vue'
6
+ import Mail from '#adata-ui/icons/mail.vue'
7
+ import Phone from '#adata-ui/icons/phone.vue'
8
+ import Whatsapp from '#adata-ui/icons/whatsapp.vue'
9
+
10
+ const { t } = useI18n()
11
+ const contacts = useContacts()
12
+ const AlmatyItems = computed(() => ([
13
+ {
14
+ title: t('header.contacts.almaty.adress.title'),
15
+ subtitle: t('header.contacts.almaty.adress.subtitle'),
16
+ icon: Location,
17
+ to: 'https://yandex.kz/maps/ru/org/avrora_kholding/1099794306/?ll=76.912479%2C43.208928&z=17.72',
18
+ },
19
+ {
20
+ title: t('header.contacts.almaty.email.title'),
21
+ subtitle: 'info@adata.kz',
22
+ icon: Mail,
23
+ to: 'mailto:info@adata.kz',
24
+ },
25
+ {
26
+ title: t('header.contacts.almaty.schedule.title'),
27
+ subtitle: t('header.contacts.almaty.schedule.subtitle'),
28
+ icon: Clock,
29
+ },
30
+ ]))
31
+
32
+ const technicalSupport = computed(() => ([
33
+ {
34
+ subtitle: t('header.contacts.almaty.support.linkTitle'),
35
+ icon: ExpandWindow,
36
+ to: 'https://api.whatsapp.com/send/?phone=77712289041',
37
+ },
38
+ ]))
39
+
40
+ const newContacts = computed(() => contacts.value.map(item => ({
41
+ subtitle: item.contact,
42
+ icon: item.platform_code === 'telephone' ? Phone : Whatsapp,
43
+ to: item.platform_code === 'telephone'
44
+ ? `tel:${item.contact}`
45
+ : `https://api.whatsapp.com/send/?phone=${item.contact.replace(/\D/g, '')}`,
46
+ })))
47
+ </script>
48
+
1
49
  <template>
2
- <!--noindex-->
50
+ <!-- noindex -->
3
51
  <div class="h-[272px]" data-nosnippet>
4
- <h2 class="heading-02 mb-4">
52
+ <h2 class="mb-4 text-h2">
5
53
  {{ t('header.contacts.almaty.title') }}
6
54
  </h2>
7
55
  <div class="flex gap-10">
8
56
  <div class="flex flex-col gap-4">
9
57
  <div
10
- v-for="item in AlmatyItems.slice(0,3)"
58
+ v-for="item in AlmatyItems.slice(0, 3)"
11
59
  class="flex flex-col gap-2 "
12
60
  >
13
- <div class="heading-04">
61
+ <div class="text-h5">
14
62
  {{ item.title }}
15
63
  </div>
16
64
  <a
@@ -21,46 +69,46 @@
21
69
  :is="item.icon"
22
70
  class="shrink-0"
23
71
  />
24
- <div class=" body-400">
72
+ <div class="text-body-md">
25
73
  {{ item.subtitle }}
26
74
  </div>
27
75
  </a>
28
76
  </div>
29
77
  </div>
30
78
  <div class="flex flex-col gap-2 2xl:gap-4">
31
- <div class="flex flex-col gap-4 h-full justify-between">
79
+ <div class="flex h-full flex-col justify-between gap-4">
32
80
  <div class="flex flex-col gap-2 ">
33
- <div class="heading-04">
81
+ <div class="text-h5">
34
82
  {{ t('header.contacts.almaty.contactUs.title') }}
35
83
  </div>
36
- <div class="grid grid-cols-[repeat(auto-fit,minmax(140px,1fr))] max-w-[484px] gap-x-8 gap-y-2">
84
+ <div class="grid max-w-[484px] grid-cols-[repeat(auto-fit,minmax(140px,1fr))] gap-x-8 gap-y-2">
37
85
  <a
38
86
  v-for="link in newContacts"
39
87
  :key="link.subtitle"
40
- class="flex 2xl:items-center gap-1 text-deepblue-900 dark:text-white"
88
+ class="flex gap-1 text-deepblue-900 dark:text-white 2xl:items-center"
41
89
  :href="link.to"
42
90
  :target="link.icon === Whatsapp ? '_blank' : '_self'"
43
91
  >
44
92
  <component :is="link.icon" />
45
- <div class="body-400 line-clamp-1">
93
+ <div class="line-clamp-1 text-body-md">
46
94
  {{ link.subtitle }}
47
95
  </div>
48
96
  </a>
49
97
  </div>
50
98
  </div>
51
99
  <div class="flex flex-col gap-2 ">
52
- <div class="heading-04 whitespace-nowrap">
100
+ <div class="whitespace-nowrap text-h5">
53
101
  {{ t('header.contacts.almaty.support.title') }}
54
102
  </div>
55
103
  <div class="flex flex-col lg:gap-y-5">
56
104
  <a
57
105
  v-for="link in technicalSupport"
58
106
  :key="link.subtitle"
59
- class="flex 2xl:items-center gap-1 text-deepblue-900 dark:text-white"
107
+ class="flex gap-1 text-deepblue-900 dark:text-white 2xl:items-center"
60
108
  :href="link.to"
61
109
  target="_blank"
62
110
  >
63
- <div class="body-400 line-clamp-1 text-blue-600">
111
+ <div class="line-clamp-1 text-body-md text-blue-600">
64
112
  {{ link.subtitle }}
65
113
  </div>
66
114
  <component
@@ -72,74 +120,26 @@
72
120
  </div>
73
121
  </div>
74
122
  </div>
75
- <!-- Here is the financial department-->
76
- <!-- <div class="flex flex-col gap-2 self-end">-->
77
- <!-- <div class="heading-04 whitespace-nowrap">-->
78
- <!-- {{ t('header.contacts.almaty.financeDep.title') }}-->
79
- <!-- </div>-->
80
- <!-- <nuxt-link-->
81
- <!-- class="flex gap-1 items-center"-->
82
- <!-- to="https://api.whatsapp.com/send?phone=77713954561"-->
83
- <!-- target="_blank"-->
84
- <!-- >-->
85
- <!-- <div class="body-400 line-clamp-1 text-blue-600">-->
86
- <!-- {{ t('header.contacts.almaty.financeDep.linkTitle') }}-->
87
- <!-- </div>-->
88
- <!-- <a-icon-expand-window class="stroke-blue-600"/>-->
89
- <!-- </nuxt-link>-->
90
- <!-- </div>-->
123
+ <!-- Here is the financial department -->
124
+ <!-- <div class="flex flex-col gap-2 self-end"> -->
125
+ <!-- <div class="heading-04 whitespace-nowrap"> -->
126
+ <!-- {{ t('header.contacts.almaty.financeDep.title') }} -->
127
+ <!-- </div> -->
128
+ <!-- <nuxt-link -->
129
+ <!-- class="flex gap-1 items-center" -->
130
+ <!-- to="https://api.whatsapp.com/send?phone=77713954561" -->
131
+ <!-- target="_blank" -->
132
+ <!-- > -->
133
+ <!-- <div class="body-400 line-clamp-1 text-blue-600"> -->
134
+ <!-- {{ t('header.contacts.almaty.financeDep.linkTitle') }} -->
135
+ <!-- </div> -->
136
+ <!-- <a-icon-expand-window class="stroke-blue-600"/> -->
137
+ <!-- </nuxt-link> -->
138
+ <!-- </div> -->
91
139
  </div>
92
140
  </div>
93
- <!--/noindex-->
141
+ <!-- /noindex -->
94
142
  </template>
95
143
 
96
- <script setup lang="ts">
97
-
98
- import Location from "#adata-ui/icons/location.vue";
99
- import Mail from "#adata-ui/icons/mail.vue";
100
- import Clock from "#adata-ui/icons/clock.vue";
101
- import Whatsapp from "#adata-ui/icons/whatsapp.vue";
102
- import Phone from "#adata-ui/icons/phone.vue";
103
- import ExpandWindow from "#adata-ui/icons/expand-window.vue";
104
- import {useContacts} from "#adata-ui/composables/projectState";
105
-
106
- const {t} = useI18n()
107
- const contacts = ref(useContacts())
108
- const AlmatyItems = computed(() => ([
109
- {
110
- title: t('header.contacts.almaty.adress.title'),
111
- subtitle: t('header.contacts.almaty.adress.subtitle'),
112
- icon: Location,
113
- to: 'https://yandex.kz/maps/ru/org/avrora_kholding/1099794306/?ll=76.912479%2C43.208928&z=17.72'
114
- },
115
- {
116
- title: t('header.contacts.almaty.email.title'),
117
- subtitle: 'info@adata.kz',
118
- icon: Mail,
119
- to: 'mailto:info@adata.kz'
120
- },
121
- {
122
- title: t('header.contacts.almaty.schedule.title'),
123
- subtitle: t('header.contacts.almaty.schedule.subtitle'),
124
- icon: Clock,
125
- },
126
- ]))
127
-
128
- const technicalSupport = computed(() => ([
129
- {
130
- subtitle: t('header.contacts.almaty.support.linkTitle'),
131
- icon: ExpandWindow,
132
- to: "https://api.whatsapp.com/send/?phone=77712289041"
133
- }
134
- ]))
135
-
136
- const newContacts = computed(()=> contacts.value.map(item => ({
137
- subtitle: item.contact,
138
- icon: item.platform_code === 'telephone' ? Phone : Whatsapp,
139
- to: item.platform_code === 'telephone' ? `tel:${item.contact}`
140
- : `https://api.whatsapp.com/send/?phone=${item.contact.replace(/[^0-9]/g, '')}`
141
- })))
142
- </script>
143
-
144
144
  <style scoped>
145
145
  </style>
@@ -109,7 +109,7 @@ onUnmounted(() => clearTimer())
109
109
 
110
110
  <template>
111
111
  <div
112
- class="overflow-hidden relative w-[320px] h-[480px] rounded-2xl"
112
+ class="overflow-hidden relative w-[320px] h-[480px] rounded-xl"
113
113
  @mouseover="handleMouseOver"
114
114
  @mouseout="handleMouseOut"
115
115
  >
@@ -120,14 +120,14 @@ onUnmounted(() => clearTimer())
120
120
  >
121
121
  <img
122
122
  :src="items[currentIndex].image"
123
- class="size-full object-cover rounded-2xl"
123
+ class="size-full object-cover rounded-xl"
124
124
  />
125
125
  <nuxt-link-locale :to="items[currentIndex].to">
126
- <div class="absolute bottom-0 rounded-2xl w-full bg-blue-700/80 dark:bg-blue-500/80 px-4 pt-4 pb-12 shadow-[0_-2px_4px_0_rgba(0,0,0,0.25)] backdrop-blur-md flex flex-col gap-6">
126
+ <div class="absolute bottom-0 rounded-xl w-full bg-blue-700/80 dark:bg-blue-500/80 px-4 pt-4 pb-12 shadow-[0_-2px_4px_0_rgba(0,0,0,0.25)] backdrop-blur-md flex flex-col gap-6">
127
127
  <div class="flex flex-col gap-2">
128
128
  <div class="flex items-center justify-between">
129
129
  <div class="flex items-center gap-2">
130
- <div class="flex items-center justify-center bg-white dark:bg-gray-900 text-blue-700 dark:text-blue-500 size-8 rounded-lg">
130
+ <div class="flex items-center justify-center bg-white dark:bg-gray-900 text-blue-700 dark:text-blue-500 size-8 rounded-md">
131
131
  <component
132
132
  :is="items[currentIndex].icon"
133
133
  class="size-6"
@@ -150,12 +150,12 @@ onUnmounted(() => clearTimer())
150
150
  </nuxt-link-locale>
151
151
  </div>
152
152
  </transition>
153
- <div class="absolute xl:bottom-4 w-full">
153
+ <div class="absolute bottom-4 w-full">
154
154
  <div class="flex justify-center items-center gap-6">
155
155
  <div
156
156
  v-for="(item, index) in items"
157
157
  :key="index"
158
- class="relative bg-white/50 dark:bg-gray-900/50 rounded-full overflow-hidden cursor-pointer h-2 w-2"
158
+ class="relative bg-white/50 dark:bg-gray-900/50 rounded-full overflow-hidden cursor-pointer h-2 w-2 transition-[width] duration-500 ease-[cubic-bezier(0.22,1,0.36,1)]"
159
159
  :class="{ 'w-[52px]': currentIndex === index }"
160
160
  @click="setCurrentIndex(index)"
161
161
  >
@@ -188,7 +188,9 @@ onUnmounted(() => clearTimer())
188
188
  top: 0;
189
189
  left: 0;
190
190
  width: 100%;
191
- transition: transform 0.3s ease, opacity 0.3s ease;
191
+ transition:
192
+ transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
193
+ opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1);
192
194
  }
193
195
 
194
196
  .slide-left-enter-from {
@@ -1,19 +1,8 @@
1
1
  <script setup lang="ts">
2
- import AlmatyContacts from "#adata-ui/components/navigation/header/AlmatyContacts.vue";
3
- import AstanaContacts from "#adata-ui/components/navigation/header/AstanaContacts.vue";
2
+ import AlmatyContacts from '#adata-ui/components/navigation/header/AlmatyContacts.vue'
3
+ import AstanaContacts from '#adata-ui/components/navigation/header/AstanaContacts.vue'
4
4
 
5
- const props = withDefaults(
6
- defineProps<{
7
- animation?: string
8
- index?: number
9
- url?: string
10
- }>(),
11
- {
12
- animation: 'previous',
13
- index: 2,
14
- url:''
15
- }
16
- )
5
+ defineProps<{ url?: string }>()
17
6
  defineEmits(['outerClick', 'mouseOver'])
18
7
 
19
8
  const { t } = useI18n()
@@ -21,94 +10,39 @@ const activeTab = ref(0)
21
10
  const options = [
22
11
  {
23
12
  key: 0,
24
- name: 'ТОО "Alldata"'
13
+ name: 'ТОО "Alldata"',
25
14
  },
26
15
  {
27
16
  key: 1,
28
- name: ' ТОО «ADATA Consulting»'
17
+ name: ' ТОО «ADATA Consulting»',
29
18
  },
30
19
  ]
31
-
32
20
  </script>
33
21
 
34
22
  <template>
35
- <div class=" normal-case ">
23
+ <div class="normal-case">
36
24
  <div class="bg-white dark:bg-gray-950">
37
- <transition :name="animation">
38
- <div
39
- :key="index"
40
- class="a-container"
41
- >
42
- <div class="pt-2 mb-8 flex justify-between">
43
- <a-pill-tabs
44
- v-model="activeTab"
45
- class="gap-2"
46
- view="mobile"
47
- :options="options"
48
- size="lg"
49
- />
50
- <nuxt-link :to="url">
51
- <a-button variant="gray">
52
- {{ t('header.contacts.toContacts') }}
53
- <a-icon-arrow-top-right-on-square />
54
- </a-button>
55
- </nuxt-link>
56
- </div>
57
- <div>
58
- <almaty-contacts v-show="activeTab===0" />
59
- <astana-contacts v-show="activeTab===1" />
60
- </div>
25
+ <div class="a-container">
26
+ <div class="mb-8 flex justify-between pt-2">
27
+ <a-pill-tabs
28
+ v-model="activeTab"
29
+ class="gap-2"
30
+ view="mobile"
31
+ :options="options"
32
+ size="lg"
33
+ />
34
+ <nuxt-link :to="url">
35
+ <a-button variant="gray">
36
+ {{ t('header.contacts.toContacts') }}
37
+ <a-icon-arrow-top-right-on-square />
38
+ </a-button>
39
+ </nuxt-link>
40
+ </div>
41
+ <div>
42
+ <almaty-contacts v-show="activeTab === 0" />
43
+ <astana-contacts v-show="activeTab === 1" />
61
44
  </div>
62
- </transition>
63
- <button
64
- class="absolute right-8 top-4"
65
- @click="$emit('outerClick')"
66
- >
67
- <a-icon-x-mark
68
- width="32"
69
- height="32"
70
- />
71
- </button>
45
+ </div>
72
46
  </div>
73
47
  </div>
74
48
  </template>
75
-
76
- <style scoped lang="scss">
77
- $percent: 30%;
78
- .next-enter-from,
79
- .next-leave-to {
80
- opacity: 0;
81
- transform: translateX($percent);
82
- position: absolute;
83
- }
84
-
85
- .next-enter-active {
86
- transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
87
- }
88
-
89
- .next-leave-active {
90
- transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
91
- opacity: 0;
92
- transform: translateX(-$percent);
93
- }
94
-
95
- // Backwards transition
96
-
97
- .prev-enter-from,
98
- .prev-leave-to {
99
- position: absolute;
100
-
101
- opacity: 0;
102
- transform: translateX(-$percent);
103
- }
104
-
105
- .prev-enter-active {
106
- transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
107
- }
108
-
109
- .prev-leave-active {
110
- transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
111
- opacity: 0;
112
- transform: translateX($percent);
113
- }
114
- </style>