Co-authored-by: gp_dev <gpdev@gp.ru>
Reviewed-on: #13
pull/14/head
Andrei-10 3 months ago
parent 0b04196efc
commit 7f6c0defad
  1. 18
      wp-content/.cdekdelivery.php
  2. 24
      wp-content/themes/cosmopet/functions.php
  3. 43
      wp-content/themes/cosmopet/global-functions/multilang-functions.php
  4. 26
      wp-content/themes/cosmopet/modules/header/assets/css/gp-style-desktop.css
  5. 151
      wp-content/themes/cosmopet/modules/header/assets/js/core.js
  6. 1440
      wp-content/themes/cosmopet/modules/layout/assets/css/gp-style-core.css
  7. 12
      wp-content/themes/cosmopet/modules/layout/assets/css/gp-style-normalize.css
  8. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Bold.woff
  9. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Bold.woff2
  10. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Medium.woff
  11. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Medium.woff2
  12. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Regular.woff
  13. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Regular.woff2
  14. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-SemiBold.woff
  15. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-SemiBold.woff2
  16. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/craftwork-grotesk-bold.ttf
  17. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/craftwork-grotesk-medium.ttf
  18. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/craftwork-grotesk-regular.ttf
  19. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/craftwork-grotesk-semi-bold.ttf
  20. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-demi.ttf
  21. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-demi.woff
  22. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-demi.woff2
  23. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-regular.ttf
  24. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-regular.woff
  25. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-regular.woff2
  26. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/Roboto-Medium.woff
  27. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/Roboto-Medium.woff2
  28. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/Roboto-Regular.woff
  29. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/Roboto-Regular.woff2
  30. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/roboto-medium.ttf
  31. 0
      wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/roboto-regular.ttf
  32. 166
      wp-content/themes/cosmopet/modules/layout/assets/js/_gp-function.js
  33. 67
      wp-content/themes/cosmopet/modules/layout/assets/js/gp-cabinet.js
  34. 0
      wp-content/themes/cosmopet/modules/layout/assets/js/gp-form.js
  35. 136
      wp-content/themes/cosmopet/modules/layout/assets/js/gp-main.js
  36. 110
      wp-content/themes/cosmopet/modules/layout/assets/js/gp-product.js
  37. 1
      wp-content/themes/cosmopet/modules/layout/module-controller.php
  38. 40
      wp-content/themes/cosmopet/modules/layout/module.template.twig
  39. 60
      wp-content/themes/cosmopet/modules/popup/module.template.twig
  40. 273
      wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js
  41. 8
      wp-content/themes/cosmopet/modules/shop/components/cart/component-controller.php
  42. 1307
      wp-content/themes/cosmopet/modules/shop/components/checkout/assets/css/checkout.css
  43. 161
      wp-content/themes/cosmopet/modules/shop/components/checkout/assets/js/script.js
  44. 0
      wp-content/themes/cosmopet/modules/shop/components/checkout/component-controller.php
  45. 0
      wp-content/themes/cosmopet/modules/shop/module-ajax-controller.php
  46. 11
      wp-content/themes/cosmopet/page.php
  47. BIN
      wp-content/themes/cosmopet/static/img/modal/about_slider.png
  48. BIN
      wp-content/themes/cosmopet/static/img/pet/cat.png
  49. BIN
      wp-content/themes/cosmopet/static/img/pet/dog.png
  50. BIN
      wp-content/themes/cosmopet/static/img/pet/mini-dog.png
  51. BIN
      wp-content/themes/cosmopet/static/img/product/image.png
  52. BIN
      wp-content/themes/cosmopet/static/img/product/mini-card.png
  53. 13
      wp-content/themes/cosmopet/static/img/svg/country/ar.svg
  54. 13
      wp-content/themes/cosmopet/static/img/svg/country/ru.svg
  55. 4
      wp-content/themes/cosmopet/static/img/svg/logo/logo-black.svg
  56. 18
      wp-content/themes/cosmopet/static/img/svg/logo/logo-gradient.svg
  57. 4
      wp-content/themes/cosmopet/static/img/svg/logo/logo-white.svg
  58. 5
      wp-content/themes/cosmopet/static/img/svg/main/arrow-back.svg
  59. 3
      wp-content/themes/cosmopet/static/img/svg/main/arrow-black.svg
  60. 3
      wp-content/themes/cosmopet/static/img/svg/main/arrow-breadcrumbs-black.svg
  61. 3
      wp-content/themes/cosmopet/static/img/svg/main/arrow-breadcrumbs.svg
  62. 5
      wp-content/themes/cosmopet/static/img/svg/main/arrow-left.svg
  63. 5
      wp-content/themes/cosmopet/static/img/svg/main/arrow-right-input.svg
  64. 5
      wp-content/themes/cosmopet/static/img/svg/main/arrow-right.svg
  65. 3
      wp-content/themes/cosmopet/static/img/svg/main/arrow-selected-white.svg
  66. 11
      wp-content/themes/cosmopet/static/img/svg/main/arrow-selected.svg
  67. 13
      wp-content/themes/cosmopet/static/img/svg/main/basket.svg
  68. 11
      wp-content/themes/cosmopet/static/img/svg/main/black-x.svg
  69. 3
      wp-content/themes/cosmopet/static/img/svg/main/change-dot.svg
  70. 3
      wp-content/themes/cosmopet/static/img/svg/main/filter.svg
  71. 6
      wp-content/themes/cosmopet/static/img/svg/main/google-white.svg
  72. 11
      wp-content/themes/cosmopet/static/img/svg/main/gradient-x.svg
  73. 10
      wp-content/themes/cosmopet/static/img/svg/main/minus.svg
  74. 11
      wp-content/themes/cosmopet/static/img/svg/main/plus-grey.svg
  75. 11
      wp-content/themes/cosmopet/static/img/svg/main/plus.svg
  76. 3
      wp-content/themes/cosmopet/static/img/svg/main/question.svg
  77. 3
      wp-content/themes/cosmopet/static/img/svg/main/status-cancelled.svg
  78. 3
      wp-content/themes/cosmopet/static/img/svg/main/status-chek.svg
  79. 3
      wp-content/themes/cosmopet/static/img/svg/main/triangle-grey.svg
  80. 3
      wp-content/themes/cosmopet/static/img/svg/main/vk-white.svg
  81. 3
      wp-content/themes/cosmopet/static/img/svg/main/white-x.svg
  82. 3
      wp-content/themes/cosmopet/static/img/svg/main/ya-white.svg
  83. 3
      wp-content/themes/cosmopet/static/img/svg/mini-profile/basket-w.svg
  84. 3
      wp-content/themes/cosmopet/static/img/svg/mini-profile/basket.svg
  85. 4
      wp-content/themes/cosmopet/static/img/svg/mini-profile/profile-w.svg
  86. 4
      wp-content/themes/cosmopet/static/img/svg/mini-profile/profile.svg
  87. 3
      wp-content/themes/cosmopet/static/img/svg/social-media/tg.svg
  88. 3
      wp-content/themes/cosmopet/static/img/svg/social-media/vk.svg
  89. 6
      wp-content/themes/cosmopet/static/img/svg/social-media/ya.svg
  90. 110
      wp-content/themes/cosmopet/templates/header.twig
  91. 25
      wp-content/themes/cosmopet/templates/layout.twig
  92. 68
      wp-content/themes/cosmopet/templates/modal.twig
  93. 47
      wp-content/themes/cosmopet/templates/modal/basket.twig
  94. 9
      wp-content/themes/cosmopet/templates/page.twig
  95. 45
      wp-content/themes/cosmopet/templates/shop/cart-contents.twig
  96. 151
      wp-content/themes/cosmopet/templates/shop/checkout.twig
  97. 1
      wp-content/themes/cosmopet/templates/shop/index.php
  98. 66
      wp-content/themes/cosmopet/templates/shop/review-order.twig
  99. 1
      wp-content/themes/cosmopet/templates/shop/shop.twig
  100. 221
      wp-content/themes/cosmopet/woocommerce/archive-product/archive-product-modal.twig
  101. Some files were not shown because too many files have changed in this diff Show More

@ -0,0 +1,18 @@
<?php defined("ABSPATH") or exit; return array (
'tokens' =>
array (
'wordpress' => 'v4.local.nalowbOW6cLbDpvTkpTnMOVG_1PGHdZKveVTUIbgUv2hUvQGr5zQ-B97k1oykPdIiLx0D0EZ0xlOdhwqgV_DcPsmh3eOrZ9mLJOlmxL0Ciq1Lkhewhj3h1H4FQuiSmfg1oylejDCLtbzfWil8GNxrzGOiBoiiY2XALTxBT0ZDcCZNAGmKQTElV9Lzw5TxDYEm9ELTLCaFj3rTN3Vq8bMQy8aHK-Mgq2QvaD3YYEJiTxcgTl97df6rJQnGtYiG9dvhVFhShNdUj1sWh9vIzoXiUbZbByLwe5ZUwaDzE3G7xosGlTyQJ3WIle3ywsfnjgNxRQwOz--XcEYGUJ_nhR3oJscW7SJXdi-ziE5dnDi6k2XpaIbTbppIUvdeyzRDpC2VajiSvb3jg5kcxHL_3bFo-7D4Rjmtr2ZEr8uS4-xwt8uhLiSBLcRsLSGSCq0yMlNmgsxxUdySDu2Q5P5pDX3_5hBdg-4DuBH.eyJlbmRwb2ludCI6Imh0dHBzOlwvXC9hcGkuY2Rlay5ydVwvY21zIn0',
'@cdek-it/order' => 'v4.local.-h0jllL5iFSEWHkSBGY1TfzpFIQGYeCif9pGrZorJtWeZ1mUew3VjChFhXL60cVcN5LCXw9d_ui-XG1kIzjrx-UzDfK4fS-l4OznAhLWp7ZT1M3-X-uQiVJk5lzCJ2rNGQ-TJudeOlqL4kDKcqaPLgDzq5MQEqvloGAvviatPL-Y9ifTI183xVxcL6O7J700dFcQEhhSIcYfVnQVG2L1d93gxaUUH-OIMk1hxF1LCdnNIy6F6Zjt9yswXDEfEGWfE8OJysQQJhTj1IIOcf4_AZ-gGrSaXMMcG-J6GfDIjoU-uFrXhpI10grwgmY5Xka3-SPj2fyVV_e5WVuOew5HK0oDyHWqnlE37dWbQTBNPMqUNL50fQxviTzDYHplbM_CUq8YlNx2O_7FMt7b2w2sZMHLZBaWtH4zmOj8T2v-rY_MLeVwPuAfZPKnHqZMoGBL312Zh-tCyqVIp8gZ2jXJvKXnzMgumJv_uxA6Sdgk.eyJlbmRwb2ludCI6Imh0dHBzOlwvXC9hcGkuY2Rlay5ydVwvY21zIn0',
'@cdek-it/settings' => 'v4.local.Dbb69cuN8PIE7d1_5w3bD5OZI0Z5_K9w_UbnCJGJlM5jLLWkdkKf4d_svhJySz-NMm8xVJsEMEnCOSRVZZZIlcRaOlNqi7bsIDYXmpcnVCKL5v8cUWn9nKRSNvKUuiSqU_1aJl2pi7ZvxpII6STV4xxkcMXdtfYF9AZAOD0b6gtd7v8OdXjBzeKwbsilj7bToUv4mrmAlgMhd_MG3rKRP5-INo0B-rkwK78Ul88YjCgf0ooPyRICdQzLAgD7x42FJ3vYI9UA8g3wffx5kJxbRWrKUEfwZ1zJp-NQKAcyK5KGLIu9OUoFcQN4U_KdnnZqdqwwkovB0JIbqz-HKQcdi1Xrq5wKk5lIF-HdJteYn2t8Refd9soVGmN67O_V2K1b09Jw4v973C4rOxvw4WZNXHTm9a0mTI0pTk3Y5Dv1tJuN23zH73G_kNN_TSLUenE1iTGPdSnGXxIcfBG-sBoS1Au62QbzUY7lhftD6Bq6T6-6.eyJlbmRwb2ludCI6Imh0dHBzOlwvXC9hcGkuY2Rlay5ydVwvY21zIn0',
),
'endpoints' =>
array (
'wordpress' => 'https://api.cdek.ru/cms',
'@cdek-it/order' => 'https://api.cdek.ru/cms',
'@cdek-it/settings' => 'https://api.cdek.ru/cms',
),
'keyring' =>
array (
'k4.pid.jwGFnADDct9ZphWj1tZslqzRDXQIgEjvyVx8LI6MJR7d' => 'TDOjk4smnqY5AYE-aGdmFJIescdcJb26nThfAK3AVPU',
),
);

