adata-ui 2.1.41-beta.0 → 2.1.41-beta.2

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 (569) hide show
  1. package/-error.vue +170 -170
  2. package/.claude/settings.local.json +19 -0
  3. package/.editorconfig +12 -12
  4. package/.gitlab-ci.yml +16 -16
  5. package/.nuxtrc +1 -1
  6. package/.nvmrc +1 -1
  7. package/.playground/app.config.ts +5 -5
  8. package/.playground/app.vue +102 -102
  9. package/.playground/nuxt.config.ts +4 -4
  10. package/CLAUDE.md +63 -62
  11. package/README.md +75 -75
  12. package/app.config.ts +28 -28
  13. package/app.vue +8 -8
  14. package/assets/styles/main.css +12 -11
  15. package/assets/styles/theme.css +583 -576
  16. package/assets/styles/ui.css +247 -170
  17. package/components/elements/README.md +1 -1
  18. package/components/elements/a-select-row/ASelectRowV2.vue +210 -210
  19. package/components/elements/a-select-row/index.vue +139 -139
  20. package/components/elements/accordion/AAccordion.vue +199 -199
  21. package/components/elements/accordion/AAccordionGroup/AAccordionGroup.vue +145 -145
  22. package/components/elements/accordion/AAccordionGroup/types.ts +20 -20
  23. package/components/elements/accordion/AAccordionGroup/ui.config.ts +22 -22
  24. package/components/elements/accordion/types.ts +14 -14
  25. package/components/elements/accordion/ui.config.ts +22 -22
  26. package/components/elements/alert/AAlert.vue +52 -52
  27. package/components/elements/banner/ABanner.vue +49 -49
  28. package/components/elements/bg-block/ABgBlock.vue +11 -11
  29. package/components/elements/button/AButton.vue +191 -191
  30. package/components/elements/button/AButtonV2.vue +179 -134
  31. package/components/elements/button/types.ts +24 -24
  32. package/components/elements/button-login/index.vue +19 -19
  33. package/components/elements/calendar/ACalendar.vue +83 -83
  34. package/components/elements/carousel/ACarousel.vue +159 -159
  35. package/components/elements/carousel/config.ui.ts +15 -15
  36. package/components/elements/carousel/types.ts +18 -18
  37. package/components/elements/chip-wrapper/AChipWrapper.vue +81 -81
  38. package/components/elements/chip-wrapper/types.ts +12 -12
  39. package/components/elements/chips/AChips.vue +33 -33
  40. package/components/elements/companies/AOurClients.vue +47 -47
  41. package/components/elements/count-up/ACountUp.vue +54 -0
  42. package/components/elements/curve-block/ACurveBlock.vue +259 -259
  43. package/components/elements/curve-block-v2/ACurveBlockV2.vue +122 -84
  44. package/components/elements/digit-badge/ADigitBadge.vue +86 -86
  45. package/components/elements/empty-box/empty-box-V2.vue +92 -92
  46. package/components/elements/error-template/index.vue +116 -116
  47. package/components/elements/feature-description/AFeatureDescription.vue +112 -112
  48. package/components/elements/illustrations/noAccess.vue +71 -71
  49. package/components/elements/infinite-carousel/AInfiniteCarousel.vue +85 -47
  50. package/components/elements/infinite-scroll/AInfiniteScroll.vue +33 -33
  51. package/components/elements/leave-note/ALeaveNote.vue +102 -102
  52. package/components/elements/pagination/APagination.vue +110 -110
  53. package/components/elements/photos-animation/APhotosAnimation.vue +85 -85
  54. package/components/elements/section-heading/ASectionHeading.vue +35 -0
  55. package/components/elements/segmented/ASegmentedV2.vue +154 -154
  56. package/components/elements/select/ASelect.vue +448 -448
  57. package/components/elements/select/ASelectMobile.vue +186 -186
  58. package/components/elements/select/ASelectV2.vue +580 -580
  59. package/components/elements/select/ui/select-button.vue +112 -112
  60. package/components/elements/select/ui/select-list.vue +99 -99
  61. package/components/elements/show-more/AShowMore.vue +35 -35
  62. package/components/elements/show-more/AShowMoreV2.vue +26 -26
  63. package/components/elements/skeleton/ASkeleton.vue +44 -44
  64. package/components/elements/slider/ASlider.vue +175 -175
  65. package/components/elements/slider/ASliderItem.vue +31 -31
  66. package/components/elements/slider/ASliderV2.vue +182 -182
  67. package/components/elements/slider/types.ts +21 -21
  68. package/components/elements/star-rating/AStarRating.vue +189 -189
  69. package/components/elements/star-rating/types.ts +7 -7
  70. package/components/elements/star-rating/ui/Star.vue +74 -74
  71. package/components/elements/status-badge/AStatusBadge.vue +125 -125
  72. package/components/elements/step-slider/AStepSliderColCard.vue +270 -233
  73. package/components/elements/step-slider/AStepSliderColNumber.vue +199 -178
  74. package/components/elements/table/ATable.vue +93 -93
  75. package/components/elements/table/table.config.ts +32 -32
  76. package/components/elements/tree-select/ATreeSelect.vue +157 -157
  77. package/components/elements/tree-select/TreeService.ts +184 -184
  78. package/components/elements/tree-select/components/ATreeSelectNode.vue +104 -104
  79. package/components/elements/tree-select/types.ts +63 -63
  80. package/components/elements/tree-select/utils.ts +30 -30
  81. package/components/elements/tree-select-mobile/ATreeSelectMobile.vue +79 -79
  82. package/components/elements/tree-select-mobile/components/ATreeSelectNodesMobile.vue +175 -175
  83. package/components/elements/tree-select-modal/ATreeSelectModal.vue +217 -217
  84. package/components/features/color-mode/AColorMode.client.vue +74 -96
  85. package/components/features/dropdown/ADropdown.vue +127 -127
  86. package/components/features/dropdown/ADropdownV2.vue +140 -140
  87. package/components/features/go-top/GoTop.vue +63 -63
  88. package/components/features/lang-switcher/lang-switcher.vue +158 -158
  89. package/components/features/payment/banner/BasicPlusLimitBanner.vue +84 -84
  90. package/components/features/payment/banner/PaymentBanner.vue +88 -88
  91. package/components/features/payment/banner/UpSellBanner.vue +105 -105
  92. package/components/features/payment/process/PaymentKaspiQrSidePanel.vue +180 -180
  93. package/components/features/payment/process/PaymentKaspiRedirectSidePanel.vue +123 -123
  94. package/components/features/payment/process/PaymentMethodSidePanel.vue +138 -138
  95. package/components/features/payment/process/PaymentProcess.vue +158 -158
  96. package/components/features/payment/process/PaymentTopUpSidePanel.vue +119 -119
  97. package/components/features/pk-mobile-services/APkMobileServices.vue +107 -107
  98. package/components/features//321/201hange-version/AChangeVersion.vue +20 -20
  99. package/components/forms/README.md +1 -1
  100. package/components/forms/checkbox/ACheckbox.vue +149 -149
  101. package/components/forms/checkbox/ACheckboxV2.vue +229 -229
  102. package/components/forms/feedback-form/FeedbackForm.vue +177 -177
  103. package/components/forms/feedback-form/FeedbackFormV2.vue +186 -183
  104. package/components/forms/input/AInputV2.vue +560 -538
  105. package/components/forms/input/button/AInputButton.vue +53 -53
  106. package/components/forms/input/date/AInputDate.vue +217 -217
  107. package/components/forms/input/password/AInputPassword.vue +59 -59
  108. package/components/forms/input/standard/AInputStandard.vue +424 -424
  109. package/components/forms/input/textarea/ATextarea.vue +207 -207
  110. package/components/forms/input/textarea/ATextareaV2.vue +253 -248
  111. package/components/forms/radio-button/ARadioButton.vue +95 -95
  112. package/components/forms/request-demo/ARequestDemo.vue +108 -108
  113. package/components/forms/toggle/AToggle.vue +157 -157
  114. package/components/forms/toggle/AToggleV2.vue +72 -72
  115. package/components/forms/toggle/types.ts +16 -16
  116. package/components/modals/AConfirmationEmail.vue +40 -40
  117. package/components/modals/AboutTariffModal.vue +115 -115
  118. package/components/modals/AnotherDeviceModal.vue +65 -65
  119. package/components/modals/ApplicationAcceptedModal.vue +45 -45
  120. package/components/modals/ConnectingTariffModal.vue +60 -60
  121. package/components/modals/ContactsMobileModel.vue +182 -182
  122. package/components/modals/ContentNavigationModal.vue +100 -100
  123. package/components/modals/Insufficient-funds-modal.vue +62 -62
  124. package/components/modals/LimitReachedModal.vue +44 -44
  125. package/components/modals/NoAccessModal.vue +39 -39
  126. package/components/modals/PaymentMethodModal.vue +101 -101
  127. package/components/modals/RedirectsBanksModal.vue +69 -69
  128. package/components/modals/ReplenishModal.vue +132 -132
  129. package/components/modals/ReportBugConfirmModal.vue +32 -32
  130. package/components/modals/ReportBugModal.vue +172 -172
  131. package/components/modals/Resend.vue +81 -81
  132. package/components/modals/SubmitApplicationModal.vue +126 -126
  133. package/components/modals/id/AuthModal.vue +72 -72
  134. package/components/modals/id/IdAutoLogoutModal.vue +44 -44
  135. package/components/modals/id/IdBanner.vue +41 -41
  136. package/components/modals/id/IdConfirmAccountOtpModal.vue +182 -182
  137. package/components/modals/id/IdConfirmSuccessfulModal.vue +41 -41
  138. package/components/modals/id/IdLoginModal.vue +336 -336
  139. package/components/modals/id/IdModals.vue +125 -125
  140. package/components/modals/id/IdNewPasswordModal.vue +129 -129
  141. package/components/modals/id/IdOtpInput.vue +156 -156
  142. package/components/modals/id/IdPasswordSuccessfulModal.vue +25 -25
  143. package/components/modals/id/IdRecoveryModal.vue +117 -117
  144. package/components/modals/id/IdRegistrationModal.vue +215 -215
  145. package/components/modals/id/IdResetPasswordOtpModal.vue +159 -159
  146. package/components/modals/id/IdTwoFactorModal.vue +126 -126
  147. package/components/navigation/README.md +1 -1
  148. package/components/navigation/bottom-navigation/ABottomNavigation.vue +106 -106
  149. package/components/navigation/breadcrumbs/ABreadcrumbs.vue +128 -128
  150. package/components/navigation/breadcrumbs/types.ts +8 -8
  151. package/components/navigation/footer/AFooter.vue +283 -283
  152. package/components/navigation/footer/ui/a-footer-accordion.vue +118 -118
  153. package/components/navigation/header/AHeader.vue +237 -237
  154. package/components/navigation/header/AlmatyContacts.vue +145 -145
  155. package/components/navigation/header/AstanaContacts.vue +67 -67
  156. package/components/navigation/header/CardGallery.vue +252 -252
  157. package/components/navigation/header/ContactMenu.vue +48 -48
  158. package/components/navigation/header/HeaderLink.vue +250 -250
  159. package/components/navigation/header/HeaderUsage.vue +139 -139
  160. package/components/navigation/header/ListItem.vue +32 -32
  161. package/components/navigation/header/NavCard.vue +42 -42
  162. package/components/navigation/header/NavList.vue +73 -73
  163. package/components/navigation/header/NotificationsMenu.vue +50 -50
  164. package/components/navigation/header/ProductMenu.vue +101 -101
  165. package/components/navigation/header/ProfileMenu.vue +168 -168
  166. package/components/navigation/header/SystemNotification.vue +108 -108
  167. package/components/navigation/header/types.ts +28 -28
  168. package/components/navigation/line-tabs/ALineTabs.vue +112 -112
  169. package/components/navigation/line-tabs/types.ts +21 -21
  170. package/components/navigation/mobile-navigation/AMobileNavigation.vue +112 -112
  171. package/components/navigation/pill-tabs/APillTabs.vue +179 -179
  172. package/components/navigation/pill-tabs/APillTabsV2.vue +241 -226
  173. package/components/navigation/pill-tabs/types.ts +24 -24
  174. package/components/navigation/side-navigation/ASideNavigation.vue +406 -406
  175. package/components/overlays/README.md +1 -1
  176. package/components/overlays/drawer/ADrawerV2.vue +335 -335
  177. package/components/overlays/modal/AModal.vue +335 -335
  178. package/components/overlays/modal/AModalV2.vue +400 -400
  179. package/components/overlays/side-panel/ASidePanel.vue +445 -445
  180. package/components/overlays/sideover/ASlideover.vue +351 -351
  181. package/components/overlays/tooltip/ATooltip.vue +238 -238
  182. package/components/overlays/tooltip/ATooltipV2.vue +226 -226
  183. package/components/overlays/tooltip/types.ts +26 -26
  184. package/components/overlays/tooltip/useTooltipTrigger.ts +101 -101
  185. package/components/transitions/ATransitionHeight.vue +67 -67
  186. package/components/utils/index.ts +19 -19
  187. package/components/utils/removeTrailingSlash.ts +7 -7
  188. package/composables/highlight.ts +19 -19
  189. package/composables/modalsState.ts +8 -8
  190. package/composables/projectState.ts +2 -2
  191. package/composables/useAccessTokenCookie.ts +25 -25
  192. package/composables/useActiveNavigation.ts +84 -84
  193. package/composables/useAdaptive.ts +46 -46
  194. package/composables/useBuyTariffs.ts +91 -91
  195. package/composables/useCarouselScroll.ts +49 -49
  196. package/composables/useChipOverflow.ts +92 -92
  197. package/composables/useHeaderNavigationLinks.ts +519 -519
  198. package/composables/useIdModals.ts +36 -36
  199. package/composables/usePayment.ts +78 -78
  200. package/composables/useUIValidation.ts +16 -16
  201. package/composables/useUrls.ts +23 -23
  202. package/eslint.config.mjs +58 -58
  203. package/i18n/i18n.config.ts +21 -21
  204. package/i18n.config.ts +21 -21
  205. package/icons/adata-logo.vue +17 -17
  206. package/icons/ai-assistant.vue +13 -13
  207. package/icons/akimat.vue +20 -20
  208. package/icons/archive.vue +16 -16
  209. package/icons/arrow/arrow-bottom-left-on-square.vue +5 -5
  210. package/icons/arrow/arrow-circle-down.vue +16 -16
  211. package/icons/arrow/arrow-circle-reset.vue +16 -16
  212. package/icons/arrow/arrow-corner.vue +9 -9
  213. package/icons/arrow/arrow-graph-down.vue +13 -13
  214. package/icons/arrow/arrow-graph-up.vue +14 -14
  215. package/icons/arrow/arrow-left-right.vue +8 -8
  216. package/icons/arrow/arrow-left.vue +14 -14
  217. package/icons/arrow/arrow-right.vue +14 -14
  218. package/icons/arrow/arrow-square-down.vue +15 -15
  219. package/icons/arrow/arrow-top-right-on-square.vue +6 -6
  220. package/icons/arrow/arrows-in.vue +11 -11
  221. package/icons/arrow/arrows-out.vue +11 -11
  222. package/icons/arrow/arrows-resize-in.vue +38 -38
  223. package/icons/arrow/arrows-resize-out.vue +17 -17
  224. package/icons/arrow-currency-gray.vue +5 -5
  225. package/icons/arrow-currency-green.vue +5 -5
  226. package/icons/arrow-currency-red.vue +5 -5
  227. package/icons/arrow-side-up.vue +6 -6
  228. package/icons/avatar.vue +12 -12
  229. package/icons/bank.vue +5 -5
  230. package/icons/bar-chart-3.vue +3 -3
  231. package/icons/bill.vue +3 -3
  232. package/icons/block.vue +16 -16
  233. package/icons/book-open.vue +3 -3
  234. package/icons/bookmark/bookmark-filled.vue +19 -19
  235. package/icons/bookmark/bookmark.vue +5 -5
  236. package/icons/bot.vue +52 -52
  237. package/icons/braces.vue +3 -3
  238. package/icons/briefcase.vue +14 -14
  239. package/icons/browsers/browser-duck.vue +65 -65
  240. package/icons/browsers/browser-google.vue +30 -30
  241. package/icons/browsers/browser-yandex.vue +13 -13
  242. package/icons/building-vector.vue +7 -7
  243. package/icons/building.vue +9 -9
  244. package/icons/calculator.vue +7 -7
  245. package/icons/calendar.vue +24 -24
  246. package/icons/car-side.vue +16 -16
  247. package/icons/car.vue +7 -7
  248. package/icons/cart.vue +15 -15
  249. package/icons/chart-bar.vue +5 -5
  250. package/icons/chart-no-axes-column.vue +3 -3
  251. package/icons/chart-pie.vue +16 -16
  252. package/icons/check/check-circle.vue +6 -6
  253. package/icons/check/check-outline.vue +3 -3
  254. package/icons/check/check-shield.vue +14 -14
  255. package/icons/check/check.vue +17 -17
  256. package/icons/check/checkmark-circle.vue +6 -6
  257. package/icons/check-sb.vue +7 -7
  258. package/icons/checkbox/checkbox-active.vue +17 -17
  259. package/icons/checkbox/checkbox-empty.vue +10 -10
  260. package/icons/checkbox/checkbox-intermediate.vue +7 -7
  261. package/icons/chevron/chevron-down-outline.vue +3 -3
  262. package/icons/chevron/chevron-down.vue +5 -5
  263. package/icons/chevron/chevron-left.vue +5 -5
  264. package/icons/chevron/chevron-right.vue +5 -5
  265. package/icons/chevron/chevron-up.vue +5 -5
  266. package/icons/chevron/double-chevron-right.vue +12 -12
  267. package/icons/clipboard-list.vue +3 -3
  268. package/icons/clipboard-text.vue +7 -7
  269. package/icons/clock-outline.vue +3 -3
  270. package/icons/clock-time.vue +24 -24
  271. package/icons/clock.vue +25 -25
  272. package/icons/close.vue +16 -16
  273. package/icons/cloud/cloud-upload.vue +3 -3
  274. package/icons/code.vue +9 -9
  275. package/icons/company/company-bazis.vue +21 -21
  276. package/icons/company/company-bereke.vue +25 -25
  277. package/icons/company/company-bigroup.vue +16 -16
  278. package/icons/company/company-erg.vue +17 -17
  279. package/icons/company/company-forte.vue +21 -21
  280. package/icons/company/company-halyk.vue +15 -15
  281. package/icons/company/company-jusan.vue +31 -31
  282. package/icons/company/company-kaspi.vue +14 -14
  283. package/icons/company/company-kazzinc.vue +22 -22
  284. package/icons/company/company-mycar.vue +13 -13
  285. package/icons/company/company-samruk.vue +21 -21
  286. package/icons/company-egov-small.vue +15 -15
  287. package/icons/company.vue +8 -8
  288. package/icons/compare-outlined.vue +8 -8
  289. package/icons/copy.vue +7 -7
  290. package/icons/currency/currency-dollar.vue +16 -16
  291. package/icons/currency/currency-down.vue +22 -22
  292. package/icons/currency/currency-eur.vue +57 -57
  293. package/icons/currency/currency-rub.vue +7 -7
  294. package/icons/currency/currency-tenge.vue +9 -9
  295. package/icons/currency/currency-usd.vue +221 -221
  296. package/icons/currency/currency-yuan.vue +25 -25
  297. package/icons/database.vue +3 -3
  298. package/icons/default-avatar.vue +20 -20
  299. package/icons/delete.vue +7 -7
  300. package/icons/document.vue +5 -5
  301. package/icons/dots-horizontal.vue +31 -31
  302. package/icons/download-line.vue +13 -13
  303. package/icons/download-outline.vue +3 -3
  304. package/icons/download-rounded.vue +15 -15
  305. package/icons/download.vue +11 -11
  306. package/icons/edit.vue +7 -7
  307. package/icons/education.vue +16 -16
  308. package/icons/egov-small.vue +7 -7
  309. package/icons/egov.vue +41 -41
  310. package/icons/elicense.vue +38 -38
  311. package/icons/excel-icon.vue +14 -14
  312. package/icons/expand-window.vue +7 -7
  313. package/icons/eye-closed.vue +26 -26
  314. package/icons/eye-open.vue +7 -7
  315. package/icons/eye-opened.vue +23 -23
  316. package/icons/favourite-bookmark-outline.vue +17 -17
  317. package/icons/file/file-check-corner.vue +3 -3
  318. package/icons/file/file-spreadsheet.vue +3 -3
  319. package/icons/file/file.vue +16 -16
  320. package/icons/file/files.vue +16 -16
  321. package/icons/file-json.vue +3 -3
  322. package/icons/file-pen.vue +31 -31
  323. package/icons/file-search.vue +3 -3
  324. package/icons/file-stack.vue +31 -31
  325. package/icons/file-text.vue +3 -3
  326. package/icons/file-types/excel.vue +131 -131
  327. package/icons/file-types/html.vue +13 -13
  328. package/icons/file-types/jpeg.vue +16 -16
  329. package/icons/file-types/pdf.vue +11 -11
  330. package/icons/file-types/png.vue +11 -11
  331. package/icons/file-types/rar.vue +11 -11
  332. package/icons/file-types/word.vue +50 -50
  333. package/icons/file-types/zip.vue +11 -11
  334. package/icons/filter.vue +5 -5
  335. package/icons/flag.vue +7 -7
  336. package/icons/flask-conical.vue +3 -3
  337. package/icons/folder-open.vue +3 -3
  338. package/icons/gauge.vue +17 -17
  339. package/icons/gift-outline.vue +3 -3
  340. package/icons/gift.vue +8 -8
  341. package/icons/git-compare.vue +38 -38
  342. package/icons/git-fork.vue +3 -3
  343. package/icons/globe-2.vue +3 -3
  344. package/icons/globe.vue +16 -16
  345. package/icons/google.vue +41 -41
  346. package/icons/gradiend-icons/files-gradient.vue +22 -22
  347. package/icons/gradiend-icons/hammer-gradient.vue +62 -62
  348. package/icons/graduation-cap.vue +31 -31
  349. package/icons/graph-loading.vue +34 -34
  350. package/icons/graph-pie.vue +14 -14
  351. package/icons/hand/hand-thumb-up-filled.vue +5 -5
  352. package/icons/hand/hand-thumb-up.vue +5 -5
  353. package/icons/hand-with-phone/hand-with-phone-dark.vue +52 -52
  354. package/icons/hand-with-phone/hand-with-phone-light.vue +52 -52
  355. package/icons/handshake.vue +5 -5
  356. package/icons/hcheck.vue +14 -14
  357. package/icons/hdocument.vue +7 -7
  358. package/icons/headset.vue +6 -6
  359. package/icons/help-question-circle.vue +26 -26
  360. package/icons/history.vue +5 -5
  361. package/icons/home.vue +14 -14
  362. package/icons/horizontal-more.vue +13 -13
  363. package/icons/hot-line.vue +6 -6
  364. package/icons/hummer.vue +16 -16
  365. package/icons/id.vue +7 -7
  366. package/icons/in-row-type.vue +46 -46
  367. package/icons/in-table-type.vue +29 -29
  368. package/icons/info/info-circle.vue +29 -29
  369. package/icons/invoice.vue +8 -8
  370. package/icons/judge.vue +14 -14
  371. package/icons/kaspi-qr.vue +13 -13
  372. package/icons/key-round.vue +3 -3
  373. package/icons/landmark.vue +3 -3
  374. package/icons/layers.vue +3 -3
  375. package/icons/letter/letter-a.vue +8 -6
  376. package/icons/letter/letter-b.vue +6 -6
  377. package/icons/letter/letter-c.vue +6 -6
  378. package/icons/letter/letter-d.vue +6 -6
  379. package/icons/letter/letter-e.vue +6 -6
  380. package/icons/link-chain.vue +28 -28
  381. package/icons/link-url.vue +3 -3
  382. package/icons/link.vue +7 -7
  383. package/icons/linkedin.vue +24 -24
  384. package/icons/list-tree.vue +3 -3
  385. package/icons/loader-circle.vue +27 -27
  386. package/icons/location.vue +8 -8
  387. package/icons/lock.vue +5 -5
  388. package/icons/logo.vue +15 -15
  389. package/icons/logout.vue +16 -16
  390. package/icons/magnify/magnifying-glass-minus.vue +8 -8
  391. package/icons/magnify/magnifying-glass-plus.vue +9 -9
  392. package/icons/magnify/magnifying-glass.vue +9 -9
  393. package/icons/mail-question-mark.vue +8 -8
  394. package/icons/mail.vue +7 -7
  395. package/icons/mailru.vue +34 -34
  396. package/icons/main-filter.vue +5 -5
  397. package/icons/map/map-pin-filled.vue +7 -7
  398. package/icons/map/map-pin-rect.vue +15 -15
  399. package/icons/map/map-pin.vue +7 -7
  400. package/icons/map-marker-start.vue +7 -7
  401. package/icons/map-paper.vue +5 -5
  402. package/icons/medal.vue +7 -7
  403. package/icons/menu-filled.vue +20 -20
  404. package/icons/menu.vue +8 -8
  405. package/icons/message/message-square.vue +3 -3
  406. package/icons/message/message.vue +12 -12
  407. package/icons/message-dotted.vue +30 -30
  408. package/icons/messages-square.vue +3 -3
  409. package/icons/minus/minus-circle.vue +10 -10
  410. package/icons/money.vue +5 -5
  411. package/icons/monitoring.vue +10 -10
  412. package/icons/moon.vue +8 -8
  413. package/icons/more.vue +29 -29
  414. package/icons/network.vue +3 -3
  415. package/icons/newspaper.vue +3 -3
  416. package/icons/note-pencil.vue +14 -14
  417. package/icons/note.vue +14 -14
  418. package/icons/notification-error.vue +17 -17
  419. package/icons/notification.vue +16 -16
  420. package/icons/paperclip.vue +7 -7
  421. package/icons/payment/payment-card.vue +6 -6
  422. package/icons/payment/payment-kaspi.vue +11 -11
  423. package/icons/person-vector.vue +7 -7
  424. package/icons/person-with-briefcase.vue +10 -10
  425. package/icons/person.vue +22 -22
  426. package/icons/phone-call.vue +6 -6
  427. package/icons/phone-filled.vue +5 -5
  428. package/icons/phone-reversed.vue +3 -3
  429. package/icons/phone.vue +7 -7
  430. package/icons/plus/plus-circle.vue +8 -8
  431. package/icons/plus/plus.vue +13 -13
  432. package/icons/profile.vue +5 -5
  433. package/icons/radio/radio-check.vue +8 -8
  434. package/icons/radio/radio-empty.vue +10 -10
  435. package/icons/receipt.vue +8 -8
  436. package/icons/robot-outline.vue +3 -3
  437. package/icons/robot.vue +14 -14
  438. package/icons/route.vue +7 -7
  439. package/icons/sanctions.vue +8 -8
  440. package/icons/scales/scale-outline.vue +3 -3
  441. package/icons/scales/scale.vue +16 -16
  442. package/icons/scales/scales.vue +5 -5
  443. package/icons/scales/standing-scales.vue +15 -15
  444. package/icons/scan-search.vue +3 -3
  445. package/icons/search-outline.vue +3 -3
  446. package/icons/search.vue +27 -27
  447. package/icons/send.vue +3 -3
  448. package/icons/settings.vue +26 -26
  449. package/icons/share/share-alt.vue +5 -5
  450. package/icons/share/share.vue +14 -14
  451. package/icons/shield-alert.vue +31 -31
  452. package/icons/shield-verified.vue +14 -14
  453. package/icons/ship.vue +8 -8
  454. package/icons/socials/face-book.vue +15 -15
  455. package/icons/socials/facebook-color.vue +16 -16
  456. package/icons/socials/globe-color.vue +16 -16
  457. package/icons/socials/instagram-color.vue +46 -46
  458. package/icons/socials/instagram.vue +19 -19
  459. package/icons/socials/linkedin-color.vue +14 -14
  460. package/icons/socials/telegram-color.vue +16 -16
  461. package/icons/socials/telegram.vue +15 -15
  462. package/icons/socials/tik-tok.vue +15 -15
  463. package/icons/socials/tiktok-color.vue +14 -14
  464. package/icons/socials/vk-color.vue +16 -16
  465. package/icons/socials/youtube-color.vue +16 -16
  466. package/icons/socials/youtube.vue +16 -16
  467. package/icons/sort/sort-asc.vue +15 -15
  468. package/icons/sort/sort-desc.vue +15 -15
  469. package/icons/sparkles.vue +3 -3
  470. package/icons/splitting-arrows.vue +8 -8
  471. package/icons/star/star-filled.vue +41 -41
  472. package/icons/star/star-half-filled.vue +21 -21
  473. package/icons/star/star.vue +25 -25
  474. package/icons/sun.vue +25 -25
  475. package/icons/sviazi.vue +5 -5
  476. package/icons/tag.vue +30 -30
  477. package/icons/tasks.vue +10 -10
  478. package/icons/tender-search.vue +11 -11
  479. package/icons/terminal.vue +3 -3
  480. package/icons/toasts/check-circle-toast.vue +6 -6
  481. package/icons/toasts/warning-triangle-toast.vue +8 -8
  482. package/icons/trash.vue +13 -13
  483. package/icons/triangle-alert.vue +3 -3
  484. package/icons/triangle.vue +10 -10
  485. package/icons/truck.vue +7 -7
  486. package/icons/user-square.vue +14 -14
  487. package/icons/user.vue +22 -22
  488. package/icons/users-focus.vue +8 -8
  489. package/icons/users-outline.vue +3 -3
  490. package/icons/users-round.vue +3 -3
  491. package/icons/users-three.vue +7 -7
  492. package/icons/users.vue +8 -8
  493. package/icons/view-eye-open.vue +13 -13
  494. package/icons/warning/warning-circle.vue +29 -29
  495. package/icons/warning/warning-triangle-filled.vue +12 -12
  496. package/icons/warning/warning-triangle.vue +28 -28
  497. package/icons/webhook.vue +3 -3
  498. package/icons/whatsapp.vue +8 -8
  499. package/icons/work-bag.vue +11 -11
  500. package/icons/work-case.vue +9 -9
  501. package/icons/work-search.vue +10 -10
  502. package/icons/work.vue +5 -5
  503. package/icons/workflow.vue +3 -3
  504. package/icons/x-mark.vue +15 -15
  505. package/icons/x-outline.vue +3 -3
  506. package/icons/yandex.vue +29 -29
  507. package/icons/zap.vue +3 -3
  508. package/illustrations/address-location.vue +38 -38
  509. package/illustrations/award-badge.vue +105 -105
  510. package/illustrations/ball-with-chain.vue +120 -120
  511. package/illustrations/bill.vue +133 -133
  512. package/illustrations/buildings.vue +82 -82
  513. package/illustrations/calendar.vue +156 -156
  514. package/illustrations/chains.vue +152 -152
  515. package/illustrations/coin-percent.vue +126 -126
  516. package/illustrations/coins-stack.vue +202 -202
  517. package/illustrations/delete-dark.vue +32 -32
  518. package/illustrations/delete.vue +33 -33
  519. package/illustrations/doc-with-stamp.vue +126 -126
  520. package/illustrations/document.vue +64 -64
  521. package/illustrations/door.vue +85 -85
  522. package/illustrations/empty-badge-check.vue +20 -20
  523. package/illustrations/empty-ban.vue +18 -18
  524. package/illustrations/empty-box.vue +77 -77
  525. package/illustrations/empty-filter.vue +20 -20
  526. package/illustrations/empty-inbox.vue +19 -19
  527. package/illustrations/empty-scale.vue +22 -22
  528. package/illustrations/empty-search-x.vue +21 -21
  529. package/illustrations/empty-shopping-cart.vue +21 -21
  530. package/illustrations/empty-users-round.vue +20 -20
  531. package/illustrations/empty-wallet.vue +127 -127
  532. package/illustrations/graph-in-coin.vue +119 -119
  533. package/illustrations/hammer.vue +156 -156
  534. package/illustrations/hand-cash.vue +108 -108
  535. package/illustrations/info.vue +52 -52
  536. package/illustrations/mail-active.vue +86 -86
  537. package/illustrations/mail.vue +68 -68
  538. package/illustrations/no-access.vue +92 -92
  539. package/illustrations/ok.vue +90 -90
  540. package/illustrations/people-group.vue +237 -237
  541. package/illustrations/person-with-phone.vue +187 -187
  542. package/illustrations/person.vue +159 -159
  543. package/illustrations/phone-check.vue +110 -110
  544. package/illustrations/phone-payment-method.vue +223 -223
  545. package/illustrations/search.vue +14 -14
  546. package/illustrations/shield-user.vue +94 -94
  547. package/illustrations/stop-hand.vue +84 -84
  548. package/illustrations/stop-sign.vue +34 -34
  549. package/illustrations/suit.vue +97 -97
  550. package/illustrations/suitcase.vue +105 -105
  551. package/illustrations/terminal.vue +100 -100
  552. package/illustrations/trash-can.vue +66 -66
  553. package/illustrations/turn-on-tariff.vue +38 -38
  554. package/illustrations/two-persons.vue +169 -169
  555. package/lang/en.ts +877 -877
  556. package/lang/kk.ts +879 -879
  557. package/lang/ru.ts +879 -879
  558. package/layouts/default.vue +13 -13
  559. package/nuxt.config.ts +95 -92
  560. package/package.json +64 -64
  561. package/plugins/maska.ts +4 -4
  562. package/plugins/toast.client.ts +41 -41
  563. package/public/kaspi/logo.svg +4 -4
  564. package/shared/constans/pages.ts +96 -96
  565. package/tsconfig.json +6 -6
  566. package/utils/getMaxZindex.ts +25 -25
  567. package/utils/localizedNavigation.ts +36 -36
  568. package/utils/twMerge.ts +34 -34
  569. package/vitest.config.ts +14 -14
