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,576 +1,583 @@
1
- @custom-variant dark (&:where(.dark, .dark *));
2
-
3
- @source inline("{,hover:}bg-{brand,blue,green,yellow,red,orange,purple}-{400,500,600,700,900}/{10,20}");
4
- /* Класс инжектится в рантайме composables/highlight.ts — сканеру не виден. */
5
- @source inline("bg-yellow-subtle");
6
-
7
- @theme static {
8
- --font-sans: "Open Sans", sans-serif;
9
-
10
- --radius-*: initial;
11
- --radius: 4px;
12
- --radius-xs: 4px;
13
- --radius-sm: 6px;
14
- --radius-md: 8px;
15
- --radius-10: 10px;
16
- --radius-lg: 12px;
17
- --radius-xl: 16px;
18
- --radius-2xl: 20px;
19
-
20
- --text-display-hero: 60px;
21
- --text-display-hero--line-height: 72px;
22
- --text-display-hero--letter-spacing: -0.025em;
23
- --text-display-hero--font-weight: 700;
24
-
25
- --text-display-lg: 40px;
26
- --text-display-lg--line-height: 48px;
27
- --text-display-lg--letter-spacing: -0.02em;
28
- --text-display-lg--font-weight: 700;
29
-
30
- --text-display-sm: 32px;
31
- --text-display-sm--line-height: 40px;
32
- --text-display-sm--letter-spacing: -0.015em;
33
- --text-display-sm--font-weight: 700;
34
-
35
- --text-h1: 28px;
36
- --text-h1--line-height: 36px;
37
- --text-h1--letter-spacing: -0.02em;
38
- --text-h1--font-weight: 700;
39
-
40
- --text-h2: 24px;
41
- --text-h2--line-height: 32px;
42
- --text-h2--letter-spacing: -0.015em;
43
- --text-h2--font-weight: 700;
44
-
45
- --text-h3: 20px;
46
- --text-h3--line-height: 28px;
47
- --text-h3--letter-spacing: -0.01em;
48
- --text-h3--font-weight: 600;
49
-
50
- --text-h4: 18px;
51
- --text-h4--line-height: 28px;
52
- --text-h4--letter-spacing: -0.005em;
53
- --text-h4--font-weight: 600;
54
-
55
- --text-h5: 16px;
56
- --text-h5--line-height: 24px;
57
- --text-h5--font-weight: 600;
58
-
59
- --text-body-lg: 16px;
60
- --text-body-lg--line-height: 24px;
61
- --text-body-lg--font-weight: 400;
62
-
63
- --text-body-lg-medium: 16px;
64
- --text-body-lg-medium--line-height: 24px;
65
- --text-body-lg-medium--font-weight: 500;
66
-
67
- --text-body-lg-strong: 16px;
68
- --text-body-lg-strong--line-height: 24px;
69
- --text-body-lg-strong--font-weight: 600;
70
-
71
- --text-body-md: 14px;
72
- --text-body-md--line-height: 20px;
73
- --text-body-md--font-weight: 400;
74
-
75
- --text-body-md-medium: 14px;
76
- --text-body-md-medium--line-height: 20px;
77
- --text-body-md-medium--font-weight: 500;
78
-
79
- --text-body-md-strong: 14px;
80
- --text-body-md-strong--line-height: 20px;
81
- --text-body-md-strong--font-weight: 600;
82
-
83
- --text-body-sm: 12px;
84
- --text-body-sm--line-height: 16px;
85
- --text-body-sm--font-weight: 400;
86
-
87
- --text-body-sm-medium: 12px;
88
- --text-body-sm-medium--line-height: 16px;
89
- --text-body-sm-medium--font-weight: 500;
90
-
91
- --text-overline: 12px;
92
- --text-overline--line-height: 16px;
93
- --text-overline--letter-spacing: 0.02em;
94
- --text-overline--font-weight: 600;
95
-
96
- --text-overline-medium: 12px;
97
- --text-overline-medium--line-height: 16px;
98
- --text-overline-medium--letter-spacing: 0.02em;
99
- --text-overline-medium--font-weight: 500;
100
-
101
- /* @generated-colors:start (сгенерировано из Figma-токенов, генератор в update-plan.md / git show 8862721) */
102
- /* brand */
103
- --color-brand-50: #F0F8FF;
104
- --color-brand-100: #DBEFFF;
105
- --color-brand-200: #B3DCFF;
106
- --color-brand-300: #75C0FF;
107
- --color-brand-400: #3DA6FF;
108
- --color-brand-500: #068DFF;
109
- --color-brand-600: #007AE0;
110
- --color-brand-700: #0066BD;
111
- --color-brand-800: #005399;
112
- --color-brand-900: #00427A;
113
- /* base */
114
- --color-base-bg-dark: #161617;
115
- --color-base-bg-light: #FFFFFF;
116
- --color-black: #000000;
117
- --color-white: #FFFFFF;
118
- /* surface */
119
- --color-surface-dark: #161617;
120
- --color-surface-dark-2: #393D40;
121
- /* chart */
122
- --color-chart-amber: #F5A623;
123
- --color-chart-blue: #0070EB;
124
- --color-chart-green: #6BBD6E;
125
- --color-chart-red: #FB2C36;
126
- /* secondary */
127
- --color-secondary-50: #F2F5F8;
128
- --color-secondary-100: #DEE6ED;
129
- --color-secondary-200: #C0CFDD;
130
- --color-secondary-300: #92ABC4;
131
- --color-secondary-400: #527598;
132
- --color-secondary-500: #2C3E50;
133
- --color-secondary-600: #253646;
134
- --color-secondary-700: #1E2B38;
135
- --color-secondary-800: #17212B;
136
- --color-secondary-900: #10171E;
137
- /* @generated-colors:end */
138
-
139
- /* @generated-semantic-colors:start (светлые значения; тёмные — в @layer base .dark ниже)
140
- Источник: Figma-артефакт «Семантические цвета» (таблица токенов — в git-истории: git show 69039ec:docs/color-migration.md).
141
- Старый генератор (git show 8862721) к этому блоку неприменим: регенерация = дамп таблицы артефакта.
142
- Именование: text/* → --text-color-*, bg/* → --background-color-*, border/* → --border-color-*,
143
- action/* → --color-action-*, icon/* → --color-icon-* (последние два доступны из любых цветовых утилит). */
144
- /* text */
145
- --text-color-primary: #2C3E50;
146
- --text-color-secondary: #99A1AF;
147
- --text-color-tertiary: #FFFFFF;
148
- --text-color-quaternary: #6A7282;
149
- --text-color-disabled: #A1A1A1;
150
- --text-color-inverted: #FFFFFF;
151
- --text-color-brand: #068DFF;
152
- --text-color-link: #068DFF;
153
- --text-color-link-hover: #007AE0;
154
- --text-color-success: #00A63E;
155
- --text-color-warning: #FE9A00;
156
- --text-color-danger: #FB2C36;
157
- /* bg */
158
- --background-color-main: #FFFFFF;
159
- --background-color-canvas: #F3F4F6;
160
- --background-color-subtle: #F9FAFB33;
161
- --background-color-muted: #F3F4F6;
162
- --background-color-overlay: #10182880;
163
- --background-color-brand: #068DFF;
164
- --background-color-brand-subtle: #F0F8FF;
165
- --background-color-success: #00A63E;
166
- --background-color-success-subtle: #DCFCE7;
167
- --background-color-warning: #FE9A00;
168
- --background-color-warning-subtle: #FEF3C6;
169
- --background-color-danger: #FB2C36;
170
- --background-color-danger-subtle: #FEF2F2;
171
- --background-color-badge: #E5E7EB;
172
- --background-color-red-subtle: #FEF2F2;
173
- --background-color-orange-subtle: #FFEDD4;
174
- --background-color-amber-subtle: #FEF3C6;
175
- --background-color-yellow-subtle: #FEF9C2;
176
- --background-color-lime-subtle: #ECFCCA;
177
- --background-color-green-subtle: #DCFCE7;
178
- --background-color-emerald-subtle: #D0FAE5;
179
- --background-color-teal-subtle: #CBFBF1;
180
- --background-color-cyan-subtle: #CEFAFE;
181
- --background-color-sky-subtle: #DFF2FE;
182
- --background-color-blue-subtle: #DBEFFF;
183
- --background-color-indigo-subtle: #E0E7FF;
184
- --background-color-violet-subtle: #EDE9FE;
185
- --background-color-purple-subtle: #F3E8FF;
186
- --background-color-fuchsia-subtle: #FAE8FF;
187
- --background-color-pink-subtle: #FCE7F3;
188
- --background-color-rose-subtle: #FFE4E6;
189
- /* border */
190
- --border-color-default: #E5E7EB;
191
- --border-color-strong: #D1D5DC;
192
- --border-color-focus: #068DFF;
193
- --border-color-brand: #068DFF;
194
- --border-color-info: #2B7FFF;
195
- --border-color-success: #00A63E;
196
- --border-color-warning: #E17100;
197
- --border-color-danger: #FB2C36;
198
- --border-color-red: #FFA2A2;
199
- --border-color-orange: #FF6900;
200
- --border-color-amber: #FE9A00;
201
- --border-color-yellow: #F0B100;
202
- --border-color-lime: #7CCF00;
203
- --border-color-green: #00C950;
204
- --border-color-emerald: #00BC7D;
205
- --border-color-teal: #00BBA7;
206
- --border-color-cyan: #00B8DB;
207
- --border-color-sky: #00A6F4;
208
- --border-color-indigo: #615FFF;
209
- --border-color-violet: #8E51FF;
210
- --border-color-purple: #AD46FF;
211
- --border-color-fuchsia: #E12AFB;
212
- --border-color-pink: #F6339A;
213
- --border-color-rose: #FF2056;
214
- /* action */
215
- --color-action-primary: #068DFF;
216
- --color-action-primary-hover: #007AE0;
217
- --color-action-primary-active: #0066BD;
218
- --color-action-primary-fg: #FFFFFF;
219
- --color-action-secondary: #FFFFFF;
220
- --color-action-secondary-hover: #F9FAFB;
221
- --color-action-secondary-fg: #2C3E50;
222
- --color-action-danger: #E7000B;
223
- --color-action-danger-hover: #C10007;
224
- --color-action-danger-fg: #FFFFFF;
225
- --color-action-disabled: #E5E7EB;
226
- --color-action-disabled-fg: #99A1AF;
227
- /* icon */
228
- --color-icon-default: #6A7282;
229
- --color-icon-strong: #2C3E50;
230
- --color-icon-secondary: #99A1AF;
231
- --color-icon-disabled: #D1D5DC;
232
- --color-icon-inverted: #FFFFFF;
233
- --color-icon-brand: #068DFF;
234
- --color-icon-on-brand: #FFFFFF;
235
- --color-icon-white: #FFFFFF;
236
- --color-icon-success: #00A63E;
237
- --color-icon-warning: #FFB900;
238
- --color-icon-danger: #E7000B;
239
- --color-icon-red: #E7000B;
240
- --color-icon-orange: #FF6900;
241
- --color-icon-amber: #FE9A00;
242
- --color-icon-yellow: #F0B100;
243
- --color-icon-lime: #7CCF00;
244
- --color-icon-green: #00A63E;
245
- --color-icon-emerald: #00BC7D;
246
- --color-icon-teal: #00BBA7;
247
- --color-icon-cyan: #00B8DB;
248
- --color-icon-sky: #00A6F4;
249
- --color-icon-blue: #2B7FFF;
250
- --color-icon-indigo: #615FFF;
251
- --color-icon-violet: #8E51FF;
252
- --color-icon-purple: #AD46FF;
253
- --color-icon-fuchsia: #C800DE;
254
- --color-icon-pink: #E60076;
255
- --color-icon-rose: #FF2056;
256
- /* хелперы вне артефакта (= bg/Main): замена бывшего флипа fill-white/stroke-white в иллюстрациях */
257
- --fill-main: #FFFFFF;
258
- --stroke-main: #FFFFFF;
259
- /* @generated-semantic-colors:end */
260
- }
261
-
262
- /* Тёмная тема: переопределяются только СЕМАНТИЧЕСКИЕ токены (text-primary, bg-main,
263
- border-default, action/icon-*); примитивные шкалы (gray-*, red-*, brand-* и т.д.)
264
- константны в обеих темах. Утилиты компилируются в var(--…-*), поэтому семантические
265
- классы переключаются сами; цветовые dark:-классы легальны для краевых случаев.
266
- @layer base идёт после @layer theme → побеждает :root. */
267
- @layer base {
268
- :root {
269
- color-scheme: light;
270
- }
271
-
272
- .dark {
273
- color-scheme: dark;
274
- /* @generated-semantic-colors-dark:start (тёмные значения семантических токенов, 1:1 с артефактом —
275
- включая тема-константные, чтобы регенерация из Figma была тупым дампом таблицы) */
276
- /* text */
277
- --text-color-primary: #FAFAFA;
278
- --text-color-secondary: #99A1AF;
279
- --text-color-tertiary: #FFFFFF;
280
- --text-color-quaternary: #99A1AF;
281
- --text-color-disabled: #D4D4D4;
282
- --text-color-inverted: #161617;
283
- --text-color-brand: #3DA6FF;
284
- --text-color-link: #3DA6FF;
285
- --text-color-link-hover: #B3DCFF;
286
- --text-color-success: #00C950;
287
- --text-color-warning: #FFB900;
288
- --text-color-danger: #FF6467;
289
- /* bg */
290
- --background-color-main: #161617;
291
- --background-color-canvas: #1E2939;
292
- --background-color-subtle: #171717;
293
- --background-color-muted: #262626;
294
- --background-color-overlay: #00000099;
295
- --background-color-brand: #068DFF;
296
- --background-color-brand-subtle: #068DFF1A;
297
- --background-color-success: #008236;
298
- --background-color-success-subtle: #032E15;
299
- --background-color-warning: #E17100;
300
- --background-color-warning-subtle: #461901;
301
- --background-color-danger: #FF6467;
302
- --background-color-danger-subtle: #4608094D;
303
- --background-color-badge: #4A5565;
304
- --background-color-red-subtle: #82181A;
305
- --background-color-orange-subtle: #7E2A0C;
306
- --background-color-amber-subtle: #461901;
307
- --background-color-yellow-subtle: #432004;
308
- --background-color-lime-subtle: #192E03;
309
- --background-color-green-subtle: #032E15;
310
- --background-color-emerald-subtle: #002C22;
311
- --background-color-teal-subtle: #022F2E;
312
- --background-color-cyan-subtle: #053345;
313
- --background-color-sky-subtle: #052F4A;
314
- --background-color-blue-subtle: #00427A;
315
- --background-color-indigo-subtle: #1E1A4D;
316
- --background-color-violet-subtle: #2F0D68;
317
- --background-color-purple-subtle: #3C0366;
318
- --background-color-fuchsia-subtle: #4B004F;
319
- --background-color-pink-subtle: #510424;
320
- --background-color-rose-subtle: #4D0218;
321
- /* border */
322
- --border-color-default: #404040;
323
- --border-color-strong: #6A7282;
324
- --border-color-focus: #3DA6FF;
325
- --border-color-brand: #3DA6FF;
326
- --border-color-info: #51A2FF;
327
- --border-color-success: #05DF72;
328
- --border-color-warning: #FFB900;
329
- --border-color-danger: #FF6467;
330
- --border-color-red: #FF6467;
331
- --border-color-orange: #FF8904;
332
- --border-color-amber: #FFB900;
333
- --border-color-yellow: #FDC700;
334
- --border-color-lime: #9AE600;
335
- --border-color-green: #05DF72;
336
- --border-color-emerald: #00D492;
337
- --border-color-teal: #00D5BE;
338
- --border-color-cyan: #00D3F2;
339
- --border-color-sky: #00BCFF;
340
- --border-color-indigo: #7C86FF;
341
- --border-color-violet: #A684FF;
342
- --border-color-purple: #C27AFF;
343
- --border-color-fuchsia: #ED6AFF;
344
- --border-color-pink: #FB64B6;
345
- --border-color-rose: #FF637E;
346
- /* action */
347
- --color-action-primary: #068DFF;
348
- --color-action-primary-hover: #007AE0;
349
- --color-action-primary-active: #0066BD;
350
- --color-action-primary-fg: #FFFFFF;
351
- --color-action-secondary: #262626;
352
- --color-action-secondary-hover: #404040;
353
- --color-action-secondary-fg: #FFFFFF;
354
- --color-action-danger: #FF6467;
355
- --color-action-danger-hover: #82181A;
356
- --color-action-danger-fg: #FFFFFF;
357
- --color-action-disabled: #404040;
358
- --color-action-disabled-fg: #6A7282;
359
- /* icon */
360
- --color-icon-default: #D1D5DC;
361
- --color-icon-strong: #F9FAFB;
362
- --color-icon-secondary: #99A1AF;
363
- --color-icon-disabled: #4A5565;
364
- --color-icon-inverted: #2C3E50;
365
- --color-icon-brand: #3DA6FF;
366
- --color-icon-on-brand: #FFFFFF;
367
- --color-icon-white: #000000;
368
- --color-icon-success: #00C950;
369
- --color-icon-warning: #FFB900;
370
- --color-icon-danger: #FF6467;
371
- --color-icon-red: #FF6467;
372
- --color-icon-orange: #FF8904;
373
- --color-icon-amber: #FFB900;
374
- --color-icon-yellow: #FDC700;
375
- --color-icon-lime: #9AE600;
376
- --color-icon-green: #00C950;
377
- --color-icon-emerald: #00D492;
378
- --color-icon-teal: #00D5BE;
379
- --color-icon-cyan: #00D3F2;
380
- --color-icon-sky: #00BCFF;
381
- --color-icon-blue: #51A2FF;
382
- --color-icon-indigo: #7C86FF;
383
- --color-icon-violet: #A684FF;
384
- --color-icon-purple: #C27AFF;
385
- --color-icon-fuchsia: #ED6AFF;
386
- --color-icon-pink: #FB64B6;
387
- --color-icon-rose: #FF637E;
388
- /* хелперы (= bg/Main) */
389
- --fill-main: #161617;
390
- --stroke-main: #161617;
391
- /* @generated-semantic-colors-dark:end */
392
- }
393
- }
394
-
395
- /* Компат-слой поведения v3 (официальный upgrade guide) */
396
- @layer base {
397
- /* В v4 дефолтный border-color стал currentColor; возвращаем прежний вид (= gray-200 в лайте) */
398
- *,
399
- ::after,
400
- ::before,
401
- ::backdrop,
402
- ::file-selector-button {
403
- border-color: var(--border-color-default, currentColor);
404
- }
405
-
406
- /* Плейсхолдеры: токена placeholder в ДС нет, ближайший — text/disabled
407
- (осознанная светлая дельта #D1D5DC → #A1A1A1, см. git show 69039ec:docs/color-migration.md) */
408
- input::placeholder,
409
- textarea::placeholder {
410
- color: var(--text-color-disabled);
411
- }
412
-
413
- /* В v4 у кнопок cursor: default */
414
- button:not(:disabled),
415
- [role="button"]:not(:disabled) {
416
- cursor: pointer;
417
- }
418
- }
419
-
420
- /* Легаси-типографика (Figma DESIGN-SYSTEM-NEW, до ДС-2026) */
421
- @layer components {
422
- .a-container {
423
- @apply container mx-auto px-4 2xl:px-16;
424
- }
425
-
426
- /* Headings */
427
- .heading-01 {
428
- @apply font-bold text-[2rem] leading-10;
429
- }
430
-
431
- .heading-02 {
432
- @apply font-bold text-2xl leading-8;
433
- }
434
-
435
- .heading-03 {
436
- @apply font-semibold text-xl leading-6;
437
- }
438
-
439
- .heading-04 {
440
- @apply font-semibold text-base leading-5;
441
- }
442
-
443
- .heading-05 {
444
- @apply font-semibold text-sm leading-5;
445
- }
446
-
447
- /* Body */
448
- .body-400 {
449
- @apply font-normal text-sm leading-5;
450
- }
451
-
452
- .body-500 {
453
- @apply font-medium text-sm leading-5;
454
- }
455
-
456
- .body-600 {
457
- @apply font-semibold text-sm leading-5;
458
- }
459
-
460
- .body-s-400 {
461
- @apply font-normal text-sm leading-4;
462
- }
463
-
464
- .body-s-500 {
465
- @apply font-medium text-sm leading-4;
466
- }
467
-
468
- /* Caption */
469
- .caption-400 {
470
- @apply font-normal text-[0.625rem] leading-4;
471
- }
472
-
473
- .caption-500 {
474
- @apply font-medium text-[0.625rem] leading-4;
475
- }
476
-
477
- .caption-700 {
478
- @apply font-bold text-[0.625rem] leading-4;
479
- }
480
-
481
- /* Form */
482
- .label-400 {
483
- @apply font-normal text-sm leading-5;
484
- }
485
-
486
- .label-600 {
487
- @apply font-semibold text-sm leading-5;
488
- }
489
-
490
- .label-s-400 {
491
- @apply font-normal text-xs leading-4;
492
- }
493
-
494
- .label-s-700 {
495
- @apply font-bold text-xs leading-4;
496
- }
497
-
498
- .optional-i-700 {
499
- @apply font-bold italic text-sm leading-5;
500
- }
501
-
502
- .placeholder-300 {
503
- @apply font-light text-sm leading-5;
504
- }
505
-
506
- .description-400 {
507
- @apply font-normal text-xs leading-5;
508
- }
509
-
510
- /* Link */
511
- .link-400 {
512
- @apply font-normal text-sm leading-5;
513
- color: var(--text-color-link);
514
- }
515
-
516
- .link-stroke-400 {
517
- @apply font-normal text-sm leading-5;
518
- color: var(--text-color-link);
519
- }
520
-
521
- .link-s-400 {
522
- @apply font-normal text-sm leading-4;
523
- color: var(--text-color-link);
524
- }
525
-
526
- .link-s-stroke-400 {
527
- @apply font-normal text-sm leading-4;
528
- color: var(--text-color-link);
529
- }
530
-
531
- .link-small-800 {
532
- @apply font-bold text-sm leading-4;
533
- color: var(--text-color-link);
534
- }
535
-
536
- /* Special Styles */
537
- .display-80-700 {
538
- @apply font-bold text-[5rem] leading-[6.5rem];
539
- }
540
-
541
- .display-80-400 {
542
- @apply font-normal text-[5rem] leading-[6.5rem];
543
- }
544
-
545
- .display-60-700 {
546
- @apply font-bold text-[3.75rem] leading-[4.750rem];
547
- }
548
-
549
- .display-60-400 {
550
- @apply font-normal text-[3.75rem] leading-[4.750rem];
551
- }
552
-
553
- .display-48-700 {
554
- @apply font-bold text-[3rem] leading-[4rem];
555
- }
556
-
557
- .display-48-400 {
558
- @apply font-normal text-[3rem] leading-[4rem];
559
- }
560
-
561
- .numbers-60-700 {
562
- @apply font-bold text-[3.75rem] leading-[3.5rem];
563
- }
564
-
565
- .numbers-60-400 {
566
- @apply font-normal text-[3.75rem] leading-[3.5rem];
567
- }
568
-
569
- .numbers-40-700 {
570
- @apply font-bold text-[2.5rem] leading-[3.375rem];
571
- }
572
-
573
- .numbers-40-400 {
574
- @apply font-normal text-[2.5rem] leading-[3.375rem];
575
- }
576
- }
1
+ @custom-variant dark (&:where(.dark, .dark *));
2
+
3
+ @source inline("{,hover:}bg-{brand,blue,green,yellow,red,orange,purple}-{400,500,600,700,900}/{10,20}");
4
+ /* Класс инжектится в рантайме composables/highlight.ts — сканеру не виден. */
5
+ @source inline("bg-yellow-subtle");
6
+
7
+ @theme static {
8
+ --font-sans: "Open Sans", sans-serif;
9
+
10
+ /* Точка, с которой лендинги ДС-2026 расширяют контейнер (макет: min-[1920px]) */
11
+ --breakpoint-3xl: 1920px;
12
+ /* Дефолтная шкала v4 кончается на --container-7xl = 80rem = 1280px */
13
+ --container-8xl: 96rem;
14
+
15
+ --radius-*: initial;
16
+ --radius: 4px;
17
+ --radius-xs: 4px;
18
+ --radius-sm: 6px;
19
+ --radius-md: 8px;
20
+ --radius-10: 10px;
21
+ --radius-14: 14px;
22
+ --radius-lg: 12px;
23
+ --radius-xl: 16px;
24
+ --radius-2xl: 20px;
25
+ --radius-3xl: 24px;
26
+
27
+ --text-display-hero: 60px;
28
+ --text-display-hero--line-height: 72px;
29
+ --text-display-hero--letter-spacing: -0.025em;
30
+ --text-display-hero--font-weight: 700;
31
+
32
+ --text-display-lg: 40px;
33
+ --text-display-lg--line-height: 48px;
34
+ --text-display-lg--letter-spacing: -0.02em;
35
+ --text-display-lg--font-weight: 700;
36
+
37
+ --text-display-sm: 32px;
38
+ --text-display-sm--line-height: 40px;
39
+ --text-display-sm--letter-spacing: -0.015em;
40
+ --text-display-sm--font-weight: 700;
41
+
42
+ --text-h1: 28px;
43
+ --text-h1--line-height: 36px;
44
+ --text-h1--letter-spacing: -0.02em;
45
+ --text-h1--font-weight: 700;
46
+
47
+ --text-h2: 24px;
48
+ --text-h2--line-height: 32px;
49
+ --text-h2--letter-spacing: -0.015em;
50
+ --text-h2--font-weight: 700;
51
+
52
+ --text-h3: 20px;
53
+ --text-h3--line-height: 28px;
54
+ --text-h3--letter-spacing: -0.01em;
55
+ --text-h3--font-weight: 600;
56
+
57
+ --text-h4: 18px;
58
+ --text-h4--line-height: 28px;
59
+ --text-h4--letter-spacing: -0.005em;
60
+ --text-h4--font-weight: 600;
61
+
62
+ --text-h5: 16px;
63
+ --text-h5--line-height: 24px;
64
+ --text-h5--font-weight: 600;
65
+
66
+ --text-body-lg: 16px;
67
+ --text-body-lg--line-height: 24px;
68
+ --text-body-lg--font-weight: 400;
69
+
70
+ --text-body-lg-medium: 16px;
71
+ --text-body-lg-medium--line-height: 24px;
72
+ --text-body-lg-medium--font-weight: 500;
73
+
74
+ --text-body-lg-strong: 16px;
75
+ --text-body-lg-strong--line-height: 24px;
76
+ --text-body-lg-strong--font-weight: 600;
77
+
78
+ --text-body-md: 14px;
79
+ --text-body-md--line-height: 20px;
80
+ --text-body-md--font-weight: 400;
81
+
82
+ --text-body-md-medium: 14px;
83
+ --text-body-md-medium--line-height: 20px;
84
+ --text-body-md-medium--font-weight: 500;
85
+
86
+ --text-body-md-strong: 14px;
87
+ --text-body-md-strong--line-height: 20px;
88
+ --text-body-md-strong--font-weight: 600;
89
+
90
+ --text-body-sm: 12px;
91
+ --text-body-sm--line-height: 16px;
92
+ --text-body-sm--font-weight: 400;
93
+
94
+ --text-body-sm-medium: 12px;
95
+ --text-body-sm-medium--line-height: 16px;
96
+ --text-body-sm-medium--font-weight: 500;
97
+
98
+ --text-overline: 12px;
99
+ --text-overline--line-height: 16px;
100
+ --text-overline--letter-spacing: 0.02em;
101
+ --text-overline--font-weight: 600;
102
+
103
+ --text-overline-medium: 12px;
104
+ --text-overline-medium--line-height: 16px;
105
+ --text-overline-medium--letter-spacing: 0.02em;
106
+ --text-overline-medium--font-weight: 500;
107
+
108
+ /* @generated-colors:start (сгенерировано из Figma-токенов, генератор в update-plan.md / git show 8862721) */
109
+ /* brand */
110
+ --color-brand-50: #F0F8FF;
111
+ --color-brand-100: #DBEFFF;
112
+ --color-brand-200: #B3DCFF;
113
+ --color-brand-300: #75C0FF;
114
+ --color-brand-400: #3DA6FF;
115
+ --color-brand-500: #068DFF;
116
+ --color-brand-600: #007AE0;
117
+ --color-brand-700: #0066BD;
118
+ --color-brand-800: #005399;
119
+ --color-brand-900: #00427A;
120
+ /* base */
121
+ --color-base-bg-dark: #161617;
122
+ --color-base-bg-light: #FFFFFF;
123
+ --color-black: #000000;
124
+ --color-white: #FFFFFF;
125
+ /* surface */
126
+ --color-surface-dark: #161617;
127
+ --color-surface-dark-2: #393D40;
128
+ /* chart */
129
+ --color-chart-amber: #F5A623;
130
+ --color-chart-blue: #0070EB;
131
+ --color-chart-green: #6BBD6E;
132
+ --color-chart-red: #FB2C36;
133
+ /* secondary */
134
+ --color-secondary-50: #F2F5F8;
135
+ --color-secondary-100: #DEE6ED;
136
+ --color-secondary-200: #C0CFDD;
137
+ --color-secondary-300: #92ABC4;
138
+ --color-secondary-400: #527598;
139
+ --color-secondary-500: #2C3E50;
140
+ --color-secondary-600: #253646;
141
+ --color-secondary-700: #1E2B38;
142
+ --color-secondary-800: #17212B;
143
+ --color-secondary-900: #10171E;
144
+ /* @generated-colors:end */
145
+
146
+ /* @generated-semantic-colors:start (светлые значения; тёмные — в @layer base .dark ниже)
147
+ Источник: Figma-артефакт «Семантические цвета» (таблица токенов — в git-истории: git show 69039ec:docs/color-migration.md).
148
+ Старый генератор (git show 8862721) к этому блоку неприменим: регенерация = дамп таблицы артефакта.
149
+ Именование: text/* → --text-color-*, bg/* → --background-color-*, border/* → --border-color-*,
150
+ action/* → --color-action-*, icon/* → --color-icon-* (последние два доступны из любых цветовых утилит). */
151
+ /* text */
152
+ --text-color-primary: #2C3E50;
153
+ --text-color-secondary: #99A1AF;
154
+ --text-color-tertiary: #FFFFFF;
155
+ --text-color-quaternary: #6A7282;
156
+ --text-color-disabled: #A1A1A1;
157
+ --text-color-inverted: #FFFFFF;
158
+ --text-color-brand: #068DFF;
159
+ --text-color-link: #068DFF;
160
+ --text-color-link-hover: #007AE0;
161
+ --text-color-success: #00A63E;
162
+ --text-color-warning: #FE9A00;
163
+ --text-color-danger: #FB2C36;
164
+ /* bg */
165
+ --background-color-main: #FFFFFF;
166
+ --background-color-canvas: #F3F4F6;
167
+ --background-color-subtle: #F9FAFB33;
168
+ --background-color-muted: #F3F4F6;
169
+ --background-color-overlay: #10182880;
170
+ --background-color-brand: #068DFF;
171
+ --background-color-brand-subtle: #F0F8FF;
172
+ --background-color-success: #00A63E;
173
+ --background-color-success-subtle: #DCFCE7;
174
+ --background-color-warning: #FE9A00;
175
+ --background-color-warning-subtle: #FEF3C6;
176
+ --background-color-danger: #FB2C36;
177
+ --background-color-danger-subtle: #FEF2F2;
178
+ --background-color-badge: #E5E7EB;
179
+ --background-color-red-subtle: #FEF2F2;
180
+ --background-color-orange-subtle: #FFEDD4;
181
+ --background-color-amber-subtle: #FEF3C6;
182
+ --background-color-yellow-subtle: #FEF9C2;
183
+ --background-color-lime-subtle: #ECFCCA;
184
+ --background-color-green-subtle: #DCFCE7;
185
+ --background-color-emerald-subtle: #D0FAE5;
186
+ --background-color-teal-subtle: #CBFBF1;
187
+ --background-color-cyan-subtle: #CEFAFE;
188
+ --background-color-sky-subtle: #DFF2FE;
189
+ --background-color-blue-subtle: #DBEFFF;
190
+ --background-color-indigo-subtle: #E0E7FF;
191
+ --background-color-violet-subtle: #EDE9FE;
192
+ --background-color-purple-subtle: #F3E8FF;
193
+ --background-color-fuchsia-subtle: #FAE8FF;
194
+ --background-color-pink-subtle: #FCE7F3;
195
+ --background-color-rose-subtle: #FFE4E6;
196
+ /* border */
197
+ --border-color-default: #E5E7EB;
198
+ --border-color-strong: #D1D5DC;
199
+ --border-color-focus: #068DFF;
200
+ --border-color-brand: #068DFF;
201
+ --border-color-info: #2B7FFF;
202
+ --border-color-success: #00A63E;
203
+ --border-color-warning: #E17100;
204
+ --border-color-danger: #FB2C36;
205
+ --border-color-red: #FFA2A2;
206
+ --border-color-orange: #FF6900;
207
+ --border-color-amber: #FE9A00;
208
+ --border-color-yellow: #F0B100;
209
+ --border-color-lime: #7CCF00;
210
+ --border-color-green: #00C950;
211
+ --border-color-emerald: #00BC7D;
212
+ --border-color-teal: #00BBA7;
213
+ --border-color-cyan: #00B8DB;
214
+ --border-color-sky: #00A6F4;
215
+ --border-color-indigo: #615FFF;
216
+ --border-color-violet: #8E51FF;
217
+ --border-color-purple: #AD46FF;
218
+ --border-color-fuchsia: #E12AFB;
219
+ --border-color-pink: #F6339A;
220
+ --border-color-rose: #FF2056;
221
+ /* action */
222
+ --color-action-primary: #068DFF;
223
+ --color-action-primary-hover: #007AE0;
224
+ --color-action-primary-active: #0066BD;
225
+ --color-action-primary-fg: #FFFFFF;
226
+ --color-action-secondary: #FFFFFF;
227
+ --color-action-secondary-hover: #F9FAFB;
228
+ --color-action-secondary-fg: #2C3E50;
229
+ --color-action-danger: #E7000B;
230
+ --color-action-danger-hover: #C10007;
231
+ --color-action-danger-fg: #FFFFFF;
232
+ --color-action-disabled: #E5E7EB;
233
+ --color-action-disabled-fg: #99A1AF;
234
+ /* icon */
235
+ --color-icon-default: #6A7282;
236
+ --color-icon-strong: #2C3E50;
237
+ --color-icon-secondary: #99A1AF;
238
+ --color-icon-disabled: #D1D5DC;
239
+ --color-icon-inverted: #FFFFFF;
240
+ --color-icon-brand: #068DFF;
241
+ --color-icon-on-brand: #FFFFFF;
242
+ --color-icon-white: #FFFFFF;
243
+ --color-icon-success: #00A63E;
244
+ --color-icon-warning: #FFB900;
245
+ --color-icon-danger: #E7000B;
246
+ --color-icon-red: #E7000B;
247
+ --color-icon-orange: #FF6900;
248
+ --color-icon-amber: #FE9A00;
249
+ --color-icon-yellow: #F0B100;
250
+ --color-icon-lime: #7CCF00;
251
+ --color-icon-green: #00A63E;
252
+ --color-icon-emerald: #00BC7D;
253
+ --color-icon-teal: #00BBA7;
254
+ --color-icon-cyan: #00B8DB;
255
+ --color-icon-sky: #00A6F4;
256
+ --color-icon-blue: #2B7FFF;
257
+ --color-icon-indigo: #615FFF;
258
+ --color-icon-violet: #8E51FF;
259
+ --color-icon-purple: #AD46FF;
260
+ --color-icon-fuchsia: #C800DE;
261
+ --color-icon-pink: #E60076;
262
+ --color-icon-rose: #FF2056;
263
+ /* хелперы вне артефакта (= bg/Main): замена бывшего флипа fill-white/stroke-white в иллюстрациях */
264
+ --fill-main: #FFFFFF;
265
+ --stroke-main: #FFFFFF;
266
+ /* @generated-semantic-colors:end */
267
+ }
268
+
269
+ /* Тёмная тема: переопределяются только СЕМАНТИЧЕСКИЕ токены (text-primary, bg-main,
270
+ border-default, action/icon-*); примитивные шкалы (gray-*, red-*, brand-* и т.д.)
271
+ константны в обеих темах. Утилиты компилируются в var(--…-*), поэтому семантические
272
+ классы переключаются сами; цветовые dark:-классы легальны для краевых случаев.
273
+ @layer base идёт после @layer theme → побеждает :root. */
274
+ @layer base {
275
+ :root {
276
+ color-scheme: light;
277
+ }
278
+
279
+ .dark {
280
+ color-scheme: dark;
281
+ /* @generated-semantic-colors-dark:start (тёмные значения семантических токенов, 1:1 с артефактом —
282
+ включая тема-константные, чтобы регенерация из Figma была тупым дампом таблицы) */
283
+ /* text */
284
+ --text-color-primary: #FAFAFA;
285
+ --text-color-secondary: #99A1AF;
286
+ --text-color-tertiary: #FFFFFF;
287
+ --text-color-quaternary: #99A1AF;
288
+ --text-color-disabled: #D4D4D4;
289
+ --text-color-inverted: #161617;
290
+ --text-color-brand: #3DA6FF;
291
+ --text-color-link: #3DA6FF;
292
+ --text-color-link-hover: #B3DCFF;
293
+ --text-color-success: #00C950;
294
+ --text-color-warning: #FFB900;
295
+ --text-color-danger: #FF6467;
296
+ /* bg */
297
+ --background-color-main: #161617;
298
+ --background-color-canvas: #0F0F10;
299
+ --background-color-subtle: #171717;
300
+ --background-color-muted: #1F1F21;
301
+ --background-color-overlay: #00000099;
302
+ --background-color-brand: #068DFF;
303
+ --background-color-brand-subtle: #068DFF1A;
304
+ --background-color-success: #008236;
305
+ --background-color-success-subtle: #032E15;
306
+ --background-color-warning: #E17100;
307
+ --background-color-warning-subtle: #461901;
308
+ --background-color-danger: #FF6467;
309
+ --background-color-danger-subtle: #4608094D;
310
+ --background-color-badge: #4A5565;
311
+ --background-color-red-subtle: #82181A;
312
+ --background-color-orange-subtle: #7E2A0C;
313
+ --background-color-amber-subtle: #461901;
314
+ --background-color-yellow-subtle: #432004;
315
+ --background-color-lime-subtle: #192E03;
316
+ --background-color-green-subtle: #032E15;
317
+ --background-color-emerald-subtle: #002C22;
318
+ --background-color-teal-subtle: #022F2E;
319
+ --background-color-cyan-subtle: #053345;
320
+ --background-color-sky-subtle: #052F4A;
321
+ --background-color-blue-subtle: #00427A;
322
+ --background-color-indigo-subtle: #1E1A4D;
323
+ --background-color-violet-subtle: #2F0D68;
324
+ --background-color-purple-subtle: #3C0366;
325
+ --background-color-fuchsia-subtle: #4B004F;
326
+ --background-color-pink-subtle: #510424;
327
+ --background-color-rose-subtle: #4D0218;
328
+ /* border */
329
+ --border-color-default: #404040;
330
+ --border-color-strong: #6A7282;
331
+ --border-color-focus: #3DA6FF;
332
+ --border-color-brand: #3DA6FF;
333
+ --border-color-info: #51A2FF;
334
+ --border-color-success: #05DF72;
335
+ --border-color-warning: #FFB900;
336
+ --border-color-danger: #FF6467;
337
+ --border-color-red: #FF6467;
338
+ --border-color-orange: #FF8904;
339
+ --border-color-amber: #FFB900;
340
+ --border-color-yellow: #FDC700;
341
+ --border-color-lime: #9AE600;
342
+ --border-color-green: #05DF72;
343
+ --border-color-emerald: #00D492;
344
+ --border-color-teal: #00D5BE;
345
+ --border-color-cyan: #00D3F2;
346
+ --border-color-sky: #00BCFF;
347
+ --border-color-indigo: #7C86FF;
348
+ --border-color-violet: #A684FF;
349
+ --border-color-purple: #C27AFF;
350
+ --border-color-fuchsia: #ED6AFF;
351
+ --border-color-pink: #FB64B6;
352
+ --border-color-rose: #FF637E;
353
+ /* action */
354
+ --color-action-primary: #068DFF;
355
+ --color-action-primary-hover: #007AE0;
356
+ --color-action-primary-active: #0066BD;
357
+ --color-action-primary-fg: #FFFFFF;
358
+ --color-action-secondary: #262626;
359
+ --color-action-secondary-hover: #404040;
360
+ --color-action-secondary-fg: #FFFFFF;
361
+ --color-action-danger: #FF6467;
362
+ --color-action-danger-hover: #82181A;
363
+ --color-action-danger-fg: #FFFFFF;
364
+ --color-action-disabled: #404040;
365
+ --color-action-disabled-fg: #6A7282;
366
+ /* icon */
367
+ --color-icon-default: #D1D5DC;
368
+ --color-icon-strong: #F9FAFB;
369
+ --color-icon-secondary: #99A1AF;
370
+ --color-icon-disabled: #4A5565;
371
+ --color-icon-inverted: #2C3E50;
372
+ --color-icon-brand: #3DA6FF;
373
+ --color-icon-on-brand: #FFFFFF;
374
+ --color-icon-white: #000000;
375
+ --color-icon-success: #00C950;
376
+ --color-icon-warning: #FFB900;
377
+ --color-icon-danger: #FF6467;
378
+ --color-icon-red: #FF6467;
379
+ --color-icon-orange: #FF8904;
380
+ --color-icon-amber: #FFB900;
381
+ --color-icon-yellow: #FDC700;
382
+ --color-icon-lime: #9AE600;
383
+ --color-icon-green: #00C950;
384
+ --color-icon-emerald: #00D492;
385
+ --color-icon-teal: #00D5BE;
386
+ --color-icon-cyan: #00D3F2;
387
+ --color-icon-sky: #00BCFF;
388
+ --color-icon-blue: #51A2FF;
389
+ --color-icon-indigo: #7C86FF;
390
+ --color-icon-violet: #A684FF;
391
+ --color-icon-purple: #C27AFF;
392
+ --color-icon-fuchsia: #ED6AFF;
393
+ --color-icon-pink: #FB64B6;
394
+ --color-icon-rose: #FF637E;
395
+ /* хелперы (= bg/Main) */
396
+ --fill-main: #161617;
397
+ --stroke-main: #161617;
398
+ /* @generated-semantic-colors-dark:end */
399
+ }
400
+ }
401
+
402
+ /* Компат-слой поведения v3 (официальный upgrade guide) */
403
+ @layer base {
404
+ /* В v4 дефолтный border-color стал currentColor; возвращаем прежний вид (= gray-200 в лайте) */
405
+ *,
406
+ ::after,
407
+ ::before,
408
+ ::backdrop,
409
+ ::file-selector-button {
410
+ border-color: var(--border-color-default, currentColor);
411
+ }
412
+
413
+ /* Плейсхолдеры: токена placeholder в ДС нет, ближайший — text/disabled
414
+ (осознанная светлая дельта #D1D5DC → #A1A1A1, см. git show 69039ec:docs/color-migration.md) */
415
+ input::placeholder,
416
+ textarea::placeholder {
417
+ color: var(--text-color-disabled);
418
+ }
419
+
420
+ /* В v4 у кнопок cursor: default */
421
+ button:not(:disabled),
422
+ [role="button"]:not(:disabled) {
423
+ cursor: pointer;
424
+ }
425
+ }
426
+
427
+ /* Легаси-типографика (Figma DESIGN-SYSTEM-NEW, до ДС-2026) */
428
+ @layer components {
429
+ .a-container {
430
+ @apply container mx-auto px-4 2xl:px-16;
431
+ }
432
+
433
+ /* Headings */
434
+ .heading-01 {
435
+ @apply font-bold text-[2rem] leading-10;
436
+ }
437
+
438
+ .heading-02 {
439
+ @apply font-bold text-2xl leading-8;
440
+ }
441
+
442
+ .heading-03 {
443
+ @apply font-semibold text-xl leading-6;
444
+ }
445
+
446
+ .heading-04 {
447
+ @apply font-semibold text-base leading-5;
448
+ }
449
+
450
+ .heading-05 {
451
+ @apply font-semibold text-sm leading-5;
452
+ }
453
+
454
+ /* Body */
455
+ .body-400 {
456
+ @apply font-normal text-sm leading-5;
457
+ }
458
+
459
+ .body-500 {
460
+ @apply font-medium text-sm leading-5;
461
+ }
462
+
463
+ .body-600 {
464
+ @apply font-semibold text-sm leading-5;
465
+ }
466
+
467
+ .body-s-400 {
468
+ @apply font-normal text-sm leading-4;
469
+ }
470
+
471
+ .body-s-500 {
472
+ @apply font-medium text-sm leading-4;
473
+ }
474
+
475
+ /* Caption */
476
+ .caption-400 {
477
+ @apply font-normal text-[0.625rem] leading-4;
478
+ }
479
+
480
+ .caption-500 {
481
+ @apply font-medium text-[0.625rem] leading-4;
482
+ }
483
+
484
+ .caption-700 {
485
+ @apply font-bold text-[0.625rem] leading-4;
486
+ }
487
+
488
+ /* Form */
489
+ .label-400 {
490
+ @apply font-normal text-sm leading-5;
491
+ }
492
+
493
+ .label-600 {
494
+ @apply font-semibold text-sm leading-5;
495
+ }
496
+
497
+ .label-s-400 {
498
+ @apply font-normal text-xs leading-4;
499
+ }
500
+
501
+ .label-s-700 {
502
+ @apply font-bold text-xs leading-4;
503
+ }
504
+
505
+ .optional-i-700 {
506
+ @apply font-bold italic text-sm leading-5;
507
+ }
508
+
509
+ .placeholder-300 {
510
+ @apply font-light text-sm leading-5;
511
+ }
512
+
513
+ .description-400 {
514
+ @apply font-normal text-xs leading-5;
515
+ }
516
+
517
+ /* Link */
518
+ .link-400 {
519
+ @apply font-normal text-sm leading-5;
520
+ color: var(--text-color-link);
521
+ }
522
+
523
+ .link-stroke-400 {
524
+ @apply font-normal text-sm leading-5;
525
+ color: var(--text-color-link);
526
+ }
527
+
528
+ .link-s-400 {
529
+ @apply font-normal text-sm leading-4;
530
+ color: var(--text-color-link);
531
+ }
532
+
533
+ .link-s-stroke-400 {
534
+ @apply font-normal text-sm leading-4;
535
+ color: var(--text-color-link);
536
+ }
537
+
538
+ .link-small-800 {
539
+ @apply font-bold text-sm leading-4;
540
+ color: var(--text-color-link);
541
+ }
542
+
543
+ /* Special Styles */
544
+ .display-80-700 {
545
+ @apply font-bold text-[5rem] leading-[6.5rem];
546
+ }
547
+
548
+ .display-80-400 {
549
+ @apply font-normal text-[5rem] leading-[6.5rem];
550
+ }
551
+
552
+ .display-60-700 {
553
+ @apply font-bold text-[3.75rem] leading-[4.750rem];
554
+ }
555
+
556
+ .display-60-400 {
557
+ @apply font-normal text-[3.75rem] leading-[4.750rem];
558
+ }
559
+
560
+ .display-48-700 {
561
+ @apply font-bold text-[3rem] leading-[4rem];
562
+ }
563
+
564
+ .display-48-400 {
565
+ @apply font-normal text-[3rem] leading-[4rem];
566
+ }
567
+
568
+ .numbers-60-700 {
569
+ @apply font-bold text-[3.75rem] leading-[3.5rem];
570
+ }
571
+
572
+ .numbers-60-400 {
573
+ @apply font-normal text-[3.75rem] leading-[3.5rem];
574
+ }
575
+
576
+ .numbers-40-700 {
577
+ @apply font-bold text-[2.5rem] leading-[3.375rem];
578
+ }
579
+
580
+ .numbers-40-400 {
581
+ @apply font-normal text-[2.5rem] leading-[3.375rem];
582
+ }
583
+ }