@ -423,12 +423,31 @@ requireShortcodes(get_template_directory() . '/modules');
require_once('modules/blog/module-ajax-controller.php'); require_once('modules/blog/module-ajax-controller.php');
require_once('modules/forms/module-ajax-controller.php'); require_once('modules/forms/module-ajax-controller.php');
require_once('modules/shop/module-ajax-controller.php');
add_action('wp', 'my_custom_checkout_code');
function my_custom_checkout_code() {
if (function_exists('is_checkout') && is_checkout() && !is_order_received_page()) {
include_component('shop', 'checkout');
}
}
require_once('modules/author/module-ajax-controller.php'); require_once('modules/author/module-ajax-controller.php');
include_module('forms'); include_module('forms');
include_module('layout'); include_module('layout');
add_action('wp_enqueue_scripts', 'disable_woocommerce_css', 999);
function disable_woocommerce_css() {
wp_dequeue_style('woocommerce-general');
wp_dequeue_style('woocommerce-layout');
wp_dequeue_style('woocommerce-smallscreen');
wp_dequeue_style('woocommerce_frontend_styles');
wp_dequeue_style('woocommerce_fancybox_styles');
wp_dequeue_style('woocommerce_chosen_styles');
wp_dequeue_style('woocommerce_prettyPhoto_css');
}
class WooProduct extends Timber\Post { class WooProduct extends Timber\Post {
protected $wc_product; protected $wc_product;
@ -596,6 +615,8 @@ register_sidebar( array(
) ); ) );
add_filter( 'woocommerce_price_trim_zeros', '__return_true' );
function add_comment_like() { function add_comment_like() {
global $wpdb; global $wpdb;
$table_name = $wpdb->prefix . 'cosmopet_likes'; $table_name = $wpdb->prefix . 'cosmopet_likes';
@ -933,3 +954,4 @@ function remove_view_cart_button_js() {
</script> </script>
<?php <?php
} }

@ -1,43 +0,0 @@
<?php
add_action('init', function() {
pll_register_string ('Темы', 'Темы');
pll_register_string ('САМЫЕ ЧИТАЕМЫЕ', 'САМЫЕ ЧИТАЕМЫЕ');
pll_register_string ('время чтения', 'время чтения');
pll_register_string ('ВСЕ СТАТЬИ', 'ВСЕ СТАТЬИ');
pll_register_string ('ПРЕДЛОЖИТЕ СТАТЬЮ ИЛИ СТАНЬТЕ АВТОРОМ', 'ПРЕДЛОЖИТЕ СТАТЬЮ ИЛИ СТАНЬТЕ АВТОРОМ');
pll_register_string ('НАПИШИТЕ НАМ', 'НАПИШИТЕ НАМ');
pll_register_string ('COSMO тема редакции', 'COSMO тема редакции');
pll_register_string ('мин.', 'мин.');
pll_register_string ('Форма обратной связи', 'Форма обратной связи');
pll_register_string ('Ваше имя', 'Ваше имя');
pll_register_string ('Эл.почта', 'Эл.почта');
pll_register_string ('Текст обращения', 'Текст обращения');
pll_register_string ('Отправить', 'Отправить');
pll_register_string ('Чат бот с ветеринаром', 'Чат бот с ветеринаром');
pll_register_string ('Калькулятор рациона', 'Калькулятор рациона');
pll_register_string ('ПОКАЗАТЬ ЕЩЁ', 'ПОКАЗАТЬ ЕЩЁ');
pll_register_string ('ВСЕ', 'ВСЕ');
pll_register_string ('читать статью', 'читать статью');
pll_register_string ('Блог', 'Блог');
pll_register_string ('Главная', 'Главная');
pll_register_string ('Подпишитесь, чтобы быть в курсе деятельности Cosmopet и узнавать о наших, предложениях. Обещаем не заваливать вас бесполезными письмами. А за подписку дарим -25% на весь ассортимент нашей продукции', 'Подпишитесь, чтобы быть в курсе деятельности Cosmopet и узнавать о наших предложениях. Обещаем не заваливать вас бесполезными письмами. А за подписку дарим -25% на весь ассортимент нашей продукции');
pll_register_string ('Подписываясь на рассылку, я даю согласие на обработку персональных данных, на получение рекламных сообщений и новостей о товарах и услугах', 'Подписываясь на рассылку, я даю согласие на обработку персональных данных, на получение рекламных сообщений и новостей о товарах и услугах');
pll_register_string ('подписаться', 'подписаться');
pll_register_string ('Узнайте о нас больше и получите <span>скидку!</span>', 'Узнайте о нас больше и получите <span>скидку!</span>');
pll_register_string ('Это миф!', 'Это миф!');
pll_register_string ('Это правда!', 'Это правда!');
pll_register_string ('Правда', 'Правда');
pll_register_string ('Миф', 'Миф');
pll_register_string ('Далее', 'Далее');
pll_register_string ('ваш результат', 'ваш результат');
pll_register_string ('Скопировать', 'Скопировать');
pll_register_string ('Скопировано', 'Скопировано');
pll_register_string ('В магазин', 'В магазин');
pll_register_string ('Наш блог', 'Наш блог');
pll_register_string ('Новости рынка кормов и экологии, полезные статьи о здоровье домашних животных', 'Новости рынка кормов и экологии, полезные статьи о здоровье домашних животных');
pll_register_string ('ЭТАПЫ ПРОИЗВОД&shyСТВА', 'ЭТАПЫ ПРОИЗВОД&shyСТВА');
pll_register_string ('Этапы производс&shyтва корма', 'Этапы производс&shyтва корма');
pll_register_string ('Все статьи', 'Все статьи');
pll_register_string ('Узнать больше', 'Узнать больше');
});

@ -730,3 +730,29 @@ width: 0px;
} }
.mini-profile__button--counter{
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
padding: 2px;
position: absolute;
background: var(--gradient-turquoise);
border-radius: 10px;
width: 16px;
height: 16px;
border-radius: 50%;
top: 6px;
right: 6px;
font-style: normal;
font-weight: 700;
font-size: 9px;
line-height: 16px;
color: #121212;
}
.mini-profile__button--counter.disabled{
display: none;
}

@ -1,151 +0,0 @@
'use strict';
// function
function modalOpen(buttonElement, contentElement){
let modal = document.querySelector('.modal'),
aside = document.querySelector('.modal__aside'),
elements = document.querySelectorAll(buttonElement),
device = window.screen.width;
elements.forEach(e => {
let thisContentElement = document.querySelector(contentElement);
e.onclick = function () {
modal.classList.add('active');
thisContentElement.classList.add('active');
let width = thisContentElement.clientWidth;
setTimeout(() => {
if (device <= 720) {
aside.style.width = `${device}px`;
thisContentElement.style.opacity = 1;
thisContentElement.style.filter = 'blur(0px)';
}else{
aside.style.width = `${width}px`;
thisContentElement.style.opacity = 1;
thisContentElement.style.filter = 'blur(0px)';
}
}, 10);
}
})
}
function modalClose(buttonElement) {
let modal = document.querySelector('.modal'),
aside = document.querySelector('.modal__aside'),
asideItems = document.querySelectorAll('.modal__item'),
elements = document.querySelectorAll(buttonElement);
elements.forEach(e => {
e.onclick = function () {
aside.style.width = '0px';
asideItems.forEach(e => {
if (e.classList.contains('active')) {
e.style.filter = 'blur(10px)';
}
});
setTimeout(() => {
asideItems.forEach(e => {
if (e.classList.contains('active')) {
e.classList.remove('active');
}
});
modal.classList.remove('active');
}, 300);
}
})
}
function toggleOpenX(mainElement, buttonElement ,heightElement, contentElement, close) {
let elements = document.querySelectorAll(mainElement);
elements.forEach(e => {
let thisMainElement = e,
thisButtonElement = e.querySelector(buttonElement),
thisHeightElement = e.querySelector(heightElement),
thisContentElement = e.querySelector(contentElement);
thisButtonElement.onclick = function (e) {
let height = thisHeightElement.clientHeight;
if (close == true && !thisMainElement.classList.contains('active')) {
elements.forEach(e => {
if (e.classList.contains('active')) {
e.classList.remove('active');
e.querySelector(contentElement).style.height = null
}
})
}
if (!thisMainElement.classList.contains('active')) {
thisContentElement.style.height = `${height}px`;
thisMainElement.classList.add('active');
}else{
thisContentElement.style.height = null;
thisMainElement.classList.remove('active');
}
}
});
}
var menu_opened = false;
function toggleHeader(button, content, blockheight, removeBlock, removeClass) {
let thisButton = document.querySelector(button),
thisContent = document.querySelector(content),
thisRemoveBlock = document.querySelector(removeBlock) || '',
thisBlockheight = document.querySelector(blockheight);
thisButton.onclick = function () {
let height = thisBlockheight.clientHeight;
if (!thisContent.classList.contains('open')) {
thisContent.style.height = `${height}px`;
thisContent.classList .add('open');
if (removeBlock) {
thisRemoveBlock.classList.remove(removeClass);
}
}else{
thisContent.style.height = null;
thisContent.classList.remove('open');
if (removeBlock) {
if (window.Y <= 25) {
thisRemoveBlock.classList.add(removeClass);
}
}
}
menu_opened = !menu_opened;
}
}
if (document.querySelector('.header').classList.contains('white')) {
window.addEventListener("scroll", function (e) {
let header = document.querySelector('.header');
let scroll = window.scrollY;
if(!menu_opened){
if (scroll >= 25) {
header.classList.remove('white')
}else{
header.classList.add('white')
}
}
});
}
toggleOpenX('.lang', '.lang__open', '.lang__list', '.lang__content', false);
toggleHeader('#pc-menu','.header__menu-block','.header__pc-menu', '.white', 'white');
toggleHeader('#phone-menu','.header__menu-block','.header__phone-menu', '.white', 'white');
// scroll

