adata-ui 2.1.0 → 2.1.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 (307) hide show
  1. package/.editorconfig +12 -12
  2. package/.nuxtrc +1 -1
  3. package/.playground/app.config.ts +5 -5
  4. package/README.md +75 -75
  5. package/app.config.ts +4 -3
  6. package/app.vue +1 -0
  7. package/assets/styles/index.scss +104 -0
  8. package/assets/styles/modules/_base.scss +5 -0
  9. package/assets/styles/modules/_typography.scss +152 -0
  10. package/components/elements/README.md +1 -1
  11. package/components/elements/accordion/AAccordion.vue +13 -12
  12. package/components/elements/curve-block/ACurveBlock.vue +94 -19
  13. package/components/elements/feature-description/AFeatureDescription.vue +4 -4
  14. package/components/elements/illustrations/noAccess.vue +11 -2
  15. package/components/elements/photos-animation/APhotosAnimation.vue +3 -1
  16. package/components/elements/select/ASelect.vue +65 -9
  17. package/components/features/lang-switcher/lang-switcher.vue +8 -1
  18. package/components/features/payment/banner/BasicPlusLimitBanner.vue +104 -0
  19. package/components/features/payment/banner/PaymentBanner.vue +108 -0
  20. package/components/features/payment/process/PaymentKaspiQrSidePanel.vue +158 -0
  21. package/components/features/payment/process/PaymentKaspiRedirectSidePanel.vue +112 -0
  22. package/components/features/payment/process/PaymentMethodSidePanel.vue +121 -0
  23. package/components/features/payment/process/PaymentProcess.vue +138 -0
  24. package/components/features/payment/process/PaymentTopUpSidePanel.vue +130 -0
  25. package/components/features/pk-mobile-services/APkMobileServices.vue +21 -2
  26. package/components/forms/README.md +1 -1
  27. package/components/forms/checkbox/ACheckbox.vue +0 -2
  28. package/components/forms/radio-button/ARadioButton.vue +21 -13
  29. package/components/forms/request-demo/ARequestDemo.vue +21 -7
  30. package/components/modals/AConfirmationEmail.vue +40 -0
  31. package/components/modals/AnotherDeviceModal.vue +3 -2
  32. package/components/modals/ConnectingTariffModal.vue +0 -1
  33. package/components/modals/ContentNavigationModal.vue +148 -75
  34. package/components/modals/Insufficient-funds-modal.vue +5 -2
  35. package/components/modals/LimitReachedModal.vue +4 -3
  36. package/components/modals/ReportBugModal.vue +3 -3
  37. package/components/modals/Resend.vue +82 -0
  38. package/components/modals/SubmitApplicationModal.vue +4 -0
  39. package/components/modals/id/AuthModal.vue +78 -0
  40. package/components/modals/id/IdAutoLogoutModal.vue +45 -0
  41. package/components/modals/id/IdBanner.vue +58 -0
  42. package/components/modals/id/IdConfirmAccountOtpModal.vue +186 -0
  43. package/components/modals/id/IdConfirmSuccessfulModal.vue +41 -0
  44. package/components/modals/id/IdLoginModal.vue +316 -0
  45. package/components/modals/id/IdModals.vue +114 -0
  46. package/components/modals/id/IdNewPasswordModal.vue +129 -0
  47. package/components/modals/id/IdOtpInput.vue +155 -0
  48. package/components/modals/id/IdPasswordSuccessfulModal.vue +25 -0
  49. package/components/modals/id/IdRecoveryModal.vue +117 -0
  50. package/components/modals/id/IdRegistrationModal.vue +215 -0
  51. package/components/modals/id/IdResetPasswordOtpModal.vue +158 -0
  52. package/components/modals/id/IdTwoFactorModal.vue +130 -0
  53. package/components/navigation/README.md +1 -1
  54. package/components/navigation/bottom-navigation/ABottomNavigation.vue +34 -29
  55. package/components/navigation/footer/AFooter.vue +210 -57
  56. package/components/navigation/footer/ui/{new-footer-accordion.vue → a-footer-accordion.vue} +2 -4
  57. package/components/navigation/header/AHeader.vue +59 -51
  58. package/components/navigation/header/AlmatyContacts.vue +16 -14
  59. package/components/navigation/header/AstanaContacts.vue +13 -11
  60. package/components/navigation/header/CardGallery.vue +5 -4
  61. package/components/navigation/header/HeaderLink.vue +16 -8
  62. package/components/navigation/header/NavList.vue +21 -5
  63. package/components/navigation/header/ProductMenu.vue +8 -78
  64. package/components/navigation/header/ProfileMenu.vue +10 -5
  65. package/components/navigation/header/TopHeader.vue +2 -2
  66. package/components/navigation/mobile-navigation/AMobileNavigation.vue +3 -3
  67. package/components/navigation/pill-tabs/APillTabs.vue +18 -4
  68. package/components/navigation/pill-tabs/types.ts +1 -0
  69. package/components/navigation/side-navigation/ASideNavigation.vue +23 -21
  70. package/components/overlays/README.md +1 -1
  71. package/components/overlays/side-panel/ASidePanel.vue +439 -0
  72. package/components/overlays/tooltip/ATooltip.vue +149 -154
  73. package/components/utils/removeTrailingSlash.ts +7 -0
  74. package/composables/useBuyTariffs.ts +91 -0
  75. package/composables/useHeaderNavigationLinks.ts +174 -297
  76. package/composables/useIdModals.ts +36 -0
  77. package/composables/usePayment.ts +74 -0
  78. package/composables/useUrls.ts +21 -0
  79. package/eslint.config.mjs +45 -0
  80. package/icons/adata-logo.vue +1 -1
  81. package/icons/ai-assistant.vue +13 -0
  82. package/icons/akimat.vue +20 -0
  83. package/icons/arrow/arrow-bottom-left-on-square.vue +1 -1
  84. package/icons/arrow/arrow-circle-reset.vue +1 -1
  85. package/icons/arrow/arrow-corner.vue +1 -1
  86. package/icons/arrow/arrow-graph-down.vue +1 -1
  87. package/icons/arrow/arrow-graph-up.vue +1 -1
  88. package/icons/arrow/arrow-square-down.vue +1 -1
  89. package/icons/arrow/arrow-top-right-on-square.vue +1 -1
  90. package/icons/arrow-currency-gray.vue +1 -1
  91. package/icons/arrow-currency-green.vue +1 -1
  92. package/icons/arrow-currency-red.vue +1 -1
  93. package/icons/avatar.vue +1 -1
  94. package/icons/bank.vue +5 -0
  95. package/icons/block.vue +1 -1
  96. package/icons/bookmark/bookmark-filled.vue +1 -1
  97. package/icons/bookmark/bookmark.vue +1 -1
  98. package/icons/browsers/browser-duck.vue +1 -1
  99. package/icons/browsers/browser-google.vue +7 -1
  100. package/icons/browsers/browser-yandex.vue +1 -1
  101. package/icons/building-vector.vue +1 -1
  102. package/icons/calculator.vue +1 -1
  103. package/icons/calendar.vue +1 -1
  104. package/icons/car.vue +1 -1
  105. package/icons/chart-bar.vue +5 -0
  106. package/icons/chart-pie.vue +16 -0
  107. package/icons/check/check-circle.vue +1 -1
  108. package/icons/check/check.vue +1 -1
  109. package/icons/check/checkmark-circle.vue +1 -1
  110. package/icons/check-sb.vue +7 -0
  111. package/icons/checkbox/checkbox-active.vue +1 -1
  112. package/icons/checkbox/checkbox-empty.vue +1 -1
  113. package/icons/checkbox/checkbox-intermediate.vue +1 -1
  114. package/icons/chevron/chevron-down.vue +1 -1
  115. package/icons/chevron/chevron-left.vue +1 -1
  116. package/icons/chevron/chevron-right.vue +1 -1
  117. package/icons/chevron/chevron-up.vue +1 -1
  118. package/icons/chevron/double-chevron-right.vue +1 -1
  119. package/icons/clipboard-text.vue +1 -1
  120. package/icons/clock.vue +1 -1
  121. package/icons/company/company-bazis.vue +3 -3
  122. package/icons/company/company-bereke.vue +13 -13
  123. package/icons/company/company-bigroup.vue +5 -5
  124. package/icons/company/company-erg.vue +6 -6
  125. package/icons/company/company-forte.vue +11 -11
  126. package/icons/company/company-halyk.vue +4 -4
  127. package/icons/company/company-jusan.vue +20 -3
  128. package/icons/company/company-kaspi.vue +3 -3
  129. package/icons/company/company-mycar.vue +2 -2
  130. package/icons/company/company-samruk.vue +9 -9
  131. package/icons/company-egov-small.vue +1 -1
  132. package/icons/company.vue +1 -1
  133. package/icons/copy.vue +1 -1
  134. package/icons/currency/currency-dollar.vue +1 -1
  135. package/icons/currency/currency-down.vue +1 -1
  136. package/icons/currency/currency-eur.vue +1 -1
  137. package/icons/currency/currency-rub.vue +1 -1
  138. package/icons/currency/currency-tenge.vue +9 -0
  139. package/icons/currency/currency-usd.vue +1 -1
  140. package/icons/currency/currency-yuan.vue +1 -1
  141. package/icons/delete.vue +1 -1
  142. package/icons/document.vue +1 -1
  143. package/icons/download.vue +1 -1
  144. package/icons/edit.vue +1 -1
  145. package/icons/education.vue +1 -1
  146. package/icons/egov-small.vue +1 -1
  147. package/icons/excel-icon.vue +14 -0
  148. package/icons/expand-window.vue +1 -1
  149. package/icons/eye-closed.vue +1 -1
  150. package/icons/eye-open.vue +1 -1
  151. package/icons/eye-opened.vue +1 -1
  152. package/icons/file/file.vue +1 -1
  153. package/icons/filter.vue +1 -1
  154. package/icons/flag.vue +1 -1
  155. package/icons/gift.vue +1 -1
  156. package/icons/globe.vue +1 -1
  157. package/icons/google.vue +41 -0
  158. package/icons/hand/hand-thumb-up-filled.vue +1 -1
  159. package/icons/hand/hand-thumb-up.vue +1 -1
  160. package/icons/hand-with-phone/hand-with-phone-dark.vue +1 -1
  161. package/icons/hand-with-phone/hand-with-phone-light.vue +1 -1
  162. package/icons/handshake.vue +1 -1
  163. package/icons/hcheck.vue +1 -1
  164. package/icons/hdocument.vue +1 -1
  165. package/icons/history.vue +1 -1
  166. package/icons/horizontal-more.vue +1 -1
  167. package/icons/hot-line.vue +6 -0
  168. package/icons/hummer.vue +1 -1
  169. package/icons/info/info-circle.vue +1 -1
  170. package/icons/invoice.vue +1 -1
  171. package/icons/kaspi-qr.vue +13 -0
  172. package/icons/link-chain.vue +1 -1
  173. package/icons/link.vue +1 -1
  174. package/icons/linkedin.vue +24 -24
  175. package/icons/loader-circle.vue +1 -1
  176. package/icons/location.vue +1 -1
  177. package/icons/lock.vue +1 -1
  178. package/icons/logo.vue +1 -1
  179. package/icons/logout.vue +1 -1
  180. package/icons/magnify/magnifying-glass-minus.vue +1 -1
  181. package/icons/magnify/magnifying-glass-plus.vue +1 -1
  182. package/icons/magnify/magnifying-glass.vue +1 -1
  183. package/icons/mail.vue +1 -1
  184. package/icons/mailru.vue +34 -0
  185. package/icons/main-filter.vue +1 -1
  186. package/icons/map/map-pin-filled.vue +1 -1
  187. package/icons/map/map-pin-rect.vue +1 -1
  188. package/icons/map/map-pin.vue +1 -1
  189. package/icons/map-marker-start.vue +1 -1
  190. package/icons/medal.vue +1 -1
  191. package/icons/menu-filled.vue +1 -1
  192. package/icons/menu.vue +1 -1
  193. package/icons/message/message.vue +1 -1
  194. package/icons/minus/minus-circle.vue +1 -1
  195. package/icons/money.vue +1 -1
  196. package/icons/monitoring.vue +1 -1
  197. package/icons/moon.vue +1 -1
  198. package/icons/more.vue +1 -1
  199. package/icons/notification.vue +1 -1
  200. package/icons/paperclip.vue +1 -1
  201. package/icons/payment/payment-card.vue +1 -1
  202. package/icons/payment/payment-kaspi.vue +1 -1
  203. package/icons/person-vector.vue +1 -1
  204. package/icons/person-with-briefcase.vue +1 -1
  205. package/icons/phone-filled.vue +1 -1
  206. package/icons/phone.vue +1 -1
  207. package/icons/plus/plus-circle.vue +1 -1
  208. package/icons/plus/plus.vue +1 -1
  209. package/icons/profile.vue +1 -1
  210. package/icons/radio/radio-check.vue +1 -1
  211. package/icons/radio/radio-empty.vue +1 -1
  212. package/icons/receipt.vue +1 -1
  213. package/icons/sanctions.vue +8 -0
  214. package/icons/scales/scale.vue +1 -1
  215. package/icons/scales/scales.vue +1 -1
  216. package/icons/scales/standing-scales.vue +1 -1
  217. package/icons/search.vue +1 -1
  218. package/icons/share/share-alt.vue +1 -1
  219. package/icons/share/share.vue +1 -1
  220. package/icons/socials/face-book.vue +1 -1
  221. package/icons/socials/instagram.vue +1 -1
  222. package/icons/socials/telegram.vue +1 -1
  223. package/icons/socials/tik-tok.vue +1 -1
  224. package/icons/socials/youtube.vue +1 -1
  225. package/icons/sort/sort-asc.vue +1 -1
  226. package/icons/sort/sort-desc.vue +1 -1
  227. package/icons/splitting-arrows.vue +1 -1
  228. package/icons/star/star-filled.vue +1 -1
  229. package/icons/star/star-half-filled.vue +1 -1
  230. package/icons/star/star.vue +1 -1
  231. package/icons/sun.vue +14 -14
  232. package/icons/sviazi.vue +1 -1
  233. package/icons/tag.vue +1 -1
  234. package/icons/tasks.vue +10 -0
  235. package/icons/tender-search.vue +1 -1
  236. package/icons/toasts/check-circle-toast.vue +1 -1
  237. package/icons/toasts/warning-triangle-toast.vue +1 -1
  238. package/icons/trash.vue +1 -1
  239. package/icons/triangle.vue +1 -1
  240. package/icons/truck.vue +1 -1
  241. package/icons/user.vue +1 -1
  242. package/icons/users-focus.vue +1 -1
  243. package/icons/users.vue +1 -1
  244. package/icons/warning/warning-circle.vue +1 -1
  245. package/icons/warning/warning-triangle-filled.vue +1 -1
  246. package/icons/warning/warning-triangle.vue +1 -1
  247. package/icons/whatsapp.vue +1 -1
  248. package/icons/work-bag.vue +1 -1
  249. package/icons/work-case.vue +9 -0
  250. package/icons/work-search.vue +1 -1
  251. package/icons/work.vue +1 -1
  252. package/icons/x-mark.vue +1 -1
  253. package/icons/yandex.vue +28 -0
  254. package/illustrations/address-location.vue +1 -1
  255. package/illustrations/ball-with-chain.vue +1 -1
  256. package/illustrations/bill.vue +1 -1
  257. package/illustrations/buildings.vue +1 -1
  258. package/illustrations/calendar.vue +1 -1
  259. package/illustrations/chains.vue +1 -1
  260. package/illustrations/coin-percent.vue +1 -1
  261. package/illustrations/coins-stack.vue +1 -1
  262. package/illustrations/delete-dark.vue +1 -1
  263. package/illustrations/delete.vue +1 -1
  264. package/illustrations/doc-with-stamp.vue +1 -1
  265. package/illustrations/document.vue +1 -1
  266. package/illustrations/door.vue +1 -1
  267. package/illustrations/empty-box.vue +1 -1
  268. package/illustrations/empty-wallet.vue +1 -1
  269. package/illustrations/graph-in-coin.vue +1 -1
  270. package/illustrations/hammer.vue +1 -1
  271. package/illustrations/hand-cash.vue +1 -1
  272. package/illustrations/info.vue +1 -1
  273. package/illustrations/mail.vue +1 -1
  274. package/illustrations/ok.vue +1 -1
  275. package/illustrations/people-group.vue +1 -1
  276. package/illustrations/person-with-phone.vue +1 -1
  277. package/illustrations/person.vue +1 -1
  278. package/illustrations/phone-check.vue +1 -1
  279. package/illustrations/phone-payment-method.vue +1 -1
  280. package/illustrations/stop-hand.vue +1 -1
  281. package/illustrations/stop-sign.vue +1 -1
  282. package/illustrations/suit.vue +1 -1
  283. package/illustrations/suitcase.vue +1 -1
  284. package/illustrations/terminal-dark.vue +1 -1
  285. package/illustrations/terminal.vue +1 -1
  286. package/illustrations/trash-can.vue +1 -1
  287. package/illustrations/turn-on-tariff.vue +1 -1
  288. package/illustrations/two-persons.vue +1 -1
  289. package/lang/en.ts +475 -270
  290. package/lang/kk.ts +476 -271
  291. package/lang/ru.ts +315 -107
  292. package/layouts/default.vue +13 -13
  293. package/nuxt.config.ts +42 -14
  294. package/package.json +69 -53
  295. package/public/kaspi/logo.svg +4 -0
  296. package/shared/constans/pages.ts +17 -2
  297. package/tailwind.config.ts +163 -0
  298. package/vitest.config.ts +14 -0
  299. package/.eslintrc.cjs +0 -4
  300. package/.playground/app.vue +0 -9
  301. package/.playground/pages/index.vue +0 -13
  302. package/.prettierignore +0 -24
  303. package/.prettierrc +0 -10
  304. package/assets/styles/index.css +0 -226
  305. package/components/modals/AuthModal.vue +0 -50
  306. package/components/navigation/footer/NewFooter.vue +0 -276
  307. package/components/navigation/footer/ui/footer-acccordion.vue +0 -119
