From b3c99a667a7380a489c2c35d1fddf52de0290e4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=9A=D1=80=D1=83?= =?UTF-8?q?=D0=B3=D0=BB=D0=B8=D1=86=D0=BA=D0=B8=D0=B9?= Date: Tue, 26 Nov 2024 16:15:12 +0300 Subject: [PATCH] Initial commit --- .gitignore | 24 + README.md | 9 + app.vue | 37 + assets/icons/duo/flip-chart.svg | 6 + assets/icons/duo/group-chat.svg | 4 + assets/icons/duo/lightning.svg | 11 + assets/icons/duo/mail.svg | 4 + assets/icons/duo/phone.svg | 12 + assets/icons/duo/thumbs-up.svg | 11 + assets/icons/duo/thunder-move.svg | 4 + assets/icons/mono/arrow-up.svg | 3 + assets/icons/mono/call.svg | 4 + assets/icons/mono/chevron-left.svg | 3 + assets/icons/mono/chevron-right.svg | 3 + assets/icons/mono/copy.svg | 3 + assets/icons/mono/info.svg | 5 + assets/icons/mono/instagram.svg | 5 + assets/icons/mono/minus.svg | 3 + assets/icons/mono/play.svg | 4 + assets/icons/mono/plus.svg | 3 + assets/icons/mono/telegram.svg | 3 + assets/icons/mono/whatsapp.svg | 4 + components.d.ts | 28 + components/app-footer.vue | 111 + components/app-header.vue | 105 + components/homepage/any-questions.vue | 106 + components/homepage/faq.vue | 59 + components/homepage/hero.vue | 226 + components/homepage/how-it-works.vue | 217 + components/homepage/results.vue | 216 + components/homepage/reviews.vue | 165 + components/homepage/section.vue | 53 + components/homepage/tariff.vue | 94 + components/info-button.vue | 80 + components/phone-number.vue | 35 + components/scroll-to-top.vue | 48 + components/social-link.vue | 12 + components/ui/accordion/constants.ts | 4 + components/ui/accordion/index.vue | 78 + components/ui/accordion/item.vue | 65 + components/ui/accordion/styles.scss | 89 + components/ui/accordion/types.ts | 10 + components/ui/button/index.vue | 105 + components/ui/button/styles.scss | 113 + components/ui/collapse-transition/index.vue | 103 + components/ui/collapse-transition/styles.scss | 24 + components/ui/notification/notification.vue | 128 + components/ui/notification/notify.ts | 132 + components/ui/notification/types.ts | 33 + composables/use-checkbox.ts | 44 + composables/use-classname.ts | 63 + composables/use-notify.ts | 3 + composables/use-radio.ts | 40 + eslint.config.js | 11 + nuxt.config.ts | 155 + package.json | 48 + plugins/notify.ts | 7 + plugins/vue-final-modal.ts | 7 + public/apple-touch-icon.png | Bin 0 -> 4957 bytes public/documents/payment-policy.pdf | Bin 0 -> 436275 bytes public/documents/policy.pdf | Bin 0 -> 182201 bytes public/documents/privacy-policy.pdf | Bin 0 -> 167741 bytes public/favicon-96x96.png | Bin 0 -> 1928 bytes public/favicon.ico | Bin 0 -> 15086 bytes public/favicon.svg | 3 + public/hero-desktop.png | Bin 0 -> 3277981 bytes public/hero-mobile.png | Bin 0 -> 501352 bytes public/keller-logo.svg | 1 + public/logo.svg | 11 + public/price-bg.png | Bin 0 -> 141754 bytes public/results/1.png | Bin 0 -> 406596 bytes public/results/2.png | Bin 0 -> 547246 bytes public/results/3.png | Bin 0 -> 1844969 bytes public/results/4.png | Bin 0 -> 406822 bytes public/reviews/1.png | Bin 0 -> 2004835 bytes public/reviews/2.png | Bin 0 -> 1099256 bytes public/reviews/3.png | Bin 0 -> 2396218 bytes public/reviews/4.png | Bin 0 -> 353220 bytes public/reviews/5.png | Bin 0 -> 1351276 bytes public/reviews/6.png | Bin 0 -> 1257217 bytes public/site.webmanifest | 21 + public/web-app-manifest-192x192.png | Bin 0 -> 5613 bytes public/web-app-manifest-512x512.png | Bin 0 -> 29660 bytes styles/floating-vue.scss | 18 + styles/index.scss | 60 + styles/mixins/adaptive.scss | 11 + styles/mixins/element-variant.scss | 48 + styles/mixins/index.scss | 3 + styles/mixins/typography.scss | 17 + styles/normalize.scss | 363 + styles/typography.scss | 22 + styles/utility.scss | 13 + styles/variables/color.scss | 12 + styles/variables/index.scss | 2 + styles/variables/transitions.scss | 2 + tsconfig.json | 4 + yarn.lock | 10721 ++++++++++++++++ 97 files changed, 14314 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 app.vue create mode 100644 assets/icons/duo/flip-chart.svg create mode 100644 assets/icons/duo/group-chat.svg create mode 100644 assets/icons/duo/lightning.svg create mode 100644 assets/icons/duo/mail.svg create mode 100644 assets/icons/duo/phone.svg create mode 100644 assets/icons/duo/thumbs-up.svg create mode 100644 assets/icons/duo/thunder-move.svg create mode 100644 assets/icons/mono/arrow-up.svg create mode 100644 assets/icons/mono/call.svg create mode 100644 assets/icons/mono/chevron-left.svg create mode 100644 assets/icons/mono/chevron-right.svg create mode 100644 assets/icons/mono/copy.svg create mode 100644 assets/icons/mono/info.svg create mode 100644 assets/icons/mono/instagram.svg create mode 100644 assets/icons/mono/minus.svg create mode 100644 assets/icons/mono/play.svg create mode 100644 assets/icons/mono/plus.svg create mode 100644 assets/icons/mono/telegram.svg create mode 100644 assets/icons/mono/whatsapp.svg create mode 100644 components.d.ts create mode 100644 components/app-footer.vue create mode 100644 components/app-header.vue create mode 100644 components/homepage/any-questions.vue create mode 100644 components/homepage/faq.vue create mode 100644 components/homepage/hero.vue create mode 100644 components/homepage/how-it-works.vue create mode 100644 components/homepage/results.vue create mode 100644 components/homepage/reviews.vue create mode 100644 components/homepage/section.vue create mode 100644 components/homepage/tariff.vue create mode 100644 components/info-button.vue create mode 100644 components/phone-number.vue create mode 100644 components/scroll-to-top.vue create mode 100644 components/social-link.vue create mode 100644 components/ui/accordion/constants.ts create mode 100644 components/ui/accordion/index.vue create mode 100644 components/ui/accordion/item.vue create mode 100644 components/ui/accordion/styles.scss create mode 100644 components/ui/accordion/types.ts create mode 100644 components/ui/button/index.vue create mode 100644 components/ui/button/styles.scss create mode 100644 components/ui/collapse-transition/index.vue create mode 100644 components/ui/collapse-transition/styles.scss create mode 100644 components/ui/notification/notification.vue create mode 100644 components/ui/notification/notify.ts create mode 100644 components/ui/notification/types.ts create mode 100644 composables/use-checkbox.ts create mode 100644 composables/use-classname.ts create mode 100644 composables/use-notify.ts create mode 100644 composables/use-radio.ts create mode 100644 eslint.config.js create mode 100644 nuxt.config.ts create mode 100644 package.json create mode 100644 plugins/notify.ts create mode 100644 plugins/vue-final-modal.ts create mode 100644 public/apple-touch-icon.png create mode 100644 public/documents/payment-policy.pdf create mode 100644 public/documents/policy.pdf create mode 100644 public/documents/privacy-policy.pdf create mode 100644 public/favicon-96x96.png create mode 100644 public/favicon.ico create mode 100644 public/favicon.svg create mode 100644 public/hero-desktop.png create mode 100644 public/hero-mobile.png create mode 100644 public/keller-logo.svg create mode 100644 public/logo.svg create mode 100644 public/price-bg.png create mode 100644 public/results/1.png create mode 100644 public/results/2.png create mode 100644 public/results/3.png create mode 100644 public/results/4.png create mode 100644 public/reviews/1.png create mode 100644 public/reviews/2.png create mode 100644 public/reviews/3.png create mode 100644 public/reviews/4.png create mode 100644 public/reviews/5.png create mode 100644 public/reviews/6.png create mode 100644 public/site.webmanifest create mode 100644 public/web-app-manifest-192x192.png create mode 100644 public/web-app-manifest-512x512.png create mode 100644 styles/floating-vue.scss create mode 100644 styles/index.scss create mode 100644 styles/mixins/adaptive.scss create mode 100644 styles/mixins/element-variant.scss create mode 100644 styles/mixins/index.scss create mode 100644 styles/mixins/typography.scss create mode 100644 styles/normalize.scss create mode 100644 styles/typography.scss create mode 100644 styles/utility.scss create mode 100644 styles/variables/color.scss create mode 100644 styles/variables/index.scss create mode 100644 styles/variables/transitions.scss create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4a7f73a --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + +# Logs +logs +*.log + +# Misc +.DS_Store +.fleet +.idea + +# Local env files +.env +.env.* +!.env.example diff --git a/README.md b/README.md new file mode 100644 index 0000000..039dd24 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# Сборка проекта + +Запустить + +```shell +yarn generate +``` + +Скопировать содержимое директории `dist` в директорию `/www` на хостинге diff --git a/app.vue b/app.vue new file mode 100644 index 0000000..495a086 --- /dev/null +++ b/app.vue @@ -0,0 +1,37 @@ + + + diff --git a/assets/icons/duo/flip-chart.svg b/assets/icons/duo/flip-chart.svg new file mode 100644 index 0000000..71684ec --- /dev/null +++ b/assets/icons/duo/flip-chart.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/duo/group-chat.svg b/assets/icons/duo/group-chat.svg new file mode 100644 index 0000000..a65602d --- /dev/null +++ b/assets/icons/duo/group-chat.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/duo/lightning.svg b/assets/icons/duo/lightning.svg new file mode 100644 index 0000000..cd97666 --- /dev/null +++ b/assets/icons/duo/lightning.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/icons/duo/mail.svg b/assets/icons/duo/mail.svg new file mode 100644 index 0000000..0565a8a --- /dev/null +++ b/assets/icons/duo/mail.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/duo/phone.svg b/assets/icons/duo/phone.svg new file mode 100644 index 0000000..dc47f15 --- /dev/null +++ b/assets/icons/duo/phone.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/icons/duo/thumbs-up.svg b/assets/icons/duo/thumbs-up.svg new file mode 100644 index 0000000..b28d770 --- /dev/null +++ b/assets/icons/duo/thumbs-up.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/icons/duo/thunder-move.svg b/assets/icons/duo/thunder-move.svg new file mode 100644 index 0000000..07a87f9 --- /dev/null +++ b/assets/icons/duo/thunder-move.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/mono/arrow-up.svg b/assets/icons/mono/arrow-up.svg new file mode 100644 index 0000000..70a0402 --- /dev/null +++ b/assets/icons/mono/arrow-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/mono/call.svg b/assets/icons/mono/call.svg new file mode 100644 index 0000000..3287d9c --- /dev/null +++ b/assets/icons/mono/call.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/mono/chevron-left.svg b/assets/icons/mono/chevron-left.svg new file mode 100644 index 0000000..c4f7cbd --- /dev/null +++ b/assets/icons/mono/chevron-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/mono/chevron-right.svg b/assets/icons/mono/chevron-right.svg new file mode 100644 index 0000000..edb8b7b --- /dev/null +++ b/assets/icons/mono/chevron-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/mono/copy.svg b/assets/icons/mono/copy.svg new file mode 100644 index 0000000..8a51d8b --- /dev/null +++ b/assets/icons/mono/copy.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/mono/info.svg b/assets/icons/mono/info.svg new file mode 100644 index 0000000..984460b --- /dev/null +++ b/assets/icons/mono/info.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/icons/mono/instagram.svg b/assets/icons/mono/instagram.svg new file mode 100644 index 0000000..14f44e7 --- /dev/null +++ b/assets/icons/mono/instagram.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/icons/mono/minus.svg b/assets/icons/mono/minus.svg new file mode 100644 index 0000000..26583bf --- /dev/null +++ b/assets/icons/mono/minus.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/mono/play.svg b/assets/icons/mono/play.svg new file mode 100644 index 0000000..f00ecb6 --- /dev/null +++ b/assets/icons/mono/play.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/mono/plus.svg b/assets/icons/mono/plus.svg new file mode 100644 index 0000000..b2730da --- /dev/null +++ b/assets/icons/mono/plus.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/mono/telegram.svg b/assets/icons/mono/telegram.svg new file mode 100644 index 0000000..e107476 --- /dev/null +++ b/assets/icons/mono/telegram.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/mono/whatsapp.svg b/assets/icons/mono/whatsapp.svg new file mode 100644 index 0000000..b3f32dc --- /dev/null +++ b/assets/icons/mono/whatsapp.svg @@ -0,0 +1,4 @@ + + + + diff --git a/components.d.ts b/components.d.ts new file mode 100644 index 0000000..9c2b426 --- /dev/null +++ b/components.d.ts @@ -0,0 +1,28 @@ +/* eslint-disable */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +export {} + +/* prettier-ignore */ +declare module 'vue' { + export interface GlobalComponents { + IDuoFlipChart: typeof import('~icons/duo/flip-chart')['default'] + IDuoGroupChat: typeof import('~icons/duo/group-chat')['default'] + IDuoLightning: typeof import('~icons/duo/lightning')['default'] + IDuoMail: typeof import('~icons/duo/mail')['default'] + IDuoPhone: typeof import('~icons/duo/phone')['default'] + IDuoThumbsUp: typeof import('~icons/duo/thumbs-up')['default'] + IDuoThunderMove: typeof import('~icons/duo/thunder-move')['default'] + IMonoArrowUp: typeof import('~icons/mono/arrow-up')['default'] + IMonoChevronLeft: typeof import('~icons/mono/chevron-left')['default'] + IMonoChevronRight: typeof import('~icons/mono/chevron-right')['default'] + IMonoInfo: typeof import('~icons/mono/info')['default'] + IMonoInstagram: typeof import('~icons/mono/instagram')['default'] + IMonoPlay: typeof import('~icons/mono/play')['default'] + IMonoTelegram: typeof import('~icons/mono/telegram')['default'] + IMonoWhatsapp: typeof import('~icons/mono/whatsapp')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + } +} diff --git a/components/app-footer.vue b/components/app-footer.vue new file mode 100644 index 0000000..3beb399 --- /dev/null +++ b/components/app-footer.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/components/app-header.vue b/components/app-header.vue new file mode 100644 index 0000000..8d781dc --- /dev/null +++ b/components/app-header.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/components/homepage/any-questions.vue b/components/homepage/any-questions.vue new file mode 100644 index 0000000..5513a75 --- /dev/null +++ b/components/homepage/any-questions.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/components/homepage/faq.vue b/components/homepage/faq.vue new file mode 100644 index 0000000..457edab --- /dev/null +++ b/components/homepage/faq.vue @@ -0,0 +1,59 @@ + + + diff --git a/components/homepage/hero.vue b/components/homepage/hero.vue new file mode 100644 index 0000000..a4fa220 --- /dev/null +++ b/components/homepage/hero.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/components/homepage/how-it-works.vue b/components/homepage/how-it-works.vue new file mode 100644 index 0000000..d7f7d4b --- /dev/null +++ b/components/homepage/how-it-works.vue @@ -0,0 +1,217 @@ +