@ -16,10 +16,6 @@ img {
max-width: 100%; max-width: 100%;
} }
span,
label {
display: inline-block;
}
html { html {
scroll-behavior: smooth; scroll-behavior: smooth;
@ -70,3 +66,11 @@ input[type=number]::-webkit-outer-spin-button {
-moz-appearance: none; -moz-appearance: none;
margin: 0; margin: 0;
} }
main.wrapper{
padding-top: 40px;
}
.checkout-inline-error-message{
display: none;
}

@ -0,0 +1,166 @@
// 'use strict';
// // Глобальные переменные для управления состоянием
// let currentModalContent = null;
// function modalOpen(buttonElement, contentElement) {
// const modal = document.querySelector('.modal');
// const aside = document.querySelector('.modal__aside');
// const elements = document.querySelectorAll(buttonElement);
// const device = window.screen.width;
// // Обработчик закрытия по клику на оверлей
// modal.addEventListener('click', function(e) {
// if (e.target === modal && currentModalContent) {
// closeModal(currentModalContent);
// }
// });
// // Обработчик закрытия по Escape
// document.addEventListener('keydown', function(e) {
// if (e.key === 'Escape' && currentModalContent) {
// closeModal(currentModalContent);
// }
// });
// elements.forEach(e => {
// e.addEventListener('click', function() {
// const content = document.querySelector(contentElement);
// currentModalContent = content;
// // Сброс стилей перед открытием
// resetModalStyles();
// modal.classList.add('active');
// content.classList.add('active');
// const width = content.clientWidth;
// setTimeout(() => {
// if (device <= 720) {
// aside.style.width = `${device}px`;
// } else {
// aside.style.width = `${width}px`;
// }
// content.style.opacity = '1';
// content.style.filter = 'blur(0)';
// }, 10);
// });
// });
// }
// function modalClose(buttonElement) {
// const elements = document.querySelectorAll(buttonElement);
// elements.forEach(e => {
// e.addEventListener('click', function() {
// if (currentModalContent) {
// closeModal(currentModalContent);
// }
// });
// });
// }
// function closeModal(contentElement) {
// const modal = document.querySelector('.modal');
// const aside = document.querySelector('.modal__aside');
// aside.style.width = '0';
// contentElement.style.opacity = '0';
// contentElement.style.filter = 'blur(10px)';
// setTimeout(() => {
// contentElement.classList.remove('active');
// modal.classList.remove('active');
// currentModalContent = null;
// }, 300);
// }
// function resetModalStyles() {
// const allModals = document.querySelectorAll('.modal__item');
// allModals.forEach(modal => {
// modal.style.opacity = '';
// modal.style.filter = '';
// modal.classList.remove('active');
// });
// document.querySelector('.modal__aside').style.width = '';
// }
// function toggleOpenX(mainElement, buttonElement ,heightElement, contentElement, close) {
// let elements = document.querySelectorAll(mainElement);
// elements.forEach(e => {
// let thisMainElement = e,
// thisButtonElement = e.querySelector(buttonElement),
// thisHeightElement = e.querySelector(heightElement),
// thisContentElement = e.querySelector(contentElement);
// thisButtonElement.onclick = function (e) {
// let height = thisHeightElement.clientHeight;
// if (close == true && !thisMainElement.classList.contains('active')) {
// elements.forEach(e => {
// if (e.classList.contains('active')) {
// e.classList.remove('active');
// e.querySelector(contentElement).style.height = null
// }
// })
// }
// if (!thisMainElement.classList.contains('active')) {
// thisContentElement.style.height = `${height}px`;
// thisMainElement.classList.add('active');
// }else{
// thisContentElement.style.height = null;
// thisMainElement.classList.remove('active');
// }
// }
// });
// }
// function toggleHeader(button, content, blockheight, removeBlock, removeClass) {
// let thisButton = document.querySelector(button),
// thisContent = document.querySelector(content),
// thisRemoveBlock = document.querySelector(removeBlock) || '',
// thisBlockheight = document.querySelector(blockheight);
// thisButton.onclick = function () {
// let height = thisBlockheight.clientHeight;
// if (!thisContent.classList .contains('open')) {
// thisContent.style.height = `${height}px`;
// thisContent.classList .add('open');
// if (removeBlock) {
// thisRemoveBlock.classList.remove(removeClass);
// }
// }else{
// thisContent.style.height = null;
// thisContent.classList .remove('open');
// if (removeBlock) {
// if (window.scrollY <= 25) {
// thisRemoveBlock.classList.add(removeClass);
// }
// }
// }
// }
// }
// function modalFormOpen(formOrNotification) {
// let buttons = document.querySelectorAll(formOrNotification),
// modal = document.querySelector('.modal');
// buttons.forEach(button => {
// button.onclick = function (eventButton) {
// let classOpenForm = button.dataset.form,
// form = modal.querySelector(`.${classOpenForm}`);
// form.classList.add('active');
// modal.classList.add('active');
// }
// })
// }
// // function

@ -0,0 +1,67 @@
// 'use strict';
// import * as fun from './_gp-function.js';
// let widthPhoneCabinet = 1200;
// fun.toggleOpenX('.cabinet-card__order', '.cabinet-card-order__open-detail', '.cabinet-card-order__detail', '.cabinet-card-order__block-detail');
// fun.modalFormOpen('.form-open');
// fun.closeModalForm('.modal-form__close');
// fun.closeModalForm('.modal-form__button-close');
// controlCabinet('.cabinet-control__button', '.cabinet', widthPhoneCabinet);
// function controlCabinet(buttons, main, minWidth){
// let thisWidth = window.innerWidth;
// let thisMain = document.querySelector(main);
// let thisButtons = document.querySelectorAll(buttons);
// thisButtons.forEach(e => {
// e.onclick = function (element){
// let thisContent = document.querySelector(`.cabinet__${e.dataset.cabinet}`);
// let newHeight = thisContent.clientHeight + 48;
// let thisButton = element.target;
// thisMain.style.height = `${newHeight}px`
// if (!thisContent.classList.contains('active')) {
// thisMain.querySelector('.active').classList.remove('active');
// thisContent.classList.add('active');
// setTimeout(() => {
// thisMain.style.height = 'auto';
// if (thisMain.querySelector('.hide')) {
// thisMain.querySelector('.hide').classList.remove('hide');
// }
// thisMain.querySelector('.active').classList.add('hide');
// }, 200);
// }
// thisButtons.forEach(e => {
// e.classList.remove('active');
// })
// thisButton.classList.add('active');
// }
// })
// }
// let modal = document.querySelector('.modal');
// modal.onclick = function (eventModal) {
// let thisTarget = eventModal.target;
// if (thisTarget.classList.contains('modal')) {
// thisTarget.classList.remove('active');
// if (!thisTarget.querySelector('.modal-map.active')) {
// thisTarget.querySelector('.modal-form.active').classList.remove('active');
// }else{
// thisTarget.querySelector('.modal-map.active').classList.remove('active');
// }
// }
// }

@ -140,19 +140,8 @@ let modal = document.querySelector('.modal');
modal.onclick = function (event) { modal.onclick = function (event) {
let target = event.target; let target = event.target;
if (target.classList.contains('modal')) { if (target.classList.contains('modal')) {
let aside = target.querySelector('.modal__aside'), closeAllModals();
modalItem = target.querySelector('.modal__item.active'),
body = document.querySelector('body');
aside.style.width = '0px';
body.classList.remove('overflow-hidden');
setTimeout(() => {
modalItem.style.cssText = '';
modalItem.classList.remove('active');
target.classList.remove('active');
}, 300);
} }
} }
@ -190,100 +179,7 @@ radioButtons.forEach(radioBlock => {
}) })
// radio-button // radio-button
// overlay
// let products = document.querySelectorAll('.product__item');
// products.forEach(productItem => {
// let button = productItem.querySelector('.open-overlay'),
// overlay = productItem.querySelector('.product-item__overlay');
// if (button) {
// button.onclick = function (e) {
// document.querySelectorAll('.product__item').forEach(e => {
// if (e.classList.contains('active')) {
// e.classList.remove('active');
// }
// });
// document.querySelectorAll('.product-item__overlay').forEach(e => {
// if (e.classList.contains('active')) {
// e.classList.remove('active');
// }
// });
// productItem.classList.toggle('active');
// overlay.classList.toggle('active');
// }
// }
// })
// overlay
// select
// toggleOpenX('.select', '.select__state' , '.state__content', '.state__block', true);
// let selects = document.querySelectorAll('.select');
// selects.forEach(select => {
// let state = select.querySelector('.select__state'),
// content = select.querySelector('.state__block'),
// buttons = select.querySelectorAll('.state__button');
// buttons.forEach(e => {
// let button = e;
// e.onclick = function (event) {
// event.preventDefault();
// buttons.forEach(element => {
// if (element.classList.contains('active')) {
// element.classList.remove('active');
// }
// })
// let text = e.textContent.trim();
// state.value = text;
// button.classList.add('active');
// content.style.height = 0;
// select.classList.remove('active');
// }
// })
// })
// select
// counter
// let counters = document.querySelectorAll('.counter');
// counters.forEach(e => {
// let minus = e.querySelector('.minus'),
// plus = e.querySelector('.plus'),
// input = e.querySelector('.counter__input');
// minus.onclick = function (e) {
// e.preventDefault();
// let number = input.value;
// if (number >= 2){
// input.value = Number(number) - 1;
// }
// }
// plus.onclick = function (e) {
// e.preventDefault();
// let number = input.value;
// if (number <= 99) {
// input.value = Number(number) + 1;
// }
// }
// })
// counter
// checkbox // checkbox
let checkbox = document.querySelectorAll('.checkbox'); let checkbox = document.querySelectorAll('.checkbox');
@ -336,35 +232,37 @@ function modalOpen(buttonElement, contentElement){
}) })
} }
function modalClose(buttonElement) {
function closeAllModals() {
let modal = document.querySelector('.modal'), let modal = document.querySelector('.modal'),
aside = document.querySelector('.modal__aside'), aside = document.querySelector('.modal__aside'),
asideItems = document.querySelectorAll('.modal__item'), asideItems = document.querySelectorAll('.modal__item'),
elements = document.querySelectorAll(buttonElement),
body = document.querySelector('body'); body = document.querySelector('body');
elements.forEach(e => {
e.onclick = function () {
body.classList.remove('overflow-hidden');
aside.style.width = '0px'; aside.style.width = '0px';
body.classList.remove('overflow-hidden');
asideItems.forEach(e => { asideItems.forEach(item => {
if (e.classList.contains('active')) { if (item.classList.contains('active')) {
e.style.filter = 'blur(10px)'; item.style.opacity = 0;
item.style.filter = 'blur(10px)';
} }
}); });
setTimeout(() => { setTimeout(() => {
asideItems.forEach(e => { asideItems.forEach(item => {
if (e.classList.contains('active')) { item.classList.remove('active');
e.classList.remove('active');
}
}); });
modal.classList.remove('active'); modal.classList.remove('active');
}, 300); }, 300);
} }
})
function modalClose(buttonElement) {
let elements = document.querySelectorAll(buttonElement);
elements.forEach(e => {
e.onclick = closeAllModals;
});
} }
function toggleOpenX(mainElement, buttonElement ,heightElement, contentElement, close) { function toggleOpenX(mainElement, buttonElement ,heightElement, contentElement, close) {

@ -0,0 +1,110 @@
// 'use strict';
// // slider gallery modal
// const gallery = new Swiper('.gallery__slider', {
// spaceBetween: 100,
// pagination: {
// el: '.swiper-pagination',
// },
// navigation: {
// nextEl: '.swiper-button-next',
// prevEl: '.swiper-button-prev',
// },
// scrollbar: {
// el: '.swiper-scrollbar',
// },
// });
// let paginationButtons = document.querySelectorAll('.gallery-pagination__item');
// paginationButtons.forEach(button => {
// let index = button.dataset.countImg;
// button.onclick = function () {
// gallery.slideTo(index);
// }
// })
// // open gallery
// let detailImage= document.querySelectorAll('.detail__image');
// detailImage.forEach(button => {
// let index = button.dataset.countImg;
// button.onclick = function () {
// gallery.slideTo(index);
// document.querySelector('.gallery').classList.add('active');
// }
// })
// // close gallery
// document.querySelector('.gallery__close').onclick = function () {
// document.querySelector('.gallery').classList.remove('active');
// }
// // slider gallery modal
// // slider gallery main phone
// // createGalleryPhone('.detail__images', '.detail-images__wrapper', '.detail__image', 980);
// const detailPhone = new Swiper('.detail__images-phone', {
// spaceBetween: 100,
// pagination: {
// el: '.swiper-pagination',
// },
// navigation: {
// nextEl: '.swiper-button-next',
// prevEl: '.swiper-button-prev',
// },
// scrollbar: {
// el: '.swiper-scrollbar',
// },
// });
// let detailImagesPhones = document.querySelectorAll('.detail-images-phone__image-block');
// detailImagesPhones.forEach(button => {
// button.onclick = function (e) {
// let index = button.dataset.countImg;
// gallery.slideTo(index);
// document.querySelector('.gallery').classList.add('active');
// }
// })
// // slider gallery main phone
// // detail catalog
// const detailCatalot = new Swiper('.detail__catalot', {
// // Navigation arrows
// navigation: {
// nextEl: '.detail-catalot-control__button.next',
// prevEl: '.detail-catalot-control__button.prev',
// },
// breakpoints: {
// 1600: {
// slidesPerView: 4,
// },
// 1200: {
// slidesPerView: 3,
// },
// 780: {
// slidesPerView: 2,
// },
// 100: {
// slidesPerView: 1.1,
// spaceBetween: 20
// },
// }
// });
// // detail catalog

@ -2,4 +2,5 @@
include_module('header'); include_module('header');
include_component('shop', 'cart');
include_module('footer'); include_module('footer');

@ -1,40 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
<meta name="description" content="">
<!-- Яндекс.Вебмастер + Google Search Console -->
<!-- /Яндекс.Вебмастер + Google Search Console -->
<!-- Yandex.Metrika counter -->
<!-- /Yandex.Metrika counter -->
{{ function('wp_head') }}
</head>
<body>
{% if current_lang == 'en' %}
{% include 'header/module.template_ENG.twig' %}
{% elseif current_lang == 'fr' %}
{% else %}
{% include 'header/module.template_RU.twig' %}
{% endif %}
<main class="{{ bodyClass }}">
{% block content %}
{% endblock %}
</main>
{% include 'footer/module.template.twig' %}
</div>
{{ function('wp_footer') }}
</body>
</html>

@ -1,60 +0,0 @@
{% set current_path = template_path ~ '/modules/footer' %}
<footer class="footer">
<div class="container">
<div class="footer-top">
<div class="footer-content__wrap">
<div class="footer-content">
<a href="/" class="logo">
<img src="{{ current_path }}/assets/img/logo-green.svg" alt="">
<span>сosmopet</span>
</a>
<p class="footer-content__address">
{{adres}}
</p>
<ul>
{% for item in email_list %}
<li>
<p>{{item.name}}</p>
<a href="mailto:{{item.email}}">{{item.email}}</a>
</li>
{% endfor %}
</ul>
</div>
<div class="footer-top__link">
<a href="#" class="link-black">{{ function('pll_e', 'Чат бот с ветеринаром') }}</a>
<a href="#" class="link-white">{{ function('pll_e', 'Калькулятор рациона') }}</a>
</div>
</div>
<form class="footer-contact">
<h3 class="footer-contact__title">{{ function('pll_e', 'Форма обратной связи') }}</h3>
<input type="text" placeholder="{{ function('pll_e', 'Ваше имя') }}" class="form-inp">
<input type="email" placeholder="{{ function('pll_e', 'Эл.почта') }}" class="form-inp">
<textarea class="form-textarea" name="" placeholder="{{ function('pll_e', 'Текст обращения') }}" id=""></textarea>
<button class="footer-contact__submit" type="submit">{{ function('pll_e', 'Отправить') }}</button>
</form>
</div>
<div class="footer-bottom">
<ul class="footer-network">
<li>
<a href="#">
<img src="{{ current_path }}/assets/img/footer-network-1.svg" alt="">
</a>
</li>
<li>
<a href="#">
<img src="{{ current_path }}/assets/img/footer-network-2.svg" alt="">
</a>
</li>
<li>
<a href="#">
<img src="{{ current_path }}/assets/img/footer-network-3.svg" alt="">
</a>
</li>
</ul>
<a href="#">Соглашение о конфиденциальности</a>
<a href="#">Декларация соответствия корма</a>
<a href="#">Декларация соответствия лакомств</a>
</div>
</div>
</footer>
<!-- Footer end -->

@ -0,0 +1,273 @@
jQuery(document).ready(function($) {
// Открытие/закрытие модалки
// $(document).on('click', '.cart-contents, .continue-shopping, .modal__close', function(e) {
// e.preventDefault();
// $('#modal-basket').toggleClass('active');
// });
// Обновление количества через input
$(document).on('change', '.counter__input', function() {
const key = $(this).data('key');
const quantity = $(this).val();
if (quantity > 0) {
updateCart(key, quantity);
} else {
removeItem(key);
}
});
// Увеличение количества
$(document).on('click', '.counter__button.plus', function(e) {
e.preventDefault();
const key = $(this).data('key');
const input = $(this).siblings('.counter__input');
const quantity = parseInt(input.val()) + 1;
input.val(quantity).trigger('change');
});
// Уменьшение количества
$(document).on('click', '.counter__button.minus', function(e) {
e.preventDefault();
const key = $(this).data('key');
const input = $(this).siblings('.counter__input');
let quantity = parseInt(input.val()) - 1;
quantity = quantity < 1 ? 1 : quantity;
input.val(quantity).trigger('change');
});
$(document).on('click', '.remove-item', function() {
const key = $(this).data('key');
removeItem(key);
});
// Удаление товара
function formatMoney(amount) {
if (typeof woocommerce_params !== 'undefined' && woocommerce_params.currency_format) {
const format = woocommerce_params.currency_format;
return format
.replace('%1$s', woocommerce_params.currency_symbol)
.replace('%2$s', parseFloat(amount).toFixed(2));
}
return woocommerce_params.currency_symbol + parseFloat(amount).toFixed(2);
}
// Хранилище временно удалённых товаров
const removedItemsStorageKey = 'woocommerce_removed_items';
function restoreRemovedItems() {
const removedItems = JSON.parse(localStorage.getItem(removedItemsStorageKey)) || [];
if (removedItems.length === 0) return;
$('#modal-basket').addClass('loading');
// Создаем копию массива для работы
let itemsToRemove = [...removedItems];
function processNextItem() {
if (itemsToRemove.length === 0) {
// Все элементы обработаны
localStorage.removeItem(removedItemsStorageKey);
updateCartFragment();
$('#modal-basket').removeClass('loading');
return;
}
const element = itemsToRemove.shift(); // Берем первый элемент
$.ajax({
type: 'POST',
url: woocommerce_params.ajax_url,
data: {
action: 'remove_cart_item',
cart_item_key: element.key
},
success: function(response) {
if (response.success) {
// Обновляем localStorage, удаляя только что обработанный элемент
const currentItems = JSON.parse(localStorage.getItem(removedItemsStorageKey)) || [];
const updatedItems = currentItems.filter(item => item.key !== element.key);
localStorage.setItem(removedItemsStorageKey, JSON.stringify(updatedItems));
}
// Обрабатываем следующий элемент
processNextItem();
},
error: function() {
// Продолжаем даже при ошибке
processNextItem();
}
});
}
// Начинаем обработку
processNextItem();
}
// Инициализация при загрузке
restoreRemovedItems();
// Функция удаления товара с возможностью восстановления
function removeItem(key) {
const $item = $(`[data-key="${key}"]`);
const productId = $item.data('product_id');
const variationId = $item.data('variation_id') || 0;
const quantity = parseInt($item.find('.counter__input').val());
// Сохраняем во временное хранилище
const removedItems = JSON.parse(localStorage.getItem(removedItemsStorageKey)) || [];
removedItems.push({ product_id: productId, variation_id: variationId, quantity: quantity, key: key });
localStorage.setItem(removedItemsStorageKey, JSON.stringify(removedItems));
// Показываем кнопку восстановления
$item.html(`
<p class="modal-basket-item__title">
Удаление товара из корзины: <span id="${key}_timer" class="timer_counter">5</span>с
</p>
<div class="modal-basket-item__return-wrapper">
<button class="modal-basket-item__return" data-key="${key}">
${woocommerce_params.i18n_restore_item || 'Restore'}
</button>
</div>
`);
// Удаляем через 5 секунд, если не восстановили
const removeTimeout = setTimeout(() => {
permanentRemoveItem(key, productId, variationId);
}, 5000);
const product_remove_timer = setInterval(() => {
let number = Number($(`#${key}_timer`).html()) - 1
$(`#${key}_timer`).html(number)
}, 1000);
// Обработчик восстановления
$(document).off('click', `[data-key="${key}"] .modal-basket-item__return`).on('click', `[data-key="${key}"] .modal-basket-item__return`, function(e) {
e.preventDefault();
clearTimeout(removeTimeout);
clearInterval(product_remove_timer); // Очищаем интервал
restoreItem(key, productId, variationId, quantity);
});
}
// Полное удаление товара
function permanentRemoveItem(key, productId, variationId) {
$('#modal-basket').addClass('loading');
$.ajax({
type: 'POST',
url: woocommerce_params.ajax_url,
data: {
action: 'remove_cart_item',
cart_item_key: key
},
complete: function() {
$('#modal-basket').removeClass('loading');
},
success: function(response) {
if (response.success) {
// Удаляем из временного хранилища
const removedItems = JSON.parse(localStorage.getItem(removedItemsStorageKey)) || [];
const updatedItems = removedItems.filter(item =>
!(item.product_id === productId && item.variation_id === variationId)
);
localStorage.setItem(removedItemsStorageKey, JSON.stringify(updatedItems));
updateCartFragment();
}
}
});
}
// Восстановление товара
function restoreItem(key, productId, variationId, quantity) {
$('#modal-basket').addClass('loading');
$.ajax({
type: 'POST',
url: woocommerce_params.ajax_url,
data: {
action: 'restore_cart_item',
product_id: productId,
variation_id: variationId,
quantity: quantity
},
complete: function() {
$('#modal-basket').removeClass('loading');
},
success: function(response) {
if (response.success) {
// Удаляем из временного хранилища
const removedItems = JSON.parse(localStorage.getItem(removedItemsStorageKey)) || [];
const updatedItems = removedItems.filter(item =>
!(item.product_id === productId && item.variation_id === variationId)
);
localStorage.setItem(removedItemsStorageKey, JSON.stringify(updatedItems));
updateCartFragment();
}
}
});
}
// Обновление корзины при добавлении товара
$(document.body).on('added_to_cart', function() {
updateCartFragment();
});
// Функция обновления количества
function updateCart(key, quantity) {
$.ajax({
type: 'POST',
url: '/wp-admin/admin-ajax.php', // Используем стандартный параметр WooCommerce
data: {
action: 'update_cart_quantity',
cart_item_key: key,
quantity: quantity
},
beforeSend: function() {
$('#modal-basket').addClass('loading');
},
complete: function() {
$('#modal-basket').removeClass('loading');
},
success: function(response) {
if (response.success) {
updateCartFragment();
} else {
console.error('Ошибка при обновлении корзины');
}
},
error: function(xhr, status, error) {
console.error('AJAX ошибка:', error);
}
});
}
// Обновление фрагментов корзины
function updateCartFragment() {
$.ajax({
type: 'POST',
url: woocommerce_params.ajax_url,
data: {
action: 'get_cart_fragment'
},
beforeSend: function() {
$('#modal-basket').addClass('loading');
},
complete: function() {
$('#modal-basket').removeClass('loading');
},
success: function(response) {
console.log(response)
if (response.success) {
$('#modal-basket-content').html(response.data.contents);
$('.modal-block-price__price').html(response.data.total);
$('.cart-count').text(response.data.count);
}
}
});
}
});

@ -0,0 +1,8 @@
<?php
add_filter('woocommerce_get_script_data', 'add_custom_woocommerce_params', 10, 2);
function add_custom_woocommerce_params($params, $handle) {
// Добавляем только для скрипта корзины
$params['i18n_restore_item'] = pll__('Восстановить');
return $params;
}

@ -0,0 +1,161 @@
jQuery(document).ready(function($) {
jQuery(document.body).on('updated_checkout', function() {
// Найти новые методы доставки внутри shop_table
var shippingMethodsHtml = jQuery('.woocommerce-checkout-review-order-table .woocommerce-shipping-methods').html();
// Обновить кастомный блок
if(!shippingMethodsHtml){
shippingMethodsHtml ='<p>Не удалось получить доступные методы доставки! <br>Укажите свой город для получения доступных методов.</p>'
}
jQuery('#custom-shipping-methods').html(shippingMethodsHtml);
jQuery('.order-contacts__delivery').removeClass('loading');
jQuery('.modal-map-control__item.active').click()
});
$(document.body).on('update_checkout', function() {
jQuery('.order-contacts__delivery').addClass('loading');
});
$('body').on('click', '.modal-map-control__item', function(){
if (!$(this).hasClass('active')){
$('#addr_inp').val('')
$('#pvz_inp').val('')
$('#billing_address_1').val('')
$('#billing_address_2').val('')
}
$('.shipping-add-info').removeClass('active')
var remote = $(this).data('remote')
$('.shipping-add-info[data-remote="' + remote + '"]').addClass('active')
})
jQuery('#addr_inp').on('click', function(){
jQuery('#address_input').addClass('active')
})
});
jQuery(document).ready(function($) {
// Перехват отправки формы купона
$(document).on('click', 'button[name="apply_coupon"]', function(e) {
e.preventDefault(); // Останавливаем отправку основной формы
// Отправка данных купона через AJAX
var couponCode = $('#coupon_code').val();
if (!couponCode) {
alert('Пожалуйста, введите код купона.');
return;
}
$.ajax({
url: wc_checkout_params.ajax_url, // URL для AJAX-запроса WooCommerce
type: 'POST',
data: {
action: 'apply_coupon',
coupon_code: couponCode
},
success: function(response) {
if (response.success) {
$(document.body).trigger('update_checkout');
$('#promo_form').hide()
$('#promo_delete').show()
$('#promo_err').hide()
$('#coupon_code_app').val('Применен промокод: ' + couponCode)
$('#delete_coupon').data('coupon', couponCode)
} else {
$('#promo_err').show()
}
},
error: function() {
alert('Произошла ошибка. Попробуйте ещё раз.');
}
});
});
jQuery('#pvz_inp').on('click', function(){
jQuery('.open-pvz-btn').click()
})
$('#address_input input').on('change, input, keyup', function(){
var address = $('#f_address').val()
var apart = $('#f_apartment').val()
var floor = $('#f_floor').val()
var entrance = $('#f_entrance').val()
var number_phone = $('#f_number-phone').val()
var address_2 = ''
if (apart){
address_2 += ' кв ' + apart
}
if (floor){
address_2 += ' этаж ' + floor
}
if (entrance){
address_2 += ' подъезд ' + entrance
}
if (number_phone){
address_2 += ' домофон ' + number_phone
}
$('#addr_inp').val(address + address_2)
$('#billing_address_1').val(address)
$('#billing_address_2').val(address_2)
})
});
jQuery(document).ready(function ($) {
$(document.body).on('checkout_error', function () {
// $('.woocommerce-error').remove();
$('.form-input__error').removeClass('active');
// // Добавляем ошибки рядом с полями
$('.woocommerce-error li').each(function () {
var errorMessage = $(this).text().trim();
var fieldKey = $(this).data('id'); // Предполагается, что ошибка содержит data-id
console.log(errorMessage)
console.log(fieldKey)
if (fieldKey) {
var errorContainer = $('#' + fieldKey + '-error');
if (errorContainer.length) {
errorContainer.html('<span class="error-message">' + errorMessage + '</span>');
$('#' + fieldKey + '-error').addClass('active');
}
}
if (errorMessage == 'phone_err' || errorMessage == 'The string supplied did not seem to be a phone number.' || errorMessage.includes('Некорректный номер телефона')){
$('#billing_phone-error').html('Неправильно введен номер')
$('#billing_phone-error').addClass('active');
}
if (errorMessage == 'Order pickup point not selected.' || errorMessage == 'Не выбран ПВЗ для доставки заказа.'){
$('#pvz-error').html(errorMessage)
$('#pvz-error').addClass('active');
}
if (errorMessage == 'adress_error'){
$('#adr-error').html('Не указан адрес доставки')
$('#adr-error').addClass('active');
}
if (errorMessage == 'Неверный адрес эл. почты для выставления счета'){
$('#billing_email-error').html(errorMessage).addClass('active');
}
if(errorMessage == 'Не выбран метод доставки. Пожалуйста перепроверьте ваш адрес или обратитесь за помощью к администрации сайта.'){
$('#billing_city-error').html(errorMessage).addClass('active');
}
if(errorMessage == 'Этот email уже зарегистрирован.'){
$('#acc-error').html('Этот email уже зарегистрирован. Войдите в свой аккаунт или укажите другой E-mail.').addClass('active');
}
});
});
$('#delete_coupon').on('click', function(){
$('.woocommerce-remove-coupon[data-coupon=' + $(this).data('coupon') + ']').click()
})
$('.woocommerce-remove-coupon').on('click', function(){
$('#promo_form').show()
$('#promo_delete').hide()
})
});

@ -0,0 +1,11 @@
<?php
/**
* The template for displaying all pages.
*
* This is the template that renders pages using Timber (Twig).
*/
$context = Timber::context();
$context['post'] = Timber::get_post();
Timber::render('page.twig', $context);

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

@ -0,0 +1,13 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_230_9775)">
<path d="M0 0H16V5.33437H0V0Z" fill="#D90012"/>
<path d="M0 5.33447H16V10.6657H0V5.33447Z" fill="#0033A0"/>
<path d="M0 10.6655H16V15.9999H0V10.6655Z" fill="#F2A800"/>
</g>
<rect x="0.1" y="0.1" width="15.8" height="15.8" stroke="#999999" stroke-width="0.2"/>
<defs>
<clipPath id="clip0_230_9775">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 502 B

@ -0,0 +1,13 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_230_9627)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H16V16H0V0Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 5.33447H16V16.0001H0V5.33447Z" fill="#0039A6"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 10.6655H16V15.9999H0V10.6655Z" fill="#D52B1E"/>
</g>
<rect x="0.1" y="0.1" width="15.8" height="15.8" stroke="#999999" stroke-width="0.2"/>
<defs>
<clipPath id="clip0_230_9627">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 615 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.0 KiB

