adata-ui 2.1.40-beta.9 → 2.1.40

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 (528) hide show
  1. package/-error.vue +170 -170
  2. package/.editorconfig +12 -12
  3. package/.gitlab-ci.yml +16 -16
  4. package/.nuxtrc +1 -1
  5. package/.nvmrc +1 -1
  6. package/.playground/app.config.ts +5 -5
  7. package/.playground/app.vue +102 -102
  8. package/.playground/nuxt.config.ts +3 -3
  9. package/README.md +75 -75
  10. package/app.config.ts +28 -28
  11. package/app.vue +8 -8
  12. package/assets/styles/index.scss +166 -104
  13. package/assets/styles/modules/_base.scss +5 -5
  14. package/assets/styles/modules/_typography.scss +152 -152
  15. package/components/elements/README.md +1 -1
  16. package/components/elements/a-select-row/ASelectRowV2.vue +214 -214
  17. package/components/elements/a-select-row/index.vue +138 -140
  18. package/components/elements/accordion/AAccordion.vue +199 -197
  19. package/components/elements/accordion/AAccordionGroup/AAccordionGroup.vue +145 -145
  20. package/components/elements/accordion/AAccordionGroup/types.ts +20 -20
  21. package/components/elements/accordion/AAccordionGroup/ui.config.ts +22 -22
  22. package/components/elements/accordion/types.ts +14 -14
  23. package/components/elements/accordion/ui.config.ts +22 -22
  24. package/components/elements/alert/AAlert.vue +52 -65
  25. package/components/elements/banner/ABanner.vue +49 -49
  26. package/components/elements/bg-block/ABgBlock.vue +11 -11
  27. package/components/elements/button/AButton.vue +188 -188
  28. package/components/elements/button/AButtonV2.vue +133 -112
  29. package/components/elements/button/types.ts +24 -24
  30. package/components/elements/button-login/index.vue +18 -18
  31. package/components/elements/calendar/ACalendar.vue +83 -83
  32. package/components/elements/carousel/ACarousel.vue +159 -159
  33. package/components/elements/carousel/config.ui.ts +15 -15
  34. package/components/elements/carousel/types.ts +18 -18
  35. package/components/elements/chip-wrapper/AChipWrapper.vue +80 -80
  36. package/components/elements/chip-wrapper/types.ts +12 -12
  37. package/components/elements/chips/AChips.vue +32 -32
  38. package/components/elements/companies/AOurClients.vue +47 -45
  39. package/components/elements/curve-block/ACurveBlock.vue +292 -292
  40. package/components/elements/curve-block-v2/ACurveBlockV2.vue +85 -0
  41. package/components/elements/digit-badge/ADigitBadge.vue +85 -83
  42. package/components/elements/error-template/index.vue +48 -48
  43. package/components/elements/error-template/types.ts +23 -23
  44. package/components/elements/feature-description/AFeatureDescription.vue +112 -112
  45. package/components/elements/illustrations/noAccess.vue +71 -71
  46. package/components/elements/infinite-carousel/AInfiniteCarousel.vue +57 -57
  47. package/components/elements/infinite-scroll/AInfiniteScroll.vue +33 -33
  48. package/components/elements/leave-note/ALeaveNote.vue +102 -99
  49. package/components/elements/pagination/APagination.vue +110 -110
  50. package/components/elements/photos-animation/APhotosAnimation.vue +85 -85
  51. package/components/elements/segmented/ASegmentedV2.vue +151 -58
  52. package/components/elements/select/ASelect.vue +447 -447
  53. package/components/elements/select/ASelectMobile.vue +186 -186
  54. package/components/elements/select/ASelectV2.vue +588 -589
  55. package/components/elements/select/ui/select-button.vue +112 -112
  56. package/components/elements/select/ui/select-list.vue +99 -99
  57. package/components/elements/show-more/AShowMore.vue +35 -35
  58. package/components/elements/show-more/AShowMoreV2.vue +26 -26
  59. package/components/elements/skeleton/ASkeleton.vue +44 -44
  60. package/components/elements/slider/ASlider.vue +174 -0
  61. package/components/elements/slider/ASliderItem.vue +31 -0
  62. package/components/elements/slider/types.ts +21 -0
  63. package/components/elements/star-rating/AStarRating.vue +189 -189
  64. package/components/elements/star-rating/types.ts +7 -7
  65. package/components/elements/star-rating/ui/Star.vue +74 -74
  66. package/components/elements/status-badge/AStatusBadge.vue +121 -74
  67. package/components/elements/step-slider/AStepSliderColCard.vue +232 -0
  68. package/components/elements/step-slider/AStepSliderColNumber.vue +178 -0
  69. package/components/elements/table/ATable.vue +93 -93
  70. package/components/elements/table/table.config.ts +32 -32
  71. package/components/elements/tree-select/ATreeSelect.vue +157 -173
  72. package/components/elements/tree-select/TreeService.ts +184 -249
  73. package/components/elements/tree-select/components/ATreeSelectNode.vue +104 -0
  74. package/components/elements/tree-select/types.ts +63 -34
  75. package/components/elements/tree-select/utils.ts +30 -0
  76. package/components/elements/tree-select-mobile/ATreeSelectMobile.vue +79 -79
  77. package/components/elements/tree-select-mobile/components/ATreeSelectNodesMobile.vue +175 -175
  78. package/components/elements/tree-select-modal/ATreeSelectModal.vue +217 -0
  79. package/components/features/color-mode/AColorMode.client.vue +96 -96
  80. package/components/features/dropdown/ADropdown.vue +127 -127
  81. package/components/features/dropdown/ADropdownV2.vue +140 -141
  82. package/components/features/go-top/GoTop.vue +63 -63
  83. package/components/features/lang-switcher/lang-switcher.vue +158 -153
  84. package/components/features/payment/banner/BasicPlusLimitBanner.vue +104 -104
  85. package/components/features/payment/banner/PaymentBanner.vue +108 -108
  86. package/components/features/payment/banner/UpSellBanner.vue +125 -125
  87. package/components/features/payment/process/PaymentKaspiQrSidePanel.vue +179 -161
  88. package/components/features/payment/process/PaymentKaspiRedirectSidePanel.vue +123 -112
  89. package/components/features/payment/process/PaymentMethodSidePanel.vue +138 -121
  90. package/components/features/payment/process/PaymentProcess.vue +158 -158
  91. package/components/features/payment/process/PaymentTopUpSidePanel.vue +119 -133
  92. package/components/features/pk-mobile-services/APkMobileServices.vue +136 -136
  93. package/components/features//321/201hange-version/AChangeVersion.vue +20 -20
  94. package/components/forms/README.md +1 -1
  95. package/components/forms/checkbox/ACheckbox.vue +149 -149
  96. package/components/forms/checkbox/ACheckboxV2.vue +229 -229
  97. package/components/forms/feedback-form/FeedbackForm.vue +177 -177
  98. package/components/forms/feedback-form/FeedbackFormV2.vue +182 -0
  99. package/components/forms/input/AInputV2.vue +542 -542
  100. package/components/forms/input/button/AInputButton.vue +53 -53
  101. package/components/forms/input/date/AInputDate.vue +213 -213
  102. package/components/forms/input/password/AInputPassword.vue +59 -53
  103. package/components/forms/input/standard/AInputStandard.vue +415 -415
  104. package/components/forms/input/textarea/ATextarea.vue +203 -203
  105. package/components/forms/input/textarea/ATextareaV2.vue +248 -248
  106. package/components/forms/radio-button/ARadioButton.vue +95 -95
  107. package/components/forms/request-demo/ARequestDemo.vue +108 -108
  108. package/components/forms/toggle/AToggle.vue +156 -157
  109. package/components/forms/toggle/AToggleV2.vue +71 -71
  110. package/components/forms/toggle/types.ts +16 -16
  111. package/components/modals/AConfirmationEmail.vue +40 -40
  112. package/components/modals/AboutTariffModal.vue +114 -114
  113. package/components/modals/AnotherDeviceModal.vue +64 -64
  114. package/components/modals/ApplicationAcceptedModal.vue +44 -44
  115. package/components/modals/ConnectingTariffModal.vue +60 -60
  116. package/components/modals/ContactsMobileModel.vue +182 -182
  117. package/components/modals/ContentNavigationModal.vue +99 -355
  118. package/components/modals/Insufficient-funds-modal.vue +62 -62
  119. package/components/modals/LimitReachedModal.vue +33 -31
  120. package/components/modals/NoAccessModal.vue +35 -35
  121. package/components/modals/PaymentMethodModal.vue +101 -101
  122. package/components/modals/RedirectsBanksModal.vue +69 -69
  123. package/components/modals/ReplenishModal.vue +132 -132
  124. package/components/modals/ReportBugConfirmModal.vue +32 -32
  125. package/components/modals/ReportBugModal.vue +172 -170
  126. package/components/modals/Resend.vue +81 -81
  127. package/components/modals/SubmitApplicationModal.vue +130 -126
  128. package/components/modals/id/AuthModal.vue +92 -92
  129. package/components/modals/id/IdAutoLogoutModal.vue +45 -45
  130. package/components/modals/id/IdBanner.vue +61 -61
  131. package/components/modals/id/IdConfirmAccountOtpModal.vue +181 -181
  132. package/components/modals/id/IdConfirmSuccessfulModal.vue +41 -41
  133. package/components/modals/id/IdLoginModal.vue +336 -336
  134. package/components/modals/id/IdModals.vue +127 -127
  135. package/components/modals/id/IdNewPasswordModal.vue +129 -129
  136. package/components/modals/id/IdOtpInput.vue +156 -156
  137. package/components/modals/id/IdPasswordSuccessfulModal.vue +25 -25
  138. package/components/modals/id/IdRecoveryModal.vue +117 -117
  139. package/components/modals/id/IdRegistrationModal.vue +215 -215
  140. package/components/modals/id/IdResetPasswordOtpModal.vue +158 -158
  141. package/components/modals/id/IdTwoFactorModal.vue +125 -125
  142. package/components/navigation/README.md +1 -1
  143. package/components/navigation/bottom-navigation/ABottomNavigation.vue +106 -106
  144. package/components/navigation/breadcrumbs/ABreadcrumbs.vue +128 -67
  145. package/components/navigation/breadcrumbs/types.ts +8 -5
  146. package/components/navigation/footer/AFooter.vue +283 -284
  147. package/components/navigation/footer/ui/a-footer-accordion.vue +118 -118
  148. package/components/navigation/header/AHeader.vue +237 -243
  149. package/components/navigation/header/AlmatyContacts.vue +145 -145
  150. package/components/navigation/header/AstanaContacts.vue +67 -67
  151. package/components/navigation/header/CardGallery.vue +251 -251
  152. package/components/navigation/header/ContactMenu.vue +48 -48
  153. package/components/navigation/header/HeaderLink.vue +250 -254
  154. package/components/navigation/header/HeaderUsage.vue +139 -125
  155. package/components/navigation/header/ListItem.vue +31 -31
  156. package/components/navigation/header/NavCard.vue +41 -41
  157. package/components/navigation/header/NavList.vue +72 -72
  158. package/components/navigation/header/NotificationsMenu.vue +50 -51
  159. package/components/navigation/header/ProductMenu.vue +100 -100
  160. package/components/navigation/header/ProfileMenu.vue +167 -176
  161. package/components/navigation/header/SystemNotification.vue +108 -110
  162. package/components/navigation/header/types.ts +28 -28
  163. package/components/navigation/line-tabs/ALineTabs.vue +111 -111
  164. package/components/navigation/line-tabs/types.ts +21 -21
  165. package/components/navigation/mobile-navigation/AMobileNavigation.vue +112 -112
  166. package/components/navigation/pill-tabs/APillTabs.vue +177 -177
  167. package/components/navigation/pill-tabs/APillTabsV2.vue +226 -118
  168. package/components/navigation/pill-tabs/types.ts +24 -24
  169. package/components/navigation/side-navigation/ASideNavigation.vue +406 -406
  170. package/components/overlays/README.md +1 -1
  171. package/components/overlays/drawer/ADrawerV2.vue +334 -0
  172. package/components/overlays/modal/AModal.vue +335 -335
  173. package/components/overlays/modal/AModalV2.vue +396 -388
  174. package/components/overlays/side-panel/ASidePanel.vue +445 -439
  175. package/components/overlays/sideover/ASlideover.vue +351 -351
  176. package/components/overlays/tooltip/ATooltip.vue +237 -237
  177. package/components/overlays/tooltip/ATooltipV2.vue +226 -233
  178. package/components/overlays/tooltip/types.ts +26 -26
  179. package/components/overlays/tooltip/useTooltipTrigger.ts +101 -101
  180. package/components/transitions/ATransitionHeight.vue +67 -67
  181. package/components/utils/index.ts +19 -19
  182. package/components/utils/removeTrailingSlash.ts +7 -7
  183. package/composables/highlight.ts +18 -18
  184. package/composables/modalsState.ts +8 -8
  185. package/composables/projectState.ts +2 -2
  186. package/composables/useAccessTokenCookie.ts +25 -25
  187. package/composables/useActiveNavigation.ts +84 -84
  188. package/composables/useAdaptive.ts +46 -46
  189. package/composables/useBuyTariffs.ts +91 -91
  190. package/composables/useCarouselScroll.ts +49 -49
  191. package/composables/useChipOverflow.ts +92 -92
  192. package/composables/useHeaderNavigationLinks.ts +519 -507
  193. package/composables/useIdModals.ts +36 -36
  194. package/composables/usePayment.ts +78 -78
  195. package/composables/useUIValidation.ts +16 -16
  196. package/composables/useUrls.ts +23 -23
  197. package/eslint.config.mjs +45 -45
  198. package/i18n/i18n.config.ts +21 -21
  199. package/i18n.config.ts +21 -21
  200. package/icons/adata-logo.vue +17 -17
  201. package/icons/ai-assistant.vue +13 -13
  202. package/icons/akimat.vue +20 -20
  203. package/icons/archive.vue +16 -0
  204. package/icons/arrow/arrow-bottom-left-on-square.vue +5 -5
  205. package/icons/arrow/arrow-circle-down.vue +16 -16
  206. package/icons/arrow/arrow-circle-reset.vue +16 -16
  207. package/icons/arrow/arrow-corner.vue +9 -9
  208. package/icons/arrow/arrow-graph-down.vue +13 -13
  209. package/icons/arrow/arrow-graph-up.vue +14 -14
  210. package/icons/arrow/arrow-left-right.vue +8 -0
  211. package/icons/arrow/arrow-right.vue +14 -14
  212. package/icons/arrow/arrow-square-down.vue +15 -15
  213. package/icons/arrow/arrow-top-right-on-square.vue +6 -6
  214. package/icons/arrow/arrows-in.vue +11 -0
  215. package/icons/arrow/arrows-out.vue +11 -0
  216. package/icons/arrow/arrows-resize-in.vue +38 -0
  217. package/icons/arrow/arrows-resize-out.vue +17 -0
  218. package/icons/arrow-currency-gray.vue +5 -5
  219. package/icons/arrow-currency-green.vue +5 -5
  220. package/icons/arrow-currency-red.vue +5 -5
  221. package/icons/arrow-side-up.vue +6 -6
  222. package/icons/avatar.vue +12 -12
  223. package/icons/bank.vue +5 -5
  224. package/icons/bill.vue +3 -0
  225. package/icons/block.vue +16 -16
  226. package/icons/bookmark/bookmark-filled.vue +18 -18
  227. package/icons/bookmark/bookmark.vue +5 -5
  228. package/icons/bot.vue +52 -0
  229. package/icons/briefcase.vue +14 -14
  230. package/icons/browsers/browser-duck.vue +65 -65
  231. package/icons/browsers/browser-google.vue +30 -30
  232. package/icons/browsers/browser-yandex.vue +13 -13
  233. package/icons/building-vector.vue +7 -7
  234. package/icons/building.vue +9 -0
  235. package/icons/calculator.vue +7 -7
  236. package/icons/calendar.vue +24 -24
  237. package/icons/car-side.vue +16 -16
  238. package/icons/car.vue +7 -7
  239. package/icons/cart.vue +15 -15
  240. package/icons/chart-bar.vue +5 -5
  241. package/icons/chart-no-axes-column.vue +3 -0
  242. package/icons/chart-pie.vue +16 -16
  243. package/icons/check/check-circle.vue +6 -6
  244. package/icons/check/check-shield.vue +14 -14
  245. package/icons/check/check.vue +17 -17
  246. package/icons/check/checkmark-circle.vue +6 -6
  247. package/icons/check-sb.vue +7 -7
  248. package/icons/checkbox/checkbox-active.vue +17 -17
  249. package/icons/checkbox/checkbox-empty.vue +10 -10
  250. package/icons/checkbox/checkbox-intermediate.vue +7 -7
  251. package/icons/chevron/chevron-down.vue +5 -5
  252. package/icons/chevron/chevron-left.vue +5 -5
  253. package/icons/chevron/chevron-right.vue +5 -5
  254. package/icons/chevron/chevron-up.vue +5 -5
  255. package/icons/chevron/double-chevron-right.vue +12 -12
  256. package/icons/clipboard-text.vue +7 -7
  257. package/icons/clock-time.vue +24 -0
  258. package/icons/clock.vue +25 -25
  259. package/icons/close.vue +16 -16
  260. package/icons/cloud/cloud-upload.vue +3 -0
  261. package/icons/code.vue +9 -0
  262. package/icons/company/company-bazis.vue +21 -21
  263. package/icons/company/company-bereke.vue +25 -25
  264. package/icons/company/company-bigroup.vue +16 -16
  265. package/icons/company/company-erg.vue +17 -17
  266. package/icons/company/company-forte.vue +21 -21
  267. package/icons/company/company-halyk.vue +15 -15
  268. package/icons/company/company-jusan.vue +31 -31
  269. package/icons/company/company-kaspi.vue +14 -14
  270. package/icons/company/company-kazzinc.vue +22 -22
  271. package/icons/company/company-mycar.vue +13 -13
  272. package/icons/company/company-samruk.vue +21 -21
  273. package/icons/company-egov-small.vue +15 -15
  274. package/icons/company.vue +8 -8
  275. package/icons/compare-outlined.vue +8 -0
  276. package/icons/copy.vue +7 -7
  277. package/icons/currency/currency-dollar.vue +16 -16
  278. package/icons/currency/currency-down.vue +22 -22
  279. package/icons/currency/currency-eur.vue +57 -57
  280. package/icons/currency/currency-rub.vue +7 -7
  281. package/icons/currency/currency-tenge.vue +9 -9
  282. package/icons/currency/currency-usd.vue +221 -221
  283. package/icons/currency/currency-yuan.vue +25 -25
  284. package/icons/default-avatar.vue +20 -20
  285. package/icons/delete.vue +7 -7
  286. package/icons/document.vue +5 -5
  287. package/icons/dots-horizontal.vue +31 -0
  288. package/icons/download-line.vue +13 -0
  289. package/icons/download-rounded.vue +15 -15
  290. package/icons/download.vue +11 -11
  291. package/icons/edit.vue +7 -7
  292. package/icons/education.vue +16 -16
  293. package/icons/egov-small.vue +7 -7
  294. package/icons/egov.vue +41 -0
  295. package/icons/elicense.vue +38 -0
  296. package/icons/excel-icon.vue +14 -14
  297. package/icons/expand-window.vue +7 -7
  298. package/icons/eye-closed.vue +26 -26
  299. package/icons/eye-open.vue +7 -7
  300. package/icons/eye-opened.vue +23 -23
  301. package/icons/favourite-bookmark-outline.vue +17 -0
  302. package/icons/file/file-check-corner.vue +3 -0
  303. package/icons/file/file-spreadsheet.vue +3 -0
  304. package/icons/file/file.vue +16 -16
  305. package/icons/file/files.vue +16 -16
  306. package/icons/file-pen.vue +31 -0
  307. package/icons/file-stack.vue +31 -0
  308. package/icons/file-types/excel.vue +131 -0
  309. package/icons/file-types/html.vue +13 -0
  310. package/icons/file-types/jpeg.vue +16 -0
  311. package/icons/file-types/pdf.vue +11 -0
  312. package/icons/file-types/png.vue +11 -0
  313. package/icons/file-types/rar.vue +11 -0
  314. package/icons/file-types/word.vue +50 -0
  315. package/icons/file-types/zip.vue +11 -0
  316. package/icons/filter.vue +5 -5
  317. package/icons/flag.vue +7 -7
  318. package/icons/gauge.vue +17 -17
  319. package/icons/gift.vue +8 -8
  320. package/icons/git-compare.vue +38 -0
  321. package/icons/git-fork.vue +3 -0
  322. package/icons/globe.vue +16 -16
  323. package/icons/google.vue +41 -41
  324. package/icons/gradiend-icons/files-gradient.vue +22 -22
  325. package/icons/gradiend-icons/hammer-gradient.vue +62 -62
  326. package/icons/graduation-cap.vue +31 -0
  327. package/icons/graph-loading.vue +34 -0
  328. package/icons/graph-pie.vue +14 -14
  329. package/icons/hand/hand-thumb-up-filled.vue +5 -5
  330. package/icons/hand/hand-thumb-up.vue +5 -5
  331. package/icons/hand-with-phone/hand-with-phone-dark.vue +52 -52
  332. package/icons/hand-with-phone/hand-with-phone-light.vue +52 -52
  333. package/icons/handshake.vue +5 -5
  334. package/icons/hcheck.vue +14 -14
  335. package/icons/hdocument.vue +7 -7
  336. package/icons/headset.vue +6 -0
  337. package/icons/help-question-circle.vue +26 -0
  338. package/icons/history.vue +5 -5
  339. package/icons/horizontal-more.vue +13 -13
  340. package/icons/hot-line.vue +6 -6
  341. package/icons/hummer.vue +16 -16
  342. package/icons/id.vue +7 -7
  343. package/icons/in-row-type.vue +46 -0
  344. package/icons/in-table-type.vue +29 -0
  345. package/icons/info/info-circle.vue +29 -29
  346. package/icons/invoice.vue +7 -7
  347. package/icons/judge.vue +14 -14
  348. package/icons/kaspi-qr.vue +13 -13
  349. package/icons/landmark.vue +3 -0
  350. package/icons/layers.vue +3 -0
  351. package/icons/letter/letter-a.vue +6 -0
  352. package/icons/letter/letter-b.vue +6 -0
  353. package/icons/letter/letter-c.vue +6 -0
  354. package/icons/letter/letter-d.vue +6 -0
  355. package/icons/letter/letter-e.vue +6 -0
  356. package/icons/link-chain.vue +28 -28
  357. package/icons/link-url.vue +3 -0
  358. package/icons/link.vue +7 -7
  359. package/icons/linkedin.vue +24 -24
  360. package/icons/list-tree.vue +3 -0
  361. package/icons/loader-circle.vue +27 -27
  362. package/icons/location.vue +8 -8
  363. package/icons/lock.vue +5 -5
  364. package/icons/logo.vue +15 -15
  365. package/icons/logout.vue +16 -16
  366. package/icons/magnify/magnifying-glass-minus.vue +8 -8
  367. package/icons/magnify/magnifying-glass-plus.vue +9 -9
  368. package/icons/magnify/magnifying-glass.vue +9 -9
  369. package/icons/mail-question-mark.vue +8 -0
  370. package/icons/mail.vue +7 -7
  371. package/icons/mailru.vue +34 -34
  372. package/icons/main-filter.vue +5 -5
  373. package/icons/map/map-pin-filled.vue +7 -7
  374. package/icons/map/map-pin-rect.vue +15 -15
  375. package/icons/map/map-pin.vue +7 -7
  376. package/icons/map-marker-start.vue +7 -7
  377. package/icons/map-paper.vue +5 -5
  378. package/icons/medal.vue +7 -7
  379. package/icons/menu-filled.vue +20 -20
  380. package/icons/menu.vue +8 -8
  381. package/icons/message/message-square.vue +3 -0
  382. package/icons/message/message.vue +12 -12
  383. package/icons/message-dotted.vue +30 -0
  384. package/icons/minus/minus-circle.vue +10 -10
  385. package/icons/money.vue +5 -5
  386. package/icons/monitoring.vue +10 -10
  387. package/icons/moon.vue +8 -8
  388. package/icons/more.vue +29 -29
  389. package/icons/network.vue +3 -0
  390. package/icons/newspaper.vue +3 -0
  391. package/icons/note-pencil.vue +14 -14
  392. package/icons/note.vue +14 -14
  393. package/icons/notification-error.vue +17 -0
  394. package/icons/notification.vue +16 -16
  395. package/icons/paperclip.vue +7 -7
  396. package/icons/payment/payment-card.vue +6 -6
  397. package/icons/payment/payment-kaspi.vue +11 -11
  398. package/icons/person-vector.vue +7 -7
  399. package/icons/person-with-briefcase.vue +10 -10
  400. package/icons/person.vue +22 -0
  401. package/icons/phone-call.vue +6 -0
  402. package/icons/phone-filled.vue +5 -5
  403. package/icons/phone-reversed.vue +3 -0
  404. package/icons/phone.vue +7 -7
  405. package/icons/plus/plus-circle.vue +8 -8
  406. package/icons/plus/plus.vue +13 -13
  407. package/icons/profile.vue +5 -5
  408. package/icons/radio/radio-check.vue +8 -8
  409. package/icons/radio/radio-empty.vue +10 -10
  410. package/icons/receipt.vue +8 -8
  411. package/icons/robot.vue +14 -14
  412. package/icons/route.vue +7 -0
  413. package/icons/sanctions.vue +8 -8
  414. package/icons/scales/scale.vue +16 -16
  415. package/icons/scales/scales.vue +5 -5
  416. package/icons/scales/standing-scales.vue +15 -15
  417. package/icons/scan-search.vue +3 -0
  418. package/icons/search.vue +27 -27
  419. package/icons/settings.vue +26 -0
  420. package/icons/share/share-alt.vue +5 -5
  421. package/icons/share/share.vue +14 -14
  422. package/icons/shield-alert.vue +31 -0
  423. package/icons/shield-verified.vue +14 -14
  424. package/icons/ship.vue +8 -8
  425. package/icons/socials/face-book.vue +15 -15
  426. package/icons/socials/facebook-color.vue +16 -0
  427. package/icons/socials/globe-color.vue +16 -0
  428. package/icons/socials/instagram-color.vue +46 -0
  429. package/icons/socials/instagram.vue +19 -19
  430. package/icons/socials/linkedin-color.vue +14 -0
  431. package/icons/socials/telegram-color.vue +16 -0
  432. package/icons/socials/telegram.vue +15 -15
  433. package/icons/socials/tik-tok.vue +15 -15
  434. package/icons/socials/tiktok-color.vue +14 -0
  435. package/icons/socials/vk-color.vue +16 -0
  436. package/icons/socials/youtube-color.vue +16 -0
  437. package/icons/socials/youtube.vue +16 -16
  438. package/icons/sort/sort-asc.vue +15 -15
  439. package/icons/sort/sort-desc.vue +15 -15
  440. package/icons/sparkles.vue +3 -0
  441. package/icons/splitting-arrows.vue +8 -8
  442. package/icons/star/star-filled.vue +40 -40
  443. package/icons/star/star-half-filled.vue +20 -20
  444. package/icons/star/star.vue +25 -25
  445. package/icons/sun.vue +24 -24
  446. package/icons/sviazi.vue +5 -5
  447. package/icons/tag.vue +30 -30
  448. package/icons/tasks.vue +10 -10
  449. package/icons/tender-search.vue +11 -11
  450. package/icons/toasts/check-circle-toast.vue +6 -6
  451. package/icons/toasts/warning-triangle-toast.vue +7 -7
  452. package/icons/trash.vue +13 -13
  453. package/icons/triangle.vue +10 -10
  454. package/icons/truck.vue +7 -7
  455. package/icons/user-square.vue +14 -14
  456. package/icons/user.vue +22 -22
  457. package/icons/users-focus.vue +8 -8
  458. package/icons/users-round.vue +3 -0
  459. package/icons/users-three.vue +7 -7
  460. package/icons/users.vue +8 -8
  461. package/icons/view-eye-open.vue +13 -0
  462. package/icons/warning/warning-circle.vue +29 -29
  463. package/icons/warning/warning-triangle-filled.vue +12 -12
  464. package/icons/warning/warning-triangle.vue +28 -28
  465. package/icons/whatsapp.vue +8 -8
  466. package/icons/work-bag.vue +11 -11
  467. package/icons/work-case.vue +9 -9
  468. package/icons/work-search.vue +10 -10
  469. package/icons/work.vue +5 -5
  470. package/icons/workflow.vue +3 -0
  471. package/icons/x-mark.vue +15 -15
  472. package/icons/yandex.vue +28 -28
  473. package/icons/zap.vue +3 -0
  474. package/illustrations/address-location.vue +38 -38
  475. package/illustrations/ball-with-chain.vue +120 -120
  476. package/illustrations/bill.vue +133 -133
  477. package/illustrations/buildings.vue +82 -82
  478. package/illustrations/calendar.vue +156 -156
  479. package/illustrations/chains.vue +152 -152
  480. package/illustrations/coin-percent.vue +126 -126
  481. package/illustrations/coins-stack.vue +202 -202
  482. package/illustrations/delete-dark.vue +31 -31
  483. package/illustrations/delete.vue +32 -32
  484. package/illustrations/doc-with-stamp.vue +126 -126
  485. package/illustrations/document.vue +64 -64
  486. package/illustrations/door.vue +74 -74
  487. package/illustrations/empty-box.vue +77 -77
  488. package/illustrations/empty-wallet.vue +161 -161
  489. package/illustrations/graph-in-coin.vue +119 -119
  490. package/illustrations/hammer.vue +156 -156
  491. package/illustrations/hand-cash.vue +108 -108
  492. package/illustrations/info.vue +39 -39
  493. package/illustrations/mail.vue +68 -68
  494. package/illustrations/ok.vue +62 -62
  495. package/illustrations/people-group.vue +237 -237
  496. package/illustrations/person-with-phone.vue +187 -187
  497. package/illustrations/person.vue +159 -159
  498. package/illustrations/phone-check.vue +90 -90
  499. package/illustrations/phone-payment-method.vue +223 -223
  500. package/illustrations/search.vue +14 -14
  501. package/illustrations/stop-hand.vue +77 -77
  502. package/illustrations/stop-sign.vue +34 -34
  503. package/illustrations/suit.vue +111 -111
  504. package/illustrations/suitcase.vue +105 -105
  505. package/illustrations/terminal-dark.vue +48 -48
  506. package/illustrations/terminal.vue +234 -234
  507. package/illustrations/trash-can.vue +108 -108
  508. package/illustrations/turn-on-tariff.vue +38 -38
  509. package/illustrations/two-persons.vue +169 -169
  510. package/lang/en.ts +881 -873
  511. package/lang/kk.ts +883 -875
  512. package/lang/ru.ts +884 -876
  513. package/layouts/default.vue +13 -13
  514. package/nuxt.config.ts +88 -88
  515. package/package.json +69 -69
  516. package/plugins/maska.ts +4 -4
  517. package/plugins/toast.client.ts +41 -58
  518. package/public/kaspi/logo.svg +4 -4
  519. package/shared/constans/pages.ts +96 -96
  520. package/tailwind.config.ts +194 -163
  521. package/tests/AButton.test.ts +81 -81
  522. package/tsconfig.json +6 -6
  523. package/utils/getMaxZindex.ts +25 -25
  524. package/utils/localizedNavigation.ts +36 -36
  525. package/utils/twMerge.ts +34 -0
  526. package/vitest.config.ts +14 -14
  527. package/components/elements/status-badge-v2/StatusBadgeV2.vue +0 -78
  528. package/components/elements/tree-select/components/tree-select-nodes.vue +0 -91