package/.editorconfig CHANGED
@@ -1,12 +1,12 @@
1
- root = true
2
-
3
- [*]
4
- indent_size = 2
5
- indent_style = space
6
- end_of_line = lf
7
- charset = utf-8
8
- trim_trailing_whitespace = true
9
- insert_final_newline = true
10
-
11
- [*.md]
12
- trim_trailing_whitespace = false
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = space
5
+ indent_size = 2
6
+ end_of_line = lf
7
+ charset = utf-8
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+
11
+ [*.md]
12
+ trim_trailing_whitespace = false
package/.nuxtrc CHANGED
@@ -1 +1 @@
1
- typescript.includeWorkspace = true
1
+ typescript.includeWorkspace = true
@@ -1,5 +1,5 @@
1
- export default defineAppConfig({
2
- myLayer: {
3
- name: 'My amazing Nuxt layer (overwritten)'
4
- }
5
- })
1
+ export default defineAppConfig({
2
+ myLayer: {
3
+ name: 'My amazing Nuxt layer (overwritten)'
4
+ }
5
+ })
package/README.md CHANGED
@@ -1,75 +1,75 @@
1
- # Adata UI with Nuxt 3 using Layers
2
-
3
- Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
4
-
5
- ## Setup
6
-
7
- Make sure to install the dependencies:
8
-
9
- ```bash
10
- # npm
11
- npm install
12
-
13
- # pnpm
14
- pnpm install
15
-
16
- # yarn
17
- yarn install
18
-
19
- # bun
20
- bun install
21
- ```
22
-
23
- ## Development Server
24
-
25
- Start the development server on `https://localhost:3000`:
26
-
27
- ```bash
28
- # npm
29
- npm run dev
30
-
31
- # pnpm
32
- pnpm run dev
33
-
34
- # yarn
35
- yarn dev
36
-
37
- # bun
38
- bun run dev
39
- ```
40
-
41
- ## Production
42
-
43
- Build the application for production:
44
-
45
- ```bash
46
- # npm
47
- npm run build
48
-
49
- # pnpm
50
- pnpm run build
51
-
52
- # yarn
53
- yarn build
54
-
55
- # bun
56
- bun run build
57
- ```
58
-
59
- Locally preview production build:
60
-
61
- ```bash
62
- # npm
63
- npm run preview
64
-
65
- # pnpm
66
- pnpm run preview
67
-
68
- # yarn
69
- yarn preview
70
-
71
- # bun
72
- bun run preview
73
- ```
74
-
75
- Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
1
+ # Adata UI with Nuxt 3 using Layers
2
+
3
+ Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
4
+
5
+ ## Setup
6
+
7
+ Make sure to install the dependencies:
8
+
9
+ ```bash
10
+ # npm
11
+ npm install
12
+
13
+ # pnpm
14
+ pnpm install
15
+
16
+ # yarn
17
+ yarn install
18
+
19
+ # bun
20
+ bun install
21
+ ```
22
+
23
+ ## Development Server
24
+
25
+ Start the development server on `https://localhost:3000`:
26
+
27
+ ```bash
28
+ # npm
29
+ npm run dev
30
+
31
+ # pnpm
32
+ pnpm run dev
33
+
34
+ # yarn
35
+ yarn dev
36
+
37
+ # bun
38
+ bun run dev
39
+ ```
40
+
41
+ ## Production
42
+
43
+ Build the application for production:
44
+
45
+ ```bash
46
+ # npm
47
+ npm run build
48
+
49
+ # pnpm
50
+ pnpm run build
51
+
52
+ # yarn
53
+ yarn build
54
+
55
+ # bun
56
+ bun run build
57
+ ```
58
+
59
+ Locally preview production build:
60
+
61
+ ```bash
62
+ # npm
63
+ npm run preview
64
+
65
+ # pnpm
66
+ pnpm run preview
67
+
68
+ # yarn
69
+ yarn preview
70
+
71
+ # bun
72
+ bun run preview
73
+ ```
74
+
75
+ Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
package/app.config.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export default defineAppConfig({
2
2
  myLayer: {
3
- name: 'Adata UI v2'
4
- }
3
+ name: 'Adata UI v2',
4
+ },
5
5
  })