@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.5 12.3643H21" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M4.5 12.3643L10.864 18.7282" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M4.5 12.3643L10.864 6.0003" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 459 B

@ -0,0 +1,3 @@
<svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.46967 0.46967C0.762563 0.176777 1.23744 0.176777 1.53033 0.46967L5 3.93934L8.46967 0.46967C8.76256 0.176777 9.23744 0.176777 9.53033 0.46967C9.82322 0.762563 9.82322 1.23744 9.53033 1.53033L5.53033 5.53033C5.23744 5.82322 4.76256 5.82322 4.46967 5.53033L0.46967 1.53033C0.176777 1.23744 0.176777 0.762563 0.46967 0.46967Z" fill="#333333"/>
</svg>

After

Width:  |  Height:  |  Size: 493 B

@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.94673 2.74797C9.26993 2.62677 9.63019 2.79052 9.75139 3.11373L12.2514 9.78039C12.3045 9.92188 12.3045 10.0778 12.2514 10.2193L9.75139 16.886C9.63019 17.2092 9.26993 17.3729 8.94673 17.2517C8.62353 17.1305 8.45978 16.7703 8.58098 16.4471L10.9987 9.99984L8.58098 3.55263C8.45978 3.22943 8.62353 2.86917 8.94673 2.74797Z" fill="#333333"/>
</svg>

After

Width:  |  Height:  |  Size: 491 B

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.7369 3.29777C11.1247 3.15233 11.557 3.34884 11.7025 3.73668L14.7025 11.7367C14.7661 11.9065 14.7661 12.0936 14.7025 12.2634L11.7025 20.2634C11.557 20.6512 11.1247 20.8477 10.7369 20.7023C10.349 20.5568 10.1525 20.1245 10.298 19.7367L13.1992 12L10.298 4.26336C10.1525 3.87552 10.349 3.44321 10.7369 3.29777Z" fill="#666666"/>
</svg>

After

Width:  |  Height:  |  Size: 481 B

@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 16.4854H28" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6 16.4854L14.4853 24.9706" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6 16.4854L14.4853 8.00007" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 456 B

@ -0,0 +1,5 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14 8.24268H3" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14 8.24268L9.75736 12.4853" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14 8.24268L9.75736 4.00003" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 458 B

@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M26 16.4854H4" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M26 16.4854L17.5147 24.9706" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M26 16.4854L17.5147 8.00007" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 458 B

@ -0,0 +1,3 @@
<svg width="10" height="8" viewBox="0 0 10 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.50681 0.784901C9.86151 1.14024 9.86101 1.71584 9.50567 2.07055L4.35112 7.216C3.99601 7.57049 3.42085 7.57024 3.06604 7.21544L0.493317 4.64271C0.138295 4.28769 0.138295 3.71208 0.493317 3.35706C0.848339 3.00204 1.42394 3.00204 1.77897 3.35706L3.70944 5.28753L8.22116 0.783766C8.57649 0.429057 9.1521 0.429565 9.50681 0.784901Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 495 B

@ -0,0 +1,11 @@
<svg width="16" height="12" viewBox="0 0 16 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.7071 0.292893C16.0976 0.683417 16.0976 1.31658 15.7071 1.70711L5.70711 11.7071C5.31658 12.0976 4.68342 12.0976 4.29289 11.7071L0.292893 7.70711C-0.0976311 7.31658 -0.0976311 6.68342 0.292893 6.29289C0.683417 5.90237 1.31658 5.90237 1.70711 6.29289L5 9.58579L14.2929 0.292893C14.6834 -0.0976311 15.3166 -0.0976311 15.7071 0.292893Z" fill="url(#paint0_radial_79_10214)" />
<defs>
<radialGradient id="paint0_radial_79_10214" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(23.9562 -7.00625) rotate(143.344) scale(34.5677 45.2811)">
<stop stop-color="#0F5881" />
<stop offset="0.512169" stop-color="#1EA49C" />
<stop offset="0.807073" stop-color="#76CE75" />
<stop offset="0.911458" stop-color="#ECF39F" />
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 954 B