@@ -1,182 +1,182 @@
1
- <script setup lang="ts" generic="T">
2
- import { useElementHover } from '@vueuse/core'
3
- import { computed, ref, watch } from 'vue'
4
-
5
- interface Props {
6
- /** Slides. The slider only uses their count and the current one. */
7
- slides: readonly T[]
8
- /** Time each slide stays active, in ms. Also the progress-bar duration. */
9
- interval?: number
10
- /** Advance automatically. */
11
- autoplay?: boolean
12
- /** Freeze autoplay while the cursor is over the slider. */
13
- pauseOnHover?: boolean
14
- /** Render the built-in progress indicators. */
15
- indicators?: boolean
16
- /**
17
- * CSS transition name for the built-in slide swap, e.g. `"fade"`.
18
- * The slider only passes the name through to `<transition>` — the CSS
19
- * itself stays with the slide. Without it slides swap instantly.
20
- * Ignored when the default slot is used: taking over the rendering means
21
- * taking over the transition too.
22
- */
23
- transition?: string
24
- /** Transition mode, as on Vue's `<transition>`. */
25
- transitionMode?: 'out-in' | 'in-out' | 'default'
26
- /** Explicit transition duration in ms, as on Vue's `<transition>`. */
27
- transitionDuration?: number | { enter: number, leave: number }
28
- }
29
-
30
- const props = withDefaults(defineProps<Props>(), {
31
- interval: 5000,
32
- autoplay: true,
33
- pauseOnHover: true,
34
- indicators: true,
35
- transition: undefined,
36
- transitionMode: 'out-in',
37
- transitionDuration: undefined,
38
- })
39
-
40
- /** Active slide index — usable as `v-model:index`. */
41
- const index = defineModel<number>('index', { default: 0 })
42
-
43
- const root = ref<HTMLElement>()
44
- const count = computed(() => props.slides.length)
45
-
46
- /* ---- navigation (always wraps around) ---- */
47
- function goTo(to: number) {
48
- if (count.value === 0)
49
- return
50
- index.value = ((to % count.value) + count.value) % count.value
51
- }
52
- function next() {
53
- goTo(index.value + 1)
54
- }
55
- function prev() {
56
- goTo(index.value - 1)
57
- }
58
-
59
- /* ---- autoplay ----
60
- * Timing is driven by an invisible "clock" element's CSS animation.
61
- * `animation-play-state: paused` freezes both the clock and the visible
62
- * progress bar in one place, so the pause stays perfectly in sync and
63
- * resumes from where it stopped — no JS timers to keep aligned. */
64
-
65
- // Bumping this key remounts the clock/progress element, restarting the timing.
66
- // Watched rather than bumped inside `goTo`, so writing to `v-model:index`
67
- // from the outside restarts the timing too.
68
- const tick = ref(0)
69
- watch(index, () => {
70
- tick.value++
71
- })
72
-
73
- // The slide list may have shrunk under the current index.
74
- watch(count, (n) => {
75
- if (index.value >= n)
76
- goTo(0)
77
- })
78
-
79
- const hovered = useElementHover(root)
80
-
81
- const running = computed(() => props.autoplay && count.value > 1)
82
- const timingStyle = computed(() => ({
83
- animationDuration: `${props.interval}ms`,
84
- animationPlayState: props.pauseOnHover && hovered.value ? 'paused' : 'running',
85
- }))
86
-
87
- defineExpose({ next, prev, goTo })
88
- </script>
89
-
90
- <template>
91
- <div
92
- ref="root"
93
- class="relative overflow-hidden"
94
- role="group"
95
- aria-roledescription="carousel"
96
- >
97
- <!-- Invisible clock: fires `next` when a slide's time elapses. -->
98
- <div
99
- v-if="running"
100
- :key="tick"
101
- class="a-slider-clock"
102
- :style="timingStyle"
103
- @animationend="next"
104
- />
105
-
106
- <!-- Rendered once, for the active slide. Markup and animations are the
107
- consumer's job — the slider only says which slide is active.
108
- Without a slot the slider still works on its own: it renders the
109
- active slide as-is, optionally wrapped in a named transition. -->
110
- <slot
111
- v-if="$slots.default"
112
- :slide="slides[index]"
113
- :index="index"
114
- :count="count"
115
- :go-to="goTo"
116
- />
117
-
118
- <!-- БЕЗ `appear` — это принципиально. Под SSR `<transition appear>`
119
- сериализует содержимое в литеральный `<template>`: браузер такой узел
120
- не рендерит, слайдер стоит пустым до гидратации, а сама гидратация
121
- падает с mismatch (проверено на Nuxt 3.18 / Vue 3.5).
122
- Вход первого слайда всё равно задаётся обычной CSS-анимацией на
123
- монтировании — `appear` при SSR-гидратации Vue и так не проигрывает. -->
124
- <transition
125
- v-else-if="transition && slides[index]"
126
- :name="transition"
127
- :mode="transitionMode"
128
- :duration="transitionDuration"
129
- >
130
- <component :is="slides[index]" :key="index" />
131
- </transition>
132
-
133
- <component
134
- :is="slides[index]"
135
- v-else-if="slides[index]"
136
- :key="index"
137
- />
138
-
139
- <div
140
- v-if="indicators && count > 1"
141
- class="absolute bottom-0 left-1/2 z-10 flex -translate-x-1/2 gap-2"
142
- >
143
- <!-- пастельный бренд-трек: семантического токена нет, dark-компенсация вручную -->
144
- <button
145
- v-for="(_, i) in count"
146
- :key="i"
147
- type="button"
148
- :aria-label="`Слайд ${i + 1}`"
149
- :aria-current="index === i"
150
- class="relative h-[6px] cursor-pointer overflow-hidden rounded-full bg-brand-200 transition-all duration-300 dark:bg-brand-500/30"
151
- :class="index === i ? 'w-[30px]' : 'w-[20px]'"
152
- @click="goTo(i)"
153
- >
154
- <span
155
- v-if="index === i && running"
156
- :key="tick"
157
- class="a-slider-progress absolute inset-0 rounded-full bg-brand"
158
- :style="timingStyle"
159
- />
160
- </button>
161
- </div>
162
- </div>
163
- </template>
164
-
165
- <style scoped>
166
- .a-slider-clock {
167
- position: absolute;
168
- height: 1px;
169
- opacity: 0;
170
- pointer-events: none;
171
- }
172
-
173
- .a-slider-clock,
174
- .a-slider-progress {
175
- animation: a-slider-run linear forwards;
176
- }
177
-
178
- @keyframes a-slider-run {
179
- from { width: 0; }
180
- to { width: 100%; }
181
- }
182
- </style>
1
+ <script setup lang="ts" generic="T">
2
+ import { useElementHover } from '@vueuse/core'
3
+ import { computed, ref, watch } from 'vue'
4
+
5
+ interface Props {
6
+ /** Slides. The slider only uses their count and the current one. */
7
+ slides: readonly T[]
8
+ /** Time each slide stays active, in ms. Also the progress-bar duration. */
9
+ interval?: number
10
+ /** Advance automatically. */
11
+ autoplay?: boolean
12
+ /** Freeze autoplay while the cursor is over the slider. */
13
+ pauseOnHover?: boolean
14
+ /** Render the built-in progress indicators. */
15
+ indicators?: boolean
16
+ /**
17
+ * CSS transition name for the built-in slide swap, e.g. `"fade"`.
18
+ * The slider only passes the name through to `<transition>` — the CSS
19
+ * itself stays with the slide. Without it slides swap instantly.
20
+ * Ignored when the default slot is used: taking over the rendering means
21
+ * taking over the transition too.
22
+ */
23
+ transition?: string
24
+ /** Transition mode, as on Vue's `<transition>`. */
25
+ transitionMode?: 'out-in' | 'in-out' | 'default'
26
+ /** Explicit transition duration in ms, as on Vue's `<transition>`. */
27
+ transitionDuration?: number | { enter: number, leave: number }
28
+ }
29
+
30
+ const props = withDefaults(defineProps<Props>(), {
31
+ interval: 5000,
32
+ autoplay: true,
33
+ pauseOnHover: true,
34
+ indicators: true,
35
+ transition: undefined,
36
+ transitionMode: 'out-in',
37
+ transitionDuration: undefined,
38
+ })
39
+
40
+ /** Active slide index — usable as `v-model:index`. */
41
+ const index = defineModel<number>('index', { default: 0 })
42
+
43
+ const root = ref<HTMLElement>()
44
+ const count = computed(() => props.slides.length)
45
+
46
+ /* ---- navigation (always wraps around) ---- */
47
+ function goTo(to: number) {
48
+ if (count.value === 0)
49
+ return
50
+ index.value = ((to % count.value) + count.value) % count.value
51
+ }
52
+ function next() {
53
+ goTo(index.value + 1)
54
+ }
55
+ function prev() {
56
+ goTo(index.value - 1)
57
+ }
58
+
59
+ /* ---- autoplay ----
60
+ * Timing is driven by an invisible "clock" element's CSS animation.
61
+ * `animation-play-state: paused` freezes both the clock and the visible
62
+ * progress bar in one place, so the pause stays perfectly in sync and
63
+ * resumes from where it stopped — no JS timers to keep aligned. */
64
+
65
+ // Bumping this key remounts the clock/progress element, restarting the timing.
66
+ // Watched rather than bumped inside `goTo`, so writing to `v-model:index`
67
+ // from the outside restarts the timing too.
68
+ const tick = ref(0)
69
+ watch(index, () => {
70
+ tick.value++
71
+ })
72
+
73
+ // The slide list may have shrunk under the current index.
74
+ watch(count, (n) => {
75
+ if (index.value >= n)
76
+ goTo(0)
77
+ })
78
+
79
+ const hovered = useElementHover(root)
80
+
81
+ const running = computed(() => props.autoplay && count.value > 1)
82
+ const timingStyle = computed(() => ({
83
+ animationDuration: `${props.interval}ms`,
84
+ animationPlayState: props.pauseOnHover && hovered.value ? 'paused' : 'running',
85
+ }))
86
+
87
+ defineExpose({ next, prev, goTo })
88
+ </script>
89
+
90
+ <template>
91
+ <div
92
+ ref="root"
93
+ class="relative overflow-hidden"
94
+ role="group"
95
+ aria-roledescription="carousel"
96
+ >
97
+ <!-- Invisible clock: fires `next` when a slide's time elapses. -->
98
+ <div
99
+ v-if="running"
100
+ :key="tick"
101
+ class="a-slider-clock"
102
+ :style="timingStyle"
103
+ @animationend="next"
104
+ />
105
+
106
+ <!-- Rendered once, for the active slide. Markup and animations are the
107
+ consumer's job — the slider only says which slide is active.
108
+ Without a slot the slider still works on its own: it renders the
109
+ active slide as-is, optionally wrapped in a named transition. -->
110
+ <slot
111
+ v-if="$slots.default"
112
+ :slide="slides[index]"
113
+ :index="index"
114
+ :count="count"
115
+ :go-to="goTo"
116
+ />
117
+
118
+ <!-- БЕЗ `appear` — это принципиально. Под SSR `<transition appear>`
119
+ сериализует содержимое в литеральный `<template>`: браузер такой узел
120
+ не рендерит, слайдер стоит пустым до гидратации, а сама гидратация
121
+ падает с mismatch (проверено на Nuxt 3.18 / Vue 3.5).
122
+ Вход первого слайда всё равно задаётся обычной CSS-анимацией на
123
+ монтировании — `appear` при SSR-гидратации Vue и так не проигрывает. -->
124
+ <transition
125
+ v-else-if="transition && slides[index]"
126
+ :name="transition"
127
+ :mode="transitionMode"
128
+ :duration="transitionDuration"
129
+ >
130
+ <component :is="slides[index]" :key="index" />
131
+ </transition>
132
+
133
+ <component
134
+ :is="slides[index]"
135
+ v-else-if="slides[index]"
136
+ :key="index"
137
+ />
138
+
139
+ <div
140
+ v-if="indicators && count > 1"
141
+ class="absolute bottom-0 left-1/2 z-10 flex -translate-x-1/2 gap-2"
142
+ >
143
+ <!-- пастельный бренд-трек: семантического токена нет, dark-компенсация вручную -->
144
+ <button
145
+ v-for="(_, i) in count"
146
+ :key="i"
147
+ type="button"
148
+ :aria-label="`Слайд ${i + 1}`"
149
+ :aria-current="index === i"
150
+ class="relative h-[6px] cursor-pointer overflow-hidden rounded-full bg-brand-200 transition-all duration-300 dark:bg-brand-500/30"
151
+ :class="index === i ? 'w-[30px]' : 'w-[20px]'"
152
+ @click="goTo(i)"
153
+ >
154
+ <span
155
+ v-if="index === i && running"
156
+ :key="tick"
157
+ class="a-slider-progress absolute inset-0 rounded-full bg-brand"
158
+ :style="timingStyle"
159
+ />
160
+ </button>
161
+ </div>
162
+ </div>
163
+ </template>
164
+
165
+ <style scoped>
166
+ .a-slider-clock {
167
+ position: absolute;
168
+ height: 1px;
169
+ opacity: 0;
170
+ pointer-events: none;
171
+ }
172
+
173
+ .a-slider-clock,
174
+ .a-slider-progress {
175
+ animation: a-slider-run linear forwards;
176
+ }
177
+
178
+ @keyframes a-slider-run {
179
+ from { width: 0; }
180
+ to { width: 100%; }
181
+ }
182
+ </style>
@@ -1,21 +1,21 @@
1
- import type { ComputedRef, InjectionKey, Ref } from 'vue'
2
-
3
- /**
4
- * Context provided by <ASlider> and consumed by <ASliderItem>.
5
- * The slider owns the mechanism (active index, count, direction);
6
- * items only read from it and render their own animations.
7
- */
8
- export interface SliderContext {
9
- /** Index of the currently active slide. */
10
- index: Readonly<Ref<number>>
11
- /** Total number of registered slides. */
12
- count: Readonly<Ref<number>>
13
- /** Direction of the last transition: 1 = forward, -1 = backward. */
14
- direction: Readonly<Ref<1 | -1>>
15
- /** Register an item and get back its live index. */
16
- register: (id: symbol) => ComputedRef<number>
17
- /** Unregister an item on unmount. */
18
- unregister: (id: symbol) => void
19
- }
20
-
21
- export const SLIDER_CONTEXT: InjectionKey<SliderContext> = Symbol('a-slider')
1
+ import type { ComputedRef, InjectionKey, Ref } from 'vue'
2
+
3
+ /**
4
+ * Context provided by <ASlider> and consumed by <ASliderItem>.
5
+ * The slider owns the mechanism (active index, count, direction);
6
+ * items only read from it and render their own animations.
7
+ */
8
+ export interface SliderContext {
9
+ /** Index of the currently active slide. */
10
+ index: Readonly<Ref<number>>
11
+ /** Total number of registered slides. */
12
+ count: Readonly<Ref<number>>
13
+ /** Direction of the last transition: 1 = forward, -1 = backward. */
14
+ direction: Readonly<Ref<1 | -1>>
15
+ /** Register an item and get back its live index. */
16
+ register: (id: symbol) => ComputedRef<number>
17
+ /** Unregister an item on unmount. */
18
+ unregister: (id: symbol) => void
19
+ }
20
+
21
+ export const SLIDER_CONTEXT: InjectionKey<SliderContext> = Symbol('a-slider')