@@ -1,292 +1,292 @@
1
- <script setup lang="ts">
2
- import { NuxtLinkLocale } from '#components'
3
-
4
- const props = defineProps<{
5
- icon: Component
6
- title: string
7
- description: string
8
- to?: string
9
- wide?: boolean
10
- }>()
11
- </script>
12
-
13
- <template>
14
- <component
15
- :is="to ? NuxtLinkLocale : 'button'"
16
- :to="to"
17
- class="curve-block relative w-full cursor-pointer"
18
- :class="{ 'active-item': !to }"
19
- active-class="active-item"
20
- >
21
- <svg
22
- v-if="wide"
23
- class="w-full"
24
- viewBox="-2 -4 416 188"
25
- fill="none"
26
- preserveAspectRatio="none"
27
- xmlns="http://www.w3.org/2000/svg"
28
- >
29
- <path
30
- class="border-path border-path--large"
31
- d="M413.333 105.936C413.333 116.008 399.074 123 389.001 123C369.671 123 354.001 138.67 354.001 158C354.001 168.009 347.088 182 337.079 182H16.3334C7.49682 182 0.333374 174.837 0.333374 166V16C0.333374 7.16344 7.49682 0 16.3334 0H397.333C406.17 0 413.333 7.16344 413.333 16V105.936Z"
32
- stroke-width="2"
33
- fill="transparent"
34
- />
35
- <defs>
36
- <linearGradient
37
- id="gradient-light"
38
- x1="164.372"
39
- y1="-137.957"
40
- x2="-20.5433"
41
- y2="68.1723"
42
- gradientUnits="userSpaceOnUse"
43
- >
44
- <stop stop-color="#479FFF" />
45
- <stop
46
- offset="1"
47
- stop-color="#0070EB"
48
- />
49
- </linearGradient>
50
-
51
- <linearGradient
52
- id="gradient-dark"
53
- x1="164.372"
54
- y1="-137.957"
55
- x2="-20.5433"
56
- y2="68.1723"
57
- gradientUnits="userSpaceOnUse"
58
- >
59
- <stop stop-color="#4FBDFF" />
60
- <stop
61
- offset="1"
62
- stop-color="#1B98E2"
63
- />
64
- </linearGradient>
65
- </defs>
66
- </svg>
67
-
68
- <svg
69
- v-else
70
- class="w-full"
71
- viewBox="-1 -1 308 184"
72
- xmlns="http://www.w3.org/2000/svg"
73
- >
74
- <path
75
- class="border-path"
76
- d="M306 106.077C306 116.087 292.009 123 282 123C262.67 123 247 138.67 247 158C247 168.009 240.087 182 230.077 182H16C7.16344 182 0 174.837 0 166V16C0 7.16344 7.16344 0 16 0H290C298.837 0 306 7.16344 306 16V106.077Z"
77
- stroke-width="2"
78
- fill="transparent"
79
- />
80
- <defs>
81
- <linearGradient
82
- id="gradient-light"
83
- x1="164.372"
84
- y1="-137.957"
85
- x2="-20.5433"
86
- y2="68.1723"
87
- gradientUnits="userSpaceOnUse"
88
- >
89
- <stop stop-color="#479FFF" />
90
- <stop
91
- offset="1"
92
- stop-color="#0070EB"
93
- />
94
- </linearGradient>
95
-
96
- <linearGradient
97
- id="gradient-dark"
98
- x1="164.372"
99
- y1="-137.957"
100
- x2="-20.5433"
101
- y2="68.1723"
102
- gradientUnits="userSpaceOnUse"
103
- >
104
- <stop stop-color="#4FBDFF" />
105
- <stop
106
- offset="1"
107
- stop-color="#1B98E2"
108
- />
109
- </linearGradient>
110
- </defs>
111
- </svg>
112
-
113
- <div class="absolute left-6 top-6 flex flex-col gap-4 pr-6">
114
- <div class="flex items-center gap-2 title">
115
- <div class="rounded-[4px] icon-item bg-deepblue-900/5 dark:bg-gray-200/5 p-1">
116
- <component
117
- :is="icon"
118
- class="size-6 shrink-0"
119
- />
120
- </div>
121
- <p class="text-base font-semibold">
122
- {{ title }}
123
- </p>
124
- </div>
125
- <p class="text-left text-sm text-gray-600 dark:text-gray-200">
126
- {{ description }}
127
- </p>
128
- </div>
129
-
130
- <svg
131
- class="absolute bottom-0 right-0 size-12 2xl:size-14"
132
- viewBox="0 0 48 48"
133
- xmlns="http://www.w3.org/2000/svg"
134
- >
135
- <rect
136
- x="1"
137
- y="1"
138
- width="46"
139
- height="46"
140
- rx="23"
141
- fill="transparent"
142
- />
143
- <rect
144
- class="animated-border"
145
- x="1"
146
- y="1"
147
- width="46"
148
- height="46"
149
- rx="23"
150
- stroke-width="2"
151
- fill="transparent"
152
- />
153
- <path
154
- class="arrow"
155
- fill-rule="evenodd"
156
- clip-rule="evenodd"
157
- d="M17.1155 16C16.4994 16 16 16.4994 16 17.1155C16 17.7315 16.4994 18.231 17.1155 18.231L28.1915 18.231L16.3267 30.0958C15.8911 30.5314 15.8911 31.2377 16.3267 31.6733C16.7623 32.1089 17.4686 32.1089 17.9042 31.6733L29.769 19.8085L29.769 30.8845C29.769 31.5006 30.2685 32 30.8845 32C31.5006 32 32 31.5006 32 30.8845L32 17.1155C32 16.9642 31.9699 16.82 31.9154 16.6885C31.8617 16.5589 31.7826 16.4373 31.678 16.3315C31.6749 16.3283 31.6717 16.3251 31.6685 16.322C31.5627 16.2174 31.4411 16.1383 31.3115 16.0846C31.18 16.0301 31.0358 16 30.8845 16L17.1155 16Z"
158
- />
159
- <defs>
160
- <linearGradient
161
- id="gradient-circle-light"
162
- x1="25.7838"
163
- y1="-36.3843"
164
- x2="-19.403"
165
- y2="-6.42519"
166
- gradientUnits="userSpaceOnUse"
167
- >
168
- <stop stop-color="#479FFF" />
169
- <stop
170
- offset="1"
171
- stop-color="#0070EB"
172
- />
173
- </linearGradient>
174
-
175
- <linearGradient
176
- id="gradient-circle-dark"
177
- x1="25.7838"
178
- y1="-36.3843"
179
- x2="-19.403"
180
- y2="-6.42519"
181
- gradientUnits="userSpaceOnUse"
182
- >
183
- <stop stop-color="#4FBDFF" />
184
- <stop
185
- offset="1"
186
- stop-color="#1B98E2"
187
- />
188
- </linearGradient>
189
- </defs>
190
- </svg>
191
- </component>
192
- </template>
193
-
194
- <style lang="scss" scoped>
195
- .border-path {
196
- stroke-dasharray: 1200;
197
- stroke-dashoffset: 1200;
198
- fill: #F4F5F6;
199
- }
200
-
201
- .border-path--large {
202
- stroke-dasharray: 1400;
203
- stroke-dashoffset: 1400;
204
- }
205
-
206
- .animated-border {
207
- stroke-dasharray: 180;
208
- stroke-dashoffset: 180;
209
- fill: #F4F5F6;
210
- }
211
-
212
- .active-item .title {
213
- color: #0070EB;
214
- }
215
- .active-item .border-path {
216
- fill: #0070EB1A;
217
- }
218
- .active-item .icon-item {
219
- background: #2C3E500D;
220
- }
221
-
222
- .curve-block:hover .border-path,
223
- .curve-block:hover .animated-border {
224
- transition: stroke-dashoffset 2s ease, fill 2s ease;
225
- stroke-dashoffset: 0;
226
- fill: white;
227
- }
228
-
229
- .curve-block:hover .icon-item {
230
- background-color: #E0EFFF;
231
- color: #0070EB;
232
- transition: all 2s ease, fill 2s ease;
233
- }
234
-
235
- .border-path {
236
- stroke: url(#gradient-light);
237
- }
238
-
239
- .dark .border-path {
240
- stroke: url(#gradient-dark);
241
- }
242
-
243
- .animated-border {
244
- stroke: url(#gradient-circle-light);
245
- }
246
-
247
- .dark .animated-border {
248
- stroke: url(#gradient-circle-dark);
249
- }
250
-
251
- .arrow {
252
- fill: #0070EB;
253
- }
254
-
255
- .dark {
256
- .border-path,
257
- .animated-border {
258
- fill: #26282b;
259
- }
260
-
261
- .active-item .title {
262
- color: #1b98e2;
263
- }
264
-
265
- .active-item .border-path {
266
- fill: #1B98E21A;
267
- }
268
-
269
- .active-item .icon-item {
270
- background: #E3E5E80D;
271
- }
272
-
273
-
274
- .curve-block:hover .icon-item {
275
- background-color: rgba(30, 88, 156, 0.6);
276
- color: #1b98e2;
277
- transition: all 2s ease, fill 2s ease;
278
- }
279
-
280
-
281
- .curve-block:hover .border-path,
282
- .curve-block:hover .animated-border {
283
- fill: #131415;
284
-
285
- }
286
- .arrow {
287
- fill: #1b98e2;
288
- }
289
- }
290
- </style>
291
-
292
-
1
+ <script setup lang="ts">
2
+ import { NuxtLinkLocale } from '#components'
3
+
4
+ const props = defineProps<{
5
+ icon: Component
6
+ title: string
7
+ description: string
8
+ to?: string
9
+ wide?: boolean
10
+ }>()
11
+ </script>
12
+
13
+ <template>
14
+ <component
15
+ :is="to ? NuxtLinkLocale : 'button'"
16
+ :to="to"
17
+ class="curve-block relative w-full cursor-pointer"
18
+ :class="{ 'active-item': !to }"
19
+ active-class="active-item"
20
+ >
21
+ <svg
22
+ v-if="wide"
23
+ class="w-full"
24
+ viewBox="-2 -4 416 188"
25
+ fill="none"
26
+ preserveAspectRatio="none"
27
+ xmlns="http://www.w3.org/2000/svg"
28
+ >
29
+ <path
30
+ class="border-path border-path--large"
31
+ d="M413.333 105.936C413.333 116.008 399.074 123 389.001 123C369.671 123 354.001 138.67 354.001 158C354.001 168.009 347.088 182 337.079 182H16.3334C7.49682 182 0.333374 174.837 0.333374 166V16C0.333374 7.16344 7.49682 0 16.3334 0H397.333C406.17 0 413.333 7.16344 413.333 16V105.936Z"
32
+ stroke-width="2"
33
+ fill="transparent"
34
+ />
35
+ <defs>
36
+ <linearGradient
37
+ id="gradient-light"
38
+ x1="164.372"
39
+ y1="-137.957"
40
+ x2="-20.5433"
41
+ y2="68.1723"
42
+ gradientUnits="userSpaceOnUse"
43
+ >
44
+ <stop stop-color="#479FFF" />
45
+ <stop
46
+ offset="1"
47
+ stop-color="#0070EB"
48
+ />
49
+ </linearGradient>
50
+
51
+ <linearGradient
52
+ id="gradient-dark"
53
+ x1="164.372"
54
+ y1="-137.957"
55
+ x2="-20.5433"
56
+ y2="68.1723"
57
+ gradientUnits="userSpaceOnUse"
58
+ >
59
+ <stop stop-color="#4FBDFF" />
60
+ <stop
61
+ offset="1"
62
+ stop-color="#1B98E2"
63
+ />
64
+ </linearGradient>
65
+ </defs>
66
+ </svg>
67
+
68
+ <svg
69
+ v-else
70
+ class="w-full"
71
+ viewBox="-1 -1 308 184"
72
+ xmlns="http://www.w3.org/2000/svg"
73
+ >
74
+ <path
75
+ class="border-path"
76
+ d="M306 106.077C306 116.087 292.009 123 282 123C262.67 123 247 138.67 247 158C247 168.009 240.087 182 230.077 182H16C7.16344 182 0 174.837 0 166V16C0 7.16344 7.16344 0 16 0H290C298.837 0 306 7.16344 306 16V106.077Z"
77
+ stroke-width="2"
78
+ fill="transparent"
79
+ />
80
+ <defs>
81
+ <linearGradient
82
+ id="gradient-light"
83
+ x1="164.372"
84
+ y1="-137.957"
85
+ x2="-20.5433"
86
+ y2="68.1723"
87
+ gradientUnits="userSpaceOnUse"
88
+ >
89
+ <stop stop-color="#479FFF" />
90
+ <stop
91
+ offset="1"
92
+ stop-color="#0070EB"
93
+ />
94
+ </linearGradient>
95
+
96
+ <linearGradient
97
+ id="gradient-dark"
98
+ x1="164.372"
99
+ y1="-137.957"
100
+ x2="-20.5433"
101
+ y2="68.1723"
102
+ gradientUnits="userSpaceOnUse"
103
+ >
104
+ <stop stop-color="#4FBDFF" />
105
+ <stop
106
+ offset="1"
107
+ stop-color="#1B98E2"
108
+ />
109
+ </linearGradient>
110
+ </defs>
111
+ </svg>
112
+
113
+ <div class="absolute left-6 top-6 flex flex-col gap-4 pr-6">
114
+ <div class="flex items-center gap-2 title">
115
+ <div class="rounded-[4px] icon-item bg-deepblue-900/5 dark:bg-gray-200/5 p-1">
116
+ <component
117
+ :is="icon"
118
+ class="size-6 shrink-0"
119
+ />
120
+ </div>
121
+ <p class="text-base font-semibold">
122
+ {{ title }}
123
+ </p>
124
+ </div>
125
+ <p class="text-left text-sm text-gray-600 dark:text-gray-200">
126
+ {{ description }}
127
+ </p>
128
+ </div>
129
+
130
+ <svg
131
+ class="absolute bottom-0 right-0 size-12 2xl:size-14"
132
+ viewBox="0 0 48 48"
133
+ xmlns="http://www.w3.org/2000/svg"
134
+ >
135
+ <rect
136
+ x="1"
137
+ y="1"
138
+ width="46"
139
+ height="46"
140
+ rx="23"
141
+ fill="transparent"
142
+ />
143
+ <rect
144
+ class="animated-border"
145
+ x="1"
146
+ y="1"
147
+ width="46"
148
+ height="46"
149
+ rx="23"
150
+ stroke-width="2"
151
+ fill="transparent"
152
+ />
153
+ <path
154
+ class="arrow"
155
+ fill-rule="evenodd"
156
+ clip-rule="evenodd"
157
+ d="M17.1155 16C16.4994 16 16 16.4994 16 17.1155C16 17.7315 16.4994 18.231 17.1155 18.231L28.1915 18.231L16.3267 30.0958C15.8911 30.5314 15.8911 31.2377 16.3267 31.6733C16.7623 32.1089 17.4686 32.1089 17.9042 31.6733L29.769 19.8085L29.769 30.8845C29.769 31.5006 30.2685 32 30.8845 32C31.5006 32 32 31.5006 32 30.8845L32 17.1155C32 16.9642 31.9699 16.82 31.9154 16.6885C31.8617 16.5589 31.7826 16.4373 31.678 16.3315C31.6749 16.3283 31.6717 16.3251 31.6685 16.322C31.5627 16.2174 31.4411 16.1383 31.3115 16.0846C31.18 16.0301 31.0358 16 30.8845 16L17.1155 16Z"
158
+ />
159
+ <defs>
160
+ <linearGradient
161
+ id="gradient-circle-light"
162
+ x1="25.7838"
163
+ y1="-36.3843"
164
+ x2="-19.403"
165
+ y2="-6.42519"
166
+ gradientUnits="userSpaceOnUse"
167
+ >
168
+ <stop stop-color="#479FFF" />
169
+ <stop
170
+ offset="1"
171
+ stop-color="#0070EB"
172
+ />
173
+ </linearGradient>
174
+
175
+ <linearGradient
176
+ id="gradient-circle-dark"
177
+ x1="25.7838"
178
+ y1="-36.3843"
179
+ x2="-19.403"
180
+ y2="-6.42519"
181
+ gradientUnits="userSpaceOnUse"
182
+ >
183
+ <stop stop-color="#4FBDFF" />
184
+ <stop
185
+ offset="1"
186
+ stop-color="#1B98E2"
187
+ />
188
+ </linearGradient>
189
+ </defs>
190
+ </svg>
191
+ </component>
192
+ </template>
193
+
194
+ <style lang="scss" scoped>
195
+ .border-path {
196
+ stroke-dasharray: 1200;
197
+ stroke-dashoffset: 1200;
198
+ fill: #F4F5F6;
199
+ }
200
+
201
+ .border-path--large {
202
+ stroke-dasharray: 1400;
203
+ stroke-dashoffset: 1400;
204
+ }
205
+
206
+ .animated-border {
207
+ stroke-dasharray: 180;
208
+ stroke-dashoffset: 180;
209
+ fill: #F4F5F6;
210
+ }
211
+
212
+ .active-item .title {
213
+ color: #0070EB;
214
+ }
215
+ .active-item .border-path {
216
+ fill: #0070EB1A;
217
+ }
218
+ .active-item .icon-item {
219
+ background: #2C3E500D;
220
+ }
221
+
222
+ .curve-block:hover .border-path,
223
+ .curve-block:hover .animated-border {
224
+ transition: stroke-dashoffset 2s ease, fill 2s ease;
225
+ stroke-dashoffset: 0;
226
+ fill: white;
227
+ }
228
+
229
+ .curve-block:hover .icon-item {
230
+ background-color: #E0EFFF;
231
+ color: #0070EB;
232
+ transition: all 2s ease, fill 2s ease;
233
+ }
234
+
235
+ .border-path {
236
+ stroke: url(#gradient-light);
237
+ }
238
+
239
+ .dark .border-path {
240
+ stroke: url(#gradient-dark);
241
+ }
242
+
243
+ .animated-border {
244
+ stroke: url(#gradient-circle-light);
245
+ }
246
+
247
+ .dark .animated-border {
248
+ stroke: url(#gradient-circle-dark);
249
+ }
250
+
251
+ .arrow {
252
+ fill: #0070EB;
253
+ }
254
+
255
+ .dark {
256
+ .border-path,
257
+ .animated-border {
258
+ fill: #26282b;
259
+ }
260
+
261
+ .active-item .title {
262
+ color: #1b98e2;
263
+ }
264
+
265
+ .active-item .border-path {
266
+ fill: #1B98E21A;
267
+ }
268
+
269
+ .active-item .icon-item {
270
+ background: #E3E5E80D;
271
+ }
272
+
273
+
274
+ .curve-block:hover .icon-item {
275
+ background-color: rgba(30, 88, 156, 0.6);
276
+ color: #1b98e2;
277
+ transition: all 2s ease, fill 2s ease;
278
+ }
279
+
280
+
281
+ .curve-block:hover .border-path,
282
+ .curve-block:hover .animated-border {
283
+ fill: #131415;
284
+
285
+ }
286
+ .arrow {
287
+ fill: #1b98e2;
288
+ }
289
+ }
290
+ </style>
291
+
292
+
@@ -0,0 +1,85 @@
1
+ <script setup lang="ts">
2
+ import { NuxtLinkLocale } from '#components'
3
+ import { computed } from 'vue'
4
+
5
+ // Same logic/props as ACurveBlock — only the visual design differs.
6
+ const props = withDefaults(defineProps<{
7
+ icon: Component
8
+ title: string
9
+ description: string
10
+ to?: string
11
+ /** Accent color as a hex code, e.g. "#068dff". */
12
+ color?: string
13
+ }>(), {
14
+ color: '#068dff',
15
+ })
16
+
17
+ const bg = computed(() => `${props.color}1A`) // ~10% opacity в hex
18
+ </script>
19
+
20
+ <template>
21
+ <component
22
+ :is="to ? NuxtLinkLocale : 'button'"
23
+ :to="to"
24
+ :style="{ '--cb-color': color, '--cb-bg': bg }"
25
+ class="curve-block-v2 group relative flex w-full cursor-pointer flex-col gap-4 rounded-2xl border border-gray-100 bg-white p-6 text-left transition-all duration-200 hover:-translate-y-1 hover:border-gray-300 hover:shadow-lg dark:border-gray-700 dark:bg-gray-800"
26
+ :class="{ 'active-item': !to }"
27
+ active-class="active-item"
28
+ >
29
+ <!-- arrow, top-right -->
30
+ <div class="arrow-icon absolute right-4 top-4 flex size-7 items-center justify-center rounded-full p-2 bg-[#068dff]/10 text-[#068dff]">
31
+ <svg
32
+ class="size-2"
33
+ viewBox="16 16 16 16"
34
+ fill="none"
35
+ xmlns="http://www.w3.org/2000/svg"
36
+ >
37
+ <path
38
+ fill-rule="evenodd"
39
+ clip-rule="evenodd"
40
+ d="M17.1155 16C16.4994 16 16 16.4994 16 17.1155C16 17.7315 16.4994 18.231 17.1155 18.231L28.1915 18.231L16.3267 30.0958C15.8911 30.5314 15.8911 31.2377 16.3267 31.6733C16.7623 32.1089 17.4686 32.1089 17.9042 31.6733L29.769 19.8085L29.769 30.8845C29.769 31.5006 30.2685 32 30.8845 32C31.5006 32 32 31.5006 32 30.8845L32 17.1155C32 16.9642 31.9699 16.82 31.9154 16.6885C31.8617 16.5589 31.7826 16.4373 31.678 16.3315C31.6749 16.3283 31.6717 16.3251 31.6685 16.322C31.5627 16.2174 31.4411 16.1383 31.3115 16.0846C31.18 16.0301 31.0358 16 30.8845 16L17.1155 16Z"
41
+ fill="currentColor"
42
+ />
43
+ </svg>
44
+ </div>
45
+
46
+ <!-- icon -->
47
+ <div class="icon-item w-fit rounded-xl p-3">
48
+ <component
49
+ :is="icon"
50
+ class="size-6 shrink-0"
51
+ />
52
+ </div>
53
+
54
+ <div class="flex flex-col gap-2 pr-6">
55
+ <p class="title text-base font-semibold text-deepblue-900 dark:text-white">
56
+ {{ title }}
57
+ </p>
58
+ <p class="text-sm leading-relaxed text-gray-500 dark:text-gray-300">
59
+ {{ description }}
60
+ </p>
61
+ </div>
62
+ </component>
63
+ </template>
64
+
65
+ <style lang="scss" scoped>
66
+ /* icon uses the card's accent color at 10% bg + full-color glyph */
67
+ .icon-item {
68
+ background-color: var(--cb-bg);
69
+ color: var(--cb-color);
70
+ }
71
+
72
+ /* active state (route match, or forced when there is no `to`) */
73
+ .active-item {
74
+ border-color: var(--cb-color);
75
+ background-color: var(--cb-bg);
76
+ }
77
+ .active-item .title,
78
+ .active-item .arrow-icon {
79
+ color: var(--cb-color);
80
+ }
81
+ .active-item .icon-item {
82
+ background-color: var(--cb-color);
83
+ color: #fff;
84
+ }
85
+ </style>