@ -0,0 +1,13 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1_3176)">
<path d="M4 7H20" stroke="#2C3E50" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5 7L6 19C6 19.5304 6.21071 20.0391 6.58579 20.4142C6.96086 20.7893 7.46957 21 8 21H16C16.5304 21 17.0391 20.7893 17.4142 20.4142C17.7893 20.0391 18 19.5304 18 19L19 7" stroke="#2C3E50" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9 7V4C9 3.73478 9.10536 3.48043 9.29289 3.29289C9.48043 3.10536 9.73478 3 10 3H14C14.2652 3 14.5196 3.10536 14.7071 3.29289C14.8946 3.48043 15 3.73478 15 4V7" stroke="#2C3E50" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10 12L14 16M14 12L10 16" stroke="#2C3E50" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_1_3176">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 983 B

@ -0,0 +1,11 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1_2483)">
<path d="M18 6L6 18" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6 6L18 18" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_1_2483">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 455 B

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.2929 5.70711C11.1054 5.51957 11 5.26522 11 5C11 4.73478 11.1054 4.48043 11.2929 4.29289C11.4804 4.10536 11.7348 4 12 4C12.2652 4 12.5196 4.10536 12.7071 4.29289C12.8946 4.48043 13 4.73478 13 5C13 5.26522 12.8946 5.51957 12.7071 5.70711C12.5196 5.89464 12.2652 6 12 6C11.7348 6 11.4804 5.89464 11.2929 5.70711ZM11 12C11 12.2652 11.1054 12.5196 11.2929 12.7071C11.4804 12.8946 11.7348 13 12 13C12.2652 13 12.5196 12.8946 12.7071 12.7071C12.8946 12.5196 13 12.2652 13 12C13 11.7348 12.8946 11.4804 12.7071 11.2929C12.5196 11.1054 12.2652 11 12 11C11.7348 11 11.4804 11.1054 11.2929 11.2929C11.1054 11.4804 11 11.7348 11 12ZM11 19C11 19.2652 11.1054 19.5196 11.2929 19.7071C11.4804 19.8946 11.7348 20 12 20C12.2652 20 12.5196 19.8946 12.7071 19.7071C12.8946 19.5196 13 19.2652 13 19C13 18.7348 12.8946 18.4804 12.7071 18.2929C12.5196 18.1054 12.2652 18 12 18C11.7348 18 11.4804 18.1054 11.2929 18.2929C11.1054 18.4804 11 18.7348 11 19Z" fill="#121212"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 3.25C6.41421 3.25 6.75 3.58579 6.75 4V7.35424C7.19755 7.48113 7.60976 7.72067 7.94454 8.05546C8.46027 8.57118 8.75 9.27065 8.75 10C8.75 10.7293 8.46027 11.4288 7.94454 11.9445C7.60976 12.2793 7.19755 12.5189 6.75 12.6458V20C6.75 20.4142 6.41421 20.75 6 20.75C5.58579 20.75 5.25 20.4142 5.25 20V12.6458C4.80245 12.5189 4.39024 12.2793 4.05546 11.9445C3.53973 11.4288 3.25 10.7293 3.25 10C3.25 9.27065 3.53973 8.57118 4.05546 8.05546C4.39024 7.72067 4.80245 7.48113 5.25 7.35424V4C5.25 3.58579 5.58579 3.25 6 3.25ZM12 3.25C12.4142 3.25 12.75 3.58579 12.75 4V13.3542C13.1975 13.4811 13.6098 13.7207 13.9445 14.0555C14.4603 14.5712 14.75 15.2707 14.75 16C14.75 16.7293 14.4603 17.4288 13.9445 17.9445C13.6098 18.2793 13.1975 18.5189 12.75 18.6458V20C12.75 20.4142 12.4142 20.75 12 20.75C11.5858 20.75 11.25 20.4142 11.25 20V18.6458C10.8025 18.5189 10.3902 18.2793 10.0555 17.9445C9.53973 17.4288 9.25 16.7293 9.25 16C9.25 15.2707 9.53973 14.5712 10.0555 14.0555C10.3902 13.7207 10.8025 13.4811 11.25 13.3542V4C11.25 3.58579 11.5858 3.25 12 3.25ZM18 3.25C18.4142 3.25 18.75 3.58579 18.75 4V4.35424C19.1975 4.48112 19.6098 4.72067 19.9445 5.05546C20.4603 5.57118 20.75 6.27065 20.75 7C20.75 7.72935 20.4603 8.42882 19.9445 8.94454C19.6098 9.27933 19.1975 9.51887 18.75 9.64576V20C18.75 20.4142 18.4142 20.75 18 20.75C17.5858 20.75 17.25 20.4142 17.25 20V9.64576C16.8025 9.51887 16.3902 9.27933 16.0555 8.94454C15.5397 8.42882 15.25 7.72935 15.25 7C15.25 6.27065 15.5397 5.57118 16.0555 5.05546C16.3902 4.72067 16.8025 4.48112 17.25 4.35424V4C17.25 3.58579 17.5858 3.25 18 3.25ZM18 5.75C17.6685 5.75 17.3505 5.8817 17.1161 6.11612C16.8817 6.35054 16.75 6.66848 16.75 7C16.75 7.33152 16.8817 7.64946 17.1161 7.88388C17.3505 8.1183 17.6685 8.25 18 8.25C18.3315 8.25 18.6495 8.1183 18.8839 7.88388C19.1183 7.64946 19.25 7.33152 19.25 7C19.25 6.66848 19.1183 6.35054 18.8839 6.11612C18.6495 5.8817 18.3315 5.75 18 5.75ZM6 8.75C5.66848 8.75 5.35054 8.8817 5.11612 9.11612C4.8817 9.35054 4.75 9.66848 4.75 10C4.75 10.3315 4.8817 10.6495 5.11612 10.8839C5.35054 11.1183 5.66848 11.25 6 11.25C6.33152 11.25 6.64946 11.1183 6.88388 10.8839C7.1183 10.6495 7.25 10.3315 7.25 10C7.25 9.66848 7.1183 9.35054 6.88388 9.11612C6.64946 8.8817 6.33152 8.75 6 8.75ZM12 14.75C11.6685 14.75 11.3505 14.8817 11.1161 15.1161C10.8817 15.3505 10.75 15.6685 10.75 16C10.75 16.3315 10.8817 16.6495 11.1161 16.8839C11.3505 17.1183 11.6685 17.25 12 17.25C12.3315 17.25 12.6495 17.1183 12.8839 16.8839C13.1183 16.6495 13.25 16.3315 13.25 16C13.25 15.6685 13.1183 15.3505 12.8839 15.1161C12.6495 14.8817 12.3315 14.75 12 14.75Z" fill="#121212"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -0,0 +1,6 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.7875 10.2271C19.7875 9.51801 19.7239 8.83619 19.6057 8.18164H10.1875V12.0498H15.5693C15.3375 13.2998 14.633 14.3589 13.5739 15.068V17.5771H16.8057C18.6966 15.8362 19.7875 13.2726 19.7875 10.2271Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.1864 20.0004C12.8864 20.0004 15.15 19.105 16.8046 17.5777L13.5728 15.0686C12.6773 15.6686 11.5318 16.0231 10.1864 16.0231C7.58183 16.0231 5.37728 14.264 4.59092 11.9004H1.25V14.4913C2.89546 17.7595 6.27728 20.0004 10.1864 20.0004Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.59205 11.8997C4.39205 11.2997 4.27842 10.6588 4.27842 9.99971C4.27842 9.34062 4.39205 8.6997 4.59205 8.0997V5.50879H1.25114C0.573864 6.85879 0.1875 8.38607 0.1875 9.99971C0.1875 11.6133 0.573864 13.1406 1.25114 14.4906L4.59205 11.8997Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.1864 3.97728C11.6546 3.97728 12.9728 4.48183 14.0091 5.47274L16.8773 2.60455C15.1455 0.990911 12.8818 0 10.1864 0C6.27728 0 2.89546 2.24091 1.25 5.5091L4.59092 8.10002C5.37728 5.73638 7.58183 3.97728 10.1864 3.97728Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,11 @@
<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.42433 0.575954C1.18837 0.343303 0.807128 0.344651 0.572814 0.578965C0.338499 0.81328 0.339838 1.19183 0.575804 1.42448L5.84223 6.61694L0.575803 11.8094C0.339837 12.042 0.338499 12.4206 0.572813 12.6549C0.807128 12.8892 1.18837 12.8906 1.42433 12.6579L6.6968 7.45951L11.9692 12.6579C12.2052 12.8905 12.5864 12.8892 12.8208 12.6549C13.0551 12.4206 13.0537 12.042 12.8178 11.8094L7.55137 6.61694L12.8178 1.42451C13.0537 1.19186 13.0551 0.813306 12.8208 0.578991C12.5864 0.344677 12.2052 0.343328 11.9692 0.57598L6.6968 5.77437L1.42433 0.575954Z" fill="url(#paint0_radial_61_3534)"/>
<defs>
<radialGradient id="paint0_radial_61_3534" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(19.26 -6.85449) rotate(135.608) scale(30.5558 41.776)">
<stop stop-color="#0F5881"/>
<stop offset="0.512169" stop-color="#1EA49C"/>
<stop offset="0.807073" stop-color="#76CE75"/>
<stop offset="0.911458" stop-color="#ECF39F"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,10 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_61_7537)">
<path d="M5 12H19" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_61_7537">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 349 B

@ -0,0 +1,11 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_178_5112)">
<path d="M12 5V19" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5 12H19" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_178_5112">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 455 B

@ -0,0 +1,11 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_61_7542)">
<path d="M12 5V19" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5 12H19" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_61_7542">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 453 B

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.00005 1.2498C4.27213 1.2498 1.25005 4.27188 1.25005 7.9998C1.25005 11.7277 4.27213 14.7498 8.00005 14.7498C11.728 14.7498 14.75 11.7277 14.75 7.9998C14.75 4.27188 11.728 1.2498 8.00005 1.2498ZM0.0500488 7.9998C0.0500488 3.60914 3.60939 0.0498047 8.00005 0.0498047C12.3907 0.0498047 15.9501 3.60914 15.9501 7.9998C15.9501 12.3905 12.3907 15.9498 8.00005 15.9498C3.60938 15.9498 0.0500488 12.3905 0.0500488 7.9998ZM8.75664 11.8914C8.75664 12.3056 8.42085 12.6414 8.00664 12.6414C7.59243 12.6414 7.25664 12.3056 7.25664 11.8914C7.25664 11.4772 7.59243 11.1414 8.00664 11.1414C8.42085 11.1414 8.75664 11.4772 8.75664 11.8914ZM6.35884 6.22749C6.35879 5.76088 6.51651 5.31995 6.80394 5.00253C7.08243 4.69497 7.51419 4.46749 8.14659 4.46748C9.28878 4.46747 10.0031 5.57665 9.44696 6.64451C9.21979 7.08066 8.93274 7.37811 8.60211 7.7207L8.60206 7.72075C8.49777 7.82881 8.38915 7.94137 8.27671 8.06418C7.82078 8.56216 7.37999 9.17405 7.37999 10.1425C7.37999 10.4738 7.64862 10.7425 7.97999 10.7425C8.31136 10.7425 8.57999 10.4738 8.57999 10.1425C8.57999 9.61088 8.79169 9.27875 9.16178 8.87452C9.23347 8.79622 9.31482 8.71242 9.40228 8.62233C9.75046 8.26368 10.1953 7.80545 10.5113 7.19883C11.4927 5.31454 10.1697 3.26746 8.14658 3.26748C7.19634 3.26749 6.43417 3.62308 5.91442 4.19707C5.4036 4.7612 5.15877 5.5003 5.15884 6.22761C5.15887 6.55898 5.42753 6.82758 5.7589 6.82755C6.09027 6.82752 6.35887 6.55886 6.35884 6.22749Z" fill="#121212"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -0,0 +1,3 @@
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.5 1.5C7.64641 1.5 6.80117 1.66813 6.01256 1.99478C5.22394 2.32144 4.50739 2.80023 3.90381 3.40381C3.30023 4.00739 2.82144 4.72394 2.49478 5.51256C2.16813 6.30117 2 7.14641 2 8C2 8.85359 2.16813 9.69883 2.49478 10.4874C2.82144 11.2761 3.30023 11.9926 3.90381 12.5962C4.50739 13.1998 5.22394 13.6786 6.01256 14.0052C6.80117 14.3319 7.64641 14.5 8.5 14.5C9.35359 14.5 10.1988 14.3319 10.9874 14.0052C11.7761 13.6786 12.4926 13.1998 13.0962 12.5962C13.6998 11.9926 14.1786 11.2761 14.5052 10.4874C14.8319 9.69883 15 8.85359 15 8C15 7.14641 14.8319 6.30117 14.5052 5.51256C14.1786 4.72394 13.6998 4.00739 13.0962 3.40381C12.4926 2.80023 11.7761 2.32144 10.9874 1.99478C10.1988 1.66813 9.35359 1.5 8.5 1.5ZM6.39524 2.91866C7.06253 2.64226 7.77773 2.5 8.5 2.5C9.22227 2.5 9.93747 2.64226 10.6048 2.91866C11.272 3.19506 11.8784 3.60019 12.3891 4.11091C12.8998 4.62164 13.3049 5.22795 13.5813 5.89524C13.8577 6.56253 14 7.27773 14 8C14 8.72227 13.8577 9.43747 13.5813 10.1048C13.3049 10.772 12.8998 11.3784 12.3891 11.8891C11.8784 12.3998 11.272 12.8049 10.6048 13.0813C9.93747 13.3577 9.22227 13.5 8.5 13.5C7.77773 13.5 7.06253 13.3577 6.39524 13.0813C5.72795 12.8049 5.12164 12.3998 4.61091 11.8891C4.10019 11.3784 3.69506 10.772 3.41866 10.1048C3.14226 9.43747 3 8.72227 3 8C3 7.27773 3.14226 6.56253 3.41866 5.89524C3.69506 5.22795 4.10019 4.62163 4.61091 4.11091C5.12163 3.60019 5.72795 3.19506 6.39524 2.91866ZM7.52022 6.31311C7.32496 6.11785 7.00838 6.11785 6.81311 6.31311C6.61785 6.50838 6.61785 6.82496 6.81311 7.02022L7.79289 8L6.81311 8.97978C6.61785 9.17504 6.61785 9.49162 6.81311 9.68689C7.00838 9.88215 7.32496 9.88215 7.52022 9.68689L8.5 8.70711L9.47978 9.68689C9.67504 9.88215 9.99162 9.88215 10.1869 9.68689C10.3821 9.49162 10.3821 9.17504 10.1869 8.97978L9.20711 8L10.1869 7.02022C10.3821 6.82496 10.3821 6.50838 10.1869 6.31311C9.99162 6.11785 9.67504 6.11785 9.47978 6.31311L8.5 7.29289L7.52022 6.31311Z" fill="#F60909"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1,3 @@
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.5 1.5C7.64641 1.5 6.80117 1.66813 6.01256 1.99478C5.22394 2.32144 4.50739 2.80023 3.90381 3.40381C3.30023 4.00739 2.82144 4.72394 2.49478 5.51256C2.16813 6.30117 2 7.14641 2 8C2 8.85359 2.16813 9.69883 2.49478 10.4874C2.82144 11.2761 3.30023 11.9926 3.90381 12.5962C4.50739 13.1998 5.22394 13.6786 6.01256 14.0052C6.80117 14.3319 7.64641 14.5 8.5 14.5C9.35359 14.5 10.1988 14.3319 10.9874 14.0052C11.7761 13.6786 12.4926 13.1998 13.0962 12.5962C13.6998 11.9926 14.1786 11.2761 14.5052 10.4874C14.8319 9.69883 15 8.85359 15 8C15 7.14641 14.8319 6.30117 14.5052 5.51256C14.1786 4.72394 13.6998 4.00739 13.0962 3.40381C12.4926 2.80023 11.7761 2.32144 10.9874 1.99478C10.1988 1.66813 9.35359 1.5 8.5 1.5ZM6.39524 2.91866C7.06253 2.64226 7.77773 2.5 8.5 2.5C9.22227 2.5 9.93747 2.64226 10.6048 2.91866C11.272 3.19506 11.8784 3.60019 12.3891 4.11091C12.8998 4.62164 13.3049 5.22795 13.5813 5.89524C13.8577 6.56253 14 7.27773 14 8C14 8.72227 13.8577 9.43747 13.5813 10.1048C13.3049 10.772 12.8998 11.3784 12.3891 11.8891C11.8784 12.3998 11.272 12.8049 10.6048 13.0813C9.93747 13.3577 9.22227 13.5 8.5 13.5C7.77773 13.5 7.06253 13.3577 6.39524 13.0813C5.72795 12.8049 5.12164 12.3998 4.61091 11.8891C4.10019 11.3784 3.69506 10.772 3.41866 10.1048C3.14226 9.43747 3 8.72227 3 8C3 7.27773 3.14226 6.56253 3.41866 5.89524C3.69506 5.22795 4.10019 4.62163 4.61091 4.11091C5.12163 3.60019 5.72795 3.19506 6.39524 2.91866ZM10.8536 7.02022C11.0488 6.82496 11.0488 6.50838 10.8536 6.31311C10.6583 6.11785 10.3417 6.11785 10.1464 6.31311L7.83333 8.62623L6.85355 7.64645C6.65829 7.45118 6.34171 7.45118 6.14645 7.64645C5.95118 7.84171 5.95118 8.15829 6.14645 8.35355L7.47978 9.68689C7.67504 9.88215 7.99162 9.88215 8.18689 9.68689L10.8536 7.02022Z" fill="#2ED15D"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -0,0 +1,3 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.75 5.25L1.25 2.75L6.25 2.75L3.75 5.25Z" fill="#999999"/>
</svg>