6
6
 
7
7
  declare module '@nuxt/schema' {
@@ -13,7 +13,6 @@ declare module '@nuxt/schema' {
13
13
  oldVersion?: string
14
14
  landingUrl?: string
15
15
  pkUrl?: string
16
- oldPkUrl?: string
17
16
  tenderUrl?: string
18
17
  workUrl?: string
19
18
  avtoUrl?: string
@@ -22,6 +21,8 @@ declare module '@nuxt/schema' {
22
21
  complianceUrl?: string
23
22
  counterParty?: string
24
23
  langIsOn?: boolean
24
+ authMode?: 'local' | 'separate'
25
+ cloudPayments?: string
25
26
  }
26
27
  }
27
28
  }
package/app.vue CHANGED
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <nuxt-layout>
3
+ <a-header />
3
4
  <nuxt-page></nuxt-page>
4
5
  </nuxt-layout>
5
6
  </template>
@@ -0,0 +1,104 @@
1
+
2
+ @use './modules/typography' as *;
3
+ @use "./modules/base" as *;
4
+
5
+ @tailwind base;
6
+ @tailwind components;
7
+ @tailwind utilities;
8
+
9
+
10
+ html {
11
+ scrollbar-gutter: stable;
12
+ }
13
+
14
+ .dark {
15
+ color-scheme: dark;
16
+ }
17
+
18
+ body {
19
+ padding: 0 !important;
20
+ color: #2C3E50;
21
+ background-color: #F4F5F6;
22
+ }
23
+
24
+ .dark body {
25
+ color: #E3E5E8;
26
+ background-color: #161617;
27
+ }
28
+
29
+ html::-webkit-scrollbar {
30
+ width: 15px;
31
+ }
32
+
33
+ html::-webkit-scrollbar-thumb {
34
+ background: #c4c4c4;
35
+ }
36
+
37
+ .no-scrollbar::-webkit-scrollbar {
38
+ display: none;
39
+ }
40
+
41
+ /* Hide scrollbar for IE, Edge and Firefox */
42
+ .no-scrollbar {
43
+ -ms-overflow-style: none; /* IE and Edge */
44
+ scrollbar-width: none; /* Firefox */
45
+ }
46
+
47
+ @media (min-width: 320px) and (max-width: 767px) {
48
+ .a-container {
49
+ padding: 0
50
+ }
51
+ .mobile-padding {
52
+ padding: 16px;
53
+ }
54
+ }
55
+ @media (prefers-color-scheme: dark) {
56
+ .bg-gradient-blue {
57
+ background: linear-gradient(236.46deg, #4FBDFF -2.39%, #1B98E2 79.1%);
58
+ }
59
+ }
60
+ @media (prefers-color-scheme: light) {
61
+ .bg-gradient-blue {
62
+ background: linear-gradient(236.46deg, #479FFF -2.39%, #0070EB 79.1%);
63
+ }
64
+ }
65
+
66
+ input::-webkit-outer-spin-button,
67
+ input::-webkit-inner-spin-button {
68
+ -webkit-appearance: none;
69
+ margin: 0;
70
+ }
71
+ .toast__body{
72
+ padding:0 16px 0 0 !important;
73
+ margin:0 !important;
74
+ align-items: stretch !important;
75
+ }
76
+ .Toastify__toast-container {
77
+ z-index: 10002 !important;
78
+ }
79
+ input[type="search"]::-webkit-search-cancel-button {
80
+ -webkit-appearance: none;
81
+ appearance: none;
82
+ }
83
+ input[type="search"]::-ms-clear {
84
+ display: none;
85
+ width: 0;
86
+ height: 0;
87
+ }
88
+ /* Firefox */
89
+ input[type=number] {
90
+ -moz-appearance: textfield;
91
+ }
92
+
93
+ .visually-hidden {
94
+ position: absolute;
95
+ width: 1px;
96
+ height: 1px;
97
+ margin: -1px;
98
+ border: 0;
99
+ padding: 0;
100
+ white-space: nowrap;
101
+ clip-path: inset(100%);
102
+ clip: rect(0 0 0 0);
103
+ overflow: hidden;
104
+ }
@@ -0,0 +1,5 @@
1
+ @layer components {
2
+ .a-container {
3
+ @apply container mx-auto px-4 2xl:px-16;
4
+ }
5
+ }
@@ -0,0 +1,152 @@
1
+ // Visit https://www.figma.com/file/nJY45RLoow0IsmpMZ35aTR/DE blue-defaultSIGN-SYSTEM-NEW?type=design&node-id=619-53613&mode=design&t=tY2NLdArlQhUP9d3-0
2
+ // for more information on typography styles
3
+ // And see https://tailwindcss.com/docs/adding-custom-styles for more information on adding custom styles
4
+
5
+ @layer components {
6
+
7
+ // Headings
8
+ .heading-01 {
9
+ @apply font-bold text-[2rem] leading-10;
10
+ }
11
+
12
+ .heading-02 {
13
+ @apply font-bold text-2xl leading-8;
14
+ }
15
+
16
+ .heading-03 {
17
+ @apply font-semibold text-xl leading-6;
18
+ }
19
+
20
+ .heading-04 {
21
+ @apply font-semibold text-base leading-5;
22
+ }
23
+
24
+ .heading-05 {
25
+ @apply font-semibold text-sm leading-5;
26
+ }
27
+
28
+ // Body
29
+ .body-400 {
30
+ @apply font-normal text-sm leading-5;
31
+ }
32
+
33
+ .body-500 {
34
+ @apply font-medium text-sm leading-5;
35
+ }
36
+
37
+ .body-600 {
38
+ @apply font-semibold text-sm leading-5
39
+ }
40
+
41
+ .body-s-400 {
42
+ @apply font-normal text-sm leading-4;
43
+ }
44
+
45
+ .body-s-500 {
46
+ @apply font-medium text-sm leading-4;
47
+ }
48
+
49
+ // Caption
50
+ .caption-400 {
51
+ @apply font-normal text-[0.625rem] leading-4;
52
+ }
53
+
54
+ .caption-500 {
55
+ @apply font-medium text-[0.625rem] leading-4;
56
+ }
57
+
58
+ .caption-700 {
59
+ @apply font-bold text-[0.625rem] leading-4;
60
+ }
61
+
62
+ // Form
63
+ .label-400 {
64
+ @apply font-normal text-sm leading-5;
65
+ }
66
+
67
+ .label-600 {
68
+ @apply font-semibold text-sm leading-5;
69
+ }
70
+
71
+ .label-s-400 {
72
+ @apply font-normal text-xs leading-4;
73
+ }
74
+
75
+ .label-s-700 {
76
+ @apply font-bold text-xs leading-4;
77
+ }
78
+
79
+ .optional-i-700 {
80
+ @apply font-bold italic text-sm leading-5;
81
+ }
82
+
83
+ .placeholder-300 {
84
+ @apply font-light text-sm leading-5;
85
+ }
86
+
87
+ .description-400 {
88
+ @apply font-normal text-xs leading-5;
89
+ }
90
+
91
+ // Link
92
+ .link-400 {
93
+ @apply text-blue-500 font-normal text-sm leading-5;
94
+ }
95
+
96
+ .link-stroke-400 {
97
+ @apply text-blue-500 font-normal text-sm leading-5;
98
+ }
99
+
100
+ .link-s-400 {
101
+ @apply text-blue-500 font-normal text-sm leading-4;
102
+ }
103
+
104
+ .link-s-stroke-400 {
105
+ @apply text-blue-500 font-normal text-sm leading-4;
106
+ }
107
+
108
+ .link-small-800 {
109
+ @apply text-blue-500 font-bold text-sm leading-4;
110
+ }
111
+
112
+ // Special Styles
113
+ .display-80-700 {
114
+ @apply font-bold text-[5rem] leading-[6.5rem];
115
+ }
116
+
117
+ .display-80-400 {
118
+ @apply font-normal text-[5rem] leading-[6.5rem];
119
+ }
120
+
121
+ .display-60-700 {
122
+ @apply font-bold text-[3.75rem] leading-[4.750rem];
123
+ }
124
+
125
+ .display-60-400 {
126
+ @apply font-normal text-[3.75rem] leading-[4.750rem];
127
+ }
128
+
129
+ .display-48-700 {
130
+ @apply font-bold text-[3rem] leading-[4rem];
131
+ }
132
+
133
+ .display-48-400 {
134
+ @apply font-normal text-[3rem] leading-[4rem];
135
+ }
136
+
137
+ .numbers-60-700 {
138
+ @apply font-bold text-[3.75rem] leading-[3.5rem];
139
+ }
140
+
141
+ .numbers-60-400 {
142
+ @apply font-normal text-[3.75rem] leading-[3.5rem];
143
+ }
144
+
145
+ .numbers-40-700 {
146
+ @apply font-bold text-[2.5rem] leading-[3.375rem];
147
+ }
148
+
149
+ .numbers-40-400 {
150
+ @apply font-normal text-[2.5rem] leading-[3.375rem];
151
+ }
152
+ }
@@ -1 +1 @@
1
- # button, alerts, dropdown
1
+ # button, alerts, dropdown
@@ -86,23 +86,24 @@ function updateState() {
86
86
  isOpen.value = !!state
87
87
  }
88
88
  }
89
+ let observer: MutationObserver | null = null
89
90
 
90
91
  onMounted(() => {
91
- if (accordion.value) {
92
- updateState()
92
+ if (!accordion.value) return
93
93
 
94
- const observer = new MutationObserver(() => {
95
- updateState()
96
- })
94
+ updateState()
97
95
 
98
- observer.observe(accordion.value?.el, {
99
- attributes: true,
100
- attributeFilter: ['data-headlessui-state']
101
- })
96
+ observer = new MutationObserver(updateState)
97
+ observer.observe(accordion.value.el, {
98
+ attributes: true,
99
+ attributeFilter: ['data-headlessui-state']
100
+ })
101
+ })
102
102
 
103
- onBeforeUnmount(() => {
104
- observer.disconnect()
105
- })
103
+ onBeforeUnmount(() => {
104
+ if (observer) {
105
+ observer.disconnect()
106
+ observer = null
106
107
  }
107
108
  })
108
109
 
@@ -6,6 +6,7 @@ const props = defineProps<{
6
6
  title: string
7
7
  description: string
8
8
  to?: string
9
+ wide?: boolean
9
10
  }>()
10
11
  </script>
11
12
 
@@ -13,12 +14,59 @@ const props = defineProps<{
13
14
  <component
14
15
  :is="to ? NuxtLinkLocale : 'button'"
15
16
  :to="to"
16
- class="curve-block relative w-fit cursor-pointer"
17
+ class="curve-block relative w-full cursor-pointer"
17
18
  active-class="active-item"
18
19
  >
19
20
  <svg
20
- width="306"
21
- height="182"
21
+ v-if="wide"
22
+ class="w-full"
23
+ viewBox="-2 -4 416 188"
24
+ fill="none"
25
+ preserveAspectRatio="none"
26
+ xmlns="http://www.w3.org/2000/svg"
27
+ >
28
+ <path
29
+ class="border-path border-path--large"
30
+ 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"
31
+ stroke-width="2"
32
+ fill="transparent"
33
+ />
34
+ <defs>
35
+ <linearGradient
36
+ id="gradient-light"
37
+ x1="164.372"
38
+ y1="-137.957"
39
+ x2="-20.5433"
40
+ y2="68.1723"
41
+ gradientUnits="userSpaceOnUse"
42
+ >
43
+ <stop stop-color="#479FFF" />
44
+ <stop
45
+ offset="1"
46
+ stop-color="#0070EB"
47
+ />
48
+ </linearGradient>
49
+
50
+ <linearGradient
51
+ id="gradient-dark"
52
+ x1="164.372"
53
+ y1="-137.957"
54
+ x2="-20.5433"
55
+ y2="68.1723"
56
+ gradientUnits="userSpaceOnUse"
57
+ >
58
+ <stop stop-color="#4FBDFF" />
59
+ <stop
60
+ offset="1"
61
+ stop-color="#1B98E2"
62
+ />
63
+ </linearGradient>
64
+ </defs>
65
+ </svg>
66
+
67
+ <svg
68
+ v-else
69
+ class="w-full"
22
70
  viewBox="-1 -1 308 184"
23
71
  xmlns="http://www.w3.org/2000/svg"
24
72
  >
@@ -62,26 +110,24 @@ const props = defineProps<{
62
110
  </svg>
63
111
 
64
112
  <div class="absolute left-6 top-6 flex flex-col gap-4 pr-6">
65
- <div class="flex items-center gap-2">
66
- <div class="rounded-sm bg-deepblue-900/5 dark:bg-gray-200/5 p-1">
113
+ <div class="flex items-center gap-2 title">
114
+ <div class="rounded-[4px] icon-item bg-deepblue-900/5 dark:bg-gray-200/5 p-1">
67
115
  <component
68
116
  :is="icon"
69
117
  class="size-6 shrink-0"
70
118
  />
71
119
  </div>
72
- <p class="text-base font-semibold">
120
+ <p class="text-base font-semibold">
73
121
  {{ title }}
74
122
  </p>
75
123
  </div>
76
- <p class="text-sm text-gray-600 dark:text-gray-200">
124
+ <p class="text-left text-sm text-gray-600 dark:text-gray-200">
77
125
  {{ description }}
78
126
  </p>
79
127
  </div>
80
128
 
81
129
  <svg
82
- class="absolute bottom-0 right-0"
83
- width="48"
84
- height="48"
130
+ class="absolute bottom-0 right-0 size-12 2xl:size-14"
85
131
  viewBox="0 0 48 48"
86
132
  xmlns="http://www.w3.org/2000/svg"
87
133
  >
@@ -151,18 +197,27 @@ const props = defineProps<{
151
197
  fill: #F4F5F6;
152
198
  }
153
199
 
200
+ .border-path--large {
201
+ stroke-dasharray: 1400;
202
+ stroke-dashoffset: 1400;
203
+ }
204
+
154
205
  .animated-border {
155
206
  stroke-dasharray: 180;
156
207
  stroke-dashoffset: 180;
157
208
  fill: #F4F5F6;
158
209
  }
159
210
 
160
-
161
- .active-item .border-path,
162
- .active-item .animated-border {
163
- stroke-dashoffset: 0;
164
- fill: white;
211
+ .active-item .title {
212
+ color: #0070EB;
165
213
  }
214
+ .active-item .border-path {
215
+ fill: #0070EB1A;
216
+ }
217
+ .active-item .icon-item {
218
+ background: #2C3E500D;
219
+ }
220
+
166
221
  .curve-block:hover .border-path,
167
222
  .curve-block:hover .animated-border {
168
223
  transition: stroke-dashoffset 2s ease, fill 2s ease;
@@ -170,6 +225,12 @@ const props = defineProps<{
170
225
  fill: white;
171
226
  }
172
227
 
228
+ .curve-block:hover .icon-item {
229
+ background-color: #E0EFFF;
230
+ color: #0070EB;
231
+ transition: all 2s ease, fill 2s ease;
232
+ }
233
+
173
234
  .border-path {
174
235
  stroke: url(#gradient-light);
175
236
  }
@@ -196,12 +257,26 @@ const props = defineProps<{
196
257
  fill: #26282b;
197
258
  }
198
259
 
199
- .active-item .border-path,
200
- .active-item .animated-border {
201
- stroke-dashoffset: 0;
202
- fill: #131415;
260
+ .active-item .title {
261
+ color: #1b98e2;
262
+ }
263
+
264
+ .active-item .border-path {
265
+ fill: #1B98E21A;
266
+ }
267
+
268
+ .active-item .icon-item {
269
+ background: #E3E5E80D;
203
270
  }
204
271
 
272
+
273
+ .curve-block:hover .icon-item {
274
+ background-color: rgba(30, 88, 156, 0.6);
275
+ color: #1b98e2;
276
+ transition: all 2s ease, fill 2s ease;
277
+ }
278
+
279
+
205
280
  .curve-block:hover .border-path,
206
281
  .curve-block:hover .animated-border {
207
282
  fill: #131415;