After

Width:  |  Height:  |  Size: 168 B

@ -0,0 +1,3 @@
<svg width="22" height="14" viewBox="0 0 22 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.9825 14C4.46596 14 0.178638 8.74474 0 0H3.76515C3.88882 6.41842 6.66459 9.13714 8.86321 9.6977V0H12.4085V5.53553C14.5796 5.2973 16.8607 2.77477 17.6302 0H21.1755C20.8855 1.43908 20.3075 2.80165 19.4776 4.0025C18.6477 5.20335 17.5837 6.21663 16.3523 6.97898C17.7269 7.67555 18.941 8.6615 19.9145 9.87175C20.888 11.082 21.5988 12.489 22 14H18.0974C17.7373 12.6876 17.0054 11.5128 15.9934 10.6228C14.9814 9.73284 13.7343 9.16727 12.4085 8.997V14H11.9825Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 584 B

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.62404 2.77566C3.38807 2.54301 3.00683 2.54436 2.77252 2.77867C2.53821 3.01299 2.53954 3.39154 2.77551 3.62419L6.90259 7.6933L2.77551 11.7624C2.53954 11.9951 2.53821 12.3736 2.77252 12.6079C3.00684 12.8422 3.38807 12.8436 3.62404 12.6109L7.75716 8.53587L11.8903 12.6109C12.1262 12.8436 12.5075 12.8422 12.7418 12.6079C12.9761 12.3736 12.9748 11.995 12.7388 11.7624L8.61173 7.6933L12.7388 3.62421C12.9748 3.39156 12.9761 3.01301 12.7418 2.77869C12.5075 2.54438 12.1262 2.54303 11.8903 2.77568L7.75716 6.85073L3.62404 2.77566Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 695 B

@ -0,0 +1,3 @@
<svg width="14" height="20" viewBox="0 0 14 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.1991 2.77628H8.65909C5.83576 2.77628 4.35076 4.20628 4.35076 6.31461C4.35076 8.69794 5.37742 9.81461 7.48576 11.2463L9.22742 12.4196L4.22242 19.8979H0.482422L4.97409 13.2079C2.39076 11.3563 0.940755 9.55794 0.940755 6.51628C0.940755 2.70294 3.59909 0.0996094 8.64076 0.0996094H13.6458V19.8796H10.1991V2.77628Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 442 B

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9995 3.53846C11.3616 3.53846 10.7499 3.78159 10.2988 4.21437C9.84778 4.64715 9.59439 5.23412 9.59439 5.84615V7.12821H14.4045V5.84615C14.4045 5.23412 14.1511 4.64715 13.7001 4.21437C13.2491 3.78159 12.6373 3.53846 11.9995 3.53846ZM16.0079 7.12821V5.84615C16.0079 4.82609 15.5856 3.84781 14.8339 3.12651C14.0821 2.40522 13.0626 2 11.9995 2C10.9364 2 9.91679 2.40522 9.16506 3.12651C8.41333 3.84781 7.99102 4.82609 7.99102 5.84615V7.12821H5.93986M7.99102 8.66667H5.93976C5.74711 8.66665 5.55664 8.7066 5.38159 8.78378C5.20654 8.86097 5.05095 8.97356 4.9255 9.11385C4.80004 9.25413 4.70769 9.41879 4.65477 9.59653C4.60186 9.77423 4.58961 9.9608 4.61887 10.1435C4.61886 10.1434 4.61888 10.1435 4.61887 10.1435L5.96036 18.5045C6.04768 19.0493 6.33539 19.5463 6.77139 19.9052C7.20738 20.2642 7.76287 20.4615 8.33735 20.4615C8.33734 20.4615 8.33736 20.4615 8.33735 20.4615H15.6616C16.2362 20.4617 16.7921 20.2644 17.2283 19.9055C17.6645 19.5465 17.9523 19.0496 18.0396 18.5046L19.3811 10.1436C19.3811 10.1436 19.3811 10.1435 19.3811 10.1436C19.4104 9.96093 19.3981 9.77423 19.3452 9.59653C19.2923 9.41879 19.1999 9.25413 19.0745 9.11385C18.949 8.97356 18.7935 8.86097 18.6184 8.78378C18.4433 8.7066 18.253 8.66665 18.0603 8.66667H16.0079V10.9744C16.0079 11.3992 15.649 11.7436 15.2062 11.7436C14.7635 11.7436 14.4045 11.3992 14.4045 10.9744V8.66667H9.59439V10.9744C9.59439 11.3992 9.23547 11.7436 8.79271 11.7436C8.34995 11.7436 7.99102 11.3992 7.99102 10.9744V8.66667ZM16.0079 7.12821H18.0601C18.0601 7.12821 18.0602 7.12821 18.0601 7.12821C18.4839 7.12817 18.9028 7.21606 19.2879 7.38586C19.673 7.55567 20.0153 7.80338 20.2913 8.11201C20.5673 8.42063 20.7705 8.78288 20.8869 9.1739C21.0033 9.56493 21.0303 9.97549 20.9658 10.3774L19.6244 18.7385C19.6243 18.7385 19.6244 18.7384 19.6244 18.7385C19.4788 19.6467 18.9991 20.475 18.2722 21.0732C17.5453 21.6715 16.6192 22.0002 15.6616 22C15.6615 22 15.6616 22 15.6616 22H8.33735C7.37986 22 6.45398 21.6711 5.72732 21.0728C5.00069 20.4746 4.52121 19.6466 4.37565 18.7386C4.37565 18.7385 4.37566 18.7386 4.37565 18.7386L3.03416 10.3776C2.96974 9.97561 2.99665 9.56493 3.11308 9.1739C3.22951 8.78288 3.43268 8.42063 3.70868 8.11201C3.98468 7.80338 4.32697 7.55567 4.71208 7.38586C5.09717 7.21606 5.51606 7.12817 5.93986 7.12821" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9995 3.53846C11.3616 3.53846 10.7499 3.78159 10.2988 4.21437C9.84778 4.64715 9.59439 5.23412 9.59439 5.84615V7.12821H14.4045V5.84615C14.4045 5.23412 14.1511 4.64715 13.7001 4.21437C13.2491 3.78159 12.6373 3.53846 11.9995 3.53846ZM16.0079 7.12821V5.84615C16.0079 4.82609 15.5856 3.84781 14.8339 3.12651C14.0821 2.40522 13.0626 2 11.9995 2C10.9364 2 9.91679 2.40522 9.16506 3.12651C8.41333 3.84781 7.99102 4.82609 7.99102 5.84615V7.12821H5.93986M7.99102 8.66667H5.93976C5.74711 8.66665 5.55664 8.7066 5.38159 8.78378C5.20654 8.86097 5.05095 8.97356 4.9255 9.11385C4.80004 9.25413 4.70769 9.41879 4.65477 9.59653C4.60186 9.77423 4.58961 9.9608 4.61887 10.1435C4.61886 10.1434 4.61888 10.1435 4.61887 10.1435L5.96036 18.5045C6.04768 19.0493 6.33539 19.5463 6.77139 19.9052C7.20738 20.2642 7.76287 20.4615 8.33735 20.4615C8.33734 20.4615 8.33736 20.4615 8.33735 20.4615H15.6616C16.2362 20.4617 16.7921 20.2644 17.2283 19.9055C17.6645 19.5465 17.9523 19.0496 18.0396 18.5046L19.3811 10.1436C19.3811 10.1436 19.3811 10.1435 19.3811 10.1436C19.4104 9.96093 19.3981 9.77423 19.3452 9.59653C19.2923 9.41879 19.1999 9.25413 19.0745 9.11385C18.949 8.97356 18.7935 8.86097 18.6184 8.78378C18.4433 8.7066 18.253 8.66665 18.0603 8.66667H16.0079V10.9744C16.0079 11.3992 15.649 11.7436 15.2062 11.7436C14.7635 11.7436 14.4045 11.3992 14.4045 10.9744V8.66667H9.59439V10.9744C9.59439 11.3992 9.23547 11.7436 8.79271 11.7436C8.34995 11.7436 7.99102 11.3992 7.99102 10.9744V8.66667ZM16.0079 7.12821H18.0601C18.0601 7.12821 18.0602 7.12821 18.0601 7.12821C18.4839 7.12817 18.9028 7.21606 19.2879 7.38586C19.673 7.55567 20.0153 7.80338 20.2913 8.11201C20.5673 8.42063 20.7705 8.78288 20.8869 9.1739C21.0033 9.56493 21.0303 9.97549 20.9658 10.3774L19.6244 18.7385C19.6243 18.7385 19.6244 18.7384 19.6244 18.7385C19.4788 19.6467 18.9991 20.475 18.2722 21.0732C17.5453 21.6715 16.6192 22.0002 15.6616 22C15.6615 22 15.6616 22 15.6616 22H8.33735C7.37986 22 6.45398 21.6711 5.72732 21.0728C5.00069 20.4746 4.52121 19.6466 4.37565 18.7386C4.37565 18.7385 4.37566 18.7386 4.37565 18.7386L3.03416 10.3776C2.96974 9.97561 2.99665 9.56493 3.11308 9.1739C3.22951 8.78288 3.43268 8.42063 3.70868 8.11201C3.98468 7.80338 4.32697 7.55567 4.71208 7.38586C5.09717 7.21606 5.51606 7.12817 5.93986 7.12821" fill="#333333"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.64124 3.64124C9.53204 2.75044 10.7402 2.25 12 2.25C13.2598 2.25 14.468 2.75044 15.3588 3.64124C16.2496 4.53204 16.75 5.74022 16.75 7C16.75 8.25978 16.2496 9.46796 15.3588 10.3588C14.468 11.2496 13.2598 11.75 12 11.75C10.7402 11.75 9.53204 11.2496 8.64124 10.3588C7.75044 9.46796 7.25 8.25978 7.25 7C7.25 5.74022 7.75044 4.53204 8.64124 3.64124ZM12 3.75C11.138 3.75 10.3114 4.09241 9.7019 4.7019C9.09241 5.3114 8.75 6.13805 8.75 7C8.75 7.86195 9.09241 8.6886 9.7019 9.2981C10.3114 9.90759 11.138 10.25 12 10.25C12.862 10.25 13.6886 9.90759 14.2981 9.2981C14.9076 8.6886 15.25 7.86195 15.25 7C15.25 6.13805 14.9076 5.3114 14.2981 4.7019C13.6886 4.09241 12.862 3.75 12 3.75Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 15.75C9.13805 15.75 8.3114 16.0924 7.7019 16.7019C7.09241 17.3114 6.75 18.138 6.75 19V21C6.75 21.4142 6.41421 21.75 6 21.75C5.58579 21.75 5.25 21.4142 5.25 21V19C5.25 17.7402 5.75044 16.532 6.64124 15.6412C7.53204 14.7504 8.74022 14.25 10 14.25H14C15.2598 14.25 16.468 14.7504 17.3588 15.6412C18.2496 16.532 18.75 17.7402 18.75 19V21C18.75 21.4142 18.4142 21.75 18 21.75C17.5858 21.75 17.25 21.4142 17.25 21V19C17.25 18.138 16.9076 17.3114 16.2981 16.7019C15.6886 16.0924 14.862 15.75 14 15.75H10Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.64124 3.64124C9.53204 2.75044 10.7402 2.25 12 2.25C13.2598 2.25 14.468 2.75044 15.3588 3.64124C16.2496 4.53204 16.75 5.74022 16.75 7C16.75 8.25978 16.2496 9.46796 15.3588 10.3588C14.468 11.2496 13.2598 11.75 12 11.75C10.7402 11.75 9.53204 11.2496 8.64124 10.3588C7.75044 9.46796 7.25 8.25978 7.25 7C7.25 5.74022 7.75044 4.53204 8.64124 3.64124ZM12 3.75C11.138 3.75 10.3114 4.09241 9.7019 4.7019C9.09241 5.3114 8.75 6.13805 8.75 7C8.75 7.86195 9.09241 8.6886 9.7019 9.2981C10.3114 9.90759 11.138 10.25 12 10.25C12.862 10.25 13.6886 9.90759 14.2981 9.2981C14.9076 8.6886 15.25 7.86195 15.25 7C15.25 6.13805 14.9076 5.3114 14.2981 4.7019C13.6886 4.09241 12.862 3.75 12 3.75Z" fill="#333333"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 15.75C9.13805 15.75 8.3114 16.0924 7.7019 16.7019C7.09241 17.3114 6.75 18.138 6.75 19V21C6.75 21.4142 6.41421 21.75 6 21.75C5.58579 21.75 5.25 21.4142 5.25 21V19C5.25 17.7402 5.75044 16.532 6.64124 15.6412C7.53204 14.7504 8.74022 14.25 10 14.25H14C15.2598 14.25 16.468 14.7504 17.3588 15.6412C18.2496 16.532 18.75 17.7402 18.75 19V21C18.75 21.4142 18.4142 21.75 18 21.75C17.5858 21.75 17.25 21.4142 17.25 21V19C17.25 18.138 16.9076 17.3114 16.2981 16.7019C15.6886 16.0924 14.862 15.75 14 15.75H10Z" fill="#333333"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 0C7.16387 0 0 7.16387 0 16C0 24.8361 7.16387 32 16 32C24.8361 32 32 24.8361 32 16C32 7.16387 24.8361 0 16 0ZM23.8555 10.9626L21.2335 23.3394C21.0374 24.2168 20.5213 24.4335 19.7884 24.0206L15.7832 21.0684L13.8529 22.9265C13.6361 23.1432 13.4606 23.3187 13.0477 23.3187L13.3265 19.2516L20.7381 12.5523C21.0581 12.2735 20.6658 12.1084 20.2426 12.3871L11.0761 18.1574L7.1329 16.929C6.27613 16.6606 6.25548 16.0723 7.31871 15.6594L22.751 9.70323C23.4632 9.44516 24.0929 9.87871 23.8555 10.9626Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 623 B

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.25023 2.25053C0 4.50106 0 8.1189 0 15.3588V16.6369C0 23.8769 0 27.4989 2.25023 29.7495C4.50046 32 8.11782 32 15.361 32H16.639C23.8779 32 27.4995 32 29.7498 29.7495C32 27.4989 32 23.8811 32 16.6369V15.3588C32 8.1189 32 4.49682 29.7498 2.24628C27.4995 0 23.8779 0 16.639 0H15.361C8.11782 0 4.50046 0 2.25023 2.25053ZM5.40056 9.73673C5.57463 18.0552 9.73544 23.0573 17.0253 23.0573H17.4372V18.2972C20.1162 18.5648 22.1414 20.5223 22.9566 23.0573H26.7438C25.7036 19.2696 22.9694 17.1762 21.2626 16.3779C22.9694 15.3928 25.3682 12.9894 25.9414 9.73673H22.5023C21.7551 12.3779 19.5431 14.7771 17.4372 15.0021V9.73673H13.9981V18.9639C11.8668 18.4289 9.17076 15.8429 9.05188 9.73673H5.40056Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 855 B

@ -0,0 +1,6 @@
<svg width="33" height="32" viewBox="0 0 33 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15.568 0C15.3825 2.50628 15.3939 5.04672 14.9687 7.51149C14.1605 12.1873 11.5304 14.5683 6.79636 15.1227C4.54453 15.3866 2.2659 15.4261 0 15.5674C0 15.0765 0.160702 13.7889 0.188825 13.6262C1.18518 7.88646 4.32691 3.76713 9.62271 1.37266C11.0322 0.736552 15.0772 0 15.568 0Z" fill="white"/>
<path d="M0 16.4092C1.98668 16.5478 3.98207 16.6134 5.9567 16.8504C7.26575 17.0071 8.59221 17.2817 9.82962 17.7276C12.4651 18.6778 14.1652 20.6477 14.6935 23.3508C15.2399 26.1477 15.4375 29.0136 15.8051 31.9933C13.2814 32.0689 11.2063 31.5179 9.25913 30.5624C4.19768 28.0795 1.14634 24.0512 0.190834 18.4682C0.156685 18.268 0 16.9007 0 16.4092Z" fill="white"/>
<path d="M19.7049 0.420142C26.3895 1.89994 31.7127 8.12046 32.0114 14.8057C32.0207 15.0126 32.0127 15.2201 32.0127 15.5657C28.4491 15.4398 24.8916 15.6045 21.5845 14.0684C18.8217 12.7848 17.514 10.3837 17.0841 7.51381C16.7741 5.44276 16.7259 3.33287 16.5545 1.24039C16.5203 0.825915 16.4587 0.414116 16.4092 0.000977742C16.9 0.00030815 19.0963 0.284885 19.7049 0.420142Z" fill="white"/>
<path d="M16.3945 31.937C16.6202 29.4173 16.7032 26.9653 17.0862 24.5608C17.7719 20.2546 20.1751 17.8106 24.4544 17.1008C26.8897 16.6971 29.3799 16.6221 31.844 16.3984C32.5009 23.4211 25.5157 32.1385 16.3945 31.937Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because one or more lines are too long

@ -1,25 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
{{ function('wp_head') }}
<title>{{ function('wp_title') }} </title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body class="{{bodyClass}}">
{% include 'header.twig' %}
<main class="{{ mainClass }}">
{% block content %}
{% endblock %}
</main>
{% include 'footer.twig' %}
</div>
{{ function('wp_footer') }}
</body>
</html>

@ -0,0 +1,68 @@
<div class="modal">
<aside class="modal__aside">
<div class="modal__item modal__filter">
<button class="modal__close">
<img src="assets/img/svg/main/black-x.svg" alt="">
</button>
<div class="modal__header">
<p class="modal__title">Фильтры</p>
{{sidebar_filters}}
</div>
</div>
{% include 'modal/basket.twig' %}
<div class="modal__item modal__to-know modal__item--no-title">
<button class="modal__close">
<img src="assets/img/svg/main/black-x.svg" alt="">
</button>
<div class="modal__header">
<p class="modal__small-title">Узнать о поступлении</p>
<p class="modal__text">
Оставьте свой e-mail, и мы оповестим вас, когда продукт появится
</p>
<form action="" class="modal__form-sub">
<div class="label">
<label for="mail" class="label__title">
mail
</label>
<div class="label__question">
text <br>
re
</div>
</div>
<input type="text" class="form__input" id="mail" placeholder="Email">
<div class="checkbox checkbox--small">
<div class="checkbox__state"></div>
<input type="checkbox" name="" id="" class="checkbox__input">
<label for="" class="checkbox__label">
Я ознакомился с <a href="#">политикой обработки персональных данных</a> и <a href="#">пользовательским соглашением</a>
</label>
</div>
<input type="submit" value="Оставить почту" class="button button--white button--red-48-px button--100-perc active modal-form-sub__submit">
</form>
</div>
</div>
<div class="modal__item modal__to-know-submit modal__item--no-title">
<button class="modal__close">
<img src="assets/img/svg/main/black-x.svg" alt="">
</button>
<div class="modal__header">
<p class="modal__small-title">Подписка на товар оформлена</p>
<p class="modal__text">
На ваш e-mail ivan.ivanov@gmail.com придет письмо, как только продукт появится в наличии.
</p>
<button class="button button--white button--red-48-px button--100-perc active modal-form-sub__submit">
Продолжить покупки
</button>
</div>
</div>
</aside>
</div>

@ -0,0 +1,47 @@
<div id="modal-basket" class="modal__item modal__basket">
<button class="modal__close">
<img src="{{ theme.link }}/static/img/svg/main/black-x.svg" alt="{{ __('Close cart', 'your-theme') }}">
</button>
<div class="modal-basket__loading">
<div class="modal-basket__loader"></div>
</div>
<div class="modal__header">
<p class="modal__title">{{ __('Cart', 'woocommerce') }}</p>
<div class="modal__content" id="modal-basket-content">
{% include 'shop/cart-contents.twig' %}
</div>
</div>
{% if not fn('WC').cart.is_empty %}
<div class="modal__footer" id="modal-basket-footer">
<div class="modal__block-price">
<p class="modal-block-price__title">{{ __('Total', 'woocommerce') }}</p>
<p class="modal-block-price__price">
{{ fn('wc_cart_totals_order_total_html') }}
</p>
</div>
<div class="modal__block-button">
<div class="modal__button">
<a href="{{ fn('wc_get_checkout_url') }}" class="button button--gradient button--high button--100-perc">
{{ __('Proceed to checkout', 'woocommerce') }}
</a>
</div>
</div>
</div>
{% else %}
<div class="modal__footer" id="modal-basket-footer">
<div class="modal__block-button">
<a href="/shop/" class="modal__button">
<button class="to-know button--100-perc to-know--background-none continue-shopping">
<p>{{ __('Continue shopping', 'woocommerce') }}</p>
</button>
</a>
</div>
</div>
{% endif %}
</div>

@ -0,0 +1,9 @@
{% set bodyClass = 'bg-white' %}
{% set mainClass = 'wrapper' %}
{% extends 'layout.twig' %}
{% block content %}
{{ post.content }}
{% endblock %}

@ -0,0 +1,45 @@
{% if cart.is_empty %}
<p class="cart-empty">{{ function('pll_e', 'Ваша корзина пуста') }}</p>
{% else %}
{% for item_key, item in cart.get_cart %}
{% set product = item.data %}
<div class="modal-basket__item" data-key="{{ item.key }}" data-product_id="{{ item.product_id }}" data-variation_id="{{ item.variation_id }}">
<div class="modal-basket-item__block-image">
{{ product.get_image }}
</div>
<div class="modal-basket-item__content">
<p class="modal-basket-item__title">{{ product.get_name }}</p>
<p class="modal-basket-item__sub-title">
{{ fn('wc_get_formatted_cart_item_data', item) }}
</p>
<div class="modal-basket-item__control">
<div class="counter counter--small">
<button class="counter__button minus" data-key="{{ item_key }}">
<img src="{{ theme.link }}/static/img/svg/main/minus.svg" alt="{{ __('Decrease quantity', 'your-theme') }}">
</button>
<input type="text" class="counter__input"
value="{{ item.quantity }}"
data-key="{{ item_key }}">
<button class="counter__button plus" data-key="{{ item_key }}">
<img src="{{ theme.link }}/static/img/svg/main/plus.svg" alt="{{ __('Increase quantity', 'your-theme') }}">
</button>
</div>
<p class="modal-basket-item__price">
{{ fn('wc_price', item.line_total + item.line_tax) }}
</p>
<button class="remove-item" data-key="{{ item_key }}">
<img src="{{ theme.link }}/static/img/svg/main/basket.svg" alt="{{ __('Remove item', 'your-theme') }}">
</button>
</div>
</div>
</div>
{% endfor %}
{% endif %}

@ -0,0 +1,151 @@
{# templates/woocommerce/checkout/form-checkout.twig #}
<form action="" class="checkout woocommerce-checkout">
<div class="order checkout woocommerce-checkout">
<div id="recipient" class="order__contacts">
<div class="order-contacts__header">
<p class="order__title">
{{ fn('pll_e', 'Контакты получателя') }}
</p>
{% if fn('is_user_logged_in') %}
<a href="{{ fn('wp_logout_url', fn('wc_get_checkout_url')) }}" class="cabinet-card__button">
{{ fn('pll_e', 'Выйти') }}
</a>
{% else %}
<button type="button" class="cabinet-card__button login-open">
{{ fn('pll_e', 'Войти') }}
</button>
{% endif %}
</div>
<div id="acc-error" class="form-input__error"><span class="error-message"></span></div>
<div class="order-contacts__form">
{{ fn('do_action', 'woocommerce_checkout_billing') }}
</div>
{% set chosen_methods = WC().session.get('chosen_shipping_methods') %}
{% set shipping_method = chosen_methods[0] ? chosen_methods[0] : fn('pll_e', 'Не выбран') %}
<div class="order-contacts__delivery">
<p class="order__title">{{ fn('pll_e', 'Доставка') }}</p>
<div id="custom-shipping-methods" class="modal-map__control modal-map__control--delivery"></div>
<div class="modal-map__address">
<div data-remote="official_cdek:136" class="shipping-add-info remote-control__item {% if shipping_method == 'official_cdek:136' %}active{% endif %}">
<div class="order-contacts-deliver__item">
<div class="modal-form-content-line__element modal-form-content-line__element--arrow">
<label class="label-name">{{ fn('pll_e', 'Пункт выдачи') }}</label>
<input id="pvz_inp" class="form__input form__input--grey form-open mandatory input-read" type="text" name="" placeholder="{{ fn('pll_e', 'Выберите пункт выдачи') }}" required="" data-form="form-point" autocomplete="none">
</div>
<div id="pvz-error" class="form-input__error"><span class="error-message"></span></div>
</div>
</div>
<div data-remote="official_cdek:137" class="shipping-add-info remote-control__item {% if shipping_method == 'official_cdek:137' %}active{% endif %}">
<div class="order-contacts-deliver__item">
<div class="modal-form-content-line__element modal-form-content-line__element--arrow">
<label class="label-name">{{ fn('pll_e', 'Адрес доставки') }}</label>
<input class="form__input form__input--grey form-open mandatory input-read" id="addr_inp" type="text" name="name" placeholder="{{ fn('pll_e', 'Выберите адрес доставки') }}" data-form="form-address" autocomplete="none">
</div>
</div>
<div id="adr-error" class="form-input__error"><span class="error-message"></span></div>
<div class="order-contacts-deliver__item">
<div class="modal-form-content-line__element">
<label for="firstname" class="label-name">{{ fn('pll_e', 'Комментарий для доставки') }}</label>
<textarea id="firstname" class="form__input form__input--textarea-72 form__input--grey" type="text" name="name" placeholder="{{ fn('pll_e', 'Для службы доставки') }}"></textarea>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="order__your">
<p class="order__title">{{ fn('pll_e', 'Ваш заказ') }}</p>
<div class="order-your__products">
{% for cart_item_key, cart_item in WC().cart.get_cart() %}
{% set product = cart_item.data %}
{% set thumbnail_id = product.get_image_id() %}
{% if product and product.exists() and cart_item.quantity > 0 and fn('apply_filters', 'woocommerce_checkout_cart_item_visible', true, cart_item, cart_item_key) %}
<div class="order-your-products__item">
<div class="order-your-products__left">
<img src="{{ fn('wp_get_attachment_url', thumbnail_id) }}" alt="" class="order-your-products__img">
<div class="order-your-products__content">
<a href="{{ product.get_permalink() }}" class="order-your-products__name">{{ product.get_name() }}</a>
</div>
</div>
<div class="order-your-products__right">
<p class="order-your-products__count">
{{ cart_item.quantity }}
</p>
<p class="order-your-products__price">
{{ fn('apply_filters', 'woocommerce_cart_item_subtotal', WC().cart.get_product_subtotal(product, cart_item.quantity), cart_item, cart_item_key) }}
</p>
</div>
</div>
{% endif %}
{% endfor %}
</div>
<div class="order-your__calculation">
{{ fn('woocommerce_checkout_coupon_form') }}
<div id="order_review" class="woocommerce-checkout-review-order">
{{ fn('do_action', 'woocommerce_checkout_order_review') }}
</div>
</div>
</div>
</div>
</form>
<div class="modalProfile" id="address_input">
<div class="popup-wrap">
<div class="modal-form form__full-mobile modal-form--white modal-form--height-100-phone form-data active">
<button class="modal-form__close"></button>
<p class="modal-form__title">{{ fn('pll_e', 'Адрес') }}</p>
<div class="modal-form__content" method="post" action="/send-telegram.php">
<div class="modal-form-content-line__element">
<label for="address" class="label-name">{{ fn('pll_e', 'Адрес') }}</label>
<input id="f_address" class="form__input" type="text" placeholder="{{ fn('pll_e', 'Начните вводить ваш адрес') }}" required="">
<span class="form-input__error form-input__error--absolute">{{ fn('pll_e', 'Адрес введен неверно') }}</span>
</div>
<div class="modal-form-content__line modal-form-content__line--two-mobile">
<div class="modal-form-content-line__element">
<label for="apartment" class="label-name">{{ fn('pll_e', 'Квартира') }}</label>
<input id="f_apartment" class="form__input" type="text" placeholder="{{ fn('pll_e', 'Квартира') }}" required="">
<span class="form-input__error form-input__error--absolute">{{ fn('pll_e', 'Квартира введено неверно') }}</span>
</div>
<div class="modal-form-content-line__element">
<label for="floor" class="label-name">{{ fn('pll_e', 'Этаж') }}</label>
<input id="f_floor" class="form__input" type="text" placeholder="{{ fn('pll_e', 'Этаж') }}" required="">
<span class="form-input__error form-input__error--absolute">{{ fn('pll_e', 'Этаж введен неверно') }}</span>
</div>
</div>
<div class="modal-form-content__line modal-form-content__line--two-mobile">
<div class="modal-form-content-line__element">
<label for="entrance" class="label-name">{{ fn('pll_e', 'Подъезд') }}</label>
<input id="f_entrance" class="form__input" type="text" placeholder="{{ fn('pll_e', 'Подъезд') }}" required="">
<span class="form-input__error form-input__error--absolute">{{ fn('pll_e', 'Подъезд введен неверно') }}</span>
</div>
<div class="modal-form-content-line__element">
<label for="number-phone" class="label-name">{{ fn('pll_e', 'Домофон') }}</label>
<input id="f_number-phone" class="form__input" type="text" placeholder="{{ fn('pll_e', 'Код домофона') }}" required="">
<span class="form-input__error form-input__error--absolute">{{ fn('pll_e', 'Код домофона введен неверно') }}</span>
</div>
</div>
<div class="modal-form__buttons">
<button class="button button--gradient button--high button--100-perc close-btn">
<span>{{ fn('pll_e', 'Доставить сюда') }}</span>
</button>
</div>
</div>
</div>
</div>
</div>

@ -0,0 +1,66 @@
<table class="shop_table woocommerce-checkout-review-order-table">
<tfoot>
<tr class="order-your-calculation__item">
<th class="order-your-calculation__title">{{ pll_e('Товары') }}</th>
<td class="order-your-calculation__value order-your-calculation__value--price">{{ fn('wc_cart_totals_subtotal_html') }}</td>
</tr>
{% for code, coupon in fn('WC').cart.get_coupons() %}
<tr class="order-your-calculation__item cart-discount coupon-{{ code|sanitize_title|e('html_attr') }}">
<th class="order-your-calculation__title">{{ fn('wc_cart_totals_coupon_label', coupon) }}</th>
<td class="order-your-calculation__value order-your-calculation__value--price order-your-calculation__value--discount">{{ fn('wc_cart_totals_coupon_html', coupon) }}</td>
</tr>
{% endfor %}
{% if fn('WC').cart.needs_shipping() and fn('WC').cart.show_shipping() %}
{{ do_action('woocommerce_review_order_before_shipping') }}
{{ fn('wc_cart_totals_shipping_html') }}
{{ do_action('woocommerce_review_order_after_shipping') }}
{% endif %}
<tr class="order-your-calculation__item">
<th class="order-your-calculation__title">{{ fn('pll_e', 'Доставка') }}</th>
{% set chosen_shipping_methods = fn('WC').session.get('chosen_shipping_methods') %}
{% if not chosen_shipping_methods[0] is defined %}
<td class="order-your-calculation__description">{{ fn('pll_e', 'Введите адрес доставки') }}</td>
{% else %}
<td class="order-your-calculation__value order-your-calculation__value--price">{{ fn('WC').cart.get_shipping_total() }} ₽</td>
{% endif %}
</tr>
{% for fee in fn('WC').cart.get_fees() %}
<tr class="fee">
<th>{{ fee.name|e }}</th>
<td>{{ fn('wc_cart_totals_fee_html', fee) }}</td>
</tr>
{% endfor %}
{% if fn('wc_tax_enabled') and not fn('WC').cart.display_prices_including_tax() %}
{% if 'itemized' == fn('get_option', 'woocommerce_tax_total_display') %}
{% for code, tax in fn('WC').cart.get_tax_totals() %}
<tr class="tax-rate tax-rate-{{ code|sanitize_title|e('html_attr') }}">
<th>{{ tax.label|e }}</th>
<td>{{ tax.formatted_amount|raw }}</td>
</tr>
{% endfor %}
{% else %}
<tr class="tax-total">
<th>{{ fn('WC').countries.tax_or_vat()|e }}</th>
<td>{{ fn('wc_cart_totals_taxes_total_html') }}</td>
</tr>
{% endif %}
{% endif %}
{{ do_action('woocommerce_review_order_before_order_total') }}
<tr class="order-your-calculation__line"></tr>
<tr class="order-your-calculation__item">
<th class="order-your-calculation__result">{{ fn('pll_e', 'Total') }}</th>
<td class="order-your-calculation__result order-your-calculation__value--price">{{ fn('wc_cart_totals_order_total_html') }}</td>
</tr>
{{ do_action('woocommerce_review_order_after_order_total') }}
</tfoot>
</table>

@ -1,221 +0,0 @@
<div class="modal">
<aside class="modal__aside">
<div class="modal__item modal__filter">
<button class="modal__close">
<img src="assets/img/svg/main/black-x.svg" alt="">
</button>
<div class="modal__header">
<p class="modal__title">Фильтры</p>
{{sidebar_filters}}
</div>
</div>
<div class="modal__item modal__basket">
<button class="modal__close">
<img src="assets/img/svg/main/black-x.svg" alt="">
</button>
<div class="modal__header">
<p class="modal__title">Корзина</p>
<div class="modal__content">
<div class="modal-basket__item modal-basket__item--return">
<p class="modal-basket-item__title">
Удаление товра из корзины: 5с
</p>
<button class="modal-basket-item__return">
Восстановить
</button>
</div>
<div class="modal-basket__item">
<div class="modal-basket-item__block-image">
<img src="assets/img/product/image.png" alt="" class="modal-basket-item__image">
</div>
<div class="modal-basket-item__content">
<p class="modal-basket-item__title">Сухой корм, для крупны и средних пород</p>
<p class="modal-basket-item__sub-title">Индейка, 2 кг</p>
<div class="modal-basket-item__control">
<div class="counter counter--small">
<button class="counter__button minus">
<img src="assets/img/svg/main/minus.svg" alt="">
</button>
<input type="text" class="counter__input" value="1">
<button class="counter__button plus">
<img src="assets/img/svg/main/plus.svg" alt="">
</button>
</div>
<p class="modal-basket-item__price">1280</p>
</div>
</div>
</div>
<div class="modal-basket__item">
<div class="modal-basket-item__block-image">
<img src="assets/img/product/image.png" alt="" class="modal-basket-item__image">
</div>
<div class="modal-basket-item__content">
<p class="modal-basket-item__title">Сухой корм, для крупны и средних пород</p>
<p class="modal-basket-item__sub-title">Индейка, 2 кг</p>
<div class="modal-basket-item__control">
<div class="counter counter--small">
<button class="counter__button minus">
<img src="assets/img/svg/main/minus.svg" alt="">
</button>
<input type="text" class="counter__input" value="1">
<button class="counter__button plus">
<img src="assets/img/svg/main/plus.svg" alt="">
</button>
</div>
<p class="modal-basket-item__price">1280</p>
</div>
</div>
</div>
<div class="modal-basket__item">
<div class="modal-basket-item__block-image">
<img src="assets/img/product/image.png" alt="" class="modal-basket-item__image">
</div>
<div class="modal-basket-item__content">
<p class="modal-basket-item__title">Сухой корм, для крупны и средних пород</p>
<p class="modal-basket-item__sub-title">Индейка, 2 кг</p>
<div class="modal-basket-item__control">
<div class="counter counter--small">
<button class="counter__button minus">
<img src="assets/img/svg/main/minus.svg" alt="">
</button>
<input type="text" class="counter__input" value="1">
<button class="counter__button plus">
<img src="assets/img/svg/main/plus.svg" alt="">
</button>
</div>
<p class="modal-basket-item__price">1280</p>
</div>
</div>
</div>
<div class="modal-basket__item">
<div class="modal-basket-item__block-image">
<img src="assets/img/product/image.png" alt="" class="modal-basket-item__image">
</div>
<div class="modal-basket-item__content">
<p class="modal-basket-item__title">Сухой корм, для крупны и средних пород</p>
<p class="modal-basket-item__sub-title">Индейка, 2 кг</p>
<div class="modal-basket-item__control">
<div class="counter counter--small">
<button class="counter__button minus">
<img src="assets/img/svg/main/minus.svg" alt="">
</button>
<input type="text" class="counter__input" value="1">
<button class="counter__button plus">
<img src="assets/img/svg/main/plus.svg" alt="">
</button>
</div>
<p class="modal-basket-item__price">1280</p>
</div>
</div>
</div>
<div class="modal-basket__item">
<div class="modal-basket-item__block-image">
<img src="assets/img/product/image.png" alt="" class="modal-basket-item__image">
</div>
<div class="modal-basket-item__content">
<p class="modal-basket-item__title">Сухой корм, для крупны и средних пород</p>
<p class="modal-basket-item__sub-title">Индейка, 2 кг</p>
<div class="modal-basket-item__control">
<div class="counter counter--small">
<button class="counter__button minus">
<img src="assets/img/svg/main/minus.svg" alt="">
</button>
<input type="text" class="counter__input" value="1">
<button class="counter__button plus">
<img src="assets/img/svg/main/plus.svg" alt="">
</button>
</div>
<p class="modal-basket-item__price">1280</p>
</div>
</div>
</div>
</div>
</div>
<div class="modal__footer">
<div class="modal__block-price">
<p class="modal-block-price__title">Общая стоимость</p>
<p class="modal-block-price__price">
8960
</p>
</div>
<div class="modal__block-button">
<div class="modal__button">
<button class="button button--gradient button--high button--100-perc">
Перейти к оформлению
</button>
</div>
<div class="modal__button">
<button class="to-know button--100-perc to-know--background-none">
<p>Продолжить покупку</p>
</button>
</div>
</div>
</div>
</div>
<div class="modal__item modal__to-know modal__item--no-title">
<button class="modal__close">
<img src="assets/img/svg/main/black-x.svg" alt="">
</button>
<div class="modal__header">
<p class="modal__small-title">Узнать о поступлении</p>
<p class="modal__text">
Оставьте свой e-mail, и мы оповестим вас, когда продукт появится
</p>
<form action="" class="modal__form-sub">
<div class="label">
<label for="mail" class="label__title">
mail
</label>
<div class="label__question">
text <br>
re
</div>
</div>
<input type="text" class="form__input" id="mail" placeholder="Email">
<div class="checkbox checkbox--small">
<div class="checkbox__state"></div>
<input type="checkbox" name="" id="" class="checkbox__input">
<label for="" class="checkbox__label">
Я ознакомился с <a href="#">политикой обработки персональных данных</a> и <a href="#">пользовательским соглашением</a>
</label>
</div>
<input type="submit" value="Оставить почту" class="button button--white button--red-48-px button--100-perc active modal-form-sub__submit">
</form>
</div>
</div>
<div class="modal__item modal__to-know-submit modal__item--no-title">
<button class="modal__close">
<img src="assets/img/svg/main/black-x.svg" alt="">
</button>
<div class="modal__header">
<p class="modal__small-title">Подписка на товар оформлена</p>
<p class="modal__text">
На ваш e-mail ivan.ivanov@gmail.com придет письмо, как только продукт появится в наличии.
</p>
<button class="button button--white button--red-48-px button--100-perc active modal-form-sub__submit">
Продолжить покупки
</button>
</div>
</div>
</aside>
</div>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save